@allbluecn/web-app 0.18.3 → 0.19.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (5700) hide show
  1. package/package.json +52 -48
  2. package/src/__tests__/components/auth/auth-layout.test.tsx +13 -1
  3. package/src/components/ai/__tests__/chat-thread-id-stability.test.tsx +125 -0
  4. package/src/components/ai/ai-chat-prompt.tsx +8 -2
  5. package/src/components/ai/ai-prompt-input/index.tsx +2 -1
  6. package/src/components/ai/global-harness-sidebar/__tests__/global-ai-prompts.test.ts +1 -2
  7. package/src/components/ai/global-harness-sidebar/index.tsx +22 -10
  8. package/src/components/bug/__tests__/board-subgroups.test.tsx +512 -0
  9. package/src/components/bug/__tests__/board-view.test.tsx +350 -0
  10. package/src/components/bug/__tests__/bug-list-loading-defer.test.tsx +85 -0
  11. package/src/components/bug/__tests__/bug-toolbar.test.tsx +7 -1
  12. package/src/components/bug/__tests__/comment-reactions.test.tsx +182 -0
  13. package/src/components/bug/__tests__/date-and-lightbox.test.tsx +96 -0
  14. package/src/components/bug/__tests__/export-entry.test.tsx +217 -0
  15. package/src/components/bug/__tests__/filters-compat.test.tsx +157 -0
  16. package/src/components/bug/__tests__/fix-request-race.test.tsx +396 -0
  17. package/src/components/bug/__tests__/peek-modes.test.tsx +365 -0
  18. package/src/components/bug/__tests__/saved-views.test.tsx +309 -0
  19. package/src/components/bug/__tests__/story-bugs-panel.test.tsx +146 -0
  20. package/src/components/bug/__tests__/subgroup-header.test.tsx +150 -0
  21. package/src/components/bug/__tests__/toolbar-shell.test.tsx +369 -0
  22. package/src/components/bug/__tests__/use-paged-bug-groups.test.tsx +58 -0
  23. package/src/components/bug/__tests__/view-type.test.tsx +247 -0
  24. package/src/components/bug/bug-list-view.tsx +302 -13
  25. package/src/components/bug/bug-panel-header.tsx +84 -8
  26. package/src/components/bug/bug-toolbar.tsx +268 -116
  27. package/src/components/bug/create-bug-dialog.tsx +1 -1
  28. package/src/components/bug/detail/__tests__/activity-timeline.test.tsx +1 -0
  29. package/src/components/bug/detail/__tests__/bug-detail-collab.test.tsx +1 -0
  30. package/src/components/bug/detail/__tests__/repro-report-card.test.tsx +1 -0
  31. package/src/components/bug/detail/activity-timeline.tsx +1 -1
  32. package/src/components/bug/detail/bug-detail-body.tsx +47 -5
  33. package/src/components/bug/detail/comment-item.tsx +7 -2
  34. package/src/components/bug/detail/comment-reactions.tsx +138 -0
  35. package/src/components/bug/detail/error-context.tsx +29 -9
  36. package/src/components/bug/display/constants.ts +4 -2
  37. package/src/components/bug/display/display-dropdown.tsx +76 -280
  38. package/src/components/bug/display/types.ts +24 -8
  39. package/src/components/bug/display/use-paged-bug-groups.ts +183 -32
  40. package/src/components/bug/filters/field-configs.tsx +630 -0
  41. package/src/components/bug/filters/index.tsx +14 -5
  42. package/src/components/bug/inline-editors/assignee-editor.tsx +2 -2
  43. package/src/components/bug/inline-editors/labels-editor.tsx +1 -1
  44. package/src/components/bug/inline-editors/severity-editor.tsx +37 -18
  45. package/src/components/bug/inline-editors/state-editor.tsx +1 -1
  46. package/src/components/bug/peek-panel.tsx +153 -35
  47. package/src/components/bug/select-bug-dialog.tsx +500 -0
  48. package/src/components/bug/story-bugs-panel.tsx +1090 -0
  49. package/src/components/bug/types.ts +9 -2
  50. package/src/components/bug/views/board-view.tsx +661 -0
  51. package/src/components/bug/views/bug-list/batch-toolbar.tsx +25 -34
  52. package/src/components/bug/views/bug-list/group.tsx +28 -13
  53. package/src/components/bug/views/bug-list/index.tsx +223 -59
  54. package/src/components/bug/views/bug-list/row.tsx +3 -1
  55. package/src/components/bug/views/create-view-dialog.tsx +160 -0
  56. package/src/components/bug/views/view-list-section.tsx +140 -0
  57. package/src/components/bug/views/view-selector-button.tsx +145 -0
  58. package/src/components/bug/views/view-switcher.tsx +8 -6
  59. package/src/components/bug/views/view-types.ts +162 -0
  60. package/src/components/collab/activity-attribution.tsx +2 -2
  61. package/src/components/collab/collab-presence-header.tsx +2 -2
  62. package/src/components/collab/entity-presence-badge.tsx +2 -2
  63. package/src/components/collab/field-editing-pill.tsx +2 -2
  64. package/src/components/command/command-palette.tsx +11 -8
  65. package/src/components/design/canvas/panels/toolbar.tsx +3 -2
  66. package/src/components/design/canvas/react/__tests__/hooks.test.tsx +4 -4
  67. package/src/components/design/editor/collaboration/__tests__/design-agent-panel-regenerate.test.tsx +3 -1
  68. package/src/components/design/editor/collaboration/__tests__/design-agent-panel-stream.test.tsx +3 -1
  69. package/src/components/design/editor/collaboration/design-agent-panel.tsx +3 -0
  70. package/src/components/design/editor/collaboration/design-comment-review-panel.tsx +5 -5
  71. package/src/components/design/editor/dashboard/create-design-dialog.tsx +1 -1
  72. package/src/components/design/editor/dashboard/design-dashboard.tsx +1 -10
  73. package/src/components/design/editor/layout/design-navigation.tsx +0 -4
  74. package/src/components/design/editor/share/share-comment-panel.tsx +37 -20
  75. package/src/components/design/editor/share/share-theme-toggle.tsx +10 -15
  76. package/src/components/harness/__tests__/composer-draft.test.ts +144 -0
  77. package/src/components/harness/__tests__/harness-workbench-first-send.test.tsx +260 -0
  78. package/src/components/harness/composer/composer-editor.tsx +68 -6
  79. package/src/components/harness/composer/harness-composer.tsx +1 -1
  80. package/src/components/harness/harness-layout.tsx +1 -1
  81. package/src/components/harness/harness-workbench-page.tsx +57 -20
  82. package/src/components/harness/turn-group.tsx +1 -1
  83. package/src/components/hotkeys/shortcut-badge.tsx +4 -4
  84. package/src/components/knowledge/dialog/knowledge-form-dialog.tsx +1 -1
  85. package/src/components/knowledge/editor/__tests__/knowledge-doc-editor-collab.test.tsx +0 -7
  86. package/src/components/knowledge/editor/doc-header.tsx +5 -48
  87. package/src/components/knowledge/editor/knowledge-doc-editor.tsx +1 -19
  88. package/src/components/knowledge/editor/mindmap-doc-editor.tsx +1 -17
  89. package/src/components/knowledge/knowledge-toolbar.tsx +4 -4
  90. package/src/components/knowledge/public/knowledge-card.tsx +0 -14
  91. package/src/components/knowledge/public/legal-compliance-editor.tsx +0 -1
  92. package/src/components/knowledge/public/sharers-avatar-group.tsx +2 -2
  93. package/src/components/layout/layout-responsive-provider.tsx +79 -0
  94. package/src/components/layout/sidebar-03/app-sidebar.tsx +0 -2
  95. package/src/components/layout/sidebar-03/index.tsx +19 -4
  96. package/src/components/layout/sidebar-03/presence-avatar-stack.tsx +2 -2
  97. package/src/components/layout/sidebar-03/user-menu.tsx +3 -3
  98. package/src/components/project/create-project-dialog.tsx +1 -1
  99. package/src/components/project/invite-member-dialog.tsx +1 -1
  100. package/src/components/project/project-activity-list.tsx +2 -2
  101. package/src/components/project/project-member-manager.tsx +2 -2
  102. package/src/components/reui/__tests__/kanban-drop-indicator.test.ts +88 -0
  103. package/src/components/reui/__tests__/kanban-keyboard.test.ts +262 -0
  104. package/src/components/reui/event-calendar/event-calendar-agenda-view.tsx +236 -0
  105. package/src/components/reui/event-calendar/event-calendar-content.tsx +80 -0
  106. package/src/components/reui/event-calendar/event-calendar-dnd.tsx +1062 -0
  107. package/src/components/reui/event-calendar/event-calendar-event.tsx +555 -0
  108. package/src/components/reui/event-calendar/event-calendar-i18n.tsx +291 -0
  109. package/src/components/reui/event-calendar/event-calendar-lib.tsx +677 -0
  110. package/src/components/reui/event-calendar/event-calendar-month-view.tsx +1287 -0
  111. package/src/components/reui/event-calendar/event-calendar-nav.tsx +615 -0
  112. package/src/components/reui/event-calendar/event-calendar-recurrence.tsx +592 -0
  113. package/src/components/reui/event-calendar/event-calendar-resource-view.tsx +810 -0
  114. package/src/components/reui/event-calendar/event-calendar-time-grid.tsx +1366 -0
  115. package/src/components/reui/event-calendar/event-calendar-types.tsx +240 -0
  116. package/src/components/reui/event-calendar/event-calendar.tsx +1916 -0
  117. package/src/components/reui/gantt/__tests__/gantt-row-window.test.ts +243 -0
  118. package/src/components/reui/gantt/__tests__/gantt-view-virtualize.test.tsx +243 -0
  119. package/src/components/reui/gantt/gantt-bar.tsx +439 -0
  120. package/src/components/reui/gantt/gantt-dnd.tsx +1000 -0
  121. package/src/components/reui/gantt/gantt-i18n.tsx +287 -0
  122. package/src/components/reui/gantt/gantt-lib.tsx +695 -0
  123. package/src/components/reui/gantt/gantt-nav.tsx +446 -0
  124. package/src/components/reui/gantt/gantt-recurrence.tsx +402 -0
  125. package/src/components/reui/gantt/gantt-row-window.ts +119 -0
  126. package/src/components/reui/gantt/gantt-types.tsx +283 -0
  127. package/src/components/reui/gantt/gantt-view.tsx +4466 -0
  128. package/src/components/reui/gantt/gantt.tsx +1822 -0
  129. package/src/components/reui/gantt/use-gantt-row-window.ts +159 -0
  130. package/src/components/reui/icon-stack.tsx +90 -0
  131. package/src/components/reui/kanban-keyboard.ts +268 -0
  132. package/src/components/reui/kanban.tsx +1227 -0
  133. package/src/components/settings/personal-team/account/account-client.tsx +3 -2
  134. package/src/components/settings/personal-team/team/invitation-cards/invitation-history-list.tsx +5 -5
  135. package/src/components/settings/personal-team/team/team-client.tsx +2 -1
  136. package/src/components/settings/personal-team/team/team-member-list.tsx +4 -4
  137. package/src/components/share/share-presence-bar.tsx +2 -2
  138. package/src/components/shared-kit/auth/auth-client.ts +5 -0
  139. package/src/components/shared-kit/avatars/__tests__/avatar-shape.test.ts +44 -0
  140. package/src/components/shared-kit/avatars/__tests__/user-avatar.test.tsx +46 -0
  141. package/src/components/shared-kit/avatars/avatar-shape.ts +34 -0
  142. package/src/components/shared-kit/avatars/notion-avatar.tsx +62 -11
  143. package/src/components/shared-kit/avatars/user-avatar.tsx +7 -4
  144. package/src/components/shared-kit/list-kit/__tests__/batch-toolbar-shell.test.tsx +133 -0
  145. package/src/components/shared-kit/list-kit/__tests__/frozen-header.test.ts +89 -0
  146. package/src/components/shared-kit/list-kit/__tests__/level-badge.test.tsx +85 -0
  147. package/src/components/shared-kit/list-kit/__tests__/toolbar-shell.test.tsx +178 -0
  148. package/src/components/shared-kit/list-kit/batch-toolbar-shell.tsx +111 -0
  149. package/src/components/shared-kit/list-kit/csv-download.ts +46 -0
  150. package/src/components/shared-kit/list-kit/display/__tests__/dropdown.test.tsx +215 -0
  151. package/src/components/shared-kit/list-kit/display/dropdown.tsx +582 -0
  152. package/src/components/shared-kit/list-kit/display/types.ts +64 -0
  153. package/src/components/shared-kit/list-kit/display/values.ts +60 -0
  154. package/src/components/shared-kit/list-kit/filters/__tests__/create-filters-module.test.tsx +181 -0
  155. package/src/components/shared-kit/list-kit/filters/__tests__/types.test.ts +133 -0
  156. package/src/components/shared-kit/list-kit/filters/index.tsx +757 -0
  157. package/src/components/shared-kit/list-kit/filters/types.ts +68 -0
  158. package/src/components/shared-kit/list-kit/frozen-header.ts +45 -0
  159. package/src/components/shared-kit/list-kit/icon-semantics.ts +50 -0
  160. package/src/components/shared-kit/list-kit/kanban/__tests__/drop-layout.test.ts +139 -0
  161. package/src/components/shared-kit/list-kit/kanban/__tests__/frozen-header.test.ts +111 -0
  162. package/src/components/shared-kit/list-kit/kanban/__tests__/instance-key.test.ts +130 -0
  163. package/src/components/shared-kit/list-kit/kanban/__tests__/kanban-board-view.test.tsx +901 -0
  164. package/src/components/shared-kit/list-kit/kanban/__tests__/manual-order.test.ts +35 -0
  165. package/src/components/shared-kit/list-kit/kanban/drop-commit.ts +212 -0
  166. package/src/components/shared-kit/list-kit/kanban/drop-layout.ts +98 -0
  167. package/src/components/shared-kit/list-kit/kanban/frozen-header.ts +88 -0
  168. package/src/components/shared-kit/list-kit/kanban/instance-key.ts +83 -0
  169. package/src/components/shared-kit/list-kit/kanban/kanban-board-view.tsx +1414 -0
  170. package/src/components/shared-kit/list-kit/kanban/manual-order.ts +39 -0
  171. package/src/components/shared-kit/list-kit/level-badge.tsx +71 -0
  172. package/src/components/shared-kit/list-kit/toolbar-shell.tsx +103 -0
  173. package/src/components/shared-kit/loading/__tests__/use-deferred-flag.test.tsx +115 -0
  174. package/src/components/shared-kit/loading/use-deferred-flag.ts +35 -0
  175. package/src/components/shared-kit/peek/dock-slot.ts +62 -0
  176. package/src/components/shared-kit/peek/peek-mode.ts +34 -0
  177. package/src/components/shared-kit/theme/animated-theme-toggler.tsx +13 -7
  178. package/src/components/shared-kit/theme/theme-toggle.tsx +7 -18
  179. package/src/components/shared-kit/views/view-icon.tsx +49 -0
  180. package/src/components/story/__tests__/peek-panel-patch-sync.test.tsx +215 -0
  181. package/src/components/story/__tests__/story-list-loading-defer.test.tsx +88 -0
  182. package/src/components/story/__tests__/story-list-view-peek-sync.test.tsx +242 -0
  183. package/src/components/story/__tests__/story-list-view-restore.test.tsx +45 -3
  184. package/src/components/story/__tests__/story-list-view-ssr.test.tsx +0 -1
  185. package/src/components/story/ai/__tests__/action-registry.test.ts +11 -11
  186. package/src/components/story/ai/action-registry.ts +5 -7
  187. package/src/components/story/ai/handlers/stream-text.ts +1 -3
  188. package/src/components/story/ai/story-ai-toolbar.tsx +58 -16
  189. package/src/components/story/ai/use-toolbar-overflow.ts +4 -7
  190. package/src/components/story/columns.tsx +2 -2
  191. package/src/components/story/constants.ts +13 -1
  192. package/src/components/story/create-story-dialog.tsx +8 -7
  193. package/src/components/story/detail/__tests__/associated-attachments-panel.test.tsx +38 -4
  194. package/src/components/story/detail/__tests__/categories.test.tsx +52 -26
  195. package/src/components/story/detail/__tests__/story-collab.test.tsx +12 -1
  196. package/src/components/story/detail/activity-tabs.tsx +5 -4
  197. package/src/components/story/detail/activity-timeline.tsx +15 -3
  198. package/src/components/story/detail/comment-input.tsx +2 -2
  199. package/src/components/story/detail/comment-item.tsx +6 -3
  200. package/src/components/story/detail/comment-thread.tsx +1 -0
  201. package/src/components/story/detail/reaction-bar.tsx +1 -1
  202. package/src/components/story/detail/story-detail-body.tsx +86 -19
  203. package/src/components/story/detail/story-detail-toolbar/__tests__/related-test-cases.test.tsx +173 -10
  204. package/src/components/story/detail/story-detail-toolbar/associated-attachments-panel.tsx +144 -8
  205. package/src/components/story/detail/story-detail-toolbar/categories.tsx +82 -38
  206. package/src/components/story/detail/story-detail-toolbar/children.tsx +254 -174
  207. package/src/components/story/detail/story-detail-toolbar/dependency-panel.tsx +140 -58
  208. package/src/components/story/detail/story-detail-toolbar/index.tsx +613 -0
  209. package/src/components/story/detail/story-detail-toolbar/related-test-cases.tsx +1010 -87
  210. package/src/components/story/detail/story-detail-toolbar/scroll-hint.tsx +57 -0
  211. package/src/components/story/detail/story-detail-toolbar/use-panel-frozen-groups.ts +97 -0
  212. package/src/components/story/detail/story-properties.tsx +9 -5
  213. package/src/components/story/display/__tests__/display-dropdown-helpers.test.ts +17 -1
  214. package/src/components/story/display/__tests__/display-dropdown.test.tsx +9 -0
  215. package/src/components/story/display/__tests__/flatten-story-groups.test.ts +42 -0
  216. package/src/components/story/display/__tests__/group-fields.test.ts +81 -1
  217. package/src/components/story/display/__tests__/group-resolver.test.ts +153 -1
  218. package/src/components/story/display/__tests__/use-collapsed-subgroups.test.ts +158 -0
  219. package/src/components/story/display/__tests__/use-display-options.test.ts +32 -3
  220. package/src/components/story/display/__tests__/use-fit-count.test.ts +198 -0
  221. package/src/components/story/display/__tests__/use-paged-story-groups.test.ts +77 -3
  222. package/src/components/story/display/constants.ts +23 -2
  223. package/src/components/story/display/display-dropdown.tsx +95 -397
  224. package/src/components/story/display/flatten-story-groups.ts +39 -0
  225. package/src/components/story/display/group-fields.ts +32 -1
  226. package/src/components/story/display/group-resolver.tsx +128 -5
  227. package/src/components/story/display/types.ts +23 -42
  228. package/src/components/story/display/use-collapsed-subgroups.ts +109 -0
  229. package/src/components/story/display/use-display-options.ts +21 -5
  230. package/src/components/story/display/use-fit-count.ts +124 -0
  231. package/src/components/story/display/use-paged-story-groups.ts +174 -31
  232. package/src/components/story/filters/field-configs.tsx +263 -0
  233. package/src/components/story/filters/index.tsx +14 -5
  234. package/src/components/story/inline-editors/__tests__/labels-editor.test.tsx +2 -0
  235. package/src/components/story/inline-editors/__tests__/priority-editor.test.tsx +15 -0
  236. package/src/components/story/inline-editors/assignee-editor.tsx +3 -3
  237. package/src/components/story/inline-editors/date-editor.tsx +4 -1
  238. package/src/components/story/inline-editors/inline-trigger.tsx +17 -4
  239. package/src/components/story/inline-editors/labels-editor.tsx +243 -35
  240. package/src/components/story/inline-editors/parent-story-editor.tsx +1 -1
  241. package/src/components/story/inline-editors/priority-editor.tsx +2 -2
  242. package/src/components/story/inline-editors/state-editor.tsx +2 -2
  243. package/src/components/story/inline-editors/story-select-dialog.tsx +56 -19
  244. package/src/components/story/peek-panel.tsx +234 -51
  245. package/src/components/story/relations/__tests__/design-select-dialog.test.tsx +131 -0
  246. package/src/components/story/relations/attachment-manage-dialog.tsx +1 -1
  247. package/src/components/story/relations/design-select-dialog.tsx +285 -0
  248. package/src/components/story/relations/knowledge-select-dialog.tsx +3 -3
  249. package/src/components/story/relations/link-manage-dialog.tsx +2 -2
  250. package/src/components/story/story-list-view.tsx +170 -17
  251. package/src/components/story/story-panel-header.tsx +18 -11
  252. package/src/components/story/story-toolbar.tsx +177 -126
  253. package/src/components/story/transfer-story-popover.tsx +1 -1
  254. package/src/components/story/types.ts +11 -2
  255. package/src/components/story/views/__tests__/calendar-view.test.tsx +262 -0
  256. package/src/components/story/views/__tests__/kanban-drop-subgroup.test.ts +68 -0
  257. package/src/components/story/views/__tests__/kanban-peek-sync.test.tsx +184 -0
  258. package/src/components/story/views/__tests__/kanban-view-membership-sync.test.tsx +179 -0
  259. package/src/components/story/views/__tests__/timeline-view.test.tsx +453 -0
  260. package/src/components/story/views/__tests__/view-icon.test.tsx +45 -0
  261. package/src/components/story/views/__tests__/view-types.test.ts +0 -8
  262. package/src/components/story/views/calendar/__tests__/mappers.test.ts +201 -0
  263. package/src/components/story/views/calendar/__tests__/slot-draft.test.ts +78 -0
  264. package/src/components/story/views/calendar/drag-blocked.ts +41 -0
  265. package/src/components/story/views/calendar/i18n.ts +91 -0
  266. package/src/components/story/views/calendar/mappers.ts +119 -0
  267. package/src/components/story/views/calendar/slot-draft.ts +48 -0
  268. package/src/components/story/views/calendar-view.tsx +490 -223
  269. package/src/components/story/views/create-view-dialog.tsx +6 -6
  270. package/src/components/story/views/kanban-view.tsx +618 -0
  271. package/src/components/story/views/story-list/__tests__/use-flat-rows.test.ts +76 -0
  272. package/src/components/story/views/story-list/batch-preview-dialog.tsx +3 -3
  273. package/src/components/story/views/story-list/batch-toolbar.tsx +17 -34
  274. package/src/components/story/views/story-list/group.tsx +4 -2
  275. package/src/components/story/views/story-list/index.tsx +142 -34
  276. package/src/components/story/views/story-list/use-flat-rows.ts +163 -0
  277. package/src/components/story/views/timeline/__tests__/mappers.test.ts +742 -0
  278. package/src/components/story/views/timeline/__tests__/sentinel-geometry.test.ts +76 -0
  279. package/src/components/story/views/timeline/__tests__/use-date-commit.test.tsx +372 -0
  280. package/src/components/story/views/timeline/i18n.ts +96 -0
  281. package/src/components/story/views/timeline/mappers.ts +506 -0
  282. package/src/components/story/views/timeline/sentinel-geometry.ts +43 -0
  283. package/src/components/story/views/timeline/use-date-commit.ts +169 -0
  284. package/src/components/story/views/timeline-view.tsx +593 -222
  285. package/src/components/story/views/view-list-section.tsx +4 -4
  286. package/src/components/story/views/view-selector-button.tsx +9 -10
  287. package/src/components/story/views/view-switcher.tsx +7 -1
  288. package/src/components/story/views/view-types.ts +1 -5
  289. package/src/components/testcase/__tests__/batch-toolbar.test.tsx +245 -0
  290. package/src/components/testcase/__tests__/board-view.test.tsx +241 -0
  291. package/src/components/testcase/__tests__/case-row.test.tsx +24 -10
  292. package/src/components/testcase/__tests__/constants.test.ts +151 -0
  293. package/src/components/testcase/__tests__/create-dialog-scope.test.tsx +173 -0
  294. package/src/components/testcase/__tests__/display-options.test.tsx +154 -0
  295. package/src/components/testcase/__tests__/export-entry.test.tsx +279 -0
  296. package/src/components/testcase/__tests__/filters.test.tsx +280 -0
  297. package/src/components/testcase/__tests__/list-view-scope.test.tsx +290 -0
  298. package/src/components/testcase/__tests__/list-view.test.tsx +552 -7
  299. package/src/components/testcase/__tests__/manual-move.test.ts +69 -0
  300. package/src/components/testcase/__tests__/peek-panel.test.tsx +89 -8
  301. package/src/components/testcase/__tests__/toolbar.test.tsx +302 -0
  302. package/src/components/testcase/__tests__/view-fallback.test.tsx +272 -0
  303. package/src/components/testcase/__tests__/view-management.test.tsx +179 -0
  304. package/src/components/testcase/ai/generate-dialog.tsx +1 -1
  305. package/src/components/testcase/constants.ts +83 -0
  306. package/src/components/testcase/create-testcase-dialog.tsx +76 -8
  307. package/src/components/testcase/detail/__tests__/select-cases-dialog.test.tsx +163 -0
  308. package/src/components/testcase/detail/select-cases-dialog.tsx +465 -0
  309. package/src/components/testcase/detail/story-link-editor.tsx +1 -1
  310. package/src/components/testcase/display/display-dropdown.tsx +147 -0
  311. package/src/components/testcase/display/field-configs.ts +80 -0
  312. package/src/components/testcase/display/use-testcase-display-options.ts +59 -0
  313. package/src/components/testcase/filters/field-configs.tsx +748 -0
  314. package/src/components/testcase/filters/index.tsx +35 -127
  315. package/src/components/testcase/inline-editors/assignee-editor.tsx +6 -6
  316. package/src/components/testcase/inline-editors/folder-editor.tsx +9 -9
  317. package/src/components/testcase/inline-editors/priority-editor.tsx +47 -31
  318. package/src/components/testcase/inline-editors/state-editor.tsx +14 -12
  319. package/src/components/testcase/inline-editors/type-editor.tsx +31 -20
  320. package/src/components/testcase/list/case-row.tsx +57 -2
  321. package/src/components/testcase/list/grouped-list.tsx +3 -2
  322. package/src/components/testcase/list-view.tsx +626 -139
  323. package/src/components/testcase/peek-panel.tsx +69 -11
  324. package/src/components/testcase/plans/plan-list.tsx +6 -1
  325. package/src/components/testcase/testcase-toolbar.tsx +349 -94
  326. package/src/components/testcase/views/batch-toolbar.tsx +203 -0
  327. package/src/components/testcase/views/board-view.tsx +546 -0
  328. package/src/components/testcase/views/create-view-dialog.tsx +26 -14
  329. package/src/components/testcase/views/move.ts +56 -0
  330. package/src/components/testcase/views/view-selector-button.tsx +82 -30
  331. package/src/components/testcase/views/view-switcher.tsx +12 -5
  332. package/src/components/testcase/views/view-types.ts +50 -27
  333. package/src/components/tiptap/mindmap/lib/__tests__/shortcuts.test.ts +5 -4
  334. package/src/components/tiptap/mindmap/lib/shortcuts.ts +4 -3
  335. package/src/components/tiptap/node/doc-card-node-view.tsx +2 -1
  336. package/src/components/tiptap/ui/ai-menu/ai-menu.tsx +6 -1
  337. package/src/components/tiptap/ui/doc-reference-interaction/doc-reference-interaction.tsx +2 -1
  338. package/src/components/ui/checkbox.tsx +4 -4
  339. package/src/components/ui/popover.tsx +1 -1
  340. package/src/components/workspace/dialogs/edit-workspace-dialog.tsx +1 -1
  341. package/src/components/workspace/kb/workspace-kb-manage-dialog.tsx +1 -1
  342. package/src/components/workspace/kb/workspace-quick-doc-dialog.tsx +1 -1
  343. package/src/components/workspace/members/workspace-member-item.tsx +2 -2
  344. package/src/components/workspace/members/workspace-members-manager.tsx +2 -2
  345. package/src/config/sidebar-routes.tsx +5 -13
  346. package/src/hooks/__tests__/use-commands.test.tsx +17 -5
  347. package/src/hooks/use-commands.ts +4 -4
  348. package/src/hooks/use-toolbar-search.ts +7 -2
  349. package/src/lib/__tests__/datetime-local.test.ts +46 -0
  350. package/src/lib/__tests__/datetime.test.ts +7 -0
  351. package/src/lib/__tests__/layout-responsive.test.ts +123 -0
  352. package/src/lib/__tests__/sidebar-utils.test.ts +4 -4
  353. package/src/lib/ai/story-ai-stream.ts +1 -1
  354. package/src/lib/ai/use-selected-model.ts +15 -5
  355. package/src/lib/changelog/sdk-versions.ts +22 -22
  356. package/src/lib/collab/__tests__/presence-store.test.ts +0 -1
  357. package/src/lib/collab/module-map.ts +3 -5
  358. package/src/lib/collections/index.ts +0 -1
  359. package/src/lib/commands/__tests__/registry.test.ts +2 -5
  360. package/src/lib/commands/registry.ts +0 -3
  361. package/src/lib/commands/types.ts +4 -2
  362. package/src/lib/datetime.ts +20 -3
  363. package/src/lib/hooks/__tests__/use-synced-state.test.tsx +54 -0
  364. package/src/lib/hooks/use-story-panel-open.ts +134 -0
  365. package/src/lib/hooks/use-synced-state.ts +17 -0
  366. package/src/lib/hotkeys/__tests__/registry.test.ts +1 -1
  367. package/src/lib/hotkeys/registry.ts +0 -3
  368. package/src/lib/layout-responsive.ts +140 -0
  369. package/src/lib/peek-dock.ts +32 -0
  370. package/src/lib/plugin-runtime/__tests__/plugin-tool-schema-parity.test.ts +140 -0
  371. package/src/lib/plugin-runtime/plugin-client-tools.ts +28 -46
  372. package/src/lib/plugin-runtime/plugin-tool-defs.ts +152 -0
  373. package/src/lib/project-module-meta.ts +1 -8
  374. package/src/lib/sanitize.ts +28 -2
  375. package/src/lib/sidebar-utils.ts +1 -1
  376. package/src/lib/theme/__tests__/theme-mode.test.ts +96 -0
  377. package/src/lib/theme/theme-mode.ts +77 -0
  378. package/src/paraglide/messages/_index.js +83422 -5128
  379. package/src/paraglide/messages/en.js +26715 -0
  380. package/src/paraglide/messages/zh.js +26713 -0
  381. package/src/providers/index.tsx +4 -1
  382. package/src/providers/theme-mode-provider.tsx +135 -0
  383. package/src/routeTree.gen.ts +56 -101
  384. package/src/routes/$lang/docs/$/route.lazy.tsx +7 -2
  385. package/src/routes/-tests/chat-body-validation.test.ts +61 -3
  386. package/src/routes/_nav/-components/nav-not-found.tsx +2 -2
  387. package/src/routes/_nav/bugs/$bugId/route.lazy.tsx +1 -0
  388. package/src/routes/_nav/dashboard/-components/avatar-group.tsx +2 -2
  389. package/src/routes/_nav/knowledge/index.lazy.tsx +1 -1
  390. package/src/routes/_nav/projects/$projectId/index.lazy.tsx +14 -6
  391. package/src/routes/_nav/route.lazy.tsx +9 -6
  392. package/src/routes/_nav/settings/account/route.tsx +3 -2
  393. package/src/routes/_nav/stories/$storyId/route.lazy.tsx +41 -7
  394. package/src/routes/_nav/stories/-components/story-detail-skeleton.tsx +1 -1
  395. package/src/routes/_nav/tasks/$taskId/route.lazy.tsx +39 -0
  396. package/src/routes/_nav/tasks/$taskId/route.tsx +43 -0
  397. package/src/routes/_nav/tasks/-components/ai-task-detail.tsx +307 -0
  398. package/src/routes/_nav/tasks/-components/ai-task-list.tsx +217 -0
  399. package/src/routes/_nav/tasks/-components/ai-task-status-badge.tsx +46 -0
  400. package/src/routes/_nav/tasks/-components/assigned-list.tsx +157 -0
  401. package/src/routes/_nav/tasks/-components/create-ai-task-dialog.tsx +228 -0
  402. package/src/routes/_nav/tasks/-components/source-ai-exec-dialog.tsx +175 -0
  403. package/src/routes/_nav/tasks/-components/task-constants.ts +115 -0
  404. package/src/routes/_nav/tasks/-components/use-task-filter.ts +64 -0
  405. package/src/routes/_nav/tasks/-tests/create-ai-task-dialog.test.tsx +175 -0
  406. package/src/routes/_nav/tasks/-tests/task-filter.test.ts +134 -0
  407. package/src/routes/_nav/tasks/-tests/task-styles.test.tsx +119 -0
  408. package/src/routes/_nav/tasks/index.lazy.tsx +114 -0
  409. package/src/routes/_nav/tasks/index.tsx +47 -0
  410. package/src/routes/_nav/tasks/route.tsx +22 -0
  411. package/src/routes/api/chat.ts +23 -19
  412. package/src/routes/api/design/prototype/route.ts +2 -4
  413. package/src/routes/invite/$token/route.lazy.tsx +2 -2
  414. package/src/server/__tests__/bug-groups-two-level.test.ts +263 -0
  415. package/src/server/__tests__/builtin-project.test.ts +45 -1
  416. package/src/server/__tests__/csv-export.test.ts +319 -0
  417. package/src/server/__tests__/task-assigned-query.test.ts +232 -0
  418. package/src/server/__tests__/task-context-builder.test.ts +175 -0
  419. package/src/server/__tests__/task-executor.test.ts +349 -0
  420. package/src/server/__tests__/task-priority-map.test.ts +41 -0
  421. package/src/server/__tests__/task-serverfn-crud.test.ts +639 -0
  422. package/src/server/__tests__/task-serverfn-queries.test.ts +403 -0
  423. package/src/server/__tests__/testcase-board.test.ts +301 -0
  424. package/src/server/__tests__/testcase-bulk.test.ts +155 -0
  425. package/src/server/__tests__/testcase-list-scope.test.ts +215 -0
  426. package/src/server/ai-gateway/__tests__/chat-handler-prompt-key.test.ts +106 -0
  427. package/src/server/ai-gateway/__tests__/chat-stream-builder-sandbox.test.ts +9 -3
  428. package/src/server/ai-gateway/__tests__/conformance.test.ts +4 -3
  429. package/src/server/ai-gateway/adapter.ts +4 -2
  430. package/src/server/ai-gateway/chat-handler.ts +13 -5
  431. package/src/server/ai-gateway/chat-stream-builder.ts +12 -7
  432. package/src/server/ai-gateway/sandbox/__tests__/harness-sandbox.test.ts +158 -0
  433. package/src/server/ai-gateway/sandbox/harness-sandbox.ts +10 -3
  434. package/src/server/ai-gateway/story-handler.ts +7 -2
  435. package/src/server/ai-gateway/tools/plugin-lifecycle-defs.ts +8 -99
  436. package/src/server/ai-gateway/tools/plugin-tools.ts +6 -10
  437. package/src/server/ai-task/assigned-query.ts +167 -0
  438. package/src/server/ai-task/context-builder.ts +182 -0
  439. package/src/server/ai-task/executor.ts +296 -0
  440. package/src/server/ai-task/priority-map.ts +37 -0
  441. package/src/server/ai-task/types.ts +15 -0
  442. package/src/server/builtin-project.ts +24 -0
  443. package/src/server/collab/seed.ts +23 -0
  444. package/src/server/csv.ts +61 -0
  445. package/src/server/lib/__tests__/sequence-number-retry.test.ts +160 -0
  446. package/src/server/lib/rate-limit.ts +1 -0
  447. package/src/server/lib/sequence-number-retry.ts +85 -0
  448. package/src/server/serverFns/__tests__/story-crud.test.ts +28 -9
  449. package/src/server/serverFns/__tests__/story-types.test.ts +14 -9
  450. package/src/server/serverFns/__tests__/update-story-guard.test.ts +2 -2
  451. package/src/server/serverFns/bug/__tests__/bug-comments.test.ts +25 -0
  452. package/src/server/serverFns/bug/__tests__/bug-crud.test.ts +87 -8
  453. package/src/server/serverFns/bug/__tests__/bug-groups.test.ts +36 -18
  454. package/src/server/serverFns/bug/__tests__/bug-list-query.test.ts +21 -0
  455. package/src/server/serverFns/bug/__tests__/bug-reactions.test.ts +335 -0
  456. package/src/server/serverFns/bug/__tests__/bug-reorder.test.ts +165 -0
  457. package/src/server/serverFns/bug/__tests__/bug-story.test.ts +4 -1
  458. package/src/server/serverFns/bug/bug-comments.ts +5 -0
  459. package/src/server/serverFns/bug/bug-crud.ts +42 -27
  460. package/src/server/serverFns/bug/bug-display-options.ts +11 -0
  461. package/src/server/serverFns/bug/bug-export.ts +137 -0
  462. package/src/server/serverFns/bug/bug-group-query.ts +16 -5
  463. package/src/server/serverFns/bug/bug-groups.ts +39 -15
  464. package/src/server/serverFns/bug/bug-list-query.ts +8 -1
  465. package/src/server/serverFns/bug/bug-reactions.ts +123 -0
  466. package/src/server/serverFns/bug/bug-reorder.ts +64 -0
  467. package/src/server/serverFns/bug/bug-story-bulk.ts +280 -0
  468. package/src/server/serverFns/bug/bug-story.ts +47 -39
  469. package/src/server/serverFns/bug/index.ts +6 -0
  470. package/src/server/serverFns/design/__tests__/designs.test.ts +0 -2
  471. package/src/server/serverFns/design/designs.ts +0 -64
  472. package/src/server/serverFns/design/detail.ts +36 -2
  473. package/src/server/serverFns/iteration/iteration-crud.ts +25 -1
  474. package/src/server/serverFns/project/module-overview.ts +1 -2
  475. package/src/server/serverFns/story/__tests__/create-story-internal.test.ts +112 -3
  476. package/src/server/serverFns/story/__tests__/story-assoc.test.ts +77 -6
  477. package/src/server/serverFns/story/__tests__/story-crud-date-key.test.ts +187 -0
  478. package/src/server/serverFns/story/__tests__/story-gantt-deps.test.ts +163 -0
  479. package/src/server/serverFns/story/__tests__/story-groups.test.ts +4 -0
  480. package/src/server/serverFns/story/__tests__/story-list-query.test.ts +20 -0
  481. package/src/server/serverFns/story/__tests__/story-search.test.ts +5 -0
  482. package/src/server/serverFns/story/__tests__/story-transfer.test.ts +51 -1
  483. package/src/server/serverFns/story/index.ts +2 -1
  484. package/src/server/serverFns/story/story-assoc.ts +44 -14
  485. package/src/server/serverFns/story/story-crud/bulk.ts +5 -3
  486. package/src/server/serverFns/story/story-crud/create-story-internal.ts +39 -21
  487. package/src/server/serverFns/story/story-crud.ts +37 -26
  488. package/src/server/serverFns/story/story-dependencies.ts +31 -0
  489. package/src/server/serverFns/story/story-groups.ts +15 -11
  490. package/src/server/serverFns/story/story-list-query.ts +16 -4
  491. package/src/server/serverFns/story/story-search.ts +9 -6
  492. package/src/server/serverFns/story/story-transfer.ts +40 -32
  493. package/src/server/serverFns/story-display-options.ts +21 -10
  494. package/src/server/serverFns/story-view.ts +2 -2
  495. package/src/server/serverFns/tasks/task-crud.ts +264 -0
  496. package/src/server/serverFns/tasks/task-queries.ts +172 -0
  497. package/src/server/serverFns/testcase/__tests__/generation.test.ts +3 -0
  498. package/src/server/serverFns/testcase/__tests__/stats.test.ts +18 -4
  499. package/src/server/serverFns/testcase/__tests__/testcase-board.test.ts +113 -0
  500. package/src/server/serverFns/testcase/__tests__/testcase-crud.test.ts +15 -13
  501. package/src/server/serverFns/testcase/__tests__/testcase-groups.test.ts +32 -10
  502. package/src/server/serverFns/testcase/bulk.ts +195 -0
  503. package/src/server/serverFns/testcase/generation.ts +10 -0
  504. package/src/server/serverFns/testcase/stats.ts +22 -8
  505. package/src/server/serverFns/testcase/testcase-board.ts +198 -0
  506. package/src/server/serverFns/testcase/testcase-crud.ts +45 -25
  507. package/src/server/serverFns/testcase/testcase-display-options.ts +166 -0
  508. package/src/server/serverFns/testcase/testcase-export.ts +125 -0
  509. package/src/server/serverFns/testcase/testcase-filter-views.ts +36 -9
  510. package/src/server/serverFns/testcase/testcase-groups.ts +27 -23
  511. package/src/server/serverFns/testcase/testcase-reorder.ts +66 -0
  512. package/src/server/story/__tests__/date-key.test.ts +57 -0
  513. package/src/server/story/date-key.ts +36 -0
  514. package/src/server/story/types.ts +3 -7
  515. package/src/server/testcase/__tests__/list-query.test.ts +269 -0
  516. package/src/server/testcase/list-query.ts +145 -0
  517. package/src/shared/bug/__tests__/constants.test.ts +44 -0
  518. package/src/shared/bug/constants.ts +34 -1
  519. package/src/styles/globals.css +24 -3
  520. package/src/types/project.ts +2 -3
  521. package/src/__tests__/tag-badge.test.tsx +0 -41
  522. package/src/components/bug/__tests__/bug-list-table.test.tsx +0 -289
  523. package/src/components/bug/bug-list-table.tsx +0 -187
  524. package/src/components/bug/columns.tsx +0 -193
  525. package/src/components/bug/filters/add-filter-dropdown.tsx +0 -70
  526. package/src/components/bug/filters/applied-filters.tsx +0 -214
  527. package/src/components/bug/filters/filter-condition.tsx +0 -151
  528. package/src/components/bug/filters/filter-row.tsx +0 -104
  529. package/src/components/bug/filters/filter-toggle.tsx +0 -61
  530. package/src/components/bug/filters/filter-types.ts +0 -146
  531. package/src/components/bug/filters/filter-value-input.tsx +0 -518
  532. package/src/components/story/detail/story-detail-toolbar.tsx +0 -382
  533. package/src/components/story/filters/add-filter-dropdown.tsx +0 -70
  534. package/src/components/story/filters/applied-filters.tsx +0 -225
  535. package/src/components/story/filters/filter-condition.tsx +0 -152
  536. package/src/components/story/filters/filter-row.tsx +0 -116
  537. package/src/components/story/filters/filter-toggle.tsx +0 -60
  538. package/src/components/story/filters/filter-types.ts +0 -120
  539. package/src/components/story/filters/filter-value-input.tsx +0 -182
  540. package/src/components/story/views/__tests__/use-flat-rows.test.ts +0 -76
  541. package/src/components/story/views/kanban-board.tsx +0 -464
  542. package/src/components/story/views/kanban-card.tsx +0 -100
  543. package/src/components/story/views/use-flat-rows.ts +0 -163
  544. package/src/components/tags/__tests__/tags.test.ts +0 -388
  545. package/src/components/tags/nav-tag.tsx +0 -121
  546. package/src/components/tags/pages/tag-detail-page.tsx +0 -29
  547. package/src/components/tags/pages/tag-settings-page.tsx +0 -32
  548. package/src/components/tags/pages/tags-index-page.tsx +0 -32
  549. package/src/components/tags/tag-badge.tsx +0 -56
  550. package/src/components/tags/tag-color-classes.ts +0 -61
  551. package/src/components/tags/tag-color-picker.tsx +0 -54
  552. package/src/components/tags/tag-components-index.ts +0 -23
  553. package/src/components/tags/tag-manager.tsx +0 -208
  554. package/src/components/tags/tag-selector.tsx +0 -164
  555. package/src/components/tags/tags-collection.ts +0 -40
  556. package/src/components/testcase/__tests__/table-view.test.tsx +0 -328
  557. package/src/components/testcase/plans/add-to-plan-bar.tsx +0 -64
  558. package/src/components/testcase/table/columns.tsx +0 -170
  559. package/src/components/testcase/table/table-view.tsx +0 -152
  560. package/src/lib/tag-colors.ts +0 -35
  561. package/src/paraglide/messages/actions_confirm.js +0 -29
  562. package/src/paraglide/messages/agent_addedtocanvas2.js +0 -30
  563. package/src/paraglide/messages/agent_clearall1.js +0 -30
  564. package/src/paraglide/messages/agent_createfailed1.js +0 -30
  565. package/src/paraglide/messages/agent_emptyexample1.js +0 -30
  566. package/src/paraglide/messages/agent_emptyhint1.js +0 -30
  567. package/src/paraglide/messages/agent_generatefailed1.js +0 -30
  568. package/src/paraglide/messages/agent_newconv1.js +0 -30
  569. package/src/paraglide/messages/agent_newconversation1.js +0 -30
  570. package/src/paraglide/messages/agent_noconversations1.js +0 -30
  571. package/src/paraglide/messages/agent_prototypefailed1.js +0 -30
  572. package/src/paraglide/messages/agent_unknownconv1.js +0 -30
  573. package/src/paraglide/messages/agentinput_agent1.js +0 -30
  574. package/src/paraglide/messages/agentinput_assistant1.js +0 -30
  575. package/src/paraglide/messages/agentinput_local1.js +0 -30
  576. package/src/paraglide/messages/agentinput_nomodel2.js +0 -30
  577. package/src/paraglide/messages/agentinput_placeholder1.js +0 -30
  578. package/src/paraglide/messages/agentinput_selectmodel2.js +0 -30
  579. package/src/paraglide/messages/agents_agent_agentquotaexceeded2.js +0 -30
  580. package/src/paraglide/messages/agents_agent_create.js +0 -29
  581. package/src/paraglide/messages/agents_agent_created.js +0 -29
  582. package/src/paraglide/messages/agents_agent_delete.js +0 -29
  583. package/src/paraglide/messages/agents_agent_deleteconfirmdesc2.js +0 -30
  584. package/src/paraglide/messages/agents_agent_deleteconfirmtext2.js +0 -30
  585. package/src/paraglide/messages/agents_agent_deleteconfirmtitle2.js +0 -30
  586. package/src/paraglide/messages/agents_agent_deletefailed1.js +0 -30
  587. package/src/paraglide/messages/agents_agent_deletesuccess1.js +0 -30
  588. package/src/paraglide/messages/agents_agent_edit.js +0 -29
  589. package/src/paraglide/messages/agents_agent_empty_createfirst1.js +0 -30
  590. package/src/paraglide/messages/agents_agent_empty_description.js +0 -29
  591. package/src/paraglide/messages/agents_agent_empty_title.js +0 -29
  592. package/src/paraglide/messages/agents_agent_savefailed1.js +0 -30
  593. package/src/paraglide/messages/agents_agent_updated.js +0 -29
  594. package/src/paraglide/messages/agents_agentform_addsuggestedprompt3.js +0 -30
  595. package/src/paraglide/messages/agents_agentform_allowedtoolshint3.js +0 -30
  596. package/src/paraglide/messages/agents_agentform_allowedtoolslabel3.js +0 -30
  597. package/src/paraglide/messages/agents_agentform_cancel1.js +0 -30
  598. package/src/paraglide/messages/agents_agentform_create1.js +0 -30
  599. package/src/paraglide/messages/agents_agentform_creating1.js +0 -30
  600. package/src/paraglide/messages/agents_agentform_description_create1.js +0 -30
  601. package/src/paraglide/messages/agents_agentform_description_edit1.js +0 -30
  602. package/src/paraglide/messages/agents_agentform_descriptionlabel2.js +0 -30
  603. package/src/paraglide/messages/agents_agentform_descriptionplaceholder2.js +0 -30
  604. package/src/paraglide/messages/agents_agentform_greetinglabel2.js +0 -30
  605. package/src/paraglide/messages/agents_agentform_greetingoptional2.js +0 -30
  606. package/src/paraglide/messages/agents_agentform_greetingplaceholder2.js +0 -30
  607. package/src/paraglide/messages/agents_agentform_knowledgebaseshint3.js +0 -30
  608. package/src/paraglide/messages/agents_agentform_knowledgebaseslabel3.js +0 -30
  609. package/src/paraglide/messages/agents_agentform_modellabel2.js +0 -30
  610. package/src/paraglide/messages/agents_agentform_modeloptional2.js +0 -30
  611. package/src/paraglide/messages/agents_agentform_modelplaceholder2.js +0 -30
  612. package/src/paraglide/messages/agents_agentform_namelabel2.js +0 -30
  613. package/src/paraglide/messages/agents_agentform_nameplaceholder2.js +0 -30
  614. package/src/paraglide/messages/agents_agentform_namerequired2.js +0 -30
  615. package/src/paraglide/messages/agents_agentform_save1.js +0 -30
  616. package/src/paraglide/messages/agents_agentform_saving1.js +0 -30
  617. package/src/paraglide/messages/agents_agentform_setdefault2.js +0 -30
  618. package/src/paraglide/messages/agents_agentform_setdefaulthint3.js +0 -30
  619. package/src/paraglide/messages/agents_agentform_suggestedpromptplaceholder3.js +0 -30
  620. package/src/paraglide/messages/agents_agentform_suggestedpromptshint3.js +0 -30
  621. package/src/paraglide/messages/agents_agentform_suggestedpromptslabel3.js +0 -30
  622. package/src/paraglide/messages/agents_agentform_systempromptlabel3.js +0 -30
  623. package/src/paraglide/messages/agents_agentform_systempromptplaceholder3.js +0 -30
  624. package/src/paraglide/messages/agents_agentform_systempromptrequired3.js +0 -30
  625. package/src/paraglide/messages/agents_agentform_temperaturehint2.js +0 -30
  626. package/src/paraglide/messages/agents_agentform_temperaturelabel2.js +0 -30
  627. package/src/paraglide/messages/agents_agentform_title_create1.js +0 -30
  628. package/src/paraglide/messages/agents_agentform_title_edit1.js +0 -30
  629. package/src/paraglide/messages/agents_askai_advice1.js +0 -30
  630. package/src/paraglide/messages/agents_askai_skills1.js +0 -30
  631. package/src/paraglide/messages/agents_bindings_defaulttag1.js +0 -30
  632. package/src/paraglide/messages/agents_bindings_desc.js +0 -29
  633. package/src/paraglide/messages/agents_bindings_failed.js +0 -29
  634. package/src/paraglide/messages/agents_bindings_followdefault1.js +0 -30
  635. package/src/paraglide/messages/agents_bindings_loading.js +0 -29
  636. package/src/paraglide/messages/agents_bindings_noagents1.js +0 -30
  637. package/src/paraglide/messages/agents_bindings_saved.js +0 -29
  638. package/src/paraglide/messages/agents_bindings_title.js +0 -29
  639. package/src/paraglide/messages/agents_bindings_unbound.js +0 -29
  640. package/src/paraglide/messages/agents_card_createdat1.js +0 -30
  641. package/src/paraglide/messages/agents_card_delete.js +0 -29
  642. package/src/paraglide/messages/agents_card_edit.js +0 -29
  643. package/src/paraglide/messages/agents_card_knowledgebases1.js +0 -30
  644. package/src/paraglide/messages/agents_card_model.js +0 -29
  645. package/src/paraglide/messages/agents_card_nodescription1.js +0 -30
  646. package/src/paraglide/messages/agents_card_noknowledgebases2.js +0 -30
  647. package/src/paraglide/messages/agents_card_notools1.js +0 -30
  648. package/src/paraglide/messages/agents_card_temperature.js +0 -29
  649. package/src/paraglide/messages/agents_card_tools.js +0 -29
  650. package/src/paraglide/messages/agents_card_updatedat1.js +0 -30
  651. package/src/paraglide/messages/agents_page_description.js +0 -29
  652. package/src/paraglide/messages/agents_page_tabs_agents.js +0 -29
  653. package/src/paraglide/messages/agents_page_tabs_bindings.js +0 -29
  654. package/src/paraglide/messages/agents_page_tabs_skills.js +0 -29
  655. package/src/paraglide/messages/agents_page_title.js +0 -29
  656. package/src/paraglide/messages/agents_skill_create.js +0 -29
  657. package/src/paraglide/messages/agents_skill_created.js +0 -29
  658. package/src/paraglide/messages/agents_skill_delete.js +0 -29
  659. package/src/paraglide/messages/agents_skill_deleteconfirmdesc2.js +0 -30
  660. package/src/paraglide/messages/agents_skill_deleteconfirmtext2.js +0 -30
  661. package/src/paraglide/messages/agents_skill_deleteconfirmtitle2.js +0 -30
  662. package/src/paraglide/messages/agents_skill_deletefailed1.js +0 -30
  663. package/src/paraglide/messages/agents_skill_deletesuccess1.js +0 -30
  664. package/src/paraglide/messages/agents_skill_edit.js +0 -29
  665. package/src/paraglide/messages/agents_skill_empty_createfirst1.js +0 -30
  666. package/src/paraglide/messages/agents_skill_empty_description.js +0 -29
  667. package/src/paraglide/messages/agents_skill_empty_title.js +0 -29
  668. package/src/paraglide/messages/agents_skill_nameconflict1.js +0 -30
  669. package/src/paraglide/messages/agents_skill_savefailed1.js +0 -30
  670. package/src/paraglide/messages/agents_skill_skillquotaexceeded2.js +0 -30
  671. package/src/paraglide/messages/agents_skill_updated.js +0 -29
  672. package/src/paraglide/messages/agents_skillform_cancel1.js +0 -30
  673. package/src/paraglide/messages/agents_skillform_create1.js +0 -30
  674. package/src/paraglide/messages/agents_skillform_creating1.js +0 -30
  675. package/src/paraglide/messages/agents_skillform_description_create1.js +0 -30
  676. package/src/paraglide/messages/agents_skillform_description_edit1.js +0 -30
  677. package/src/paraglide/messages/agents_skillform_nameinvalid2.js +0 -30
  678. package/src/paraglide/messages/agents_skillform_namelabel2.js +0 -30
  679. package/src/paraglide/messages/agents_skillform_nameplaceholder2.js +0 -30
  680. package/src/paraglide/messages/agents_skillform_namerequired2.js +0 -30
  681. package/src/paraglide/messages/agents_skillform_save1.js +0 -30
  682. package/src/paraglide/messages/agents_skillform_saving1.js +0 -30
  683. package/src/paraglide/messages/agents_skillform_templatelabel2.js +0 -30
  684. package/src/paraglide/messages/agents_skillform_templateplaceholder2.js +0 -30
  685. package/src/paraglide/messages/agents_skillform_templaterequired2.js +0 -30
  686. package/src/paraglide/messages/agents_skillform_title_create1.js +0 -30
  687. package/src/paraglide/messages/agents_skillform_title_edit1.js +0 -30
  688. package/src/paraglide/messages/agents_skillform_titlelabel2.js +0 -30
  689. package/src/paraglide/messages/agents_skillform_titleplaceholder2.js +0 -30
  690. package/src/paraglide/messages/agents_skillform_titlerequired2.js +0 -30
  691. package/src/paraglide/messages/agents_skills_menuhint1.js +0 -30
  692. package/src/paraglide/messages/agents_tools_delete_project.js +0 -29
  693. package/src/paraglide/messages/agents_tools_document_action.js +0 -29
  694. package/src/paraglide/messages/agents_tools_knowledge_search.js +0 -29
  695. package/src/paraglide/messages/agents_tools_reindex_knowledge_base.js +0 -29
  696. package/src/paraglide/messages/agents_tools_user_data_query.js +0 -29
  697. package/src/paraglide/messages/agents_tools_web_search.js +0 -29
  698. package/src/paraglide/messages/ai_annotation_not_configured.js +0 -30
  699. package/src/paraglide/messages/ai_prompts_badgepopular1.js +0 -30
  700. package/src/paraglide/messages/ai_prompts_badgerecent1.js +0 -30
  701. package/src/paraglide/messages/ai_prompts_cat_all.js +0 -29
  702. package/src/paraglide/messages/ai_prompts_cat_analysis.js +0 -29
  703. package/src/paraglide/messages/ai_prompts_cat_code.js +0 -29
  704. package/src/paraglide/messages/ai_prompts_cat_creative.js +0 -29
  705. package/src/paraglide/messages/ai_prompts_cat_research.js +0 -29
  706. package/src/paraglide/messages/ai_prompts_cat_writing.js +0 -29
  707. package/src/paraglide/messages/ai_prompts_description.js +0 -29
  708. package/src/paraglide/messages/ai_prompts_filterby1.js +0 -30
  709. package/src/paraglide/messages/ai_prompts_filterlabel1.js +0 -30
  710. package/src/paraglide/messages/ai_prompts_listlabel1.js +0 -30
  711. package/src/paraglide/messages/ai_prompts_loading.js +0 -29
  712. package/src/paraglide/messages/ai_prompts_nomatchdesc2.js +0 -30
  713. package/src/paraglide/messages/ai_prompts_nomatchtitle2.js +0 -30
  714. package/src/paraglide/messages/ai_prompts_nonedesc1.js +0 -30
  715. package/src/paraglide/messages/ai_prompts_nonetitle1.js +0 -30
  716. package/src/paraglide/messages/ai_prompts_resultcount1.js +0 -30
  717. package/src/paraglide/messages/ai_prompts_searchedfor1.js +0 -30
  718. package/src/paraglide/messages/ai_prompts_searchlabel1.js +0 -30
  719. package/src/paraglide/messages/ai_prompts_searchplaceholder1.js +0 -30
  720. package/src/paraglide/messages/ai_prompts_title.js +0 -29
  721. package/src/paraglide/messages/ai_prompts_usagecount1.js +0 -30
  722. package/src/paraglide/messages/ai_prompts_uselabel1.js +0 -30
  723. package/src/paraglide/messages/anyhub_app_permissions.js +0 -30
  724. package/src/paraglide/messages/anyhub_close.js +0 -29
  725. package/src/paraglide/messages/anyhub_github_install_hint.js +0 -30
  726. package/src/paraglide/messages/anyhub_install.js +0 -29
  727. package/src/paraglide/messages/anyhub_install_app.js +0 -30
  728. package/src/paraglide/messages/anyhub_install_failed.js +0 -30
  729. package/src/paraglide/messages/anyhub_install_first_app.js +0 -30
  730. package/src/paraglide/messages/anyhub_install_success.js +0 -30
  731. package/src/paraglide/messages/anyhub_installed.js +0 -29
  732. package/src/paraglide/messages/anyhub_installing.js +0 -29
  733. package/src/paraglide/messages/anyhub_loading.js +0 -29
  734. package/src/paraglide/messages/anyhub_local_apps.js +0 -30
  735. package/src/paraglide/messages/anyhub_local_install_hint.js +0 -30
  736. package/src/paraglide/messages/anyhub_marketplace.js +0 -29
  737. package/src/paraglide/messages/anyhub_marketplace_empty.js +0 -30
  738. package/src/paraglide/messages/anyhub_no_entry.js +0 -30
  739. package/src/paraglide/messages/anyhub_no_installed_apps.js +0 -30
  740. package/src/paraglide/messages/anyhub_no_matching_apps.js +0 -30
  741. package/src/paraglide/messages/anyhub_permissions.js +0 -29
  742. package/src/paraglide/messages/anyhub_permissions_saved.js +0 -30
  743. package/src/paraglide/messages/anyhub_pin_to_sidebar.js +0 -30
  744. package/src/paraglide/messages/anyhub_save_permissions.js +0 -30
  745. package/src/paraglide/messages/anyhub_search_apps.js +0 -30
  746. package/src/paraglide/messages/anyhub_uninstall.js +0 -29
  747. package/src/paraglide/messages/anyhub_uninstalled.js +0 -29
  748. package/src/paraglide/messages/anyhub_unpin.js +0 -29
  749. package/src/paraglide/messages/anyhub_update.js +0 -29
  750. package/src/paraglide/messages/apps_askai_checkup1.js +0 -30
  751. package/src/paraglide/messages/apps_askai_checkup_prompt1.js +0 -30
  752. package/src/paraglide/messages/apps_askai_integration1.js +0 -30
  753. package/src/paraglide/messages/apps_askai_integration_prompt1.js +0 -30
  754. package/src/paraglide/messages/apps_detail_title.js +0 -29
  755. package/src/paraglide/messages/apps_title.js +0 -29
  756. package/src/paraglide/messages/auth_account_emailunverified1.js +0 -30
  757. package/src/paraglide/messages/auth_account_emailunverifieddesc2.js +0 -30
  758. package/src/paraglide/messages/auth_account_emailverified1.js +0 -30
  759. package/src/paraglide/messages/auth_account_resendverify1.js +0 -30
  760. package/src/paraglide/messages/auth_brand_subtitle.js +0 -29
  761. package/src/paraglide/messages/auth_brand_title.js +0 -29
  762. package/src/paraglide/messages/auth_demo.js +0 -29
  763. package/src/paraglide/messages/auth_features_dataanalysis1.js +0 -30
  764. package/src/paraglide/messages/auth_features_dataanalysisdesc2.js +0 -30
  765. package/src/paraglide/messages/auth_features_roadmap.js +0 -29
  766. package/src/paraglide/messages/auth_features_roadmapdesc1.js +0 -30
  767. package/src/paraglide/messages/auth_features_teamcollaboration1.js +0 -30
  768. package/src/paraglide/messages/auth_features_teamcollaborationdesc2.js +0 -30
  769. package/src/paraglide/messages/auth_features_userresearch1.js +0 -30
  770. package/src/paraglide/messages/auth_features_userresearchdesc2.js +0 -30
  771. package/src/paraglide/messages/auth_forgotpassword_brandsubtitle2.js +0 -30
  772. package/src/paraglide/messages/auth_forgotpassword_emaillabel2.js +0 -30
  773. package/src/paraglide/messages/auth_forgotpassword_failed1.js +0 -30
  774. package/src/paraglide/messages/auth_forgotpassword_gologin2.js +0 -30
  775. package/src/paraglide/messages/auth_forgotpassword_remembered1.js +0 -30
  776. package/src/paraglide/messages/auth_forgotpassword_sent1.js +0 -30
  777. package/src/paraglide/messages/auth_forgotpassword_submit1.js +0 -30
  778. package/src/paraglide/messages/auth_forgotpassword_submitting1.js +0 -30
  779. package/src/paraglide/messages/auth_forgotpassword_subtitle1.js +0 -30
  780. package/src/paraglide/messages/auth_forgotpassword_title1.js +0 -30
  781. package/src/paraglide/messages/auth_login_createaccount1.js +0 -30
  782. package/src/paraglide/messages/auth_login_defaultaction1.js +0 -30
  783. package/src/paraglide/messages/auth_login_emaillabel1.js +0 -30
  784. package/src/paraglide/messages/auth_login_emailplaceholder1.js +0 -30
  785. package/src/paraglide/messages/auth_login_forgotpassword1.js +0 -30
  786. package/src/paraglide/messages/auth_login_hidepassword1.js +0 -30
  787. package/src/paraglide/messages/auth_login_invalidcredentials1.js +0 -30
  788. package/src/paraglide/messages/auth_login_noaccount1.js +0 -30
  789. package/src/paraglide/messages/auth_login_orwithemail2.js +0 -30
  790. package/src/paraglide/messages/auth_login_passwordlabel1.js +0 -30
  791. package/src/paraglide/messages/auth_login_passwordplaceholder1.js +0 -30
  792. package/src/paraglide/messages/auth_login_remember.js +0 -29
  793. package/src/paraglide/messages/auth_login_servererror1.js +0 -30
  794. package/src/paraglide/messages/auth_login_showpassword1.js +0 -30
  795. package/src/paraglide/messages/auth_login_ssocontinuewithemail3.js +0 -30
  796. package/src/paraglide/messages/auth_login_ssodetected1.js +0 -30
  797. package/src/paraglide/messages/auth_login_ssofailed1.js +0 -30
  798. package/src/paraglide/messages/auth_login_ssologinwith2.js +0 -30
  799. package/src/paraglide/messages/auth_login_ssosubmitting1.js +0 -30
  800. package/src/paraglide/messages/auth_login_submit.js +0 -29
  801. package/src/paraglide/messages/auth_login_submitting.js +0 -29
  802. package/src/paraglide/messages/auth_login_subtitle.js +0 -29
  803. package/src/paraglide/messages/auth_login_success.js +0 -29
  804. package/src/paraglide/messages/auth_login_title.js +0 -29
  805. package/src/paraglide/messages/auth_login_useprovider1.js +0 -30
  806. package/src/paraglide/messages/auth_register_confirmpasswordlabel2.js +0 -30
  807. package/src/paraglide/messages/auth_register_confirmpasswordplaceholder2.js +0 -30
  808. package/src/paraglide/messages/auth_register_emaillabel1.js +0 -30
  809. package/src/paraglide/messages/auth_register_failed.js +0 -29
  810. package/src/paraglide/messages/auth_register_gologin1.js +0 -30
  811. package/src/paraglide/messages/auth_register_hasaccount1.js +0 -30
  812. package/src/paraglide/messages/auth_register_invitationcodelabel2.js +0 -30
  813. package/src/paraglide/messages/auth_register_invitationcodeplaceholder2.js +0 -30
  814. package/src/paraglide/messages/auth_register_orwithemail2.js +0 -30
  815. package/src/paraglide/messages/auth_register_passwordlabel1.js +0 -30
  816. package/src/paraglide/messages/auth_register_passwordplaceholder1.js +0 -30
  817. package/src/paraglide/messages/auth_register_submit.js +0 -29
  818. package/src/paraglide/messages/auth_register_submitting.js +0 -29
  819. package/src/paraglide/messages/auth_register_subtitle.js +0 -29
  820. package/src/paraglide/messages/auth_register_success.js +0 -29
  821. package/src/paraglide/messages/auth_register_title.js +0 -29
  822. package/src/paraglide/messages/auth_register_usernamelabel1.js +0 -30
  823. package/src/paraglide/messages/auth_register_usernameplaceholder1.js +0 -30
  824. package/src/paraglide/messages/auth_resetpassword_confirmpasswordlabel3.js +0 -30
  825. package/src/paraglide/messages/auth_resetpassword_confirmpasswordplaceholder3.js +0 -30
  826. package/src/paraglide/messages/auth_resetpassword_failed1.js +0 -30
  827. package/src/paraglide/messages/auth_resetpassword_gologin2.js +0 -30
  828. package/src/paraglide/messages/auth_resetpassword_newpasswordlabel3.js +0 -30
  829. package/src/paraglide/messages/auth_resetpassword_newpasswordplaceholder3.js +0 -30
  830. package/src/paraglide/messages/auth_resetpassword_submit1.js +0 -30
  831. package/src/paraglide/messages/auth_resetpassword_submitting1.js +0 -30
  832. package/src/paraglide/messages/auth_resetpassword_subtitle1.js +0 -30
  833. package/src/paraglide/messages/auth_resetpassword_success1.js +0 -30
  834. package/src/paraglide/messages/auth_resetpassword_title1.js +0 -30
  835. package/src/paraglide/messages/auth_verify_alreadyverified1.js +0 -30
  836. package/src/paraglide/messages/auth_verify_godashboard1.js +0 -30
  837. package/src/paraglide/messages/auth_verify_invalid.js +0 -29
  838. package/src/paraglide/messages/auth_verify_invaliddesc1.js +0 -30
  839. package/src/paraglide/messages/auth_verify_notlogged1.js +0 -30
  840. package/src/paraglide/messages/auth_verify_resend.js +0 -29
  841. package/src/paraglide/messages/auth_verify_resendsuccess1.js +0 -30
  842. package/src/paraglide/messages/auth_verify_success.js +0 -29
  843. package/src/paraglide/messages/auth_verify_successdesc1.js +0 -30
  844. package/src/paraglide/messages/billing_action.js +0 -29
  845. package/src/paraglide/messages/billing_aiquota1.js +0 -30
  846. package/src/paraglide/messages/billing_amount.js +0 -29
  847. package/src/paraglide/messages/billing_checkoutcreatefailed2.js +0 -30
  848. package/src/paraglide/messages/billing_chooseplantitle2.js +0 -30
  849. package/src/paraglide/messages/billing_comingsoon1.js +0 -30
  850. package/src/paraglide/messages/billing_currencylabel1.js +0 -30
  851. package/src/paraglide/messages/billing_currentplan1.js +0 -30
  852. package/src/paraglide/messages/billing_date.js +0 -29
  853. package/src/paraglide/messages/billing_expiresat1.js +0 -30
  854. package/src/paraglide/messages/billing_featureaiquota2.js +0 -30
  855. package/src/paraglide/messages/billing_featureauditlog2.js +0 -30
  856. package/src/paraglide/messages/billing_featurebyokai2.js +0 -30
  857. package/src/paraglide/messages/billing_featurehostedai2.js +0 -30
  858. package/src/paraglide/messages/billing_featurelargepagesize3.js +0 -30
  859. package/src/paraglide/messages/billing_featuremultiprovider2.js +0 -30
  860. package/src/paraglide/messages/billing_featuresso1.js +0 -30
  861. package/src/paraglide/messages/billing_free.js +0 -29
  862. package/src/paraglide/messages/billing_freedescription1.js +0 -30
  863. package/src/paraglide/messages/billing_freeplan1.js +0 -30
  864. package/src/paraglide/messages/billing_gotologin2.js +0 -30
  865. package/src/paraglide/messages/billing_invoicehistory1.js +0 -30
  866. package/src/paraglide/messages/billing_later.js +0 -29
  867. package/src/paraglide/messages/billing_loginbenefit11.js +0 -30
  868. package/src/paraglide/messages/billing_loginbenefit21.js +0 -30
  869. package/src/paraglide/messages/billing_loginbenefit31.js +0 -30
  870. package/src/paraglide/messages/billing_logindescription1.js +0 -30
  871. package/src/paraglide/messages/billing_logintounlock2.js +0 -30
  872. package/src/paraglide/messages/billing_logintounlockfeature3.js +0 -30
  873. package/src/paraglide/messages/billing_managebilling1.js +0 -30
  874. package/src/paraglide/messages/billing_maxseats1.js +0 -30
  875. package/src/paraglide/messages/billing_morefeatures1.js +0 -30
  876. package/src/paraglide/messages/billing_needhigherplan2.js +0 -30
  877. package/src/paraglide/messages/billing_noinvoices1.js +0 -30
  878. package/src/paraglide/messages/billing_openbrowserfailed2.js +0 -30
  879. package/src/paraglide/messages/billing_paid.js +0 -29
  880. package/src/paraglide/messages/billing_permonth1.js +0 -30
  881. package/src/paraglide/messages/billing_planname1.js +0 -30
  882. package/src/paraglide/messages/billing_portalopenfailed2.js +0 -30
  883. package/src/paraglide/messages/billing_requireslogin1.js +0 -30
  884. package/src/paraglide/messages/billing_saasonly1.js +0 -30
  885. package/src/paraglide/messages/billing_seatsadd1.js +0 -30
  886. package/src/paraglide/messages/billing_seatsaddoncount2.js +0 -30
  887. package/src/paraglide/messages/billing_seatsbase1.js +0 -30
  888. package/src/paraglide/messages/billing_seatsbuycta2.js +0 -30
  889. package/src/paraglide/messages/billing_seatscheckoutredirect2.js +0 -30
  890. package/src/paraglide/messages/billing_seatsconfirm1.js +0 -30
  891. package/src/paraglide/messages/billing_seatsfloorhint2.js +0 -30
  892. package/src/paraglide/messages/billing_seatsgobilling2.js +0 -30
  893. package/src/paraglide/messages/billing_seatsmanager_success1.js +0 -30
  894. package/src/paraglide/messages/billing_seatsmanager_title1.js +0 -30
  895. package/src/paraglide/messages/billing_seatspaymentunavailable2.js +0 -30
  896. package/src/paraglide/messages/billing_seatsprorationhint2.js +0 -30
  897. package/src/paraglide/messages/billing_seatsremove1.js +0 -30
  898. package/src/paraglide/messages/billing_seatsunitprice2.js +0 -30
  899. package/src/paraglide/messages/billing_seatsunlimited1.js +0 -30
  900. package/src/paraglide/messages/billing_seatsupgradecta2.js +0 -30
  901. package/src/paraglide/messages/billing_seatsusage1.js +0 -30
  902. package/src/paraglide/messages/billing_seatsusedlabel2.js +0 -30
  903. package/src/paraglide/messages/billing_starttrial1.js +0 -30
  904. package/src/paraglide/messages/billing_status.js +0 -29
  905. package/src/paraglide/messages/billing_statuslabel1.js +0 -30
  906. package/src/paraglide/messages/billing_title.js +0 -29
  907. package/src/paraglide/messages/billing_trialdescription1.js +0 -30
  908. package/src/paraglide/messages/billing_trialuntil1.js +0 -30
  909. package/src/paraglide/messages/billing_unknownerror1.js +0 -30
  910. package/src/paraglide/messages/billing_unpaid.js +0 -29
  911. package/src/paraglide/messages/billing_upgradetopro2.js +0 -30
  912. package/src/paraglide/messages/billing_view.js +0 -29
  913. package/src/paraglide/messages/bug_activity_ai_badge.js +0 -29
  914. package/src/paraglide/messages/bug_activity_ai_repro_completed.js +0 -29
  915. package/src/paraglide/messages/bug_activity_archived.js +0 -29
  916. package/src/paraglide/messages/bug_activity_assigned.js +0 -29
  917. package/src/paraglide/messages/bug_activity_collab_update.js +0 -29
  918. package/src/paraglide/messages/bug_activity_commented.js +0 -29
  919. package/src/paraglide/messages/bug_activity_converted_to_story.js +0 -29
  920. package/src/paraglide/messages/bug_activity_created.js +0 -29
  921. package/src/paraglide/messages/bug_activity_description_changed.js +0 -29
  922. package/src/paraglide/messages/bug_activity_fix_cancelled.js +0 -29
  923. package/src/paraglide/messages/bug_activity_fix_claimed.js +0 -29
  924. package/src/paraglide/messages/bug_activity_fix_completed.js +0 -29
  925. package/src/paraglide/messages/bug_activity_fix_progress.js +0 -29
  926. package/src/paraglide/messages/bug_activity_fix_queue_full.js +0 -29
  927. package/src/paraglide/messages/bug_activity_fix_requested.js +0 -29
  928. package/src/paraglide/messages/bug_activity_label_changed.js +0 -29
  929. package/src/paraglide/messages/bug_activity_linked_story.js +0 -29
  930. package/src/paraglide/messages/bug_activity_reopened_by_sdk.js +0 -29
  931. package/src/paraglide/messages/bug_activity_sdk_reported.js +0 -29
  932. package/src/paraglide/messages/bug_activity_severity_changed.js +0 -29
  933. package/src/paraglide/messages/bug_activity_state_changed.js +0 -29
  934. package/src/paraglide/messages/bug_activity_title_changed.js +0 -29
  935. package/src/paraglide/messages/bug_activity_unarchived.js +0 -29
  936. package/src/paraglide/messages/bug_activity_unlinked_story.js +0 -29
  937. package/src/paraglide/messages/bug_batch_select_all.js +0 -29
  938. package/src/paraglide/messages/bug_collect_description.js +0 -29
  939. package/src/paraglide/messages/bug_collect_descriptionplaceholder1.js +0 -30
  940. package/src/paraglide/messages/bug_collect_errorgeneric1.js +0 -30
  941. package/src/paraglide/messages/bug_collect_errorinvalidscreenshots2.js +0 -30
  942. package/src/paraglide/messages/bug_collect_errorinvalidtoken2.js +0 -30
  943. package/src/paraglide/messages/bug_collect_errorratelimited2.js +0 -30
  944. package/src/paraglide/messages/bug_collect_honeypotlabel1.js +0 -30
  945. package/src/paraglide/messages/bug_collect_notfounddescription2.js +0 -30
  946. package/src/paraglide/messages/bug_collect_notfoundtitle2.js +0 -30
  947. package/src/paraglide/messages/bug_collect_pagedesc1.js +0 -30
  948. package/src/paraglide/messages/bug_collect_pagetitle1.js +0 -30
  949. package/src/paraglide/messages/bug_collect_reprosteps1.js +0 -30
  950. package/src/paraglide/messages/bug_collect_reprostepshint2.js +0 -30
  951. package/src/paraglide/messages/bug_collect_reprostepsplaceholder2.js +0 -30
  952. package/src/paraglide/messages/bug_collect_screenshots.js +0 -29
  953. package/src/paraglide/messages/bug_collect_screenshotsbadtype2.js +0 -30
  954. package/src/paraglide/messages/bug_collect_screenshotshint1.js +0 -30
  955. package/src/paraglide/messages/bug_collect_screenshotstoolarge2.js +0 -30
  956. package/src/paraglide/messages/bug_collect_screenshotstoomany2.js +0 -30
  957. package/src/paraglide/messages/bug_collect_severity.js +0 -29
  958. package/src/paraglide/messages/bug_collect_severityplaceholder1.js +0 -30
  959. package/src/paraglide/messages/bug_collect_submit.js +0 -29
  960. package/src/paraglide/messages/bug_collect_submitting.js +0 -29
  961. package/src/paraglide/messages/bug_collect_successagain1.js +0 -30
  962. package/src/paraglide/messages/bug_collect_successanother1.js +0 -30
  963. package/src/paraglide/messages/bug_collect_successdesc1.js +0 -30
  964. package/src/paraglide/messages/bug_collect_successtitle1.js +0 -30
  965. package/src/paraglide/messages/bug_collect_title.js +0 -29
  966. package/src/paraglide/messages/bug_collect_titleplaceholder1.js +0 -30
  967. package/src/paraglide/messages/bug_collect_titlerequired1.js +0 -30
  968. package/src/paraglide/messages/bug_collect_uploadfailed1.js +0 -30
  969. package/src/paraglide/messages/bug_column_assignee.js +0 -29
  970. package/src/paraglide/messages/bug_column_identifier.js +0 -29
  971. package/src/paraglide/messages/bug_column_labels.js +0 -29
  972. package/src/paraglide/messages/bug_column_lastoccurat2.js +0 -30
  973. package/src/paraglide/messages/bug_column_severity.js +0 -29
  974. package/src/paraglide/messages/bug_column_source.js +0 -29
  975. package/src/paraglide/messages/bug_column_state.js +0 -29
  976. package/src/paraglide/messages/bug_column_title.js +0 -29
  977. package/src/paraglide/messages/bug_column_totalcount1.js +0 -30
  978. package/src/paraglide/messages/bug_comment_cancel.js +0 -29
  979. package/src/paraglide/messages/bug_comment_collapsereplies1.js +0 -30
  980. package/src/paraglide/messages/bug_comment_confirmdelete1.js +0 -30
  981. package/src/paraglide/messages/bug_comment_confirmdeletetitle2.js +0 -30
  982. package/src/paraglide/messages/bug_comment_delete.js +0 -29
  983. package/src/paraglide/messages/bug_comment_deletefailed1.js +0 -30
  984. package/src/paraglide/messages/bug_comment_edit.js +0 -29
  985. package/src/paraglide/messages/bug_comment_edited.js +0 -29
  986. package/src/paraglide/messages/bug_comment_editfailed1.js +0 -30
  987. package/src/paraglide/messages/bug_comment_failed.js +0 -29
  988. package/src/paraglide/messages/bug_comment_hint.js +0 -29
  989. package/src/paraglide/messages/bug_comment_placeholder.js +0 -29
  990. package/src/paraglide/messages/bug_comment_reply.js +0 -29
  991. package/src/paraglide/messages/bug_comment_retry.js +0 -29
  992. package/src/paraglide/messages/bug_comment_save.js +0 -29
  993. package/src/paraglide/messages/bug_comment_send.js +0 -29
  994. package/src/paraglide/messages/bug_comment_sending.js +0 -29
  995. package/src/paraglide/messages/bug_comment_viewreplies1.js +0 -30
  996. package/src/paraglide/messages/bug_create_add_step.js +0 -29
  997. package/src/paraglide/messages/bug_create_assignee_label.js +0 -29
  998. package/src/paraglide/messages/bug_create_cancel.js +0 -29
  999. package/src/paraglide/messages/bug_create_description_label.js +0 -29
  1000. package/src/paraglide/messages/bug_create_description_placeholder.js +0 -29
  1001. package/src/paraglide/messages/bug_create_dialog_title.js +0 -29
  1002. package/src/paraglide/messages/bug_create_empty_cta.js +0 -29
  1003. package/src/paraglide/messages/bug_create_labels_label.js +0 -29
  1004. package/src/paraglide/messages/bug_create_overall_actual_placeholder.js +0 -29
  1005. package/src/paraglide/messages/bug_create_overall_expected_placeholder.js +0 -29
  1006. package/src/paraglide/messages/bug_create_project_label.js +0 -29
  1007. package/src/paraglide/messages/bug_create_repro_label.js +0 -29
  1008. package/src/paraglide/messages/bug_create_severity_label.js +0 -29
  1009. package/src/paraglide/messages/bug_create_step_action_placeholder.js +0 -29
  1010. package/src/paraglide/messages/bug_create_step_delete.js +0 -29
  1011. package/src/paraglide/messages/bug_create_step_expected_placeholder.js +0 -29
  1012. package/src/paraglide/messages/bug_create_submit.js +0 -29
  1013. package/src/paraglide/messages/bug_create_success.js +0 -29
  1014. package/src/paraglide/messages/bug_create_title_label.js +0 -29
  1015. package/src/paraglide/messages/bug_create_title_placeholder.js +0 -29
  1016. package/src/paraglide/messages/bug_create_title_required.js +0 -29
  1017. package/src/paraglide/messages/bug_detail_activity_empty.js +0 -29
  1018. package/src/paraglide/messages/bug_detail_activity_tab.js +0 -29
  1019. package/src/paraglide/messages/bug_detail_actual_result.js +0 -29
  1020. package/src/paraglide/messages/bug_detail_ai_fix_timeline.js +0 -29
  1021. package/src/paraglide/messages/bug_detail_ai_repro_report.js +0 -29
  1022. package/src/paraglide/messages/bug_detail_archive.js +0 -29
  1023. package/src/paraglide/messages/bug_detail_assignee.js +0 -29
  1024. package/src/paraglide/messages/bug_detail_comments_empty.js +0 -29
  1025. package/src/paraglide/messages/bug_detail_comments_tab.js +0 -29
  1026. package/src/paraglide/messages/bug_detail_convert_to_story.js +0 -29
  1027. package/src/paraglide/messages/bug_detail_delete.js +0 -29
  1028. package/src/paraglide/messages/bug_detail_description_empty.js +0 -29
  1029. package/src/paraglide/messages/bug_detail_env.js +0 -29
  1030. package/src/paraglide/messages/bug_detail_env_placeholder.js +0 -29
  1031. package/src/paraglide/messages/bug_detail_error_context.js +0 -29
  1032. package/src/paraglide/messages/bug_detail_event_samples.js +0 -29
  1033. package/src/paraglide/messages/bug_detail_expected_result.js +0 -29
  1034. package/src/paraglide/messages/bug_detail_labels.js +0 -29
  1035. package/src/paraglide/messages/bug_detail_linked_story.js +0 -29
  1036. package/src/paraglide/messages/bug_detail_load_failed.js +0 -29
  1037. package/src/paraglide/messages/bug_detail_next.js +0 -29
  1038. package/src/paraglide/messages/bug_detail_no_events.js +0 -29
  1039. package/src/paraglide/messages/bug_detail_no_story.js +0 -29
  1040. package/src/paraglide/messages/bug_detail_no_story_found.js +0 -29
  1041. package/src/paraglide/messages/bug_detail_page_url.js +0 -29
  1042. package/src/paraglide/messages/bug_detail_previous.js +0 -29
  1043. package/src/paraglide/messages/bug_detail_repro_missing.js +0 -29
  1044. package/src/paraglide/messages/bug_detail_reproduce_steps.js +0 -29
  1045. package/src/paraglide/messages/bug_detail_screenshot.js +0 -29
  1046. package/src/paraglide/messages/bug_detail_screenshot_alt.js +0 -29
  1047. package/src/paraglide/messages/bug_detail_screenshot_empty.js +0 -29
  1048. package/src/paraglide/messages/bug_detail_search_story_placeholder.js +0 -29
  1049. package/src/paraglide/messages/bug_detail_searching.js +0 -29
  1050. package/src/paraglide/messages/bug_detail_severity.js +0 -29
  1051. package/src/paraglide/messages/bug_detail_stack_summary.js +0 -29
  1052. package/src/paraglide/messages/bug_detail_state.js +0 -29
  1053. package/src/paraglide/messages/bug_detail_step_action.js +0 -29
  1054. package/src/paraglide/messages/bug_detail_step_expected.js +0 -29
  1055. package/src/paraglide/messages/bug_detail_unlink_story.js +0 -29
  1056. package/src/paraglide/messages/bug_detail_user_agent.js +0 -29
  1057. package/src/paraglide/messages/bug_display_group_assignee.js +0 -29
  1058. package/src/paraglide/messages/bug_display_group_createdby1.js +0 -30
  1059. package/src/paraglide/messages/bug_display_group_none.js +0 -29
  1060. package/src/paraglide/messages/bug_display_group_severity.js +0 -29
  1061. package/src/paraglide/messages/bug_display_group_state.js +0 -29
  1062. package/src/paraglide/messages/bug_display_order_created.js +0 -29
  1063. package/src/paraglide/messages/bug_display_order_manual.js +0 -29
  1064. package/src/paraglide/messages/bug_display_order_severity.js +0 -29
  1065. package/src/paraglide/messages/bug_display_order_updated.js +0 -29
  1066. package/src/paraglide/messages/bug_display_property_assignee.js +0 -29
  1067. package/src/paraglide/messages/bug_display_property_labels.js +0 -29
  1068. package/src/paraglide/messages/bug_display_property_lastoccurat2.js +0 -30
  1069. package/src/paraglide/messages/bug_display_property_severity.js +0 -29
  1070. package/src/paraglide/messages/bug_display_property_source.js +0 -29
  1071. package/src/paraglide/messages/bug_display_property_state.js +0 -29
  1072. package/src/paraglide/messages/bug_display_property_totalcount1.js +0 -30
  1073. package/src/paraglide/messages/bug_filter_add_condition.js +0 -29
  1074. package/src/paraglide/messages/bug_filter_all_added.js +0 -29
  1075. package/src/paraglide/messages/bug_filter_cancel.js +0 -29
  1076. package/src/paraglide/messages/bug_filter_clear.js +0 -29
  1077. package/src/paraglide/messages/bug_filter_field_assignee.js +0 -29
  1078. package/src/paraglide/messages/bug_filter_field_createddate1.js +0 -30
  1079. package/src/paraglide/messages/bug_filter_field_env.js +0 -29
  1080. package/src/paraglide/messages/bug_filter_field_label.js +0 -29
  1081. package/src/paraglide/messages/bug_filter_field_lastoccurat2.js +0 -30
  1082. package/src/paraglide/messages/bug_filter_field_severity.js +0 -29
  1083. package/src/paraglide/messages/bug_filter_field_source.js +0 -29
  1084. package/src/paraglide/messages/bug_filter_field_state.js +0 -29
  1085. package/src/paraglide/messages/bug_filter_field_title.js +0 -29
  1086. package/src/paraglide/messages/bug_filter_label.js +0 -29
  1087. package/src/paraglide/messages/bug_filter_multi.js +0 -29
  1088. package/src/paraglide/messages/bug_filter_no_labels.js +0 -29
  1089. package/src/paraglide/messages/bug_filter_operator_after.js +0 -29
  1090. package/src/paraglide/messages/bug_filter_operator_before.js +0 -29
  1091. package/src/paraglide/messages/bug_filter_operator_between.js +0 -29
  1092. package/src/paraglide/messages/bug_filter_operator_contains.js +0 -29
  1093. package/src/paraglide/messages/bug_filter_operator_is.js +0 -29
  1094. package/src/paraglide/messages/bug_filter_operator_is_any_of.js +0 -29
  1095. package/src/paraglide/messages/bug_filter_operator_is_empty.js +0 -29
  1096. package/src/paraglide/messages/bug_filter_operator_is_not.js +0 -29
  1097. package/src/paraglide/messages/bug_filter_operator_is_not_any_of.js +0 -29
  1098. package/src/paraglide/messages/bug_filter_operator_is_not_empty.js +0 -29
  1099. package/src/paraglide/messages/bug_filter_operator_not_contains.js +0 -29
  1100. package/src/paraglide/messages/bug_filter_operator_on_or_after.js +0 -29
  1101. package/src/paraglide/messages/bug_filter_operator_on_or_before.js +0 -29
  1102. package/src/paraglide/messages/bug_filter_select_date.js +0 -29
  1103. package/src/paraglide/messages/bug_filter_select_label.js +0 -29
  1104. package/src/paraglide/messages/bug_filter_select_range.js +0 -29
  1105. package/src/paraglide/messages/bug_filter_single.js +0 -29
  1106. package/src/paraglide/messages/bug_filter_toggle.js +0 -29
  1107. package/src/paraglide/messages/bug_filter_toggle_open.js +0 -29
  1108. package/src/paraglide/messages/bug_filters_clear_all.js +0 -29
  1109. package/src/paraglide/messages/bug_fix_action_failed.js +0 -29
  1110. package/src/paraglide/messages/bug_fix_cancel_action.js +0 -29
  1111. package/src/paraglide/messages/bug_fix_cancelled_toast.js +0 -29
  1112. package/src/paraglide/messages/bug_fix_changed_files.js +0 -29
  1113. package/src/paraglide/messages/bug_fix_commit.js +0 -29
  1114. package/src/paraglide/messages/bug_fix_conflict_toast.js +0 -29
  1115. package/src/paraglide/messages/bug_fix_empty.js +0 -29
  1116. package/src/paraglide/messages/bug_fix_empty_hint.js +0 -29
  1117. package/src/paraglide/messages/bug_fix_pr.js +0 -29
  1118. package/src/paraglide/messages/bug_fix_request_button.js +0 -29
  1119. package/src/paraglide/messages/bug_fix_requested_toast.js +0 -29
  1120. package/src/paraglide/messages/bug_fix_result_cannot_reproduce.js +0 -29
  1121. package/src/paraglide/messages/bug_fix_result_failed.js +0 -29
  1122. package/src/paraglide/messages/bug_fix_result_fixed.js +0 -29
  1123. package/src/paraglide/messages/bug_fix_status_cancelled.js +0 -29
  1124. package/src/paraglide/messages/bug_fix_status_claimed.js +0 -29
  1125. package/src/paraglide/messages/bug_fix_status_completed.js +0 -29
  1126. package/src/paraglide/messages/bug_fix_status_in_progress.js +0 -29
  1127. package/src/paraglide/messages/bug_fix_status_pending.js +0 -29
  1128. package/src/paraglide/messages/bug_fix_trigger_auto.js +0 -29
  1129. package/src/paraglide/messages/bug_fix_trigger_manual.js +0 -29
  1130. package/src/paraglide/messages/bug_group_all.js +0 -29
  1131. package/src/paraglide/messages/bug_group_unknown_user.js +0 -29
  1132. package/src/paraglide/messages/bug_inline_clear.js +0 -29
  1133. package/src/paraglide/messages/bug_inline_creator_cancel.js +0 -29
  1134. package/src/paraglide/messages/bug_inline_creator_create.js +0 -29
  1135. package/src/paraglide/messages/bug_inline_creator_placeholder.js +0 -29
  1136. package/src/paraglide/messages/bug_inline_date_short.js +0 -29
  1137. package/src/paraglide/messages/bug_inline_no_match_members.js +0 -29
  1138. package/src/paraglide/messages/bug_inline_not_selected.js +0 -29
  1139. package/src/paraglide/messages/bug_inline_search_members.js +0 -29
  1140. package/src/paraglide/messages/bug_list_add.js +0 -29
  1141. package/src/paraglide/messages/bug_list_add_to.js +0 -29
  1142. package/src/paraglide/messages/bug_list_archive_failed.js +0 -29
  1143. package/src/paraglide/messages/bug_list_archived.js +0 -29
  1144. package/src/paraglide/messages/bug_list_bulk_archive.js +0 -29
  1145. package/src/paraglide/messages/bug_list_bulk_archive_confirm.js +0 -29
  1146. package/src/paraglide/messages/bug_list_bulk_archive_description.js +0 -29
  1147. package/src/paraglide/messages/bug_list_bulk_archived.js +0 -29
  1148. package/src/paraglide/messages/bug_list_bulk_archived_skipped.js +0 -29
  1149. package/src/paraglide/messages/bug_list_bulk_delete.js +0 -29
  1150. package/src/paraglide/messages/bug_list_bulk_delete_confirm.js +0 -29
  1151. package/src/paraglide/messages/bug_list_bulk_delete_description.js +0 -29
  1152. package/src/paraglide/messages/bug_list_bulk_deleted.js +0 -29
  1153. package/src/paraglide/messages/bug_list_bulk_unarchive.js +0 -29
  1154. package/src/paraglide/messages/bug_list_bulk_update_failed.js +0 -29
  1155. package/src/paraglide/messages/bug_list_bulk_updated.js +0 -29
  1156. package/src/paraglide/messages/bug_list_cancel.js +0 -29
  1157. package/src/paraglide/messages/bug_list_clear_selection.js +0 -29
  1158. package/src/paraglide/messages/bug_list_confirm.js +0 -29
  1159. package/src/paraglide/messages/bug_list_create_failed.js +0 -29
  1160. package/src/paraglide/messages/bug_list_delete_failed.js +0 -29
  1161. package/src/paraglide/messages/bug_list_empty_description.js +0 -29
  1162. package/src/paraglide/messages/bug_list_empty_title.js +0 -29
  1163. package/src/paraglide/messages/bug_list_first_occur.js +0 -29
  1164. package/src/paraglide/messages/bug_list_group_by.js +0 -29
  1165. package/src/paraglide/messages/bug_list_last_occur.js +0 -29
  1166. package/src/paraglide/messages/bug_list_load_more.js +0 -29
  1167. package/src/paraglide/messages/bug_list_loaded_all.js +0 -29
  1168. package/src/paraglide/messages/bug_list_loading.js +0 -29
  1169. package/src/paraglide/messages/bug_list_loading_data.js +0 -29
  1170. package/src/paraglide/messages/bug_list_new_bug.js +0 -29
  1171. package/src/paraglide/messages/bug_list_no_bugs.js +0 -29
  1172. package/src/paraglide/messages/bug_list_occurrences.js +0 -29
  1173. package/src/paraglide/messages/bug_list_order_by.js +0 -29
  1174. package/src/paraglide/messages/bug_list_search_placeholder.js +0 -29
  1175. package/src/paraglide/messages/bug_list_select_all.js +0 -29
  1176. package/src/paraglide/messages/bug_list_selected_count.js +0 -29
  1177. package/src/paraglide/messages/bug_list_unassigned.js +0 -29
  1178. package/src/paraglide/messages/bug_panel_archive_failed.js +0 -29
  1179. package/src/paraglide/messages/bug_panel_archived.js +0 -29
  1180. package/src/paraglide/messages/bug_panel_back.js +0 -29
  1181. package/src/paraglide/messages/bug_panel_collapse.js +0 -29
  1182. package/src/paraglide/messages/bug_panel_copy_failed.js +0 -29
  1183. package/src/paraglide/messages/bug_panel_copy_link.js +0 -29
  1184. package/src/paraglide/messages/bug_panel_delete_description.js +0 -29
  1185. package/src/paraglide/messages/bug_panel_delete_title.js +0 -29
  1186. package/src/paraglide/messages/bug_panel_deleted.js +0 -29
  1187. package/src/paraglide/messages/bug_panel_fullscreen.js +0 -29
  1188. package/src/paraglide/messages/bug_panel_link_copied.js +0 -29
  1189. package/src/paraglide/messages/bug_panel_more.js +0 -29
  1190. package/src/paraglide/messages/bug_regress_button.js +0 -29
  1191. package/src/paraglide/messages/bug_regress_failed_toast.js +0 -29
  1192. package/src/paraglide/messages/bug_regress_passed_badge.js +0 -29
  1193. package/src/paraglide/messages/bug_regress_started_toast.js +0 -29
  1194. package/src/paraglide/messages/bug_repro_action_failed.js +0 -29
  1195. package/src/paraglide/messages/bug_repro_completed_toast.js +0 -29
  1196. package/src/paraglide/messages/bug_repro_confidence.js +0 -29
  1197. package/src/paraglide/messages/bug_repro_empty.js +0 -29
  1198. package/src/paraglide/messages/bug_repro_empty_hint.js +0 -29
  1199. package/src/paraglide/messages/bug_repro_failed_toast.js +0 -29
  1200. package/src/paraglide/messages/bug_repro_missing_info.js +0 -29
  1201. package/src/paraglide/messages/bug_repro_reasoning.js +0 -29
  1202. package/src/paraglide/messages/bug_repro_repo_hints_label.js +0 -29
  1203. package/src/paraglide/messages/bug_repro_repo_hints_placeholder.js +0 -29
  1204. package/src/paraglide/messages/bug_repro_repo_hints_saved_toast.js +0 -29
  1205. package/src/paraglide/messages/bug_repro_report_unavailable.js +0 -29
  1206. package/src/paraglide/messages/bug_repro_rerun_button.js +0 -29
  1207. package/src/paraglide/messages/bug_repro_retry.js +0 -29
  1208. package/src/paraglide/messages/bug_repro_root_cause.js +0 -29
  1209. package/src/paraglide/messages/bug_repro_run_button.js +0 -29
  1210. package/src/paraglide/messages/bug_repro_running.js +0 -29
  1211. package/src/paraglide/messages/bug_repro_status_failed.js +0 -29
  1212. package/src/paraglide/messages/bug_repro_status_running.js +0 -29
  1213. package/src/paraglide/messages/bug_repro_suggested_fix.js +0 -29
  1214. package/src/paraglide/messages/bug_repro_verdict_insufficient_info.js +0 -29
  1215. package/src/paraglide/messages/bug_repro_verdict_not_reproduced.js +0 -29
  1216. package/src/paraglide/messages/bug_repro_verdict_reproduced.js +0 -29
  1217. package/src/paraglide/messages/bug_row_edit_title.js +0 -29
  1218. package/src/paraglide/messages/bug_row_select_bug.js +0 -29
  1219. package/src/paraglide/messages/bug_row_update_failed.js +0 -29
  1220. package/src/paraglide/messages/bug_settings_collect_config.js +0 -29
  1221. package/src/paraglide/messages/bug_settings_collect_configdesc1.js +0 -30
  1222. package/src/paraglide/messages/bug_settings_collect_configdescplaceholder2.js +0 -30
  1223. package/src/paraglide/messages/bug_settings_collect_configloadfailed2.js +0 -30
  1224. package/src/paraglide/messages/bug_settings_collect_configsaved1.js +0 -30
  1225. package/src/paraglide/messages/bug_settings_collect_configsavefailed2.js +0 -30
  1226. package/src/paraglide/messages/bug_settings_collect_configscreenshot1.js +0 -30
  1227. package/src/paraglide/messages/bug_settings_collect_configscreenshotdesc2.js +0 -30
  1228. package/src/paraglide/messages/bug_settings_collect_configseverity1.js +0 -30
  1229. package/src/paraglide/messages/bug_settings_collect_configseveritydesc2.js +0 -30
  1230. package/src/paraglide/messages/bug_settings_collect_configtitle1.js +0 -30
  1231. package/src/paraglide/messages/bug_settings_collect_configtitleplaceholder2.js +0 -30
  1232. package/src/paraglide/messages/bug_settings_collect_copylink1.js +0 -30
  1233. package/src/paraglide/messages/bug_settings_collect_create.js +0 -29
  1234. package/src/paraglide/messages/bug_settings_collect_createdesc1.js +0 -30
  1235. package/src/paraglide/messages/bug_settings_collect_createfailed1.js +0 -30
  1236. package/src/paraglide/messages/bug_settings_collect_desc.js +0 -29
  1237. package/src/paraglide/messages/bug_settings_collect_empty.js +0 -29
  1238. package/src/paraglide/messages/bug_settings_collect_linkcopied1.js +0 -30
  1239. package/src/paraglide/messages/bug_settings_collect_linkoncewarning2.js +0 -30
  1240. package/src/paraglide/messages/bug_settings_collect_linktitle1.js +0 -30
  1241. package/src/paraglide/messages/bug_settings_collect_listfailed1.js +0 -30
  1242. package/src/paraglide/messages/bug_settings_collect_name.js +0 -29
  1243. package/src/paraglide/messages/bug_settings_collect_nameplaceholder1.js +0 -30
  1244. package/src/paraglide/messages/bug_settings_collect_revoke.js +0 -29
  1245. package/src/paraglide/messages/bug_settings_collect_revokeconfirmdesc2.js +0 -30
  1246. package/src/paraglide/messages/bug_settings_collect_revokeconfirmtitle2.js +0 -30
  1247. package/src/paraglide/messages/bug_settings_collect_revokedtoast1.js +0 -30
  1248. package/src/paraglide/messages/bug_settings_collect_revokefailed1.js +0 -30
  1249. package/src/paraglide/messages/bug_settings_install_copied.js +0 -29
  1250. package/src/paraglide/messages/bug_settings_install_desc.js +0 -29
  1251. package/src/paraglide/messages/bug_settings_install_doclink1.js +0 -30
  1252. package/src/paraglide/messages/bug_settings_install_endpointnote1.js +0 -30
  1253. package/src/paraglide/messages/bug_settings_install_env_browser.js +0 -29
  1254. package/src/paraglide/messages/bug_settings_install_initcode1.js +0 -30
  1255. package/src/paraglide/messages/bug_settings_install_installcmd1.js +0 -30
  1256. package/src/paraglide/messages/bug_settings_install_notoken1.js +0 -30
  1257. package/src/paraglide/messages/bug_settings_install_pastefullkey2.js +0 -30
  1258. package/src/paraglide/messages/bug_settings_install_selecttoken1.js +0 -30
  1259. package/src/paraglide/messages/bug_settings_report_autofix1.js +0 -30
  1260. package/src/paraglide/messages/bug_settings_report_autofixdesc2.js +0 -30
  1261. package/src/paraglide/messages/bug_settings_report_autoreport1.js +0 -30
  1262. package/src/paraglide/messages/bug_settings_report_autoreportdesc2.js +0 -30
  1263. package/src/paraglide/messages/bug_settings_report_autosubmit1.js +0 -30
  1264. package/src/paraglide/messages/bug_settings_report_autosubmitdesc2.js +0 -30
  1265. package/src/paraglide/messages/bug_settings_report_desc.js +0 -29
  1266. package/src/paraglide/messages/bug_settings_report_reopen.js +0 -29
  1267. package/src/paraglide/messages/bug_settings_report_reopendesc1.js +0 -30
  1268. package/src/paraglide/messages/bug_settings_report_samplerate1.js +0 -30
  1269. package/src/paraglide/messages/bug_settings_report_sampleratedesc2.js +0 -30
  1270. package/src/paraglide/messages/bug_settings_report_samplerateoption2.js +0 -30
  1271. package/src/paraglide/messages/bug_settings_report_savefailed1.js +0 -30
  1272. package/src/paraglide/messages/bug_settings_tab_collect.js +0 -29
  1273. package/src/paraglide/messages/bug_settings_tab_install.js +0 -29
  1274. package/src/paraglide/messages/bug_settings_tab_report.js +0 -29
  1275. package/src/paraglide/messages/bug_settings_tab_tokens.js +0 -29
  1276. package/src/paraglide/messages/bug_settings_tab_webhook.js +0 -29
  1277. package/src/paraglide/messages/bug_settings_title.js +0 -29
  1278. package/src/paraglide/messages/bug_settings_token_actions.js +0 -29
  1279. package/src/paraglide/messages/bug_settings_token_active.js +0 -29
  1280. package/src/paraglide/messages/bug_settings_token_copied.js +0 -29
  1281. package/src/paraglide/messages/bug_settings_token_copy.js +0 -29
  1282. package/src/paraglide/messages/bug_settings_token_copyfailed1.js +0 -30
  1283. package/src/paraglide/messages/bug_settings_token_create.js +0 -29
  1284. package/src/paraglide/messages/bug_settings_token_created.js +0 -29
  1285. package/src/paraglide/messages/bug_settings_token_createdat1.js +0 -30
  1286. package/src/paraglide/messages/bug_settings_token_createdesc1.js +0 -30
  1287. package/src/paraglide/messages/bug_settings_token_createdtitle1.js +0 -30
  1288. package/src/paraglide/messages/bug_settings_token_createfailed1.js +0 -30
  1289. package/src/paraglide/messages/bug_settings_token_desc.js +0 -29
  1290. package/src/paraglide/messages/bug_settings_token_done.js +0 -29
  1291. package/src/paraglide/messages/bug_settings_token_empty.js +0 -29
  1292. package/src/paraglide/messages/bug_settings_token_lastused1.js +0 -30
  1293. package/src/paraglide/messages/bug_settings_token_listfailed1.js +0 -30
  1294. package/src/paraglide/messages/bug_settings_token_name.js +0 -29
  1295. package/src/paraglide/messages/bug_settings_token_nameplaceholder1.js +0 -30
  1296. package/src/paraglide/messages/bug_settings_token_namerequired1.js +0 -30
  1297. package/src/paraglide/messages/bug_settings_token_neverused1.js +0 -30
  1298. package/src/paraglide/messages/bug_settings_token_plaintextoncewarning2.js +0 -30
  1299. package/src/paraglide/messages/bug_settings_token_prefix.js +0 -29
  1300. package/src/paraglide/messages/bug_settings_token_revoke.js +0 -29
  1301. package/src/paraglide/messages/bug_settings_token_revokeconfirmdesc2.js +0 -30
  1302. package/src/paraglide/messages/bug_settings_token_revokeconfirmtitle2.js +0 -30
  1303. package/src/paraglide/messages/bug_settings_token_revoked.js +0 -29
  1304. package/src/paraglide/messages/bug_settings_token_revokefailed1.js +0 -30
  1305. package/src/paraglide/messages/bug_settings_token_status.js +0 -29
  1306. package/src/paraglide/messages/bug_settings_webhook_actions.js +0 -29
  1307. package/src/paraglide/messages/bug_settings_webhook_copied.js +0 -29
  1308. package/src/paraglide/messages/bug_settings_webhook_copy.js +0 -29
  1309. package/src/paraglide/messages/bug_settings_webhook_copyfailed1.js +0 -30
  1310. package/src/paraglide/messages/bug_settings_webhook_create.js +0 -29
  1311. package/src/paraglide/messages/bug_settings_webhook_created.js +0 -29
  1312. package/src/paraglide/messages/bug_settings_webhook_createdat1.js +0 -30
  1313. package/src/paraglide/messages/bug_settings_webhook_createdesc1.js +0 -30
  1314. package/src/paraglide/messages/bug_settings_webhook_createdtitle1.js +0 -30
  1315. package/src/paraglide/messages/bug_settings_webhook_createfailed1.js +0 -30
  1316. package/src/paraglide/messages/bug_settings_webhook_delete.js +0 -29
  1317. package/src/paraglide/messages/bug_settings_webhook_deleteconfirmdesc2.js +0 -30
  1318. package/src/paraglide/messages/bug_settings_webhook_deleteconfirmtitle2.js +0 -30
  1319. package/src/paraglide/messages/bug_settings_webhook_deleted.js +0 -29
  1320. package/src/paraglide/messages/bug_settings_webhook_deletefailed1.js +0 -30
  1321. package/src/paraglide/messages/bug_settings_webhook_desc.js +0 -29
  1322. package/src/paraglide/messages/bug_settings_webhook_empty.js +0 -29
  1323. package/src/paraglide/messages/bug_settings_webhook_enabled.js +0 -29
  1324. package/src/paraglide/messages/bug_settings_webhook_eventbugcreated2.js +0 -30
  1325. package/src/paraglide/messages/bug_settings_webhook_eventfixcompleted2.js +0 -30
  1326. package/src/paraglide/messages/bug_settings_webhook_eventfixrequested2.js +0 -30
  1327. package/src/paraglide/messages/bug_settings_webhook_events.js +0 -29
  1328. package/src/paraglide/messages/bug_settings_webhook_eventsrequired1.js +0 -30
  1329. package/src/paraglide/messages/bug_settings_webhook_eventtestbugdrafted3.js +0 -30
  1330. package/src/paraglide/messages/bug_settings_webhook_eventtestruncompleted3.js +0 -30
  1331. package/src/paraglide/messages/bug_settings_webhook_listfailed1.js +0 -30
  1332. package/src/paraglide/messages/bug_settings_webhook_secretoncewarning2.js +0 -30
  1333. package/src/paraglide/messages/bug_settings_webhook_togglefailed1.js +0 -30
  1334. package/src/paraglide/messages/bug_settings_webhook_url.js +0 -29
  1335. package/src/paraglide/messages/bug_settings_webhook_urlrequired1.js +0 -30
  1336. package/src/paraglide/messages/bug_severity_critical.js +0 -29
  1337. package/src/paraglide/messages/bug_severity_high.js +0 -29
  1338. package/src/paraglide/messages/bug_severity_low.js +0 -29
  1339. package/src/paraglide/messages/bug_severity_medium.js +0 -29
  1340. package/src/paraglide/messages/bug_source_chrome_ext.js +0 -29
  1341. package/src/paraglide/messages/bug_source_collect.js +0 -29
  1342. package/src/paraglide/messages/bug_source_manual.js +0 -29
  1343. package/src/paraglide/messages/bug_source_sdk_auto.js +0 -29
  1344. package/src/paraglide/messages/bug_source_test_run.js +0 -29
  1345. package/src/paraglide/messages/bug_state_closed.js +0 -29
  1346. package/src/paraglide/messages/bug_state_fixed.js +0 -29
  1347. package/src/paraglide/messages/bug_state_in_progress.js +0 -29
  1348. package/src/paraglide/messages/bug_state_open.js +0 -29
  1349. package/src/paraglide/messages/bug_state_wontfix.js +0 -29
  1350. package/src/paraglide/messages/bug_table_empty.js +0 -29
  1351. package/src/paraglide/messages/bug_time_daysago1.js +0 -30
  1352. package/src/paraglide/messages/bug_time_hoursago1.js +0 -30
  1353. package/src/paraglide/messages/bug_time_justnow1.js +0 -30
  1354. package/src/paraglide/messages/bug_time_minutesago1.js +0 -30
  1355. package/src/paraglide/messages/bug_toolbar_all_projects.js +0 -29
  1356. package/src/paraglide/messages/bug_toolbar_create_project.js +0 -29
  1357. package/src/paraglide/messages/bug_toolbar_project.js +0 -29
  1358. package/src/paraglide/messages/bug_toolbar_total.js +0 -29
  1359. package/src/paraglide/messages/bug_view_layout_list.js +0 -29
  1360. package/src/paraglide/messages/bug_view_layout_table.js +0 -29
  1361. package/src/paraglide/messages/calendar_weekdays.js +0 -29
  1362. package/src/paraglide/messages/canvas_addeffect1.js +0 -30
  1363. package/src/paraglide/messages/canvas_addexport1.js +0 -30
  1364. package/src/paraglide/messages/canvas_addfill1.js +0 -30
  1365. package/src/paraglide/messages/canvas_addstroke1.js +0 -30
  1366. package/src/paraglide/messages/canvas_ai_donefallback1.js +0 -30
  1367. package/src/paraglide/messages/canvas_ai_regenchip1.js +0 -30
  1368. package/src/paraglide/messages/canvas_ai_regendone1.js +0 -30
  1369. package/src/paraglide/messages/canvas_ai_stop.js +0 -29
  1370. package/src/paraglide/messages/canvas_ai_stopped.js +0 -29
  1371. package/src/paraglide/messages/canvas_ai_streamfailed1.js +0 -30
  1372. package/src/paraglide/messages/canvas_ai_timeout.js +0 -29
  1373. package/src/paraglide/messages/canvas_alignbottom1.js +0 -30
  1374. package/src/paraglide/messages/canvas_alignhcenter2.js +0 -30
  1375. package/src/paraglide/messages/canvas_alignleft1.js +0 -30
  1376. package/src/paraglide/messages/canvas_alignright1.js +0 -30
  1377. package/src/paraglide/messages/canvas_aligntop1.js +0 -30
  1378. package/src/paraglide/messages/canvas_alignvcenter2.js +0 -30
  1379. package/src/paraglide/messages/canvas_arrowtype_angle1.js +0 -30
  1380. package/src/paraglide/messages/canvas_arrowtype_angleside2.js +0 -30
  1381. package/src/paraglide/messages/canvas_arrowtype_arrow1.js +0 -30
  1382. package/src/paraglide/messages/canvas_arrowtype_circle1.js +0 -30
  1383. package/src/paraglide/messages/canvas_arrowtype_circleline2.js +0 -30
  1384. package/src/paraglide/messages/canvas_arrowtype_diamond1.js +0 -30
  1385. package/src/paraglide/messages/canvas_arrowtype_diamondline2.js +0 -30
  1386. package/src/paraglide/messages/canvas_arrowtype_mark1.js +0 -30
  1387. package/src/paraglide/messages/canvas_arrowtype_none1.js +0 -30
  1388. package/src/paraglide/messages/canvas_arrowtype_square1.js +0 -30
  1389. package/src/paraglide/messages/canvas_arrowtype_squareline2.js +0 -30
  1390. package/src/paraglide/messages/canvas_arrowtype_triangle1.js +0 -30
  1391. package/src/paraglide/messages/canvas_arrowtype_triangleflip2.js +0 -30
  1392. package/src/paraglide/messages/canvas_aspectlock1.js +0 -30
  1393. package/src/paraglide/messages/canvas_blendmode1.js +0 -30
  1394. package/src/paraglide/messages/canvas_blendmode_color1.js +0 -30
  1395. package/src/paraglide/messages/canvas_blendmode_color_burn1.js +0 -30
  1396. package/src/paraglide/messages/canvas_blendmode_color_dodge1.js +0 -30
  1397. package/src/paraglide/messages/canvas_blendmode_darken1.js +0 -30
  1398. package/src/paraglide/messages/canvas_blendmode_difference1.js +0 -30
  1399. package/src/paraglide/messages/canvas_blendmode_exclusion1.js +0 -30
  1400. package/src/paraglide/messages/canvas_blendmode_hard_light1.js +0 -30
  1401. package/src/paraglide/messages/canvas_blendmode_hue1.js +0 -30
  1402. package/src/paraglide/messages/canvas_blendmode_lighten1.js +0 -30
  1403. package/src/paraglide/messages/canvas_blendmode_luminosity1.js +0 -30
  1404. package/src/paraglide/messages/canvas_blendmode_multiply1.js +0 -30
  1405. package/src/paraglide/messages/canvas_blendmode_normal1.js +0 -30
  1406. package/src/paraglide/messages/canvas_blendmode_overlay1.js +0 -30
  1407. package/src/paraglide/messages/canvas_blendmode_saturation1.js +0 -30
  1408. package/src/paraglide/messages/canvas_blendmode_screen1.js +0 -30
  1409. package/src/paraglide/messages/canvas_blendmode_soft_light1.js +0 -30
  1410. package/src/paraglide/messages/canvas_booleanexclude1.js +0 -30
  1411. package/src/paraglide/messages/canvas_booleanfailed1.js +0 -30
  1412. package/src/paraglide/messages/canvas_booleanintersect1.js +0 -30
  1413. package/src/paraglide/messages/canvas_booleansection1.js +0 -30
  1414. package/src/paraglide/messages/canvas_booleansubtract1.js +0 -30
  1415. package/src/paraglide/messages/canvas_booleanunion1.js +0 -30
  1416. package/src/paraglide/messages/canvas_componentbutton1.js +0 -30
  1417. package/src/paraglide/messages/canvas_componentcard1.js +0 -30
  1418. package/src/paraglide/messages/canvas_componentinput1.js +0 -30
  1419. package/src/paraglide/messages/canvas_constraint_center.js +0 -29
  1420. package/src/paraglide/messages/canvas_constraint_max.js +0 -29
  1421. package/src/paraglide/messages/canvas_constraint_min.js +0 -29
  1422. package/src/paraglide/messages/canvas_constraint_scale.js +0 -29
  1423. package/src/paraglide/messages/canvas_constraint_stretch.js +0 -29
  1424. package/src/paraglide/messages/canvas_constrainth1.js +0 -30
  1425. package/src/paraglide/messages/canvas_constraintv1.js +0 -30
  1426. package/src/paraglide/messages/canvas_content.js +0 -29
  1427. package/src/paraglide/messages/canvas_cornerbottomleft2.js +0 -30
  1428. package/src/paraglide/messages/canvas_cornerbottomright2.js +0 -30
  1429. package/src/paraglide/messages/canvas_cornerlock1.js +0 -30
  1430. package/src/paraglide/messages/canvas_corners.js +0 -29
  1431. package/src/paraglide/messages/canvas_cornersindividual1.js +0 -30
  1432. package/src/paraglide/messages/canvas_cornertopleft2.js +0 -30
  1433. package/src/paraglide/messages/canvas_cornertopright2.js +0 -30
  1434. package/src/paraglide/messages/canvas_cornerunlock1.js +0 -30
  1435. package/src/paraglide/messages/canvas_deleterow1.js +0 -30
  1436. package/src/paraglide/messages/canvas_device_desktop.js +0 -29
  1437. package/src/paraglide/messages/canvas_device_mobile.js +0 -29
  1438. package/src/paraglide/messages/canvas_device_tablet.js +0 -29
  1439. package/src/paraglide/messages/canvas_devicetitle1.js +0 -30
  1440. package/src/paraglide/messages/canvas_dirbottom1.js +0 -30
  1441. package/src/paraglide/messages/canvas_dirleft1.js +0 -30
  1442. package/src/paraglide/messages/canvas_dirright1.js +0 -30
  1443. package/src/paraglide/messages/canvas_dirtop1.js +0 -30
  1444. package/src/paraglide/messages/canvas_distributespacingh2.js +0 -30
  1445. package/src/paraglide/messages/canvas_distributespacingv2.js +0 -30
  1446. package/src/paraglide/messages/canvas_download.js +0 -29
  1447. package/src/paraglide/messages/canvas_effect_background_blur.js +0 -29
  1448. package/src/paraglide/messages/canvas_effect_drop_shadow.js +0 -29
  1449. package/src/paraglide/messages/canvas_effect_inner_shadow.js +0 -29
  1450. package/src/paraglide/messages/canvas_effect_layer_blur.js +0 -29
  1451. package/src/paraglide/messages/canvas_effectblur1.js +0 -30
  1452. package/src/paraglide/messages/canvas_effectoffsetx2.js +0 -30
  1453. package/src/paraglide/messages/canvas_effectoffsety2.js +0 -30
  1454. package/src/paraglide/messages/canvas_effects.js +0 -29
  1455. package/src/paraglide/messages/canvas_effectspread1.js +0 -30
  1456. package/src/paraglide/messages/canvas_effecttype1.js +0 -30
  1457. package/src/paraglide/messages/canvas_emptyhint1.js +0 -30
  1458. package/src/paraglide/messages/canvas_exportformat1.js +0 -30
  1459. package/src/paraglide/messages/canvas_exports.js +0 -29
  1460. package/src/paraglide/messages/canvas_exportscale1.js +0 -30
  1461. package/src/paraglide/messages/canvas_exportsuffix1.js +0 -30
  1462. package/src/paraglide/messages/canvas_filllimit1.js +0 -30
  1463. package/src/paraglide/messages/canvas_fills.js +0 -29
  1464. package/src/paraglide/messages/canvas_filltype1.js +0 -30
  1465. package/src/paraglide/messages/canvas_filltype_angular1.js +0 -30
  1466. package/src/paraglide/messages/canvas_filltype_image1.js +0 -30
  1467. package/src/paraglide/messages/canvas_filltype_linear1.js +0 -30
  1468. package/src/paraglide/messages/canvas_filltype_radial1.js +0 -30
  1469. package/src/paraglide/messages/canvas_filltype_shader1.js +0 -30
  1470. package/src/paraglide/messages/canvas_filltype_solid1.js +0 -30
  1471. package/src/paraglide/messages/canvas_fit.js +0 -29
  1472. package/src/paraglide/messages/canvas_fliph1.js +0 -30
  1473. package/src/paraglide/messages/canvas_flipv1.js +0 -30
  1474. package/src/paraglide/messages/canvas_fontfamily1.js +0 -30
  1475. package/src/paraglide/messages/canvas_fontsize1.js +0 -30
  1476. package/src/paraglide/messages/canvas_fontweight1.js +0 -30
  1477. package/src/paraglide/messages/canvas_fontweight_black1.js +0 -30
  1478. package/src/paraglide/messages/canvas_fontweight_bold1.js +0 -30
  1479. package/src/paraglide/messages/canvas_fontweight_light1.js +0 -30
  1480. package/src/paraglide/messages/canvas_fontweight_medium1.js +0 -30
  1481. package/src/paraglide/messages/canvas_fontweight_regular1.js +0 -30
  1482. package/src/paraglide/messages/canvas_fontweight_semibold1.js +0 -30
  1483. package/src/paraglide/messages/canvas_fontweight_thin1.js +0 -30
  1484. package/src/paraglide/messages/canvas_frame_addedtocustom2.js +0 -30
  1485. package/src/paraglide/messages/canvas_frame_addtocustom2.js +0 -30
  1486. package/src/paraglide/messages/canvas_frame_custom.js +0 -29
  1487. package/src/paraglide/messages/canvas_frame_desktop.js +0 -29
  1488. package/src/paraglide/messages/canvas_frame_free.js +0 -29
  1489. package/src/paraglide/messages/canvas_frame_mobile.js +0 -29
  1490. package/src/paraglide/messages/canvas_frame_removecustompreset2.js +0 -30
  1491. package/src/paraglide/messages/canvas_frame_tablet.js +0 -29
  1492. package/src/paraglide/messages/canvas_framedefaultname2.js +0 -30
  1493. package/src/paraglide/messages/canvas_framenamelabel2.js +0 -30
  1494. package/src/paraglide/messages/canvas_framequickpreset2.js +0 -30
  1495. package/src/paraglide/messages/canvas_framesection1.js +0 -30
  1496. package/src/paraglide/messages/canvas_framesize1.js +0 -30
  1497. package/src/paraglide/messages/canvas_gradient_addstop1.js +0 -30
  1498. package/src/paraglide/messages/canvas_gradient_bar.js +0 -29
  1499. package/src/paraglide/messages/canvas_gradient_deletestop1.js +0 -30
  1500. package/src/paraglide/messages/canvas_gradient_direction.js +0 -29
  1501. package/src/paraglide/messages/canvas_gradient_offset.js +0 -29
  1502. package/src/paraglide/messages/canvas_gradient_rotation.js +0 -29
  1503. package/src/paraglide/messages/canvas_gradient_stop.js +0 -29
  1504. package/src/paraglide/messages/canvas_gradient_stretch.js +0 -29
  1505. package/src/paraglide/messages/canvas_group_selectsameframe2.js +0 -30
  1506. package/src/paraglide/messages/canvas_italic.js +0 -29
  1507. package/src/paraglide/messages/canvas_layerback1.js +0 -30
  1508. package/src/paraglide/messages/canvas_layerbackward1.js +0 -30
  1509. package/src/paraglide/messages/canvas_layerforward1.js +0 -30
  1510. package/src/paraglide/messages/canvas_layerfront1.js +0 -30
  1511. package/src/paraglide/messages/canvas_layerhide1.js +0 -30
  1512. package/src/paraglide/messages/canvas_layerlock1.js +0 -30
  1513. package/src/paraglide/messages/canvas_layerrename1.js +0 -30
  1514. package/src/paraglide/messages/canvas_layers.js +0 -29
  1515. package/src/paraglide/messages/canvas_layersempty1.js +0 -30
  1516. package/src/paraglide/messages/canvas_layershow1.js +0 -30
  1517. package/src/paraglide/messages/canvas_layerstyles1.js +0 -30
  1518. package/src/paraglide/messages/canvas_layerstylessoon2.js +0 -30
  1519. package/src/paraglide/messages/canvas_layerunlock1.js +0 -30
  1520. package/src/paraglide/messages/canvas_layoutsection1.js +0 -30
  1521. package/src/paraglide/messages/canvas_letterspacing1.js +0 -30
  1522. package/src/paraglide/messages/canvas_library.js +0 -29
  1523. package/src/paraglide/messages/canvas_libraryempty1.js +0 -30
  1524. package/src/paraglide/messages/canvas_lineheight1.js +0 -30
  1525. package/src/paraglide/messages/canvas_loading.js +0 -29
  1526. package/src/paraglide/messages/canvas_menu_addtocustompreset3.js +0 -30
  1527. package/src/paraglide/messages/canvas_menu_align.js +0 -29
  1528. package/src/paraglide/messages/canvas_menu_alignbottom1.js +0 -30
  1529. package/src/paraglide/messages/canvas_menu_alignhcenter2.js +0 -30
  1530. package/src/paraglide/messages/canvas_menu_alignleft1.js +0 -30
  1531. package/src/paraglide/messages/canvas_menu_alignright1.js +0 -30
  1532. package/src/paraglide/messages/canvas_menu_aligntop1.js +0 -30
  1533. package/src/paraglide/messages/canvas_menu_alignvcenter2.js +0 -30
  1534. package/src/paraglide/messages/canvas_menu_annotate.js +0 -29
  1535. package/src/paraglide/messages/canvas_menu_copy.js +0 -29
  1536. package/src/paraglide/messages/canvas_menu_cut.js +0 -29
  1537. package/src/paraglide/messages/canvas_menu_delete.js +0 -29
  1538. package/src/paraglide/messages/canvas_menu_deliver.js +0 -29
  1539. package/src/paraglide/messages/canvas_menu_distribute.js +0 -29
  1540. package/src/paraglide/messages/canvas_menu_distributeh1.js +0 -30
  1541. package/src/paraglide/messages/canvas_menu_distributev1.js +0 -30
  1542. package/src/paraglide/messages/canvas_menu_duplicate.js +0 -29
  1543. package/src/paraglide/messages/canvas_menu_fitview1.js +0 -30
  1544. package/src/paraglide/messages/canvas_menu_flip.js +0 -29
  1545. package/src/paraglide/messages/canvas_menu_fliph1.js +0 -30
  1546. package/src/paraglide/messages/canvas_menu_flipv1.js +0 -30
  1547. package/src/paraglide/messages/canvas_menu_group.js +0 -29
  1548. package/src/paraglide/messages/canvas_menu_hide.js +0 -29
  1549. package/src/paraglide/messages/canvas_menu_layerback1.js +0 -30
  1550. package/src/paraglide/messages/canvas_menu_layerbackward1.js +0 -30
  1551. package/src/paraglide/messages/canvas_menu_layerforward1.js +0 -30
  1552. package/src/paraglide/messages/canvas_menu_layerfront1.js +0 -30
  1553. package/src/paraglide/messages/canvas_menu_lock.js +0 -29
  1554. package/src/paraglide/messages/canvas_menu_newframe1.js +0 -30
  1555. package/src/paraglide/messages/canvas_menu_newframecustom2.js +0 -30
  1556. package/src/paraglide/messages/canvas_menu_newframedesktop2.js +0 -30
  1557. package/src/paraglide/messages/canvas_menu_newframemobile2.js +0 -30
  1558. package/src/paraglide/messages/canvas_menu_newframetablet2.js +0 -30
  1559. package/src/paraglide/messages/canvas_menu_nocustompresets2.js +0 -30
  1560. package/src/paraglide/messages/canvas_menu_paste.js +0 -29
  1561. package/src/paraglide/messages/canvas_menu_pastehere1.js +0 -30
  1562. package/src/paraglide/messages/canvas_menu_pasteintoframe2.js +0 -30
  1563. package/src/paraglide/messages/canvas_menu_selectall1.js +0 -30
  1564. package/src/paraglide/messages/canvas_menu_ungroup.js +0 -29
  1565. package/src/paraglide/messages/canvas_menu_unlock.js +0 -29
  1566. package/src/paraglide/messages/canvas_movedown1.js +0 -30
  1567. package/src/paraglide/messages/canvas_moveup1.js +0 -30
  1568. package/src/paraglide/messages/canvas_multiselection1.js +0 -30
  1569. package/src/paraglide/messages/canvas_noselection1.js +0 -30
  1570. package/src/paraglide/messages/canvas_noselectionhint2.js +0 -30
  1571. package/src/paraglide/messages/canvas_opacityfield1.js +0 -30
  1572. package/src/paraglide/messages/canvas_paintcolorpickeropen3.js +0 -30
  1573. package/src/paraglide/messages/canvas_painthex1.js +0 -30
  1574. package/src/paraglide/messages/canvas_paintimageurl2.js +0 -30
  1575. package/src/paraglide/messages/canvas_paintmode1.js +0 -30
  1576. package/src/paraglide/messages/canvas_paintmode_clip1.js +0 -30
  1577. package/src/paraglide/messages/canvas_paintmode_cover1.js +0 -30
  1578. package/src/paraglide/messages/canvas_paintmode_fit1.js +0 -30
  1579. package/src/paraglide/messages/canvas_paintmode_repeat1.js +0 -30
  1580. package/src/paraglide/messages/canvas_paintmode_stretch1.js +0 -30
  1581. package/src/paraglide/messages/canvas_paintopacity1.js +0 -30
  1582. package/src/paraglide/messages/canvas_pathaddanchor2.js +0 -30
  1583. package/src/paraglide/messages/canvas_pathanchorcount2.js +0 -30
  1584. package/src/paraglide/messages/canvas_pathclose1.js +0 -30
  1585. package/src/paraglide/messages/canvas_pathclosed1.js +0 -30
  1586. package/src/paraglide/messages/canvas_pathdeleteanchor2.js +0 -30
  1587. package/src/paraglide/messages/canvas_pathexitedit2.js +0 -30
  1588. package/src/paraglide/messages/canvas_pathhandleangle2.js +0 -30
  1589. package/src/paraglide/messages/canvas_pathhandlelength2.js +0 -30
  1590. package/src/paraglide/messages/canvas_pathhint1.js +0 -30
  1591. package/src/paraglide/messages/canvas_pathopen1.js +0 -30
  1592. package/src/paraglide/messages/canvas_pathselectedpoint2.js +0 -30
  1593. package/src/paraglide/messages/canvas_pattern_gap.js +0 -29
  1594. package/src/paraglide/messages/canvas_pattern_interlace.js +0 -29
  1595. package/src/paraglide/messages/canvas_pattern_rotation.js +0 -29
  1596. package/src/paraglide/messages/canvas_pattern_scale.js +0 -29
  1597. package/src/paraglide/messages/canvas_patterntexture1.js +0 -30
  1598. package/src/paraglide/messages/canvas_patterntexture_checker1.js +0 -30
  1599. package/src/paraglide/messages/canvas_patterntexture_diagonal1.js +0 -30
  1600. package/src/paraglide/messages/canvas_patterntexture_dot1.js +0 -30
  1601. package/src/paraglide/messages/canvas_patterntexture_grid1.js +0 -30
  1602. package/src/paraglide/messages/canvas_patterntexture_noise1.js +0 -30
  1603. package/src/paraglide/messages/canvas_patterntexture_wave1.js +0 -30
  1604. package/src/paraglide/messages/canvas_poc_title.js +0 -29
  1605. package/src/paraglide/messages/canvas_pointtypeasymmetric2.js +0 -30
  1606. package/src/paraglide/messages/canvas_pointtypedisconnected2.js +0 -30
  1607. package/src/paraglide/messages/canvas_pointtypemirror2.js +0 -30
  1608. package/src/paraglide/messages/canvas_pointtypestraight2.js +0 -30
  1609. package/src/paraglide/messages/canvas_position.js +0 -29
  1610. package/src/paraglide/messages/canvas_positionheight1.js +0 -30
  1611. package/src/paraglide/messages/canvas_positionwidth1.js +0 -30
  1612. package/src/paraglide/messages/canvas_positionx1.js +0 -30
  1613. package/src/paraglide/messages/canvas_positiony1.js +0 -30
  1614. package/src/paraglide/messages/canvas_properties.js +0 -29
  1615. package/src/paraglide/messages/canvas_redo.js +0 -29
  1616. package/src/paraglide/messages/canvas_refpoint1.js +0 -30
  1617. package/src/paraglide/messages/canvas_refpointcenter2.js +0 -30
  1618. package/src/paraglide/messages/canvas_rotation.js +0 -29
  1619. package/src/paraglide/messages/canvas_save_nopage1.js +0 -30
  1620. package/src/paraglide/messages/canvas_saving.js +0 -29
  1621. package/src/paraglide/messages/canvas_sectiontransform1.js +0 -30
  1622. package/src/paraglide/messages/canvas_shader_addcolor1.js +0 -30
  1623. package/src/paraglide/messages/canvas_shader_color.js +0 -29
  1624. package/src/paraglide/messages/canvas_shader_colors.js +0 -29
  1625. package/src/paraglide/messages/canvas_shader_enum_circle.js +0 -29
  1626. package/src/paraglide/messages/canvas_shader_enum_classic.js +0 -29
  1627. package/src/paraglide/messages/canvas_shader_enum_diamond.js +0 -29
  1628. package/src/paraglide/messages/canvas_shader_enum_gooey.js +0 -29
  1629. package/src/paraglide/messages/canvas_shader_enum_hex.js +0 -29
  1630. package/src/paraglide/messages/canvas_shader_enum_holes.js +0 -29
  1631. package/src/paraglide/messages/canvas_shader_enum_soft.js +0 -29
  1632. package/src/paraglide/messages/canvas_shader_enum_square.js +0 -29
  1633. package/src/paraglide/messages/canvas_shader_enum_triangle.js +0 -29
  1634. package/src/paraglide/messages/canvas_shader_fit.js +0 -29
  1635. package/src/paraglide/messages/canvas_shader_fit_contain.js +0 -29
  1636. package/src/paraglide/messages/canvas_shader_fit_cover.js +0 -29
  1637. package/src/paraglide/messages/canvas_shader_offsetx1.js +0 -30
  1638. package/src/paraglide/messages/canvas_shader_offsety1.js +0 -30
  1639. package/src/paraglide/messages/canvas_shader_param_amplitude.js +0 -29
  1640. package/src/paraglide/messages/canvas_shader_param_angle.js +0 -29
  1641. package/src/paraglide/messages/canvas_shader_param_bandcount1.js +0 -30
  1642. package/src/paraglide/messages/canvas_shader_param_blending.js +0 -29
  1643. package/src/paraglide/messages/canvas_shader_param_bloom.js +0 -29
  1644. package/src/paraglide/messages/canvas_shader_param_center.js +0 -29
  1645. package/src/paraglide/messages/canvas_shader_param_clip.js +0 -29
  1646. package/src/paraglide/messages/canvas_shader_param_colorback1.js +0 -30
  1647. package/src/paraglide/messages/canvas_shader_param_colorbloom1.js +0 -30
  1648. package/src/paraglide/messages/canvas_shader_param_colorfill1.js +0 -30
  1649. package/src/paraglide/messages/canvas_shader_param_colorfront1.js +0 -30
  1650. package/src/paraglide/messages/canvas_shader_param_colorgap1.js +0 -30
  1651. package/src/paraglide/messages/canvas_shader_param_colorglow1.js +0 -30
  1652. package/src/paraglide/messages/canvas_shader_param_colorpaper1.js +0 -30
  1653. package/src/paraglide/messages/canvas_shader_param_colorshadow1.js +0 -30
  1654. package/src/paraglide/messages/canvas_shader_param_colorstroke1.js +0 -30
  1655. package/src/paraglide/messages/canvas_shader_param_contrast.js +0 -29
  1656. package/src/paraglide/messages/canvas_shader_param_count.js +0 -29
  1657. package/src/paraglide/messages/canvas_shader_param_crumplecount1.js +0 -30
  1658. package/src/paraglide/messages/canvas_shader_param_crumples.js +0 -29
  1659. package/src/paraglide/messages/canvas_shader_param_density.js +0 -29
  1660. package/src/paraglide/messages/canvas_shader_param_distortion.js +0 -29
  1661. package/src/paraglide/messages/canvas_shader_param_drops.js +0 -29
  1662. package/src/paraglide/messages/canvas_shader_param_fiber.js +0 -29
  1663. package/src/paraglide/messages/canvas_shader_param_fibersize1.js +0 -30
  1664. package/src/paraglide/messages/canvas_shader_param_foldoffsetx2.js +0 -30
  1665. package/src/paraglide/messages/canvas_shader_param_foldoffsety2.js +0 -30
  1666. package/src/paraglide/messages/canvas_shader_param_folds.js +0 -29
  1667. package/src/paraglide/messages/canvas_shader_param_foldsizex2.js +0 -30
  1668. package/src/paraglide/messages/canvas_shader_param_foldsizey2.js +0 -30
  1669. package/src/paraglide/messages/canvas_shader_param_frequency.js +0 -29
  1670. package/src/paraglide/messages/canvas_shader_param_gap.js +0 -29
  1671. package/src/paraglide/messages/canvas_shader_param_gapx1.js +0 -30
  1672. package/src/paraglide/messages/canvas_shader_param_gapy1.js +0 -30
  1673. package/src/paraglide/messages/canvas_shader_param_glow.js +0 -29
  1674. package/src/paraglide/messages/canvas_shader_param_grainmixer1.js +0 -30
  1675. package/src/paraglide/messages/canvas_shader_param_grainoverlay1.js +0 -30
  1676. package/src/paraglide/messages/canvas_shader_param_grainsize1.js +0 -30
  1677. package/src/paraglide/messages/canvas_shader_param_grid.js +0 -29
  1678. package/src/paraglide/messages/canvas_shader_param_intensity.js +0 -29
  1679. package/src/paraglide/messages/canvas_shader_param_inverted.js +0 -29
  1680. package/src/paraglide/messages/canvas_shader_param_lacunarity.js +0 -29
  1681. package/src/paraglide/messages/canvas_shader_param_midintensity1.js +0 -30
  1682. package/src/paraglide/messages/canvas_shader_param_midsize1.js +0 -30
  1683. package/src/paraglide/messages/canvas_shader_param_noise.js +0 -29
  1684. package/src/paraglide/messages/canvas_shader_param_noisefrequency1.js +0 -30
  1685. package/src/paraglide/messages/canvas_shader_param_octavecount1.js +0 -30
  1686. package/src/paraglide/messages/canvas_shader_param_opacityrange1.js +0 -30
  1687. package/src/paraglide/messages/canvas_shader_param_originalcolors1.js +0 -30
  1688. package/src/paraglide/messages/canvas_shader_param_persistence.js +0 -29
  1689. package/src/paraglide/messages/canvas_shader_param_proportion.js +0 -29
  1690. package/src/paraglide/messages/canvas_shader_param_radius.js +0 -29
  1691. package/src/paraglide/messages/canvas_shader_param_roughness.js +0 -29
  1692. package/src/paraglide/messages/canvas_shader_param_roughnessrows1.js +0 -30
  1693. package/src/paraglide/messages/canvas_shader_param_roughnesssize1.js +0 -30
  1694. package/src/paraglide/messages/canvas_shader_param_seed.js +0 -29
  1695. package/src/paraglide/messages/canvas_shader_param_shape.js +0 -29
  1696. package/src/paraglide/messages/canvas_shader_param_size.js +0 -29
  1697. package/src/paraglide/messages/canvas_shader_param_sizerange1.js +0 -30
  1698. package/src/paraglide/messages/canvas_shader_param_softness.js +0 -29
  1699. package/src/paraglide/messages/canvas_shader_param_spacing.js +0 -29
  1700. package/src/paraglide/messages/canvas_shader_param_spotty.js +0 -29
  1701. package/src/paraglide/messages/canvas_shader_param_spreading.js +0 -29
  1702. package/src/paraglide/messages/canvas_shader_param_stepspercolor2.js +0 -30
  1703. package/src/paraglide/messages/canvas_shader_param_strokewidth1.js +0 -30
  1704. package/src/paraglide/messages/canvas_shader_param_swirl.js +0 -29
  1705. package/src/paraglide/messages/canvas_shader_param_twist.js +0 -29
  1706. package/src/paraglide/messages/canvas_shader_param_type.js +0 -29
  1707. package/src/paraglide/messages/canvas_shader_param_wrinkles.js +0 -29
  1708. package/src/paraglide/messages/canvas_shader_param_wrinklesize1.js +0 -30
  1709. package/src/paraglide/messages/canvas_shader_preset.js +0 -29
  1710. package/src/paraglide/messages/canvas_shader_preset_dotgrid1.js +0 -30
  1711. package/src/paraglide/messages/canvas_shader_preset_dotorbit1.js +0 -30
  1712. package/src/paraglide/messages/canvas_shader_preset_godrays1.js +0 -30
  1713. package/src/paraglide/messages/canvas_shader_preset_halftonedots1.js +0 -30
  1714. package/src/paraglide/messages/canvas_shader_preset_meshgradient1.js +0 -30
  1715. package/src/paraglide/messages/canvas_shader_preset_metaballs.js +0 -29
  1716. package/src/paraglide/messages/canvas_shader_preset_papertexture1.js +0 -30
  1717. package/src/paraglide/messages/canvas_shader_preset_perlinnoise1.js +0 -30
  1718. package/src/paraglide/messages/canvas_shader_preset_simplexnoise1.js +0 -30
  1719. package/src/paraglide/messages/canvas_shader_preset_swirl.js +0 -29
  1720. package/src/paraglide/messages/canvas_shader_preset_voronoi.js +0 -29
  1721. package/src/paraglide/messages/canvas_shader_preset_waves.js +0 -29
  1722. package/src/paraglide/messages/canvas_shader_removecolor1.js +0 -30
  1723. package/src/paraglide/messages/canvas_shader_rotation.js +0 -29
  1724. package/src/paraglide/messages/canvas_shader_scale.js +0 -29
  1725. package/src/paraglide/messages/canvas_shader_speed.js +0 -29
  1726. package/src/paraglide/messages/canvas_shape_arc.js +0 -29
  1727. package/src/paraglide/messages/canvas_shape_arrow.js +0 -29
  1728. package/src/paraglide/messages/canvas_shape_diamond.js +0 -29
  1729. package/src/paraglide/messages/canvas_shape_ellipse.js +0 -29
  1730. package/src/paraglide/messages/canvas_shape_freehand.js +0 -29
  1731. package/src/paraglide/messages/canvas_shape_freepolygon1.js +0 -30
  1732. package/src/paraglide/messages/canvas_shape_hexagon.js +0 -29
  1733. package/src/paraglide/messages/canvas_shape_line.js +0 -29
  1734. package/src/paraglide/messages/canvas_shape_linediagonal1.js +0 -30
  1735. package/src/paraglide/messages/canvas_shape_linehorizontal1.js +0 -30
  1736. package/src/paraglide/messages/canvas_shape_linevertical1.js +0 -30
  1737. package/src/paraglide/messages/canvas_shape_pentagon.js +0 -29
  1738. package/src/paraglide/messages/canvas_shape_pie.js +0 -29
  1739. package/src/paraglide/messages/canvas_shape_piering1.js +0 -30
  1740. package/src/paraglide/messages/canvas_shape_polygonn1.js +0 -30
  1741. package/src/paraglide/messages/canvas_shape_polyline.js +0 -29
  1742. package/src/paraglide/messages/canvas_shape_rect.js +0 -29
  1743. package/src/paraglide/messages/canvas_shape_ring.js +0 -29
  1744. package/src/paraglide/messages/canvas_shape_smoothcurve1.js +0 -30
  1745. package/src/paraglide/messages/canvas_shape_smoothpolygon1.js +0 -30
  1746. package/src/paraglide/messages/canvas_shape_star5.js +0 -29
  1747. package/src/paraglide/messages/canvas_shape_star8.js +0 -29
  1748. package/src/paraglide/messages/canvas_shape_starbadge1.js +0 -30
  1749. package/src/paraglide/messages/canvas_shape_starflare1.js +0 -30
  1750. package/src/paraglide/messages/canvas_shape_trend.js +0 -29
  1751. package/src/paraglide/messages/canvas_shape_triangle.js +0 -29
  1752. package/src/paraglide/messages/canvas_shapeclosed1.js +0 -30
  1753. package/src/paraglide/messages/canvas_shapecorners1.js +0 -30
  1754. package/src/paraglide/messages/canvas_shapecurve1.js +0 -30
  1755. package/src/paraglide/messages/canvas_shapecurvevalue2.js +0 -30
  1756. package/src/paraglide/messages/canvas_shapeendangle2.js +0 -30
  1757. package/src/paraglide/messages/canvas_shapeendarrow2.js +0 -30
  1758. package/src/paraglide/messages/canvas_shapegroup_basic1.js +0 -30
  1759. package/src/paraglide/messages/canvas_shapegroup_ellipse1.js +0 -30
  1760. package/src/paraglide/messages/canvas_shapegroup_line1.js +0 -30
  1761. package/src/paraglide/messages/canvas_shapegroup_polygon1.js +0 -30
  1762. package/src/paraglide/messages/canvas_shapegroup_star1.js +0 -30
  1763. package/src/paraglide/messages/canvas_shapeinnerradius2.js +0 -30
  1764. package/src/paraglide/messages/canvas_shapepointshint2.js +0 -30
  1765. package/src/paraglide/messages/canvas_shapesection1.js +0 -30
  1766. package/src/paraglide/messages/canvas_shapesides1.js +0 -30
  1767. package/src/paraglide/messages/canvas_shapestartangle2.js +0 -30
  1768. package/src/paraglide/messages/canvas_shapestartarrow2.js +0 -30
  1769. package/src/paraglide/messages/canvas_shapetools1.js +0 -30
  1770. package/src/paraglide/messages/canvas_strokealign1.js +0 -30
  1771. package/src/paraglide/messages/canvas_strokealign_center1.js +0 -30
  1772. package/src/paraglide/messages/canvas_strokealign_inside1.js +0 -30
  1773. package/src/paraglide/messages/canvas_strokealign_outside1.js +0 -30
  1774. package/src/paraglide/messages/canvas_strokealignhint2.js +0 -30
  1775. package/src/paraglide/messages/canvas_strokecap1.js +0 -30
  1776. package/src/paraglide/messages/canvas_strokecap_none1.js +0 -30
  1777. package/src/paraglide/messages/canvas_strokecap_round1.js +0 -30
  1778. package/src/paraglide/messages/canvas_strokecap_square1.js +0 -30
  1779. package/src/paraglide/messages/canvas_strokedash1.js +0 -30
  1780. package/src/paraglide/messages/canvas_strokedashoffset2.js +0 -30
  1781. package/src/paraglide/messages/canvas_strokejoin1.js +0 -30
  1782. package/src/paraglide/messages/canvas_strokejoin_bevel1.js +0 -30
  1783. package/src/paraglide/messages/canvas_strokejoin_miter1.js +0 -30
  1784. package/src/paraglide/messages/canvas_strokejoin_round1.js +0 -30
  1785. package/src/paraglide/messages/canvas_strokelimit1.js +0 -30
  1786. package/src/paraglide/messages/canvas_strokes.js +0 -29
  1787. package/src/paraglide/messages/canvas_strokewidthfield2.js +0 -30
  1788. package/src/paraglide/messages/canvas_style.js +0 -29
  1789. package/src/paraglide/messages/canvas_stylefill1.js +0 -30
  1790. package/src/paraglide/messages/canvas_stylefontsize2.js +0 -30
  1791. package/src/paraglide/messages/canvas_styleopacity1.js +0 -30
  1792. package/src/paraglide/messages/canvas_styleradius1.js +0 -30
  1793. package/src/paraglide/messages/canvas_stylestroke1.js +0 -30
  1794. package/src/paraglide/messages/canvas_stylestrokewidth2.js +0 -30
  1795. package/src/paraglide/messages/canvas_styletext1.js +0 -30
  1796. package/src/paraglide/messages/canvas_textalign1.js +0 -30
  1797. package/src/paraglide/messages/canvas_textalign_center1.js +0 -30
  1798. package/src/paraglide/messages/canvas_textalign_justify1.js +0 -30
  1799. package/src/paraglide/messages/canvas_textalign_left1.js +0 -30
  1800. package/src/paraglide/messages/canvas_textalign_right1.js +0 -30
  1801. package/src/paraglide/messages/canvas_textsection1.js +0 -30
  1802. package/src/paraglide/messages/canvas_textwrap1.js +0 -30
  1803. package/src/paraglide/messages/canvas_toolarrow1.js +0 -30
  1804. package/src/paraglide/messages/canvas_toolbar.js +0 -29
  1805. package/src/paraglide/messages/canvas_toolellipse1.js +0 -30
  1806. package/src/paraglide/messages/canvas_toolframe1.js +0 -30
  1807. package/src/paraglide/messages/canvas_toolline1.js +0 -30
  1808. package/src/paraglide/messages/canvas_toolpen1.js +0 -30
  1809. package/src/paraglide/messages/canvas_toolrect1.js +0 -30
  1810. package/src/paraglide/messages/canvas_toolselect1.js +0 -30
  1811. package/src/paraglide/messages/canvas_tooltext1.js +0 -30
  1812. package/src/paraglide/messages/canvas_typename_arrow1.js +0 -30
  1813. package/src/paraglide/messages/canvas_typename_board1.js +0 -30
  1814. package/src/paraglide/messages/canvas_typename_ellipse1.js +0 -30
  1815. package/src/paraglide/messages/canvas_typename_frame1.js +0 -30
  1816. package/src/paraglide/messages/canvas_typename_group1.js +0 -30
  1817. package/src/paraglide/messages/canvas_typename_line1.js +0 -30
  1818. package/src/paraglide/messages/canvas_typename_path1.js +0 -30
  1819. package/src/paraglide/messages/canvas_typename_polygon1.js +0 -30
  1820. package/src/paraglide/messages/canvas_typename_rect1.js +0 -30
  1821. package/src/paraglide/messages/canvas_typename_star1.js +0 -30
  1822. package/src/paraglide/messages/canvas_typename_text1.js +0 -30
  1823. package/src/paraglide/messages/canvas_undo.js +0 -29
  1824. package/src/paraglide/messages/canvas_verticalalign1.js +0 -30
  1825. package/src/paraglide/messages/canvas_verticalalign_bottom1.js +0 -30
  1826. package/src/paraglide/messages/canvas_verticalalign_middle1.js +0 -30
  1827. package/src/paraglide/messages/canvas_verticalalign_top1.js +0 -30
  1828. package/src/paraglide/messages/canvas_visibility.js +0 -29
  1829. package/src/paraglide/messages/canvas_zoomin1.js +0 -30
  1830. package/src/paraglide/messages/canvas_zoomin_hotkey1.js +0 -30
  1831. package/src/paraglide/messages/canvas_zoomout1.js +0 -30
  1832. package/src/paraglide/messages/canvas_zoomout_hotkey1.js +0 -30
  1833. package/src/paraglide/messages/canvas_zoompercent1.js +0 -30
  1834. package/src/paraglide/messages/canvas_zoomreset1.js +0 -30
  1835. package/src/paraglide/messages/chat_actions_attach.js +0 -29
  1836. package/src/paraglide/messages/chat_actions_cancel.js +0 -29
  1837. package/src/paraglide/messages/chat_actions_codemode1.js +0 -30
  1838. package/src/paraglide/messages/chat_actions_codemodeunavailable2.js +0 -30
  1839. package/src/paraglide/messages/chat_actions_copied.js +0 -29
  1840. package/src/paraglide/messages/chat_actions_copy.js +0 -29
  1841. package/src/paraglide/messages/chat_actions_copyfailed1.js +0 -30
  1842. package/src/paraglide/messages/chat_actions_disablecodemode2.js +0 -30
  1843. package/src/paraglide/messages/chat_actions_disablethinking1.js +0 -30
  1844. package/src/paraglide/messages/chat_actions_disablewebsearch2.js +0 -30
  1845. package/src/paraglide/messages/chat_actions_enablecodemode2.js +0 -30
  1846. package/src/paraglide/messages/chat_actions_enablethinking1.js +0 -30
  1847. package/src/paraglide/messages/chat_actions_enablewebsearch2.js +0 -30
  1848. package/src/paraglide/messages/chat_actions_fork.js +0 -29
  1849. package/src/paraglide/messages/chat_actions_menu.js +0 -29
  1850. package/src/paraglide/messages/chat_actions_menulabel1.js +0 -30
  1851. package/src/paraglide/messages/chat_actions_moreactions1.js +0 -30
  1852. package/src/paraglide/messages/chat_actions_moreoptions1.js +0 -30
  1853. package/src/paraglide/messages/chat_actions_openmenu1.js +0 -30
  1854. package/src/paraglide/messages/chat_actions_regenerate.js +0 -29
  1855. package/src/paraglide/messages/chat_actions_sendmessage1.js +0 -30
  1856. package/src/paraglide/messages/chat_actions_stop.js +0 -29
  1857. package/src/paraglide/messages/chat_actions_stopmessage1.js +0 -30
  1858. package/src/paraglide/messages/chat_actions_thinking.js +0 -29
  1859. package/src/paraglide/messages/chat_actions_voiceinput1.js +0 -30
  1860. package/src/paraglide/messages/chat_actions_websearch1.js +0 -30
  1861. package/src/paraglide/messages/chat_agentmode_agent1.js +0 -30
  1862. package/src/paraglide/messages/chat_agentmode_auto1.js +0 -30
  1863. package/src/paraglide/messages/chat_agentmode_label1.js +0 -30
  1864. package/src/paraglide/messages/chat_agentmode_placeholder1.js +0 -30
  1865. package/src/paraglide/messages/chat_agentmode_plan1.js +0 -30
  1866. package/src/paraglide/messages/chat_agentselector_default1.js +0 -30
  1867. package/src/paraglide/messages/chat_agentselector_placeholder1.js +0 -30
  1868. package/src/paraglide/messages/chat_agentselector_switchconfirm2.js +0 -30
  1869. package/src/paraglide/messages/chat_agentselector_switchconfirmdesc3.js +0 -30
  1870. package/src/paraglide/messages/chat_agentselector_switchconfirmtitle3.js +0 -30
  1871. package/src/paraglide/messages/chat_aikeyrequired2.js +0 -30
  1872. package/src/paraglide/messages/chat_aiprompt_build1.js +0 -30
  1873. package/src/paraglide/messages/chat_aiprompt_describe1.js +0 -30
  1874. package/src/paraglide/messages/chat_aiprompt_enterfullchat3.js +0 -30
  1875. package/src/paraglide/messages/chat_aiprompt_generate1.js +0 -30
  1876. package/src/paraglide/messages/chat_aiprompt_gotoconfig3.js +0 -30
  1877. package/src/paraglide/messages/chat_aiprompt_launch1.js +0 -30
  1878. package/src/paraglide/messages/chat_aiprompt_notconfigured2.js +0 -30
  1879. package/src/paraglide/messages/chat_aiprompt_placeholder1.js +0 -30
  1880. package/src/paraglide/messages/chat_aiprompt_placeholdernotconfigured3.js +0 -30
  1881. package/src/paraglide/messages/chat_aiprompt_requestfailed2.js +0 -30
  1882. package/src/paraglide/messages/chat_aiprompt_subtitle1.js +0 -30
  1883. package/src/paraglide/messages/chat_aiprompt_thinking1.js +0 -30
  1884. package/src/paraglide/messages/chat_aria_aiconversation1.js +0 -30
  1885. package/src/paraglide/messages/chat_aria_aimessage1.js +0 -30
  1886. package/src/paraglide/messages/chat_aria_messagelog1.js +0 -30
  1887. package/src/paraglide/messages/chat_ask_agents_advice_prompt.js +0 -29
  1888. package/src/paraglide/messages/chat_ask_agents_skills_prompt.js +0 -29
  1889. package/src/paraglide/messages/chat_ask_general_brainstorm.js +0 -29
  1890. package/src/paraglide/messages/chat_ask_general_brainstorm_prompt.js +0 -29
  1891. package/src/paraglide/messages/chat_ask_general_proscons.js +0 -29
  1892. package/src/paraglide/messages/chat_ask_general_proscons_prompt.js +0 -29
  1893. package/src/paraglide/messages/chat_ask_general_summarize.js +0 -29
  1894. package/src/paraglide/messages/chat_ask_general_summarize_prompt.js +0 -29
  1895. package/src/paraglide/messages/chat_ask_kb_compare.js +0 -29
  1896. package/src/paraglide/messages/chat_ask_kb_compare_prompt.js +0 -29
  1897. package/src/paraglide/messages/chat_ask_kb_quiz.js +0 -29
  1898. package/src/paraglide/messages/chat_ask_kb_quiz_prompt.js +0 -29
  1899. package/src/paraglide/messages/chat_ask_kb_summary.js +0 -29
  1900. package/src/paraglide/messages/chat_ask_kb_summary_prompt.js +0 -29
  1901. package/src/paraglide/messages/chat_ask_prd_acceptance.js +0 -29
  1902. package/src/paraglide/messages/chat_ask_prd_acceptance_prompt.js +0 -29
  1903. package/src/paraglide/messages/chat_ask_prd_review.js +0 -29
  1904. package/src/paraglide/messages/chat_ask_prd_review_prompt.js +0 -29
  1905. package/src/paraglide/messages/chat_ask_prd_stories.js +0 -29
  1906. package/src/paraglide/messages/chat_ask_prd_stories_prompt.js +0 -29
  1907. package/src/paraglide/messages/chat_ask_story_analyze.js +0 -29
  1908. package/src/paraglide/messages/chat_ask_story_analyze_prompt.js +0 -29
  1909. package/src/paraglide/messages/chat_ask_story_check.js +0 -29
  1910. package/src/paraglide/messages/chat_ask_story_check_prompt.js +0 -29
  1911. package/src/paraglide/messages/chat_ask_story_refine.js +0 -29
  1912. package/src/paraglide/messages/chat_ask_story_refine_prompt.js +0 -29
  1913. package/src/paraglide/messages/chat_ask_workspaces_overview_prompt.js +0 -29
  1914. package/src/paraglide/messages/chat_ask_workspaces_seats_prompt.js +0 -29
  1915. package/src/paraglide/messages/chat_citations_citation.js +0 -29
  1916. package/src/paraglide/messages/chat_citations_domains_163_com.js +0 -30
  1917. package/src/paraglide/messages/chat_citations_domains_baidu_com.js +0 -30
  1918. package/src/paraglide/messages/chat_citations_domains_bilibili_com.js +0 -30
  1919. package/src/paraglide/messages/chat_citations_domains_bing_com.js +0 -30
  1920. package/src/paraglide/messages/chat_citations_domains_douyin_com.js +0 -30
  1921. package/src/paraglide/messages/chat_citations_domains_jianshu_com.js +0 -30
  1922. package/src/paraglide/messages/chat_citations_domains_qq_com.js +0 -30
  1923. package/src/paraglide/messages/chat_citations_domains_sina_com_cn.js +0 -30
  1924. package/src/paraglide/messages/chat_citations_domains_sohu_com.js +0 -30
  1925. package/src/paraglide/messages/chat_citations_domains_weibo_com.js +0 -30
  1926. package/src/paraglide/messages/chat_citations_domains_wikipedia_org.js +0 -30
  1927. package/src/paraglide/messages/chat_citations_domains_xiaohongshu_com.js +0 -30
  1928. package/src/paraglide/messages/chat_citations_domains_zhihu_com.js +0 -30
  1929. package/src/paraglide/messages/chat_citations_empty.js +0 -29
  1930. package/src/paraglide/messages/chat_citations_emptydesc1.js +0 -30
  1931. package/src/paraglide/messages/chat_citations_hidesnippet1.js +0 -30
  1932. package/src/paraglide/messages/chat_citations_openinnewtab3.js +0 -30
  1933. package/src/paraglide/messages/chat_citations_showsnippet1.js +0 -30
  1934. package/src/paraglide/messages/chat_citations_source.js +0 -29
  1935. package/src/paraglide/messages/chat_citations_sourcecount1.js +0 -30
  1936. package/src/paraglide/messages/chat_citations_sourceexcerpt1.js +0 -30
  1937. package/src/paraglide/messages/chat_citations_sourcemetadata1.js +0 -30
  1938. package/src/paraglide/messages/chat_citations_title.js +0 -29
  1939. package/src/paraglide/messages/chat_citations_viewcitation1.js +0 -30
  1940. package/src/paraglide/messages/chat_code_changeset.js +0 -29
  1941. package/src/paraglide/messages/chat_code_clearterminal1.js +0 -30
  1942. package/src/paraglide/messages/chat_code_filedetail1.js +0 -30
  1943. package/src/paraglide/messages/chat_code_files.js +0 -29
  1944. package/src/paraglide/messages/chat_code_loadingfiles1.js +0 -30
  1945. package/src/paraglide/messages/chat_code_nochanges1.js +0 -30
  1946. package/src/paraglide/messages/chat_code_nofiles1.js +0 -30
  1947. package/src/paraglide/messages/chat_code_noterminal1.js +0 -30
  1948. package/src/paraglide/messages/chat_code_preview.js +0 -29
  1949. package/src/paraglide/messages/chat_code_previewempty1.js +0 -30
  1950. package/src/paraglide/messages/chat_code_terminal.js +0 -29
  1951. package/src/paraglide/messages/chat_code_terminalhelp1.js +0 -30
  1952. package/src/paraglide/messages/chat_code_uploaderror1.js +0 -30
  1953. package/src/paraglide/messages/chat_code_uploadsuccess1.js +0 -30
  1954. package/src/paraglide/messages/chat_context_add.js +0 -29
  1955. package/src/paraglide/messages/chat_context_knowledgebase1.js +0 -30
  1956. package/src/paraglide/messages/chat_context_remove.js +0 -29
  1957. package/src/paraglide/messages/chat_context_selected.js +0 -29
  1958. package/src/paraglide/messages/chat_context_selectedmobile1.js +0 -30
  1959. package/src/paraglide/messages/chat_context_users.js +0 -29
  1960. package/src/paraglide/messages/chat_empty_createnew1.js +0 -30
  1961. package/src/paraglide/messages/chat_empty_noconversations1.js +0 -30
  1962. package/src/paraglide/messages/chat_empty_notfound1.js +0 -30
  1963. package/src/paraglide/messages/chat_empty_tryothersearch2.js +0 -30
  1964. package/src/paraglide/messages/chat_emptystate_description1.js +0 -30
  1965. package/src/paraglide/messages/chat_emptystate_newmessage2.js +0 -30
  1966. package/src/paraglide/messages/chat_emptystate_title1.js +0 -30
  1967. package/src/paraglide/messages/chat_error_translate.js +0 -29
  1968. package/src/paraglide/messages/chat_error_translating.js +0 -29
  1969. package/src/paraglide/messages/chat_fork_at_message.js +0 -29
  1970. package/src/paraglide/messages/chat_globalchat_close1.js +0 -30
  1971. package/src/paraglide/messages/chat_globalchat_confighint2.js +0 -30
  1972. package/src/paraglide/messages/chat_globalchat_draftrestored2.js +0 -30
  1973. package/src/paraglide/messages/chat_globalchat_history1.js +0 -30
  1974. package/src/paraglide/messages/chat_globalchat_notconfigured2.js +0 -30
  1975. package/src/paraglide/messages/chat_globalchat_openinharness3.js +0 -30
  1976. package/src/paraglide/messages/chat_globalchat_placeholder1.js +0 -30
  1977. package/src/paraglide/messages/chat_globalchat_placeholdernotconfigured3.js +0 -30
  1978. package/src/paraglide/messages/chat_globalchat_requestfailed2.js +0 -30
  1979. package/src/paraglide/messages/chat_globalchat_send1.js +0 -30
  1980. package/src/paraglide/messages/chat_globalchat_sending1.js +0 -30
  1981. package/src/paraglide/messages/chat_globalchat_sizecompact2.js +0 -30
  1982. package/src/paraglide/messages/chat_globalchat_sizefull2.js +0 -30
  1983. package/src/paraglide/messages/chat_globalchat_sizemedium2.js +0 -30
  1984. package/src/paraglide/messages/chat_globalchat_suggesteddesc2.js +0 -30
  1985. package/src/paraglide/messages/chat_globalchat_suggestedtitle2.js +0 -30
  1986. package/src/paraglide/messages/chat_globalchat_thinking1.js +0 -30
  1987. package/src/paraglide/messages/chat_globalchat_title1.js +0 -30
  1988. package/src/paraglide/messages/chat_gotosettings2.js +0 -30
  1989. package/src/paraglide/messages/chat_groups_earlier.js +0 -29
  1990. package/src/paraglide/messages/chat_groups_thisweek1.js +0 -30
  1991. package/src/paraglide/messages/chat_groups_today.js +0 -29
  1992. package/src/paraglide/messages/chat_groups_yesterday.js +0 -29
  1993. package/src/paraglide/messages/chat_history_archive.js +0 -29
  1994. package/src/paraglide/messages/chat_history_conversationcount1.js +0 -30
  1995. package/src/paraglide/messages/chat_history_deletedescription1.js +0 -30
  1996. package/src/paraglide/messages/chat_history_deletetitle1.js +0 -30
  1997. package/src/paraglide/messages/chat_history_edittitle1.js +0 -30
  1998. package/src/paraglide/messages/chat_history_messagecount1.js +0 -30
  1999. package/src/paraglide/messages/chat_history_moreactions1.js +0 -30
  2000. package/src/paraglide/messages/chat_history_rename.js +0 -29
  2001. package/src/paraglide/messages/chat_history_searcharialabel2.js +0 -30
  2002. package/src/paraglide/messages/chat_history_searchplaceholder1.js +0 -30
  2003. package/src/paraglide/messages/chat_history_selectconversation1.js +0 -30
  2004. package/src/paraglide/messages/chat_history_title.js +0 -29
  2005. package/src/paraglide/messages/chat_history_unarchive.js +0 -29
  2006. package/src/paraglide/messages/chat_interrupt_approve.js +0 -29
  2007. package/src/paraglide/messages/chat_interrupt_descriptionend1.js +0 -30
  2008. package/src/paraglide/messages/chat_interrupt_descriptionstart1.js +0 -30
  2009. package/src/paraglide/messages/chat_interrupt_reject.js +0 -29
  2010. package/src/paraglide/messages/chat_interrupt_title.js +0 -29
  2011. package/src/paraglide/messages/chat_model_capabilities_audio.js +0 -29
  2012. package/src/paraglide/messages/chat_model_capabilities_reasoning.js +0 -29
  2013. package/src/paraglide/messages/chat_model_capabilities_text.js +0 -29
  2014. package/src/paraglide/messages/chat_model_capabilities_tools.js +0 -29
  2015. package/src/paraglide/messages/chat_model_capabilities_vision.js +0 -29
  2016. package/src/paraglide/messages/chat_model_loading.js +0 -29
  2017. package/src/paraglide/messages/chat_model_local.js +0 -29
  2018. package/src/paraglide/messages/chat_model_none.js +0 -29
  2019. package/src/paraglide/messages/chat_model_select.js +0 -29
  2020. package/src/paraglide/messages/chat_newconversation1.js +0 -30
  2021. package/src/paraglide/messages/chat_prompt_enterhint1.js +0 -30
  2022. package/src/paraglide/messages/chat_prompt_input.js +0 -29
  2023. package/src/paraglide/messages/chat_prompt_inputlabel1.js +0 -30
  2024. package/src/paraglide/messages/chat_prompt_placeholder.js +0 -29
  2025. package/src/paraglide/messages/chat_prompt_submitlabel1.js +0 -30
  2026. package/src/paraglide/messages/chat_promptactions_clonescreenshot2.js +0 -30
  2027. package/src/paraglide/messages/chat_promptactions_importfigma2.js +0 -30
  2028. package/src/paraglide/messages/chat_promptactions_landingpage2.js +0 -30
  2029. package/src/paraglide/messages/chat_promptactions_uploadproject2.js +0 -30
  2030. package/src/paraglide/messages/chat_sandbox_created.js +0 -29
  2031. package/src/paraglide/messages/chat_sandbox_filechanged1.js +0 -30
  2032. package/src/paraglide/messages/chat_sandbox_filecreated1.js +0 -30
  2033. package/src/paraglide/messages/chat_sandbox_filedeleted1.js +0 -30
  2034. package/src/paraglide/messages/chat_sandbox_morechanges1.js +0 -30
  2035. package/src/paraglide/messages/chat_sandbox_nodiff1.js +0 -30
  2036. package/src/paraglide/messages/chat_sandbox_resumed.js +0 -29
  2037. package/src/paraglide/messages/chat_searchunavailable1.js +0 -30
  2038. package/src/paraglide/messages/chat_slashcommands_apply1.js +0 -30
  2039. package/src/paraglide/messages/chat_slashcommands_loading1.js +0 -30
  2040. package/src/paraglide/messages/chat_slashcommands_noskills2.js +0 -30
  2041. package/src/paraglide/messages/chat_slashcommands_placeholder1.js +0 -30
  2042. package/src/paraglide/messages/chat_streaming_label.js +0 -29
  2043. package/src/paraglide/messages/chat_thinking_elapsed.js +0 -29
  2044. package/src/paraglide/messages/chat_thinking_placeholder.js +0 -45
  2045. package/src/paraglide/messages/chat_thinking_process.js +0 -29
  2046. package/src/paraglide/messages/chat_thinking_seconds.js +0 -29
  2047. package/src/paraglide/messages/chat_thinking_title.js +0 -29
  2048. package/src/paraglide/messages/chat_title.js +0 -29
  2049. package/src/paraglide/messages/chat_toolcall_error1.js +0 -30
  2050. package/src/paraglide/messages/chat_toolcall_pending1.js +0 -30
  2051. package/src/paraglide/messages/chat_toolcall_ready1.js +0 -30
  2052. package/src/paraglide/messages/chat_toolresult_error1.js +0 -30
  2053. package/src/paraglide/messages/chat_toolresult_running1.js +0 -30
  2054. package/src/paraglide/messages/chat_toolresult_success1.js +0 -30
  2055. package/src/paraglide/messages/chat_workspace_branch.js +0 -29
  2056. package/src/paraglide/messages/chat_workspace_connectgithub1.js +0 -30
  2057. package/src/paraglide/messages/chat_workspace_fsapunavailable1.js +0 -30
  2058. package/src/paraglide/messages/chat_workspace_github.js +0 -29
  2059. package/src/paraglide/messages/chat_workspace_githubconnect1.js +0 -30
  2060. package/src/paraglide/messages/chat_workspace_local.js +0 -29
  2061. package/src/paraglide/messages/chat_workspace_localhint1.js +0 -30
  2062. package/src/paraglide/messages/chat_workspace_private.js +0 -29
  2063. package/src/paraglide/messages/chat_workspace_selectbranch1.js +0 -30
  2064. package/src/paraglide/messages/chat_workspace_selectfolder1.js +0 -30
  2065. package/src/paraglide/messages/chat_workspace_selectfoldererror2.js +0 -30
  2066. package/src/paraglide/messages/chat_workspace_selectrepo1.js +0 -30
  2067. package/src/paraglide/messages/collab_activitycountonly2.js +0 -30
  2068. package/src/paraglide/messages/collab_activitymany1.js +0 -30
  2069. package/src/paraglide/messages/collab_activityshare1.js +0 -30
  2070. package/src/paraglide/messages/collab_activitysingle1.js +0 -30
  2071. package/src/paraglide/messages/collab_activityunknownuser2.js +0 -30
  2072. package/src/paraglide/messages/collab_canvaseditingcount2.js +0 -30
  2073. package/src/paraglide/messages/collab_canvaseditingnode2.js +0 -30
  2074. package/src/paraglide/messages/collab_canvasvieweridle2.js +0 -30
  2075. package/src/paraglide/messages/collab_canvasviewerrow2.js +0 -30
  2076. package/src/paraglide/messages/collab_canvasviewerscount2.js +0 -30
  2077. package/src/paraglide/messages/collab_connectingbanner1.js +0 -30
  2078. package/src/paraglide/messages/collab_fieldeditingby2.js +0 -30
  2079. package/src/paraglide/messages/collab_offlinebanner1.js +0 -30
  2080. package/src/paraglide/messages/collab_presenceeditingcount2.js +0 -30
  2081. package/src/paraglide/messages/collab_presencetooltip1.js +0 -30
  2082. package/src/paraglide/messages/comment_accept.js +0 -29
  2083. package/src/paraglide/messages/comment_accepted.js +0 -29
  2084. package/src/paraglide/messages/comment_collapse.js +0 -29
  2085. package/src/paraglide/messages/comment_counttooltip1.js +0 -30
  2086. package/src/paraglide/messages/comment_ignore.js +0 -29
  2087. package/src/paraglide/messages/comment_modified.js +0 -29
  2088. package/src/paraglide/messages/comment_nocomments1.js +0 -30
  2089. package/src/paraglide/messages/comment_replycomingsoon2.js +0 -30
  2090. package/src/paraglide/messages/comment_reviewcomingsoon2.js +0 -30
  2091. package/src/paraglide/messages/comment_subtabcomment1.js +0 -30
  2092. package/src/paraglide/messages/comment_subtabreview1.js +0 -30
  2093. package/src/paraglide/messages/comment_unignore.js +0 -29
  2094. package/src/paraglide/messages/common_auth_loginfailed1.js +0 -30
  2095. package/src/paraglide/messages/common_auth_loginsuccess1.js +0 -30
  2096. package/src/paraglide/messages/common_auth_unknownerror1.js +0 -30
  2097. package/src/paraglide/messages/common_button_back.js +0 -29
  2098. package/src/paraglide/messages/common_button_cancel.js +0 -29
  2099. package/src/paraglide/messages/common_button_close.js +0 -29
  2100. package/src/paraglide/messages/common_button_confirm.js +0 -29
  2101. package/src/paraglide/messages/common_button_create.js +0 -29
  2102. package/src/paraglide/messages/common_button_delete.js +0 -29
  2103. package/src/paraglide/messages/common_button_edit.js +0 -29
  2104. package/src/paraglide/messages/common_button_next.js +0 -29
  2105. package/src/paraglide/messages/common_button_remove.js +0 -29
  2106. package/src/paraglide/messages/common_button_reset.js +0 -29
  2107. package/src/paraglide/messages/common_button_retry.js +0 -29
  2108. package/src/paraglide/messages/common_button_save.js +0 -29
  2109. package/src/paraglide/messages/common_button_search.js +0 -29
  2110. package/src/paraglide/messages/common_button_submit.js +0 -29
  2111. package/src/paraglide/messages/common_cancel.js +0 -29
  2112. package/src/paraglide/messages/common_changelog_backtolist2.js +0 -30
  2113. package/src/paraglide/messages/common_changelog_confirm_invalid.js +0 -29
  2114. package/src/paraglide/messages/common_changelog_confirm_invaliddesc1.js +0 -30
  2115. package/src/paraglide/messages/common_changelog_confirm_resubscribe.js +0 -29
  2116. package/src/paraglide/messages/common_changelog_confirm_success.js +0 -29
  2117. package/src/paraglide/messages/common_changelog_confirm_successdesc1.js +0 -30
  2118. package/src/paraglide/messages/common_changelog_confirm_view.js +0 -29
  2119. package/src/paraglide/messages/common_changelog_description.js +0 -29
  2120. package/src/paraglide/messages/common_changelog_entries.js +0 -29
  2121. package/src/paraglide/messages/common_changelog_entriesupdated1.js +0 -30
  2122. package/src/paraglide/messages/common_changelog_nomatch1.js +0 -30
  2123. package/src/paraglide/messages/common_changelog_nomatchhint2.js +0 -30
  2124. package/src/paraglide/messages/common_changelog_requiresaction1.js +0 -30
  2125. package/src/paraglide/messages/common_changelog_sdkgroups_allblue_sdk1.js +0 -30
  2126. package/src/paraglide/messages/common_changelog_sdkgroups_core_sdk1.js +0 -30
  2127. package/src/paraglide/messages/common_changelog_sdkgroups_tanstack_sdk1.js +0 -30
  2128. package/src/paraglide/messages/common_changelog_sdkversions1.js +0 -30
  2129. package/src/paraglide/messages/common_changelog_subscribe_placeholder.js +0 -29
  2130. package/src/paraglide/messages/common_changelog_subscribe_submit.js +0 -29
  2131. package/src/paraglide/messages/common_changelog_subscribe_subtitle.js +0 -29
  2132. package/src/paraglide/messages/common_changelog_subscribe_title.js +0 -29
  2133. package/src/paraglide/messages/common_changelog_subscribealready1.js +0 -30
  2134. package/src/paraglide/messages/common_changelog_subscribecheckemail2.js +0 -30
  2135. package/src/paraglide/messages/common_changelog_subscribefailed1.js +0 -30
  2136. package/src/paraglide/messages/common_changelog_subscribeinvalidemail2.js +0 -30
  2137. package/src/paraglide/messages/common_changelog_tags_all.js +0 -29
  2138. package/src/paraglide/messages/common_changelog_tags_breaking.js +0 -29
  2139. package/src/paraglide/messages/common_changelog_tags_design.js +0 -29
  2140. package/src/paraglide/messages/common_changelog_tags_docs.js +0 -29
  2141. package/src/paraglide/messages/common_changelog_tags_feat.js +0 -29
  2142. package/src/paraglide/messages/common_changelog_tags_fix.js +0 -29
  2143. package/src/paraglide/messages/common_changelog_tags_improvement.js +0 -29
  2144. package/src/paraglide/messages/common_changelog_tags_perf.js +0 -29
  2145. package/src/paraglide/messages/common_changelog_tags_refactor.js +0 -29
  2146. package/src/paraglide/messages/common_changelog_tags_security.js +0 -29
  2147. package/src/paraglide/messages/common_changelog_title.js +0 -29
  2148. package/src/paraglide/messages/common_command_createconversation1.js +0 -30
  2149. package/src/paraglide/messages/common_command_createprd1.js +0 -30
  2150. package/src/paraglide/messages/common_command_createstory1.js +0 -30
  2151. package/src/paraglide/messages/common_command_empty.js +0 -29
  2152. package/src/paraglide/messages/common_command_gotoacceptance1.js +0 -30
  2153. package/src/paraglide/messages/common_command_gotoagents1.js +0 -30
  2154. package/src/paraglide/messages/common_command_gotoanyhub1.js +0 -30
  2155. package/src/paraglide/messages/common_command_gotobugs1.js +0 -30
  2156. package/src/paraglide/messages/common_command_gotochat1.js +0 -30
  2157. package/src/paraglide/messages/common_command_gotodashboard1.js +0 -30
  2158. package/src/paraglide/messages/common_command_gotodebrief1.js +0 -30
  2159. package/src/paraglide/messages/common_command_gotodesign1.js +0 -30
  2160. package/src/paraglide/messages/common_command_gotoinspiration1.js +0 -30
  2161. package/src/paraglide/messages/common_command_gotoknowledge1.js +0 -30
  2162. package/src/paraglide/messages/common_command_gotoprd1.js +0 -30
  2163. package/src/paraglide/messages/common_command_gotosettings1.js +0 -30
  2164. package/src/paraglide/messages/common_command_gotostories1.js +0 -30
  2165. package/src/paraglide/messages/common_command_gototags1.js +0 -30
  2166. package/src/paraglide/messages/common_command_gototestcases2.js +0 -30
  2167. package/src/paraglide/messages/common_command_gotoworkspaces1.js +0 -30
  2168. package/src/paraglide/messages/common_command_groupaction1.js +0 -30
  2169. package/src/paraglide/messages/common_command_groupnavigation1.js +0 -30
  2170. package/src/paraglide/messages/common_command_searchplaceholder1.js +0 -30
  2171. package/src/paraglide/messages/common_command_signout1.js +0 -30
  2172. package/src/paraglide/messages/common_command_toggletheme1.js +0 -30
  2173. package/src/paraglide/messages/common_contributiongraph_legendless2.js +0 -30
  2174. package/src/paraglide/messages/common_contributiongraph_legendmore2.js +0 -30
  2175. package/src/paraglide/messages/common_contributiongraph_level1.js +0 -30
  2176. package/src/paraglide/messages/common_contributiongraph_monthsuffix2.js +0 -30
  2177. package/src/paraglide/messages/common_contributiongraph_operations1.js +0 -30
  2178. package/src/paraglide/messages/common_contributiongraph_recent121.js +0 -30
  2179. package/src/paraglide/messages/common_contributiongraph_title1.js +0 -30
  2180. package/src/paraglide/messages/common_contributiongraph_totalcount2.js +0 -30
  2181. package/src/paraglide/messages/common_contributiongraph_yearprefix2.js +0 -30
  2182. package/src/paraglide/messages/common_docs_title.js +0 -29
  2183. package/src/paraglide/messages/common_email_unsubscribe_invalid.js +0 -29
  2184. package/src/paraglide/messages/common_email_unsubscribe_invaliddesc1.js +0 -30
  2185. package/src/paraglide/messages/common_email_unsubscribe_login.js +0 -29
  2186. package/src/paraglide/messages/common_email_unsubscribe_manage.js +0 -29
  2187. package/src/paraglide/messages/common_email_unsubscribe_success.js +0 -29
  2188. package/src/paraglide/messages/common_email_unsubscribe_successdesc1.js +0 -30
  2189. package/src/paraglide/messages/common_email_unsubscribe_transactionalnote1.js +0 -30
  2190. package/src/paraglide/messages/common_errorpage_error1.js +0 -30
  2191. package/src/paraglide/messages/common_errorpage_errordesc2.js +0 -30
  2192. package/src/paraglide/messages/common_errorpage_godashboard2.js +0 -30
  2193. package/src/paraglide/messages/common_errorpage_gohome2.js +0 -30
  2194. package/src/paraglide/messages/common_errorpage_gologin2.js +0 -30
  2195. package/src/paraglide/messages/common_errorpage_loginrequired2.js +0 -30
  2196. package/src/paraglide/messages/common_errorpage_loginrequireddesc3.js +0 -30
  2197. package/src/paraglide/messages/common_errorpage_notfound2.js +0 -30
  2198. package/src/paraglide/messages/common_errorpage_notfounddesc3.js +0 -30
  2199. package/src/paraglide/messages/common_form_add.js +0 -29
  2200. package/src/paraglide/messages/common_form_cancel.js +0 -29
  2201. package/src/paraglide/messages/common_form_empty.js +0 -29
  2202. package/src/paraglide/messages/common_form_invalidemail1.js +0 -30
  2203. package/src/paraglide/messages/common_form_invitationcodeformat2.js +0 -30
  2204. package/src/paraglide/messages/common_form_invitationcoderequired2.js +0 -30
  2205. package/src/paraglide/messages/common_form_operationfailed1.js +0 -30
  2206. package/src/paraglide/messages/common_form_passwordmax321.js +0 -30
  2207. package/src/paraglide/messages/common_form_passwordmin1.js +0 -30
  2208. package/src/paraglide/messages/common_form_passwordmin81.js +0 -30
  2209. package/src/paraglide/messages/common_form_passwordmismatch1.js +0 -30
  2210. package/src/paraglide/messages/common_form_passwordneeddigit2.js +0 -30
  2211. package/src/paraglide/messages/common_form_passwordneedletter2.js +0 -30
  2212. package/src/paraglide/messages/common_form_passwordnotempty2.js +0 -30
  2213. package/src/paraglide/messages/common_form_projectnamerequired2.js +0 -30
  2214. package/src/paraglide/messages/common_form_projectrequired1.js +0 -30
  2215. package/src/paraglide/messages/common_form_required.js +0 -29
  2216. package/src/paraglide/messages/common_form_search.js +0 -29
  2217. package/src/paraglide/messages/common_form_select.js +0 -29
  2218. package/src/paraglide/messages/common_form_selectdate1.js +0 -30
  2219. package/src/paraglide/messages/common_form_storytitlerequired2.js +0 -30
  2220. package/src/paraglide/messages/common_form_submit.js +0 -29
  2221. package/src/paraglide/messages/common_form_usernamecharset1.js +0 -30
  2222. package/src/paraglide/messages/common_form_usernamemin31.js +0 -30
  2223. package/src/paraglide/messages/common_form_workspacerequired1.js +0 -30
  2224. package/src/paraglide/messages/common_hotkey_title.js +0 -29
  2225. package/src/paraglide/messages/common_iconpicker_categoryanimals2.js +0 -30
  2226. package/src/paraglide/messages/common_iconpicker_categoryfoodbeverage3.js +0 -30
  2227. package/src/paraglide/messages/common_iconpicker_categorygaming2.js +0 -30
  2228. package/src/paraglide/messages/common_iconpicker_categoryhome2.js +0 -30
  2229. package/src/paraglide/messages/common_iconpicker_categorynature2.js +0 -30
  2230. package/src/paraglide/messages/common_iconpicker_categorypeople2.js +0 -30
  2231. package/src/paraglide/messages/common_iconpicker_categoryseasons2.js +0 -30
  2232. package/src/paraglide/messages/common_iconpicker_labmore2.js +0 -30
  2233. package/src/paraglide/messages/common_iconpicker_noresults2.js +0 -30
  2234. package/src/paraglide/messages/common_iconpicker_recent1.js +0 -30
  2235. package/src/paraglide/messages/common_iconpicker_resultcount2.js +0 -30
  2236. package/src/paraglide/messages/common_iconpicker_searchplaceholder2.js +0 -30
  2237. package/src/paraglide/messages/common_iconpicker_select1.js +0 -30
  2238. package/src/paraglide/messages/common_iconpicker_standard1.js +0 -30
  2239. package/src/paraglide/messages/common_languageswitcher_en1.js +0 -30
  2240. package/src/paraglide/messages/common_languageswitcher_switch1.js +0 -30
  2241. package/src/paraglide/messages/common_languageswitcher_zh1.js +0 -30
  2242. package/src/paraglide/messages/common_loading.js +0 -29
  2243. package/src/paraglide/messages/common_nameconfirm_cancel1.js +0 -30
  2244. package/src/paraglide/messages/common_nameconfirm_clicktocopy3.js +0 -30
  2245. package/src/paraglide/messages/common_nameconfirm_confirmdelete2.js +0 -30
  2246. package/src/paraglide/messages/common_nameconfirm_copied1.js +0 -30
  2247. package/src/paraglide/messages/common_nameconfirm_deleting1.js +0 -30
  2248. package/src/paraglide/messages/common_nameconfirm_inputinstruction2.js +0 -30
  2249. package/src/paraglide/messages/common_nameconfirm_inputplaceholder2.js +0 -30
  2250. package/src/paraglide/messages/common_nameconfirm_invalidname2.js +0 -30
  2251. package/src/paraglide/messages/common_nameconfirm_operationfailed2.js +0 -30
  2252. package/src/paraglide/messages/common_nav_acceptance.js +0 -29
  2253. package/src/paraglide/messages/common_nav_agents.js +0 -29
  2254. package/src/paraglide/messages/common_nav_bookmarks.js +0 -29
  2255. package/src/paraglide/messages/common_nav_bug.js +0 -29
  2256. package/src/paraglide/messages/common_nav_compliance.js +0 -29
  2257. package/src/paraglide/messages/common_nav_debrief.js +0 -29
  2258. package/src/paraglide/messages/common_nav_design.js +0 -29
  2259. package/src/paraglide/messages/common_nav_dictionary.js +0 -29
  2260. package/src/paraglide/messages/common_nav_harness.js +0 -29
  2261. package/src/paraglide/messages/common_nav_inspiration.js +0 -29
  2262. package/src/paraglide/messages/common_nav_law.js +0 -29
  2263. package/src/paraglide/messages/common_nav_prd.js +0 -29
  2264. package/src/paraglide/messages/common_nav_prototypeboard1.js +0 -30
  2265. package/src/paraglide/messages/common_nav_story.js +0 -29
  2266. package/src/paraglide/messages/common_nav_summary.js +0 -29
  2267. package/src/paraglide/messages/common_nav_summarybadge1.js +0 -30
  2268. package/src/paraglide/messages/common_nav_testcase.js +0 -29
  2269. package/src/paraglide/messages/common_nav_workspace.js +0 -29
  2270. package/src/paraglide/messages/common_placeholder_developing.js +0 -29
  2271. package/src/paraglide/messages/common_pr_create.js +0 -29
  2272. package/src/paraglide/messages/common_save.js +0 -29
  2273. package/src/paraglide/messages/common_settings_language.js +0 -29
  2274. package/src/paraglide/messages/common_settings_languagechanged1.js +0 -30
  2275. package/src/paraglide/messages/common_settings_languagechangefailed2.js +0 -30
  2276. package/src/paraglide/messages/common_settings_languagedescription1.js +0 -30
  2277. package/src/paraglide/messages/common_share_copylink1.js +0 -30
  2278. package/src/paraglide/messages/common_share_expired.js +0 -29
  2279. package/src/paraglide/messages/common_share_favorite.js +0 -29
  2280. package/src/paraglide/messages/common_share_favoriteadded1.js +0 -30
  2281. package/src/paraglide/messages/common_share_favorited.js +0 -29
  2282. package/src/paraglide/messages/common_share_favoriteremoved1.js +0 -30
  2283. package/src/paraglide/messages/common_share_linkcopied1.js +0 -30
  2284. package/src/paraglide/messages/common_share_loaderror1.js +0 -30
  2285. package/src/paraglide/messages/common_share_loadfailed1.js +0 -30
  2286. package/src/paraglide/messages/common_share_loginrequired1.js +0 -30
  2287. package/src/paraglide/messages/common_share_notfounddescription2.js +0 -30
  2288. package/src/paraglide/messages/common_share_notfoundtitle2.js +0 -30
  2289. package/src/paraglide/messages/common_share_retry.js +0 -29
  2290. package/src/paraglide/messages/common_sidebar_anyhub_title1.js +0 -30
  2291. package/src/paraglide/messages/common_sidebar_collapsesubmenu2.js +0 -30
  2292. package/src/paraglide/messages/common_sidebar_expandsubmenu2.js +0 -30
  2293. package/src/paraglide/messages/common_sidebar_knowledge_create.js +0 -29
  2294. package/src/paraglide/messages/common_sidebar_knowledge_general.js +0 -29
  2295. package/src/paraglide/messages/common_sidebar_knowledge_title.js +0 -29
  2296. package/src/paraglide/messages/common_sidebar_usermenu_admin1.js +0 -30
  2297. package/src/paraglide/messages/common_sidebar_usermenu_login1.js +0 -30
  2298. package/src/paraglide/messages/common_sidebar_usermenu_loginsaas3.js +0 -30
  2299. package/src/paraglide/messages/common_sidebar_usermenu_logout1.js +0 -30
  2300. package/src/paraglide/messages/common_sidebar_usermenu_logouttoguest3.js +0 -30
  2301. package/src/paraglide/messages/common_sidebar_usermenu_settings1.js +0 -30
  2302. package/src/paraglide/messages/common_sidebar_usermenu_teammanagement2.js +0 -30
  2303. package/src/paraglide/messages/common_sidebar_usermenu_title1.js +0 -30
  2304. package/src/paraglide/messages/common_sidebar_usermenu_upgradepro2.js +0 -30
  2305. package/src/paraglide/messages/common_sidebar_workspace_create.js +0 -29
  2306. package/src/paraglide/messages/common_sidebar_workspace_home.js +0 -29
  2307. package/src/paraglide/messages/common_sidebar_workspace_title.js +0 -29
  2308. package/src/paraglide/messages/common_status_deleting.js +0 -29
  2309. package/src/paraglide/messages/common_status_empty.js +0 -29
  2310. package/src/paraglide/messages/common_status_error.js +0 -29
  2311. package/src/paraglide/messages/common_status_loading.js +0 -29
  2312. package/src/paraglide/messages/common_status_saving.js +0 -29
  2313. package/src/paraglide/messages/common_status_success.js +0 -29
  2314. package/src/paraglide/messages/common_timezone_all.js +0 -29
  2315. package/src/paraglide/messages/common_timezone_common.js +0 -29
  2316. package/src/paraglide/messages/common_timezone_notfound1.js +0 -30
  2317. package/src/paraglide/messages/common_timezone_placeholder.js +0 -29
  2318. package/src/paraglide/messages/common_timezone_searchplaceholder1.js +0 -30
  2319. package/src/paraglide/messages/common_translator_translating.js +0 -29
  2320. package/src/paraglide/messages/composer_attach_button.js +0 -29
  2321. package/src/paraglide/messages/composer_attach_imagesonly1.js +0 -30
  2322. package/src/paraglide/messages/composer_attach_remove.js +0 -29
  2323. package/src/paraglide/messages/dashboard_activityfeed_empty1.js +0 -30
  2324. package/src/paraglide/messages/dashboard_activityfeed_title1.js +0 -30
  2325. package/src/paraglide/messages/dashboard_askai_overview1.js +0 -30
  2326. package/src/paraglide/messages/dashboard_askai_overview_prompt1.js +0 -30
  2327. package/src/paraglide/messages/dashboard_askai_todo1.js +0 -30
  2328. package/src/paraglide/messages/dashboard_askai_todo_prompt1.js +0 -30
  2329. package/src/paraglide/messages/dashboard_dashboard_activity.js +0 -29
  2330. package/src/paraglide/messages/dashboard_dashboard_confirmdeletedesc2.js +0 -30
  2331. package/src/paraglide/messages/dashboard_dashboard_confirmdeletetitle2.js +0 -30
  2332. package/src/paraglide/messages/dashboard_dashboard_daysago1.js +0 -30
  2333. package/src/paraglide/messages/dashboard_dashboard_deleteprd1.js +0 -30
  2334. package/src/paraglide/messages/dashboard_dashboard_hoursago1.js +0 -30
  2335. package/src/paraglide/messages/dashboard_dashboard_justnow1.js +0 -30
  2336. package/src/paraglide/messages/dashboard_dashboard_minutesago1.js +0 -30
  2337. package/src/paraglide/messages/dashboard_dashboard_newprd1.js +0 -30
  2338. package/src/paraglide/messages/dashboard_dashboard_nodescription1.js +0 -30
  2339. package/src/paraglide/messages/dashboard_dashboard_nomatch1.js +0 -30
  2340. package/src/paraglide/messages/dashboard_dashboard_noprd1.js +0 -30
  2341. package/src/paraglide/messages/dashboard_dashboard_noprdhint2.js +0 -30
  2342. package/src/paraglide/messages/dashboard_dashboard_quickentry1.js +0 -30
  2343. package/src/paraglide/messages/dashboard_dashboard_subtitle.js +0 -29
  2344. package/src/paraglide/messages/dashboard_dashboard_teamfeaturecoming2.js +0 -30
  2345. package/src/paraglide/messages/dashboard_dashboard_totalcount1.js +0 -30
  2346. package/src/paraglide/messages/dashboard_dashboard_updated24h.js +0 -29
  2347. package/src/paraglide/messages/dashboard_dashboard_updatedat1.js +0 -30
  2348. package/src/paraglide/messages/dashboard_dashboard_weeknew1.js +0 -30
  2349. package/src/paraglide/messages/dashboard_quickactions_newprd4.js +0 -30
  2350. package/src/paraglide/messages/dashboard_quickactions_viewcomments2.js +0 -30
  2351. package/src/paraglide/messages/dashboard_stats_anyhubinstalled2.js +0 -30
  2352. package/src/paraglide/messages/dashboard_stats_completedtoday1.js +0 -30
  2353. package/src/paraglide/messages/dashboard_stats_prdtotal1.js +0 -30
  2354. package/src/paraglide/messages/dashboard_stats_unreadcomments1.js +0 -30
  2355. package/src/paraglide/messages/desktop_onboarding_errors_connectfailed1.js +0 -30
  2356. package/src/paraglide/messages/desktop_onboarding_errors_localfailed1.js +0 -30
  2357. package/src/paraglide/messages/desktop_onboarding_errors_switchfailed1.js +0 -30
  2358. package/src/paraglide/messages/desktop_onboarding_errors_timeout.js +0 -29
  2359. package/src/paraglide/messages/desktop_onboarding_errors_unknownerror1.js +0 -30
  2360. package/src/paraglide/messages/desktop_onboarding_local_button.js +0 -29
  2361. package/src/paraglide/messages/desktop_onboarding_local_desc.js +0 -29
  2362. package/src/paraglide/messages/desktop_onboarding_local_title.js +0 -29
  2363. package/src/paraglide/messages/desktop_onboarding_saas_button.js +0 -29
  2364. package/src/paraglide/messages/desktop_onboarding_saas_desc.js +0 -29
  2365. package/src/paraglide/messages/desktop_onboarding_saas_title.js +0 -29
  2366. package/src/paraglide/messages/desktop_onboarding_selfhosted_button1.js +0 -30
  2367. package/src/paraglide/messages/desktop_onboarding_selfhosted_cancel1.js +0 -30
  2368. package/src/paraglide/messages/desktop_onboarding_selfhosted_connect1.js +0 -30
  2369. package/src/paraglide/messages/desktop_onboarding_selfhosted_connecting1.js +0 -30
  2370. package/src/paraglide/messages/desktop_onboarding_selfhosted_desc1.js +0 -30
  2371. package/src/paraglide/messages/desktop_onboarding_selfhosted_dialogtitle2.js +0 -30
  2372. package/src/paraglide/messages/desktop_onboarding_selfhosted_labelfield2.js +0 -30
  2373. package/src/paraglide/messages/desktop_onboarding_selfhosted_labelplaceholder2.js +0 -30
  2374. package/src/paraglide/messages/desktop_onboarding_selfhosted_title1.js +0 -30
  2375. package/src/paraglide/messages/desktop_onboarding_selfhosted_urllabel2.js +0 -30
  2376. package/src/paraglide/messages/desktop_onboarding_subtitle.js +0 -29
  2377. package/src/paraglide/messages/desktop_onboarding_title.js +0 -29
  2378. package/src/paraglide/messages/detail_contentplaceholder1.js +0 -30
  2379. package/src/paraglide/messages/detail_deletedescription1.js +0 -30
  2380. package/src/paraglide/messages/detail_deletetitle1.js +0 -30
  2381. package/src/paraglide/messages/display_asc.js +0 -29
  2382. package/src/paraglide/messages/display_desc.js +0 -29
  2383. package/src/paraglide/messages/display_displayoptions1.js +0 -30
  2384. package/src/paraglide/messages/display_extraoptions1.js +0 -30
  2385. package/src/paraglide/messages/display_group.js +0 -29
  2386. package/src/paraglide/messages/display_group_assignee.js +0 -30
  2387. package/src/paraglide/messages/display_group_createdby1.js +0 -30
  2388. package/src/paraglide/messages/display_group_labels.js +0 -30
  2389. package/src/paraglide/messages/display_group_none.js +0 -30
  2390. package/src/paraglide/messages/display_group_priority.js +0 -30
  2391. package/src/paraglide/messages/display_group_project.js +0 -30
  2392. package/src/paraglide/messages/display_group_state.js +0 -30
  2393. package/src/paraglide/messages/display_order.js +0 -29
  2394. package/src/paraglide/messages/display_order_created.js +0 -30
  2395. package/src/paraglide/messages/display_order_duedate1.js +0 -30
  2396. package/src/paraglide/messages/display_order_manual.js +0 -30
  2397. package/src/paraglide/messages/display_order_priority.js +0 -30
  2398. package/src/paraglide/messages/display_order_startdate1.js +0 -30
  2399. package/src/paraglide/messages/display_order_updated.js +0 -30
  2400. package/src/paraglide/messages/display_pagesize1.js +0 -30
  2401. package/src/paraglide/messages/display_property_assignee.js +0 -30
  2402. package/src/paraglide/messages/display_property_attachmentcount1.js +0 -30
  2403. package/src/paraglide/messages/display_property_duedate1.js +0 -30
  2404. package/src/paraglide/messages/display_property_id.js +0 -30
  2405. package/src/paraglide/messages/display_property_labels.js +0 -30
  2406. package/src/paraglide/messages/display_property_priority.js +0 -30
  2407. package/src/paraglide/messages/display_property_project.js +0 -30
  2408. package/src/paraglide/messages/display_property_startdate1.js +0 -30
  2409. package/src/paraglide/messages/display_property_state.js +0 -30
  2410. package/src/paraglide/messages/display_property_subcount1.js +0 -30
  2411. package/src/paraglide/messages/display_showemptygroups2.js +0 -30
  2412. package/src/paraglide/messages/display_showproperties1.js +0 -30
  2413. package/src/paraglide/messages/display_showsubitems2.js +0 -30
  2414. package/src/paraglide/messages/display_subgroup1.js +0 -30
  2415. package/src/paraglide/messages/display_viewgrouping1.js +0 -30
  2416. package/src/paraglide/messages/doceditor_contentplaceholder2.js +0 -30
  2417. package/src/paraglide/messages/doceditor_saving1.js +0 -30
  2418. package/src/paraglide/messages/doceditor_titleplaceholder2.js +0 -30
  2419. package/src/paraglide/messages/docpanel_autosavedat2.js +0 -30
  2420. package/src/paraglide/messages/docpanel_defaultwidth2.js +0 -30
  2421. package/src/paraglide/messages/docpanel_loadfailed2.js +0 -30
  2422. package/src/paraglide/messages/docpanel_placeholder1.js +0 -30
  2423. package/src/paraglide/messages/docpanel_saving1.js +0 -30
  2424. package/src/paraglide/messages/docpanel_title1.js +0 -30
  2425. package/src/paraglide/messages/docpanel_wider1.js +0 -30
  2426. package/src/paraglide/messages/editor_abbreviate.js +0 -29
  2427. package/src/paraglide/messages/editor_abbreviate_text.js +0 -30
  2428. package/src/paraglide/messages/editor_academic.js +0 -29
  2429. package/src/paraglide/messages/editor_add.js +0 -29
  2430. package/src/paraglide/messages/editor_add_emoji.js +0 -30
  2431. package/src/paraglide/messages/editor_add_image.js +0 -30
  2432. package/src/paraglide/messages/editor_add_mention.js +0 -30
  2433. package/src/paraglide/messages/editor_add_or_delete_column.js +0 -30
  2434. package/src/paraglide/messages/editor_add_or_delete_row.js +0 -30
  2435. package/src/paraglide/messages/editor_add_summary.js +0 -30
  2436. package/src/paraglide/messages/editor_adjust_tone.js +0 -30
  2437. package/src/paraglide/messages/editor_ai_annotation.js +0 -30
  2438. package/src/paraglide/messages/editor_ai_annotation_fill_error.js +0 -30
  2439. package/src/paraglide/messages/editor_ai_annotation_fill_failed.js +0 -30
  2440. package/src/paraglide/messages/editor_ai_assistant.js +0 -30
  2441. package/src/paraglide/messages/editor_ai_image_not_supported.js +0 -30
  2442. package/src/paraglide/messages/editor_ai_is_generating.js +0 -30
  2443. package/src/paraglide/messages/editor_ai_request_failed.js +0 -30
  2444. package/src/paraglide/messages/editor_alignment.js +0 -29
  2445. package/src/paraglide/messages/editor_annotate.js +0 -29
  2446. package/src/paraglide/messages/editor_app.js +0 -29
  2447. package/src/paraglide/messages/editor_apply_link.js +0 -30
  2448. package/src/paraglide/messages/editor_arabic.js +0 -29
  2449. package/src/paraglide/messages/editor_ask_ai.js +0 -30
  2450. package/src/paraglide/messages/editor_ask_ai_assistant.js +0 -30
  2451. package/src/paraglide/messages/editor_background_color.js +0 -30
  2452. package/src/paraglide/messages/editor_bidirectional_link.js +0 -30
  2453. package/src/paraglide/messages/editor_blockquote.js +0 -29
  2454. package/src/paraglide/messages/editor_blue.js +0 -29
  2455. package/src/paraglide/messages/editor_blue_bg.js +0 -30
  2456. package/src/paraglide/messages/editor_bold.js +0 -29
  2457. package/src/paraglide/messages/editor_bottom_align.js +0 -30
  2458. package/src/paraglide/messages/editor_brown.js +0 -29
  2459. package/src/paraglide/messages/editor_brown_bg.js +0 -30
  2460. package/src/paraglide/messages/editor_business.js +0 -29
  2461. package/src/paraglide/messages/editor_cancel.js +0 -29
  2462. package/src/paraglide/messages/editor_card_view.js +0 -30
  2463. package/src/paraglide/messages/editor_casual.js +0 -29
  2464. package/src/paraglide/messages/editor_center_align.js +0 -30
  2465. package/src/paraglide/messages/editor_chen_jing.js +0 -30
  2466. package/src/paraglide/messages/editor_chen_li.js +0 -30
  2467. package/src/paraglide/messages/editor_chen_xue.js +0 -30
  2468. package/src/paraglide/messages/editor_child_friendly.js +0 -30
  2469. package/src/paraglide/messages/editor_chinese.js +0 -29
  2470. package/src/paraglide/messages/editor_clear_all_content.js +0 -30
  2471. package/src/paraglide/messages/editor_clear_column_content.js +0 -30
  2472. package/src/paraglide/messages/editor_clear_content.js +0 -30
  2473. package/src/paraglide/messages/editor_clear_row_content.js +0 -30
  2474. package/src/paraglide/messages/editor_click_target.js +0 -30
  2475. package/src/paraglide/messages/editor_click_to_show_options.js +0 -30
  2476. package/src/paraglide/messages/editor_code.js +0 -29
  2477. package/src/paraglide/messages/editor_code_block.js +0 -30
  2478. package/src/paraglide/messages/editor_colloquial.js +0 -29
  2479. package/src/paraglide/messages/editor_color.js +0 -29
  2480. package/src/paraglide/messages/editor_column_actions.js +0 -30
  2481. package/src/paraglide/messages/editor_column_move_down.js +0 -30
  2482. package/src/paraglide/messages/editor_column_move_left.js +0 -30
  2483. package/src/paraglide/messages/editor_column_move_right.js +0 -30
  2484. package/src/paraglide/messages/editor_column_move_up.js +0 -30
  2485. package/src/paraglide/messages/editor_column_sort_asc.js +0 -30
  2486. package/src/paraglide/messages/editor_column_sort_desc.js +0 -30
  2487. package/src/paraglide/messages/editor_complete_sentence.js +0 -30
  2488. package/src/paraglide/messages/editor_component_id.js +0 -30
  2489. package/src/paraglide/messages/editor_confident.js +0 -29
  2490. package/src/paraglide/messages/editor_continue.js +0 -29
  2491. package/src/paraglide/messages/editor_continue_from_above.js +0 -34
  2492. package/src/paraglide/messages/editor_continue_writing.js +0 -30
  2493. package/src/paraglide/messages/editor_convert_to.js +0 -30
  2494. package/src/paraglide/messages/editor_convert_to_current.js +0 -30
  2495. package/src/paraglide/messages/editor_copy_anchor_link.js +0 -30
  2496. package/src/paraglide/messages/editor_copy_column.js +0 -30
  2497. package/src/paraglide/messages/editor_copy_node.js +0 -30
  2498. package/src/paraglide/messages/editor_copy_row.js +0 -30
  2499. package/src/paraglide/messages/editor_copy_to_clipboard.js +0 -30
  2500. package/src/paraglide/messages/editor_creative.js +0 -29
  2501. package/src/paraglide/messages/editor_custom_knowledge_base.js +0 -30
  2502. package/src/paraglide/messages/editor_dark.js +0 -29
  2503. package/src/paraglide/messages/editor_daysago1.js +0 -30
  2504. package/src/paraglide/messages/editor_decrease_indent.js +0 -30
  2505. package/src/paraglide/messages/editor_default.js +0 -29
  2506. package/src/paraglide/messages/editor_default_bg.js +0 -30
  2507. package/src/paraglide/messages/editor_delete.js +0 -29
  2508. package/src/paraglide/messages/editor_delete_column.js +0 -30
  2509. package/src/paraglide/messages/editor_delete_node.js +0 -30
  2510. package/src/paraglide/messages/editor_delete_row.js +0 -30
  2511. package/src/paraglide/messages/editor_describe_need_to_ai.js +0 -30
  2512. package/src/paraglide/messages/editor_dictionary_entry.js +0 -30
  2513. package/src/paraglide/messages/editor_divider.js +0 -29
  2514. package/src/paraglide/messages/editor_doc_not_found.js +0 -30
  2515. package/src/paraglide/messages/editor_download_image.js +0 -30
  2516. package/src/paraglide/messages/editor_drawing.js +0 -29
  2517. package/src/paraglide/messages/editor_dutch.js +0 -29
  2518. package/src/paraglide/messages/editor_edit.js +0 -29
  2519. package/src/paraglide/messages/editor_element_and_editorroot_required.js +0 -30
  2520. package/src/paraglide/messages/editor_element_not_in_editor_root.js +0 -30
  2521. package/src/paraglide/messages/editor_emoji.js +0 -29
  2522. package/src/paraglide/messages/editor_emoji_style.js +0 -30
  2523. package/src/paraglide/messages/editor_emotional.js +0 -29
  2524. package/src/paraglide/messages/editor_english.js +0 -29
  2525. package/src/paraglide/messages/editor_excited.js +0 -29
  2526. package/src/paraglide/messages/editor_expand.js +0 -29
  2527. package/src/paraglide/messages/editor_expand_text.js +0 -30
  2528. package/src/paraglide/messages/editor_finance_head.js +0 -30
  2529. package/src/paraglide/messages/editor_fit_width.js +0 -30
  2530. package/src/paraglide/messages/editor_fix_spelling_grammar.js +0 -30
  2531. package/src/paraglide/messages/editor_focus.js +0 -29
  2532. package/src/paraglide/messages/editor_formal.js +0 -29
  2533. package/src/paraglide/messages/editor_french.js +0 -29
  2534. package/src/paraglide/messages/editor_friendly.js +0 -29
  2535. package/src/paraglide/messages/editor_generate.js +0 -29
  2536. package/src/paraglide/messages/editor_german.js +0 -29
  2537. package/src/paraglide/messages/editor_graphic_designer.js +0 -30
  2538. package/src/paraglide/messages/editor_gray.js +0 -29
  2539. package/src/paraglide/messages/editor_gray_bg.js +0 -30
  2540. package/src/paraglide/messages/editor_green.js +0 -29
  2541. package/src/paraglide/messages/editor_green_bg.js +0 -30
  2542. package/src/paraglide/messages/editor_guest.js +0 -29
  2543. package/src/paraglide/messages/editor_header_column.js +0 -30
  2544. package/src/paraglide/messages/editor_header_row.js +0 -30
  2545. package/src/paraglide/messages/editor_heading_1.js +0 -30
  2546. package/src/paraglide/messages/editor_heading_2.js +0 -30
  2547. package/src/paraglide/messages/editor_heading_3.js +0 -30
  2548. package/src/paraglide/messages/editor_heading_4.js +0 -30
  2549. package/src/paraglide/messages/editor_heading_5.js +0 -30
  2550. package/src/paraglide/messages/editor_heading_6.js +0 -30
  2551. package/src/paraglide/messages/editor_heading_view.js +0 -30
  2552. package/src/paraglide/messages/editor_highlight.js +0 -29
  2553. package/src/paraglide/messages/editor_highlight_color.js +0 -30
  2554. package/src/paraglide/messages/editor_highlight_text.js +0 -30
  2555. package/src/paraglide/messages/editor_hold_to_drag.js +0 -30
  2556. package/src/paraglide/messages/editor_horizontal_divider.js +0 -30
  2557. package/src/paraglide/messages/editor_hoursago1.js +0 -30
  2558. package/src/paraglide/messages/editor_hr_specialist.js +0 -30
  2559. package/src/paraglide/messages/editor_humorous.js +0 -29
  2560. package/src/paraglide/messages/editor_image.js +0 -29
  2561. package/src/paraglide/messages/editor_image_caption.js +0 -30
  2562. package/src/paraglide/messages/editor_image_center_align.js +0 -30
  2563. package/src/paraglide/messages/editor_image_left_align.js +0 -30
  2564. package/src/paraglide/messages/editor_image_right_align.js +0 -30
  2565. package/src/paraglide/messages/editor_improve_writing.js +0 -30
  2566. package/src/paraglide/messages/editor_increase_indent.js +0 -30
  2567. package/src/paraglide/messages/editor_indonesian.js +0 -29
  2568. package/src/paraglide/messages/editor_industry_compliance.js +0 -30
  2569. package/src/paraglide/messages/editor_informative.js +0 -29
  2570. package/src/paraglide/messages/editor_inline_code.js +0 -30
  2571. package/src/paraglide/messages/editor_insert.js +0 -29
  2572. package/src/paraglide/messages/editor_insert_block.js +0 -30
  2573. package/src/paraglide/messages/editor_insert_child.js +0 -30
  2574. package/src/paraglide/messages/editor_insert_column_left.js +0 -30
  2575. package/src/paraglide/messages/editor_insert_column_right.js +0 -30
  2576. package/src/paraglide/messages/editor_insert_editable_mind_map.js +0 -30
  2577. package/src/paraglide/messages/editor_insert_emoji.js +0 -30
  2578. package/src/paraglide/messages/editor_insert_local_file.js +0 -30
  2579. package/src/paraglide/messages/editor_insert_parent.js +0 -30
  2580. package/src/paraglide/messages/editor_insert_row_above.js +0 -30
  2581. package/src/paraglide/messages/editor_insert_row_below.js +0 -30
  2582. package/src/paraglide/messages/editor_insert_sibling.js +0 -30
  2583. package/src/paraglide/messages/editor_insert_table.js +0 -30
  2584. package/src/paraglide/messages/editor_insert_toc.js +0 -30
  2585. package/src/paraglide/messages/editor_inspirational.js +0 -29
  2586. package/src/paraglide/messages/editor_it_project_manager.js +0 -30
  2587. package/src/paraglide/messages/editor_it_support.js +0 -30
  2588. package/src/paraglide/messages/editor_italian.js +0 -29
  2589. package/src/paraglide/messages/editor_italic.js +0 -29
  2590. package/src/paraglide/messages/editor_japanese.js +0 -29
  2591. package/src/paraglide/messages/editor_just_now.js +0 -30
  2592. package/src/paraglide/messages/editor_justify_align.js +0 -30
  2593. package/src/paraglide/messages/editor_korean.js +0 -29
  2594. package/src/paraglide/messages/editor_language.js +0 -29
  2595. package/src/paraglide/messages/editor_last_updated.js +0 -30
  2596. package/src/paraglide/messages/editor_laws_regulations.js +0 -30
  2597. package/src/paraglide/messages/editor_left_align.js +0 -30
  2598. package/src/paraglide/messages/editor_let_ai_generate.js +0 -30
  2599. package/src/paraglide/messages/editor_level_1.js +0 -30
  2600. package/src/paraglide/messages/editor_level_2.js +0 -30
  2601. package/src/paraglide/messages/editor_level_3.js +0 -30
  2602. package/src/paraglide/messages/editor_li_jianguo.js +0 -30
  2603. package/src/paraglide/messages/editor_li_jun.js +0 -30
  2604. package/src/paraglide/messages/editor_li_na.js +0 -30
  2605. package/src/paraglide/messages/editor_li_siqi.js +0 -30
  2606. package/src/paraglide/messages/editor_light.js +0 -29
  2607. package/src/paraglide/messages/editor_link.js +0 -29
  2608. package/src/paraglide/messages/editor_link_edit.js +0 -30
  2609. package/src/paraglide/messages/editor_list.js +0 -29
  2610. package/src/paraglide/messages/editor_liu_qiang.js +0 -30
  2611. package/src/paraglide/messages/editor_liu_yang.js +0 -30
  2612. package/src/paraglide/messages/editor_loading.js +0 -29
  2613. package/src/paraglide/messages/editor_main_section_heading.js +0 -30
  2614. package/src/paraglide/messages/editor_marketing_assistant.js +0 -30
  2615. package/src/paraglide/messages/editor_marketing_manager.js +0 -30
  2616. package/src/paraglide/messages/editor_mention.js +0 -29
  2617. package/src/paraglide/messages/editor_mention_user_or_item.js +0 -30
  2618. package/src/paraglide/messages/editor_merge_cells.js +0 -30
  2619. package/src/paraglide/messages/editor_mind_map.js +0 -30
  2620. package/src/paraglide/messages/editor_minutesago1.js +0 -30
  2621. package/src/paraglide/messages/editor_more_options.js +0 -30
  2622. package/src/paraglide/messages/editor_move_down.js +0 -30
  2623. package/src/paraglide/messages/editor_move_up.js +0 -30
  2624. package/src/paraglide/messages/editor_nameupdated1.js +0 -30
  2625. package/src/paraglide/messages/editor_nameupdatefailed2.js +0 -30
  2626. package/src/paraglide/messages/editor_narrative.js +0 -29
  2627. package/src/paraglide/messages/editor_no_content.js +0 -30
  2628. package/src/paraglide/messages/editor_nocanvasinversion3.js +0 -30
  2629. package/src/paraglide/messages/editor_nodocinversion3.js +0 -30
  2630. package/src/paraglide/messages/editor_normal_paragraph.js +0 -30
  2631. package/src/paraglide/messages/editor_noselection1.js +0 -30
  2632. package/src/paraglide/messages/editor_noselectionhint2.js +0 -30
  2633. package/src/paraglide/messages/editor_numbered.js +0 -29
  2634. package/src/paraglide/messages/editor_objective.js +0 -29
  2635. package/src/paraglide/messages/editor_open_in_new_tab.js +0 -30
  2636. package/src/paraglide/messages/editor_open_in_new_window.js +0 -30
  2637. package/src/paraglide/messages/editor_orange.js +0 -29
  2638. package/src/paraglide/messages/editor_orange_bg.js +0 -30
  2639. package/src/paraglide/messages/editor_ordered.js +0 -29
  2640. package/src/paraglide/messages/editor_ordered_list.js +0 -30
  2641. package/src/paraglide/messages/editor_ordered_numbered_list.js +0 -30
  2642. package/src/paraglide/messages/editor_paragraph.js +0 -29
  2643. package/src/paraglide/messages/editor_paste_link.js +0 -30
  2644. package/src/paraglide/messages/editor_persuasive.js +0 -29
  2645. package/src/paraglide/messages/editor_pink.js +0 -29
  2646. package/src/paraglide/messages/editor_pink_bg.js +0 -30
  2647. package/src/paraglide/messages/editor_please_retry.js +0 -30
  2648. package/src/paraglide/messages/editor_poetic.js +0 -29
  2649. package/src/paraglide/messages/editor_portuguese.js +0 -29
  2650. package/src/paraglide/messages/editor_product_designer.js +0 -30
  2651. package/src/paraglide/messages/editor_product_manager.js +0 -30
  2652. package/src/paraglide/messages/editor_purple.js +0 -29
  2653. package/src/paraglide/messages/editor_purple_bg.js +0 -30
  2654. package/src/paraglide/messages/editor_quote.js +0 -29
  2655. package/src/paraglide/messages/editor_re_upload.js +0 -30
  2656. package/src/paraglide/messages/editor_recently_used_colors.js +0 -30
  2657. package/src/paraglide/messages/editor_red.js +0 -29
  2658. package/src/paraglide/messages/editor_red_bg.js +0 -30
  2659. package/src/paraglide/messages/editor_redo.js +0 -29
  2660. package/src/paraglide/messages/editor_reference_doc.js +0 -30
  2661. package/src/paraglide/messages/editor_reference_other_doc.js +0 -30
  2662. package/src/paraglide/messages/editor_remove_highlight.js +0 -30
  2663. package/src/paraglide/messages/editor_remove_link.js +0 -30
  2664. package/src/paraglide/messages/editor_reset_format.js +0 -30
  2665. package/src/paraglide/messages/editor_retry.js +0 -29
  2666. package/src/paraglide/messages/editor_right_align.js +0 -30
  2667. package/src/paraglide/messages/editor_row_actions.js +0 -30
  2668. package/src/paraglide/messages/editor_row_move_down.js +0 -30
  2669. package/src/paraglide/messages/editor_row_move_left.js +0 -30
  2670. package/src/paraglide/messages/editor_row_move_right.js +0 -30
  2671. package/src/paraglide/messages/editor_row_move_up.js +0 -30
  2672. package/src/paraglide/messages/editor_row_sort_asc.js +0 -30
  2673. package/src/paraglide/messages/editor_row_sort_desc.js +0 -30
  2674. package/src/paraglide/messages/editor_russian.js +0 -29
  2675. package/src/paraglide/messages/editor_sales_manager.js +0 -30
  2676. package/src/paraglide/messages/editor_sales_rep.js +0 -30
  2677. package/src/paraglide/messages/editor_search_emoji.js +0 -30
  2678. package/src/paraglide/messages/editor_select.js +0 -29
  2679. package/src/paraglide/messages/editor_send.js +0 -29
  2680. package/src/paraglide/messages/editor_show_heading.js +0 -30
  2681. package/src/paraglide/messages/editor_simplify_language.js +0 -30
  2682. package/src/paraglide/messages/editor_simplify_text.js +0 -30
  2683. package/src/paraglide/messages/editor_smart.js +0 -29
  2684. package/src/paraglide/messages/editor_smiley.js +0 -29
  2685. package/src/paraglide/messages/editor_spanish.js +0 -29
  2686. package/src/paraglide/messages/editor_split_cells.js +0 -30
  2687. package/src/paraglide/messages/editor_start_writing.js +0 -30
  2688. package/src/paraglide/messages/editor_stop.js +0 -29
  2689. package/src/paraglide/messages/editor_stop_generating.js +0 -30
  2690. package/src/paraglide/messages/editor_strikethrough.js +0 -29
  2691. package/src/paraglide/messages/editor_style.js +0 -29
  2692. package/src/paraglide/messages/editor_sub_section_heading.js +0 -30
  2693. package/src/paraglide/messages/editor_subscript.js +0 -29
  2694. package/src/paraglide/messages/editor_summarize.js +0 -29
  2695. package/src/paraglide/messages/editor_summary.js +0 -29
  2696. package/src/paraglide/messages/editor_superscript.js +0 -29
  2697. package/src/paraglide/messages/editor_syntax_highlighted_code_block.js +0 -30
  2698. package/src/paraglide/messages/editor_tabcontent1.js +0 -30
  2699. package/src/paraglide/messages/editor_table.js +0 -29
  2700. package/src/paraglide/messages/editor_table_cell_options.js +0 -30
  2701. package/src/paraglide/messages/editor_table_of_contents.js +0 -30
  2702. package/src/paraglide/messages/editor_table_select.js +0 -30
  2703. package/src/paraglide/messages/editor_tabposition1.js +0 -30
  2704. package/src/paraglide/messages/editor_tabstyle1.js +0 -30
  2705. package/src/paraglide/messages/editor_task.js +0 -29
  2706. package/src/paraglide/messages/editor_task_list.js +0 -30
  2707. package/src/paraglide/messages/editor_tell_ai_more_changes.js +0 -30
  2708. package/src/paraglide/messages/editor_text.js +0 -29
  2709. package/src/paraglide/messages/editor_text_color.js +0 -30
  2710. package/src/paraglide/messages/editor_text_color_label.js +0 -30
  2711. package/src/paraglide/messages/editor_text_color_options.js +0 -30
  2712. package/src/paraglide/messages/editor_text_highlight.js +0 -30
  2713. package/src/paraglide/messages/editor_theme_switch_to.js +0 -30
  2714. package/src/paraglide/messages/editor_todo.js +0 -29
  2715. package/src/paraglide/messages/editor_todo_list.js +0 -30
  2716. package/src/paraglide/messages/editor_tone.js +0 -29
  2717. package/src/paraglide/messages/editor_tone_adjust_options.js +0 -30
  2718. package/src/paraglide/messages/editor_top_align.js +0 -30
  2719. package/src/paraglide/messages/editor_top_level_heading.js +0 -30
  2720. package/src/paraglide/messages/editor_translate.js +0 -29
  2721. package/src/paraglide/messages/editor_turkish.js +0 -29
  2722. package/src/paraglide/messages/editor_underline.js +0 -29
  2723. package/src/paraglide/messages/editor_undo.js +0 -29
  2724. package/src/paraglide/messages/editor_unfocus.js +0 -29
  2725. package/src/paraglide/messages/editor_unknown_component.js +0 -30
  2726. package/src/paraglide/messages/editor_unordered.js +0 -29
  2727. package/src/paraglide/messages/editor_unordered_bullet_list.js +0 -30
  2728. package/src/paraglide/messages/editor_unordered_list.js +0 -30
  2729. package/src/paraglide/messages/editor_upload.js +0 -29
  2730. package/src/paraglide/messages/editor_versionpreview1.js +0 -30
  2731. package/src/paraglide/messages/editor_vietnamese.js +0 -29
  2732. package/src/paraglide/messages/editor_wang_fang.js +0 -30
  2733. package/src/paraglide/messages/editor_wang_hao.js +0 -30
  2734. package/src/paraglide/messages/editor_wang_ming.js +0 -30
  2735. package/src/paraglide/messages/editor_wang_ting.js +0 -30
  2736. package/src/paraglide/messages/editor_wang_xiaoyan.js +0 -30
  2737. package/src/paraglide/messages/editor_website_bookmark.js +0 -30
  2738. package/src/paraglide/messages/editor_write_new_paragraph.js +0 -30
  2739. package/src/paraglide/messages/editor_writing.js +0 -29
  2740. package/src/paraglide/messages/editor_yellow.js +0 -29
  2741. package/src/paraglide/messages/editor_yellow_bg.js +0 -30
  2742. package/src/paraglide/messages/editor_zhang_dawei.js +0 -30
  2743. package/src/paraglide/messages/editor_zhang_kai.js +0 -30
  2744. package/src/paraglide/messages/editor_zhang_lei.js +0 -30
  2745. package/src/paraglide/messages/editor_zhang_wei.js +0 -30
  2746. package/src/paraglide/messages/editor_zhao_min.js +0 -30
  2747. package/src/paraglide/messages/editor_zhao_xiaomeng.js +0 -30
  2748. package/src/paraglide/messages/editor_zoomable_image_with_caption.js +0 -30
  2749. package/src/paraglide/messages/element_annotate.js +0 -29
  2750. package/src/paraglide/messages/element_componentid1.js +0 -30
  2751. package/src/paraglide/messages/enterprise_title.js +0 -29
  2752. package/src/paraglide/messages/filterbar_all1.js +0 -30
  2753. package/src/paraglide/messages/gallery_attachfailed1.js +0 -30
  2754. package/src/paraglide/messages/gallery_attachsuccess1.js +0 -30
  2755. package/src/paraglide/messages/gallery_attachto1.js +0 -30
  2756. package/src/paraglide/messages/gallery_attachtodesign2.js +0 -30
  2757. package/src/paraglide/messages/gallery_attachtokb2.js +0 -30
  2758. package/src/paraglide/messages/gallery_attachtostory2.js +0 -30
  2759. package/src/paraglide/messages/gallery_bytes.js +0 -29
  2760. package/src/paraglide/messages/gallery_close.js +0 -29
  2761. package/src/paraglide/messages/gallery_copyerror1.js +0 -30
  2762. package/src/paraglide/messages/gallery_copyprompt1.js +0 -30
  2763. package/src/paraglide/messages/gallery_created.js +0 -29
  2764. package/src/paraglide/messages/gallery_createvariant1.js +0 -30
  2765. package/src/paraglide/messages/gallery_failed.js +0 -29
  2766. package/src/paraglide/messages/gallery_image.js +0 -29
  2767. package/src/paraglide/messages/gallery_linked.js +0 -29
  2768. package/src/paraglide/messages/gallery_loaderror1.js +0 -30
  2769. package/src/paraglide/messages/gallery_loading.js +0 -29
  2770. package/src/paraglide/messages/gallery_loadmore1.js +0 -30
  2771. package/src/paraglide/messages/gallery_model.js +0 -29
  2772. package/src/paraglide/messages/gallery_next.js +0 -29
  2773. package/src/paraglide/messages/gallery_noitems1.js +0 -30
  2774. package/src/paraglide/messages/gallery_pickconfirm1.js +0 -30
  2775. package/src/paraglide/messages/gallery_pickempty1.js +0 -30
  2776. package/src/paraglide/messages/gallery_pickkb1.js +0 -30
  2777. package/src/paraglide/messages/gallery_pickoptionsfailed2.js +0 -30
  2778. package/src/paraglide/messages/gallery_pickprd1.js +0 -30
  2779. package/src/paraglide/messages/gallery_pickstory1.js +0 -30
  2780. package/src/paraglide/messages/gallery_preview.js +0 -29
  2781. package/src/paraglide/messages/gallery_previewitem1.js +0 -30
  2782. package/src/paraglide/messages/gallery_previous.js +0 -29
  2783. package/src/paraglide/messages/gallery_prompt.js +0 -29
  2784. package/src/paraglide/messages/gallery_prototype.js +0 -29
  2785. package/src/paraglide/messages/gallery_provider.js +0 -29
  2786. package/src/paraglide/messages/gallery_referenceframe1.js +0 -30
  2787. package/src/paraglide/messages/gallery_referenceframetooltip2.js +0 -30
  2788. package/src/paraglide/messages/gallery_refframetoolarge3.js +0 -30
  2789. package/src/paraglide/messages/gallery_retranscribe.js +0 -29
  2790. package/src/paraglide/messages/gallery_retranscribedesc1.js +0 -30
  2791. package/src/paraglide/messages/gallery_retranscribedialog1.js +0 -30
  2792. package/src/paraglide/messages/gallery_retranscribelanguage1.js +0 -30
  2793. package/src/paraglide/messages/gallery_retranscribelanguageplaceholder2.js +0 -30
  2794. package/src/paraglide/messages/gallery_retranscribemodel1.js +0 -30
  2795. package/src/paraglide/messages/gallery_retry.js +0 -29
  2796. package/src/paraglide/messages/gallery_size.js +0 -29
  2797. package/src/paraglide/messages/gallery_speech.js +0 -29
  2798. package/src/paraglide/messages/gallery_title.js +0 -29
  2799. package/src/paraglide/messages/gallery_transcription.js +0 -29
  2800. package/src/paraglide/messages/gallery_unsupported.js +0 -29
  2801. package/src/paraglide/messages/gallery_varianterror1.js +0 -30
  2802. package/src/paraglide/messages/gallery_video.js +0 -29
  2803. package/src/paraglide/messages/harness_agent_default.js +0 -29
  2804. package/src/paraglide/messages/harness_agent_mode.js +0 -29
  2805. package/src/paraglide/messages/harness_approval_approveall1.js +0 -30
  2806. package/src/paraglide/messages/harness_approval_cancelreject1.js +0 -30
  2807. package/src/paraglide/messages/harness_approval_confirmreject1.js +0 -30
  2808. package/src/paraglide/messages/harness_approval_rejectall1.js +0 -30
  2809. package/src/paraglide/messages/harness_approval_rejectreason1.js +0 -30
  2810. package/src/paraglide/messages/harness_approval_rejectreasonplaceholder2.js +0 -30
  2811. package/src/paraglide/messages/harness_attach_file.js +0 -29
  2812. package/src/paraglide/messages/harness_composer_arialabel1.js +0 -30
  2813. package/src/paraglide/messages/harness_composer_pendingapproval1.js +0 -30
  2814. package/src/paraglide/messages/harness_composer_placeholder.js +0 -29
  2815. package/src/paraglide/messages/harness_composer_placeholderdefault1.js +0 -30
  2816. package/src/paraglide/messages/harness_composer_placeholdernokey2.js +0 -30
  2817. package/src/paraglide/messages/harness_composer_placeholderplan1.js +0 -30
  2818. package/src/paraglide/messages/harness_composer_placeholderqueue1.js +0 -30
  2819. package/src/paraglide/messages/harness_composer_placeholdersandboxreadonly2.js +0 -30
  2820. package/src/paraglide/messages/harness_composer_queuelabel1.js +0 -30
  2821. package/src/paraglide/messages/harness_composer_send.js +0 -29
  2822. package/src/paraglide/messages/harness_composer_steerlabel1.js +0 -30
  2823. package/src/paraglide/messages/harness_connectionconnected1.js +0 -30
  2824. package/src/paraglide/messages/harness_connectiondisconnected1.js +0 -30
  2825. package/src/paraglide/messages/harness_connectionreconnecting1.js +0 -30
  2826. package/src/paraglide/messages/harness_connectionreconnectnow2.js +0 -30
  2827. package/src/paraglide/messages/harness_context_add.js +0 -29
  2828. package/src/paraglide/messages/harness_context_meter_hint.js +0 -29
  2829. package/src/paraglide/messages/harness_context_meter_label.js +0 -29
  2830. package/src/paraglide/messages/harness_context_pages.js +0 -29
  2831. package/src/paraglide/messages/harness_context_selected.js +0 -29
  2832. package/src/paraglide/messages/harness_context_users.js +0 -29
  2833. package/src/paraglide/messages/harness_conversation_fork.js +0 -29
  2834. package/src/paraglide/messages/harness_conversation_pending.js +0 -29
  2835. package/src/paraglide/messages/harness_dock_codeworkspace1.js +0 -30
  2836. package/src/paraglide/messages/harness_dock_docnotfound2.js +0 -30
  2837. package/src/paraglide/messages/harness_dock_fileempty1.js +0 -30
  2838. package/src/paraglide/messages/harness_dock_loadingdoc1.js +0 -30
  2839. package/src/paraglide/messages/harness_dock_loadingfile1.js +0 -30
  2840. package/src/paraglide/messages/harness_dock_placeholder.js +0 -29
  2841. package/src/paraglide/messages/harness_dock_plugin.js +0 -29
  2842. package/src/paraglide/messages/harness_dock_prdnotfound2.js +0 -30
  2843. package/src/paraglide/messages/harness_dock_storyempty1.js +0 -30
  2844. package/src/paraglide/messages/harness_dock_storynotfound2.js +0 -30
  2845. package/src/paraglide/messages/harness_dock_todo.js +0 -29
  2846. package/src/paraglide/messages/harness_dock_unknownresource1.js +0 -30
  2847. package/src/paraglide/messages/harness_exportspec1.js +0 -30
  2848. package/src/paraglide/messages/harness_exportspechtml2.js +0 -30
  2849. package/src/paraglide/messages/harness_ghostthinking1.js +0 -30
  2850. package/src/paraglide/messages/harness_media_code.js +0 -29
  2851. package/src/paraglide/messages/harness_media_nocode1.js +0 -30
  2852. package/src/paraglide/messages/harness_media_nospec1.js +0 -30
  2853. package/src/paraglide/messages/harness_media_pro.js +0 -29
  2854. package/src/paraglide/messages/harness_media_spec.js +0 -29
  2855. package/src/paraglide/messages/harness_mention_kb_doc.js +0 -29
  2856. package/src/paraglide/messages/harness_mention_prd.js +0 -29
  2857. package/src/paraglide/messages/harness_model_select_default.js +0 -29
  2858. package/src/paraglide/messages/harness_model_select_nomodels1.js +0 -30
  2859. package/src/paraglide/messages/harness_plan_approve.js +0 -29
  2860. package/src/paraglide/messages/harness_plan_feedbackplaceholder1.js +0 -30
  2861. package/src/paraglide/messages/harness_plan_reject.js +0 -29
  2862. package/src/paraglide/messages/harness_plan_title.js +0 -29
  2863. package/src/paraglide/messages/harness_plugin_defineapprovaltitle2.js +0 -30
  2864. package/src/paraglide/messages/harness_plugin_empty.js +0 -29
  2865. package/src/paraglide/messages/harness_plugin_mentionempty1.js +0 -30
  2866. package/src/paraglide/messages/harness_plugin_mentionnomatch2.js +0 -30
  2867. package/src/paraglide/messages/harness_plugin_mentiontitle1.js +0 -30
  2868. package/src/paraglide/messages/harness_plugin_paneltitle1.js +0 -30
  2869. package/src/paraglide/messages/harness_plugin_status_defined.js +0 -29
  2870. package/src/paraglide/messages/harness_plugin_status_error.js +0 -29
  2871. package/src/paraglide/messages/harness_plugin_status_running.js +0 -29
  2872. package/src/paraglide/messages/harness_plugin_status_stopped.js +0 -29
  2873. package/src/paraglide/messages/harness_plugin_version.js +0 -29
  2874. package/src/paraglide/messages/harness_queue_cancel.js +0 -29
  2875. package/src/paraglide/messages/harness_queue_title.js +0 -29
  2876. package/src/paraglide/messages/harness_queuedmultimedia1.js +0 -30
  2877. package/src/paraglide/messages/harness_retrycountdown1.js +0 -30
  2878. package/src/paraglide/messages/harness_retrylimit1.js +0 -30
  2879. package/src/paraglide/messages/harness_retrynow1.js +0 -30
  2880. package/src/paraglide/messages/harness_sandbox_full.js +0 -29
  2881. package/src/paraglide/messages/harness_sandbox_pro.js +0 -29
  2882. package/src/paraglide/messages/harness_sandbox_readonly.js +0 -29
  2883. package/src/paraglide/messages/harness_sandbox_workspacewrite1.js +0 -30
  2884. package/src/paraglide/messages/harness_spec_generatefailed1.js +0 -30
  2885. package/src/paraglide/messages/harness_spec_needthread1.js +0 -30
  2886. package/src/paraglide/messages/harness_steerhint1.js +0 -30
  2887. package/src/paraglide/messages/harness_thinking_disable.js +0 -29
  2888. package/src/paraglide/messages/harness_thinking_enable.js +0 -29
  2889. package/src/paraglide/messages/harness_thinking_toggle.js +0 -29
  2890. package/src/paraglide/messages/harness_todo_empty.js +0 -29
  2891. package/src/paraglide/messages/harness_todo_paneltitle1.js +0 -30
  2892. package/src/paraglide/messages/harness_tool_input.js +0 -29
  2893. package/src/paraglide/messages/harness_tool_knowledgesearch1.js +0 -30
  2894. package/src/paraglide/messages/harness_tool_output.js +0 -29
  2895. package/src/paraglide/messages/harness_tool_resultcount1.js +0 -30
  2896. package/src/paraglide/messages/harness_tool_websearch1.js +0 -30
  2897. package/src/paraglide/messages/harness_turn_collapse.js +0 -29
  2898. package/src/paraglide/messages/harness_turn_collapsearia1.js +0 -30
  2899. package/src/paraglide/messages/harness_turn_expandaria1.js +0 -30
  2900. package/src/paraglide/messages/harness_turn_navigator_label.js +0 -29
  2901. package/src/paraglide/messages/harness_turn_replies.js +0 -29
  2902. package/src/paraglide/messages/harness_turn_streaming.js +0 -29
  2903. package/src/paraglide/messages/harness_turn_thoughtmoment1.js +0 -30
  2904. package/src/paraglide/messages/harness_turn_thoughtmoment_aria1.js +0 -30
  2905. package/src/paraglide/messages/harness_turn_tools.js +0 -29
  2906. package/src/paraglide/messages/harness_turn_usage_label.js +0 -29
  2907. package/src/paraglide/messages/harness_web_search_disable.js +0 -29
  2908. package/src/paraglide/messages/harness_web_search_enable.js +0 -29
  2909. package/src/paraglide/messages/harness_web_search_label.js +0 -29
  2910. package/src/paraglide/messages/harness_web_search_toggle.js +0 -29
  2911. package/src/paraglide/messages/invite_accept.js +0 -29
  2912. package/src/paraglide/messages/invite_accepted.js +0 -29
  2913. package/src/paraglide/messages/invite_acceptjoin1.js +0 -30
  2914. package/src/paraglide/messages/invite_alreadyhaveaccount2.js +0 -30
  2915. package/src/paraglide/messages/invite_alreadyjoined1.js +0 -30
  2916. package/src/paraglide/messages/invite_alreadyjoineddesc2.js +0 -30
  2917. package/src/paraglide/messages/invite_alreadyregistered1.js +0 -30
  2918. package/src/paraglide/messages/invite_appliedhint1.js +0 -30
  2919. package/src/paraglide/messages/invite_appliedhintlogin2.js +0 -30
  2920. package/src/paraglide/messages/invite_appliedpendinglogin2.js +0 -30
  2921. package/src/paraglide/messages/invite_applytojoin2.js +0 -30
  2922. package/src/paraglide/messages/invite_awaitingapproval1.js +0 -30
  2923. package/src/paraglide/messages/invite_awaitingapprovaldesc2.js +0 -30
  2924. package/src/paraglide/messages/invite_brandfooter1.js +0 -30
  2925. package/src/paraglide/messages/invite_brandtitle1.js +0 -30
  2926. package/src/paraglide/messages/invite_checking.js +0 -29
  2927. package/src/paraglide/messages/invite_emaillabel1.js +0 -30
  2928. package/src/paraglide/messages/invite_emailnotregistered2.js +0 -30
  2929. package/src/paraglide/messages/invite_emailregisteredhint2.js +0 -30
  2930. package/src/paraglide/messages/invite_emailunregisteredhint2.js +0 -30
  2931. package/src/paraglide/messages/invite_expired.js +0 -29
  2932. package/src/paraglide/messages/invite_expiredorinvalid2.js +0 -30
  2933. package/src/paraglide/messages/invite_expiredorinvaliddesc3.js +0 -30
  2934. package/src/paraglide/messages/invite_featurecollaboration1.js +0 -30
  2935. package/src/paraglide/messages/invite_featurecollaborationdesc2.js +0 -30
  2936. package/src/paraglide/messages/invite_featureteam1.js +0 -30
  2937. package/src/paraglide/messages/invite_featureteamdesc2.js +0 -30
  2938. package/src/paraglide/messages/invite_gotodashboard2.js +0 -30
  2939. package/src/paraglide/messages/invite_gotologin2.js +0 -30
  2940. package/src/paraglide/messages/invite_gototeammanagement3.js +0 -30
  2941. package/src/paraglide/messages/invite_guest.js +0 -29
  2942. package/src/paraglide/messages/invite_invalid.js +0 -29
  2943. package/src/paraglide/messages/invite_invalidemail1.js +0 -30
  2944. package/src/paraglide/messages/invite_inviteyou1.js +0 -30
  2945. package/src/paraglide/messages/invite_joining.js +0 -29
  2946. package/src/paraglide/messages/invite_linkapprovalnote2.js +0 -30
  2947. package/src/paraglide/messages/invite_login.js +0 -29
  2948. package/src/paraglide/messages/invite_loginnow1.js +0 -30
  2949. package/src/paraglide/messages/invite_member.js +0 -29
  2950. package/src/paraglide/messages/invite_notfound1.js +0 -30
  2951. package/src/paraglide/messages/invite_notregisterednote2.js +0 -30
  2952. package/src/paraglide/messages/invite_registeredpendinglogin2.js +0 -30
  2953. package/src/paraglide/messages/invite_registerlinksent2.js +0 -30
  2954. package/src/paraglide/messages/invite_registernow1.js +0 -30
  2955. package/src/paraglide/messages/invite_requesttojoin2.js +0 -30
  2956. package/src/paraglide/messages/invite_seatadmin1.js +0 -30
  2957. package/src/paraglide/messages/invite_seatmember1.js +0 -30
  2958. package/src/paraglide/messages/invite_seatmessage1.js +0 -30
  2959. package/src/paraglide/messages/invite_seattype1.js +0 -30
  2960. package/src/paraglide/messages/invite_seatviewer1.js +0 -30
  2961. package/src/paraglide/messages/invite_sending.js +0 -29
  2962. package/src/paraglide/messages/invite_sendregisterlink2.js +0 -30
  2963. package/src/paraglide/messages/invite_sentforapproval2.js +0 -30
  2964. package/src/paraglide/messages/invite_title.js +0 -29
  2965. package/src/paraglide/messages/iterations_actions_addstories1.js +0 -30
  2966. package/src/paraglide/messages/iterations_actions_archive.js +0 -29
  2967. package/src/paraglide/messages/iterations_actions_autoschedule1.js +0 -30
  2968. package/src/paraglide/messages/iterations_actions_cancel.js +0 -29
  2969. package/src/paraglide/messages/iterations_actions_create.js +0 -29
  2970. package/src/paraglide/messages/iterations_actions_delete.js +0 -29
  2971. package/src/paraglide/messages/iterations_actions_edit.js +0 -29
  2972. package/src/paraglide/messages/iterations_actions_removestory1.js +0 -30
  2973. package/src/paraglide/messages/iterations_actions_save.js +0 -29
  2974. package/src/paraglide/messages/iterations_actions_saving.js +0 -29
  2975. package/src/paraglide/messages/iterations_actions_transfer.js +0 -29
  2976. package/src/paraglide/messages/iterations_actions_unarchive.js +0 -29
  2977. package/src/paraglide/messages/iterations_autoschedule_autorollover2.js +0 -30
  2978. package/src/paraglide/messages/iterations_autoschedule_basetitle2.js +0 -30
  2979. package/src/paraglide/messages/iterations_autoschedule_cooldowndays2.js +0 -30
  2980. package/src/paraglide/messages/iterations_autoschedule_description1.js +0 -30
  2981. package/src/paraglide/messages/iterations_autoschedule_durationdays2.js +0 -30
  2982. package/src/paraglide/messages/iterations_autoschedule_enabled1.js +0 -30
  2983. package/src/paraglide/messages/iterations_autoschedule_futurecount2.js +0 -30
  2984. package/src/paraglide/messages/iterations_autoschedule_saved1.js +0 -30
  2985. package/src/paraglide/messages/iterations_autoschedule_startson2.js +0 -30
  2986. package/src/paraglide/messages/iterations_autoschedule_title1.js +0 -30
  2987. package/src/paraglide/messages/iterations_burndown_ideal.js +0 -29
  2988. package/src/paraglide/messages/iterations_burndown_leading.js +0 -29
  2989. package/src/paraglide/messages/iterations_burndown_nodata1.js +0 -30
  2990. package/src/paraglide/messages/iterations_burndown_pending.js +0 -29
  2991. package/src/paraglide/messages/iterations_burndown_title.js +0 -29
  2992. package/src/paraglide/messages/iterations_burndown_trailing.js +0 -29
  2993. package/src/paraglide/messages/iterations_editor_clearsuccess1.js +0 -30
  2994. package/src/paraglide/messages/iterations_editor_confirmswitch1.js +0 -30
  2995. package/src/paraglide/messages/iterations_editor_currentiteration1.js +0 -30
  2996. package/src/paraglide/messages/iterations_editor_label.js +0 -29
  2997. package/src/paraglide/messages/iterations_editor_none.js +0 -29
  2998. package/src/paraglide/messages/iterations_editor_placeholder.js +0 -29
  2999. package/src/paraglide/messages/iterations_editor_setsuccess1.js +0 -30
  3000. package/src/paraglide/messages/iterations_empty_description.js +0 -29
  3001. package/src/paraglide/messages/iterations_empty_title.js +0 -29
  3002. package/src/paraglide/messages/iterations_errors_completedtarget1.js +0 -30
  3003. package/src/paraglide/messages/iterations_errors_deleteconfirm1.js +0 -30
  3004. package/src/paraglide/messages/iterations_errors_invalidrange1.js +0 -30
  3005. package/src/paraglide/messages/iterations_errors_locked.js +0 -29
  3006. package/src/paraglide/messages/iterations_errors_namerequired1.js +0 -30
  3007. package/src/paraglide/messages/iterations_errors_notarget1.js +0 -30
  3008. package/src/paraglide/messages/iterations_errors_notfound1.js +0 -30
  3009. package/src/paraglide/messages/iterations_errors_overlapping.js +0 -29
  3010. package/src/paraglide/messages/iterations_fields_description.js +0 -29
  3011. package/src/paraglide/messages/iterations_fields_enddate1.js +0 -30
  3012. package/src/paraglide/messages/iterations_fields_name.js +0 -29
  3013. package/src/paraglide/messages/iterations_fields_nameplaceholder1.js +0 -30
  3014. package/src/paraglide/messages/iterations_fields_startdate1.js +0 -30
  3015. package/src/paraglide/messages/iterations_group_active.js +0 -29
  3016. package/src/paraglide/messages/iterations_group_completed.js +0 -29
  3017. package/src/paraglide/messages/iterations_group_upcoming.js +0 -29
  3018. package/src/paraglide/messages/iterations_progress_done.js +0 -29
  3019. package/src/paraglide/messages/iterations_progress_overduedays1.js +0 -30
  3020. package/src/paraglide/messages/iterations_progress_percent.js +0 -29
  3021. package/src/paraglide/messages/iterations_progress_remainingdays1.js +0 -30
  3022. package/src/paraglide/messages/iterations_progress_statedist1.js +0 -30
  3023. package/src/paraglide/messages/iterations_progress_total.js +0 -29
  3024. package/src/paraglide/messages/iterations_status_active.js +0 -29
  3025. package/src/paraglide/messages/iterations_status_completed.js +0 -29
  3026. package/src/paraglide/messages/iterations_status_upcoming.js +0 -29
  3027. package/src/paraglide/messages/iterations_title.js +0 -29
  3028. package/src/paraglide/messages/iterations_transfer_description.js +0 -29
  3029. package/src/paraglide/messages/iterations_transfer_nounfinished1.js +0 -30
  3030. package/src/paraglide/messages/iterations_transfer_success.js +0 -29
  3031. package/src/paraglide/messages/iterations_transfer_target.js +0 -29
  3032. package/src/paraglide/messages/iterations_transfer_title.js +0 -29
  3033. package/src/paraglide/messages/knowledge_bookmarkcard_bookmark1.js +0 -30
  3034. package/src/paraglide/messages/knowledge_bookmarkcard_daysago2.js +0 -30
  3035. package/src/paraglide/messages/knowledge_bookmarkcard_edit1.js +0 -30
  3036. package/src/paraglide/messages/knowledge_bookmarkcard_monthsago2.js +0 -30
  3037. package/src/paraglide/messages/knowledge_bookmarkcard_share1.js +0 -30
  3038. package/src/paraglide/messages/knowledge_bookmarkcard_shared1.js +0 -30
  3039. package/src/paraglide/messages/knowledge_bookmarkcard_sharetoggle2.js +0 -30
  3040. package/src/paraglide/messages/knowledge_bookmarkcard_sync1.js +0 -30
  3041. package/src/paraglide/messages/knowledge_bookmarkcard_today1.js +0 -30
  3042. package/src/paraglide/messages/knowledge_bookmarkcard_unbookmark1.js +0 -30
  3043. package/src/paraglide/messages/knowledge_bookmarkcard_updatedat2.js +0 -30
  3044. package/src/paraglide/messages/knowledge_bookmarkcard_yearsago2.js +0 -30
  3045. package/src/paraglide/messages/knowledge_bookmarks_detail_add.js +0 -29
  3046. package/src/paraglide/messages/knowledge_bookmarks_detail_addcategory1.js +0 -30
  3047. package/src/paraglide/messages/knowledge_bookmarks_detail_addedsync1.js +0 -30
  3048. package/src/paraglide/messages/knowledge_bookmarks_detail_addfailed1.js +0 -30
  3049. package/src/paraglide/messages/knowledge_bookmarks_detail_adding.js +0 -29
  3050. package/src/paraglide/messages/knowledge_bookmarks_detail_back.js +0 -29
  3051. package/src/paraglide/messages/knowledge_bookmarks_detail_backtolist2.js +0 -30
  3052. package/src/paraglide/messages/knowledge_bookmarks_detail_cancel.js +0 -29
  3053. package/src/paraglide/messages/knowledge_bookmarks_detail_canceldeletearia2.js +0 -30
  3054. package/src/paraglide/messages/knowledge_bookmarks_detail_category.js +0 -29
  3055. package/src/paraglide/messages/knowledge_bookmarks_detail_confirmdelete1.js +0 -30
  3056. package/src/paraglide/messages/knowledge_bookmarks_detail_create.js +0 -29
  3057. package/src/paraglide/messages/knowledge_bookmarks_detail_createfailed1.js +0 -30
  3058. package/src/paraglide/messages/knowledge_bookmarks_detail_delete.js +0 -29
  3059. package/src/paraglide/messages/knowledge_bookmarks_detail_deleted.js +0 -29
  3060. package/src/paraglide/messages/knowledge_bookmarks_detail_deletefailed1.js +0 -30
  3061. package/src/paraglide/messages/knowledge_bookmarks_detail_edittitle1.js +0 -30
  3062. package/src/paraglide/messages/knowledge_bookmarks_detail_loadfailed1.js +0 -30
  3063. package/src/paraglide/messages/knowledge_bookmarks_detail_loading.js +0 -29
  3064. package/src/paraglide/messages/knowledge_bookmarks_detail_name.js +0 -29
  3065. package/src/paraglide/messages/knowledge_bookmarks_detail_newcategoryname2.js +0 -30
  3066. package/src/paraglide/messages/knowledge_bookmarks_detail_newtitle1.js +0 -30
  3067. package/src/paraglide/messages/knowledge_bookmarks_detail_preview.js +0 -29
  3068. package/src/paraglide/messages/knowledge_bookmarks_detail_processing.js +0 -29
  3069. package/src/paraglide/messages/knowledge_bookmarks_detail_required.js +0 -29
  3070. package/src/paraglide/messages/knowledge_bookmarks_detail_save.js +0 -29
  3071. package/src/paraglide/messages/knowledge_bookmarks_detail_saved.js +0 -29
  3072. package/src/paraglide/messages/knowledge_bookmarks_detail_savefailed1.js +0 -30
  3073. package/src/paraglide/messages/knowledge_bookmarks_detail_saving.js +0 -29
  3074. package/src/paraglide/messages/knowledge_bookmarks_detail_selectcategory1.js +0 -30
  3075. package/src/paraglide/messages/knowledge_bookmarks_detail_sharedpublic1.js +0 -30
  3076. package/src/paraglide/messages/knowledge_bookmarks_detail_sharefailed1.js +0 -30
  3077. package/src/paraglide/messages/knowledge_bookmarks_detail_sharepublic1.js +0 -30
  3078. package/src/paraglide/messages/knowledge_bookmarks_detail_sharing.js +0 -29
  3079. package/src/paraglide/messages/knowledge_bookmarks_detail_summary.js +0 -29
  3080. package/src/paraglide/messages/knowledge_bookmarks_detail_tagplaceholder1.js +0 -30
  3081. package/src/paraglide/messages/knowledge_bookmarks_detail_tags.js +0 -29
  3082. package/src/paraglide/messages/knowledge_bookmarks_detail_unshare.js +0 -29
  3083. package/src/paraglide/messages/knowledge_bookmarks_detail_unshared.js +0 -29
  3084. package/src/paraglide/messages/knowledge_bookmarks_detail_unsharefailed1.js +0 -30
  3085. package/src/paraglide/messages/knowledge_bookmarks_detail_url.js +0 -29
  3086. package/src/paraglide/messages/knowledge_bookmarks_detail_urlchanged1.js +0 -30
  3087. package/src/paraglide/messages/knowledge_bookmarks_detail_urlchangehint2.js +0 -30
  3088. package/src/paraglide/messages/knowledge_bookmarks_index_addsite1.js +0 -30
  3089. package/src/paraglide/messages/knowledge_bookmarks_index_empty.js +0 -29
  3090. package/src/paraglide/messages/knowledge_bookmarks_index_favorited.js +0 -29
  3091. package/src/paraglide/messages/knowledge_bookmarks_index_operationfailed1.js +0 -30
  3092. package/src/paraglide/messages/knowledge_bookmarks_index_synced.js +0 -29
  3093. package/src/paraglide/messages/knowledge_bookmarks_index_syncfailed1.js +0 -30
  3094. package/src/paraglide/messages/knowledge_bookmarks_index_titlea1.js +0 -30
  3095. package/src/paraglide/messages/knowledge_bookmarks_index_titleb1.js +0 -30
  3096. package/src/paraglide/messages/knowledge_bookmarks_index_unfavorited.js +0 -29
  3097. package/src/paraglide/messages/knowledge_bookmarks_index_unshared.js +0 -29
  3098. package/src/paraglide/messages/knowledge_compliance_detail_backtolist2.js +0 -30
  3099. package/src/paraglide/messages/knowledge_compliance_detail_cancel.js +0 -29
  3100. package/src/paraglide/messages/knowledge_compliance_detail_confirmdeletedesc2.js +0 -30
  3101. package/src/paraglide/messages/knowledge_compliance_detail_confirmdeletetitle2.js +0 -30
  3102. package/src/paraglide/messages/knowledge_compliance_detail_copylink1.js +0 -30
  3103. package/src/paraglide/messages/knowledge_compliance_detail_copysharelink2.js +0 -30
  3104. package/src/paraglide/messages/knowledge_compliance_detail_delete.js +0 -29
  3105. package/src/paraglide/messages/knowledge_compliance_detail_deleted.js +0 -29
  3106. package/src/paraglide/messages/knowledge_compliance_detail_deletefailed1.js +0 -30
  3107. package/src/paraglide/messages/knowledge_compliance_detail_edit.js +0 -29
  3108. package/src/paraglide/messages/knowledge_compliance_detail_favorite.js +0 -29
  3109. package/src/paraglide/messages/knowledge_compliance_detail_favorited.js +0 -29
  3110. package/src/paraglide/messages/knowledge_compliance_detail_linkcopied1.js +0 -30
  3111. package/src/paraglide/messages/knowledge_compliance_detail_share.js +0 -29
  3112. package/src/paraglide/messages/knowledge_compliance_detail_sharefailed1.js +0 -30
  3113. package/src/paraglide/messages/knowledge_compliance_detail_sharepublic1.js +0 -30
  3114. package/src/paraglide/messages/knowledge_compliance_detail_unfavorite.js +0 -29
  3115. package/src/paraglide/messages/knowledge_compliance_detail_unfavorited.js +0 -29
  3116. package/src/paraglide/messages/knowledge_compliance_detail_unshare.js +0 -29
  3117. package/src/paraglide/messages/knowledge_compliance_detail_unshared.js +0 -29
  3118. package/src/paraglide/messages/knowledge_compliance_detail_unsharefailed1.js +0 -30
  3119. package/src/paraglide/messages/knowledge_compliance_index_add.js +0 -29
  3120. package/src/paraglide/messages/knowledge_compliance_index_industry.js +0 -29
  3121. package/src/paraglide/messages/knowledge_compliance_index_titlea1.js +0 -30
  3122. package/src/paraglide/messages/knowledge_compliance_index_titleb1.js +0 -30
  3123. package/src/paraglide/messages/knowledge_compliance_index_untitled.js +0 -29
  3124. package/src/paraglide/messages/knowledge_compliance_industries_ecommerce.js +0 -29
  3125. package/src/paraglide/messages/knowledge_compliance_industries_education.js +0 -29
  3126. package/src/paraglide/messages/knowledge_compliance_industries_energy.js +0 -29
  3127. package/src/paraglide/messages/knowledge_compliance_industries_finance.js +0 -29
  3128. package/src/paraglide/messages/knowledge_compliance_industries_gaming.js +0 -29
  3129. package/src/paraglide/messages/knowledge_compliance_industries_general.js +0 -29
  3130. package/src/paraglide/messages/knowledge_compliance_industries_internet.js +0 -29
  3131. package/src/paraglide/messages/knowledge_compliance_industries_manufacturing.js +0 -29
  3132. package/src/paraglide/messages/knowledge_compliance_industries_medical.js +0 -29
  3133. package/src/paraglide/messages/knowledge_compliance_industries_transportation.js +0 -29
  3134. package/src/paraglide/messages/knowledge_complianceeditor_fields_code1.js +0 -30
  3135. package/src/paraglide/messages/knowledge_complianceeditor_fields_industry1.js +0 -30
  3136. package/src/paraglide/messages/knowledge_complianceeditor_fields_region1.js +0 -30
  3137. package/src/paraglide/messages/knowledge_complianceeditor_fields_regulatorybody2.js +0 -30
  3138. package/src/paraglide/messages/knowledge_complianceeditor_fields_sourceurl2.js +0 -30
  3139. package/src/paraglide/messages/knowledge_dictionaries_detail_backtolist2.js +0 -30
  3140. package/src/paraglide/messages/knowledge_dictionaries_detail_examples.js +0 -29
  3141. package/src/paraglide/messages/knowledge_dictionaries_detail_sharepublic1.js +0 -30
  3142. package/src/paraglide/messages/knowledge_dictionaries_detail_viewreference1.js +0 -30
  3143. package/src/paraglide/messages/knowledge_dictionaries_index_add.js +0 -29
  3144. package/src/paraglide/messages/knowledge_dictionaries_index_industry.js +0 -29
  3145. package/src/paraglide/messages/knowledge_dictionaries_index_titlea1.js +0 -30
  3146. package/src/paraglide/messages/knowledge_dictionaries_index_titleb1.js +0 -30
  3147. package/src/paraglide/messages/knowledge_doc_multitable1.js +0 -30
  3148. package/src/paraglide/messages/knowledge_doc_multitablecomingsoon3.js +0 -30
  3149. package/src/paraglide/messages/knowledge_doc_onlinesheet1.js +0 -30
  3150. package/src/paraglide/messages/knowledge_doc_onlinesheetcomingsoon3.js +0 -30
  3151. package/src/paraglide/messages/knowledge_doc_unknowntype1.js +0 -30
  3152. package/src/paraglide/messages/knowledge_doc_unsupportedtype1.js +0 -30
  3153. package/src/paraglide/messages/knowledge_docheader_addproperty2.js +0 -30
  3154. package/src/paraglide/messages/knowledge_docheader_selecttags2.js +0 -30
  3155. package/src/paraglide/messages/knowledge_docheader_titleplaceholder2.js +0 -30
  3156. package/src/paraglide/messages/knowledge_docheader_unknownuser2.js +0 -30
  3157. package/src/paraglide/messages/knowledge_docprops_selectplaceholder2.js +0 -30
  3158. package/src/paraglide/messages/knowledge_docprops_tagsplaceholder2.js +0 -30
  3159. package/src/paraglide/messages/knowledge_docprops_title1.js +0 -30
  3160. package/src/paraglide/messages/knowledge_docprops_urlplaceholder2.js +0 -30
  3161. package/src/paraglide/messages/knowledge_filters_all.js +0 -29
  3162. package/src/paraglide/messages/knowledge_filters_favorite.js +0 -29
  3163. package/src/paraglide/messages/knowledge_filters_private.js +0 -29
  3164. package/src/paraglide/messages/knowledge_filters_scope.js +0 -29
  3165. package/src/paraglide/messages/knowledge_filters_share.js +0 -29
  3166. package/src/paraglide/messages/knowledge_home_doccount1.js +0 -30
  3167. package/src/paraglide/messages/knowledge_home_home.js +0 -29
  3168. package/src/paraglide/messages/knowledge_home_overview.js +0 -29
  3169. package/src/paraglide/messages/knowledge_home_recentdocs1.js +0 -30
  3170. package/src/paraglide/messages/knowledge_home_recentupdate1.js +0 -30
  3171. package/src/paraglide/messages/knowledge_index_createkb1.js +0 -30
  3172. package/src/paraglide/messages/knowledge_index_emptydesc1.js +0 -30
  3173. package/src/paraglide/messages/knowledge_index_emptytitle1.js +0 -30
  3174. package/src/paraglide/messages/knowledge_index_generaldesc1.js +0 -30
  3175. package/src/paraglide/messages/knowledge_index_generaltitle1.js +0 -30
  3176. package/src/paraglide/messages/knowledge_index_mytitle1.js +0 -30
  3177. package/src/paraglide/messages/knowledge_index_nodescription1.js +0 -30
  3178. package/src/paraglide/messages/knowledge_index_private.js +0 -29
  3179. package/src/paraglide/messages/knowledge_index_subtitle.js +0 -29
  3180. package/src/paraglide/messages/knowledge_index_team.js +0 -29
  3181. package/src/paraglide/messages/knowledge_index_title.js +0 -29
  3182. package/src/paraglide/messages/knowledge_kbform_cancel1.js +0 -30
  3183. package/src/paraglide/messages/knowledge_kbform_create1.js +0 -30
  3184. package/src/paraglide/messages/knowledge_kbform_description_create1.js +0 -30
  3185. package/src/paraglide/messages/knowledge_kbform_description_edit1.js +0 -30
  3186. package/src/paraglide/messages/knowledge_kbform_descriptionlabel2.js +0 -30
  3187. package/src/paraglide/messages/knowledge_kbform_descriptionplaceholder2.js +0 -30
  3188. package/src/paraglide/messages/knowledge_kbform_namelabel2.js +0 -30
  3189. package/src/paraglide/messages/knowledge_kbform_nameplaceholder2.js +0 -30
  3190. package/src/paraglide/messages/knowledge_kbform_namerequired2.js +0 -30
  3191. package/src/paraglide/messages/knowledge_kbform_save1.js +0 -30
  3192. package/src/paraglide/messages/knowledge_kbform_savefailed2.js +0 -30
  3193. package/src/paraglide/messages/knowledge_kbform_saving1.js +0 -30
  3194. package/src/paraglide/messages/knowledge_kbform_title_create1.js +0 -30
  3195. package/src/paraglide/messages/knowledge_kbform_title_edit1.js +0 -30
  3196. package/src/paraglide/messages/knowledge_knowledgegrid_empty1.js +0 -30
  3197. package/src/paraglide/messages/knowledge_knowledgesearch_new1.js +0 -30
  3198. package/src/paraglide/messages/knowledge_knowledgesearch_placeholder1.js +0 -30
  3199. package/src/paraglide/messages/knowledge_knowledgetree_cancel1.js +0 -30
  3200. package/src/paraglide/messages/knowledge_knowledgetree_confirmdelete2.js +0 -30
  3201. package/src/paraglide/messages/knowledge_knowledgetree_delete1.js +0 -30
  3202. package/src/paraglide/messages/knowledge_knowledgetree_deleteconfirm2.js +0 -30
  3203. package/src/paraglide/messages/knowledge_knowledgetree_deletedoc2.js +0 -30
  3204. package/src/paraglide/messages/knowledge_knowledgetree_deleteplaceholder2.js +0 -30
  3205. package/src/paraglide/messages/knowledge_knowledgetree_deleting1.js +0 -30
  3206. package/src/paraglide/messages/knowledge_knowledgetree_depthlimit2.js +0 -30
  3207. package/src/paraglide/messages/knowledge_knowledgetree_empty1.js +0 -30
  3208. package/src/paraglide/messages/knowledge_knowledgetree_loading1.js +0 -30
  3209. package/src/paraglide/messages/knowledge_knowledgetree_rename1.js +0 -30
  3210. package/src/paraglide/messages/knowledge_knowledgetree_title1.js +0 -30
  3211. package/src/paraglide/messages/knowledge_laws_detail_backtolist2.js +0 -30
  3212. package/src/paraglide/messages/knowledge_laws_detail_cancel.js +0 -29
  3213. package/src/paraglide/messages/knowledge_laws_detail_confirmdeletedesc2.js +0 -30
  3214. package/src/paraglide/messages/knowledge_laws_detail_confirmdeletetitle2.js +0 -30
  3215. package/src/paraglide/messages/knowledge_laws_detail_copylink1.js +0 -30
  3216. package/src/paraglide/messages/knowledge_laws_detail_copysharelink2.js +0 -30
  3217. package/src/paraglide/messages/knowledge_laws_detail_delete.js +0 -29
  3218. package/src/paraglide/messages/knowledge_laws_detail_deleted.js +0 -29
  3219. package/src/paraglide/messages/knowledge_laws_detail_deletefailed1.js +0 -30
  3220. package/src/paraglide/messages/knowledge_laws_detail_edit.js +0 -29
  3221. package/src/paraglide/messages/knowledge_laws_detail_favorite.js +0 -29
  3222. package/src/paraglide/messages/knowledge_laws_detail_favorited.js +0 -29
  3223. package/src/paraglide/messages/knowledge_laws_detail_linkcopied1.js +0 -30
  3224. package/src/paraglide/messages/knowledge_laws_detail_share.js +0 -29
  3225. package/src/paraglide/messages/knowledge_laws_detail_sharefailed1.js +0 -30
  3226. package/src/paraglide/messages/knowledge_laws_detail_sharepublic1.js +0 -30
  3227. package/src/paraglide/messages/knowledge_laws_detail_unfavorite.js +0 -29
  3228. package/src/paraglide/messages/knowledge_laws_detail_unfavorited.js +0 -29
  3229. package/src/paraglide/messages/knowledge_laws_detail_unshare.js +0 -29
  3230. package/src/paraglide/messages/knowledge_laws_detail_unshared.js +0 -29
  3231. package/src/paraglide/messages/knowledge_laws_detail_unsharefailed1.js +0 -30
  3232. package/src/paraglide/messages/knowledge_laws_index_add.js +0 -29
  3233. package/src/paraglide/messages/knowledge_laws_index_jurisdiction.js +0 -29
  3234. package/src/paraglide/messages/knowledge_laws_index_sort.js +0 -29
  3235. package/src/paraglide/messages/knowledge_laws_index_sortdefault1.js +0 -30
  3236. package/src/paraglide/messages/knowledge_laws_index_sorteffectivedate2.js +0 -30
  3237. package/src/paraglide/messages/knowledge_laws_index_titlea1.js +0 -30
  3238. package/src/paraglide/messages/knowledge_laws_index_titleb1.js +0 -30
  3239. package/src/paraglide/messages/knowledge_laws_index_untitled.js +0 -29
  3240. package/src/paraglide/messages/knowledge_legaleditor_fields_category1.js +0 -30
  3241. package/src/paraglide/messages/knowledge_legaleditor_fields_code1.js +0 -30
  3242. package/src/paraglide/messages/knowledge_legaleditor_fields_country1.js +0 -30
  3243. package/src/paraglide/messages/knowledge_legaleditor_fields_effectivedate2.js +0 -30
  3244. package/src/paraglide/messages/knowledge_legaleditor_fields_issuingauthority2.js +0 -30
  3245. package/src/paraglide/messages/knowledge_legaleditor_fields_jurisdiction1.js +0 -30
  3246. package/src/paraglide/messages/knowledge_legaleditor_fields_region1.js +0 -30
  3247. package/src/paraglide/messages/knowledge_legaleditor_fields_sourceurl2.js +0 -30
  3248. package/src/paraglide/messages/knowledge_legaleditor_jurisdiction_cn_local8.js +0 -30
  3249. package/src/paraglide/messages/knowledge_legaleditor_jurisdiction_cn_national11.js +0 -30
  3250. package/src/paraglide/messages/knowledge_legaleditor_jurisdiction_overseas9.js +0 -30
  3251. package/src/paraglide/messages/knowledge_markdowneditor_edit1.js +0 -30
  3252. package/src/paraglide/messages/knowledge_markdowneditor_preview1.js +0 -30
  3253. package/src/paraglide/messages/knowledge_markdownview_empty1.js +0 -30
  3254. package/src/paraglide/messages/knowledge_public_compliance_form_add_one.js +0 -30
  3255. package/src/paraglide/messages/knowledge_public_compliance_form_clause_number.js +0 -30
  3256. package/src/paraglide/messages/knowledge_public_compliance_form_industry.js +0 -30
  3257. package/src/paraglide/messages/knowledge_public_compliance_form_region.js +0 -30
  3258. package/src/paraglide/messages/knowledge_public_compliance_form_regulatory_body.js +0 -30
  3259. package/src/paraglide/messages/knowledge_public_compliance_form_req_detail.js +0 -30
  3260. package/src/paraglide/messages/knowledge_public_compliance_form_req_title.js +0 -30
  3261. package/src/paraglide/messages/knowledge_public_compliance_form_requirements.js +0 -30
  3262. package/src/paraglide/messages/knowledge_public_compliance_form_title_create.js +0 -30
  3263. package/src/paraglide/messages/knowledge_public_compliance_form_title_edit.js +0 -30
  3264. package/src/paraglide/messages/knowledge_public_dictionary_form_aliases.js +0 -30
  3265. package/src/paraglide/messages/knowledge_public_dictionary_form_definition.js +0 -30
  3266. package/src/paraglide/messages/knowledge_public_dictionary_form_examples.js +0 -30
  3267. package/src/paraglide/messages/knowledge_public_dictionary_form_reference_url.js +0 -30
  3268. package/src/paraglide/messages/knowledge_public_dictionary_form_term_name.js +0 -30
  3269. package/src/paraglide/messages/knowledge_public_dictionary_form_title_create.js +0 -30
  3270. package/src/paraglide/messages/knowledge_public_dictionary_form_title_edit.js +0 -30
  3271. package/src/paraglide/messages/knowledge_public_knowledge_form_created.js +0 -30
  3272. package/src/paraglide/messages/knowledge_public_knowledge_form_name.js +0 -30
  3273. package/src/paraglide/messages/knowledge_public_knowledge_form_name_required.js +0 -30
  3274. package/src/paraglide/messages/knowledge_public_knowledge_form_save_failed.js +0 -30
  3275. package/src/paraglide/messages/knowledge_public_knowledge_form_updated.js +0 -30
  3276. package/src/paraglide/messages/knowledge_public_legal_compliance_back_to_preview.js +0 -30
  3277. package/src/paraglide/messages/knowledge_public_legal_compliance_loading.js +0 -30
  3278. package/src/paraglide/messages/knowledge_public_legal_form_authority_placeholder.js +0 -30
  3279. package/src/paraglide/messages/knowledge_public_legal_form_cancel.js +0 -30
  3280. package/src/paraglide/messages/knowledge_public_legal_form_category.js +0 -30
  3281. package/src/paraglide/messages/knowledge_public_legal_form_category_placeholder.js +0 -30
  3282. package/src/paraglide/messages/knowledge_public_legal_form_code.js +0 -30
  3283. package/src/paraglide/messages/knowledge_public_legal_form_content.js +0 -30
  3284. package/src/paraglide/messages/knowledge_public_legal_form_content_placeholder.js +0 -30
  3285. package/src/paraglide/messages/knowledge_public_legal_form_country.js +0 -30
  3286. package/src/paraglide/messages/knowledge_public_legal_form_country_placeholder.js +0 -30
  3287. package/src/paraglide/messages/knowledge_public_legal_form_effective_date.js +0 -30
  3288. package/src/paraglide/messages/knowledge_public_legal_form_issuing_authority.js +0 -30
  3289. package/src/paraglide/messages/knowledge_public_legal_form_jurisdiction.js +0 -30
  3290. package/src/paraglide/messages/knowledge_public_legal_form_jurisdiction_options_cn_local7.js +0 -30
  3291. package/src/paraglide/messages/knowledge_public_legal_form_jurisdiction_options_cn_national10.js +0 -30
  3292. package/src/paraglide/messages/knowledge_public_legal_form_jurisdiction_options_overseas8.js +0 -30
  3293. package/src/paraglide/messages/knowledge_public_legal_form_loading.js +0 -30
  3294. package/src/paraglide/messages/knowledge_public_legal_form_optional.js +0 -30
  3295. package/src/paraglide/messages/knowledge_public_legal_form_region.js +0 -30
  3296. package/src/paraglide/messages/knowledge_public_legal_form_region_placeholder.js +0 -30
  3297. package/src/paraglide/messages/knowledge_public_legal_form_save.js +0 -30
  3298. package/src/paraglide/messages/knowledge_public_legal_form_saving.js +0 -30
  3299. package/src/paraglide/messages/knowledge_public_legal_form_source_url.js +0 -30
  3300. package/src/paraglide/messages/knowledge_public_legal_form_summary.js +0 -30
  3301. package/src/paraglide/messages/knowledge_public_legal_form_tags.js +0 -30
  3302. package/src/paraglide/messages/knowledge_public_legal_form_title_create.js +0 -30
  3303. package/src/paraglide/messages/knowledge_public_legal_form_title_edit.js +0 -30
  3304. package/src/paraglide/messages/knowledge_public_untitled_compliance.js +0 -30
  3305. package/src/paraglide/messages/knowledge_public_untitled_legal.js +0 -30
  3306. package/src/paraglide/messages/knowledge_sharers_count.js +0 -29
  3307. package/src/paraglide/messages/knowledge_sharers_me.js +0 -29
  3308. package/src/paraglide/messages/knowledge_summary_all.js +0 -29
  3309. package/src/paraglide/messages/knowledge_summary_dateformat1.js +0 -30
  3310. package/src/paraglide/messages/knowledge_summary_empty.js +0 -29
  3311. package/src/paraglide/messages/knowledge_summary_month.js +0 -29
  3312. package/src/paraglide/messages/knowledge_summary_monthfirstday2.js +0 -30
  3313. package/src/paraglide/messages/knowledge_summary_monthly.js +0 -29
  3314. package/src/paraglide/messages/knowledge_summary_monthlymocksummary2.js +0 -30
  3315. package/src/paraglide/messages/knowledge_summary_monthlytitle1.js +0 -30
  3316. package/src/paraglide/messages/knowledge_summary_months_0.js +0 -29
  3317. package/src/paraglide/messages/knowledge_summary_months_1.js +0 -29
  3318. package/src/paraglide/messages/knowledge_summary_months_10.js +0 -29
  3319. package/src/paraglide/messages/knowledge_summary_months_11.js +0 -29
  3320. package/src/paraglide/messages/knowledge_summary_months_2.js +0 -29
  3321. package/src/paraglide/messages/knowledge_summary_months_3.js +0 -29
  3322. package/src/paraglide/messages/knowledge_summary_months_4.js +0 -29
  3323. package/src/paraglide/messages/knowledge_summary_months_5.js +0 -29
  3324. package/src/paraglide/messages/knowledge_summary_months_6.js +0 -29
  3325. package/src/paraglide/messages/knowledge_summary_months_7.js +0 -29
  3326. package/src/paraglide/messages/knowledge_summary_months_8.js +0 -29
  3327. package/src/paraglide/messages/knowledge_summary_months_9.js +0 -29
  3328. package/src/paraglide/messages/knowledge_summary_titlemonthly1.js +0 -30
  3329. package/src/paraglide/messages/knowledge_summary_titleweekly1.js +0 -30
  3330. package/src/paraglide/messages/knowledge_summary_type.js +0 -29
  3331. package/src/paraglide/messages/knowledge_summary_week.js +0 -29
  3332. package/src/paraglide/messages/knowledge_summary_weekly.js +0 -29
  3333. package/src/paraglide/messages/knowledge_summary_weeklymocksummary2.js +0 -30
  3334. package/src/paraglide/messages/knowledge_summary_weeklytitle1.js +0 -30
  3335. package/src/paraglide/messages/knowledge_summary_weeknum1.js +0 -30
  3336. package/src/paraglide/messages/knowledge_summary_weeksuffix1.js +0 -30
  3337. package/src/paraglide/messages/knowledge_summary_year.js +0 -29
  3338. package/src/paraglide/messages/knowledge_summary_yearsuffix1.js +0 -30
  3339. package/src/paraglide/messages/knowledge_tagfilter_all1.js +0 -30
  3340. package/src/paraglide/messages/knowledge_tagfilter_label1.js +0 -30
  3341. package/src/paraglide/messages/knowledge_toolbar_cancel.js +0 -29
  3342. package/src/paraglide/messages/knowledge_toolbar_confirmdelete1.js +0 -30
  3343. package/src/paraglide/messages/knowledge_toolbar_create.js +0 -29
  3344. package/src/paraglide/messages/knowledge_toolbar_createdoc1.js +0 -30
  3345. package/src/paraglide/messages/knowledge_toolbar_deletekb1.js +0 -30
  3346. package/src/paraglide/messages/knowledge_toolbar_deletekbconfirm2.js +0 -30
  3347. package/src/paraglide/messages/knowledge_toolbar_deletekbplaceholder2.js +0 -30
  3348. package/src/paraglide/messages/knowledge_toolbar_deleting.js +0 -29
  3349. package/src/paraglide/messages/knowledge_toolbar_doc.js +0 -29
  3350. package/src/paraglide/messages/knowledge_toolbar_docnameplaceholder2.js +0 -30
  3351. package/src/paraglide/messages/knowledge_toolbar_general.js +0 -29
  3352. package/src/paraglide/messages/knowledge_toolbar_generallinkdisabled2.js +0 -30
  3353. package/src/paraglide/messages/knowledge_toolbar_kbownership1.js +0 -30
  3354. package/src/paraglide/messages/knowledge_toolbar_linkprojects1.js +0 -30
  3355. package/src/paraglide/messages/knowledge_toolbar_mindmap.js +0 -29
  3356. package/src/paraglide/messages/knowledge_toolbar_namesettings1.js +0 -30
  3357. package/src/paraglide/messages/knowledge_toolbar_nodocs1.js +0 -30
  3358. package/src/paraglide/messages/knowledge_toolbar_pagewidth1.js +0 -30
  3359. package/src/paraglide/messages/knowledge_toolbar_private.js +0 -29
  3360. package/src/paraglide/messages/knowledge_toolbar_privatelinkdisabled2.js +0 -30
  3361. package/src/paraglide/messages/knowledge_toolbar_rebuildindex1.js +0 -30
  3362. package/src/paraglide/messages/knowledge_toolbar_reindexdone1.js +0 -30
  3363. package/src/paraglide/messages/knowledge_toolbar_reindexfailed1.js +0 -30
  3364. package/src/paraglide/messages/knowledge_toolbar_reindexing.js +0 -29
  3365. package/src/paraglide/messages/knowledge_toolbar_selectdoctype2.js +0 -30
  3366. package/src/paraglide/messages/knowledge_toolbar_sheet.js +0 -29
  3367. package/src/paraglide/messages/knowledge_toolbar_table.js +0 -29
  3368. package/src/paraglide/messages/knowledge_toolbar_team.js +0 -29
  3369. package/src/paraglide/messages/knowledge_toolbar_widthauto1.js +0 -30
  3370. package/src/paraglide/messages/knowledge_toolbar_widthfull1.js +0 -30
  3371. package/src/paraglide/messages/knowledge_toolbar_widthwider1.js +0 -30
  3372. package/src/paraglide/messages/knowledge_treetype_doc1.js +0 -30
  3373. package/src/paraglide/messages/knowledge_treetype_mindmap1.js +0 -30
  3374. package/src/paraglide/messages/knowledge_treetype_sheet1.js +0 -30
  3375. package/src/paraglide/messages/knowledge_treetype_table1.js +0 -30
  3376. package/src/paraglide/messages/knowledge_untitledcompliance1.js +0 -30
  3377. package/src/paraglide/messages/knowledge_untitleddoc1.js +0 -30
  3378. package/src/paraglide/messages/knowledge_untitledlegal1.js +0 -30
  3379. package/src/paraglide/messages/knowledge_untitledmindmap1.js +0 -30
  3380. package/src/paraglide/messages/knowledge_untitledsheet1.js +0 -30
  3381. package/src/paraglide/messages/knowledge_untitledtable1.js +0 -30
  3382. package/src/paraglide/messages/knowledge_workspace_backtolist2.js +0 -30
  3383. package/src/paraglide/messages/knowledge_workspace_kbnotfound2.js +0 -30
  3384. package/src/paraglide/messages/mindmap_defaultnode1.js +0 -30
  3385. package/src/paraglide/messages/mindmap_defaulttopic1.js +0 -30
  3386. package/src/paraglide/messages/mindmap_errors_autosavefailed2.js +0 -30
  3387. package/src/paraglide/messages/mindmap_errors_exportfailed1.js +0 -30
  3388. package/src/paraglide/messages/mindmap_errors_initfailed1.js +0 -30
  3389. package/src/paraglide/messages/mindmap_errors_tagsupdatefailed2.js +0 -30
  3390. package/src/paraglide/messages/mindmap_errors_titleupdatefailed2.js +0 -30
  3391. package/src/paraglide/messages/mindmap_errors_usemindmapcontext3.js +0 -30
  3392. package/src/paraglide/messages/mindmap_fullscreen_title.js +0 -29
  3393. package/src/paraglide/messages/mindmap_layout_timeline.js +0 -29
  3394. package/src/paraglide/messages/mindmap_layout_timeline_horizontal.js +0 -29
  3395. package/src/paraglide/messages/mindmap_layout_timeline_vertical.js +0 -29
  3396. package/src/paraglide/messages/mindmap_layout_tree.js +0 -29
  3397. package/src/paraglide/messages/mindmap_layout_tree_balance.js +0 -29
  3398. package/src/paraglide/messages/mindmap_layout_tree_left.js +0 -29
  3399. package/src/paraglide/messages/mindmap_layout_tree_right.js +0 -29
  3400. package/src/paraglide/messages/mindmap_menu_add_sibling_after.js +0 -29
  3401. package/src/paraglide/messages/mindmap_menu_add_sibling_before.js +0 -29
  3402. package/src/paraglide/messages/mindmap_menu_cancel_focus.js +0 -29
  3403. package/src/paraglide/messages/mindmap_menu_collapse.js +0 -29
  3404. package/src/paraglide/messages/mindmap_menu_collapse_all.js +0 -29
  3405. package/src/paraglide/messages/mindmap_menu_edit_text.js +0 -29
  3406. package/src/paraglide/messages/mindmap_menu_expand.js +0 -29
  3407. package/src/paraglide/messages/mindmap_menu_expand_all.js +0 -29
  3408. package/src/paraglide/messages/mindmap_menu_focus.js +0 -29
  3409. package/src/paraglide/messages/mindmap_menu_group_collapse.js +0 -29
  3410. package/src/paraglide/messages/mindmap_menu_group_edit.js +0 -29
  3411. package/src/paraglide/messages/mindmap_menu_group_history.js +0 -29
  3412. package/src/paraglide/messages/mindmap_menu_group_link.js +0 -29
  3413. package/src/paraglide/messages/mindmap_menu_group_move.js +0 -29
  3414. package/src/paraglide/messages/mindmap_menu_group_structure.js +0 -29
  3415. package/src/paraglide/messages/mindmap_menu_group_view.js +0 -29
  3416. package/src/paraglide/messages/mindmap_menu_redo.js +0 -29
  3417. package/src/paraglide/messages/mindmap_menu_summary.js +0 -29
  3418. package/src/paraglide/messages/mindmap_menu_undo.js +0 -29
  3419. package/src/paraglide/messages/mindmap_saving.js +0 -29
  3420. package/src/paraglide/messages/mindmap_shortcuts_arrow_line.js +0 -29
  3421. package/src/paraglide/messages/mindmap_shortcuts_branch_left.js +0 -29
  3422. package/src/paraglide/messages/mindmap_shortcuts_branch_right.js +0 -29
  3423. package/src/paraglide/messages/mindmap_shortcuts_cancel.js +0 -29
  3424. package/src/paraglide/messages/mindmap_shortcuts_canvas_pan.js +0 -29
  3425. package/src/paraglide/messages/mindmap_shortcuts_center.js +0 -29
  3426. package/src/paraglide/messages/mindmap_shortcuts_child.js +0 -29
  3427. package/src/paraglide/messages/mindmap_shortcuts_collapse.js +0 -29
  3428. package/src/paraglide/messages/mindmap_shortcuts_copy.js +0 -29
  3429. package/src/paraglide/messages/mindmap_shortcuts_cut.js +0 -29
  3430. package/src/paraglide/messages/mindmap_shortcuts_delete.js +0 -29
  3431. package/src/paraglide/messages/mindmap_shortcuts_edit.js +0 -29
  3432. package/src/paraglide/messages/mindmap_shortcuts_group_clipboard.js +0 -29
  3433. package/src/paraglide/messages/mindmap_shortcuts_group_edit.js +0 -29
  3434. package/src/paraglide/messages/mindmap_shortcuts_group_editing.js +0 -29
  3435. package/src/paraglide/messages/mindmap_shortcuts_group_history.js +0 -29
  3436. package/src/paraglide/messages/mindmap_shortcuts_group_move.js +0 -29
  3437. package/src/paraglide/messages/mindmap_shortcuts_group_structure.js +0 -29
  3438. package/src/paraglide/messages/mindmap_shortcuts_group_view.js +0 -29
  3439. package/src/paraglide/messages/mindmap_shortcuts_mouse_right.js +0 -29
  3440. package/src/paraglide/messages/mindmap_shortcuts_move_down.js +0 -29
  3441. package/src/paraglide/messages/mindmap_shortcuts_move_up.js +0 -29
  3442. package/src/paraglide/messages/mindmap_shortcuts_newline.js +0 -29
  3443. package/src/paraglide/messages/mindmap_shortcuts_parent.js +0 -29
  3444. package/src/paraglide/messages/mindmap_shortcuts_paste.js +0 -29
  3445. package/src/paraglide/messages/mindmap_shortcuts_redo.js +0 -29
  3446. package/src/paraglide/messages/mindmap_shortcuts_reset_zoom.js +0 -29
  3447. package/src/paraglide/messages/mindmap_shortcuts_save_edit.js +0 -29
  3448. package/src/paraglide/messages/mindmap_shortcuts_save_sibling.js +0 -29
  3449. package/src/paraglide/messages/mindmap_shortcuts_select_neighbor.js +0 -29
  3450. package/src/paraglide/messages/mindmap_shortcuts_sibling.js +0 -29
  3451. package/src/paraglide/messages/mindmap_shortcuts_sibling_before.js +0 -29
  3452. package/src/paraglide/messages/mindmap_shortcuts_summary.js +0 -29
  3453. package/src/paraglide/messages/mindmap_shortcuts_toggle_branch_side.js +0 -29
  3454. package/src/paraglide/messages/mindmap_shortcuts_undo.js +0 -29
  3455. package/src/paraglide/messages/mindmap_shortcuts_zoom_in.js +0 -29
  3456. package/src/paraglide/messages/mindmap_shortcuts_zoom_out.js +0 -29
  3457. package/src/paraglide/messages/mindmap_titleplaceholder1.js +0 -30
  3458. package/src/paraglide/messages/mindmap_toolbar_close.js +0 -29
  3459. package/src/paraglide/messages/mindmap_toolbar_export.js +0 -29
  3460. package/src/paraglide/messages/mindmap_toolbar_export_failed.js +0 -29
  3461. package/src/paraglide/messages/mindmap_toolbar_export_html.js +0 -29
  3462. package/src/paraglide/messages/mindmap_toolbar_export_image.js +0 -29
  3463. package/src/paraglide/messages/mindmap_toolbar_export_xmind.js +0 -29
  3464. package/src/paraglide/messages/mindmap_toolbar_fit.js +0 -29
  3465. package/src/paraglide/messages/mindmap_toolbar_fullscreen.js +0 -29
  3466. package/src/paraglide/messages/mindmap_toolbar_layout.js +0 -29
  3467. package/src/paraglide/messages/mindmap_toolbar_layoutbalance1.js +0 -30
  3468. package/src/paraglide/messages/mindmap_toolbar_layoutleft1.js +0 -30
  3469. package/src/paraglide/messages/mindmap_toolbar_layoutright1.js +0 -30
  3470. package/src/paraglide/messages/mindmap_toolbar_redo.js +0 -29
  3471. package/src/paraglide/messages/mindmap_toolbar_reset_zoom.js +0 -29
  3472. package/src/paraglide/messages/mindmap_toolbar_shortcuts.js +0 -29
  3473. package/src/paraglide/messages/mindmap_toolbar_undo.js +0 -29
  3474. package/src/paraglide/messages/mindmap_toolbar_zoomin1.js +0 -30
  3475. package/src/paraglide/messages/mindmap_toolbar_zoomout1.js +0 -30
  3476. package/src/paraglide/messages/nav_notioneditor1.js +0 -30
  3477. package/src/paraglide/messages/nav_pricing.js +0 -29
  3478. package/src/paraglide/messages/navigation_confirmdelete1.js +0 -30
  3479. package/src/paraglide/messages/navigation_deleteprd1.js +0 -30
  3480. package/src/paraglide/messages/navigation_deleteprddesc2.js +0 -30
  3481. package/src/paraglide/messages/navigation_editname1.js +0 -30
  3482. package/src/paraglide/messages/navigation_export.js +0 -29
  3483. package/src/paraglide/messages/navigation_prdsettings1.js +0 -30
  3484. package/src/paraglide/messages/navigation_share.js +0 -29
  3485. package/src/paraglide/messages/navigation_shareprd1.js +0 -30
  3486. package/src/paraglide/messages/navigation_version.js +0 -29
  3487. package/src/paraglide/messages/notifications_actions_clearall1.js +0 -30
  3488. package/src/paraglide/messages/notifications_actions_delete.js +0 -29
  3489. package/src/paraglide/messages/notifications_actions_loadmore1.js +0 -30
  3490. package/src/paraglide/messages/notifications_actions_markallread2.js +0 -30
  3491. package/src/paraglide/messages/notifications_actions_markread1.js +0 -30
  3492. package/src/paraglide/messages/notifications_actions_view.js +0 -29
  3493. package/src/paraglide/messages/notifications_actions_viewall1.js +0 -30
  3494. package/src/paraglide/messages/notifications_allcaughtup2.js +0 -30
  3495. package/src/paraglide/messages/notifications_bell_label.js +0 -29
  3496. package/src/paraglide/messages/notifications_bell_recenttitle1.js +0 -30
  3497. package/src/paraglide/messages/notifications_description.js +0 -29
  3498. package/src/paraglide/messages/notifications_empty.js +0 -29
  3499. package/src/paraglide/messages/notifications_emptyfiltered1.js +0 -30
  3500. package/src/paraglide/messages/notifications_filters_all.js +0 -29
  3501. package/src/paraglide/messages/notifications_filters_alltypes1.js +0 -30
  3502. package/src/paraglide/messages/notifications_filters_read.js +0 -29
  3503. package/src/paraglide/messages/notifications_moreoptions1.js +0 -30
  3504. package/src/paraglide/messages/notifications_preferences_categories_billing.js +0 -29
  3505. package/src/paraglide/messages/notifications_preferences_categories_billingdesc1.js +0 -30
  3506. package/src/paraglide/messages/notifications_preferences_categories_collaboration.js +0 -29
  3507. package/src/paraglide/messages/notifications_preferences_categories_collaborationdesc1.js +0 -30
  3508. package/src/paraglide/messages/notifications_preferences_categories_security.js +0 -29
  3509. package/src/paraglide/messages/notifications_preferences_categories_securitydesc1.js +0 -30
  3510. package/src/paraglide/messages/notifications_preferences_categories_system.js +0 -29
  3511. package/src/paraglide/messages/notifications_preferences_categories_systemdesc1.js +0 -30
  3512. package/src/paraglide/messages/notifications_preferences_categories_team.js +0 -29
  3513. package/src/paraglide/messages/notifications_preferences_categories_teamdesc1.js +0 -30
  3514. package/src/paraglide/messages/notifications_preferences_dnd_desc.js +0 -29
  3515. package/src/paraglide/messages/notifications_preferences_dnd_enabled.js +0 -29
  3516. package/src/paraglide/messages/notifications_preferences_dnd_end.js +0 -29
  3517. package/src/paraglide/messages/notifications_preferences_dnd_start.js +0 -29
  3518. package/src/paraglide/messages/notifications_preferences_dnd_title.js +0 -29
  3519. package/src/paraglide/messages/notifications_preferences_emailchannel1.js +0 -30
  3520. package/src/paraglide/messages/notifications_preferences_emailchanneldesc2.js +0 -30
  3521. package/src/paraglide/messages/notifications_preferences_emailneedverify2.js +0 -30
  3522. package/src/paraglide/messages/notifications_preferences_enable.js +0 -29
  3523. package/src/paraglide/messages/notifications_preferences_frequency_daily.js +0 -29
  3524. package/src/paraglide/messages/notifications_preferences_frequency_off.js +0 -29
  3525. package/src/paraglide/messages/notifications_preferences_frequency_realtime.js +0 -29
  3526. package/src/paraglide/messages/notifications_preferences_frequency_weekly.js +0 -29
  3527. package/src/paraglide/messages/notifications_preferences_saved.js +0 -29
  3528. package/src/paraglide/messages/notifications_preferences_savefailed1.js +0 -30
  3529. package/src/paraglide/messages/notifications_relativetime_daysago2.js +0 -30
  3530. package/src/paraglide/messages/notifications_relativetime_hoursago2.js +0 -30
  3531. package/src/paraglide/messages/notifications_relativetime_justnow2.js +0 -30
  3532. package/src/paraglide/messages/notifications_relativetime_minutesago2.js +0 -30
  3533. package/src/paraglide/messages/notifications_settings_description.js +0 -29
  3534. package/src/paraglide/messages/notifications_settings_title.js +0 -29
  3535. package/src/paraglide/messages/notifications_tabs_all.js +0 -29
  3536. package/src/paraglide/messages/notifications_tabs_billing.js +0 -29
  3537. package/src/paraglide/messages/notifications_tabs_collaboration.js +0 -29
  3538. package/src/paraglide/messages/notifications_tabs_security.js +0 -29
  3539. package/src/paraglide/messages/notifications_tabs_system.js +0 -29
  3540. package/src/paraglide/messages/notifications_tabs_team.js +0 -29
  3541. package/src/paraglide/messages/notifications_title.js +0 -29
  3542. package/src/paraglide/messages/notifications_toast_newnotification1.js +0 -30
  3543. package/src/paraglide/messages/notifications_unreadbadge1.js +0 -30
  3544. package/src/paraglide/messages/notifications_unreadcount1.js +0 -30
  3545. package/src/paraglide/messages/notifications_verify_emailreminderbody2.js +0 -30
  3546. package/src/paraglide/messages/notifications_verify_emailremindertitle2.js +0 -30
  3547. package/src/paraglide/messages/outline_empty.js +0 -29
  3548. package/src/paraglide/messages/outline_pagestructure1.js +0 -30
  3549. package/src/paraglide/messages/package.json +0 -4
  3550. package/src/paraglide/messages/prd_backtodashboard2.js +0 -30
  3551. package/src/paraglide/messages/prd_backtoprd2.js +0 -30
  3552. package/src/paraglide/messages/prd_comment_ignored.js +0 -29
  3553. package/src/paraglide/messages/prd_dialog_createfailed1.js +0 -30
  3554. package/src/paraglide/messages/prd_dialog_createtitle1.js +0 -30
  3555. package/src/paraglide/messages/prd_dialog_creating.js +0 -29
  3556. package/src/paraglide/messages/prd_dialog_descriptionplaceholder1.js +0 -30
  3557. package/src/paraglide/messages/prd_dialog_nameplaceholder1.js +0 -30
  3558. package/src/paraglide/messages/prd_dialog_namerequired1.js +0 -30
  3559. package/src/paraglide/messages/prd_loaderror1.js +0 -30
  3560. package/src/paraglide/messages/prd_notfound1.js +0 -30
  3561. package/src/paraglide/messages/prd_notfounddescription2.js +0 -30
  3562. package/src/paraglide/messages/prd_prototype_categorybasic1.js +0 -30
  3563. package/src/paraglide/messages/prd_prototype_categorycontent1.js +0 -30
  3564. package/src/paraglide/messages/prd_prototype_categoryicon1.js +0 -30
  3565. package/src/paraglide/messages/prd_prototype_categorytemplate1.js +0 -30
  3566. package/src/paraglide/messages/prd_prototype_iconback1.js +0 -30
  3567. package/src/paraglide/messages/prd_prototype_iconbutton1.js +0 -30
  3568. package/src/paraglide/messages/prd_prototype_iconcalendar1.js +0 -30
  3569. package/src/paraglide/messages/prd_prototype_iconchart1.js +0 -30
  3570. package/src/paraglide/messages/prd_prototype_iconfile1.js +0 -30
  3571. package/src/paraglide/messages/prd_prototype_icongeneral1.js +0 -30
  3572. package/src/paraglide/messages/prd_prototype_iconimage1.js +0 -30
  3573. package/src/paraglide/messages/prd_prototype_iconinput1.js +0 -30
  3574. package/src/paraglide/messages/prd_prototype_iconmail1.js +0 -30
  3575. package/src/paraglide/messages/prd_prototype_iconmessage1.js +0 -30
  3576. package/src/paraglide/messages/prd_prototype_iconnotification1.js +0 -30
  3577. package/src/paraglide/messages/prd_prototype_iconsearch1.js +0 -30
  3578. package/src/paraglide/messages/prd_prototype_iconsettings1.js +0 -30
  3579. package/src/paraglide/messages/prd_prototype_iconshopping1.js +0 -30
  3580. package/src/paraglide/messages/prd_prototype_icontable1.js +0 -30
  3581. package/src/paraglide/messages/prd_prototype_iconuser1.js +0 -30
  3582. package/src/paraglide/messages/prd_retry.js +0 -29
  3583. package/src/paraglide/messages/prd_sidebar_notags1.js +0 -30
  3584. package/src/paraglide/messages/prd_style_borderradius1.js +0 -30
  3585. package/src/paraglide/messages/prd_style_fontsize1.js +0 -30
  3586. package/src/paraglide/messages/prd_subtab_pageversion1.js +0 -30
  3587. package/src/paraglide/messages/prd_subtab_versionpublish1.js +0 -30
  3588. package/src/paraglide/messages/prd_title.js +0 -29
  3589. package/src/paraglide/messages/prd_treepage_duplicatesuffix2.js +0 -30
  3590. package/src/paraglide/messages/prd_treepage_homename2.js +0 -30
  3591. package/src/paraglide/messages/prd_treepage_unnamed1.js +0 -30
  3592. package/src/paraglide/messages/prd_treepage_unnamedfolder2.js +0 -30
  3593. package/src/paraglide/messages/presence_row_overflowcount1.js +0 -30
  3594. package/src/paraglide/messages/presence_row_tooltipentry1.js +0 -30
  3595. package/src/paraglide/messages/presence_share_guestdefault1.js +0 -30
  3596. package/src/paraglide/messages/presence_share_guestslabel1.js +0 -30
  3597. package/src/paraglide/messages/presence_share_guestsoverflow1.js +0 -30
  3598. package/src/paraglide/messages/presence_share_memberslabel1.js +0 -30
  3599. package/src/paraglide/messages/presence_share_membersoverflow1.js +0 -30
  3600. package/src/paraglide/messages/presence_share_metooltip1.js +0 -30
  3601. package/src/paraglide/messages/presence_sidebar_overflowcount1.js +0 -30
  3602. package/src/paraglide/messages/presence_sidebar_tooltipentry1.js +0 -30
  3603. package/src/paraglide/messages/presence_sidebar_tooltipentrynotitle3.js +0 -30
  3604. package/src/paraglide/messages/project_invite_added.js +0 -29
  3605. package/src/paraglide/messages/project_invite_guest.js +0 -29
  3606. package/src/paraglide/messages/project_invite_member.js +0 -29
  3607. package/src/paraglide/messages/project_invite_nomembers1.js +0 -30
  3608. package/src/paraglide/messages/project_invite_owner.js +0 -29
  3609. package/src/paraglide/messages/project_invite_searchmember1.js +0 -30
  3610. package/src/paraglide/messages/project_invite_selectmember1.js +0 -30
  3611. package/src/paraglide/messages/projects_detail_activity.js +0 -29
  3612. package/src/paraglide/messages/projects_detail_back.js +0 -29
  3613. package/src/paraglide/messages/projects_detail_iterations.js +0 -29
  3614. package/src/paraglide/messages/projects_detail_knowledgebase1.js +0 -30
  3615. package/src/paraglide/messages/projects_detail_modulestitle1.js +0 -30
  3616. package/src/paraglide/messages/projects_detail_nocontributions1.js +0 -30
  3617. package/src/paraglide/messages/projects_detail_nodescription1.js +0 -30
  3618. package/src/paraglide/messages/projects_detail_recentactivity1.js +0 -30
  3619. package/src/paraglide/messages/projects_detail_settings.js +0 -29
  3620. package/src/paraglide/messages/projects_module_assigneelabel1.js +0 -30
  3621. package/src/paraglide/messages/projects_module_empty.js +0 -29
  3622. package/src/paraglide/messages/projects_module_livebadge1.js +0 -30
  3623. package/src/paraglide/messages/projects_module_moduletitle1.js +0 -30
  3624. package/src/paraglide/messages/projects_module_totalitems1.js +0 -30
  3625. package/src/paraglide/messages/projects_module_unassigned.js +0 -29
  3626. package/src/paraglide/messages/projects_project_activity_completed.js +0 -29
  3627. package/src/paraglide/messages/projects_project_activity_created.js +0 -29
  3628. package/src/paraglide/messages/projects_project_activity_dateformat1.js +0 -30
  3629. package/src/paraglide/messages/projects_project_activity_daysago1.js +0 -30
  3630. package/src/paraglide/messages/projects_project_activity_deleted.js +0 -29
  3631. package/src/paraglide/messages/projects_project_activity_hoursago1.js +0 -30
  3632. package/src/paraglide/messages/projects_project_activity_justnow1.js +0 -30
  3633. package/src/paraglide/messages/projects_project_activity_memberinvited1.js +0 -30
  3634. package/src/paraglide/messages/projects_project_activity_memberjoined1.js +0 -30
  3635. package/src/paraglide/messages/projects_project_activity_memberremoved1.js +0 -30
  3636. package/src/paraglide/messages/projects_project_activity_minutesago1.js +0 -30
  3637. package/src/paraglide/messages/projects_project_activity_moduleviewed1.js +0 -30
  3638. package/src/paraglide/messages/projects_project_activity_norecords1.js +0 -30
  3639. package/src/paraglide/messages/projects_project_activity_rolechanged1.js +0 -30
  3640. package/src/paraglide/messages/projects_project_activity_unknownuser1.js +0 -30
  3641. package/src/paraglide/messages/projects_project_activity_updated.js +0 -29
  3642. package/src/paraglide/messages/projects_project_create_creating.js +0 -29
  3643. package/src/paraglide/messages/projects_project_create_failed.js +0 -29
  3644. package/src/paraglide/messages/projects_project_create_idplaceholder1.js +0 -30
  3645. package/src/paraglide/messages/projects_project_create_idunavailable1.js +0 -30
  3646. package/src/paraglide/messages/projects_project_create_introplaceholder1.js +0 -30
  3647. package/src/paraglide/messages/projects_project_create_nameplaceholder1.js +0 -30
  3648. package/src/paraglide/messages/projects_project_create_namerequired1.js +0 -30
  3649. package/src/paraglide/messages/projects_project_create_title.js +0 -29
  3650. package/src/paraglide/messages/projects_project_create_workspacelabel1.js +0 -30
  3651. package/src/paraglide/messages/projects_project_create_workspaceplaceholder1.js +0 -30
  3652. package/src/paraglide/messages/projects_project_create_workspacerequired1.js +0 -30
  3653. package/src/paraglide/messages/projects_project_create_workspaceselected1.js +0 -30
  3654. package/src/paraglide/messages/projects_project_edit_title.js +0 -29
  3655. package/src/paraglide/messages/projects_project_invite_admindesc1.js +0 -30
  3656. package/src/paraglide/messages/projects_project_invite_adminlabel1.js +0 -30
  3657. package/src/paraglide/messages/projects_project_invite_description.js +0 -29
  3658. package/src/paraglide/messages/projects_project_invite_emaillabel1.js +0 -30
  3659. package/src/paraglide/messages/projects_project_invite_emailrequired1.js +0 -30
  3660. package/src/paraglide/messages/projects_project_invite_invited.js +0 -29
  3661. package/src/paraglide/messages/projects_project_invite_invitefailed1.js +0 -30
  3662. package/src/paraglide/messages/projects_project_invite_memberdesc1.js +0 -30
  3663. package/src/paraglide/messages/projects_project_invite_memberlabel1.js +0 -30
  3664. package/src/paraglide/messages/projects_project_invite_rolelabel1.js +0 -30
  3665. package/src/paraglide/messages/projects_project_invite_sendinvite1.js +0 -30
  3666. package/src/paraglide/messages/projects_project_invite_title.js +0 -29
  3667. package/src/paraglide/messages/projects_project_invite_viewerdesc1.js +0 -30
  3668. package/src/paraglide/messages/projects_project_invite_viewerlabel1.js +0 -30
  3669. package/src/paraglide/messages/projects_project_member_admin.js +0 -29
  3670. package/src/paraglide/messages/projects_project_member_confirmremove1.js +0 -30
  3671. package/src/paraglide/messages/projects_project_member_confirmremoveaction2.js +0 -30
  3672. package/src/paraglide/messages/projects_project_member_confirmremovedesc2.js +0 -30
  3673. package/src/paraglide/messages/projects_project_member_invite.js +0 -29
  3674. package/src/paraglide/messages/projects_project_member_management.js +0 -29
  3675. package/src/paraglide/messages/projects_project_member_member.js +0 -29
  3676. package/src/paraglide/messages/projects_project_member_noteammembers2.js +0 -30
  3677. package/src/paraglide/messages/projects_project_member_owner.js +0 -29
  3678. package/src/paraglide/messages/projects_project_member_pending.js +0 -29
  3679. package/src/paraglide/messages/projects_project_member_removed.js +0 -29
  3680. package/src/paraglide/messages/projects_project_member_removefailed1.js +0 -30
  3681. package/src/paraglide/messages/projects_project_member_removemember1.js +0 -30
  3682. package/src/paraglide/messages/projects_project_member_removing.js +0 -29
  3683. package/src/paraglide/messages/projects_project_member_roleupdated1.js +0 -30
  3684. package/src/paraglide/messages/projects_project_member_self.js +0 -29
  3685. package/src/paraglide/messages/projects_project_member_setadmin1.js +0 -30
  3686. package/src/paraglide/messages/projects_project_member_setmember1.js +0 -30
  3687. package/src/paraglide/messages/projects_project_member_setrole1.js +0 -30
  3688. package/src/paraglide/messages/projects_project_member_setviewer1.js +0 -30
  3689. package/src/paraglide/messages/projects_project_member_totalmembers1.js +0 -30
  3690. package/src/paraglide/messages/projects_project_member_viewer.js +0 -29
  3691. package/src/paraglide/messages/projects_project_modulecard_lastupdate2.js +0 -30
  3692. package/src/paraglide/messages/projects_project_modulecard_today1.js +0 -30
  3693. package/src/paraglide/messages/projects_settings_backtoproject2.js +0 -30
  3694. package/src/paraglide/messages/projects_settings_basicinfo1.js +0 -30
  3695. package/src/paraglide/messages/projects_settings_clear.js +0 -29
  3696. package/src/paraglide/messages/projects_settings_cleardesc1.js +0 -30
  3697. package/src/paraglide/messages/projects_settings_confirmdelete1.js +0 -30
  3698. package/src/paraglide/messages/projects_settings_confirmdeletedesc2.js +0 -30
  3699. package/src/paraglide/messages/projects_settings_customtimezone1.js +0 -30
  3700. package/src/paraglide/messages/projects_settings_dangerdesc1.js +0 -30
  3701. package/src/paraglide/messages/projects_settings_dangerzone1.js +0 -30
  3702. package/src/paraglide/messages/projects_settings_deleted.js +0 -29
  3703. package/src/paraglide/messages/projects_settings_deletefailed1.js +0 -30
  3704. package/src/paraglide/messages/projects_settings_deletemethod1.js +0 -30
  3705. package/src/paraglide/messages/projects_settings_deleteproject1.js +0 -30
  3706. package/src/paraglide/messages/projects_settings_descplaceholder1.js +0 -30
  3707. package/src/paraglide/messages/projects_settings_followmytimezone2.js +0 -30
  3708. package/src/paraglide/messages/projects_settings_idplaceholder1.js +0 -30
  3709. package/src/paraglide/messages/projects_settings_idunavailable1.js +0 -30
  3710. package/src/paraglide/messages/projects_settings_kbsection_desc1.js +0 -30
  3711. package/src/paraglide/messages/projects_settings_kbsection_empty1.js +0 -30
  3712. package/src/paraglide/messages/projects_settings_kbsection_generaldisabled2.js +0 -30
  3713. package/src/paraglide/messages/projects_settings_kbsection_save1.js +0 -30
  3714. package/src/paraglide/messages/projects_settings_kbsection_saved1.js +0 -30
  3715. package/src/paraglide/messages/projects_settings_kbsection_savefailed2.js +0 -30
  3716. package/src/paraglide/messages/projects_settings_kbsection_teamonly2.js +0 -30
  3717. package/src/paraglide/messages/projects_settings_kbsection_title1.js +0 -30
  3718. package/src/paraglide/messages/projects_settings_members.js +0 -29
  3719. package/src/paraglide/messages/projects_settings_namerequired1.js +0 -30
  3720. package/src/paraglide/messages/projects_settings_projectdescription1.js +0 -30
  3721. package/src/paraglide/messages/projects_settings_projecticon1.js +0 -30
  3722. package/src/paraglide/messages/projects_settings_projectid1.js +0 -30
  3723. package/src/paraglide/messages/projects_settings_projectname1.js +0 -30
  3724. package/src/paraglide/messages/projects_settings_savechanges1.js +0 -30
  3725. package/src/paraglide/messages/projects_settings_saved.js +0 -29
  3726. package/src/paraglide/messages/projects_settings_savefailed1.js +0 -30
  3727. package/src/paraglide/messages/projects_settings_timezone.js +0 -29
  3728. package/src/paraglide/messages/projects_settings_title.js +0 -29
  3729. package/src/paraglide/messages/projects_settings_transfer.js +0 -29
  3730. package/src/paraglide/messages/projects_settings_transferdesc1.js +0 -30
  3731. package/src/paraglide/messages/projects_settings_transferredanddeleted2.js +0 -30
  3732. package/src/paraglide/messages/projects_title.js +0 -29
  3733. package/src/paraglide/messages/prototypepanel_autosavedat2.js +0 -30
  3734. package/src/paraglide/messages/prototypepanel_desktop1.js +0 -30
  3735. package/src/paraglide/messages/prototypepanel_mobile1.js +0 -30
  3736. package/src/paraglide/messages/prototypepanel_saving1.js +0 -30
  3737. package/src/paraglide/messages/prototypepanel_tablet1.js +0 -30
  3738. package/src/paraglide/messages/prototypepanel_title1.js +0 -30
  3739. package/src/paraglide/messages/rightsidebar_collapse1.js +0 -30
  3740. package/src/paraglide/messages/rightsidebar_expand1.js +0 -30
  3741. package/src/paraglide/messages/rightsidebar_pin1.js +0 -30
  3742. package/src/paraglide/messages/rightsidebar_selectpagehint3.js +0 -30
  3743. package/src/paraglide/messages/rightsidebar_tabcomment2.js +0 -30
  3744. package/src/paraglide/messages/rightsidebar_tabdoc2.js +0 -30
  3745. package/src/paraglide/messages/rightsidebar_tabeditor2.js +0 -30
  3746. package/src/paraglide/messages/rightsidebar_tabversion2.js +0 -30
  3747. package/src/paraglide/messages/rightsidebar_unpin1.js +0 -30
  3748. package/src/paraglide/messages/settings_ai_back.js +0 -29
  3749. package/src/paraglide/messages/settings_ai_badge_free.js +0 -29
  3750. package/src/paraglide/messages/settings_ai_badge_local.js +0 -29
  3751. package/src/paraglide/messages/settings_ai_badge_new.js +0 -29
  3752. package/src/paraglide/messages/settings_ai_badge_popular.js +0 -29
  3753. package/src/paraglide/messages/settings_ai_badge_recommended.js +0 -29
  3754. package/src/paraglide/messages/settings_ai_badge_sandbox.js +0 -29
  3755. package/src/paraglide/messages/settings_ai_baseurlhint2.js +0 -30
  3756. package/src/paraglide/messages/settings_ai_baseurllabel2.js +0 -30
  3757. package/src/paraglide/messages/settings_ai_byokdelete1.js +0 -30
  3758. package/src/paraglide/messages/settings_ai_byokdescription1.js +0 -30
  3759. package/src/paraglide/messages/settings_ai_byokhidekey2.js +0 -30
  3760. package/src/paraglide/messages/settings_ai_byokhint1.js +0 -30
  3761. package/src/paraglide/messages/settings_ai_byokplaceholder1.js +0 -30
  3762. package/src/paraglide/messages/settings_ai_byoksave1.js +0 -30
  3763. package/src/paraglide/messages/settings_ai_byokshowkey2.js +0 -30
  3764. package/src/paraglide/messages/settings_ai_byokstateempty2.js +0 -30
  3765. package/src/paraglide/messages/settings_ai_byokstatelocked2.js +0 -30
  3766. package/src/paraglide/messages/settings_ai_byokstateset2.js +0 -30
  3767. package/src/paraglide/messages/settings_ai_byoktitle1.js +0 -30
  3768. package/src/paraglide/messages/settings_ai_capabilitiesmap_audio1.js +0 -30
  3769. package/src/paraglide/messages/settings_ai_capabilitiesmap_reasoning1.js +0 -30
  3770. package/src/paraglide/messages/settings_ai_capabilitiesmap_text1.js +0 -30
  3771. package/src/paraglide/messages/settings_ai_capabilitiesmap_tools1.js +0 -30
  3772. package/src/paraglide/messages/settings_ai_capabilitiesmap_vision1.js +0 -30
  3773. package/src/paraglide/messages/settings_ai_capabilitiessection1.js +0 -30
  3774. package/src/paraglide/messages/settings_ai_clearconfig1.js +0 -30
  3775. package/src/paraglide/messages/settings_ai_configdeleted1.js +0 -30
  3776. package/src/paraglide/messages/settings_ai_confirmdeleteprovider2.js +0 -30
  3777. package/src/paraglide/messages/settings_ai_confirmdeleteproviderdescription3.js +0 -30
  3778. package/src/paraglide/messages/settings_ai_contextwindow1.js +0 -30
  3779. package/src/paraglide/messages/settings_ai_contextwindowk2.js +0 -30
  3780. package/src/paraglide/messages/settings_ai_createcustommodel2.js +0 -30
  3781. package/src/paraglide/messages/settings_ai_createcustommodeldescription3.js +0 -30
  3782. package/src/paraglide/messages/settings_ai_createcustomprovider2.js +0 -30
  3783. package/src/paraglide/messages/settings_ai_createcustomproviderdescription3.js +0 -30
  3784. package/src/paraglide/messages/settings_ai_createfailed1.js +0 -30
  3785. package/src/paraglide/messages/settings_ai_createmodel1.js +0 -30
  3786. package/src/paraglide/messages/settings_ai_createprovider1.js +0 -30
  3787. package/src/paraglide/messages/settings_ai_creating.js +0 -29
  3788. package/src/paraglide/messages/settings_ai_creatingprovider1.js +0 -30
  3789. package/src/paraglide/messages/settings_ai_current.js +0 -29
  3790. package/src/paraglide/messages/settings_ai_customapikey2.js +0 -30
  3791. package/src/paraglide/messages/settings_ai_custombadge1.js +0 -30
  3792. package/src/paraglide/messages/settings_ai_custombaseurl2.js +0 -30
  3793. package/src/paraglide/messages/settings_ai_custombaseurlplaceholder3.js +0 -30
  3794. package/src/paraglide/messages/settings_ai_customdefaultmodel2.js +0 -30
  3795. package/src/paraglide/messages/settings_ai_customdefaultmodelplaceholder3.js +0 -30
  3796. package/src/paraglide/messages/settings_ai_customprovidername2.js +0 -30
  3797. package/src/paraglide/messages/settings_ai_customprovidernameplaceholder3.js +0 -30
  3798. package/src/paraglide/messages/settings_ai_deletecustomprovider2.js +0 -30
  3799. package/src/paraglide/messages/settings_ai_deletefailedreason2.js +0 -30
  3800. package/src/paraglide/messages/settings_ai_deletesavedkey2.js +0 -30
  3801. package/src/paraglide/messages/settings_ai_deletingprovider1.js +0 -30
  3802. package/src/paraglide/messages/settings_ai_description_agnes.js +0 -29
  3803. package/src/paraglide/messages/settings_ai_description_anthropic.js +0 -29
  3804. package/src/paraglide/messages/settings_ai_description_bedrock.js +0 -29
  3805. package/src/paraglide/messages/settings_ai_description_byteplus.js +0 -29
  3806. package/src/paraglide/messages/settings_ai_description_deepseek.js +0 -29
  3807. package/src/paraglide/messages/settings_ai_description_gemini.js +0 -29
  3808. package/src/paraglide/messages/settings_ai_description_groq.js +0 -29
  3809. package/src/paraglide/messages/settings_ai_description_harness_acp.js +0 -30
  3810. package/src/paraglide/messages/settings_ai_description_harness_claude_code.js +0 -30
  3811. package/src/paraglide/messages/settings_ai_description_harness_codex.js +0 -30
  3812. package/src/paraglide/messages/settings_ai_description_harness_opencode.js +0 -30
  3813. package/src/paraglide/messages/settings_ai_description_mistral.js +0 -29
  3814. package/src/paraglide/messages/settings_ai_description_moonshot.js +0 -29
  3815. package/src/paraglide/messages/settings_ai_description_ollama.js +0 -29
  3816. package/src/paraglide/messages/settings_ai_description_openai.js +0 -29
  3817. package/src/paraglide/messages/settings_ai_description_openrouter.js +0 -29
  3818. package/src/paraglide/messages/settings_ai_description_sensenova.js +0 -29
  3819. package/src/paraglide/messages/settings_ai_description_xai.js +0 -29
  3820. package/src/paraglide/messages/settings_ai_disable.js +0 -29
  3821. package/src/paraglide/messages/settings_ai_disableall1.js +0 -30
  3822. package/src/paraglide/messages/settings_ai_disabled.js +0 -29
  3823. package/src/paraglide/messages/settings_ai_disabledproviders1.js +0 -30
  3824. package/src/paraglide/messages/settings_ai_displayname1.js +0 -30
  3825. package/src/paraglide/messages/settings_ai_displaynameplaceholder2.js +0 -30
  3826. package/src/paraglide/messages/settings_ai_docs.js +0 -29
  3827. package/src/paraglide/messages/settings_ai_dragtosort2.js +0 -30
  3828. package/src/paraglide/messages/settings_ai_enable.js +0 -29
  3829. package/src/paraglide/messages/settings_ai_enableall1.js +0 -30
  3830. package/src/paraglide/messages/settings_ai_enabled.js +0 -29
  3831. package/src/paraglide/messages/settings_ai_enabledproviders1.js +0 -30
  3832. package/src/paraglide/messages/settings_ai_enableprovider1.js +0 -30
  3833. package/src/paraglide/messages/settings_ai_fetchfailed1.js +0 -30
  3834. package/src/paraglide/messages/settings_ai_fetchmodels1.js +0 -30
  3835. package/src/paraglide/messages/settings_ai_freeprice1.js +0 -30
  3836. package/src/paraglide/messages/settings_ai_getapikey2.js +0 -30
  3837. package/src/paraglide/messages/settings_ai_getkey1.js +0 -30
  3838. package/src/paraglide/messages/settings_ai_hidekey1.js +0 -30
  3839. package/src/paraglide/messages/settings_ai_hosted_desc.js +0 -29
  3840. package/src/paraglide/messages/settings_ai_hosted_empty.js +0 -29
  3841. package/src/paraglide/messages/settings_ai_hosted_quota.js +0 -29
  3842. package/src/paraglide/messages/settings_ai_hosted_title.js +0 -29
  3843. package/src/paraglide/messages/settings_ai_iconslug1.js +0 -30
  3844. package/src/paraglide/messages/settings_ai_iconslugplaceholder2.js +0 -30
  3845. package/src/paraglide/messages/settings_ai_includescustom1.js +0 -30
  3846. package/src/paraglide/messages/settings_ai_inputprice1.js +0 -30
  3847. package/src/paraglide/messages/settings_ai_keepcurrentkey2.js +0 -30
  3848. package/src/paraglide/messages/settings_ai_keystoredencrypted2.js +0 -30
  3849. package/src/paraglide/messages/settings_ai_loaderror1.js +0 -30
  3850. package/src/paraglide/messages/settings_ai_localnokeyneeded3.js +0 -30
  3851. package/src/paraglide/messages/settings_ai_modelcount1.js +0 -30
  3852. package/src/paraglide/messages/settings_ai_modelid1.js +0 -30
  3853. package/src/paraglide/messages/settings_ai_modelidplaceholder2.js +0 -30
  3854. package/src/paraglide/messages/settings_ai_modelmanagement1.js +0 -30
  3855. package/src/paraglide/messages/settings_ai_modelmanagementdesc2.js +0 -30
  3856. package/src/paraglide/messages/settings_ai_nocustomprovider2.js +0 -30
  3857. package/src/paraglide/messages/settings_ai_noenabledinfilter3.js +0 -30
  3858. package/src/paraglide/messages/settings_ai_noenabledyet2.js +0 -30
  3859. package/src/paraglide/messages/settings_ai_nomatchedproviders2.js +0 -30
  3860. package/src/paraglide/messages/settings_ai_operationfailed1.js +0 -30
  3861. package/src/paraglide/messages/settings_ai_outputprice1.js +0 -30
  3862. package/src/paraglide/messages/settings_ai_platformdelisteddesc2.js +0 -30
  3863. package/src/paraglide/messages/settings_ai_platformdelistedtitle2.js +0 -30
  3864. package/src/paraglide/messages/settings_ai_platformdepreciated1.js +0 -30
  3865. package/src/paraglide/messages/settings_ai_platformdepreciatednotice2.js +0 -30
  3866. package/src/paraglide/messages/settings_ai_privacynotice1.js +0 -30
  3867. package/src/paraglide/messages/settings_ai_privacynoticedescription2.js +0 -30
  3868. package/src/paraglide/messages/settings_ai_providerconfigured1.js +0 -30
  3869. package/src/paraglide/messages/settings_ai_providercreated1.js +0 -30
  3870. package/src/paraglide/messages/settings_ai_providercreatedtoast2.js +0 -30
  3871. package/src/paraglide/messages/settings_ai_providerdeleted1.js +0 -30
  3872. package/src/paraglide/messages/settings_ai_providerenabled1.js +0 -30
  3873. package/src/paraglide/messages/settings_ai_providerlocal1.js +0 -30
  3874. package/src/paraglide/messages/settings_ai_providernotconfigured2.js +0 -30
  3875. package/src/paraglide/messages/settings_ai_providers.js +0 -29
  3876. package/src/paraglide/messages/settings_ai_providersdescription1.js +0 -30
  3877. package/src/paraglide/messages/settings_ai_recommended.js +0 -29
  3878. package/src/paraglide/messages/settings_ai_releasedate1.js +0 -30
  3879. package/src/paraglide/messages/settings_ai_sandbox.js +0 -29
  3880. package/src/paraglide/messages/settings_ai_saved.js +0 -29
  3881. package/src/paraglide/messages/settings_ai_savefailedreason2.js +0 -30
  3882. package/src/paraglide/messages/settings_ai_saveshort1.js +0 -30
  3883. package/src/paraglide/messages/settings_ai_saving.js +0 -29
  3884. package/src/paraglide/messages/settings_ai_searchmodels1.js +0 -30
  3885. package/src/paraglide/messages/settings_ai_searchplaceholder1.js +0 -30
  3886. package/src/paraglide/messages/settings_ai_setupconfig1.js +0 -30
  3887. package/src/paraglide/messages/settings_ai_showkey1.js +0 -30
  3888. package/src/paraglide/messages/settings_ai_sortbyname2.js +0 -30
  3889. package/src/paraglide/messages/settings_ai_sortconfiguredfirst2.js +0 -30
  3890. package/src/paraglide/messages/settings_ai_sortdefault1.js +0 -30
  3891. package/src/paraglide/messages/settings_ai_source_byok_desc.js +0 -29
  3892. package/src/paraglide/messages/settings_ai_source_byok_tagmulti1.js +0 -30
  3893. package/src/paraglide/messages/settings_ai_source_byok_tagurl1.js +0 -30
  3894. package/src/paraglide/messages/settings_ai_source_byok_title.js +0 -29
  3895. package/src/paraglide/messages/settings_ai_source_current.js +0 -29
  3896. package/src/paraglide/messages/settings_ai_source_hosted_desc.js +0 -29
  3897. package/src/paraglide/messages/settings_ai_source_hosted_tagbilling1.js +0 -30
  3898. package/src/paraglide/messages/settings_ai_source_hosted_tagnokey2.js +0 -30
  3899. package/src/paraglide/messages/settings_ai_source_hosted_title.js +0 -29
  3900. package/src/paraglide/messages/settings_ai_source_local_desc.js +0 -29
  3901. package/src/paraglide/messages/settings_ai_source_local_download_complete.js +0 -29
  3902. package/src/paraglide/messages/settings_ai_source_local_download_desc.js +0 -29
  3903. package/src/paraglide/messages/settings_ai_source_local_download_success.js +0 -29
  3904. package/src/paraglide/messages/settings_ai_source_local_download_title.js +0 -29
  3905. package/src/paraglide/messages/settings_ai_source_local_needdesktop1.js +0 -30
  3906. package/src/paraglide/messages/settings_ai_source_local_panel_desc.js +0 -29
  3907. package/src/paraglide/messages/settings_ai_source_local_panel_title.js +0 -29
  3908. package/src/paraglide/messages/settings_ai_source_local_status_desktop.js +0 -29
  3909. package/src/paraglide/messages/settings_ai_source_local_status_web.js +0 -29
  3910. package/src/paraglide/messages/settings_ai_source_local_tagbyok1.js +0 -30
  3911. package/src/paraglide/messages/settings_ai_source_local_title.js +0 -29
  3912. package/src/paraglide/messages/settings_ai_source_local_web_notice.js +0 -29
  3913. package/src/paraglide/messages/settings_ai_source_saved.js +0 -29
  3914. package/src/paraglide/messages/settings_ai_tabs_all.js +0 -29
  3915. package/src/paraglide/messages/settings_ai_tabs_reasoning.js +0 -29
  3916. package/src/paraglide/messages/settings_ai_tabs_text.js +0 -29
  3917. package/src/paraglide/messages/settings_ai_tabs_tools.js +0 -29
  3918. package/src/paraglide/messages/settings_ai_tabs_video.js +0 -29
  3919. package/src/paraglide/messages/settings_ai_tabs_vision.js +0 -29
  3920. package/src/paraglide/messages/settings_ai_taglabels_apifetched2.js +0 -30
  3921. package/src/paraglide/messages/settings_ai_taglabels_custom1.js +0 -30
  3922. package/src/paraglide/messages/settings_ai_taglabels_fast1.js +0 -30
  3923. package/src/paraglide/messages/settings_ai_taglabels_flagship1.js +0 -30
  3924. package/src/paraglide/messages/settings_ai_taglabels_recommended1.js +0 -30
  3925. package/src/paraglide/messages/settings_ai_tags.js +0 -29
  3926. package/src/paraglide/messages/settings_ai_tagsplaceholder1.js +0 -30
  3927. package/src/paraglide/messages/settings_ai_testconnection1.js +0 -30
  3928. package/src/paraglide/messages/settings_ai_testfailedreason2.js +0 -30
  3929. package/src/paraglide/messages/settings_ai_toggleallfiltered2.js +0 -30
  3930. package/src/paraglide/messages/settings_ai_togglemodel1.js +0 -30
  3931. package/src/paraglide/messages/settings_ai_totalmodels1.js +0 -30
  3932. package/src/paraglide/messages/settings_ai_unknownerror1.js +0 -30
  3933. package/src/paraglide/messages/settings_ai_voiceapikey2.js +0 -30
  3934. package/src/paraglide/messages/settings_ai_voiceapikeyhint3.js +0 -30
  3935. package/src/paraglide/messages/settings_ai_voicebaseurl2.js +0 -30
  3936. package/src/paraglide/messages/settings_ai_voicebaseurlhint3.js +0 -30
  3937. package/src/paraglide/messages/settings_askai_explain1.js +0 -30
  3938. package/src/paraglide/messages/settings_askai_explain_prompt1.js +0 -30
  3939. package/src/paraglide/messages/settings_askai_recommend1.js +0 -30
  3940. package/src/paraglide/messages/settings_askai_recommend_prompt1.js +0 -30
  3941. package/src/paraglide/messages/settings_askai_safety1.js +0 -30
  3942. package/src/paraglide/messages/settings_askai_safety_prompt1.js +0 -30
  3943. package/src/paraglide/messages/settings_avatar_bgcolor1.js +0 -30
  3944. package/src/paraglide/messages/settings_avatar_bgshape1.js +0 -30
  3945. package/src/paraglide/messages/settings_avatar_editdescription1.js +0 -30
  3946. package/src/paraglide/messages/settings_avatar_edittitle1.js +0 -30
  3947. package/src/paraglide/messages/settings_avatar_flip.js +0 -29
  3948. package/src/paraglide/messages/settings_avatar_none.js +0 -29
  3949. package/src/paraglide/messages/settings_avatar_part_accessories.js +0 -29
  3950. package/src/paraglide/messages/settings_avatar_part_beard.js +0 -29
  3951. package/src/paraglide/messages/settings_avatar_part_details.js +0 -29
  3952. package/src/paraglide/messages/settings_avatar_part_eyebrows.js +0 -29
  3953. package/src/paraglide/messages/settings_avatar_part_eyes.js +0 -29
  3954. package/src/paraglide/messages/settings_avatar_part_face.js +0 -29
  3955. package/src/paraglide/messages/settings_avatar_part_glasses.js +0 -29
  3956. package/src/paraglide/messages/settings_avatar_part_hair.js +0 -29
  3957. package/src/paraglide/messages/settings_avatar_part_mouth.js +0 -29
  3958. package/src/paraglide/messages/settings_avatar_part_nose.js +0 -29
  3959. package/src/paraglide/messages/settings_avatar_random.js +0 -29
  3960. package/src/paraglide/messages/settings_avatar_reset.js +0 -29
  3961. package/src/paraglide/messages/settings_avatar_shapecircle1.js +0 -30
  3962. package/src/paraglide/messages/settings_avatar_shaperounded1.js +0 -30
  3963. package/src/paraglide/messages/settings_avatar_shapesquare1.js +0 -30
  3964. package/src/paraglide/messages/settings_billing_paymentcancelled1.js +0 -30
  3965. package/src/paraglide/messages/settings_billing_subscriptionsuccess1.js +0 -30
  3966. package/src/paraglide/messages/settings_connection_cloud.js +0 -29
  3967. package/src/paraglide/messages/settings_connection_clouddescription1.js +0 -30
  3968. package/src/paraglide/messages/settings_connection_currentmode1.js +0 -30
  3969. package/src/paraglide/messages/settings_connection_local.js +0 -29
  3970. package/src/paraglide/messages/settings_connection_localdescription1.js +0 -30
  3971. package/src/paraglide/messages/settings_connection_mode.js +0 -29
  3972. package/src/paraglide/messages/settings_connection_modedescription1.js +0 -30
  3973. package/src/paraglide/messages/settings_connection_selfhosted1.js +0 -30
  3974. package/src/paraglide/messages/settings_connection_selfhosteddescription2.js +0 -30
  3975. package/src/paraglide/messages/settings_connection_switchmode1.js +0 -30
  3976. package/src/paraglide/messages/settings_general_language.js +0 -29
  3977. package/src/paraglide/messages/settings_general_languagedescription1.js +0 -30
  3978. package/src/paraglide/messages/settings_general_savefailed1.js +0 -30
  3979. package/src/paraglide/messages/settings_general_timezone.js +0 -29
  3980. package/src/paraglide/messages/settings_general_timezonedescription1.js +0 -30
  3981. package/src/paraglide/messages/settings_general_timezonerequired1.js +0 -30
  3982. package/src/paraglide/messages/settings_general_timezoneupdated1.js +0 -30
  3983. package/src/paraglide/messages/settings_general_title.js +0 -29
  3984. package/src/paraglide/messages/settings_langen1.js +0 -30
  3985. package/src/paraglide/messages/settings_languagechanged1.js +0 -30
  3986. package/src/paraglide/messages/settings_languagechangefailed2.js +0 -30
  3987. package/src/paraglide/messages/settings_langzh1.js +0 -30
  3988. package/src/paraglide/messages/settings_nav_settings.js +0 -29
  3989. package/src/paraglide/messages/settings_notfound_backtosettings3.js +0 -30
  3990. package/src/paraglide/messages/settings_notfound_backtoworkspace3.js +0 -30
  3991. package/src/paraglide/messages/settings_notfound_description1.js +0 -30
  3992. package/src/paraglide/messages/settings_notfound_title1.js +0 -30
  3993. package/src/paraglide/messages/settings_privacy_deletebtn1.js +0 -30
  3994. package/src/paraglide/messages/settings_privacy_deleteconfirmlabel2.js +0 -30
  3995. package/src/paraglide/messages/settings_privacy_deleteconfirmplaceholder2.js +0 -30
  3996. package/src/paraglide/messages/settings_privacy_deletedesc1.js +0 -30
  3997. package/src/paraglide/messages/settings_privacy_deletetitle1.js +0 -30
  3998. package/src/paraglide/messages/settings_privacy_exportbtn1.js +0 -30
  3999. package/src/paraglide/messages/settings_privacy_exportdesc1.js +0 -30
  4000. package/src/paraglide/messages/settings_privacy_exporttitle1.js +0 -30
  4001. package/src/paraglide/messages/settings_privacy_submitted.js +0 -29
  4002. package/src/paraglide/messages/settings_privacy_title.js +0 -29
  4003. package/src/paraglide/messages/settings_profile_accountinfodesc2.js +0 -30
  4004. package/src/paraglide/messages/settings_profile_accountinfotitle2.js +0 -30
  4005. package/src/paraglide/messages/settings_profile_accountmetadata1.js +0 -30
  4006. package/src/paraglide/messages/settings_profile_accountmetadatadesc2.js +0 -30
  4007. package/src/paraglide/messages/settings_profile_avatar.js +0 -29
  4008. package/src/paraglide/messages/settings_profile_avatardescription1.js +0 -30
  4009. package/src/paraglide/messages/settings_profile_avatarsavefailed2.js +0 -30
  4010. package/src/paraglide/messages/settings_profile_avatarupdated1.js +0 -30
  4011. package/src/paraglide/messages/settings_profile_bio.js +0 -29
  4012. package/src/paraglide/messages/settings_profile_biodescription1.js +0 -30
  4013. package/src/paraglide/messages/settings_profile_bioplaceholder1.js +0 -30
  4014. package/src/paraglide/messages/settings_profile_changeemail1.js +0 -30
  4015. package/src/paraglide/messages/settings_profile_changingemail1.js +0 -30
  4016. package/src/paraglide/messages/settings_profile_confirmchange1.js +0 -30
  4017. package/src/paraglide/messages/settings_profile_createdat1.js +0 -30
  4018. package/src/paraglide/messages/settings_profile_createdatdesc2.js +0 -30
  4019. package/src/paraglide/messages/settings_profile_currentpassword1.js +0 -30
  4020. package/src/paraglide/messages/settings_profile_currentpasswordplaceholder2.js +0 -30
  4021. package/src/paraglide/messages/settings_profile_defaultuser1.js +0 -30
  4022. package/src/paraglide/messages/settings_profile_description.js +0 -29
  4023. package/src/paraglide/messages/settings_profile_email.js +0 -29
  4024. package/src/paraglide/messages/settings_profile_emailchangefailed2.js +0 -30
  4025. package/src/paraglide/messages/settings_profile_entercurrentpassword2.js +0 -30
  4026. package/src/paraglide/messages/settings_profile_enteremail1.js +0 -30
  4027. package/src/paraglide/messages/settings_profile_entername1.js +0 -30
  4028. package/src/paraglide/messages/settings_profile_enternewemail2.js +0 -30
  4029. package/src/paraglide/messages/settings_profile_invalidemail1.js +0 -30
  4030. package/src/paraglide/messages/settings_profile_invalidurl1.js +0 -30
  4031. package/src/paraglide/messages/settings_profile_location.js +0 -29
  4032. package/src/paraglide/messages/settings_profile_locationplaceholder1.js +0 -30
  4033. package/src/paraglide/messages/settings_profile_name.js +0 -29
  4034. package/src/paraglide/messages/settings_profile_nameplaceholder1.js +0 -30
  4035. package/src/paraglide/messages/settings_profile_newemail1.js +0 -30
  4036. package/src/paraglide/messages/settings_profile_notavailable1.js +0 -30
  4037. package/src/paraglide/messages/settings_profile_savechanges1.js +0 -30
  4038. package/src/paraglide/messages/settings_profile_saved.js +0 -29
  4039. package/src/paraglide/messages/settings_profile_savefailed1.js +0 -30
  4040. package/src/paraglide/messages/settings_profile_saving.js +0 -29
  4041. package/src/paraglide/messages/settings_profile_socialgithub2.js +0 -30
  4042. package/src/paraglide/messages/settings_profile_sociallinkedin2.js +0 -30
  4043. package/src/paraglide/messages/settings_profile_sociallinks1.js +0 -30
  4044. package/src/paraglide/messages/settings_profile_socialtwitter1.js +0 -30
  4045. package/src/paraglide/messages/settings_profile_socialwebsite1.js +0 -30
  4046. package/src/paraglide/messages/settings_profile_title.js +0 -29
  4047. package/src/paraglide/messages/settings_profile_unknown.js +0 -29
  4048. package/src/paraglide/messages/settings_profile_uploadimage1.js +0 -30
  4049. package/src/paraglide/messages/settings_profile_website.js +0 -29
  4050. package/src/paraglide/messages/settings_tabs_accountprofile1.js +0 -30
  4051. package/src/paraglide/messages/settings_tabs_ai.js +0 -29
  4052. package/src/paraglide/messages/settings_tabs_aiagents1.js +0 -30
  4053. package/src/paraglide/messages/settings_tabs_aiproviders1.js +0 -30
  4054. package/src/paraglide/messages/settings_tabs_billing.js +0 -29
  4055. package/src/paraglide/messages/settings_tabs_connectionmode1.js +0 -30
  4056. package/src/paraglide/messages/settings_tabs_dataprivacy1.js +0 -30
  4057. package/src/paraglide/messages/settings_tabs_desktop.js +0 -29
  4058. package/src/paraglide/messages/settings_tabs_general.js +0 -29
  4059. package/src/paraglide/messages/settings_tabs_generalsettings1.js +0 -30
  4060. package/src/paraglide/messages/settings_tabs_notifications.js +0 -29
  4061. package/src/paraglide/messages/settings_tabs_personalteam1.js +0 -30
  4062. package/src/paraglide/messages/settings_tabs_plugins.js +0 -29
  4063. package/src/paraglide/messages/settings_tabs_subscription.js +0 -29
  4064. package/src/paraglide/messages/settings_tabs_teammembers1.js +0 -30
  4065. package/src/paraglide/messages/settings_team_allroles1.js +0 -30
  4066. package/src/paraglide/messages/settings_team_allstatuses1.js +0 -30
  4067. package/src/paraglide/messages/settings_team_cancel.js +0 -29
  4068. package/src/paraglide/messages/settings_team_channel_email.js +0 -29
  4069. package/src/paraglide/messages/settings_team_channel_link.js +0 -29
  4070. package/src/paraglide/messages/settings_team_copylink1.js +0 -30
  4071. package/src/paraglide/messages/settings_team_dangerzone1.js +0 -30
  4072. package/src/paraglide/messages/settings_team_dangerzonedesc2.js +0 -30
  4073. package/src/paraglide/messages/settings_team_days.js +0 -29
  4074. package/src/paraglide/messages/settings_team_daysago1.js +0 -30
  4075. package/src/paraglide/messages/settings_team_demotetomember2.js +0 -30
  4076. package/src/paraglide/messages/settings_team_directlink1.js +0 -30
  4077. package/src/paraglide/messages/settings_team_emailrequired1.js +0 -30
  4078. package/src/paraglide/messages/settings_team_expired.js +0 -29
  4079. package/src/paraglide/messages/settings_team_expiresin1.js +0 -30
  4080. package/src/paraglide/messages/settings_team_guestbadge1.js +0 -30
  4081. package/src/paraglide/messages/settings_team_hours.js +0 -29
  4082. package/src/paraglide/messages/settings_team_hoursago1.js +0 -30
  4083. package/src/paraglide/messages/settings_team_invalidemail1.js +0 -30
  4084. package/src/paraglide/messages/settings_team_invite_acceptedat1.js +0 -30
  4085. package/src/paraglide/messages/settings_team_invite_approve.js +0 -29
  4086. package/src/paraglide/messages/settings_team_invite_approvedescription1.js +0 -30
  4087. package/src/paraglide/messages/settings_team_invite_approvetitle1.js +0 -30
  4088. package/src/paraglide/messages/settings_team_invite_clearexpired1.js +0 -30
  4089. package/src/paraglide/messages/settings_team_invite_createfirst1.js +0 -30
  4090. package/src/paraglide/messages/settings_team_invite_creating.js +0 -29
  4091. package/src/paraglide/messages/settings_team_invite_deleterecord1.js +0 -30
  4092. package/src/paraglide/messages/settings_team_invite_description.js +0 -29
  4093. package/src/paraglide/messages/settings_team_invite_directlink1.js +0 -30
  4094. package/src/paraglide/messages/settings_team_invite_email.js +0 -29
  4095. package/src/paraglide/messages/settings_team_invite_emaildescription1.js +0 -30
  4096. package/src/paraglide/messages/settings_team_invite_emailplaceholder1.js +0 -30
  4097. package/src/paraglide/messages/settings_team_invite_emailtitle1.js +0 -30
  4098. package/src/paraglide/messages/settings_team_invite_expires.js +0 -29
  4099. package/src/paraglide/messages/settings_team_invite_generatelink1.js +0 -30
  4100. package/src/paraglide/messages/settings_team_invite_historytitle1.js +0 -30
  4101. package/src/paraglide/messages/settings_team_invite_invitedat1.js +0 -30
  4102. package/src/paraglide/messages/settings_team_invite_linkdescription1.js +0 -30
  4103. package/src/paraglide/messages/settings_team_invite_linkexpired1.js +0 -30
  4104. package/src/paraglide/messages/settings_team_invite_linkexpiry1.js +0 -30
  4105. package/src/paraglide/messages/settings_team_invite_linkrefreshing1.js +0 -30
  4106. package/src/paraglide/messages/settings_team_invite_linktitle1.js +0 -30
  4107. package/src/paraglide/messages/settings_team_invite_message.js +0 -29
  4108. package/src/paraglide/messages/settings_team_invite_messageplaceholder1.js +0 -30
  4109. package/src/paraglide/messages/settings_team_invite_noactivelink2.js +0 -30
  4110. package/src/paraglide/messages/settings_team_invite_noinvitations1.js +0 -30
  4111. package/src/paraglide/messages/settings_team_invite_refreshlink1.js +0 -30
  4112. package/src/paraglide/messages/settings_team_invite_role.js +0 -29
  4113. package/src/paraglide/messages/settings_team_invite_roledescription1.js +0 -30
  4114. package/src/paraglide/messages/settings_team_invite_sendinvite1.js +0 -30
  4115. package/src/paraglide/messages/settings_team_invite_title.js +0 -29
  4116. package/src/paraglide/messages/settings_team_inviteapproved1.js +0 -30
  4117. package/src/paraglide/messages/settings_team_invitecreatefailed2.js +0 -30
  4118. package/src/paraglide/messages/settings_team_invitemembers1.js +0 -30
  4119. package/src/paraglide/messages/settings_team_invitesent1.js +0 -30
  4120. package/src/paraglide/messages/settings_team_joinedat1.js +0 -30
  4121. package/src/paraglide/messages/settings_team_joinedteam1.js +0 -30
  4122. package/src/paraglide/messages/settings_team_joinrequests_appliedat2.js +0 -30
  4123. package/src/paraglide/messages/settings_team_joinrequests_reject1.js +0 -30
  4124. package/src/paraglide/messages/settings_team_joinrequests_requestapproved2.js +0 -30
  4125. package/src/paraglide/messages/settings_team_joinrequests_requestinvalidated2.js +0 -30
  4126. package/src/paraglide/messages/settings_team_joinrequests_requestrejected2.js +0 -30
  4127. package/src/paraglide/messages/settings_team_justnow1.js +0 -30
  4128. package/src/paraglide/messages/settings_team_lastactiveat2.js +0 -30
  4129. package/src/paraglide/messages/settings_team_leaveteam1.js +0 -30
  4130. package/src/paraglide/messages/settings_team_leaveteamdesc2.js +0 -30
  4131. package/src/paraglide/messages/settings_team_leaveteamtitle2.js +0 -30
  4132. package/src/paraglide/messages/settings_team_lessthanhour2.js +0 -30
  4133. package/src/paraglide/messages/settings_team_linkcopied1.js +0 -30
  4134. package/src/paraglide/messages/settings_team_linkcopiedmessage2.js +0 -36
  4135. package/src/paraglide/messages/settings_team_linkcreated1.js +0 -30
  4136. package/src/paraglide/messages/settings_team_membercount1.js +0 -30
  4137. package/src/paraglide/messages/settings_team_memberinfo1.js +0 -30
  4138. package/src/paraglide/messages/settings_team_minutesago1.js +0 -30
  4139. package/src/paraglide/messages/settings_team_moreactions1.js +0 -30
  4140. package/src/paraglide/messages/settings_team_never.js +0 -29
  4141. package/src/paraglide/messages/settings_team_nomatch1.js +0 -30
  4142. package/src/paraglide/messages/settings_team_nomembers1.js +0 -30
  4143. package/src/paraglide/messages/settings_team_noteam1.js +0 -30
  4144. package/src/paraglide/messages/settings_team_noteamdesc2.js +0 -30
  4145. package/src/paraglide/messages/settings_team_notimplemented1.js +0 -30
  4146. package/src/paraglide/messages/settings_team_promotetoadmin2.js +0 -30
  4147. package/src/paraglide/messages/settings_team_removemember1.js +0 -30
  4148. package/src/paraglide/messages/settings_team_removememberconfirm2.js +0 -30
  4149. package/src/paraglide/messages/settings_team_resend.js +0 -29
  4150. package/src/paraglide/messages/settings_team_resendinvite1.js +0 -30
  4151. package/src/paraglide/messages/settings_team_revoke.js +0 -29
  4152. package/src/paraglide/messages/settings_team_role_admin.js +0 -29
  4153. package/src/paraglide/messages/settings_team_role_guest.js +0 -29
  4154. package/src/paraglide/messages/settings_team_role_member.js +0 -29
  4155. package/src/paraglide/messages/settings_team_role_owner.js +0 -29
  4156. package/src/paraglide/messages/settings_team_role_viewer.js +0 -29
  4157. package/src/paraglide/messages/settings_team_samplenames_lisi1.js +0 -30
  4158. package/src/paraglide/messages/settings_team_samplenames_qianqi1.js +0 -30
  4159. package/src/paraglide/messages/settings_team_samplenames_wangwu1.js +0 -30
  4160. package/src/paraglide/messages/settings_team_samplenames_zhangsan1.js +0 -30
  4161. package/src/paraglide/messages/settings_team_samplenames_zhaoliu1.js +0 -30
  4162. package/src/paraglide/messages/settings_team_searchplaceholder1.js +0 -30
  4163. package/src/paraglide/messages/settings_team_seatguests1.js +0 -30
  4164. package/src/paraglide/messages/settings_team_seatguestshint2.js +0 -30
  4165. package/src/paraglide/messages/settings_team_seatmembers1.js +0 -30
  4166. package/src/paraglide/messages/settings_team_seatmembershint2.js +0 -30
  4167. package/src/paraglide/messages/settings_team_sessions.js +0 -29
  4168. package/src/paraglide/messages/settings_team_status_accepted.js +0 -29
  4169. package/src/paraglide/messages/settings_team_status_active.js +0 -29
  4170. package/src/paraglide/messages/settings_team_status_expired.js +0 -29
  4171. package/src/paraglide/messages/settings_team_status_invited.js +0 -29
  4172. package/src/paraglide/messages/settings_team_status_pending.js +0 -29
  4173. package/src/paraglide/messages/settings_team_status_pendingapproval1.js +0 -30
  4174. package/src/paraglide/messages/settings_team_status_revoked.js +0 -29
  4175. package/src/paraglide/messages/settings_team_status_suspended.js +0 -29
  4176. package/src/paraglide/messages/settings_team_subtitle.js +0 -29
  4177. package/src/paraglide/messages/settings_team_title.js +0 -29
  4178. package/src/paraglide/messages/settings_team_tryadjustfilters2.js +0 -30
  4179. package/src/paraglide/messages/settings_team_unlimited.js +0 -29
  4180. package/src/paraglide/messages/settings_team_unregistered.js +0 -29
  4181. package/src/paraglide/messages/settings_team_you.js +0 -29
  4182. package/src/paraglide/messages/share_brandtagline1.js +0 -30
  4183. package/src/paraglide/messages/share_comment_input_placeholder.js +0 -30
  4184. package/src/paraglide/messages/share_comment_login_required.js +0 -30
  4185. package/src/paraglide/messages/share_comment_send.js +0 -29
  4186. package/src/paraglide/messages/share_review_approve.js +0 -29
  4187. package/src/paraglide/messages/share_review_approved.js +0 -29
  4188. package/src/paraglide/messages/share_review_login_required.js +0 -30
  4189. package/src/paraglide/messages/share_review_notes_placeholder.js +0 -30
  4190. package/src/paraglide/messages/share_review_pending.js +0 -29
  4191. package/src/paraglide/messages/share_review_reject.js +0 -29
  4192. package/src/paraglide/messages/share_review_rejected.js +0 -29
  4193. package/src/paraglide/messages/share_review_reviewing.js +0 -29
  4194. package/src/paraglide/messages/share_review_status_label.js +0 -30
  4195. package/src/paraglide/messages/share_review_status_updated.js +0 -30
  4196. package/src/paraglide/messages/share_review_update_failed.js +0 -30
  4197. package/src/paraglide/messages/shareclient_inactivetitle2.js +0 -30
  4198. package/src/paraglide/messages/shareclient_linkunavailable2.js +0 -30
  4199. package/src/paraglide/messages/shareclient_notfoundtitle3.js +0 -30
  4200. package/src/paraglide/messages/shareclient_versionunavailable2.js +0 -30
  4201. package/src/paraglide/messages/sharecomment_cancel1.js +0 -30
  4202. package/src/paraglide/messages/sharecomment_edited1.js +0 -30
  4203. package/src/paraglide/messages/sharecomment_empty1.js +0 -30
  4204. package/src/paraglide/messages/sharecomment_loginrequired2.js +0 -30
  4205. package/src/paraglide/messages/sharecomment_maxlength2.js +0 -30
  4206. package/src/paraglide/messages/sharecomment_reviewreserved2.js +0 -30
  4207. package/src/paraglide/messages/sharecomment_save1.js +0 -30
  4208. package/src/paraglide/messages/sharecomment_sendfailed2.js +0 -30
  4209. package/src/paraglide/messages/sharecomment_sent1.js +0 -30
  4210. package/src/paraglide/messages/sharecomment_title1.js +0 -30
  4211. package/src/paraglide/messages/sharecomment_updated1.js +0 -30
  4212. package/src/paraglide/messages/sharecomment_updatefailed2.js +0 -30
  4213. package/src/paraglide/messages/sharedirectory_noversions2.js +0 -30
  4214. package/src/paraglide/messages/sharedirectory_versions1.js +0 -30
  4215. package/src/paraglide/messages/sharedoc_nocontentplaceholder3.js +0 -30
  4216. package/src/paraglide/messages/sharedoc_nodoc2.js +0 -30
  4217. package/src/paraglide/messages/sharedoc_nopagedata3.js +0 -30
  4218. package/src/paraglide/messages/sharelayout_doc1.js +0 -30
  4219. package/src/paraglide/messages/sharelayout_prototype1.js +0 -30
  4220. package/src/paraglide/messages/sharenav_hideconnections2.js +0 -30
  4221. package/src/paraglide/messages/sharenav_preview1.js +0 -30
  4222. package/src/paraglide/messages/sharenav_showconnections2.js +0 -30
  4223. package/src/paraglide/messages/sharepanel_copied1.js +0 -30
  4224. package/src/paraglide/messages/sharepanel_copiedwithpassword3.js +0 -30
  4225. package/src/paraglide/messages/sharepanel_copydoclink3.js +0 -30
  4226. package/src/paraglide/messages/sharepanel_copyfailed2.js +0 -30
  4227. package/src/paraglide/messages/sharepanel_copypassword2.js +0 -30
  4228. package/src/paraglide/messages/sharepanel_copypasswordonshare4.js +0 -30
  4229. package/src/paraglide/messages/sharepanel_copysharelink3.js +0 -30
  4230. package/src/paraglide/messages/sharepanel_creating1.js +0 -30
  4231. package/src/paraglide/messages/sharepanel_deletefailed2.js +0 -30
  4232. package/src/paraglide/messages/sharepanel_deletesharelink3.js +0 -30
  4233. package/src/paraglide/messages/sharepanel_deselectall2.js +0 -30
  4234. package/src/paraglide/messages/sharepanel_disablepasswordfailed3.js +0 -30
  4235. package/src/paraglide/messages/sharepanel_disablesharefailed3.js +0 -30
  4236. package/src/paraglide/messages/sharepanel_enablepassword2.js +0 -30
  4237. package/src/paraglide/messages/sharepanel_enablepasswordfailed3.js +0 -30
  4238. package/src/paraglide/messages/sharepanel_enableshare2.js +0 -30
  4239. package/src/paraglide/messages/sharepanel_enablesharefailed3.js +0 -30
  4240. package/src/paraglide/messages/sharepanel_enablesingleshare3.js +0 -30
  4241. package/src/paraglide/messages/sharepanel_expiry1.js +0 -30
  4242. package/src/paraglide/messages/sharepanel_expiry301.js +0 -30
  4243. package/src/paraglide/messages/sharepanel_expiry71.js +0 -30
  4244. package/src/paraglide/messages/sharepanel_expiry901.js +0 -30
  4245. package/src/paraglide/messages/sharepanel_expiryupdated2.js +0 -30
  4246. package/src/paraglide/messages/sharepanel_generaterandompassword3.js +0 -30
  4247. package/src/paraglide/messages/sharepanel_noversions2.js +0 -30
  4248. package/src/paraglide/messages/sharepanel_operationfailed2.js +0 -30
  4249. package/src/paraglide/messages/sharepanel_passwordcopied2.js +0 -30
  4250. package/src/paraglide/messages/sharepanel_passworddisabled2.js +0 -30
  4251. package/src/paraglide/messages/sharepanel_passwordenabled2.js +0 -30
  4252. package/src/paraglide/messages/sharepanel_passwordgeneratefailed3.js +0 -30
  4253. package/src/paraglide/messages/sharepanel_passwordlabel2.js +0 -30
  4254. package/src/paraglide/messages/sharepanel_passwordreset2.js +0 -30
  4255. package/src/paraglide/messages/sharepanel_passwordupdated2.js +0 -30
  4256. package/src/paraglide/messages/sharepanel_recentlyupdated2.js +0 -30
  4257. package/src/paraglide/messages/sharepanel_resetpasswordfailed3.js +0 -30
  4258. package/src/paraglide/messages/sharepanel_restoresaved2.js +0 -30
  4259. package/src/paraglide/messages/sharepanel_saveselection2.js +0 -30
  4260. package/src/paraglide/messages/sharepanel_saveselectionfailed3.js +0 -30
  4261. package/src/paraglide/messages/sharepanel_saving1.js +0 -30
  4262. package/src/paraglide/messages/sharepanel_selectall2.js +0 -30
  4263. package/src/paraglide/messages/sharepanel_selectexpiry2.js +0 -30
  4264. package/src/paraglide/messages/sharepanel_sharedisabled2.js +0 -30
  4265. package/src/paraglide/messages/sharepanel_shareenabled2.js +0 -30
  4266. package/src/paraglide/messages/sharepanel_sharelink2.js +0 -30
  4267. package/src/paraglide/messages/sharepanel_singleshare2.js +0 -30
  4268. package/src/paraglide/messages/sharepanel_singlesharedeleted3.js +0 -30
  4269. package/src/paraglide/messages/sharepanel_singleshareenabled3.js +0 -30
  4270. package/src/paraglide/messages/sharepanel_singlesharefailed3.js +0 -30
  4271. package/src/paraglide/messages/sharepanel_singlesharehint3.js +0 -30
  4272. package/src/paraglide/messages/sharepanel_singlesharerecords3.js +0 -30
  4273. package/src/paraglide/messages/sharepanel_updateexpiryfailed3.js +0 -30
  4274. package/src/paraglide/messages/sharepanel_versionselection2.js +0 -30
  4275. package/src/paraglide/messages/sharepanel_versionselectionsaved3.js +0 -30
  4276. package/src/paraglide/messages/sharepassword_encryptedtitle2.js +0 -30
  4277. package/src/paraglide/messages/sharepassword_enterpassword2.js +0 -30
  4278. package/src/paraglide/messages/sharepassword_passwordplaceholder2.js +0 -30
  4279. package/src/paraglide/messages/sharepassword_verifying1.js +0 -30
  4280. package/src/paraglide/messages/sharepassword_viewshare2.js +0 -30
  4281. package/src/paraglide/messages/sharepassword_wrongpassword2.js +0 -30
  4282. package/src/paraglide/messages/sharepassword_wrongpasswordretry3.js +0 -30
  4283. package/src/paraglide/messages/shareprototype_emptycanvas2.js +0 -30
  4284. package/src/paraglide/messages/sidebar_gridview1.js +0 -30
  4285. package/src/paraglide/messages/sidebar_knowledge_pin.js +0 -29
  4286. package/src/paraglide/messages/sidebar_knowledge_unpin.js +0 -29
  4287. package/src/paraglide/messages/sidebar_listview1.js +0 -30
  4288. package/src/paraglide/messages/sidebar_nocomponents1.js +0 -30
  4289. package/src/paraglide/messages/sidebar_nomatch1.js +0 -30
  4290. package/src/paraglide/messages/sidebar_searchcomponents1.js +0 -30
  4291. package/src/paraglide/messages/sidebar_tabagent1.js +0 -30
  4292. package/src/paraglide/messages/sidebar_tablibrary1.js +0 -30
  4293. package/src/paraglide/messages/sidebar_taboutline1.js +0 -30
  4294. package/src/paraglide/messages/sidebar_tabpage1.js +0 -30
  4295. package/src/paraglide/messages/sidebar_workspace_unpin.js +0 -29
  4296. package/src/paraglide/messages/story_activity_ai.js +0 -29
  4297. package/src/paraglide/messages/story_activity_assignee_changed.js +0 -29
  4298. package/src/paraglide/messages/story_activity_attachment_added.js +0 -29
  4299. package/src/paraglide/messages/story_activity_attachment_removed.js +0 -29
  4300. package/src/paraglide/messages/story_activity_attachment_updated.js +0 -29
  4301. package/src/paraglide/messages/story_activity_changedfield1.js +0 -30
  4302. package/src/paraglide/messages/story_activity_changedstate1.js +0 -30
  4303. package/src/paraglide/messages/story_activity_child_added.js +0 -29
  4304. package/src/paraglide/messages/story_activity_collab_update.js +0 -29
  4305. package/src/paraglide/messages/story_activity_collapse.js +0 -29
  4306. package/src/paraglide/messages/story_activity_commented.js +0 -29
  4307. package/src/paraglide/messages/story_activity_created.js +0 -29
  4308. package/src/paraglide/messages/story_activity_dependency_added.js +0 -29
  4309. package/src/paraglide/messages/story_activity_dependency_removed.js +0 -29
  4310. package/src/paraglide/messages/story_activity_dependency_updated.js +0 -29
  4311. package/src/paraglide/messages/story_activity_description_changed.js +0 -29
  4312. package/src/paraglide/messages/story_activity_empty.js +0 -29
  4313. package/src/paraglide/messages/story_activity_expand.js +0 -29
  4314. package/src/paraglide/messages/story_activity_identifier_changed.js +0 -29
  4315. package/src/paraglide/messages/story_activity_iteration_changed.js +0 -29
  4316. package/src/paraglide/messages/story_activity_kb_linked.js +0 -29
  4317. package/src/paraglide/messages/story_activity_kb_unlinked.js +0 -29
  4318. package/src/paraglide/messages/story_activity_label_changed.js +0 -29
  4319. package/src/paraglide/messages/story_activity_link_added.js +0 -29
  4320. package/src/paraglide/messages/story_activity_link_removed.js +0 -29
  4321. package/src/paraglide/messages/story_activity_link_updated.js +0 -29
  4322. package/src/paraglide/messages/story_activity_merged.js +0 -29
  4323. package/src/paraglide/messages/story_activity_mergedtitle1.js +0 -30
  4324. package/src/paraglide/messages/story_activity_name_changed.js +0 -29
  4325. package/src/paraglide/messages/story_activity_parent_changed.js +0 -29
  4326. package/src/paraglide/messages/story_activity_parent_removed.js +0 -29
  4327. package/src/paraglide/messages/story_activity_prd_unlinked.js +0 -29
  4328. package/src/paraglide/messages/story_activity_priority_changed.js +0 -29
  4329. package/src/paraglide/messages/story_activity_project_transferred.js +0 -29
  4330. package/src/paraglide/messages/story_activity_startdate_changed1.js +0 -30
  4331. package/src/paraglide/messages/story_activity_state_changed.js +0 -29
  4332. package/src/paraglide/messages/story_activity_targetdate_changed1.js +0 -30
  4333. package/src/paraglide/messages/story_activity_updated.js +0 -29
  4334. package/src/paraglide/messages/story_activity_verb_added.js +0 -29
  4335. package/src/paraglide/messages/story_activity_verb_changed.js +0 -29
  4336. package/src/paraglide/messages/story_activitytab_activities1.js +0 -30
  4337. package/src/paraglide/messages/story_activitytab_all1.js +0 -30
  4338. package/src/paraglide/messages/story_activitytab_comments1.js +0 -30
  4339. package/src/paraglide/messages/story_activitytab_records1.js +0 -30
  4340. package/src/paraglide/messages/story_ai_itemcount1.js +0 -30
  4341. package/src/paraglide/messages/story_ai_selectall1.js +0 -30
  4342. package/src/paraglide/messages/story_associatedattachments_add1.js +0 -30
  4343. package/src/paraglide/messages/story_associatedattachments_confirmremoveattachment3.js +0 -30
  4344. package/src/paraglide/messages/story_associatedattachments_download1.js +0 -30
  4345. package/src/paraglide/messages/story_associatedattachments_edit1.js +0 -30
  4346. package/src/paraglide/messages/story_associatedattachments_exitfullscreen2.js +0 -30
  4347. package/src/paraglide/messages/story_associatedattachments_filter1.js +0 -30
  4348. package/src/paraglide/messages/story_associatedattachments_filterall2.js +0 -30
  4349. package/src/paraglide/messages/story_associatedattachments_filterbytype3.js +0 -30
  4350. package/src/paraglide/messages/story_associatedattachments_fullscreen1.js +0 -30
  4351. package/src/paraglide/messages/story_associatedattachments_gotodoc3.js +0 -30
  4352. package/src/paraglide/messages/story_associatedattachments_groupattachment2.js +0 -30
  4353. package/src/paraglide/messages/story_associatedattachments_groupkb2.js +0 -30
  4354. package/src/paraglide/messages/story_associatedattachments_grouplink2.js +0 -30
  4355. package/src/paraglide/messages/story_associatedattachments_list1.js +0 -30
  4356. package/src/paraglide/messages/story_associatedattachments_open1.js +0 -30
  4357. package/src/paraglide/messages/story_associatedattachments_preview1.js +0 -30
  4358. package/src/paraglide/messages/story_associatedattachments_remove1.js +0 -30
  4359. package/src/paraglide/messages/story_associatedattachments_removelink2.js +0 -30
  4360. package/src/paraglide/messages/story_associatedattachments_title1.js +0 -30
  4361. package/src/paraglide/messages/story_attachmentdialog_batchdescdisabled3.js +0 -30
  4362. package/src/paraglide/messages/story_attachmentdialog_button1.js +0 -30
  4363. package/src/paraglide/messages/story_attachmentdialog_cancel1.js +0 -30
  4364. package/src/paraglide/messages/story_attachmentdialog_confirmupload2.js +0 -30
  4365. package/src/paraglide/messages/story_attachmentdialog_continueupload2.js +0 -30
  4366. package/src/paraglide/messages/story_attachmentdialog_descoptional2.js +0 -30
  4367. package/src/paraglide/messages/story_attachmentdialog_descplaceholder2.js +0 -30
  4368. package/src/paraglide/messages/story_attachmentdialog_downloaddisabled2.js +0 -30
  4369. package/src/paraglide/messages/story_attachmentdialog_duplicatebadge2.js +0 -30
  4370. package/src/paraglide/messages/story_attachmentdialog_duplicatehint2.js +0 -30
  4371. package/src/paraglide/messages/story_attachmentdialog_edittitle2.js +0 -30
  4372. package/src/paraglide/messages/story_attachmentdialog_empty1.js +0 -30
  4373. package/src/paraglide/messages/story_attachmentdialog_hidetitle2.js +0 -30
  4374. package/src/paraglide/messages/story_attachmentdialog_removeconfirmdesc3.js +0 -30
  4375. package/src/paraglide/messages/story_attachmentdialog_removeconfirmtitle3.js +0 -30
  4376. package/src/paraglide/messages/story_attachmentdialog_removed1.js +0 -30
  4377. package/src/paraglide/messages/story_attachmentdialog_removefailed2.js +0 -30
  4378. package/src/paraglide/messages/story_attachmentdialog_removefile2.js +0 -30
  4379. package/src/paraglide/messages/story_attachmentdialog_sizelimit2.js +0 -30
  4380. package/src/paraglide/messages/story_attachmentdialog_title1.js +0 -30
  4381. package/src/paraglide/messages/story_attachmentdialog_toggletitle2.js +0 -30
  4382. package/src/paraglide/messages/story_attachmentdialog_upload1.js +0 -30
  4383. package/src/paraglide/messages/story_attachmentdialog_uploaded1.js +0 -30
  4384. package/src/paraglide/messages/story_attachmentdialog_uploadhint2.js +0 -30
  4385. package/src/paraglide/messages/story_attachmentdialog_uploading1.js +0 -30
  4386. package/src/paraglide/messages/story_attachments_add.js +0 -29
  4387. package/src/paraglide/messages/story_attachments_cancel.js +0 -29
  4388. package/src/paraglide/messages/story_attachments_clicktoselect2.js +0 -30
  4389. package/src/paraglide/messages/story_attachments_empty.js +0 -29
  4390. package/src/paraglide/messages/story_attachments_removed.js +0 -29
  4391. package/src/paraglide/messages/story_attachments_removefailed1.js +0 -30
  4392. package/src/paraglide/messages/story_attachments_selectfile1.js +0 -30
  4393. package/src/paraglide/messages/story_attachments_title.js +0 -29
  4394. package/src/paraglide/messages/story_attachments_upload.js +0 -29
  4395. package/src/paraglide/messages/story_attachments_uploaded.js +0 -29
  4396. package/src/paraglide/messages/story_attachments_uploadfailed1.js +0 -30
  4397. package/src/paraglide/messages/story_attachments_uploading.js +0 -29
  4398. package/src/paraglide/messages/story_attachments_uploadtitle1.js +0 -30
  4399. package/src/paraglide/messages/story_batchpreview_archivedesc2.js +0 -30
  4400. package/src/paraglide/messages/story_batchpreview_archivetitle2.js +0 -30
  4401. package/src/paraglide/messages/story_batchpreview_cancel1.js +0 -30
  4402. package/src/paraglide/messages/story_batchpreview_confirmarchive2.js +0 -30
  4403. package/src/paraglide/messages/story_batchpreview_confirmdelete2.js +0 -30
  4404. package/src/paraglide/messages/story_batchpreview_confirmdeletebtn3.js +0 -30
  4405. package/src/paraglide/messages/story_batchpreview_confirmhint2.js +0 -30
  4406. package/src/paraglide/messages/story_batchpreview_confirmplaceholder2.js +0 -30
  4407. package/src/paraglide/messages/story_batchpreview_copied1.js +0 -30
  4408. package/src/paraglide/messages/story_batchpreview_copyaria2.js +0 -30
  4409. package/src/paraglide/messages/story_batchpreview_copyhint2.js +0 -30
  4410. package/src/paraglide/messages/story_batchpreview_deletedesc2.js +0 -30
  4411. package/src/paraglide/messages/story_batchpreview_deletetitle2.js +0 -30
  4412. package/src/paraglide/messages/story_batchpreview_invalidconfirm2.js +0 -30
  4413. package/src/paraglide/messages/story_batchpreview_nomatch2.js +0 -30
  4414. package/src/paraglide/messages/story_batchpreview_nonearchivable2.js +0 -30
  4415. package/src/paraglide/messages/story_batchpreview_nostories2.js +0 -30
  4416. package/src/paraglide/messages/story_batchpreview_processing1.js +0 -30
  4417. package/src/paraglide/messages/story_batchpreview_searchplaceholder2.js +0 -30
  4418. package/src/paraglide/messages/story_batchpreview_select1.js +0 -30
  4419. package/src/paraglide/messages/story_batchpreview_selectall2.js +0 -30
  4420. package/src/paraglide/messages/story_batchpreview_selectedcount2.js +0 -30
  4421. package/src/paraglide/messages/story_batchtoolbar_archive1.js +0 -30
  4422. package/src/paraglide/messages/story_batchtoolbar_clear1.js +0 -30
  4423. package/src/paraglide/messages/story_batchtoolbar_delete1.js +0 -30
  4424. package/src/paraglide/messages/story_batchtoolbar_duedate2.js +0 -30
  4425. package/src/paraglide/messages/story_batchtoolbar_movedown2.js +0 -30
  4426. package/src/paraglide/messages/story_batchtoolbar_moveup2.js +0 -30
  4427. package/src/paraglide/messages/story_batchtoolbar_selected1.js +0 -30
  4428. package/src/paraglide/messages/story_batchtoolbar_startdate2.js +0 -30
  4429. package/src/paraglide/messages/story_batchtoolbar_transfer1.js +0 -30
  4430. package/src/paraglide/messages/story_calendar_createnew1.js +0 -30
  4431. package/src/paraglide/messages/story_calendar_dateupdated1.js +0 -30
  4432. package/src/paraglide/messages/story_calendar_dateupdatefailed2.js +0 -30
  4433. package/src/paraglide/messages/story_calendar_daystories1.js +0 -30
  4434. package/src/paraglide/messages/story_calendar_month.js +0 -29
  4435. package/src/paraglide/messages/story_calendar_monthtitle1.js +0 -30
  4436. package/src/paraglide/messages/story_calendar_more.js +0 -29
  4437. package/src/paraglide/messages/story_calendar_today.js +0 -29
  4438. package/src/paraglide/messages/story_calendar_unscheduled.js +0 -29
  4439. package/src/paraglide/messages/story_calendar_week.js +0 -29
  4440. package/src/paraglide/messages/story_calendar_weekdays_0.js +0 -29
  4441. package/src/paraglide/messages/story_calendar_weekdays_1.js +0 -29
  4442. package/src/paraglide/messages/story_calendar_weekdays_2.js +0 -29
  4443. package/src/paraglide/messages/story_calendar_weekdays_3.js +0 -29
  4444. package/src/paraglide/messages/story_calendar_weekdays_4.js +0 -29
  4445. package/src/paraglide/messages/story_calendar_weekdays_5.js +0 -29
  4446. package/src/paraglide/messages/story_calendar_weekdays_6.js +0 -29
  4447. package/src/paraglide/messages/story_categories_acceptance_label.js +0 -29
  4448. package/src/paraglide/messages/story_categories_acceptance_placeholder.js +0 -29
  4449. package/src/paraglide/messages/story_categories_acceptance_tooltip.js +0 -29
  4450. package/src/paraglide/messages/story_categories_bug_label.js +0 -29
  4451. package/src/paraglide/messages/story_categories_bug_placeholder.js +0 -29
  4452. package/src/paraglide/messages/story_categories_bug_tooltip.js +0 -29
  4453. package/src/paraglide/messages/story_categories_prd_label.js +0 -29
  4454. package/src/paraglide/messages/story_categories_prd_placeholder.js +0 -29
  4455. package/src/paraglide/messages/story_categories_prd_tooltip.js +0 -29
  4456. package/src/paraglide/messages/story_categories_retro_label.js +0 -29
  4457. package/src/paraglide/messages/story_categories_retro_placeholder.js +0 -29
  4458. package/src/paraglide/messages/story_categories_retro_tooltip.js +0 -29
  4459. package/src/paraglide/messages/story_categories_testcase_label1.js +0 -30
  4460. package/src/paraglide/messages/story_categories_testcase_placeholder1.js +0 -30
  4461. package/src/paraglide/messages/story_categories_testcase_tooltip1.js +0 -30
  4462. package/src/paraglide/messages/story_categories_ui_label.js +0 -29
  4463. package/src/paraglide/messages/story_categories_ui_placeholder.js +0 -29
  4464. package/src/paraglide/messages/story_categories_ui_tooltip.js +0 -29
  4465. package/src/paraglide/messages/story_children_addchild1.js +0 -30
  4466. package/src/paraglide/messages/story_children_archive.js +0 -29
  4467. package/src/paraglide/messages/story_children_archived.js +0 -29
  4468. package/src/paraglide/messages/story_children_archivefailed1.js +0 -30
  4469. package/src/paraglide/messages/story_children_archiveonlydone2.js +0 -30
  4470. package/src/paraglide/messages/story_children_bulkarchived1.js +0 -30
  4471. package/src/paraglide/messages/story_children_bulkarchivedskipped2.js +0 -30
  4472. package/src/paraglide/messages/story_children_bulkdeleted1.js +0 -30
  4473. package/src/paraglide/messages/story_children_bulkupdated1.js +0 -30
  4474. package/src/paraglide/messages/story_children_bulkupdatefailed2.js +0 -30
  4475. package/src/paraglide/messages/story_children_childstories1.js +0 -30
  4476. package/src/paraglide/messages/story_children_createchild1.js +0 -30
  4477. package/src/paraglide/messages/story_children_crossproject1.js +0 -30
  4478. package/src/paraglide/messages/story_children_delete.js +0 -29
  4479. package/src/paraglide/messages/story_children_deleted.js +0 -29
  4480. package/src/paraglide/messages/story_children_deletedescription1.js +0 -30
  4481. package/src/paraglide/messages/story_children_deletefailed1.js +0 -30
  4482. package/src/paraglide/messages/story_children_deletetitle1.js +0 -30
  4483. package/src/paraglide/messages/story_children_duedate1.js +0 -30
  4484. package/src/paraglide/messages/story_children_removechild1.js +0 -30
  4485. package/src/paraglide/messages/story_children_removechildfailed2.js +0 -30
  4486. package/src/paraglide/messages/story_children_removedchild1.js +0 -30
  4487. package/src/paraglide/messages/story_children_selectchild1.js +0 -30
  4488. package/src/paraglide/messages/story_children_selectstory1.js +0 -30
  4489. package/src/paraglide/messages/story_children_startdate1.js +0 -30
  4490. package/src/paraglide/messages/story_children_unarchive.js +0 -29
  4491. package/src/paraglide/messages/story_children_unarchived.js +0 -29
  4492. package/src/paraglide/messages/story_children_unarchivefailed1.js +0 -30
  4493. package/src/paraglide/messages/story_children_updatefailed1.js +0 -30
  4494. package/src/paraglide/messages/story_column_assignee.js +0 -29
  4495. package/src/paraglide/messages/story_column_attachments.js +0 -29
  4496. package/src/paraglide/messages/story_column_createdby1.js +0 -30
  4497. package/src/paraglide/messages/story_column_duedate1.js +0 -30
  4498. package/src/paraglide/messages/story_column_identifier.js +0 -29
  4499. package/src/paraglide/messages/story_column_labels.js +0 -29
  4500. package/src/paraglide/messages/story_column_links.js +0 -29
  4501. package/src/paraglide/messages/story_column_pages.js +0 -29
  4502. package/src/paraglide/messages/story_column_priority.js +0 -29
  4503. package/src/paraglide/messages/story_column_startdate1.js +0 -30
  4504. package/src/paraglide/messages/story_column_state.js +0 -29
  4505. package/src/paraglide/messages/story_column_title.js +0 -29
  4506. package/src/paraglide/messages/story_comment_cancel.js +0 -29
  4507. package/src/paraglide/messages/story_comment_collapsereplies1.js +0 -30
  4508. package/src/paraglide/messages/story_comment_confirmdelete1.js +0 -30
  4509. package/src/paraglide/messages/story_comment_delete.js +0 -29
  4510. package/src/paraglide/messages/story_comment_deletefailed1.js +0 -30
  4511. package/src/paraglide/messages/story_comment_edit.js +0 -29
  4512. package/src/paraglide/messages/story_comment_editfailed1.js +0 -30
  4513. package/src/paraglide/messages/story_comment_failed.js +0 -29
  4514. package/src/paraglide/messages/story_comment_markdownhint1.js +0 -30
  4515. package/src/paraglide/messages/story_comment_operationfailed1.js +0 -30
  4516. package/src/paraglide/messages/story_comment_placeholder.js +0 -29
  4517. package/src/paraglide/messages/story_comment_reply.js +0 -29
  4518. package/src/paraglide/messages/story_comment_retry.js +0 -29
  4519. package/src/paraglide/messages/story_comment_save.js +0 -29
  4520. package/src/paraglide/messages/story_comment_send.js +0 -29
  4521. package/src/paraglide/messages/story_comment_sending.js +0 -29
  4522. package/src/paraglide/messages/story_comment_viewreplies1.js +0 -30
  4523. package/src/paraglide/messages/story_create_adddescription1.js +0 -30
  4524. package/src/paraglide/messages/story_create_cancel.js +0 -29
  4525. package/src/paraglide/messages/story_create_continuous.js +0 -29
  4526. package/src/paraglide/messages/story_create_create.js +0 -29
  4527. package/src/paraglide/messages/story_create_creating.js +0 -29
  4528. package/src/paraglide/messages/story_create_duedate1.js +0 -30
  4529. package/src/paraglide/messages/story_create_failed.js +0 -29
  4530. package/src/paraglide/messages/story_create_requiretitle1.js +0 -30
  4531. package/src/paraglide/messages/story_create_shortcuts.js +0 -29
  4532. package/src/paraglide/messages/story_create_startdate1.js +0 -30
  4533. package/src/paraglide/messages/story_create_title.js +0 -29
  4534. package/src/paraglide/messages/story_dependency_add.js +0 -29
  4535. package/src/paraglide/messages/story_dependency_added.js +0 -29
  4536. package/src/paraglide/messages/story_dependency_addfailed1.js +0 -30
  4537. package/src/paraglide/messages/story_dependency_addpartialfailed2.js +0 -30
  4538. package/src/paraglide/messages/story_dependency_alreadyexists1.js +0 -30
  4539. package/src/paraglide/messages/story_dependency_bulkupdated1.js +0 -30
  4540. package/src/paraglide/messages/story_dependency_dependentstitle1.js +0 -30
  4541. package/src/paraglide/messages/story_dependency_dependsontitle2.js +0 -30
  4542. package/src/paraglide/messages/story_dependency_errors_cycle5.js +0 -30
  4543. package/src/paraglide/messages/story_dependency_errors_duplicated10.js +0 -30
  4544. package/src/paraglide/messages/story_dependency_errors_self4.js +0 -30
  4545. package/src/paraglide/messages/story_dependency_labels_blocked_by.js +0 -29
  4546. package/src/paraglide/messages/story_dependency_labels_blocking.js +0 -29
  4547. package/src/paraglide/messages/story_dependency_labels_finishes_after.js +0 -29
  4548. package/src/paraglide/messages/story_dependency_labels_finishes_before.js +0 -29
  4549. package/src/paraglide/messages/story_dependency_labels_starts_after.js +0 -29
  4550. package/src/paraglide/messages/story_dependency_labels_starts_before.js +0 -29
  4551. package/src/paraglide/messages/story_dependency_networkfailed1.js +0 -30
  4552. package/src/paraglide/messages/story_dependency_optiongroups_dependents1.js +0 -30
  4553. package/src/paraglide/messages/story_dependency_optiongroups_dependson2.js +0 -30
  4554. package/src/paraglide/messages/story_dependency_options_blocked_by.js +0 -29
  4555. package/src/paraglide/messages/story_dependency_options_blocking.js +0 -29
  4556. package/src/paraglide/messages/story_dependency_options_finishes_after.js +0 -29
  4557. package/src/paraglide/messages/story_dependency_options_finishes_before.js +0 -29
  4558. package/src/paraglide/messages/story_dependency_options_starts_after.js +0 -29
  4559. package/src/paraglide/messages/story_dependency_options_starts_before.js +0 -29
  4560. package/src/paraglide/messages/story_dependency_remove.js +0 -29
  4561. package/src/paraglide/messages/story_dependency_removed.js +0 -29
  4562. package/src/paraglide/messages/story_dependency_removefailed1.js +0 -30
  4563. package/src/paraglide/messages/story_dependency_tooltips_blocked_by.js +0 -29
  4564. package/src/paraglide/messages/story_dependency_tooltips_blocking.js +0 -29
  4565. package/src/paraglide/messages/story_dependency_tooltips_finishes_after.js +0 -29
  4566. package/src/paraglide/messages/story_dependency_tooltips_finishes_before.js +0 -29
  4567. package/src/paraglide/messages/story_dependency_tooltips_starts_after.js +0 -29
  4568. package/src/paraglide/messages/story_dependency_tooltips_starts_before.js +0 -29
  4569. package/src/paraglide/messages/story_dependency_typeplaceholder1.js +0 -30
  4570. package/src/paraglide/messages/story_dependency_updated.js +0 -29
  4571. package/src/paraglide/messages/story_dependency_updatefailed1.js +0 -30
  4572. package/src/paraglide/messages/story_detail_addreaction1.js +0 -30
  4573. package/src/paraglide/messages/story_detail_belongsto1.js +0 -30
  4574. package/src/paraglide/messages/story_detail_clicktocopy2.js +0 -30
  4575. package/src/paraglide/messages/story_detail_copied.js +0 -29
  4576. package/src/paraglide/messages/story_detail_copyfailed1.js +0 -30
  4577. package/src/paraglide/messages/story_detail_createdat1.js +0 -30
  4578. package/src/paraglide/messages/story_detail_createdby1.js +0 -30
  4579. package/src/paraglide/messages/story_detail_duedate1.js +0 -30
  4580. package/src/paraglide/messages/story_detail_operationfailed1.js +0 -30
  4581. package/src/paraglide/messages/story_detail_savefailed1.js +0 -30
  4582. package/src/paraglide/messages/story_detail_showless1.js +0 -30
  4583. package/src/paraglide/messages/story_detail_showmore1.js +0 -30
  4584. package/src/paraglide/messages/story_detail_startdate1.js +0 -30
  4585. package/src/paraglide/messages/story_detail_updatedat1.js +0 -30
  4586. package/src/paraglide/messages/story_display_asc.js +0 -29
  4587. package/src/paraglide/messages/story_display_desc.js +0 -29
  4588. package/src/paraglide/messages/story_display_displayoptions1.js +0 -30
  4589. package/src/paraglide/messages/story_display_extraoptions1.js +0 -30
  4590. package/src/paraglide/messages/story_display_group_assignee.js +0 -29
  4591. package/src/paraglide/messages/story_display_group_createdby1.js +0 -30
  4592. package/src/paraglide/messages/story_display_group_labels.js +0 -29
  4593. package/src/paraglide/messages/story_display_group_none.js +0 -29
  4594. package/src/paraglide/messages/story_display_group_priority.js +0 -29
  4595. package/src/paraglide/messages/story_display_group_project.js +0 -29
  4596. package/src/paraglide/messages/story_display_group_state.js +0 -29
  4597. package/src/paraglide/messages/story_display_order_created.js +0 -29
  4598. package/src/paraglide/messages/story_display_order_duedate1.js +0 -30
  4599. package/src/paraglide/messages/story_display_order_manual.js +0 -29
  4600. package/src/paraglide/messages/story_display_order_priority.js +0 -29
  4601. package/src/paraglide/messages/story_display_order_startdate1.js +0 -30
  4602. package/src/paraglide/messages/story_display_order_updated.js +0 -29
  4603. package/src/paraglide/messages/story_display_pagesize1.js +0 -30
  4604. package/src/paraglide/messages/story_display_property_assignee.js +0 -29
  4605. package/src/paraglide/messages/story_display_property_attachmentcount1.js +0 -30
  4606. package/src/paraglide/messages/story_display_property_duedate1.js +0 -30
  4607. package/src/paraglide/messages/story_display_property_id.js +0 -29
  4608. package/src/paraglide/messages/story_display_property_labels.js +0 -29
  4609. package/src/paraglide/messages/story_display_property_priority.js +0 -29
  4610. package/src/paraglide/messages/story_display_property_project.js +0 -29
  4611. package/src/paraglide/messages/story_display_property_startdate1.js +0 -30
  4612. package/src/paraglide/messages/story_display_property_state.js +0 -29
  4613. package/src/paraglide/messages/story_display_property_subcount1.js +0 -30
  4614. package/src/paraglide/messages/story_display_showemptygroups2.js +0 -30
  4615. package/src/paraglide/messages/story_display_showproperties1.js +0 -30
  4616. package/src/paraglide/messages/story_display_showsubitems2.js +0 -30
  4617. package/src/paraglide/messages/story_display_subgroup1.js +0 -30
  4618. package/src/paraglide/messages/story_display_viewgrouping1.js +0 -30
  4619. package/src/paraglide/messages/story_filter_addcondition1.js +0 -30
  4620. package/src/paraglide/messages/story_filter_alladded1.js +0 -30
  4621. package/src/paraglide/messages/story_filter_cancel.js +0 -29
  4622. package/src/paraglide/messages/story_filter_clear.js +0 -29
  4623. package/src/paraglide/messages/story_filter_field_assignee.js +0 -29
  4624. package/src/paraglide/messages/story_filter_field_createddate1.js +0 -30
  4625. package/src/paraglide/messages/story_filter_field_label.js +0 -29
  4626. package/src/paraglide/messages/story_filter_field_priority.js +0 -29
  4627. package/src/paraglide/messages/story_filter_field_state.js +0 -29
  4628. package/src/paraglide/messages/story_filter_field_targetdate1.js +0 -30
  4629. package/src/paraglide/messages/story_filter_field_title.js +0 -29
  4630. package/src/paraglide/messages/story_filter_label.js +0 -29
  4631. package/src/paraglide/messages/story_filter_multi.js +0 -29
  4632. package/src/paraglide/messages/story_filter_operator_after.js +0 -29
  4633. package/src/paraglide/messages/story_filter_operator_before.js +0 -29
  4634. package/src/paraglide/messages/story_filter_operator_between.js +0 -29
  4635. package/src/paraglide/messages/story_filter_operator_contains.js +0 -29
  4636. package/src/paraglide/messages/story_filter_operator_is.js +0 -29
  4637. package/src/paraglide/messages/story_filter_operator_is_any_of.js +0 -29
  4638. package/src/paraglide/messages/story_filter_operator_is_empty.js +0 -29
  4639. package/src/paraglide/messages/story_filter_operator_is_not.js +0 -29
  4640. package/src/paraglide/messages/story_filter_operator_is_not_any_of.js +0 -29
  4641. package/src/paraglide/messages/story_filter_operator_is_not_empty.js +0 -29
  4642. package/src/paraglide/messages/story_filter_operator_not_contains.js +0 -29
  4643. package/src/paraglide/messages/story_filter_operator_on_or_after.js +0 -29
  4644. package/src/paraglide/messages/story_filter_operator_on_or_before.js +0 -29
  4645. package/src/paraglide/messages/story_filter_saveasview2.js +0 -30
  4646. package/src/paraglide/messages/story_filter_selectdate1.js +0 -30
  4647. package/src/paraglide/messages/story_filter_selectrange1.js +0 -30
  4648. package/src/paraglide/messages/story_filter_single.js +0 -29
  4649. package/src/paraglide/messages/story_filter_toggleopen1.js +0 -30
  4650. package/src/paraglide/messages/story_filter_unassignedassignee1.js +0 -30
  4651. package/src/paraglide/messages/story_filters_archiveall1.js +0 -30
  4652. package/src/paraglide/messages/story_filters_clearall1.js +0 -30
  4653. package/src/paraglide/messages/story_filters_unassignedassignee1.js +0 -30
  4654. package/src/paraglide/messages/story_group_add.js +0 -29
  4655. package/src/paraglide/messages/story_group_addto1.js +0 -30
  4656. package/src/paraglide/messages/story_group_all.js +0 -29
  4657. package/src/paraglide/messages/story_group_assignee.js +0 -29
  4658. package/src/paraglide/messages/story_group_createdby1.js +0 -30
  4659. package/src/paraglide/messages/story_group_loading.js +0 -29
  4660. package/src/paraglide/messages/story_group_loadingdata1.js +0 -30
  4661. package/src/paraglide/messages/story_group_loadmore1.js +0 -30
  4662. package/src/paraglide/messages/story_group_no_labels.js +0 -29
  4663. package/src/paraglide/messages/story_group_no_project.js +0 -29
  4664. package/src/paraglide/messages/story_group_selectall1.js +0 -30
  4665. package/src/paraglide/messages/story_group_unassigned.js +0 -29
  4666. package/src/paraglide/messages/story_group_unknown_user.js +0 -29
  4667. package/src/paraglide/messages/story_hierarchy_addchild1.js +0 -30
  4668. package/src/paraglide/messages/story_hierarchy_addchildfailed2.js +0 -30
  4669. package/src/paraglide/messages/story_hierarchy_childadded1.js +0 -30
  4670. package/src/paraglide/messages/story_hierarchy_childremoved1.js +0 -30
  4671. package/src/paraglide/messages/story_hierarchy_children.js +0 -29
  4672. package/src/paraglide/messages/story_hierarchy_nochildren1.js +0 -30
  4673. package/src/paraglide/messages/story_hierarchy_noparent1.js +0 -30
  4674. package/src/paraglide/messages/story_hierarchy_parent.js +0 -29
  4675. package/src/paraglide/messages/story_hierarchy_removechildfailed2.js +0 -30
  4676. package/src/paraglide/messages/story_hierarchy_searchstory1.js +0 -30
  4677. package/src/paraglide/messages/story_hierarchy_selectchild1.js +0 -30
  4678. package/src/paraglide/messages/story_hierarchy_setparent1.js +0 -30
  4679. package/src/paraglide/messages/story_inline_addparent1.js +0 -30
  4680. package/src/paraglide/messages/story_inline_aiapplied1.js +0 -30
  4681. package/src/paraglide/messages/story_inline_aiapply1.js +0 -30
  4682. package/src/paraglide/messages/story_inline_aiempty1.js +0 -30
  4683. package/src/paraglide/messages/story_inline_aifailed1.js +0 -30
  4684. package/src/paraglide/messages/story_inline_aigenerate1.js +0 -30
  4685. package/src/paraglide/messages/story_inline_ailoading1.js +0 -30
  4686. package/src/paraglide/messages/story_inline_aineedname2.js +0 -30
  4687. package/src/paraglide/messages/story_inline_ainew1.js +0 -30
  4688. package/src/paraglide/messages/story_inline_airegenerate1.js +0 -30
  4689. package/src/paraglide/messages/story_inline_assignee.js +0 -29
  4690. package/src/paraglide/messages/story_inline_clear.js +0 -29
  4691. package/src/paraglide/messages/story_inline_dateshort1.js +0 -30
  4692. package/src/paraglide/messages/story_inline_labelcount1.js +0 -30
  4693. package/src/paraglide/messages/story_inline_labels.js +0 -29
  4694. package/src/paraglide/messages/story_inline_nolabels1.js +0 -30
  4695. package/src/paraglide/messages/story_inline_nomatchmembers2.js +0 -30
  4696. package/src/paraglide/messages/story_inline_notselected1.js +0 -30
  4697. package/src/paraglide/messages/story_inline_scopeproject1.js +0 -30
  4698. package/src/paraglide/messages/story_inline_scopeteam1.js +0 -30
  4699. package/src/paraglide/messages/story_inline_searchmembers1.js +0 -30
  4700. package/src/paraglide/messages/story_inline_searchprojectmembers2.js +0 -30
  4701. package/src/paraglide/messages/story_inline_searchteammembers2.js +0 -30
  4702. package/src/paraglide/messages/story_inline_selectparent1.js +0 -30
  4703. package/src/paraglide/messages/story_inline_switchtoproject2.js +0 -30
  4704. package/src/paraglide/messages/story_inline_switchtoteam2.js +0 -30
  4705. package/src/paraglide/messages/story_inline_titleplaceholder1.js +0 -30
  4706. package/src/paraglide/messages/story_inlinecreator_cancel1.js +0 -30
  4707. package/src/paraglide/messages/story_inlinecreator_create1.js +0 -30
  4708. package/src/paraglide/messages/story_inlinecreator_duedate2.js +0 -30
  4709. package/src/paraglide/messages/story_inlinecreator_placeholder1.js +0 -30
  4710. package/src/paraglide/messages/story_inlinecreator_startdate2.js +0 -30
  4711. package/src/paraglide/messages/story_kanban_empty.js +0 -29
  4712. package/src/paraglide/messages/story_kanban_groupupdated1.js +0 -30
  4713. package/src/paraglide/messages/story_kanban_movefailed1.js +0 -30
  4714. package/src/paraglide/messages/story_kanban_nostories1.js +0 -30
  4715. package/src/paraglide/messages/story_kanban_orderfailed1.js +0 -30
  4716. package/src/paraglide/messages/story_knowledge_doclinked1.js +0 -30
  4717. package/src/paraglide/messages/story_knowledge_doctitle1.js +0 -30
  4718. package/src/paraglide/messages/story_knowledge_docunlinked1.js +0 -30
  4719. package/src/paraglide/messages/story_knowledge_linkdoc1.js +0 -30
  4720. package/src/paraglide/messages/story_knowledge_linkdocfailed2.js +0 -30
  4721. package/src/paraglide/messages/story_knowledge_nodocs1.js +0 -30
  4722. package/src/paraglide/messages/story_knowledge_noresults1.js +0 -30
  4723. package/src/paraglide/messages/story_knowledge_searchdocfailed2.js +0 -30
  4724. package/src/paraglide/messages/story_knowledge_searchdocplaceholder2.js +0 -30
  4725. package/src/paraglide/messages/story_knowledge_searchdoctitle2.js +0 -30
  4726. package/src/paraglide/messages/story_knowledge_searchprdfailed2.js +0 -30
  4727. package/src/paraglide/messages/story_knowledge_unlinkdocfailed2.js +0 -30
  4728. package/src/paraglide/messages/story_knowledgedialog_allkbs2.js +0 -30
  4729. package/src/paraglide/messages/story_knowledgedialog_button1.js +0 -30
  4730. package/src/paraglide/messages/story_knowledgedialog_cancel1.js +0 -30
  4731. package/src/paraglide/messages/story_knowledgedialog_confirm1.js +0 -30
  4732. package/src/paraglide/messages/story_knowledgedialog_empty1.js +0 -30
  4733. package/src/paraglide/messages/story_knowledgedialog_generalkbs2.js +0 -30
  4734. package/src/paraglide/messages/story_knowledgedialog_groupbookmark2.js +0 -30
  4735. package/src/paraglide/messages/story_knowledgedialog_groupcompliance2.js +0 -30
  4736. package/src/paraglide/messages/story_knowledgedialog_groupdictionary2.js +0 -30
  4737. package/src/paraglide/messages/story_knowledgedialog_grouplegal2.js +0 -30
  4738. package/src/paraglide/messages/story_knowledgedialog_groupsummary2.js +0 -30
  4739. package/src/paraglide/messages/story_knowledgedialog_linked1.js +0 -30
  4740. package/src/paraglide/messages/story_knowledgedialog_linkfailed2.js +0 -30
  4741. package/src/paraglide/messages/story_knowledgedialog_partialfailed2.js +0 -30
  4742. package/src/paraglide/messages/story_knowledgedialog_searchplaceholder2.js +0 -30
  4743. package/src/paraglide/messages/story_knowledgedialog_selectall2.js +0 -30
  4744. package/src/paraglide/messages/story_knowledgedialog_selectedcount2.js +0 -30
  4745. package/src/paraglide/messages/story_knowledgedialog_title1.js +0 -30
  4746. package/src/paraglide/messages/story_knowledgedialog_userkbs2.js +0 -30
  4747. package/src/paraglide/messages/story_linkdialog_add1.js +0 -30
  4748. package/src/paraglide/messages/story_linkdialog_added1.js +0 -30
  4749. package/src/paraglide/messages/story_linkdialog_addtitle2.js +0 -30
  4750. package/src/paraglide/messages/story_linkdialog_button1.js +0 -30
  4751. package/src/paraglide/messages/story_linkdialog_cancel1.js +0 -30
  4752. package/src/paraglide/messages/story_linkdialog_descoptional2.js +0 -30
  4753. package/src/paraglide/messages/story_linkdialog_descplaceholder2.js +0 -30
  4754. package/src/paraglide/messages/story_linkdialog_edittitle2.js +0 -30
  4755. package/src/paraglide/messages/story_linkdialog_empty1.js +0 -30
  4756. package/src/paraglide/messages/story_linkdialog_listtitle2.js +0 -30
  4757. package/src/paraglide/messages/story_linkdialog_removed1.js +0 -30
  4758. package/src/paraglide/messages/story_linkdialog_removefailed2.js +0 -30
  4759. package/src/paraglide/messages/story_linkdialog_save1.js +0 -30
  4760. package/src/paraglide/messages/story_linkdialog_savefailed2.js +0 -30
  4761. package/src/paraglide/messages/story_linkdialog_title1.js +0 -30
  4762. package/src/paraglide/messages/story_linkdialog_titleoptional2.js +0 -30
  4763. package/src/paraglide/messages/story_linkdialog_titleplaceholder2.js +0 -30
  4764. package/src/paraglide/messages/story_linkdialog_updated1.js +0 -30
  4765. package/src/paraglide/messages/story_linkdialog_url1.js +0 -30
  4766. package/src/paraglide/messages/story_linkdialog_urlplaceholder2.js +0 -30
  4767. package/src/paraglide/messages/story_links_add.js +0 -29
  4768. package/src/paraglide/messages/story_links_added.js +0 -29
  4769. package/src/paraglide/messages/story_links_addtitle1.js +0 -30
  4770. package/src/paraglide/messages/story_links_cancel.js +0 -29
  4771. package/src/paraglide/messages/story_links_descoptional1.js +0 -30
  4772. package/src/paraglide/messages/story_links_descplaceholder1.js +0 -30
  4773. package/src/paraglide/messages/story_links_edittitle1.js +0 -30
  4774. package/src/paraglide/messages/story_links_empty.js +0 -29
  4775. package/src/paraglide/messages/story_links_removed.js +0 -29
  4776. package/src/paraglide/messages/story_links_removefailed1.js +0 -30
  4777. package/src/paraglide/messages/story_links_savefailed1.js +0 -30
  4778. package/src/paraglide/messages/story_links_title.js +0 -29
  4779. package/src/paraglide/messages/story_links_titleoptional1.js +0 -30
  4780. package/src/paraglide/messages/story_links_titleplaceholder1.js +0 -30
  4781. package/src/paraglide/messages/story_links_update.js +0 -29
  4782. package/src/paraglide/messages/story_links_updated.js +0 -29
  4783. package/src/paraglide/messages/story_list_archivefailed1.js +0 -30
  4784. package/src/paraglide/messages/story_list_bulkarchived1.js +0 -30
  4785. package/src/paraglide/messages/story_list_bulkarchivedskipped2.js +0 -30
  4786. package/src/paraglide/messages/story_list_bulkdeleted1.js +0 -30
  4787. package/src/paraglide/messages/story_list_bulkupdated1.js +0 -30
  4788. package/src/paraglide/messages/story_list_bulkupdatefailed2.js +0 -30
  4789. package/src/paraglide/messages/story_list_createfailed1.js +0 -30
  4790. package/src/paraglide/messages/story_list_deletefailed1.js +0 -30
  4791. package/src/paraglide/messages/story_list_moveddown1.js +0 -30
  4792. package/src/paraglide/messages/story_list_movedup1.js +0 -30
  4793. package/src/paraglide/messages/story_list_movefailed1.js +0 -30
  4794. package/src/paraglide/messages/story_listview_archivealldescription3.js +0 -30
  4795. package/src/paraglide/messages/story_listview_archivealltitle3.js +0 -30
  4796. package/src/paraglide/messages/story_listview_archivedone2.js +0 -30
  4797. package/src/paraglide/messages/story_listview_archivedonewithfailures4.js +0 -30
  4798. package/src/paraglide/messages/story_listview_archivefailed2.js +0 -30
  4799. package/src/paraglide/messages/story_listview_archiving1.js +0 -30
  4800. package/src/paraglide/messages/story_listview_confirmarchive2.js +0 -30
  4801. package/src/paraglide/messages/story_listview_noarchiveable2.js +0 -30
  4802. package/src/paraglide/messages/story_loadedall1.js +0 -30
  4803. package/src/paraglide/messages/story_panel_archive.js +0 -29
  4804. package/src/paraglide/messages/story_panel_archived.js +0 -29
  4805. package/src/paraglide/messages/story_panel_archivefailed1.js +0 -30
  4806. package/src/paraglide/messages/story_panel_back.js +0 -29
  4807. package/src/paraglide/messages/story_panel_close.js +0 -29
  4808. package/src/paraglide/messages/story_panel_collapse.js +0 -29
  4809. package/src/paraglide/messages/story_panel_copyfailed1.js +0 -30
  4810. package/src/paraglide/messages/story_panel_copylink1.js +0 -30
  4811. package/src/paraglide/messages/story_panel_delete.js +0 -29
  4812. package/src/paraglide/messages/story_panel_deleted.js +0 -29
  4813. package/src/paraglide/messages/story_panel_deletedescription1.js +0 -30
  4814. package/src/paraglide/messages/story_panel_deletetitle1.js +0 -30
  4815. package/src/paraglide/messages/story_panel_fullscreen.js +0 -29
  4816. package/src/paraglide/messages/story_panel_linkcopied1.js +0 -30
  4817. package/src/paraglide/messages/story_panel_mode_fullscreen1.js +0 -30
  4818. package/src/paraglide/messages/story_panel_mode_modal.js +0 -29
  4819. package/src/paraglide/messages/story_panel_mode_sidepeek1.js +0 -30
  4820. package/src/paraglide/messages/story_panel_more.js +0 -29
  4821. package/src/paraglide/messages/story_panel_nextstory1.js +0 -30
  4822. package/src/paraglide/messages/story_panel_previousstory1.js +0 -30
  4823. package/src/paraglide/messages/story_panel_switchlayout1.js +0 -30
  4824. package/src/paraglide/messages/story_peek_childstory1.js +0 -30
  4825. package/src/paraglide/messages/story_peek_currentstory1.js +0 -30
  4826. package/src/paraglide/messages/story_peek_dependentstory1.js +0 -30
  4827. package/src/paraglide/messages/story_peek_loadfailed1.js +0 -30
  4828. package/src/paraglide/messages/story_peek_parentstory1.js +0 -30
  4829. package/src/paraglide/messages/story_priority_high.js +0 -29
  4830. package/src/paraglide/messages/story_priority_low.js +0 -29
  4831. package/src/paraglide/messages/story_priority_medium.js +0 -29
  4832. package/src/paraglide/messages/story_priority_none.js +0 -29
  4833. package/src/paraglide/messages/story_priority_urgent.js +0 -29
  4834. package/src/paraglide/messages/story_properties_basic.js +0 -29
  4835. package/src/paraglide/messages/story_properties_iteration.js +0 -29
  4836. package/src/paraglide/messages/story_properties_labels.js +0 -29
  4837. package/src/paraglide/messages/story_properties_parent.js +0 -29
  4838. package/src/paraglide/messages/story_properties_title.js +0 -29
  4839. package/src/paraglide/messages/story_reaction_add.js +0 -29
  4840. package/src/paraglide/messages/story_relation_none.js +0 -29
  4841. package/src/paraglide/messages/story_relations_adddependency1.js +0 -30
  4842. package/src/paraglide/messages/story_relations_attachment.js +0 -29
  4843. package/src/paraglide/messages/story_relations_dependency.js +0 -29
  4844. package/src/paraglide/messages/story_relations_dependencytitle1.js +0 -30
  4845. package/src/paraglide/messages/story_relations_itemcount1.js +0 -30
  4846. package/src/paraglide/messages/story_relations_knowledge.js +0 -29
  4847. package/src/paraglide/messages/story_relations_knowledgetitle1.js +0 -30
  4848. package/src/paraglide/messages/story_relations_links.js +0 -29
  4849. package/src/paraglide/messages/story_relations_linkstitle1.js +0 -30
  4850. package/src/paraglide/messages/story_relations_uploadattachment1.js +0 -30
  4851. package/src/paraglide/messages/story_row_duedate1.js +0 -30
  4852. package/src/paraglide/messages/story_row_startdate1.js +0 -30
  4853. package/src/paraglide/messages/story_row_updatefailed1.js +0 -30
  4854. package/src/paraglide/messages/story_search_noresults1.js +0 -30
  4855. package/src/paraglide/messages/story_search_searchfailed1.js +0 -30
  4856. package/src/paraglide/messages/story_search_searching.js +0 -29
  4857. package/src/paraglide/messages/story_search_searchstory1.js +0 -30
  4858. package/src/paraglide/messages/story_select_allprojects1.js +0 -30
  4859. package/src/paraglide/messages/story_select_cancel.js +0 -29
  4860. package/src/paraglide/messages/story_select_confirm.js +0 -29
  4861. package/src/paraglide/messages/story_select_confirmwithcount2.js +0 -30
  4862. package/src/paraglide/messages/story_select_defaulttitle1.js +0 -30
  4863. package/src/paraglide/messages/story_select_loading.js +0 -29
  4864. package/src/paraglide/messages/story_select_loadlistfailed2.js +0 -30
  4865. package/src/paraglide/messages/story_select_loadmorefailed2.js +0 -30
  4866. package/src/paraglide/messages/story_select_noavailable1.js +0 -30
  4867. package/src/paraglide/messages/story_select_nomatchcurrent2.js +0 -30
  4868. package/src/paraglide/messages/story_select_pleaseselect1.js +0 -30
  4869. package/src/paraglide/messages/story_select_priority.js +0 -29
  4870. package/src/paraglide/messages/story_select_selected.js +0 -29
  4871. package/src/paraglide/messages/story_select_selectedcount1.js +0 -30
  4872. package/src/paraglide/messages/story_select_setfailed1.js +0 -30
  4873. package/src/paraglide/messages/story_select_setsuccess1.js +0 -30
  4874. package/src/paraglide/messages/story_select_state.js +0 -29
  4875. package/src/paraglide/messages/story_state_backlog.js +0 -29
  4876. package/src/paraglide/messages/story_state_cancelled.js +0 -29
  4877. package/src/paraglide/messages/story_state_done.js +0 -29
  4878. package/src/paraglide/messages/story_state_in_progress.js +0 -29
  4879. package/src/paraglide/messages/story_state_todo.js +0 -29
  4880. package/src/paraglide/messages/story_storyai_actionregistry_acceptance_hint2.js +0 -30
  4881. package/src/paraglide/messages/story_storyai_actionregistry_acceptance_label2.js +0 -30
  4882. package/src/paraglide/messages/story_storyai_actionregistry_code_hint2.js +0 -30
  4883. package/src/paraglide/messages/story_storyai_actionregistry_code_label2.js +0 -30
  4884. package/src/paraglide/messages/story_storyai_actionregistry_expand_hint2.js +0 -30
  4885. package/src/paraglide/messages/story_storyai_actionregistry_expand_label2.js +0 -30
  4886. package/src/paraglide/messages/story_storyai_actionregistry_generate_hint2.js +0 -30
  4887. package/src/paraglide/messages/story_storyai_actionregistry_generate_label2.js +0 -30
  4888. package/src/paraglide/messages/story_storyai_actionregistry_polish_hint2.js +0 -30
  4889. package/src/paraglide/messages/story_storyai_actionregistry_polish_label2.js +0 -30
  4890. package/src/paraglide/messages/story_storyai_actionregistry_prototype_hint2.js +0 -30
  4891. package/src/paraglide/messages/story_storyai_actionregistry_prototype_label2.js +0 -30
  4892. package/src/paraglide/messages/story_storyai_actionregistry_split_hint2.js +0 -30
  4893. package/src/paraglide/messages/story_storyai_actionregistry_split_label2.js +0 -30
  4894. package/src/paraglide/messages/story_storyai_actionregistry_testcase_hint3.js +0 -30
  4895. package/src/paraglide/messages/story_storyai_actionregistry_testcase_label3.js +0 -30
  4896. package/src/paraglide/messages/story_storyai_actionregistry_ui_hint2.js +0 -30
  4897. package/src/paraglide/messages/story_storyai_actionregistry_ui_label2.js +0 -30
  4898. package/src/paraglide/messages/story_storyai_more_nomodels2.js +0 -30
  4899. package/src/paraglide/messages/story_storyai_more_selectmodel2.js +0 -30
  4900. package/src/paraglide/messages/story_storyai_more_title1.js +0 -30
  4901. package/src/paraglide/messages/story_storyai_panel_aigenerate2.js +0 -30
  4902. package/src/paraglide/messages/story_storyai_panel_ainotconfigured3.js +0 -30
  4903. package/src/paraglide/messages/story_storyai_panel_airecognize2.js +0 -30
  4904. package/src/paraglide/messages/story_storyai_panel_aisplit2.js +0 -30
  4905. package/src/paraglide/messages/story_storyai_panel_childlabel2.js +0 -30
  4906. package/src/paraglide/messages/story_storyai_panel_create1.js +0 -30
  4907. package/src/paraglide/messages/story_storyai_panel_createdsuccess2.js +0 -30
  4908. package/src/paraglide/messages/story_storyai_panel_createfailed2.js +0 -30
  4909. package/src/paraglide/messages/story_storyai_panel_createtab2.js +0 -30
  4910. package/src/paraglide/messages/story_storyai_panel_emptynames2.js +0 -30
  4911. package/src/paraglide/messages/story_storyai_panel_generating1.js +0 -30
  4912. package/src/paraglide/messages/story_storyai_panel_generationfailed2.js +0 -30
  4913. package/src/paraglide/messages/story_storyai_panel_gotosettings3.js +0 -30
  4914. package/src/paraglide/messages/story_storyai_panel_importtab2.js +0 -30
  4915. package/src/paraglide/messages/story_storyai_panel_independentlabel2.js +0 -30
  4916. package/src/paraglide/messages/story_storyai_panel_inputplaceholder2.js +0 -30
  4917. package/src/paraglide/messages/story_storyai_panel_itemcount2.js +0 -30
  4918. package/src/paraglide/messages/story_storyai_panel_needcontent2.js +0 -30
  4919. package/src/paraglide/messages/story_storyai_panel_needparentstory3.js +0 -30
  4920. package/src/paraglide/messages/story_storyai_panel_novalidresult3.js +0 -30
  4921. package/src/paraglide/messages/story_storyai_panel_parentlabel2.js +0 -30
  4922. package/src/paraglide/messages/story_storyai_panel_pasteplaceholder2.js +0 -36
  4923. package/src/paraglide/messages/story_storyai_panel_projectlabel2.js +0 -30
  4924. package/src/paraglide/messages/story_storyai_panel_recognizing1.js +0 -30
  4925. package/src/paraglide/messages/story_storyai_panel_searchparent2.js +0 -30
  4926. package/src/paraglide/messages/story_storyai_panel_selectedlabel2.js +0 -30
  4927. package/src/paraglide/messages/story_storyai_panel_selectparent2.js +0 -30
  4928. package/src/paraglide/messages/story_storyai_panel_splitplaceholder2.js +0 -30
  4929. package/src/paraglide/messages/story_storyai_panel_splittab2.js +0 -30
  4930. package/src/paraglide/messages/story_storyai_panel_splitting1.js +0 -30
  4931. package/src/paraglide/messages/story_storyai_panel_stop1.js +0 -30
  4932. package/src/paraglide/messages/story_storyai_panel_streaming1.js +0 -30
  4933. package/src/paraglide/messages/story_storyai_prototype_componentlib2.js +0 -30
  4934. package/src/paraglide/messages/story_storyai_prototype_copied1.js +0 -30
  4935. package/src/paraglide/messages/story_storyai_prototype_description1.js +0 -30
  4936. package/src/paraglide/messages/story_storyai_prototype_example1.js +0 -30
  4937. package/src/paraglide/messages/story_storyai_prototype_generate1.js +0 -30
  4938. package/src/paraglide/messages/story_storyai_prototype_generating1.js +0 -30
  4939. package/src/paraglide/messages/story_storyai_prototype_generationfailed2.js +0 -30
  4940. package/src/paraglide/messages/story_storyai_prototype_inputplaceholder2.js +0 -30
  4941. package/src/paraglide/messages/story_storyai_prototype_title1.js +0 -30
  4942. package/src/paraglide/messages/story_storyai_split_aschildbadge3.js +0 -30
  4943. package/src/paraglide/messages/story_storyai_split_aschildtitle3.js +0 -30
  4944. package/src/paraglide/messages/story_storyai_split_asindependentdesc3.js +0 -30
  4945. package/src/paraglide/messages/story_storyai_split_asindependenttitle3.js +0 -30
  4946. package/src/paraglide/messages/story_storyai_split_clicktosplit3.js +0 -30
  4947. package/src/paraglide/messages/story_storyai_split_confirmcreate2.js +0 -30
  4948. package/src/paraglide/messages/story_storyai_split_createdsuccess2.js +0 -30
  4949. package/src/paraglide/messages/story_storyai_split_createfailed2.js +0 -30
  4950. package/src/paraglide/messages/story_storyai_split_deselectall2.js +0 -30
  4951. package/src/paraglide/messages/story_storyai_split_extrapromptplaceholder3.js +0 -30
  4952. package/src/paraglide/messages/story_storyai_split_extrapromptprefix3.js +0 -30
  4953. package/src/paraglide/messages/story_storyai_split_failuresdesc2.js +0 -30
  4954. package/src/paraglide/messages/story_storyai_split_generationfailed2.js +0 -30
  4955. package/src/paraglide/messages/story_storyai_split_novalidresult3.js +0 -30
  4956. package/src/paraglide/messages/story_storyai_split_parentlabel2.js +0 -30
  4957. package/src/paraglide/messages/story_storyai_split_redo1.js +0 -30
  4958. package/src/paraglide/messages/story_storyai_split_selectall2.js +0 -30
  4959. package/src/paraglide/messages/story_storyai_split_selectatleastone4.js +0 -30
  4960. package/src/paraglide/messages/story_storyai_split_split1.js +0 -30
  4961. package/src/paraglide/messages/story_storyai_split_splittingmessage2.js +0 -30
  4962. package/src/paraglide/messages/story_storyai_split_stop1.js +0 -30
  4963. package/src/paraglide/messages/story_storyai_split_title1.js +0 -30
  4964. package/src/paraglide/messages/story_storyai_split_totalprefix2.js +0 -30
  4965. package/src/paraglide/messages/story_storyai_split_totalsuffix2.js +0 -30
  4966. package/src/paraglide/messages/story_storyai_streamtext_descriptiontoolong4.js +0 -30
  4967. package/src/paraglide/messages/story_storyai_streamtext_generationfailed3.js +0 -30
  4968. package/src/paraglide/messages/story_storyai_toolbar_currentstory2.js +0 -30
  4969. package/src/paraglide/messages/story_storyai_toolbar_discard1.js +0 -30
  4970. package/src/paraglide/messages/story_storyai_toolbar_model1.js +0 -30
  4971. package/src/paraglide/messages/story_storyai_toolbar_nomodels2.js +0 -30
  4972. package/src/paraglide/messages/story_storyai_toolbar_replace1.js +0 -30
  4973. package/src/paraglide/messages/story_storyai_toolbar_stop1.js +0 -30
  4974. package/src/paraglide/messages/story_storyai_toolbar_underdevelopment2.js +0 -30
  4975. package/src/paraglide/messages/story_table_empty.js +0 -29
  4976. package/src/paraglide/messages/story_time_daysago1.js +0 -30
  4977. package/src/paraglide/messages/story_time_hoursago1.js +0 -30
  4978. package/src/paraglide/messages/story_time_justnow1.js +0 -30
  4979. package/src/paraglide/messages/story_time_minutesago1.js +0 -30
  4980. package/src/paraglide/messages/story_timeline_dateupdated1.js +0 -30
  4981. package/src/paraglide/messages/story_timeline_dateupdatefailed2.js +0 -30
  4982. package/src/paraglide/messages/story_timeline_noscheduled1.js +0 -30
  4983. package/src/paraglide/messages/story_toolbar_addstory1.js +0 -30
  4984. package/src/paraglide/messages/story_toolbar_allprojects1.js +0 -30
  4985. package/src/paraglide/messages/story_toolbar_archived.js +0 -29
  4986. package/src/paraglide/messages/story_toolbar_collect.js +0 -29
  4987. package/src/paraglide/messages/story_toolbar_createproject1.js +0 -30
  4988. package/src/paraglide/messages/story_toolbar_export.js +0 -29
  4989. package/src/paraglide/messages/story_toolbar_import.js +0 -29
  4990. package/src/paraglide/messages/story_toolbar_project.js +0 -29
  4991. package/src/paraglide/messages/story_toolbar_searchplaceholder1.js +0 -30
  4992. package/src/paraglide/messages/story_toolbar_total.js +0 -29
  4993. package/src/paraglide/messages/story_transfer_aschild1.js +0 -30
  4994. package/src/paraglide/messages/story_transfer_aschilddone2.js +0 -30
  4995. package/src/paraglide/messages/story_transfer_aschildofproject3.js +0 -30
  4996. package/src/paraglide/messages/story_transfer_confirm.js +0 -29
  4997. package/src/paraglide/messages/story_transfer_donewithfailures2.js +0 -30
  4998. package/src/paraglide/messages/story_transfer_failed.js +0 -29
  4999. package/src/paraglide/messages/story_transfer_filteredtip1.js +0 -30
  5000. package/src/paraglide/messages/story_transfer_noprojects1.js +0 -30
  5001. package/src/paraglide/messages/story_transfer_toproject1.js +0 -30
  5002. package/src/paraglide/messages/story_transfer_toprojectcount2.js +0 -30
  5003. package/src/paraglide/messages/story_transfer_transfer.js +0 -29
  5004. package/src/paraglide/messages/story_transfer_transfercount1.js +0 -30
  5005. package/src/paraglide/messages/story_transfer_transferred.js +0 -29
  5006. package/src/paraglide/messages/story_transfer_transferredtoproject2.js +0 -30
  5007. package/src/paraglide/messages/story_transfer_transferring.js +0 -29
  5008. package/src/paraglide/messages/story_view_allprojects1.js +0 -30
  5009. package/src/paraglide/messages/story_view_cancel.js +0 -29
  5010. package/src/paraglide/messages/story_view_common.js +0 -29
  5011. package/src/paraglide/messages/story_view_create.js +0 -29
  5012. package/src/paraglide/messages/story_view_createnew1.js +0 -30
  5013. package/src/paraglide/messages/story_view_createview1.js +0 -30
  5014. package/src/paraglide/messages/story_view_default.js +0 -29
  5015. package/src/paraglide/messages/story_view_delete.js +0 -29
  5016. package/src/paraglide/messages/story_view_deleteconfirm1.js +0 -30
  5017. package/src/paraglide/messages/story_view_deleteconfirmmsg2.js +0 -30
  5018. package/src/paraglide/messages/story_view_deletetitle1.js +0 -30
  5019. package/src/paraglide/messages/story_view_descplaceholder1.js +0 -30
  5020. package/src/paraglide/messages/story_view_edit.js +0 -29
  5021. package/src/paraglide/messages/story_view_editview1.js +0 -30
  5022. package/src/paraglide/messages/story_view_filterconditions1.js +0 -30
  5023. package/src/paraglide/messages/story_view_icon_bookmark.js +0 -29
  5024. package/src/paraglide/messages/story_view_icon_branch.js +0 -29
  5025. package/src/paraglide/messages/story_view_icon_calendar.js +0 -29
  5026. package/src/paraglide/messages/story_view_icon_flag.js +0 -29
  5027. package/src/paraglide/messages/story_view_icon_grid.js +0 -29
  5028. package/src/paraglide/messages/story_view_icon_inbox.js +0 -29
  5029. package/src/paraglide/messages/story_view_icon_kanban.js +0 -29
  5030. package/src/paraglide/messages/story_view_icon_list.js +0 -29
  5031. package/src/paraglide/messages/story_view_icon_range.js +0 -29
  5032. package/src/paraglide/messages/story_view_icon_star.js +0 -29
  5033. package/src/paraglide/messages/story_view_icon_tag.js +0 -29
  5034. package/src/paraglide/messages/story_view_icon_user.js +0 -29
  5035. package/src/paraglide/messages/story_view_layout_board.js +0 -29
  5036. package/src/paraglide/messages/story_view_layout_calendar.js +0 -29
  5037. package/src/paraglide/messages/story_view_layout_list.js +0 -29
  5038. package/src/paraglide/messages/story_view_layout_table.js +0 -29
  5039. package/src/paraglide/messages/story_view_layout_timeline.js +0 -29
  5040. package/src/paraglide/messages/story_view_nameplaceholder1.js +0 -30
  5041. package/src/paraglide/messages/story_view_noviews1.js +0 -30
  5042. package/src/paraglide/messages/story_view_projectviews1.js +0 -30
  5043. package/src/paraglide/messages/story_view_save.js +0 -29
  5044. package/src/paraglide/messages/story_view_savefailed1.js +0 -30
  5045. package/src/paraglide/messages/story_view_saving.js +0 -29
  5046. package/src/paraglide/messages/story_view_title.js +0 -29
  5047. package/src/paraglide/messages/story_view_update.js +0 -29
  5048. package/src/paraglide/messages/stylefield_default1.js +0 -30
  5049. package/src/paraglide/messages/stylefield_height1.js +0 -30
  5050. package/src/paraglide/messages/stylefield_selectcolor2.js +0 -30
  5051. package/src/paraglide/messages/stylefield_width1.js +0 -30
  5052. package/src/paraglide/messages/summary_months.js +0 -29
  5053. package/src/paraglide/messages/taginput_add1.js +0 -30
  5054. package/src/paraglide/messages/taginput_placeholder1.js +0 -30
  5055. package/src/paraglide/messages/tags_cancel.js +0 -29
  5056. package/src/paraglide/messages/tags_colorlabel1.js +0 -30
  5057. package/src/paraglide/messages/tags_colorpicker_selectcolor2.js +0 -30
  5058. package/src/paraglide/messages/tags_confirmdeletedesc2.js +0 -30
  5059. package/src/paraglide/messages/tags_confirmdeletetitle2.js +0 -30
  5060. package/src/paraglide/messages/tags_created.js +0 -29
  5061. package/src/paraglide/messages/tags_createtag1.js +0 -30
  5062. package/src/paraglide/messages/tags_delete.js +0 -29
  5063. package/src/paraglide/messages/tags_deleted.js +0 -29
  5064. package/src/paraglide/messages/tags_deletefailed1.js +0 -30
  5065. package/src/paraglide/messages/tags_description.js +0 -29
  5066. package/src/paraglide/messages/tags_detail_description.js +0 -29
  5067. package/src/paraglide/messages/tags_detail_title.js +0 -29
  5068. package/src/paraglide/messages/tags_edit.js +0 -29
  5069. package/src/paraglide/messages/tags_edittag1.js +0 -30
  5070. package/src/paraglide/messages/tags_emptydesc1.js +0 -30
  5071. package/src/paraglide/messages/tags_emptytitle1.js +0 -30
  5072. package/src/paraglide/messages/tags_nameconflict1.js +0 -30
  5073. package/src/paraglide/messages/tags_namelabel1.js +0 -30
  5074. package/src/paraglide/messages/tags_namerequired1.js +0 -30
  5075. package/src/paraglide/messages/tags_removetag1.js +0 -30
  5076. package/src/paraglide/messages/tags_save.js +0 -29
  5077. package/src/paraglide/messages/tags_savefailed1.js +0 -30
  5078. package/src/paraglide/messages/tags_saving.js +0 -29
  5079. package/src/paraglide/messages/tags_selector_createtag1.js +0 -30
  5080. package/src/paraglide/messages/tags_selector_placeholder.js +0 -29
  5081. package/src/paraglide/messages/tags_selector_searchplaceholder1.js +0 -30
  5082. package/src/paraglide/messages/tags_settings_description.js +0 -29
  5083. package/src/paraglide/messages/tags_settings_title.js +0 -29
  5084. package/src/paraglide/messages/tags_sortfailed1.js +0 -30
  5085. package/src/paraglide/messages/tags_title.js +0 -29
  5086. package/src/paraglide/messages/tags_updated.js +0 -29
  5087. package/src/paraglide/messages/team_tokens.js +0 -29
  5088. package/src/paraglide/messages/testcase_activity_created.js +0 -29
  5089. package/src/paraglide/messages/testcase_activity_deleted.js +0 -29
  5090. package/src/paraglide/messages/testcase_activity_updated.js +0 -29
  5091. package/src/paraglide/messages/testcase_artifact_adopt.js +0 -29
  5092. package/src/paraglide/messages/testcase_artifact_adoptconfirm1.js +0 -30
  5093. package/src/paraglide/messages/testcase_artifact_adoptdesc1.js +0 -30
  5094. package/src/paraglide/messages/testcase_artifact_adoptfailed1.js +0 -30
  5095. package/src/paraglide/messages/testcase_artifact_adoptsuccess1.js +0 -30
  5096. package/src/paraglide/messages/testcase_artifact_adopttitle1.js +0 -30
  5097. package/src/paraglide/messages/testcase_artifact_copied.js +0 -29
  5098. package/src/paraglide/messages/testcase_artifact_copy.js +0 -29
  5099. package/src/paraglide/messages/testcase_artifact_download.js +0 -29
  5100. package/src/paraglide/messages/testcase_artifact_downloadlog1.js +0 -30
  5101. package/src/paraglide/messages/testcase_artifact_empty.js +0 -29
  5102. package/src/paraglide/messages/testcase_artifact_gendrafttoast2.js +0 -30
  5103. package/src/paraglide/messages/testcase_artifact_generate.js +0 -29
  5104. package/src/paraglide/messages/testcase_artifact_generating.js +0 -29
  5105. package/src/paraglide/messages/testcase_artifact_generatinghint1.js +0 -30
  5106. package/src/paraglide/messages/testcase_artifact_genverifiedtoast2.js +0 -30
  5107. package/src/paraglide/messages/testcase_artifact_kinde2e1.js +0 -30
  5108. package/src/paraglide/messages/testcase_artifact_kindlabel1.js +0 -30
  5109. package/src/paraglide/messages/testcase_artifact_kindunit1.js +0 -30
  5110. package/src/paraglide/messages/testcase_artifact_lines.js +0 -29
  5111. package/src/paraglide/messages/testcase_artifact_loadfailed1.js +0 -30
  5112. package/src/paraglide/messages/testcase_artifact_notestitle1.js +0 -30
  5113. package/src/paraglide/messages/testcase_artifact_reject.js +0 -29
  5114. package/src/paraglide/messages/testcase_artifact_rejectfailed1.js +0 -30
  5115. package/src/paraglide/messages/testcase_artifact_rejectsuccess1.js +0 -30
  5116. package/src/paraglide/messages/testcase_artifact_staleadopthint2.js +0 -30
  5117. package/src/paraglide/messages/testcase_artifact_stalebadge1.js +0 -30
  5118. package/src/paraglide/messages/testcase_artifact_stalewarning1.js +0 -30
  5119. package/src/paraglide/messages/testcase_artifact_statusadopted1.js +0 -30
  5120. package/src/paraglide/messages/testcase_artifact_statusdraft1.js +0 -30
  5121. package/src/paraglide/messages/testcase_artifact_statusrejected1.js +0 -30
  5122. package/src/paraglide/messages/testcase_artifact_statusverified1.js +0 -30
  5123. package/src/paraglide/messages/testcase_artifact_tab.js +0 -29
  5124. package/src/paraglide/messages/testcase_artifact_targetlabel1.js +0 -30
  5125. package/src/paraglide/messages/testcase_artifact_targetplaceholder1.js +0 -30
  5126. package/src/paraglide/messages/testcase_artifact_verifyattempts1.js +0 -30
  5127. package/src/paraglide/messages/testcase_artifact_verifyfailed1.js +0 -30
  5128. package/src/paraglide/messages/testcase_artifact_verifylasterror2.js +0 -30
  5129. package/src/paraglide/messages/testcase_artifact_verifymissing1.js +0 -30
  5130. package/src/paraglide/messages/testcase_artifact_verifypassed1.js +0 -30
  5131. package/src/paraglide/messages/testcase_artifact_verifyskipped1.js +0 -30
  5132. package/src/paraglide/messages/testcase_artifact_verifytitle1.js +0 -30
  5133. package/src/paraglide/messages/testcase_artifact_viewlog1.js +0 -30
  5134. package/src/paraglide/messages/testcase_autobug_draftedbody2.js +0 -30
  5135. package/src/paraglide/messages/testcase_autobug_draftedtitle2.js +0 -30
  5136. package/src/paraglide/messages/testcase_autobug_pendinghint2.js +0 -30
  5137. package/src/paraglide/messages/testcase_autobug_submittedhint2.js +0 -30
  5138. package/src/paraglide/messages/testcase_automation_both.js +0 -29
  5139. package/src/paraglide/messages/testcase_automation_e2e.js +0 -29
  5140. package/src/paraglide/messages/testcase_automation_none.js +0 -29
  5141. package/src/paraglide/messages/testcase_automation_unit.js +0 -29
  5142. package/src/paraglide/messages/testcase_column_assignee.js +0 -29
  5143. package/src/paraglide/messages/testcase_column_automation.js +0 -29
  5144. package/src/paraglide/messages/testcase_column_identifier.js +0 -29
  5145. package/src/paraglide/messages/testcase_column_priority.js +0 -29
  5146. package/src/paraglide/messages/testcase_column_state.js +0 -29
  5147. package/src/paraglide/messages/testcase_column_story.js +0 -29
  5148. package/src/paraglide/messages/testcase_column_title.js +0 -29
  5149. package/src/paraglide/messages/testcase_column_type.js +0 -29
  5150. package/src/paraglide/messages/testcase_column_updatedat1.js +0 -30
  5151. package/src/paraglide/messages/testcase_create_clearstory1.js +0 -30
  5152. package/src/paraglide/messages/testcase_create_create.js +0 -29
  5153. package/src/paraglide/messages/testcase_create_created.js +0 -29
  5154. package/src/paraglide/messages/testcase_create_creating.js +0 -29
  5155. package/src/paraglide/messages/testcase_create_failed.js +0 -29
  5156. package/src/paraglide/messages/testcase_create_needproject1.js +0 -30
  5157. package/src/paraglide/messages/testcase_create_pickstory1.js +0 -30
  5158. package/src/paraglide/messages/testcase_create_preconditionplaceholder1.js +0 -30
  5159. package/src/paraglide/messages/testcase_create_storylinked1.js +0 -30
  5160. package/src/paraglide/messages/testcase_create_title.js +0 -29
  5161. package/src/paraglide/messages/testcase_create_titleplaceholder1.js +0 -30
  5162. package/src/paraglide/messages/testcase_detail_backtolist2.js +0 -30
  5163. package/src/paraglide/messages/testcase_detail_bugsempty1.js +0 -30
  5164. package/src/paraglide/messages/testcase_detail_execempty1.js +0 -30
  5165. package/src/paraglide/messages/testcase_detail_nostory1.js +0 -30
  5166. package/src/paraglide/messages/testcase_detail_precondition.js +0 -29
  5167. package/src/paraglide/messages/testcase_detail_properties.js +0 -29
  5168. package/src/paraglide/messages/testcase_detail_steps.js +0 -29
  5169. package/src/paraglide/messages/testcase_detail_tabactivity1.js +0 -30
  5170. package/src/paraglide/messages/testcase_detail_tabexechistory2.js +0 -30
  5171. package/src/paraglide/messages/testcase_detail_tabrelatedbugs2.js +0 -30
  5172. package/src/paraglide/messages/testcase_detail_titlearia1.js +0 -30
  5173. package/src/paraglide/messages/testcase_detail_version.js +0 -29
  5174. package/src/paraglide/messages/testcase_filter_clear.js +0 -29
  5175. package/src/paraglide/messages/testcase_filter_priority.js +0 -29
  5176. package/src/paraglide/messages/testcase_filter_state.js +0 -29
  5177. package/src/paraglide/messages/testcase_filter_type.js +0 -29
  5178. package/src/paraglide/messages/testcase_foldertree_addsub2.js +0 -30
  5179. package/src/paraglide/messages/testcase_foldertree_allcases2.js +0 -30
  5180. package/src/paraglide/messages/testcase_foldertree_createfailed2.js +0 -30
  5181. package/src/paraglide/messages/testcase_foldertree_delete1.js +0 -30
  5182. package/src/paraglide/messages/testcase_foldertree_deletefailed2.js +0 -30
  5183. package/src/paraglide/messages/testcase_foldertree_hidetree2.js +0 -30
  5184. package/src/paraglide/messages/testcase_foldertree_nameplaceholder2.js +0 -30
  5185. package/src/paraglide/messages/testcase_foldertree_newmodule2.js +0 -30
  5186. package/src/paraglide/messages/testcase_foldertree_rename1.js +0 -30
  5187. package/src/paraglide/messages/testcase_foldertree_renamefailed2.js +0 -30
  5188. package/src/paraglide/messages/testcase_foldertree_showtree2.js +0 -30
  5189. package/src/paraglide/messages/testcase_foldertree_title1.js +0 -30
  5190. package/src/paraglide/messages/testcase_foldertree_toggle1.js +0 -30
  5191. package/src/paraglide/messages/testcase_foldertree_ungrouped1.js +0 -30
  5192. package/src/paraglide/messages/testcase_gen_clearstory1.js +0 -30
  5193. package/src/paraglide/messages/testcase_gen_donetoast1.js +0 -30
  5194. package/src/paraglide/messages/testcase_gen_entrybutton1.js +0 -30
  5195. package/src/paraglide/messages/testcase_gen_failed.js +0 -29
  5196. package/src/paraglide/messages/testcase_gen_kbempty1.js +0 -30
  5197. package/src/paraglide/messages/testcase_gen_kbhint1.js +0 -30
  5198. package/src/paraglide/messages/testcase_gen_kbloadfailed2.js +0 -30
  5199. package/src/paraglide/messages/testcase_gen_kbloading1.js +0 -30
  5200. package/src/paraglide/messages/testcase_gen_kbtoggle1.js +0 -30
  5201. package/src/paraglide/messages/testcase_gen_lockedhint1.js +0 -30
  5202. package/src/paraglide/messages/testcase_gen_pickstory1.js +0 -30
  5203. package/src/paraglide/messages/testcase_gen_retry.js +0 -29
  5204. package/src/paraglide/messages/testcase_gen_running.js +0 -29
  5205. package/src/paraglide/messages/testcase_gen_runninghint1.js +0 -30
  5206. package/src/paraglide/messages/testcase_gen_start.js +0 -29
  5207. package/src/paraglide/messages/testcase_gen_storylinked1.js +0 -30
  5208. package/src/paraglide/messages/testcase_gen_title.js +0 -29
  5209. package/src/paraglide/messages/testcase_gen_unavailable.js +0 -29
  5210. package/src/paraglide/messages/testcase_groupby_folder1.js +0 -30
  5211. package/src/paraglide/messages/testcase_groupby_label1.js +0 -30
  5212. package/src/paraglide/messages/testcase_groupby_none1.js +0 -30
  5213. package/src/paraglide/messages/testcase_groupby_priority1.js +0 -30
  5214. package/src/paraglide/messages/testcase_groupby_state1.js +0 -30
  5215. package/src/paraglide/messages/testcase_inline_nomatchmembers2.js +0 -30
  5216. package/src/paraglide/messages/testcase_inline_notselected1.js +0 -30
  5217. package/src/paraglide/messages/testcase_inline_searchmembers1.js +0 -30
  5218. package/src/paraglide/messages/testcase_listview_empty1.js +0 -30
  5219. package/src/paraglide/messages/testcase_listview_emptydesc2.js +0 -30
  5220. package/src/paraglide/messages/testcase_listview_loadfailed2.js +0 -30
  5221. package/src/paraglide/messages/testcase_matrix_casecolumn1.js +0 -30
  5222. package/src/paraglide/messages/testcase_matrix_category_api_error.js +0 -29
  5223. package/src/paraglide/messages/testcase_matrix_category_assertion_mismatch.js +0 -29
  5224. package/src/paraglide/messages/testcase_matrix_category_data_issue.js +0 -29
  5225. package/src/paraglide/messages/testcase_matrix_category_env_issue.js +0 -29
  5226. package/src/paraglide/messages/testcase_matrix_category_frontend_error.js +0 -29
  5227. package/src/paraglide/messages/testcase_matrix_category_unknown.js +0 -29
  5228. package/src/paraglide/messages/testcase_matrix_category_untriaged.js +0 -29
  5229. package/src/paraglide/messages/testcase_matrix_evidencelabel1.js +0 -30
  5230. package/src/paraglide/messages/testcase_matrix_failuresempty1.js +0 -30
  5231. package/src/paraglide/messages/testcase_matrix_failuresloadfailed2.js +0 -30
  5232. package/src/paraglide/messages/testcase_matrix_failurestitle1.js +0 -30
  5233. package/src/paraglide/messages/testcase_matrix_title.js +0 -29
  5234. package/src/paraglide/messages/testcase_matrix_triage_confidence.js +0 -29
  5235. package/src/paraglide/messages/testcase_peek_assignee.js +0 -29
  5236. package/src/paraglide/messages/testcase_peek_expected.js +0 -29
  5237. package/src/paraglide/messages/testcase_peek_folder.js +0 -29
  5238. package/src/paraglide/messages/testcase_peek_nextcase1.js +0 -30
  5239. package/src/paraglide/messages/testcase_peek_noruns1.js +0 -30
  5240. package/src/paraglide/messages/testcase_peek_opendetail1.js +0 -30
  5241. package/src/paraglide/messages/testcase_peek_precondition.js +0 -29
  5242. package/src/paraglide/messages/testcase_peek_prevcase1.js +0 -30
  5243. package/src/paraglide/messages/testcase_peek_properties.js +0 -29
  5244. package/src/paraglide/messages/testcase_peek_recentruns1.js +0 -30
  5245. package/src/paraglide/messages/testcase_peek_relatedstory1.js +0 -30
  5246. package/src/paraglide/messages/testcase_peek_steps.js +0 -29
  5247. package/src/paraglide/messages/testcase_peek_viewstory1.js +0 -30
  5248. package/src/paraglide/messages/testcase_plan_add_dialogtitle1.js +0 -30
  5249. package/src/paraglide/messages/testcase_plan_add_empty.js +0 -29
  5250. package/src/paraglide/messages/testcase_plan_add_failed.js +0 -29
  5251. package/src/paraglide/messages/testcase_plan_add_partial.js +0 -29
  5252. package/src/paraglide/messages/testcase_plan_add_submit.js +0 -29
  5253. package/src/paraglide/messages/testcase_plan_add_success.js +0 -29
  5254. package/src/paraglide/messages/testcase_plan_back.js +0 -29
  5255. package/src/paraglide/messages/testcase_plan_batch_addtoplan2.js +0 -30
  5256. package/src/paraglide/messages/testcase_plan_batch_clear.js +0 -29
  5257. package/src/paraglide/messages/testcase_plan_batch_selected.js +0 -29
  5258. package/src/paraglide/messages/testcase_plan_casecount1.js +0 -30
  5259. package/src/paraglide/messages/testcase_plan_create.js +0 -29
  5260. package/src/paraglide/messages/testcase_plan_create_desclabel1.js +0 -30
  5261. package/src/paraglide/messages/testcase_plan_create_descplaceholder1.js +0 -30
  5262. package/src/paraglide/messages/testcase_plan_create_failed.js +0 -29
  5263. package/src/paraglide/messages/testcase_plan_create_iterationlabel1.js +0 -30
  5264. package/src/paraglide/messages/testcase_plan_create_namelabel1.js +0 -30
  5265. package/src/paraglide/messages/testcase_plan_create_nameplaceholder1.js +0 -30
  5266. package/src/paraglide/messages/testcase_plan_create_noiteration1.js +0 -30
  5267. package/src/paraglide/messages/testcase_plan_delete.js +0 -29
  5268. package/src/paraglide/messages/testcase_plan_delete_desc.js +0 -29
  5269. package/src/paraglide/messages/testcase_plan_delete_failed.js +0 -29
  5270. package/src/paraglide/messages/testcase_plan_delete_title.js +0 -29
  5271. package/src/paraglide/messages/testcase_plan_detail_casestitle1.js +0 -30
  5272. package/src/paraglide/messages/testcase_plan_detail_closefailed1.js +0 -30
  5273. package/src/paraglide/messages/testcase_plan_detail_closeplan1.js +0 -30
  5274. package/src/paraglide/messages/testcase_plan_detail_deprecatedhint1.js +0 -30
  5275. package/src/paraglide/messages/testcase_plan_detail_emptycases1.js +0 -30
  5276. package/src/paraglide/messages/testcase_plan_detail_iterationlabel1.js +0 -30
  5277. package/src/paraglide/messages/testcase_plan_detail_newcase1.js +0 -30
  5278. package/src/paraglide/messages/testcase_plan_detail_newcaseplanned2.js +0 -30
  5279. package/src/paraglide/messages/testcase_plan_detail_removecase1.js +0 -30
  5280. package/src/paraglide/messages/testcase_plan_detail_removefailed1.js +0 -30
  5281. package/src/paraglide/messages/testcase_plan_detail_reopenplan1.js +0 -30
  5282. package/src/paraglide/messages/testcase_plan_entry.js +0 -29
  5283. package/src/paraglide/messages/testcase_plan_list_empty.js +0 -29
  5284. package/src/paraglide/messages/testcase_plan_list_emptydesc1.js +0 -30
  5285. package/src/paraglide/messages/testcase_plan_list_loadfailed1.js +0 -30
  5286. package/src/paraglide/messages/testcase_plan_list_title.js +0 -29
  5287. package/src/paraglide/messages/testcase_plan_run_envlabel1.js +0 -30
  5288. package/src/paraglide/messages/testcase_plan_run_envplaceholder1.js +0 -30
  5289. package/src/paraglide/messages/testcase_plan_run_executor_automation.js +0 -29
  5290. package/src/paraglide/messages/testcase_plan_run_executor_automationhint1.js +0 -30
  5291. package/src/paraglide/messages/testcase_plan_run_executor_human.js +0 -29
  5292. package/src/paraglide/messages/testcase_plan_run_executorlabel1.js +0 -30
  5293. package/src/paraglide/messages/testcase_plan_run_failed.js +0 -29
  5294. package/src/paraglide/messages/testcase_plan_run_launch.js +0 -29
  5295. package/src/paraglide/messages/testcase_plan_run_launch_disabled.js +0 -29
  5296. package/src/paraglide/messages/testcase_plan_run_namelabel1.js +0 -30
  5297. package/src/paraglide/messages/testcase_plan_run_nameplaceholder1.js +0 -30
  5298. package/src/paraglide/messages/testcase_plan_run_submit.js +0 -29
  5299. package/src/paraglide/messages/testcase_plan_run_title.js +0 -29
  5300. package/src/paraglide/messages/testcase_plan_state_active.js +0 -29
  5301. package/src/paraglide/messages/testcase_plan_state_closed.js +0 -29
  5302. package/src/paraglide/messages/testcase_plan_update_failed.js +0 -29
  5303. package/src/paraglide/messages/testcase_review_adopt.js +0 -29
  5304. package/src/paraglide/messages/testcase_review_adoptall1.js +0 -30
  5305. package/src/paraglide/messages/testcase_review_adoptwithedits2.js +0 -30
  5306. package/src/paraglide/messages/testcase_review_back.js +0 -29
  5307. package/src/paraglide/messages/testcase_review_conditions.js +0 -29
  5308. package/src/paraglide/messages/testcase_review_coveragenotes1.js +0 -30
  5309. package/src/paraglide/messages/testcase_review_decidedadopt1.js +0 -30
  5310. package/src/paraglide/messages/testcase_review_decidedreject1.js +0 -30
  5311. package/src/paraglide/messages/testcase_review_draftsempty1.js +0 -30
  5312. package/src/paraglide/messages/testcase_review_draftstitle1.js +0 -30
  5313. package/src/paraglide/messages/testcase_review_editdesc1.js +0 -30
  5314. package/src/paraglide/messages/testcase_review_editinvalid1.js +0 -30
  5315. package/src/paraglide/messages/testcase_review_edittitle1.js +0 -30
  5316. package/src/paraglide/messages/testcase_review_failedbanner1.js +0 -30
  5317. package/src/paraglide/messages/testcase_review_outputempty1.js +0 -30
  5318. package/src/paraglide/messages/testcase_review_outputtitle1.js +0 -30
  5319. package/src/paraglide/messages/testcase_review_pending.js +0 -29
  5320. package/src/paraglide/messages/testcase_review_pendinghint1.js +0 -30
  5321. package/src/paraglide/messages/testcase_review_preconditionfield1.js +0 -30
  5322. package/src/paraglide/messages/testcase_review_reject.js +0 -29
  5323. package/src/paraglide/messages/testcase_review_reviewedbanner1.js +0 -30
  5324. package/src/paraglide/messages/testcase_review_statusrunning1.js +0 -30
  5325. package/src/paraglide/messages/testcase_review_stepsfield1.js +0 -30
  5326. package/src/paraglide/messages/testcase_review_submit.js +0 -29
  5327. package/src/paraglide/messages/testcase_review_submitfailed1.js +0 -30
  5328. package/src/paraglide/messages/testcase_review_submitsuccess1.js +0 -30
  5329. package/src/paraglide/messages/testcase_review_submitting.js +0 -29
  5330. package/src/paraglide/messages/testcase_review_title.js +0 -29
  5331. package/src/paraglide/messages/testcase_review_titlefield1.js +0 -30
  5332. package/src/paraglide/messages/testcase_review_undo.js +0 -29
  5333. package/src/paraglide/messages/testcase_row_updatefailed1.js +0 -30
  5334. package/src/paraglide/messages/testcase_run_actual_label.js +0 -29
  5335. package/src/paraglide/messages/testcase_run_actual_placeholder.js +0 -29
  5336. package/src/paraglide/messages/testcase_run_back.js +0 -29
  5337. package/src/paraglide/messages/testcase_run_casecount1.js +0 -30
  5338. package/src/paraglide/messages/testcase_run_caselist_title1.js +0 -30
  5339. package/src/paraglide/messages/testcase_run_casestatus_blocked1.js +0 -30
  5340. package/src/paraglide/messages/testcase_run_casestatus_failed1.js +0 -30
  5341. package/src/paraglide/messages/testcase_run_casestatus_passed1.js +0 -30
  5342. package/src/paraglide/messages/testcase_run_casestatus_retest1.js +0 -30
  5343. package/src/paraglide/messages/testcase_run_casestatus_skipped1.js +0 -30
  5344. package/src/paraglide/messages/testcase_run_casestatus_untested1.js +0 -30
  5345. package/src/paraglide/messages/testcase_run_checklist_title.js +0 -29
  5346. package/src/paraglide/messages/testcase_run_convertbug1.js +0 -30
  5347. package/src/paraglide/messages/testcase_run_convertbug_preparefailed2.js +0 -30
  5348. package/src/paraglide/messages/testcase_run_convertbug_preparing1.js +0 -30
  5349. package/src/paraglide/messages/testcase_run_empty_cases.js +0 -29
  5350. package/src/paraglide/messages/testcase_run_envlabel1.js +0 -30
  5351. package/src/paraglide/messages/testcase_run_evidence_add.js +0 -29
  5352. package/src/paraglide/messages/testcase_run_evidence_badtype1.js +0 -30
  5353. package/src/paraglide/messages/testcase_run_evidence_failed.js +0 -29
  5354. package/src/paraglide/messages/testcase_run_evidence_toolarge1.js +0 -30
  5355. package/src/paraglide/messages/testcase_run_evidence_uploading.js +0 -29
  5356. package/src/paraglide/messages/testcase_run_executortype_ai_agent1.js +0 -30
  5357. package/src/paraglide/messages/testcase_run_executortype_automation_code1.js +0 -30
  5358. package/src/paraglide/messages/testcase_run_executortype_human1.js +0 -30
  5359. package/src/paraglide/messages/testcase_run_executortype_mixed1.js +0 -30
  5360. package/src/paraglide/messages/testcase_run_judge_title.js +0 -29
  5361. package/src/paraglide/messages/testcase_run_keyboard_hint.js +0 -29
  5362. package/src/paraglide/messages/testcase_run_loading.js +0 -29
  5363. package/src/paraglide/messages/testcase_run_pendingbugs_confirm1.js +0 -30
  5364. package/src/paraglide/messages/testcase_run_pendingbugs_confirmed1.js +0 -30
  5365. package/src/paraglide/messages/testcase_run_pendingbugs_confirmfailed2.js +0 -30
  5366. package/src/paraglide/messages/testcase_run_pendingbugs_desc1.js +0 -30
  5367. package/src/paraglide/messages/testcase_run_pendingbugs_loadfailed2.js +0 -30
  5368. package/src/paraglide/messages/testcase_run_pendingbugs_title1.js +0 -30
  5369. package/src/paraglide/messages/testcase_run_planlabel1.js +0 -30
  5370. package/src/paraglide/messages/testcase_run_precondition.js +0 -29
  5371. package/src/paraglide/messages/testcase_run_progress_executed.js +0 -29
  5372. package/src/paraglide/messages/testcase_run_report_failed.js +0 -29
  5373. package/src/paraglide/messages/testcase_run_skip_no_adopted_artifact.js +0 -29
  5374. package/src/paraglide/messages/testcase_run_skip_stale_artifact.js +0 -29
  5375. package/src/paraglide/messages/testcase_run_snapshotversion1.js +0 -30
  5376. package/src/paraglide/messages/testcase_run_status_aborted.js +0 -29
  5377. package/src/paraglide/messages/testcase_run_status_completed.js +0 -29
  5378. package/src/paraglide/messages/testcase_run_status_running.js +0 -29
  5379. package/src/paraglide/messages/testcase_run_step_expectedlabel1.js +0 -30
  5380. package/src/paraglide/messages/testcase_run_step_mark_blocked.js +0 -29
  5381. package/src/paraglide/messages/testcase_run_step_mark_fail.js +0 -29
  5382. package/src/paraglide/messages/testcase_run_step_mark_pass.js +0 -29
  5383. package/src/paraglide/messages/testcase_run_step_mark_skip.js +0 -29
  5384. package/src/paraglide/messages/testcase_run_summary_duration.js +0 -29
  5385. package/src/paraglide/messages/testcase_run_summary_passrate1.js +0 -30
  5386. package/src/paraglide/messages/testcase_run_summary_title.js +0 -29
  5387. package/src/paraglide/messages/testcase_run_summary_total.js +0 -29
  5388. package/src/paraglide/messages/testcase_state_approved.js +0 -29
  5389. package/src/paraglide/messages/testcase_state_deprecated.js +0 -29
  5390. package/src/paraglide/messages/testcase_state_draft.js +0 -29
  5391. package/src/paraglide/messages/testcase_state_in_review.js +0 -29
  5392. package/src/paraglide/messages/testcase_stats_coverage.js +0 -29
  5393. package/src/paraglide/messages/testcase_stats_coverage_value.js +0 -29
  5394. package/src/paraglide/messages/testcase_stats_entry.js +0 -29
  5395. package/src/paraglide/messages/testcase_stats_flaky.js +0 -29
  5396. package/src/paraglide/messages/testcase_stats_flaky_value.js +0 -29
  5397. package/src/paraglide/messages/testcase_stats_generation.js +0 -29
  5398. package/src/paraglide/messages/testcase_stats_generation_value.js +0 -29
  5399. package/src/paraglide/messages/testcase_stats_loadfailed1.js +0 -30
  5400. package/src/paraglide/messages/testcase_stats_noproject1.js +0 -30
  5401. package/src/paraglide/messages/testcase_stats_passratetrend2.js +0 -30
  5402. package/src/paraglide/messages/testcase_stats_staleaction1.js +0 -30
  5403. package/src/paraglide/messages/testcase_stats_stalemessage1.js +0 -30
  5404. package/src/paraglide/messages/testcase_stats_title.js +0 -29
  5405. package/src/paraglide/messages/testcase_stats_trendempty1.js +0 -30
  5406. package/src/paraglide/messages/testcase_stepeditor_actionplaceholder2.js +0 -30
  5407. package/src/paraglide/messages/testcase_stepeditor_actionrequired2.js +0 -30
  5408. package/src/paraglide/messages/testcase_stepeditor_add1.js +0 -30
  5409. package/src/paraglide/messages/testcase_stepeditor_delete1.js +0 -30
  5410. package/src/paraglide/messages/testcase_stepeditor_expectedplaceholder2.js +0 -30
  5411. package/src/paraglide/messages/testcase_stepeditor_movedown2.js +0 -30
  5412. package/src/paraglide/messages/testcase_stepeditor_moveup2.js +0 -30
  5413. package/src/paraglide/messages/testcase_stepeditor_steplabel2.js +0 -30
  5414. package/src/paraglide/messages/testcase_storycases_summary1.js +0 -30
  5415. package/src/paraglide/messages/testcase_storycases_title1.js +0 -30
  5416. package/src/paraglide/messages/testcase_storypicker_empty1.js +0 -30
  5417. package/src/paraglide/messages/testcase_storypicker_search1.js +0 -30
  5418. package/src/paraglide/messages/testcase_stream_empty.js +0 -29
  5419. package/src/paraglide/messages/testcase_stream_observed.js +0 -29
  5420. package/src/paraglide/messages/testcase_stream_reconnecting.js +0 -29
  5421. package/src/paraglide/messages/testcase_stream_screenshot.js +0 -29
  5422. package/src/paraglide/messages/testcase_stream_screenshotpending1.js +0 -30
  5423. package/src/paraglide/messages/testcase_stream_title.js +0 -29
  5424. package/src/paraglide/messages/testcase_stream_verdict_uncertain.js +0 -29
  5425. package/src/paraglide/messages/testcase_toolbar_aigenerate1.js +0 -30
  5426. package/src/paraglide/messages/testcase_toolbar_filter.js +0 -29
  5427. package/src/paraglide/messages/testcase_toolbar_newcase1.js +0 -30
  5428. package/src/paraglide/messages/testcase_toolbar_search.js +0 -29
  5429. package/src/paraglide/messages/testcase_toolbar_table.js +0 -29
  5430. package/src/paraglide/messages/testcase_toolbar_total.js +0 -29
  5431. package/src/paraglide/messages/testcase_toolbar_viewlist1.js +0 -30
  5432. package/src/paraglide/messages/testcase_triage_envissueblockedbody3.js +0 -30
  5433. package/src/paraglide/messages/testcase_triage_envissueblockedtitle3.js +0 -30
  5434. package/src/paraglide/messages/testcase_type_boundary.js +0 -29
  5435. package/src/paraglide/messages/testcase_type_compatibility.js +0 -29
  5436. package/src/paraglide/messages/testcase_type_exception.js +0 -29
  5437. package/src/paraglide/messages/testcase_type_functional.js +0 -29
  5438. package/src/paraglide/messages/testcase_type_performance.js +0 -29
  5439. package/src/paraglide/messages/testcase_type_security.js +0 -29
  5440. package/src/paraglide/messages/testcase_view_cancel.js +0 -29
  5441. package/src/paraglide/messages/testcase_view_create.js +0 -29
  5442. package/src/paraglide/messages/testcase_view_createview1.js +0 -30
  5443. package/src/paraglide/messages/testcase_view_default.js +0 -29
  5444. package/src/paraglide/messages/testcase_view_descplaceholder1.js +0 -30
  5445. package/src/paraglide/messages/testcase_view_filterconditions1.js +0 -30
  5446. package/src/paraglide/messages/testcase_view_filterempty1.js +0 -30
  5447. package/src/paraglide/messages/testcase_view_nameplaceholder1.js +0 -30
  5448. package/src/paraglide/messages/testcase_view_noviews1.js +0 -30
  5449. package/src/paraglide/messages/testcase_view_save.js +0 -29
  5450. package/src/paraglide/messages/testcase_view_savefailed1.js +0 -30
  5451. package/src/paraglide/messages/testcase_view_saving.js +0 -29
  5452. package/src/paraglide/messages/timeformat_autosave2.js +0 -30
  5453. package/src/paraglide/messages/timeformat_manualsave2.js +0 -30
  5454. package/src/paraglide/messages/timeformat_overayearago4.js +0 -30
  5455. package/src/paraglide/messages/timeformat_yesterday1.js +0 -30
  5456. package/src/paraglide/messages/transfer_notarget1.js +0 -30
  5457. package/src/paraglide/messages/treepage_confirmdelete2.js +0 -30
  5458. package/src/paraglide/messages/treepage_delete1.js +0 -30
  5459. package/src/paraglide/messages/treepage_deleteconfirmdesc3.js +0 -30
  5460. package/src/paraglide/messages/treepage_duplicate1.js +0 -30
  5461. package/src/paraglide/messages/treepage_foldername2.js +0 -30
  5462. package/src/paraglide/messages/treepage_newfolder2.js +0 -30
  5463. package/src/paraglide/messages/treepage_newpage2.js +0 -30
  5464. package/src/paraglide/messages/treepage_nomatch2.js +0 -30
  5465. package/src/paraglide/messages/treepage_nopages2.js +0 -30
  5466. package/src/paraglide/messages/treepage_pagename2.js +0 -30
  5467. package/src/paraglide/messages/treepage_rename1.js +0 -30
  5468. package/src/paraglide/messages/treepage_searchplaceholder2.js +0 -30
  5469. package/src/paraglide/messages/version_confirmrestore1.js +0 -30
  5470. package/src/paraglide/messages/version_confirmupdate1.js +0 -30
  5471. package/src/paraglide/messages/version_confirmupdatedescription2.js +0 -30
  5472. package/src/paraglide/messages/version_confirmupdatetitle2.js +0 -30
  5473. package/src/paraglide/messages/version_continuepublish1.js +0 -30
  5474. package/src/paraglide/messages/version_createbutton1.js +0 -30
  5475. package/src/paraglide/messages/version_createdescription1.js +0 -30
  5476. package/src/paraglide/messages/version_createtitle1.js +0 -30
  5477. package/src/paraglide/messages/version_createversion1.js +0 -30
  5478. package/src/paraglide/messages/version_creating.js +0 -29
  5479. package/src/paraglide/messages/version_datetimeformat2.js +0 -30
  5480. package/src/paraglide/messages/version_daysago1.js +0 -30
  5481. package/src/paraglide/messages/version_deletedescription1.js +0 -30
  5482. package/src/paraglide/messages/version_deletetitle1.js +0 -30
  5483. package/src/paraglide/messages/version_deleteversion1.js +0 -30
  5484. package/src/paraglide/messages/version_editdescription1.js +0 -30
  5485. package/src/paraglide/messages/version_editnotes1.js +0 -30
  5486. package/src/paraglide/messages/version_edittitle1.js +0 -30
  5487. package/src/paraglide/messages/version_hoursago1.js +0 -30
  5488. package/src/paraglide/messages/version_initial.js +0 -29
  5489. package/src/paraglide/messages/version_justnow1.js +0 -30
  5490. package/src/paraglide/messages/version_minutesago1.js +0 -30
  5491. package/src/paraglide/messages/version_nopages1.js +0 -30
  5492. package/src/paraglide/messages/version_nopublishedversions2.js +0 -30
  5493. package/src/paraglide/messages/version_noteslabel1.js +0 -30
  5494. package/src/paraglide/messages/version_noteslabelplain2.js +0 -30
  5495. package/src/paraglide/messages/version_notesplaceholder1.js +0 -30
  5496. package/src/paraglide/messages/version_pageversionhistory2.js +0 -30
  5497. package/src/paraglide/messages/version_prdversionhistory2.js +0 -30
  5498. package/src/paraglide/messages/version_prdversionno2.js +0 -30
  5499. package/src/paraglide/messages/version_publish.js +0 -29
  5500. package/src/paraglide/messages/version_recentlyupdated1.js +0 -30
  5501. package/src/paraglide/messages/version_releasenotesplaceholder2.js +0 -30
  5502. package/src/paraglide/messages/version_restoreconfirmdescription2.js +0 -30
  5503. package/src/paraglide/messages/version_restoreconfirmtitle2.js +0 -30
  5504. package/src/paraglide/messages/version_restoredfrom1.js +0 -30
  5505. package/src/paraglide/messages/version_restoretocurrent2.js +0 -30
  5506. package/src/paraglide/messages/version_restoretothis2.js +0 -30
  5507. package/src/paraglide/messages/version_restoring.js +0 -29
  5508. package/src/paraglide/messages/version_selectall1.js +0 -30
  5509. package/src/paraglide/messages/version_selectedcount1.js +0 -30
  5510. package/src/paraglide/messages/version_selectlatest1.js +0 -30
  5511. package/src/paraglide/messages/version_selectlatesthint2.js +0 -30
  5512. package/src/paraglide/messages/version_selectpagehint2.js +0 -30
  5513. package/src/paraglide/messages/version_selectpagestitle2.js +0 -30
  5514. package/src/paraglide/messages/version_skipversiondescription2.js +0 -30
  5515. package/src/paraglide/messages/version_skipversiontitle2.js +0 -30
  5516. package/src/paraglide/messages/version_syncpages1.js +0 -30
  5517. package/src/paraglide/messages/version_unpublished.js +0 -29
  5518. package/src/paraglide/messages/version_update.js +0 -29
  5519. package/src/paraglide/messages/version_updatedat1.js +0 -30
  5520. package/src/paraglide/messages/version_versiontoolow2.js +0 -30
  5521. package/src/paraglide/messages/workspace_card_delete.js +0 -29
  5522. package/src/paraglide/messages/workspace_card_edit.js +0 -29
  5523. package/src/paraglide/messages/workspace_card_more.js +0 -29
  5524. package/src/paraglide/messages/workspace_card_pin.js +0 -29
  5525. package/src/paraglide/messages/workspace_card_unpin.js +0 -29
  5526. package/src/paraglide/messages/workspace_createworkspace_cancel1.js +0 -30
  5527. package/src/paraglide/messages/workspace_createworkspace_create1.js +0 -30
  5528. package/src/paraglide/messages/workspace_createworkspace_createfailed2.js +0 -30
  5529. package/src/paraglide/messages/workspace_createworkspace_creating1.js +0 -30
  5530. package/src/paraglide/messages/workspace_createworkspace_description1.js +0 -30
  5531. package/src/paraglide/messages/workspace_createworkspace_descriptionlabel2.js +0 -30
  5532. package/src/paraglide/messages/workspace_createworkspace_descriptionplaceholder2.js +0 -30
  5533. package/src/paraglide/messages/workspace_createworkspace_namelabel2.js +0 -30
  5534. package/src/paraglide/messages/workspace_createworkspace_nameplaceholder2.js +0 -30
  5535. package/src/paraglide/messages/workspace_createworkspace_namerequired2.js +0 -30
  5536. package/src/paraglide/messages/workspace_createworkspace_title1.js +0 -30
  5537. package/src/paraglide/messages/workspace_createworkspace_upgradeaction2.js +0 -30
  5538. package/src/paraglide/messages/workspace_createworkspace_upgradedescription2.js +0 -30
  5539. package/src/paraglide/messages/workspace_createworkspace_upgradetitle2.js +0 -30
  5540. package/src/paraglide/messages/workspace_detail_back.js +0 -29
  5541. package/src/paraglide/messages/workspace_detail_createproject1.js +0 -30
  5542. package/src/paraglide/messages/workspace_detail_emptyprojectsdescription2.js +0 -30
  5543. package/src/paraglide/messages/workspace_detail_emptyprojectstitle2.js +0 -30
  5544. package/src/paraglide/messages/workspace_detail_members.js +0 -29
  5545. package/src/paraglide/messages/workspace_detail_nodescription1.js +0 -30
  5546. package/src/paraglide/messages/workspace_detail_projects.js +0 -29
  5547. package/src/paraglide/messages/workspace_home_activity.js +0 -29
  5548. package/src/paraglide/messages/workspace_home_addmember1.js +0 -30
  5549. package/src/paraglide/messages/workspace_home_addmemberfailed2.js +0 -30
  5550. package/src/paraglide/messages/workspace_home_allactivities1.js +0 -30
  5551. package/src/paraglide/messages/workspace_home_kbplaceholder1.js +0 -30
  5552. package/src/paraglide/messages/workspace_home_kbtitle1.js +0 -30
  5553. package/src/paraglide/messages/workspace_home_memberadded1.js +0 -30
  5554. package/src/paraglide/messages/workspace_home_memberremoved1.js +0 -30
  5555. package/src/paraglide/messages/workspace_home_members.js +0 -29
  5556. package/src/paraglide/messages/workspace_home_membersplaceholder1.js +0 -30
  5557. package/src/paraglide/messages/workspace_home_nomembers1.js +0 -30
  5558. package/src/paraglide/messages/workspace_home_recentactivity1.js +0 -30
  5559. package/src/paraglide/messages/workspace_home_removememberconfirm2.js +0 -30
  5560. package/src/paraglide/messages/workspace_home_removememberdesc2.js +0 -30
  5561. package/src/paraglide/messages/workspace_home_removeownernotallowed3.js +0 -30
  5562. package/src/paraglide/messages/workspace_home_role_admin.js +0 -29
  5563. package/src/paraglide/messages/workspace_home_role_member.js +0 -29
  5564. package/src/paraglide/messages/workspace_home_role_owner.js +0 -29
  5565. package/src/paraglide/messages/workspace_home_role_viewer.js +0 -29
  5566. package/src/paraglide/messages/workspace_home_rolelabel1.js +0 -30
  5567. package/src/paraglide/messages/workspace_home_searchmember1.js +0 -30
  5568. package/src/paraglide/messages/workspace_home_selectmember1.js +0 -30
  5569. package/src/paraglide/messages/workspace_kb_addquickdoc2.js +0 -30
  5570. package/src/paraglide/messages/workspace_kb_allkbs1.js +0 -30
  5571. package/src/paraglide/messages/workspace_kb_cancel.js +0 -29
  5572. package/src/paraglide/messages/workspace_kb_confirm.js +0 -29
  5573. package/src/paraglide/messages/workspace_kb_deletearialabel2.js +0 -30
  5574. package/src/paraglide/messages/workspace_kb_deleteconfirmdesc2.js +0 -30
  5575. package/src/paraglide/messages/workspace_kb_deleteconfirmtitle2.js +0 -30
  5576. package/src/paraglide/messages/workspace_kb_displaytitleplaceholder2.js +0 -30
  5577. package/src/paraglide/messages/workspace_kb_draghandlearialabel3.js +0 -30
  5578. package/src/paraglide/messages/workspace_kb_empty.js +0 -29
  5579. package/src/paraglide/messages/workspace_kb_generalkbs1.js +0 -30
  5580. package/src/paraglide/messages/workspace_kb_gotokb2.js +0 -30
  5581. package/src/paraglide/messages/workspace_kb_label.js +0 -29
  5582. package/src/paraglide/messages/workspace_kb_label_brd.js +0 -29
  5583. package/src/paraglide/messages/workspace_kb_label_charter.js +0 -29
  5584. package/src/paraglide/messages/workspace_kb_label_competitor.js +0 -29
  5585. package/src/paraglide/messages/workspace_kb_label_compliance.js +0 -29
  5586. package/src/paraglide/messages/workspace_kb_label_copywriting.js +0 -29
  5587. package/src/paraglide/messages/workspace_kb_label_datastructure1.js +0 -30
  5588. package/src/paraglide/messages/workspace_kb_label_dictionary.js +0 -29
  5589. package/src/paraglide/messages/workspace_kb_label_feasibility.js +0 -29
  5590. package/src/paraglide/messages/workspace_kb_label_infoarchitecture1.js +0 -30
  5591. package/src/paraglide/messages/workspace_kb_label_integration.js +0 -29
  5592. package/src/paraglide/messages/workspace_kb_label_kbdictionary1.js +0 -30
  5593. package/src/paraglide/messages/workspace_kb_label_legal.js +0 -29
  5594. package/src/paraglide/messages/workspace_kb_label_mrd.js +0 -29
  5595. package/src/paraglide/messages/workspace_kb_label_techarchitecture1.js +0 -30
  5596. package/src/paraglide/messages/workspace_kb_label_website.js +0 -29
  5597. package/src/paraglide/messages/workspace_kb_labelnone1.js +0 -30
  5598. package/src/paraglide/messages/workspace_kb_linkbutton1.js +0 -30
  5599. package/src/paraglide/messages/workspace_kb_linked.js +0 -29
  5600. package/src/paraglide/messages/workspace_kb_manageempty1.js +0 -30
  5601. package/src/paraglide/messages/workspace_kb_managesearchplaceholder2.js +0 -30
  5602. package/src/paraglide/messages/workspace_kb_managetitle1.js +0 -30
  5603. package/src/paraglide/messages/workspace_kb_openinnewtab3.js +0 -30
  5604. package/src/paraglide/messages/workspace_kb_opfailed1.js +0 -30
  5605. package/src/paraglide/messages/workspace_kb_partialfailed1.js +0 -30
  5606. package/src/paraglide/messages/workspace_kb_pickeddocs1.js +0 -30
  5607. package/src/paraglide/messages/workspace_kb_pickicon1.js +0 -30
  5608. package/src/paraglide/messages/workspace_kb_quickdoctitle2.js +0 -30
  5609. package/src/paraglide/messages/workspace_kb_renamearialabel2.js +0 -30
  5610. package/src/paraglide/messages/workspace_kb_searchplaceholder1.js +0 -30
  5611. package/src/paraglide/messages/workspace_kb_selectall1.js +0 -30
  5612. package/src/paraglide/messages/workspace_kb_selectedcount1.js +0 -30
  5613. package/src/paraglide/messages/workspace_kb_stale.js +0 -29
  5614. package/src/paraglide/messages/workspace_kb_userkbs1.js +0 -30
  5615. package/src/paraglide/messages/workspace_list_create.js +0 -29
  5616. package/src/paraglide/messages/workspace_list_deletehasprojects2.js +0 -30
  5617. package/src/paraglide/messages/workspace_list_emptydescription1.js +0 -30
  5618. package/src/paraglide/messages/workspace_list_emptytitle1.js +0 -30
  5619. package/src/paraglide/messages/workspace_list_members.js +0 -29
  5620. package/src/paraglide/messages/workspace_list_nodescription1.js +0 -30
  5621. package/src/paraglide/messages/workspace_list_projects.js +0 -29
  5622. package/src/paraglide/messages/workspace_list_subtitle.js +0 -29
  5623. package/src/paraglide/messages/workspace_list_title.js +0 -29
  5624. package/src/paraglide/messages/workspace_list_transfertargetrequired2.js +0 -30
  5625. package/src/paraglide/messages/workspace_project_card_delete.js +0 -29
  5626. package/src/paraglide/messages/workspace_project_card_edit.js +0 -29
  5627. package/src/paraglide/messages/workspace_settings_back.js +0 -29
  5628. package/src/paraglide/messages/workspace_settings_basicinfo1.js +0 -30
  5629. package/src/paraglide/messages/workspace_settings_cancel.js +0 -29
  5630. package/src/paraglide/messages/workspace_settings_clearprojects1.js +0 -30
  5631. package/src/paraglide/messages/workspace_settings_clearprojectsdesc2.js +0 -30
  5632. package/src/paraglide/messages/workspace_settings_confirmdelete1.js +0 -30
  5633. package/src/paraglide/messages/workspace_settings_confirmdeletedescription2.js +0 -30
  5634. package/src/paraglide/messages/workspace_settings_confirmremove1.js +0 -30
  5635. package/src/paraglide/messages/workspace_settings_confirmremovemember2.js +0 -30
  5636. package/src/paraglide/messages/workspace_settings_confirmremovememberdesc3.js +0 -30
  5637. package/src/paraglide/messages/workspace_settings_dangerzone1.js +0 -30
  5638. package/src/paraglide/messages/workspace_settings_delete.js +0 -29
  5639. package/src/paraglide/messages/workspace_settings_deleteclear1.js +0 -30
  5640. package/src/paraglide/messages/workspace_settings_deletedescription1.js +0 -30
  5641. package/src/paraglide/messages/workspace_settings_deletefailed1.js +0 -30
  5642. package/src/paraglide/messages/workspace_settings_deleteknowledgebases2.js +0 -30
  5643. package/src/paraglide/messages/workspace_settings_deleteknowledgebasesdesc3.js +0 -30
  5644. package/src/paraglide/messages/workspace_settings_deletetransfer1.js +0 -30
  5645. package/src/paraglide/messages/workspace_settings_deleteworkspace1.js +0 -30
  5646. package/src/paraglide/messages/workspace_settings_descriptionlabel1.js +0 -30
  5647. package/src/paraglide/messages/workspace_settings_descriptionplaceholder1.js +0 -30
  5648. package/src/paraglide/messages/workspace_settings_edit.js +0 -29
  5649. package/src/paraglide/messages/workspace_settings_hasprojects1.js +0 -30
  5650. package/src/paraglide/messages/workspace_settings_icon.js +0 -29
  5651. package/src/paraglide/messages/workspace_settings_invite.js +0 -29
  5652. package/src/paraglide/messages/workspace_settings_inviteemailplaceholder2.js +0 -30
  5653. package/src/paraglide/messages/workspace_settings_inviteemailrequired2.js +0 -30
  5654. package/src/paraglide/messages/workspace_settings_invitefailed1.js +0 -30
  5655. package/src/paraglide/messages/workspace_settings_inviteloading1.js +0 -30
  5656. package/src/paraglide/messages/workspace_settings_invitesuccess1.js +0 -30
  5657. package/src/paraglide/messages/workspace_settings_keepknowledgebases2.js +0 -30
  5658. package/src/paraglide/messages/workspace_settings_keepknowledgebasesdesc3.js +0 -30
  5659. package/src/paraglide/messages/workspace_settings_knowledgebasehandling2.js +0 -30
  5660. package/src/paraglide/messages/workspace_settings_memberremoved1.js +0 -30
  5661. package/src/paraglide/messages/workspace_settings_members.js +0 -29
  5662. package/src/paraglide/messages/workspace_settings_namelabel1.js +0 -30
  5663. package/src/paraglide/messages/workspace_settings_namerequired1.js +0 -30
  5664. package/src/paraglide/messages/workspace_settings_nootherworkspaces2.js +0 -30
  5665. package/src/paraglide/messages/workspace_settings_operationfailed1.js +0 -30
  5666. package/src/paraglide/messages/workspace_settings_pending.js +0 -29
  5667. package/src/paraglide/messages/workspace_settings_projecthandling1.js +0 -30
  5668. package/src/paraglide/messages/workspace_settings_removefailed1.js +0 -30
  5669. package/src/paraglide/messages/workspace_settings_roles_admin.js +0 -29
  5670. package/src/paraglide/messages/workspace_settings_roles_member.js +0 -29
  5671. package/src/paraglide/messages/workspace_settings_roles_owner.js +0 -29
  5672. package/src/paraglide/messages/workspace_settings_roles_viewer.js +0 -29
  5673. package/src/paraglide/messages/workspace_settings_roleupdated1.js +0 -30
  5674. package/src/paraglide/messages/workspace_settings_savechanges1.js +0 -30
  5675. package/src/paraglide/messages/workspace_settings_savefailed1.js +0 -30
  5676. package/src/paraglide/messages/workspace_settings_seatsexceeded1.js +0 -30
  5677. package/src/paraglide/messages/workspace_settings_self.js +0 -29
  5678. package/src/paraglide/messages/workspace_settings_storyhandling1.js +0 -30
  5679. package/src/paraglide/messages/workspace_settings_title.js +0 -29
  5680. package/src/paraglide/messages/workspace_settings_transferprojects1.js +0 -30
  5681. package/src/paraglide/messages/workspace_settings_transferprojectsdesc2.js +0 -30
  5682. package/src/paraglide/messages/workspace_settings_transfertarget1.js +0 -30
  5683. package/src/paraglide/messages/workspace_settings_transfertargetplaceholder2.js +0 -30
  5684. package/src/paraglide/messages/workspace_settings_unknownuser1.js +0 -30
  5685. package/src/paraglide/messages/workspace_settings_updatesuccess1.js +0 -30
  5686. package/src/paraglide/messages/workspace_settings_workspacedeleted1.js +0 -30
  5687. package/src/paraglide/messages/workspace_title.js +0 -29
  5688. package/src/paraglide/messages/workspaces_askai_overview1.js +0 -30
  5689. package/src/paraglide/messages/workspaces_askai_seats1.js +0 -30
  5690. package/src/routes/_nav/acceptance-criteria/route.tsx +0 -27
  5691. package/src/routes/_nav/tags/$id/route.lazy.tsx +0 -23
  5692. package/src/routes/_nav/tags/$id/route.tsx +0 -20
  5693. package/src/routes/_nav/tags/index.lazy.tsx +0 -23
  5694. package/src/routes/_nav/tags/index.tsx +0 -20
  5695. package/src/routes/_nav/tags/route.tsx +0 -22
  5696. package/src/routes/_nav/tags/settings/route.lazy.tsx +0 -23
  5697. package/src/routes/_nav/tags/settings/route.tsx +0 -23
  5698. package/src/server/serverFns/tags.ts +0 -138
  5699. /package/src/components/{story/detail → shared-kit/comments}/emoji-picker.tsx +0 -0
  5700. /package/src/components/story/{schemas/story-create.ts → story-create-schema.ts} +0 -0
@@ -0,0 +1,4466 @@
1
+ import {
2
+ memo,
3
+ useCallback,
4
+ useEffect,
5
+ useLayoutEffect,
6
+ useMemo,
7
+ useRef,
8
+ useState,
9
+ type CSSProperties,
10
+ type RefObject,
11
+ } from "react"
12
+ import {
13
+ DEFAULT_ROW_ALIGN,
14
+ resolveScheduleMode,
15
+ resolveTimelineLines,
16
+ useGantt,
17
+ useGanttSelector,
18
+ useGanttSettings,
19
+ useGanttViewConfig,
20
+ type GanttColumn,
21
+ } from "@/components/reui/gantt/gantt"
22
+ import { GanttBar } from "@/components/reui/gantt/gantt-bar"
23
+ import {
24
+ cancelActiveGanttGestures,
25
+ markGestureEnd,
26
+ useGanttGestures,
27
+ useGanttGestureTeardown,
28
+ wasRecentDrag,
29
+ } from "@/components/reui/gantt/gantt-dnd"
30
+ import {
31
+ buildDependencyPath,
32
+ getBaselineVariance,
33
+ getDayKey,
34
+ getLaneKey,
35
+ getRangeKey,
36
+ MIN_PACK_SLOT,
37
+ packTimedSegments,
38
+ reorderResources,
39
+ resolveEventBaseline,
40
+ resolveOffDay,
41
+ toZoned,
42
+ zonedStartOfDay,
43
+ type GanttLaneMemo,
44
+ } from "@/components/reui/gantt/gantt-lib"
45
+ import type {
46
+ GanttBaseline,
47
+ GanttBaselineVariance,
48
+ GanttDateRange,
49
+ GanttEvent,
50
+ GanttOccurrence,
51
+ GanttResource,
52
+ GanttResourceReorder,
53
+ GanttSegment,
54
+ } from "@/components/reui/gantt/gantt-types"
55
+ import { useGanttRowWindow } from "@/components/reui/gantt/use-gantt-row-window"
56
+ import { mergeProps } from "@base-ui/react/merge-props"
57
+ // Base UI's ScrollArea re-measures its thumb + overflow on mount, viewport
58
+ // resize and scroll, but NOT on a content-size change unless the content sits
59
+ // in a ScrollArea.Content (which carries the content ResizeObserver). ReUI's
60
+ // ScrollArea puts children straight in the Viewport, so the tree/timeline
61
+ // panes wrap their scroll content in this Content to keep the scrollbar in
62
+ // sync when rows expand/collapse or tree columns show/hide. (Radix observes
63
+ // content automatically, so its twin needs no equivalent.)
64
+ import { ScrollArea as ScrollAreaPrimitive } from "@base-ui/react/scroll-area"
65
+ import { useRender } from "@base-ui/react/use-render"
66
+ import {
67
+ addDays,
68
+ addMinutes,
69
+ addMonths,
70
+ format,
71
+ getWeek,
72
+ startOfMonth,
73
+ startOfQuarter,
74
+ startOfWeek,
75
+ type Locale,
76
+ } from "date-fns"
77
+
78
+ import { cn } from "cn"
79
+ import { Button } from "@/components/ui/button"
80
+ import { Checkbox } from "@/components/ui/checkbox"
81
+ import {
82
+ ContextMenu,
83
+ ContextMenuContent,
84
+ ContextMenuTrigger,
85
+ } from "@/components/ui/context-menu"
86
+ import { ScrollArea, ScrollBar } from "@/components/ui/scroll-area"
87
+ import {
88
+ Tooltip,
89
+ TooltipContent,
90
+ TooltipProvider,
91
+ TooltipTrigger,
92
+ } from "@/components/ui/tooltip"
93
+ import { PlusIcon, MinusIcon, GripVerticalIcon, ChevronRightIcon, ChevronLeftIcon } from "lucide-react"
94
+
95
+ /** Current time, refreshed on an interval and on tab focus. */
96
+ function useNow(intervalMs = 30_000): Date {
97
+ const [now, setNow] = useState(() => new Date())
98
+ useEffect(() => {
99
+ const tick = () => setNow(new Date())
100
+ const id = setInterval(tick, intervalMs)
101
+ document.addEventListener("visibilitychange", tick)
102
+ window.addEventListener("focus", tick)
103
+ return () => {
104
+ clearInterval(id)
105
+ document.removeEventListener("visibilitychange", tick)
106
+ window.removeEventListener("focus", tick)
107
+ }
108
+ }, [intervalMs])
109
+ return now
110
+ }
111
+
112
+ /**
113
+ * Today's zoned day key, re-rendering only at the midnight rollover (and on
114
+ * focus/visibility) - the grid needs day granularity, not the 30s now tick.
115
+ */
116
+ function useTodayKey(timeZone: string): string {
117
+ const [key, setKey] = useState(() => getDayKey(new Date(), timeZone))
118
+ useEffect(() => {
119
+ const tick = () =>
120
+ setKey((prev) => {
121
+ const next = getDayKey(new Date(), timeZone)
122
+ return next === prev ? prev : next
123
+ })
124
+ tick()
125
+ const id = setInterval(tick, 60_000)
126
+ document.addEventListener("visibilitychange", tick)
127
+ window.addEventListener("focus", tick)
128
+ return () => {
129
+ clearInterval(id)
130
+ document.removeEventListener("visibilitychange", tick)
131
+ window.removeEventListener("focus", tick)
132
+ }
133
+ }, [timeZone])
134
+ return key
135
+ }
136
+
137
+ /**
138
+ * Lowest lane free for [startMs, endMs) among a row's segments, padded by
139
+ * MIN_PACK_SLOT exactly as packTimedSegments pads its own occupancy test.
140
+ * Comparing raw instants instead lets a sub-slot bar read as clear, so an
141
+ * affordance would promise a lane the packer then refuses.
142
+ *
143
+ * Shared by the hover hint and the drag placeholder on purpose: two copies of
144
+ * this is how the ring and the range it paints end up on different tracks.
145
+ */
146
+ function lowestFreeLane(
147
+ segments: GanttSegment[],
148
+ startMs: number,
149
+ endMs: number
150
+ ): number {
151
+ const padMs = MIN_PACK_SLOT * 60000
152
+ const to = Math.max(endMs, startMs + padMs)
153
+ const busy = new Set<number>()
154
+ for (const segment of segments) {
155
+ const segStart = segment.occurrence.start.getTime()
156
+ const segEnd = Math.max(segment.occurrence.end.getTime(), segStart + padMs)
157
+ if (segStart < to && segEnd > startMs) busy.add(segment.column ?? 0)
158
+ }
159
+ let lane = 0
160
+ while (busy.has(lane)) lane += 1
161
+ return lane
162
+ }
163
+
164
+ /**
165
+ * Pointer x resolved against the element's TIME axis: the 0..1 fraction and
166
+ * the same measurement in CSS pixels from the axis start. Mirrored in RTL,
167
+ * where the range start renders at the element's right edge. One rect read
168
+ * and one style read, because this runs on every pointer move.
169
+ */
170
+ function trackPoint(
171
+ el: HTMLElement,
172
+ clientX: number
173
+ ): { fraction: number; offset: number } {
174
+ const rect = el.getBoundingClientRect()
175
+ const rtl = getComputedStyle(el).direction === "rtl"
176
+ const offset = rtl ? rect.right - clientX : clientX - rect.left
177
+ // `offset` is exact and drives the time maths. `snapped` is the same value
178
+ // biased so that rect start + snapped lands on a WHOLE viewport pixel: the
179
+ // row's own edge routinely sits on a half pixel, so rounding the offset
180
+ // alone still puts anything placed at it between two pixels.
181
+ const snapped = rtl
182
+ ? rect.right - Math.round(clientX)
183
+ : Math.round(clientX) - rect.left
184
+ return {
185
+ fraction: rect.width > 0 ? offset / rect.width : 0,
186
+ offset: snapped,
187
+ }
188
+ }
189
+
190
+ /** Fraction only, for the call sites that do not place anything. */
191
+ function trackFraction(el: HTMLElement, clientX: number): number {
192
+ return trackPoint(el, clientX).fraction
193
+ }
194
+
195
+ /**
196
+ * Row geometry is three numbers: a bar is LANE_HEIGHT_REM tall, stacked bars
197
+ * are separated by LANE_GAP_REM, and the block as a whole is inset from the
198
+ * row's edges by ROW_PADDING_REM. Padding and gap are deliberately NOT the
199
+ * same value - schedules in one node belong together, so they sit tight, while
200
+ * the row still needs real breathing room above and below. Every inter-lane
201
+ * gap is identical, which is what keeps a stacked row reading evenly.
202
+ */
203
+ const LANE_HEIGHT_REM = 1.25
204
+ const LANE_GAP_REM = 0.1875
205
+ const ROW_PADDING_REM = 0.5
206
+ /** Default drop-indicator height, centered inside its lane band; a consumer
207
+ * overrides it with metrics.ghostHeight (published as --gantt-ghost-height). */
208
+ const GHOST_HEIGHT_REM = 1.25
209
+
210
+ /**
211
+ * The ONE lane-pitch formula: top of lane `lane` inside a row. Every overlay
212
+ * that rides a lane (bar, baseline ghost, drag ghost, hint ring, slot draft)
213
+ * reads it, so their vertical positions can never drift apart.
214
+ */
215
+ function laneTopRem(
216
+ laneOffsetRem: number,
217
+ lane: number,
218
+ laneHeightRem: number,
219
+ laneGapRem: number
220
+ ): number {
221
+ return laneOffsetRem + lane * (laneHeightRem + laneGapRem)
222
+ }
223
+
224
+ /** Height of a stack of `count` lanes, inter-lane gaps included. */
225
+ function laneBlockRem(
226
+ count: number,
227
+ laneHeightRem: number,
228
+ laneGapRem: number
229
+ ): number {
230
+ return count * laneHeightRem + (count - 1) * laneGapRem
231
+ }
232
+ /** Bars narrower than this flip their title outside in barLabel "auto". */
233
+ const AUTO_LABEL_MIN_REM = 7
234
+ const DEFAULT_TREE_PANEL = {
235
+ width: 288,
236
+ minWidth: 180,
237
+ maxWidth: 640,
238
+ resizable: true,
239
+ nameColumnWidth: 208,
240
+ }
241
+ const DEFAULT_COLUMN_WIDTH = 96
242
+ const DEFAULT_ZOOM_RANGE = { min: 0.5, max: 3 }
243
+ /** Timeline pane never shrinks below this so it stays usable on narrow screens. */
244
+ const MIN_TIMELINE_WIDTH = 200
245
+ /** Scroll distance from an edge that triggers infinite-range growth. */
246
+ const INFINITE_EDGE_PX = 160
247
+
248
+ interface TimelineUnit {
249
+ key: string
250
+ label: string
251
+ ms: number
252
+ /** Relative width share; uniform scales use 1 (year: days per month). */
253
+ weight: number
254
+ isToday?: boolean
255
+ isOff?: boolean
256
+ }
257
+
258
+ interface TimelineGroup {
259
+ key: string
260
+ label: string
261
+ span: number
262
+ }
263
+
264
+ interface TimelineRow {
265
+ resource: GanttResource
266
+ parentId: string | null
267
+ depth: number
268
+ isGroup: boolean
269
+ collapsed: boolean
270
+ }
271
+
272
+ /** One planned window resolved against the visible range, ready to position. */
273
+ interface RowBaseline {
274
+ event: GanttEvent
275
+ baseline: GanttBaseline
276
+ /** Minutes from the range start, clamped to the range like segment minutes. */
277
+ startMin: number
278
+ endMin: number
279
+ /** The lane of the event's own bar, so the ghost sits under it. An orphan
280
+ * (its bar slipped out of the range) takes the lowest lane free for its
281
+ * window instead; the layout pass drops it when the row has none. */
282
+ lane: number
283
+ variance: GanttBaselineVariance
284
+ }
285
+
286
+ /** The NODE's own planned window, resolved against the visible range. */
287
+ interface RowLevelBaseline {
288
+ baseline: GanttBaseline
289
+ startMin: number
290
+ endMin: number
291
+ /** Latest actual end (subtree included for groups) vs the planned end;
292
+ * null when the node has no events to compare. */
293
+ variance: GanttBaselineVariance | null
294
+ }
295
+
296
+ /** Per-row packed bars plus the extents the off-screen chips need. */
297
+ interface TimelineRowBars {
298
+ segments: GanttSegment[]
299
+ laneCount: number
300
+ /**
301
+ * Planned windows ghosted behind this row's bars. Derived from EVENTS, not
302
+ * occurrences, so a bar that slipped entirely out of the visible range
303
+ * still shows the plan it missed. Empty when baselineBars is off. Never an
304
+ * input to packing or row height - a baseline changes no geometry.
305
+ */
306
+ baselines: RowBaseline[]
307
+ /** The node's own planned window band; null without one (or with
308
+ * baselineBars off). Same no-geometry rule as the per-event ghosts. */
309
+ rowBaseline: RowLevelBaseline | null
310
+ /**
311
+ * Lane a drag-create in flight would land on, or null when none is aimed at
312
+ * this row. The row reserves the track, so it grows exactly as it will on
313
+ * commit and the placeholder never has to overlap the bar it is going under.
314
+ * Computed here, once, because BOTH panes size themselves from this object -
315
+ * deriving it a second time in the timeline row is how the two would drift.
316
+ */
317
+ draftLane: number | null
318
+ /** Mode this row was packed under; the draft overlay must honour it. */
319
+ scheduleMode: "single" | "multiple"
320
+ heightRem: number
321
+ /** Gap above the first bar; equal to every other gap in the row. */
322
+ laneOffsetRem: number
323
+ /**
324
+ * The band the FIRST schedule occupies, its gaps included. The tree cell
325
+ * sizes its label box to exactly this, so the label and the first bar share
326
+ * a centerline however many lanes the node grew.
327
+ */
328
+ bandRem: number
329
+ /** Envelope of all bars, as track fractions; null when the row is empty. */
330
+ extent: {
331
+ from: number
332
+ to: number
333
+ color?: string
334
+ label: string
335
+ /** First bar start, for the jump-chip tooltip. */
336
+ startMs: number
337
+ } | null
338
+ /**
339
+ * Parent rollup: descendant-bar envelope + duration-weighted progress,
340
+ * present only on group rows without bars of their own.
341
+ */
342
+ summary: { from: number; to: number; progress: number | null } | null
343
+ }
344
+
345
+ interface TimelineReorderState {
346
+ resourceId: string
347
+ /** Insertion offset (px) within the tree pane. */
348
+ top: number
349
+ valid: boolean
350
+ proposal: GanttResourceReorder | null
351
+ }
352
+
353
+ /** Shared empty set so rows without dependency data never churn on identity. */
354
+ const EMPTY_ID_SET: ReadonlySet<string> = new Set()
355
+
356
+ /** One finish-to-start arrow, both anchors in track rem coordinates. */
357
+ interface DependencyEdge {
358
+ key: string
359
+ /** Predecessor and dependent event ids, so a gesture can re-anchor its own
360
+ * endpoints live. */
361
+ fromId: string
362
+ toId: string
363
+ fromX: number
364
+ fromY: number
365
+ toX: number
366
+ toY: number
367
+ }
368
+
369
+ interface GanttViewProps extends useRender.ComponentProps<"div"> {
370
+ /** Day-scale unit interval in minutes; defaults to the interval view config. */
371
+ interval?: number
372
+ }
373
+
374
+ /** The pane's scrollable viewport (custom ScrollArea or native host). */
375
+ function getPaneViewport(pane: HTMLElement | null): HTMLElement | null {
376
+ return (
377
+ pane?.querySelector<HTMLElement>("[data-slot=scroll-area-viewport]") ?? null
378
+ )
379
+ }
380
+
381
+ /** Distance scrolled from the inline-start edge (RTL reports negative). */
382
+ function getScrollStart(viewport: HTMLElement): number {
383
+ return Math.abs(viewport.scrollLeft)
384
+ }
385
+
386
+ /** Write a distance-from-inline-start back as a signed scrollLeft. */
387
+ function setScrollStart(viewport: HTMLElement, value: number) {
388
+ viewport.scrollLeft =
389
+ getComputedStyle(viewport).direction === "rtl" ? -value : value
390
+ }
391
+
392
+ function GanttView({
393
+ className,
394
+ render,
395
+ interval: intervalProp,
396
+ ...props
397
+ }: GanttViewProps) {
398
+ const instance = useGantt()
399
+ const settings = useGanttSettings()
400
+ const viewConfig = useGanttViewConfig()
401
+ const range = useGanttSelector<unknown, GanttDateRange>(
402
+ (state) => state.visibleRange,
403
+ { isEqual: (a, b) => getRangeKey(a) === getRangeKey(b) }
404
+ )
405
+ const occurrences = useGanttSelector<unknown, GanttOccurrence[]>(
406
+ () => instance.api.getOccurrences(),
407
+ {
408
+ calendar: instance,
409
+ isEqual: (a, b) =>
410
+ a.length === b.length &&
411
+ a.every(
412
+ (occ, i) =>
413
+ occ.key === b[i]?.key &&
414
+ occ.start.getTime() === b[i]?.start.getTime() &&
415
+ occ.end.getTime() === b[i]?.end.getTime() &&
416
+ occ.event === b[i]?.event
417
+ ),
418
+ }
419
+ )
420
+
421
+ // Tree expand/collapse: controlled (collapsedGroups/onCollapsedGroupsChange)
422
+ // or uncontrolled (defaultCollapsedGroups) - same pattern as selectedRows.
423
+ const [internalCollapsed, setInternalCollapsed] = useState<string[]>(
424
+ () => viewConfig.defaultCollapsedGroups ?? []
425
+ )
426
+ const collapsedIds = viewConfig.collapsedGroups ?? internalCollapsed
427
+ const collapsedGroups = useMemo(() => new Set(collapsedIds), [collapsedIds])
428
+
429
+ const scale = useGanttSelector((state) => state.scale)
430
+ const interval = Math.min(
431
+ Math.max(intervalProp ?? viewConfig.interval, 15),
432
+ 240
433
+ )
434
+ // Every layout metric is consumer-overridable; unset keys keep defaults.
435
+ const metrics = viewConfig.metrics
436
+ const laneHeightRem = metrics?.laneHeight ?? LANE_HEIGHT_REM
437
+ const rowPaddingRem = metrics?.rowPadding ?? ROW_PADDING_REM
438
+ const laneGapRem = metrics?.laneGap ?? LANE_GAP_REM
439
+ const minRowRem = metrics?.minRowHeight ?? 2.5
440
+ const ghostHeightRem = metrics?.ghostHeight ?? GHOST_HEIGHT_REM
441
+ const minTimelineWidth = metrics?.minTimelineWidth ?? MIN_TIMELINE_WIDTH
442
+ const infiniteEdgePx = metrics?.infiniteScrollEdge ?? INFINITE_EDGE_PX
443
+ const timeZone = settings.timeZone
444
+ const rangeStartMs = range.start.getTime()
445
+ const rangeEndMs = range.end.getTime()
446
+ const rangeKey = getRangeKey(range)
447
+ const snapMin = scale === "day" ? settings.snapDuration : 24 * 60
448
+ // day-granular time input so the today highlight rolls over at midnight
449
+ // without the whole grid re-rendering on the 30s now tick
450
+ const todayDayKey = useTodayKey(timeZone)
451
+
452
+ const rows = useMemo(() => {
453
+ const result: TimelineRow[] = []
454
+ const walk = (
455
+ resources: GanttResource[],
456
+ depth: number,
457
+ parentId: string | null
458
+ ) => {
459
+ for (const resource of resources) {
460
+ const isGroup = !!resource.children?.length
461
+ const collapsed = collapsedGroups.has(resource.id)
462
+ result.push({ resource, parentId, depth, isGroup, collapsed })
463
+ if (isGroup && !collapsed)
464
+ walk(resource.children!, depth + 1, resource.id)
465
+ }
466
+ }
467
+ walk(settings.resources, 0, null)
468
+ return result
469
+ }, [settings.resources, collapsedGroups])
470
+
471
+ // Header model: bottom row = units, top row = grouping sectors.
472
+ // Weights are proportional to REAL duration (a 23h/25h DST day differs from
473
+ // its siblings), so weight-driven gridlines, ms-fraction bar geometry, and
474
+ // the dnd pointer math all share one coordinate system.
475
+ const { units, groups, unitWidthRem } = useMemo(() => {
476
+ const units: TimelineUnit[] = []
477
+ const groups: TimelineGroup[] = []
478
+ // day-start ms for the today window checks; recomputed when the day key
479
+ // rolls over (this memo depends on todayDayKey)
480
+ const todayStartMs = zonedStartOfDay(new Date(), timeZone).getTime()
481
+ if (scale === "day") {
482
+ const labelFormat =
483
+ interval % 60 === 0 ? settings.i18n.formats.timeGutter : "h:mm"
484
+ // walk whole days: infinite scroll can extend the range past one day
485
+ let dayCursor = zonedStartOfDay(range.start, timeZone)
486
+ while (dayCursor.getTime() < rangeEndMs) {
487
+ const zonedDay = toZoned(dayCursor, timeZone)
488
+ const nextDay = zonedStartOfDay(addDays(zonedDay, 1), timeZone)
489
+ const dayMinutes = (nextDay.getTime() - dayCursor.getTime()) / 60000
490
+ const dayOff = resolveOffDay(
491
+ dayCursor,
492
+ timeZone,
493
+ viewConfig.offDays ?? true
494
+ )
495
+ let span = 0
496
+ for (let m = 0; m < dayMinutes; m += interval) {
497
+ const time = addMinutes(zonedDay, m)
498
+ // a DST day whose minutes don't divide evenly leaves a short
499
+ // final unit; its weight must be its REAL share or bars drift
500
+ const weight = Math.min(interval, dayMinutes - m) / interval
501
+ units.push({
502
+ key: `${getDayKey(dayCursor, timeZone)}-m${m}`,
503
+ label: format(time, labelFormat, { locale: settings.locale }),
504
+ ms: time.getTime(),
505
+ weight,
506
+ isOff: dayOff,
507
+ })
508
+ span += weight
509
+ }
510
+ groups.push({
511
+ key: getDayKey(dayCursor, timeZone),
512
+ label: format(zonedDay, settings.i18n.formats.dayTitle, {
513
+ locale: settings.locale,
514
+ }),
515
+ span,
516
+ })
517
+ dayCursor = nextDay
518
+ }
519
+ return {
520
+ units,
521
+ groups,
522
+ unitWidthRem:
523
+ metrics?.unitWidths?.day ?? Math.max(2.5, 5 * (interval / 60)),
524
+ }
525
+ }
526
+ if (scale === "quarter") {
527
+ // units are week-aligned weeks (lib aligns the range), groups are months
528
+ let cursor = zonedStartOfDay(range.start, timeZone)
529
+ while (cursor.getTime() < rangeEndMs) {
530
+ const zoned = toZoned(cursor, timeZone)
531
+ const next = zonedStartOfDay(addDays(zoned, 7), timeZone)
532
+ // real week duration / nominal week: 1 except across DST changes
533
+ const weight =
534
+ (next.getTime() - cursor.getTime()) / (7 * 24 * 60 * 60000)
535
+ units.push({
536
+ key: getDayKey(cursor, timeZone),
537
+ label: format(zoned, "MMM d", { locale: settings.locale }),
538
+ ms: cursor.getTime(),
539
+ weight,
540
+ isToday:
541
+ todayStartMs >= cursor.getTime() && todayStartMs < next.getTime(),
542
+ })
543
+ const monthKey = format(zoned, "yyyy-MM")
544
+ const lastGroup = groups[groups.length - 1]
545
+ if (lastGroup && lastGroup.key === monthKey) {
546
+ lastGroup.span += weight
547
+ } else {
548
+ groups.push({
549
+ key: monthKey,
550
+ label: format(zoned, "MMMM", { locale: settings.locale }),
551
+ span: weight,
552
+ })
553
+ }
554
+ cursor = next
555
+ }
556
+ return { units, groups, unitWidthRem: metrics?.unitWidths?.quarter ?? 8 }
557
+ }
558
+ if (scale === "year") {
559
+ // units are calendar months (weight = real duration), groups are quarters
560
+ let cursor: Date = startOfMonth(toZoned(range.start, timeZone))
561
+ while (cursor.getTime() < rangeEndMs) {
562
+ const next = startOfMonth(addMonths(cursor, 1))
563
+ // nominal-day units so a month reads ~30 wide; real ms keeps DST months true
564
+ const weight = (next.getTime() - cursor.getTime()) / (24 * 60 * 60000)
565
+ units.push({
566
+ key: format(cursor, "yyyy-MM"),
567
+ label: format(cursor, "MMM", { locale: settings.locale }),
568
+ ms: cursor.getTime(),
569
+ weight,
570
+ isToday:
571
+ todayStartMs >= cursor.getTime() && todayStartMs < next.getTime(),
572
+ })
573
+ const quarterStart = startOfQuarter(cursor)
574
+ const quarterKey = format(quarterStart, "yyyy-QQQ")
575
+ const lastGroup = groups[groups.length - 1]
576
+ if (lastGroup && lastGroup.key === quarterKey) {
577
+ lastGroup.span += weight
578
+ } else {
579
+ groups.push({
580
+ key: quarterKey,
581
+ label: format(quarterStart, "QQQ yyyy", {
582
+ locale: settings.locale,
583
+ }),
584
+ span: weight,
585
+ })
586
+ }
587
+ cursor = next
588
+ }
589
+ return { units, groups, unitWidthRem: metrics?.unitWidths?.year ?? 10 }
590
+ }
591
+ // week/month: units are days, groups are ISO-ish weeks
592
+ let cursor = zonedStartOfDay(range.start, timeZone)
593
+ while (cursor.getTime() < rangeEndMs) {
594
+ const zoned = toZoned(cursor, timeZone)
595
+ const nextDay = zonedStartOfDay(addDays(zoned, 1), timeZone)
596
+ // real day duration / 24h: 1 except the 23h/25h DST days
597
+ const weight = (nextDay.getTime() - cursor.getTime()) / (24 * 60 * 60000)
598
+ units.push({
599
+ key: getDayKey(cursor, timeZone),
600
+ label: format(zoned, "EEE d", { locale: settings.locale }),
601
+ ms: cursor.getTime(),
602
+ weight,
603
+ isToday: getDayKey(cursor, timeZone) === todayDayKey,
604
+ isOff: resolveOffDay(cursor, timeZone, viewConfig.offDays ?? true),
605
+ })
606
+ // locale supplies firstWeekContainsDate so W-numbers match the locale's
607
+ // week numbering (ISO in de/fr, US-style otherwise); the explicit
608
+ // weekStartsOn keeps the number aligned with the rendered grid
609
+ const weekNumber = getWeek(zoned, {
610
+ locale: settings.locale,
611
+ weekStartsOn: settings.weekStartsOn,
612
+ })
613
+ // key + label from the true week start: a range that begins midweek
614
+ // must not split or mislabel its first group (incl. the Jan 1 week)
615
+ const weekStart = startOfWeek(zoned, {
616
+ weekStartsOn: settings.weekStartsOn,
617
+ })
618
+ const weekKey = `w-${format(weekStart, "yyyy-MM-dd")}`
619
+ const lastGroup = groups[groups.length - 1]
620
+ if (lastGroup && lastGroup.key === weekKey) {
621
+ lastGroup.span += weight
622
+ } else {
623
+ groups.push({
624
+ key: weekKey,
625
+ label: `${settings.i18n.labels.week(weekNumber)} ${format(weekStart, "MMM d", { locale: settings.locale })} - ${format(addDays(weekStart, 6), "d", { locale: settings.locale })}`,
626
+ span: weight,
627
+ })
628
+ }
629
+ cursor = nextDay
630
+ }
631
+ return {
632
+ units,
633
+ groups,
634
+ unitWidthRem: metrics?.unitWidths?.[scale] ?? (scale === "week" ? 10 : 4),
635
+ }
636
+ }, [
637
+ scale,
638
+ interval,
639
+ range.start,
640
+ rangeEndMs,
641
+ timeZone,
642
+ settings.i18n,
643
+ settings.locale,
644
+ settings.weekStartsOn,
645
+ viewConfig.offDays,
646
+ todayDayKey,
647
+ metrics,
648
+ ])
649
+
650
+ // Zoom multiplies the minimum unit width; the flex track still fills when
651
+ // the zoomed width is narrower than the pane. Controlled (zoom/onZoomChange)
652
+ // or uncontrolled (defaultZoom) - same pattern as selectedRows.
653
+ const zoomRange = { ...DEFAULT_ZOOM_RANGE, ...viewConfig.zoomRange }
654
+ const clampZoom = (value: number) =>
655
+ Math.min(Math.max(value, zoomRange.min), zoomRange.max)
656
+ const [internalZoom, setInternalZoom] = useState(
657
+ () => viewConfig.defaultZoom ?? 1
658
+ )
659
+ const zoom = clampZoom(viewConfig.zoom ?? internalZoom)
660
+ const setZoomValue = (next: number) => {
661
+ const clamped = clampZoom(next)
662
+ if (viewConfig.zoom === undefined) setInternalZoom(clamped)
663
+ viewConfig.onZoomChange?.(clamped)
664
+ }
665
+ const canZoomIn = zoom < zoomRange.max - 1e-9
666
+ const canZoomOut = zoom > zoomRange.min + 1e-9
667
+ const trackRemWidth = units.length * unitWidthRem * zoom
668
+ const trackWidth = `${trackRemWidth}rem`
669
+ // unequal weights (year months, DST-containing day/week ranges) draw
670
+ // boundaries from weight fractions instead of the uniform gradient
671
+ const uniform = units.every(
672
+ (unit) => Math.abs(unit.weight - units[0].weight) < 1e-9
673
+ )
674
+ const totalWeight = units.reduce((sum, unit) => sum + unit.weight, 0)
675
+ /** Cumulative start/width fractions per unit, for backdrop stripes/lines. */
676
+ const unitFractions = useMemo(() => {
677
+ let acc = 0
678
+ return units.map((unit) => {
679
+ const start = acc / totalWeight
680
+ acc += unit.weight
681
+ return { unit, start, width: unit.weight / totalWeight }
682
+ })
683
+ }, [units, totalWeight])
684
+ /** Snap a track fraction to its unit (hint preview target). */
685
+ const resolveHintStop = useMemo(() => {
686
+ return (
687
+ fraction: number
688
+ ): { index: number; center: number; ms: number; endMs: number } | null => {
689
+ for (let i = 0; i < unitFractions.length; i++) {
690
+ const { unit, start, width } = unitFractions[i]
691
+ if (fraction < start + width || i === unitFractions.length - 1) {
692
+ return {
693
+ index: i,
694
+ center: start + width / 2,
695
+ ms: unit.ms,
696
+ endMs: unitFractions[i + 1]?.unit.ms ?? unit.ms,
697
+ }
698
+ }
699
+ }
700
+ return null
701
+ }
702
+ }, [unitFractions])
703
+
704
+ /** Group boundary fractions; spans are in unit-weight terms everywhere. */
705
+ const groupBoundaries = useMemo(() => {
706
+ const fractions: number[] = []
707
+ let acc = 0
708
+ for (let i = 0; i < groups.length - 1; i++) {
709
+ acc += groups[i].span
710
+ fractions.push(acc / totalWeight)
711
+ }
712
+ return fractions
713
+ }, [groups, totalWeight])
714
+ /** Resource id -> every descendant id, for parent rollups. */
715
+ const descendantIds = useMemo(() => {
716
+ const map = new Map<string, string[]>()
717
+ const walk = (resource: GanttResource): string[] => {
718
+ const ids = (resource.children ?? []).flatMap((child) => [
719
+ child.id,
720
+ ...walk(child),
721
+ ])
722
+ map.set(resource.id, ids)
723
+ return ids
724
+ }
725
+ settings.resources.forEach(walk)
726
+ return map
727
+ }, [settings.resources])
728
+
729
+ // All events (not just visible occurrences) so parent rollup progress is
730
+ // all-time and matches a consumer's own tree rollup, independent of scroll.
731
+ const allEvents = useGanttSelector<unknown, GanttEvent[]>(
732
+ (state) => state.events
733
+ )
734
+ const subtreeProgress = useMemo(() => {
735
+ // consumer-owned rollup math: hand each group its descendant events
736
+ if (viewConfig.getSummaryProgress) {
737
+ const byResource = new Map<string, GanttEvent[]>()
738
+ for (const ev of allEvents) {
739
+ if (!ev.resourceId) continue
740
+ const list = byResource.get(ev.resourceId)
741
+ if (list) list.push(ev)
742
+ else byResource.set(ev.resourceId, [ev])
743
+ }
744
+ const map = new Map<string, number | null>()
745
+ for (const row of rows) {
746
+ if (!row.isGroup) continue
747
+ const events: GanttEvent[] = []
748
+ for (const id of descendantIds.get(row.resource.id) ?? []) {
749
+ const list = byResource.get(id)
750
+ if (list) events.push(...list)
751
+ }
752
+ map.set(
753
+ row.resource.id,
754
+ viewConfig.getSummaryProgress({ resource: row.resource, events })
755
+ )
756
+ }
757
+ return map
758
+ }
759
+ // default: one pass over events -> per-resource aggregates, then a cheap
760
+ // descendant sum per group; never O(rows x events)
761
+ const perResource = new Map<
762
+ string,
763
+ { weighted: number; total: number; saw: boolean }
764
+ >()
765
+ for (const ev of allEvents) {
766
+ if (!ev.resourceId) continue
767
+ let agg = perResource.get(ev.resourceId)
768
+ if (!agg) {
769
+ agg = { weighted: 0, total: 0, saw: false }
770
+ perResource.set(ev.resourceId, agg)
771
+ }
772
+ const dur = Math.max(ev.end.getTime() - ev.start.getTime(), 1)
773
+ agg.total += dur
774
+ if (typeof ev.progress === "number") {
775
+ agg.saw = true
776
+ agg.weighted += ev.progress * dur
777
+ }
778
+ }
779
+ const map = new Map<string, number | null>()
780
+ for (const row of rows) {
781
+ if (!row.isGroup) continue
782
+ let weighted = 0
783
+ let weightTotal = 0
784
+ let saw = false
785
+ for (const id of descendantIds.get(row.resource.id) ?? []) {
786
+ const agg = perResource.get(id)
787
+ if (!agg) continue
788
+ weightTotal += agg.total
789
+ if (agg.saw) {
790
+ saw = true
791
+ weighted += agg.weighted
792
+ }
793
+ }
794
+ map.set(
795
+ row.resource.id,
796
+ saw && weightTotal > 0
797
+ ? Math.min(Math.max(Math.round(weighted / weightTotal), 0), 100)
798
+ : null
799
+ )
800
+ }
801
+ return map
802
+ }, [rows, allEvents, descendantIds, viewConfig.getSummaryProgress])
803
+
804
+ // Lane memory across layout passes, keyed by getLaneKey (event identity,
805
+ // NOT the time-stamped occurrence key). It stores the TIMES alongside the
806
+ // lane so the packer can tell the schedule the user just edited apart from
807
+ // the ones that sat still: untouched schedules keep their lane, the edited
808
+ // one re-seeks. Written during the memo below on purpose: the pass is
809
+ // idempotent - feeding its own output back in produces the same assignment -
810
+ // so a StrictMode double render is a no-op.
811
+ const laneMemory = useRef(new Map<string, GanttLaneMemo>())
812
+ const scheduleMode = viewConfig.scheduleMode
813
+
814
+ // Per-row packed bars, hoisted so the tree and timeline rows share heights
815
+ // A drag-create in flight. Reduced to the three fields the layout needs, and
816
+ // compared by value, so this re-runs only when the SNAPPED range moves - the
817
+ // gesture engine already gates setSlotDraft on exactly that, so it is a
818
+ // handful of recomputes per drag rather than one per frame.
819
+ const draftLayout = useGanttSelector<
820
+ unknown,
821
+ { resourceId: string; startMs: number; endMs: number } | null
822
+ >(
823
+ (state) => {
824
+ const slotDraft = state.slotDraft
825
+ if (!slotDraft?.resourceId) return null
826
+ return {
827
+ resourceId: slotDraft.resourceId,
828
+ startMs: slotDraft.start.getTime(),
829
+ endMs: slotDraft.end.getTime(),
830
+ }
831
+ },
832
+ {
833
+ isEqual: (a, b) =>
834
+ a === b ||
835
+ (a !== null &&
836
+ b !== null &&
837
+ a.resourceId === b.resourceId &&
838
+ a.startMs === b.startMs &&
839
+ a.endMs === b.endMs),
840
+ }
841
+ )
842
+
843
+ const baseRowBars = useMemo(() => {
844
+ const map = new Map<string, TimelineRowBars>()
845
+ // read the lanes the previous pass settled on, write the ones this pass
846
+ // settles on; rebuilding (not mutating) prunes schedules that are gone
847
+ const previousLanes = laneMemory.current
848
+ const nextLanes = new Map<string, GanttLaneMemo>()
849
+ const totalMin = (rangeEndMs - rangeStartMs) / 60000
850
+ // one pass: occurrences grouped by resource, plus per-resource envelopes
851
+ // for the parent rollups (never O(rows x occurrences))
852
+ const byResource = new Map<string, GanttOccurrence[]>()
853
+ const envelopes = new Map<string, { fromMin: number; toMin: number }>()
854
+ for (const occ of occurrences) {
855
+ const rid = occ.event.resourceId
856
+ if (!rid) continue
857
+ const list = byResource.get(rid)
858
+ if (list) list.push(occ)
859
+ else byResource.set(rid, [occ])
860
+ const fromMin = Math.max((occ.start.getTime() - rangeStartMs) / 60000, 0)
861
+ const toMin = Math.min(
862
+ (occ.end.getTime() - rangeStartMs) / 60000,
863
+ totalMin
864
+ )
865
+ const env = envelopes.get(rid)
866
+ if (!env) {
867
+ envelopes.set(rid, { fromMin, toMin })
868
+ } else {
869
+ env.fromMin = Math.min(env.fromMin, fromMin)
870
+ env.toMin = Math.max(env.toMin, toMin)
871
+ }
872
+ }
873
+ // Planned windows group by node in a pass of their own, over EVENTS: an
874
+ // event whose actual bar slipped clear of the range has no occurrence
875
+ // above, but its plan should still show where it was missed. The same
876
+ // pass records each node's latest actual end (all-time, like the summary
877
+ // rollup) for the row-baseline variance readout.
878
+ const baselinesByResource = new Map<
879
+ string,
880
+ Array<{ event: GanttEvent; baseline: GanttBaseline }>
881
+ >()
882
+ const latestEndByResource = new Map<string, number>()
883
+ if (viewConfig.baselineBars) {
884
+ for (const event of allEvents) {
885
+ if (!event.resourceId) continue
886
+ const endMsActual = event.end.getTime()
887
+ const prev = latestEndByResource.get(event.resourceId)
888
+ if (prev === undefined || endMsActual > prev) {
889
+ latestEndByResource.set(event.resourceId, endMsActual)
890
+ }
891
+ const baseline = resolveEventBaseline(event)
892
+ if (!baseline) continue
893
+ const startMs = baseline.start.getTime()
894
+ const endMs = baseline.end.getTime()
895
+ // half-open like the bars; the closed compare keeps a planned
896
+ // milestone sitting exactly on a range edge visible
897
+ const visible = baseline.milestone
898
+ ? startMs >= rangeStartMs && startMs <= rangeEndMs
899
+ : startMs < rangeEndMs && endMs > rangeStartMs
900
+ if (!visible) continue
901
+ const list = baselinesByResource.get(event.resourceId)
902
+ const entry = { event, baseline }
903
+ if (list) list.push(entry)
904
+ else baselinesByResource.set(event.resourceId, [entry])
905
+ }
906
+ }
907
+ for (const row of rows) {
908
+ const mine = byResource.get(row.resource.id) ?? []
909
+ const segments: GanttSegment[] = mine.map((occurrence) => ({
910
+ occurrence,
911
+ day: new Date(rangeStartMs),
912
+ isStart: occurrence.start.getTime() >= rangeStartMs,
913
+ isEnd: occurrence.end.getTime() <= rangeEndMs,
914
+ continuesBefore: occurrence.start.getTime() < rangeStartMs,
915
+ continuesAfter: occurrence.end.getTime() > rangeEndMs,
916
+ startMin: Math.max(
917
+ (occurrence.start.getTime() - rangeStartMs) / 60000,
918
+ 0
919
+ ),
920
+ endMin: Math.min(
921
+ (occurrence.end.getTime() - rangeStartMs) / 60000,
922
+ totalMin
923
+ ),
924
+ }))
925
+ const mode = resolveScheduleMode(row.resource, scheduleMode)
926
+ packTimedSegments(segments, { mode, preferredLanes: previousLanes })
927
+ for (const segment of segments) {
928
+ nextLanes.set(getLaneKey(segment.occurrence), {
929
+ lane: segment.column ?? 0,
930
+ startMs: segment.occurrence.start.getTime(),
931
+ endMs: segment.occurrence.end.getTime(),
932
+ })
933
+ }
934
+ const laneCount = segments.reduce(
935
+ (max, segment) => Math.max(max, (segment.column ?? 0) + 1),
936
+ 1
937
+ )
938
+ // The ghost rides its bar's settled lane so plan and actual read as one
939
+ // task; pure overlay geometry, never an input to packing or laneCount.
940
+ const plans = baselinesByResource.get(row.resource.id)
941
+ const laneByEvent = plans
942
+ ? new Map(
943
+ segments.map((segment) => [
944
+ segment.occurrence.eventId,
945
+ segment.column ?? 0,
946
+ ])
947
+ )
948
+ : null
949
+ const baselines: RowBaseline[] = plans
950
+ ? plans.flatMap(({ event, baseline }) => {
951
+ // An ORPHAN plan (its bar slipped clear of the range) cannot ride
952
+ // its bar's lane. Lane 0 would pin it under whatever unrelated bar
953
+ // sits there, silently mis-attributing the plan, so it takes the
954
+ // lowest lane that is FREE for its window - and when the row has
955
+ // no free lane, it is omitted: absence beats a false attribution.
956
+ // "single" keeps one shared track, so 0 is honest there.
957
+ let lane = laneByEvent?.get(event.id)
958
+ if (lane === undefined) {
959
+ if (mode === "single" || segments.length === 0) {
960
+ lane = 0
961
+ } else {
962
+ const free = lowestFreeLane(
963
+ segments,
964
+ baseline.start.getTime(),
965
+ baseline.end.getTime()
966
+ )
967
+ if (free >= laneCount) return []
968
+ lane = free
969
+ }
970
+ }
971
+ return [
972
+ {
973
+ event,
974
+ baseline,
975
+ startMin: Math.max(
976
+ (baseline.start.getTime() - rangeStartMs) / 60000,
977
+ 0
978
+ ),
979
+ endMin: Math.min(
980
+ (baseline.end.getTime() - rangeStartMs) / 60000,
981
+ totalMin
982
+ ),
983
+ lane,
984
+ variance: getBaselineVariance(event) ?? "on-time",
985
+ },
986
+ ]
987
+ })
988
+ : []
989
+ let from = Infinity
990
+ let to = -Infinity
991
+ for (const segment of segments) {
992
+ from = Math.min(from, (segment.startMin ?? 0) / totalMin)
993
+ to = Math.max(to, (segment.endMin ?? 0) / totalMin)
994
+ }
995
+
996
+ // Parent rollup from the subtree's bars: envelope clamped to the range,
997
+ // progress weighted by each bar's full duration
998
+ let summary: TimelineRowBars["summary"] = null
999
+ if (row.isGroup && segments.length === 0 && viewConfig.summaryBars) {
1000
+ let sumFrom = Infinity
1001
+ let sumTo = -Infinity
1002
+ for (const id of descendantIds.get(row.resource.id) ?? []) {
1003
+ const env = envelopes.get(id)
1004
+ if (!env) continue
1005
+ sumFrom = Math.min(sumFrom, env.fromMin / totalMin)
1006
+ sumTo = Math.max(sumTo, env.toMin / totalMin)
1007
+ }
1008
+ if (sumTo > sumFrom) {
1009
+ summary = {
1010
+ from: sumFrom,
1011
+ to: sumTo,
1012
+ // all-time completion (matches a consumer's tree rollup), not the
1013
+ // visible-range slice - task progress is independent of scroll
1014
+ progress: subtreeProgress.get(row.resource.id) ?? null,
1015
+ }
1016
+ }
1017
+ }
1018
+
1019
+ // The node's OWN planned window: a band behind all of its lanes.
1020
+ // Variance reads the latest actual end - the subtree's for a group,
1021
+ // matching the summary rollup's all-time philosophy.
1022
+ let rowBaseline: RowLevelBaseline | null = null
1023
+ if (viewConfig.baselineBars) {
1024
+ const plan = resolveEventBaseline(row.resource)
1025
+ if (plan) {
1026
+ const planStartMs = plan.start.getTime()
1027
+ const planEndMs = plan.end.getTime()
1028
+ const planVisible = plan.milestone
1029
+ ? planStartMs >= rangeStartMs && planStartMs <= rangeEndMs
1030
+ : planStartMs < rangeEndMs && planEndMs > rangeStartMs
1031
+ if (planVisible) {
1032
+ const ids = row.isGroup
1033
+ ? [row.resource.id, ...(descendantIds.get(row.resource.id) ?? [])]
1034
+ : [row.resource.id]
1035
+ let latest: number | undefined
1036
+ for (const id of ids) {
1037
+ const end = latestEndByResource.get(id)
1038
+ if (end !== undefined && (latest === undefined || end > latest)) {
1039
+ latest = end
1040
+ }
1041
+ }
1042
+ rowBaseline = {
1043
+ baseline: plan,
1044
+ startMin: Math.max((planStartMs - rangeStartMs) / 60000, 0),
1045
+ endMin: Math.min((planEndMs - rangeStartMs) / 60000, totalMin),
1046
+ variance:
1047
+ latest === undefined
1048
+ ? null
1049
+ : latest > planEndMs
1050
+ ? "late"
1051
+ : latest < planEndMs
1052
+ ? "early"
1053
+ : "on-time",
1054
+ }
1055
+ }
1056
+ }
1057
+ }
1058
+
1059
+ // The stack, then the row's own padding around it. Centering the block
1060
+ // in the resulting height gives an equal inset top and bottom, and it
1061
+ // is also what keeps a lone bar on the tree label's centerline when a
1062
+ // short row is held open by minRowHeight.
1063
+ const blockRem = laneBlockRem(laneCount, laneHeightRem, laneGapRem)
1064
+ const heightRem = Math.max(minRowRem, blockRem + 2 * rowPaddingRem)
1065
+ const laneOffsetRem = (heightRem - blockRem) / 2
1066
+
1067
+ map.set(row.resource.id, {
1068
+ segments,
1069
+ laneCount,
1070
+ baselines,
1071
+ rowBaseline,
1072
+ draftLane: null,
1073
+ scheduleMode: mode,
1074
+ heightRem,
1075
+ laneOffsetRem,
1076
+ bandRem: laneHeightRem + laneOffsetRem * 2,
1077
+ extent:
1078
+ segments.length > 0
1079
+ ? {
1080
+ from,
1081
+ to,
1082
+ color: segments[0].occurrence.event.color,
1083
+ label:
1084
+ segments.length === 1
1085
+ ? segments[0].occurrence.event.title
1086
+ : settings.i18n.labels.events(segments.length),
1087
+ startMs: Math.min(
1088
+ ...segments.map((s) => s.occurrence.start.getTime())
1089
+ ),
1090
+ }
1091
+ : summary
1092
+ ? {
1093
+ from: summary.from,
1094
+ to: summary.to,
1095
+ label: row.resource.title,
1096
+ startMs:
1097
+ rangeStartMs + summary.from * (rangeEndMs - rangeStartMs),
1098
+ }
1099
+ : null,
1100
+ summary,
1101
+ })
1102
+ }
1103
+ laneMemory.current = nextLanes
1104
+ return map
1105
+ }, [
1106
+ rows,
1107
+ occurrences,
1108
+ allEvents,
1109
+ rangeStartMs,
1110
+ rangeEndMs,
1111
+ settings.i18n,
1112
+ viewConfig.summaryBars,
1113
+ viewConfig.baselineBars,
1114
+ descendantIds,
1115
+ subtreeProgress,
1116
+ laneHeightRem,
1117
+ rowPaddingRem,
1118
+ laneGapRem,
1119
+ minRowRem,
1120
+ scheduleMode,
1121
+ ])
1122
+
1123
+ // ----- split panes: width state, splitter drag/keyboard, scroll sync -----
1124
+ const treeConfig = { ...DEFAULT_TREE_PANEL, ...viewConfig.treePanel }
1125
+ const clampTree = (width: number) =>
1126
+ Math.min(Math.max(width, treeConfig.minWidth), treeConfig.maxWidth)
1127
+ const [treeWidth, setTreeWidth] = useState(treeConfig.width)
1128
+ const configuredTreeWidth = clampTree(treeWidth)
1129
+ const columns = viewConfig.columns ?? []
1130
+
1131
+ // "Add task" hint at the foot of the tree, gated by validation
1132
+ /**
1133
+ * Reserve the track a drag-create in flight will land on - as a THIN overlay
1134
+ * over the layout above, never as an input to it. Rebuilding the whole map
1135
+ * per snapped step would hand every row a new `bars` object and defeat
1136
+ * GanttTimelineRow's memo across the entire grid, so only the drafted row's
1137
+ * entry is replaced; every other row keeps its identity and never re-renders.
1138
+ *
1139
+ * `laneOffsetRem` and `bandRem` are deliberately carried over UNCHANGED.
1140
+ * Deriving them from the grown track count re-centres the row, which drags
1141
+ * the settled bars and the tree label box with it - a 2px wobble by default
1142
+ * and, under a consumer `metrics.minRowHeight` big enough to swallow the
1143
+ * growth, an 11.5px jerk that snaps back on release. Growing a row must add
1144
+ * space BELOW what is already there and move nothing.
1145
+ */
1146
+ const rowBars = useMemo(() => {
1147
+ if (!draftLayout) return baseRowBars
1148
+ const base = baseRowBars.get(draftLayout.resourceId)
1149
+ if (!base) return baseRowBars
1150
+ const next = new Map(baseRowBars)
1151
+ // "single" packs every bar onto lane 0, so that is where the draft goes
1152
+ // too and the row never grows. Recorded rather than left null so the
1153
+ // placeholder's data-lane still names a real destination.
1154
+ if (base.scheduleMode === "single") {
1155
+ next.set(draftLayout.resourceId, { ...base, draftLane: 0 })
1156
+ return next
1157
+ }
1158
+ const draftLane = lowestFreeLane(
1159
+ base.segments,
1160
+ draftLayout.startMs,
1161
+ draftLayout.endMs
1162
+ )
1163
+ const trackCount = Math.max(base.laneCount, draftLane + 1)
1164
+ const draftBlockRem = laneBlockRem(trackCount, laneHeightRem, laneGapRem)
1165
+ next.set(draftLayout.resourceId, {
1166
+ ...base,
1167
+ draftLane,
1168
+ heightRem: Math.max(
1169
+ base.heightRem,
1170
+ base.laneOffsetRem * 2 + draftBlockRem
1171
+ ),
1172
+ })
1173
+ return next
1174
+ }, [baseRowBars, draftLayout, laneHeightRem, laneGapRem])
1175
+
1176
+ // Dependency arrows: resolve every visible bar's anchors in track
1177
+ // coordinates (x rem from the range start, y rem from the rows-block top).
1178
+ // Row heights come from rowBars, so transient draft growth shifts the
1179
+ // arrows with the rows; endpoints without a visible bar are skipped -
1180
+ // an arrow to a hidden row would point at nothing.
1181
+ // Which events an arrow DEPARTS from (something else lists them as a
1182
+ // predecessor). Feeds label spacing only, and membership is data-driven
1183
+ // rather than render-driven on purpose: a temporarily hidden dependent
1184
+ // still reserves the gap, so the label never jumps when its arrow scrolls
1185
+ // back into range. Stable across gestures - it only changes with events.
1186
+ const dependencySourceIds = useMemo(() => {
1187
+ if (!viewConfig.dependencyLines) return EMPTY_ID_SET
1188
+ let ids: Set<string> | null = null
1189
+ for (const event of allEvents) {
1190
+ if (!event.dependencies?.length) continue
1191
+ for (const id of event.dependencies) {
1192
+ if (!ids) ids = new Set()
1193
+ ids.add(id)
1194
+ }
1195
+ }
1196
+ return ids ?? EMPTY_ID_SET
1197
+ }, [allEvents, viewConfig.dependencyLines])
1198
+
1199
+ const dependencyEdges = useMemo(() => {
1200
+ const none = { edges: [] as DependencyEdge[], totalRem: 0 }
1201
+ if (!viewConfig.dependencyLines) return none
1202
+ const totalMin = (rangeEndMs - rangeStartMs) / 60000
1203
+ if (totalMin <= 0) return none
1204
+ type Pending = {
1205
+ id: string
1206
+ dependencies: string[]
1207
+ startX: number
1208
+ y: number
1209
+ }
1210
+ const anchors = new Map<string, { endX: number; y: number }>()
1211
+ const pending: Pending[] = []
1212
+ let topRem = 0
1213
+ for (const row of rows) {
1214
+ const bars = rowBars.get(row.resource.id)
1215
+ if (bars) {
1216
+ for (const segment of bars.segments) {
1217
+ const occ = segment.occurrence
1218
+ // a recurring instance has no single edge to anchor a plan on
1219
+ if (occ.isRecurring) continue
1220
+ const lane = segment.column ?? 0
1221
+ const y =
1222
+ topRem +
1223
+ laneTopRem(bars.laneOffsetRem, lane, laneHeightRem, laneGapRem) +
1224
+ laneHeightRem / 2
1225
+ const startX = ((segment.startMin ?? 0) / totalMin) * trackRemWidth
1226
+ const endX = ((segment.endMin ?? 0) / totalMin) * trackRemWidth
1227
+ anchors.set(occ.eventId, { endX, y })
1228
+ if (occ.event.dependencies?.length) {
1229
+ pending.push({
1230
+ id: occ.eventId,
1231
+ dependencies: occ.event.dependencies,
1232
+ startX,
1233
+ y,
1234
+ })
1235
+ }
1236
+ }
1237
+ }
1238
+ topRem += bars?.heightRem ?? minRowRem
1239
+ }
1240
+ if (pending.length === 0) return none
1241
+ const edges: DependencyEdge[] = []
1242
+ for (const item of pending) {
1243
+ for (const depId of item.dependencies) {
1244
+ if (depId === item.id) continue
1245
+ const from = anchors.get(depId)
1246
+ if (!from) continue
1247
+ edges.push({
1248
+ key: `${depId}->${item.id}`,
1249
+ fromId: depId,
1250
+ toId: item.id,
1251
+ fromX: from.endX,
1252
+ fromY: from.y,
1253
+ toX: item.startX,
1254
+ toY: item.y,
1255
+ })
1256
+ }
1257
+ }
1258
+ return { edges, totalRem: topRem }
1259
+ }, [
1260
+ rows,
1261
+ rowBars,
1262
+ rangeStartMs,
1263
+ rangeEndMs,
1264
+ trackRemWidth,
1265
+ laneHeightRem,
1266
+ laneGapRem,
1267
+ minRowRem,
1268
+ viewConfig.dependencyLines,
1269
+ ])
1270
+
1271
+ const showCreateTask =
1272
+ viewConfig.displayCreateTaskHint &&
1273
+ !!settings.onCreateTask &&
1274
+ (settings.canCreateTask?.({ parentId: null }) ?? true)
1275
+
1276
+ // Responsive guard: the timeline must always keep a usable width, so on
1277
+ // narrow containers the tree pane yields down toward its minWidth. Measured
1278
+ // (not media-queried) because the gantt can live in any column. The -1
1279
+ // reserves the splitter hairline so the timeline truly keeps MIN width.
1280
+ const [containerWidth, setContainerWidth] = useState(0)
1281
+ const clampContainer = (width: number, container: number) => {
1282
+ if (container <= 0) return width
1283
+ const ceiling = container - minTimelineWidth - 1
1284
+ // The tree's own minWidth is a PREFERENCE, not a licence to squeeze the
1285
+ // timeline out of existence: cap it by what the container can actually
1286
+ // spare. Without this cap a consumer minWidth wider than the container
1287
+ // wins outright and the timeline collapses below minTimelineWidth with
1288
+ // the splitter already pinned, so the space cannot be dragged back.
1289
+ const floor = Math.min(treeConfig.minWidth, Math.max(ceiling, 0))
1290
+ return Math.max(Math.min(width, ceiling), Math.min(floor, container - 1))
1291
+ }
1292
+ const clampedTreeWidth = clampContainer(configuredTreeWidth, containerWidth)
1293
+ /** Live width while the splitter is dragging; render reads it so a
1294
+ mid-drag re-render can't snap the pane back to stale state. */
1295
+ const liveTreeWidthRef = useRef<number | null>(null)
1296
+
1297
+ // In-flight gestures must never outlive the view (leaked window listeners,
1298
+ // body overlays and the drag cursor), and must never keep running against
1299
+ // geometry they measured before it changed - a gesture snapshots the axis
1300
+ // and row rects once at activation, so any of these invalidates it.
1301
+ // Cancel-and-revert is the safe contract; all of this is a no-op in normal
1302
+ // flows (none of these values can change during an ordinary pointer drag).
1303
+ useGanttGestureTeardown()
1304
+ useEffect(() => {
1305
+ cancelActiveGanttGestures()
1306
+ }, [zoom, scale, rangeKey, clampedTreeWidth, rows.length])
1307
+
1308
+ // Leaf-row checkbox selection: uncontrolled unless selectedRows is passed
1309
+ const [internalSelected, setInternalSelected] = useState<string[]>([])
1310
+ const selectedRows = viewConfig.selectedRows ?? internalSelected
1311
+ const selectedSet = useMemo(() => new Set(selectedRows), [selectedRows])
1312
+ // Latest-value refs so the row handlers keep ONE identity across renders -
1313
+ // the row components are memoized and must not re-render per state change
1314
+ const viewConfigRef = useRef(viewConfig)
1315
+ viewConfigRef.current = viewConfig
1316
+ const selectedRowsRef = useRef(selectedRows)
1317
+ selectedRowsRef.current = selectedRows
1318
+ const toggleRowSelected = useCallback((id: string, checked: boolean) => {
1319
+ const current = selectedRowsRef.current
1320
+ const next = checked
1321
+ ? [...current.filter((rowId) => rowId !== id), id]
1322
+ : current.filter((rowId) => rowId !== id)
1323
+ if (viewConfigRef.current.selectedRows === undefined) {
1324
+ setInternalSelected(next)
1325
+ }
1326
+ viewConfigRef.current.onSelectedRowsChange?.(next)
1327
+ }, [])
1328
+
1329
+ const bodyRef = useRef<HTMLDivElement | null>(null)
1330
+ const treePaneRef = useRef<HTMLDivElement | null>(null)
1331
+ const timelinePaneRef = useRef<HTMLDivElement | null>(null)
1332
+ const treeRowsRef = useRef<HTMLDivElement | null>(null)
1333
+
1334
+ // Track the body width so the tree pane can yield on narrow containers.
1335
+ // Layout effect, not effect: the first measure must flush BEFORE the first
1336
+ // paint so a clamped tree width never paints wide for a frame and then
1337
+ // snaps - the panes are laid out final from the very first displayed frame.
1338
+ useLayoutEffect(() => {
1339
+ const body = bodyRef.current
1340
+ if (!body) return
1341
+ const update = () => setContainerWidth(body.clientWidth)
1342
+ update()
1343
+ const observer = new ResizeObserver(update)
1344
+ observer.observe(body)
1345
+ return () => observer.disconnect()
1346
+ }, [])
1347
+
1348
+ const beginSplit = (e: React.PointerEvent) => {
1349
+ if (e.button !== 0) return
1350
+ e.preventDefault()
1351
+ const pointerId = e.pointerId
1352
+ const startX = e.clientX
1353
+ const startWidth = clampedTreeWidth
1354
+ const splitter = e.currentTarget as HTMLElement
1355
+ // in RTL the tree pane sits on the right: pointer deltas invert
1356
+ const dir = getComputedStyle(splitter).direction === "rtl" ? -1 : 1
1357
+ splitter.setAttribute("data-resizing", "")
1358
+ document.body.style.cursor = "col-resize"
1359
+ document.body.style.userSelect = "none"
1360
+ // Live width goes straight to the DOM: a React state write here would
1361
+ // re-render every row and bar per pointermove. State commits on release.
1362
+ // The container clamp applies live too - the timeline must not collapse
1363
+ // below its minimum mid-drag only to snap back on release.
1364
+ let liveWidth = startWidth
1365
+ const onMove = (ev: PointerEvent) => {
1366
+ if (ev.pointerId !== pointerId) return
1367
+ liveWidth = clampContainer(
1368
+ clampTree(startWidth + (ev.clientX - startX) * dir),
1369
+ bodyRef.current?.clientWidth ?? 0
1370
+ )
1371
+ liveTreeWidthRef.current = liveWidth
1372
+ if (treePaneRef.current) {
1373
+ treePaneRef.current.style.width = `${liveWidth}px`
1374
+ }
1375
+ }
1376
+ const finish = (ev?: PointerEvent) => {
1377
+ if (ev && ev.pointerId !== pointerId) return
1378
+ window.removeEventListener("pointermove", onMove)
1379
+ window.removeEventListener("pointerup", finish)
1380
+ window.removeEventListener("pointercancel", finish)
1381
+ splitter.removeAttribute("data-resizing")
1382
+ document.body.style.cursor = ""
1383
+ document.body.style.userSelect = ""
1384
+ liveTreeWidthRef.current = null
1385
+ if (liveWidth !== startWidth) {
1386
+ setTreeWidth(liveWidth)
1387
+ viewConfigRef.current.treePanel?.onWidthChange?.(liveWidth)
1388
+ }
1389
+ }
1390
+ window.addEventListener("pointermove", onMove)
1391
+ window.addEventListener("pointerup", finish)
1392
+ window.addEventListener("pointercancel", finish)
1393
+ }
1394
+
1395
+ // Both panes scroll vertically; whichever moves drives the other.
1396
+ useEffect(() => {
1397
+ const treeViewport = getPaneViewport(treePaneRef.current)
1398
+ const timelineViewport = getPaneViewport(timelinePaneRef.current)
1399
+ if (!treeViewport || !timelineViewport) return
1400
+ const link = (source: HTMLElement, target: HTMLElement) => {
1401
+ // Mirror only when the source's own vertical position changed -
1402
+ // horizontal-only scroll events must not replay a stale scrollTop over
1403
+ // the other pane. Assign only on drift: the mirrored handler then
1404
+ // no-ops, so no loop.
1405
+ let lastTop = source.scrollTop
1406
+ const onScroll = () => {
1407
+ if (source.scrollTop === lastTop) return
1408
+ lastTop = source.scrollTop
1409
+ if (target.scrollTop !== source.scrollTop) {
1410
+ target.scrollTop = source.scrollTop
1411
+ }
1412
+ }
1413
+ source.addEventListener("scroll", onScroll)
1414
+ return () => source.removeEventListener("scroll", onScroll)
1415
+ }
1416
+ const unlinkTree = link(treeViewport, timelineViewport)
1417
+ const unlinkTimeline = link(timelineViewport, treeViewport)
1418
+ let unforward: (() => void) | null = null
1419
+ if (treeViewport.hasAttribute("data-gantt-native-scroll")) {
1420
+ // Native mode: the tree's vertical axis is overflow-hidden (its bar
1421
+ // would duplicate the timeline's), so vertical wheel intent forwards to
1422
+ // the timeline, which mirrors back through the link above. Horizontal
1423
+ // wheel intent stays native for the tree's own columns.
1424
+ const onWheel = (e: WheelEvent) => {
1425
+ // ctrl/cmd (and trackpad pinch, which sets ctrlKey) is the zoom
1426
+ // gesture; scrolling as well would move the rows out from under it
1427
+ if (e.ctrlKey || e.metaKey) return
1428
+ if (Math.abs(e.deltaY) <= Math.abs(e.deltaX)) return
1429
+ const dy = e.deltaMode === 1 ? e.deltaY * 16 : e.deltaY
1430
+ timelineViewport.scrollTop += dy
1431
+ e.preventDefault()
1432
+ }
1433
+ treeViewport.addEventListener("wheel", onWheel, { passive: false })
1434
+ unforward = () => treeViewport.removeEventListener("wheel", onWheel)
1435
+ } else {
1436
+ // Custom scrollbars: both panes are real vertical scrollers. The links
1437
+ // above mirror on the scroll event, which fires only AFTER the source
1438
+ // has already painted - so with compositor momentum (wheel/trackpad) the
1439
+ // active pane runs a frame ahead of the mirror and the two visibly drift
1440
+ // (the flicker). Fix: drive BOTH viewports from one wheel handler so they
1441
+ // move in the same frame, perfectly locked. Horizontal intent stays
1442
+ // native for each pane's own axis; the links still cover scrollbar drags,
1443
+ // keyboard, touch and programmatic scrolls; touch has no wheel events,
1444
+ // so flick-scrolling syncs through the (frame-lagged) link - accepted,
1445
+ // pointer drags are the gantt's primary touch interaction.
1446
+ const onWheel = (e: WheelEvent) => {
1447
+ // ctrl/cmd (and trackpad pinch, which sets ctrlKey) is the zoom
1448
+ // gesture; scrolling as well would move the rows out from under it
1449
+ if (e.ctrlKey || e.metaKey) return
1450
+ if (Math.abs(e.deltaY) <= Math.abs(e.deltaX)) return
1451
+ const max =
1452
+ timelineViewport.scrollHeight - timelineViewport.clientHeight
1453
+ if (max <= 0) return
1454
+ const unit =
1455
+ e.deltaMode === 1
1456
+ ? 16
1457
+ : e.deltaMode === 2
1458
+ ? timelineViewport.clientHeight
1459
+ : 1
1460
+ const next = Math.max(
1461
+ 0,
1462
+ Math.min(max, timelineViewport.scrollTop + e.deltaY * unit)
1463
+ )
1464
+ e.preventDefault()
1465
+ timelineViewport.scrollTop = next
1466
+ treeViewport.scrollTop = next
1467
+ }
1468
+ treeViewport.addEventListener("wheel", onWheel, { passive: false })
1469
+ timelineViewport.addEventListener("wheel", onWheel, { passive: false })
1470
+ unforward = () => {
1471
+ treeViewport.removeEventListener("wheel", onWheel)
1472
+ timelineViewport.removeEventListener("wheel", onWheel)
1473
+ }
1474
+ }
1475
+ return () => {
1476
+ unlinkTree()
1477
+ unlinkTimeline()
1478
+ unforward?.()
1479
+ }
1480
+ }, [scale, viewConfig.scrollbars])
1481
+
1482
+ // Linked row hover: mirror data-hover onto the row's twin in the other pane
1483
+ useEffect(() => {
1484
+ const body = bodyRef.current
1485
+ if (!body) return
1486
+ let current: string | null = null
1487
+ const apply = (id: string | null) => {
1488
+ if (id === current) return
1489
+ if (current) {
1490
+ body
1491
+ .querySelectorAll(`[data-gantt-row-id="${CSS.escape(current)}"]`)
1492
+ .forEach((el) => el.removeAttribute("data-hover"))
1493
+ }
1494
+ if (id) {
1495
+ body
1496
+ .querySelectorAll(`[data-gantt-row-id="${CSS.escape(id)}"]`)
1497
+ .forEach((el) => el.setAttribute("data-hover", ""))
1498
+ }
1499
+ current = id
1500
+ }
1501
+ const onOver = (e: PointerEvent) => {
1502
+ const row = (e.target as HTMLElement | null)?.closest?.(
1503
+ "[data-gantt-row-id]"
1504
+ )
1505
+ apply(row?.getAttribute("data-gantt-row-id") ?? null)
1506
+ }
1507
+ const onLeave = () => apply(null)
1508
+ body.addEventListener("pointerover", onOver)
1509
+ body.addEventListener("pointerleave", onLeave)
1510
+ return () => {
1511
+ body.removeEventListener("pointerover", onOver)
1512
+ body.removeEventListener("pointerleave", onLeave)
1513
+ apply(null)
1514
+ }
1515
+ }, [])
1516
+
1517
+ // Auto-manage the horizontal position for the current anchor until the user
1518
+ // scrolls: pre-buffer one period per side (so infinite scroll never resizes
1519
+ // the scrollbar on the first gesture), then center the target instant.
1520
+ // Idempotent - re-running just re-centers the same instant - so React
1521
+ // StrictMode's double-invoke and range-growth re-renders are both safe.
1522
+ const anchorMs = useGanttSelector((state) => state.date.getTime())
1523
+ // flattened to a primitive so an inline `initialCenter={new Date(...)}`
1524
+ // cannot re-run the centring effect on every render
1525
+ const initialCenter =
1526
+ viewConfig.initialCenter instanceof Date
1527
+ ? viewConfig.initialCenter.getTime()
1528
+ : viewConfig.initialCenter
1529
+ const manageRef = useRef({ key: "", buffered: false, userTook: false })
1530
+ useLayoutEffect(() => {
1531
+ const key = `${scale}:${anchorMs}:${viewConfig.scrollbars}`
1532
+ if (manageRef.current.key !== key) {
1533
+ // An anchor change from an extendRange window SLIDE continues the
1534
+ // user's own travel: the guard survives, or the pre-buffer branch
1535
+ // would re-extend and cascade further slides at the window cap.
1536
+ const slideContinuation =
1537
+ manageRef.current.userTook && instance.internals.didAnchorSlide()
1538
+ manageRef.current = slideContinuation
1539
+ ? { key, buffered: manageRef.current.buffered, userTook: true }
1540
+ : { key, buffered: false, userTook: false }
1541
+ }
1542
+ if (manageRef.current.userTook) return
1543
+ // Deferred-mount wait: when the viewport is not measurable yet (hidden
1544
+ // tab, display:none ancestor), a ResizeObserver resumes positioning on
1545
+ // the exact frame it gains a size - RO callbacks run in the rendering
1546
+ // steps BEFORE that frame paints, so no uncentered frame is ever shown.
1547
+ // (An rAF retry here would paint the range start first and then snap.)
1548
+ let waiter: ResizeObserver | null = null
1549
+ const run = () => {
1550
+ waiter?.disconnect()
1551
+ waiter = null
1552
+ const viewport = getPaneViewport(timelinePaneRef.current)
1553
+ const axis = viewport?.querySelector<HTMLElement>("[data-gantt-axis]")
1554
+ if (!viewport || !axis) return
1555
+ if (viewport.clientWidth === 0) {
1556
+ waiter = new ResizeObserver(() => {
1557
+ if (viewport.clientWidth > 0) run()
1558
+ })
1559
+ waiter.observe(viewport)
1560
+ return
1561
+ }
1562
+ // pre-buffer once; the re-run after the range grows lands the center
1563
+ if (viewConfig.infiniteScroll && !manageRef.current.buffered) {
1564
+ manageRef.current.buffered = true
1565
+ extendLockRef.current = true
1566
+ instance.internals.extendRange("before")
1567
+ instance.internals.extendRange("after")
1568
+ return
1569
+ }
1570
+ extendLockRef.current = false
1571
+ if (viewport.scrollWidth <= viewport.clientWidth) return
1572
+ // read the clock at run time - the effect must not depend on a
1573
+ // reactive now that re-runs it (and the whole grid) every 30s.
1574
+ // Target now ONLY when the anchor period itself contains it: keying
1575
+ // on the whole (buffered) visible range would re-center prev/next
1576
+ // navigation right back onto today.
1577
+ const active = instance.getState().activeRange
1578
+ let target: number
1579
+ if (typeof initialCenter === "number") {
1580
+ target = initialCenter
1581
+ } else if (initialCenter === "anchor") {
1582
+ target = anchorMs
1583
+ } else {
1584
+ const nowMs = Date.now()
1585
+ target =
1586
+ nowMs >= active.start.getTime() && nowMs < active.end.getTime()
1587
+ ? nowMs
1588
+ : anchorMs
1589
+ }
1590
+ const fraction = Math.min(
1591
+ Math.max((target - rangeStartMs) / (rangeEndMs - rangeStartMs), 0),
1592
+ 1
1593
+ )
1594
+ setScrollStart(
1595
+ viewport,
1596
+ Math.max(0, fraction * viewport.scrollWidth - viewport.clientWidth / 2)
1597
+ )
1598
+ }
1599
+ run()
1600
+ return () => {
1601
+ waiter?.disconnect()
1602
+ }
1603
+ }, [
1604
+ scale,
1605
+ anchorMs,
1606
+ initialCenter,
1607
+ viewConfig.scrollbars,
1608
+ viewConfig.infiniteScroll,
1609
+ rangeKey,
1610
+ rangeStartMs,
1611
+ rangeEndMs,
1612
+ instance,
1613
+ ])
1614
+
1615
+ // ----- infinite scroll: grow the range near an edge, keep the position -----
1616
+ // Restoration is anchored to a TIMESTAMP, not pixel deltas: it survives
1617
+ // growth, window slides, and zoom changes alike.
1618
+ const pendingRestoreRef = useRef<{
1619
+ ms: number
1620
+ align: "start" | "center"
1621
+ /**
1622
+ * Park the anchored instant this many pixels from the viewport's inline
1623
+ * start instead of at the edge or the middle. Wheel zoom needs it so the
1624
+ * instant under the cursor stays under the cursor.
1625
+ */
1626
+ offsetPx?: number
1627
+ } | null>(null)
1628
+ const extendLockRef = useRef(false)
1629
+ const lastUserScrollRef = useRef(0)
1630
+ /** Fine-grained viewport-center instant, for controlled-zoom anchoring. */
1631
+ const fineCenterRef = useRef<number | null>(null)
1632
+ const lastZoomRef = useRef<number | null>(null)
1633
+
1634
+ // Only user gestures may extend the range - programmatic scrolls (chip
1635
+ // jumps, auto-center, zoom clamping) must never grow it.
1636
+ useEffect(() => {
1637
+ const pane = timelinePaneRef.current
1638
+ if (!pane) return
1639
+ const markIntent = () => {
1640
+ lastUserScrollRef.current = performance.now()
1641
+ }
1642
+ // zooming is not scroll intent - the re-seat it triggers must not be
1643
+ // mistaken for the user reaching an edge and asking to grow the range
1644
+ const markWheelIntent = (e: WheelEvent) => {
1645
+ if (e.ctrlKey || e.metaKey) return
1646
+ markIntent()
1647
+ }
1648
+ // pointerdown counts only where pressing can scroll: the scrollbars,
1649
+ // the pan header, or a native-scroll host - NOT bars, chips, or zoom
1650
+ const onPointerDown = (e: PointerEvent) => {
1651
+ const target = e.target as HTMLElement | null
1652
+ if (
1653
+ target?.closest(
1654
+ "[data-slot=scroll-area-scrollbar], [data-slot=gantt-timeline-header], [data-gantt-native-scroll]"
1655
+ )
1656
+ ) {
1657
+ markIntent()
1658
+ }
1659
+ }
1660
+ pane.addEventListener("wheel", markWheelIntent, { passive: true })
1661
+ pane.addEventListener("pointerdown", onPointerDown)
1662
+ pane.addEventListener("touchstart", markIntent, { passive: true })
1663
+ pane.addEventListener("keydown", markIntent)
1664
+ return () => {
1665
+ pane.removeEventListener("wheel", markWheelIntent)
1666
+ pane.removeEventListener("pointerdown", onPointerDown)
1667
+ pane.removeEventListener("touchstart", markIntent)
1668
+ pane.removeEventListener("keydown", markIntent)
1669
+ }
1670
+ }, [])
1671
+
1672
+ useEffect(() => {
1673
+ if (!viewConfig.infiniteScroll) return
1674
+ const viewport = getPaneViewport(timelinePaneRef.current)
1675
+ if (!viewport) return
1676
+ const tryExtend = (direction: "before" | "after") => {
1677
+ // anchor the left edge as an instant, from the LIVE axis range
1678
+ const axis = viewport.querySelector<HTMLElement>("[data-gantt-axis]")
1679
+ const liveStart = Number(axis?.dataset.ganttRangeStart)
1680
+ const liveEnd = Number(axis?.dataset.ganttRangeEnd)
1681
+ if (!axis || Number.isNaN(liveStart) || Number.isNaN(liveEnd)) return
1682
+ extendLockRef.current = true
1683
+ manageRef.current.userTook = true
1684
+ pendingRestoreRef.current = {
1685
+ ms:
1686
+ liveStart +
1687
+ (getScrollStart(viewport) / viewport.scrollWidth) *
1688
+ (liveEnd - liveStart),
1689
+ align: "start",
1690
+ }
1691
+ if (!instance.internals.extendRange(direction)) {
1692
+ pendingRestoreRef.current = null
1693
+ extendLockRef.current = false
1694
+ }
1695
+ }
1696
+ // scrollLeft is signed by direction; all edge math runs on the
1697
+ // distance-from-inline-start so RTL panes behave identically
1698
+ const isRtl = getComputedStyle(viewport).direction === "rtl"
1699
+ const onScroll = () => {
1700
+ if (extendLockRef.current) return
1701
+ if (performance.now() - lastUserScrollRef.current > 1200) return
1702
+ // a track that fits the pane has no scroll gesture to extend from
1703
+ if (viewport.scrollWidth <= viewport.clientWidth + 8) return
1704
+ const fromStart = getScrollStart(viewport)
1705
+ const fromEnd = viewport.scrollWidth - fromStart - viewport.clientWidth
1706
+ const direction =
1707
+ fromStart < infiniteEdgePx
1708
+ ? ("before" as const)
1709
+ : fromEnd < infiniteEdgePx
1710
+ ? ("after" as const)
1711
+ : null
1712
+ if (!direction) return
1713
+ tryExtend(direction)
1714
+ }
1715
+ // parked exactly on an edge, further wheeling emits no scroll event -
1716
+ // the wheel itself is the growth gesture then
1717
+ const onWheel = (e: WheelEvent) => {
1718
+ // a zoom gesture must never grow the range: the track is rescaling
1719
+ // under the pointer, so an edge reading mid-gesture is meaningless
1720
+ if (e.ctrlKey || e.metaKey) return
1721
+ if (extendLockRef.current || e.deltaX === 0) return
1722
+ if (viewport.scrollWidth <= viewport.clientWidth + 8) return
1723
+ const towardStart = isRtl ? e.deltaX > 0 : e.deltaX < 0
1724
+ if (towardStart && getScrollStart(viewport) <= 0) {
1725
+ tryExtend("before")
1726
+ } else if (
1727
+ !towardStart &&
1728
+ getScrollStart(viewport) + viewport.clientWidth >=
1729
+ viewport.scrollWidth - 1
1730
+ ) {
1731
+ tryExtend("after")
1732
+ }
1733
+ }
1734
+ viewport.addEventListener("scroll", onScroll)
1735
+ viewport.addEventListener("wheel", onWheel, { passive: true })
1736
+ return () => {
1737
+ viewport.removeEventListener("scroll", onScroll)
1738
+ viewport.removeEventListener("wheel", onWheel)
1739
+ }
1740
+ }, [
1741
+ instance,
1742
+ viewConfig.infiniteScroll,
1743
+ scale,
1744
+ viewConfig.scrollbars,
1745
+ infiniteEdgePx,
1746
+ ])
1747
+
1748
+ // Report the visible-center instant so the nav title names what you are
1749
+ // looking at. Throttled to period boundaries (a coarse key) so scrolling
1750
+ // within a period never re-renders the grid.
1751
+ useEffect(() => {
1752
+ const viewport = getPaneViewport(timelinePaneRef.current)
1753
+ if (!viewport) return
1754
+ const keyFmt =
1755
+ scale === "day"
1756
+ ? "yyyy-MM-dd"
1757
+ : scale === "week"
1758
+ ? "RRRR-'W'II"
1759
+ : scale === "month"
1760
+ ? "yyyy-MM"
1761
+ : scale === "quarter"
1762
+ ? "yyyy-qqq"
1763
+ : "yyyy"
1764
+ let raf = 0
1765
+ let lastKey = ""
1766
+ const measure = () => {
1767
+ raf = 0
1768
+ const axis = viewport.querySelector<HTMLElement>("[data-gantt-axis]")
1769
+ const liveStart = Number(axis?.dataset.ganttRangeStart)
1770
+ const liveEnd = Number(axis?.dataset.ganttRangeEnd)
1771
+ if (!axis || Number.isNaN(liveStart) || Number.isNaN(liveEnd)) return
1772
+ const fraction =
1773
+ (getScrollStart(viewport) + viewport.clientWidth / 2) /
1774
+ Math.max(1, viewport.scrollWidth)
1775
+ const centerMs = liveStart + fraction * (liveEnd - liveStart)
1776
+ // fine center first (controlled-zoom anchor), then the coarse-keyed
1777
+ // store report that drives the nav title
1778
+ fineCenterRef.current = centerMs
1779
+ const center = new Date(centerMs)
1780
+ const key = format(toZoned(center, timeZone), keyFmt)
1781
+ if (key === lastKey) return
1782
+ lastKey = key
1783
+ instance.internals.setViewportCenter(center)
1784
+ }
1785
+ const schedule = () => {
1786
+ if (!raf) raf = requestAnimationFrame(measure)
1787
+ }
1788
+ viewport.addEventListener("scroll", schedule)
1789
+ schedule()
1790
+ return () => {
1791
+ viewport.removeEventListener("scroll", schedule)
1792
+ if (raf) cancelAnimationFrame(raf)
1793
+ }
1794
+ }, [instance, scale, timeZone, viewConfig.scrollbars, rangeKey])
1795
+
1796
+ // Re-seat the viewport on its anchored instant before paint. Runs for range
1797
+ // growth, window slides, and zoom changes; a slide moves the anchor date,
1798
+ // so pre-mark auto-centering as done for the new key.
1799
+ useLayoutEffect(() => {
1800
+ // Consumer-driven (controlled) zoom changes carry no anchorZoomCenter
1801
+ // call; anchor them to the last known viewport center so the view does
1802
+ // not drift. Built-in buttons set pendingRestore first and win.
1803
+ if (
1804
+ lastZoomRef.current !== null &&
1805
+ lastZoomRef.current !== zoom &&
1806
+ !pendingRestoreRef.current &&
1807
+ fineCenterRef.current !== null
1808
+ ) {
1809
+ pendingRestoreRef.current = { ms: fineCenterRef.current, align: "center" }
1810
+ }
1811
+ lastZoomRef.current = zoom
1812
+ let raf: number | null = null
1813
+ let attempts = 0
1814
+ const seat = () => {
1815
+ raf = null
1816
+ const viewport = getPaneViewport(timelinePaneRef.current)
1817
+ if (viewport && pendingRestoreRef.current) {
1818
+ // Not laid out yet (0-width on first mount): centering with a 0 offset
1819
+ // parks the view a half-pane off. Defer until the pane is measured so
1820
+ // "center" lands the anchored instant in the middle on initial load.
1821
+ if (viewport.clientWidth === 0 && attempts++ < 20) {
1822
+ raf = requestAnimationFrame(seat)
1823
+ return
1824
+ }
1825
+ const { ms, align, offsetPx } = pendingRestoreRef.current
1826
+ pendingRestoreRef.current = null
1827
+ // clamp: a stale anchor (e.g. an ignored controlled-zoom proposal)
1828
+ // must never park the view outside the track
1829
+ const fraction = Math.min(
1830
+ Math.max((ms - rangeStartMs) / (rangeEndMs - rangeStartMs), 0),
1831
+ 1
1832
+ )
1833
+ const offset =
1834
+ offsetPx ?? (align === "center" ? viewport.clientWidth / 2 : 0)
1835
+ setScrollStart(
1836
+ viewport,
1837
+ Math.max(0, fraction * viewport.scrollWidth - offset)
1838
+ )
1839
+ }
1840
+ extendLockRef.current = false
1841
+ }
1842
+ seat()
1843
+ return () => {
1844
+ if (raf !== null) cancelAnimationFrame(raf)
1845
+ }
1846
+ }, [
1847
+ rangeKey,
1848
+ zoom,
1849
+ rangeStartMs,
1850
+ rangeEndMs,
1851
+ scale,
1852
+ viewConfig.scrollbars,
1853
+ instance,
1854
+ ])
1855
+
1856
+ /** Keep the view centered on the same instant across a zoom step. */
1857
+ const anchorZoomCenter = () => {
1858
+ const viewport = getPaneViewport(timelinePaneRef.current)
1859
+ const axis = viewport?.querySelector<HTMLElement>("[data-gantt-axis]")
1860
+ if (!viewport || !axis) return
1861
+ const liveStart = Number(axis.dataset.ganttRangeStart)
1862
+ const liveEnd = Number(axis.dataset.ganttRangeEnd)
1863
+ if (Number.isNaN(liveStart) || Number.isNaN(liveEnd)) return
1864
+ pendingRestoreRef.current = {
1865
+ ms:
1866
+ liveStart +
1867
+ ((getScrollStart(viewport) + viewport.clientWidth / 2) /
1868
+ viewport.scrollWidth) *
1869
+ (liveEnd - liveStart),
1870
+ align: "center",
1871
+ }
1872
+ }
1873
+
1874
+ /**
1875
+ * Keep the instant under the POINTER pinned across a zoom step. The buttons
1876
+ * anchor the viewport center, but a wheel or pinch gesture points at
1877
+ * something - zooming away from it reads as the content sliding out from
1878
+ * under the cursor.
1879
+ */
1880
+ const anchorZoomPointer = (clientX: number) => {
1881
+ const viewport = getPaneViewport(timelinePaneRef.current)
1882
+ const axis = viewport?.querySelector<HTMLElement>("[data-gantt-axis]")
1883
+ if (!viewport || !axis) return
1884
+ const liveStart = Number(axis.dataset.ganttRangeStart)
1885
+ const liveEnd = Number(axis.dataset.ganttRangeEnd)
1886
+ if (Number.isNaN(liveStart) || Number.isNaN(liveEnd)) return
1887
+ // trackPoint mirrors in RTL, where the range start is the right edge
1888
+ const offsetPx = trackPoint(viewport, clientX).offset
1889
+ pendingRestoreRef.current = {
1890
+ ms:
1891
+ liveStart +
1892
+ ((getScrollStart(viewport) + offsetPx) / viewport.scrollWidth) *
1893
+ (liveEnd - liveStart),
1894
+ align: "start",
1895
+ offsetPx,
1896
+ }
1897
+ }
1898
+
1899
+ // ----- ctrl/cmd + wheel (and trackpad pinch) zooms the time range -----
1900
+ // The listener is manual and non-passive because it must preventDefault:
1901
+ // React's synthetic wheel handler cannot. It attaches once and reads the
1902
+ // live logic through a ref, so a zoom step never re-binds mid-gesture.
1903
+ const wheelZoomRef = useRef<((e: WheelEvent) => void) | null>(null)
1904
+ useEffect(() => {
1905
+ wheelZoomRef.current = (e: WheelEvent) => {
1906
+ if (!viewConfig.wheelZoom) return
1907
+ // Browsers deliver a trackpad pinch as wheel + ctrlKey on every
1908
+ // platform; metaKey is the Mac keyboard idiom the same gesture implies.
1909
+ if (!e.ctrlKey && !e.metaKey) return
1910
+ const lines = e.deltaMode === 1 ? 16 : e.deltaMode === 2 ? 400 : 1
1911
+ // Continuous, not stepped: a pinch emits dozens of small deltas per
1912
+ // second, so the button's 0.25 step would slam to a limit instantly.
1913
+ // Exponential keeps each notch proportional at any zoom level.
1914
+ const next = clampZoom(zoom * Math.exp(-e.deltaY * lines * 0.002))
1915
+ // Already clamped: hand the gesture back so the browser's own page
1916
+ // zoom still works for anyone who relies on it.
1917
+ if (Math.abs(next - zoom) < 1e-4) return
1918
+ e.preventDefault()
1919
+ // Controlled zoom anchors via fineCenterRef when the parent adopts;
1920
+ // pre-setting an anchor would leak stale if the parent ignores it.
1921
+ if (viewConfig.zoom === undefined) anchorZoomPointer(e.clientX)
1922
+ setZoomValue(+next.toFixed(4))
1923
+ }
1924
+ })
1925
+ useEffect(() => {
1926
+ const viewport = getPaneViewport(timelinePaneRef.current)
1927
+ if (!viewport) return
1928
+ const onWheel = (e: WheelEvent) => wheelZoomRef.current?.(e)
1929
+ viewport.addEventListener("wheel", onWheel, { passive: false })
1930
+ return () => viewport.removeEventListener("wheel", onWheel)
1931
+ }, [viewConfig.scrollbars, scale])
1932
+
1933
+ // Drag-to-pan from the header (intent-based: activates after 4px)
1934
+ const beginHeaderPan = (e: React.PointerEvent) => {
1935
+ if (e.button !== 0) return
1936
+ const viewport = getPaneViewport(timelinePaneRef.current)
1937
+ if (!viewport) return
1938
+ const pointerId = e.pointerId
1939
+ const startX = e.clientX
1940
+ const startLeft = viewport.scrollLeft
1941
+ let active = false
1942
+ const onMove = (ev: PointerEvent) => {
1943
+ if (ev.pointerId !== pointerId) return
1944
+ const dx = ev.clientX - startX
1945
+ if (!active && Math.abs(dx) < 4) return
1946
+ if (!active) {
1947
+ markGestureEnd()
1948
+ setIsPanning(true)
1949
+ }
1950
+ active = true
1951
+ // panning is a user scroll: keep the infinite-scroll gate open
1952
+ lastUserScrollRef.current = performance.now()
1953
+ document.body.style.cursor = "grabbing"
1954
+ document.body.style.userSelect = "none"
1955
+ viewport.scrollLeft = startLeft - dx
1956
+ }
1957
+ const finish = (ev?: PointerEvent) => {
1958
+ if (ev && ev.pointerId !== pointerId) return
1959
+ window.removeEventListener("pointermove", onMove)
1960
+ window.removeEventListener("pointerup", finish)
1961
+ window.removeEventListener("pointercancel", finish)
1962
+ document.body.style.cursor = ""
1963
+ document.body.style.userSelect = ""
1964
+ if (active) setIsPanning(false)
1965
+ }
1966
+ window.addEventListener("pointermove", onMove)
1967
+ window.addEventListener("pointerup", finish)
1968
+ window.addEventListener("pointercancel", finish)
1969
+ }
1970
+
1971
+ // Panning suppresses the placement hints (scroll intent, not create intent)
1972
+ const [isPanning, setIsPanning] = useState(false)
1973
+
1974
+ // ----- tree-row drag reorder (mirrors the event engine: live validity,
1975
+ // destructive styling when invalid, Esc cancel, commit via callback) -----
1976
+ const [reorder, setReorder] = useState<TimelineReorderState | null>(null)
1977
+ const reorderEnabled = !!settings.onResourceReorder
1978
+ const settingsRef = useRef(settings)
1979
+ settingsRef.current = settings
1980
+ const rowsRef = useRef(rows)
1981
+ rowsRef.current = rows
1982
+
1983
+ const beginRowReorder = useCallback(
1984
+ (e: React.PointerEvent, dragRow: TimelineRow) => {
1985
+ const settings = settingsRef.current
1986
+ const rows = rowsRef.current
1987
+ if (e.button !== 0 || !settings.onResourceReorder) return
1988
+ e.preventDefault()
1989
+ e.stopPropagation()
1990
+ const container = treeRowsRef.current
1991
+ const pane = treePaneRef.current
1992
+ if (!container || !pane) return
1993
+ const rowEls = Array.from(
1994
+ container.querySelectorAll<HTMLElement>("[data-slot=gantt-row-group]")
1995
+ )
1996
+ document.body.style.cursor = "grabbing"
1997
+ document.body.style.userSelect = "none"
1998
+ let current: TimelineReorderState | null = null
1999
+ let lastBoundary = -1
2000
+
2001
+ // Carry overlay: clone the WHOLE row (name + detail columns), flat -
2002
+ // it reads as the row itself moving, not a separate card
2003
+ const pointerId = e.pointerId
2004
+ const rowEl = (e.currentTarget as HTMLElement).closest<HTMLElement>(
2005
+ "[data-slot=gantt-row-group]"
2006
+ )
2007
+ const overlay = document.createElement("div")
2008
+ overlay.setAttribute("data-slot", "gantt-drag-overlay")
2009
+ overlay.className =
2010
+ "bg-background pointer-events-none fixed overflow-hidden opacity-95"
2011
+ overlay.style.zIndex = "100"
2012
+ // body-appended, so it is outside the gantt root that owns the type
2013
+ // scale: without adopting the root's resolved metrics the carried row
2014
+ // renders at the document default and reads bigger than the row it left
2015
+ const ganttRoot = pane.closest<HTMLElement>("[data-slot=gantt]")
2016
+ if (ganttRoot) {
2017
+ const rootStyle = getComputedStyle(ganttRoot)
2018
+ overlay.style.fontSize = rootStyle.fontSize
2019
+ overlay.style.lineHeight = rootStyle.lineHeight
2020
+ overlay.style.fontFamily = rootStyle.fontFamily
2021
+ overlay.style.letterSpacing = rootStyle.letterSpacing
2022
+ overlay.style.direction = rootStyle.direction
2023
+ }
2024
+ if (rowEl) {
2025
+ const rowRect = rowEl.getBoundingClientRect()
2026
+ overlay.style.width = `${rowRect.width}px`
2027
+ overlay.style.height = `${rowRect.height}px`
2028
+ const clone = rowEl.cloneNode(true) as HTMLElement
2029
+ clone.removeAttribute("data-gantt-row-id")
2030
+ clone.classList.remove("border-b")
2031
+ clone.style.height = "100%"
2032
+ overlay.appendChild(clone)
2033
+ }
2034
+ document.body.appendChild(overlay)
2035
+ const grabRect = rowEl?.getBoundingClientRect()
2036
+ const grabDY = grabRect ? e.clientY - grabRect.top : 8
2037
+ // vertical-only carry, locked to the tree panel like a list row drag
2038
+ const lockedX = grabRect?.left ?? pane.getBoundingClientRect().left
2039
+ const paneRect = pane.getBoundingClientRect()
2040
+ const rowH = grabRect?.height ?? 40
2041
+ // Rows do not move during the gesture (the carry is a fixed overlay), so
2042
+ // rects are measured ONCE - per-move full-row rect scans forced a
2043
+ // synchronous reflow after every overlay style write.
2044
+ const rects = rowEls.map((el) => el.getBoundingClientRect())
2045
+ // [allblue-fork] 行窗口化后 rowEls/rects 只覆盖已渲染行(全量 rows 的一个
2046
+ // 切片),onMove 给出的 boundary 是切片内局部下标:propose 前按首行
2047
+ // row-id 解析窗口起点对齐全量下标——否则目标行整体偏移 startIdx,
2048
+ // 指示器画在窗口内、提交的却是偏移前的行(静默错误数据操作)。
2049
+ const windowStart =
2050
+ rowEls.length > 0
2051
+ ? Math.max(
2052
+ 0,
2053
+ rows.findIndex(
2054
+ (r) => r.resource.id === rowEls[0]?.dataset.ganttRowId
2055
+ )
2056
+ )
2057
+ : 0
2058
+ const place = (y: number) => {
2059
+ const top = Math.min(
2060
+ Math.max(y - grabDY, paneRect.top),
2061
+ paneRect.bottom - rowH
2062
+ )
2063
+ overlay.style.left = `${lockedX}px`
2064
+ overlay.style.top = `${top}px`
2065
+ }
2066
+ place(e.clientY)
2067
+
2068
+ const propose = (boundary: number): TimelineReorderState => {
2069
+ // [allblue-fork] 局部 boundary → 全量下标(未窗口化时 windowStart=0,行为不变)
2070
+ const absoluteBoundary = Math.min(windowStart + boundary, rows.length)
2071
+ const below = rows[absoluteBoundary]
2072
+ const parentId =
2073
+ below?.parentId ?? rows[rows.length - 1]?.parentId ?? null
2074
+ let index = 0
2075
+ for (let i = 0; i < absoluteBoundary; i++) {
2076
+ if (
2077
+ rows[i].parentId === parentId &&
2078
+ rows[i].resource.id !== dragRow.resource.id
2079
+ ) {
2080
+ index++
2081
+ }
2082
+ }
2083
+ const next = reorderResources(
2084
+ settings.resources,
2085
+ dragRow.resource.id,
2086
+ parentId,
2087
+ index
2088
+ )
2089
+ const proposal: GanttResourceReorder | null = next
2090
+ ? {
2091
+ resourceId: dragRow.resource.id,
2092
+ parentId,
2093
+ index,
2094
+ resources: next,
2095
+ }
2096
+ : null
2097
+ const valid =
2098
+ !!proposal && (settings.canReorderResource?.(proposal) ?? true)
2099
+ const top =
2100
+ boundary < rects.length
2101
+ ? rects[boundary].top - paneRect.top
2102
+ : (rects[rects.length - 1]?.bottom ?? paneRect.top) - paneRect.top
2103
+ return { resourceId: dragRow.resource.id, top, valid, proposal }
2104
+ }
2105
+
2106
+ const onMove = (ev: PointerEvent) => {
2107
+ if (ev.pointerId !== pointerId) return
2108
+ place(ev.clientY)
2109
+ let boundary = rects.length
2110
+ for (let i = 0; i < rects.length; i++) {
2111
+ if (ev.clientY < rects[i].top + rects[i].height / 2) {
2112
+ boundary = i
2113
+ break
2114
+ }
2115
+ }
2116
+ // the immutable tree clone + validity check run only when the pointer
2117
+ // crosses into another slot, not per pointermove
2118
+ if (boundary === lastBoundary) return
2119
+ lastBoundary = boundary
2120
+ const nextState = propose(boundary)
2121
+ if (
2122
+ current &&
2123
+ current.top === nextState.top &&
2124
+ current.valid === nextState.valid
2125
+ ) {
2126
+ return
2127
+ }
2128
+ current = nextState
2129
+ document.body.style.cursor = nextState.valid
2130
+ ? "grabbing"
2131
+ : "not-allowed"
2132
+ setReorder(nextState)
2133
+ }
2134
+ const finish = (commit: boolean) => {
2135
+ window.removeEventListener("pointermove", onMove)
2136
+ window.removeEventListener("pointerup", onUp)
2137
+ window.removeEventListener("pointercancel", onCancelEvent)
2138
+ window.removeEventListener("keydown", onKey)
2139
+ overlay.remove()
2140
+ document.body.style.cursor = ""
2141
+ document.body.style.userSelect = ""
2142
+ if (commit && current?.proposal && !current.valid) {
2143
+ // released on a rejected position (e.g. a pinned row): let the
2144
+ // consumer explain it - the destructive indicator already showed live
2145
+ settings.onResourceReorderReject?.(current.proposal)
2146
+ } else if (commit && current?.valid && current.proposal) {
2147
+ settings.onResourceReorder?.(current.proposal)
2148
+ const announcer = pane
2149
+ .closest<HTMLElement>("[data-slot=gantt]")
2150
+ ?.querySelector<HTMLElement>("[data-slot=gantt-announcer]")
2151
+ if (announcer) {
2152
+ announcer.textContent = `${dragRow.resource.title}: ${settings.i18n.labels.reorder}`
2153
+ }
2154
+ }
2155
+ setReorder(null)
2156
+ }
2157
+ const onUp = (ev: PointerEvent) => {
2158
+ if (ev.pointerId !== pointerId) return
2159
+ finish(true)
2160
+ }
2161
+ const onCancelEvent = (ev: PointerEvent) => {
2162
+ if (ev.pointerId !== pointerId) return
2163
+ finish(false)
2164
+ }
2165
+ const onKey = (ev: KeyboardEvent) => {
2166
+ if (ev.key === "Escape") finish(false)
2167
+ }
2168
+ window.addEventListener("pointermove", onMove)
2169
+ window.addEventListener("pointerup", onUp)
2170
+ window.addEventListener("pointercancel", onCancelEvent)
2171
+ window.addEventListener("keydown", onKey)
2172
+ },
2173
+ []
2174
+ )
2175
+
2176
+ const collapsedIdsRef = useRef(collapsedIds)
2177
+ collapsedIdsRef.current = collapsedIds
2178
+ // Stable identity (reads through refs) so memoized rows survive re-renders
2179
+ const onToggleRow = useCallback((row: TimelineRow) => {
2180
+ const current = collapsedIdsRef.current
2181
+ const next = current.includes(row.resource.id)
2182
+ ? current.filter((id) => id !== row.resource.id)
2183
+ : [...current, row.resource.id]
2184
+ if (viewConfigRef.current.collapsedGroups === undefined) {
2185
+ setInternalCollapsed(next)
2186
+ }
2187
+ viewConfigRef.current.onCollapsedGroupsChange?.(next)
2188
+ }, [])
2189
+
2190
+ const loading = useGanttSelector<unknown, boolean>((state) => state.loading)
2191
+ const customScrollbars = viewConfig.scrollbars !== "native"
2192
+ // [allblue-fork] row window virtualization — see docs/superpowers/specs/2026-10-18
2193
+ // 两 pane 垂直同步,时间轴 pane 是原生的纵向滚动源(native 模式下树 pane 的
2194
+ // 纵轴 overflow-hidden、滚轮转发到时间轴),由它驱动共享的行窗口。
2195
+ const rowWindow = useGanttRowWindow(
2196
+ rows,
2197
+ rowBars,
2198
+ timelinePaneRef,
2199
+ minRowRem
2200
+ )
2201
+ const gridLines = resolveTimelineLines(viewConfig.timelineLines)
2202
+ const showVerticalLines = gridLines.vertical !== null
2203
+ const offDayClassName =
2204
+ (typeof viewConfig.offDays === "object" && viewConfig.offDays.className) ||
2205
+ "bg-muted/40"
2206
+ // Body texture: default off-days carry a whisper-faint diagonal hatch over
2207
+ // a lighter wash (header cells stay flat). A custom offDays.className
2208
+ // replaces both surfaces verbatim.
2209
+ const offDayBodyClassName =
2210
+ (typeof viewConfig.offDays === "object" && viewConfig.offDays.className) ||
2211
+ "bg-muted/25 bg-[repeating-linear-gradient(135deg,transparent,transparent_5px,color-mix(in_oklab,var(--color-border)_35%,transparent)_5px,color-mix(in_oklab,var(--color-border)_35%,transparent)_6px)]"
2212
+
2213
+ // Header-only unit lines, and ONE mechanism for every vertical line in the
2214
+ // header: positioned spans at calc(fraction% - 1px). A background gradient
2215
+ // rasterizes stripe positions differently from element layout at fractional
2216
+ // unit widths, which shifted the group-row boundaries 1px off the unit
2217
+ // lines below them mid-track - identical span formulas snap identically.
2218
+ // The body stays bare - rows separate by whitespace, never vertical borders.
2219
+ const showUnitLines = !uniform || showVerticalLines
2220
+
2221
+ // ----- tree pane content -----
2222
+ // Header label offset = the row cell's ps-3 (0.75rem) left gutter + the
2223
+ // toggle/checkbox gutter (w-5 + me-1 = 1.5rem) + the reorder grip (0.875rem)
2224
+ // when present, so "Resources" lines up with the row titles below it.
2225
+ const namePaddingStart = reorderEnabled ? "3.125rem" : "2.25rem"
2226
+ const treeContent = (
2227
+ <div
2228
+ className={cn(
2229
+ "flex min-h-full w-max min-w-full flex-col",
2230
+ // clearance for the pinned horizontal scrollbar strip
2231
+ customScrollbars && "pb-2.5"
2232
+ )}
2233
+ >
2234
+ {/* Same 65px height as the two-row timeline header so the panes align.
2235
+ The head keeps its own bottom rule (under the Resources label), but
2236
+ the header/body boundary line is transparent so the first tree node
2237
+ has no rule directly above it - the 1px is kept only to preserve the
2238
+ 65px height, matching the timeline. */}
2239
+ <div
2240
+ data-slot="gantt-tree-header"
2241
+ className="bg-background sticky top-0 z-30 box-content h-16 shrink-0 border-b border-b-transparent"
2242
+ >
2243
+ <div className="flex h-8 border-b">
2244
+ <div className="flex h-full min-w-0 flex-1">
2245
+ <div
2246
+ className="flex h-full shrink-0 items-center"
2247
+ style={{
2248
+ width: treeConfig.nameColumnWidth,
2249
+ paddingInlineStart: namePaddingStart,
2250
+ }}
2251
+ >
2252
+ <span className="text-muted-foreground truncate font-medium">
2253
+ {settings.i18n.labels.resources}
2254
+ </span>
2255
+ </div>
2256
+ {columns.map((column) => (
2257
+ <div
2258
+ key={column.id}
2259
+ data-slot="gantt-column-header"
2260
+ data-column={column.id}
2261
+ className={cn(
2262
+ "text-muted-foreground flex h-full shrink-0 items-center px-2 font-medium",
2263
+ column.align === "center" && "justify-center",
2264
+ column.align === "end" && "justify-end",
2265
+ column.className
2266
+ )}
2267
+ style={{ width: column.width ?? DEFAULT_COLUMN_WIDTH }}
2268
+ >
2269
+ <span className="truncate">{column.title ?? column.id}</span>
2270
+ </div>
2271
+ ))}
2272
+ <div className="min-w-0 flex-1" />
2273
+ </div>
2274
+ {viewConfig.columnsMenu && (
2275
+ <div
2276
+ data-slot="gantt-columns-menu"
2277
+ // gradient lead-in: scrolled column headers dissolve into this
2278
+ // sticky control instead of hard-clipping against its background
2279
+ className="bg-background before:from-background sticky end-0 z-10 flex h-full shrink-0 items-center ps-1.5 pe-2.5 before:pointer-events-none before:absolute before:inset-y-0 before:-start-5 before:w-5 before:bg-linear-to-l before:to-transparent rtl:before:bg-linear-to-r"
2280
+ >
2281
+ {viewConfig.columnsMenu}
2282
+ </div>
2283
+ )}
2284
+ </div>
2285
+ </div>
2286
+ <div ref={treeRowsRef} className="flex flex-col">
2287
+ {/* [allblue-fork] row window virtualization — see docs/superpowers/specs/2026-10-18 */}
2288
+ {rowWindow.canVirtualize && (
2289
+ <div
2290
+ aria-hidden
2291
+ data-gantt-row-window-pad=""
2292
+ style={{ height: `${rowWindow.topPadRem}rem` }}
2293
+ />
2294
+ )}
2295
+ {rows.slice(rowWindow.startIdx, rowWindow.endIdx).map((row) => (
2296
+ <GanttTreeRow
2297
+ key={row.resource.id}
2298
+ row={row}
2299
+ heightRem={rowBars.get(row.resource.id)?.heightRem ?? minRowRem}
2300
+ bandRem={rowBars.get(row.resource.id)?.bandRem ?? minRowRem}
2301
+ columns={columns}
2302
+ nameWidth={treeConfig.nameColumnWidth}
2303
+ dimmed={reorder?.resourceId === row.resource.id}
2304
+ selected={selectedSet.has(row.resource.id)}
2305
+ onSelectedChange={row.isGroup ? undefined : toggleRowSelected}
2306
+ onGripPointerDown={reorderEnabled ? beginRowReorder : undefined}
2307
+ onToggle={onToggleRow}
2308
+ />
2309
+ ))}
2310
+ {rowWindow.canVirtualize && (
2311
+ <div
2312
+ aria-hidden
2313
+ data-gantt-row-window-pad=""
2314
+ style={{ height: `${rowWindow.bottomPadRem}rem` }}
2315
+ />
2316
+ )}
2317
+ {/* [/allblue-fork] row window virtualization */}
2318
+ {showCreateTask && (
2319
+ <button
2320
+ type="button"
2321
+ data-slot="gantt-create-task"
2322
+ // mirror the tree row's left structure so the + lands in the same
2323
+ // column as the row toggle chevrons, and the label lines up with
2324
+ // the task titles above
2325
+ className="text-muted-foreground hover:text-foreground hover:bg-muted/40 flex h-10 w-full shrink-0 items-center border-b ps-3 pe-3"
2326
+ onClick={() =>
2327
+ settings.onCreateTask?.({
2328
+ parentId: null,
2329
+ index: settings.resources.length,
2330
+ })
2331
+ }
2332
+ >
2333
+ <span className="flex h-full w-full items-center">
2334
+ {reorderEnabled && (
2335
+ <span aria-hidden className="w-3.5 shrink-0" />
2336
+ )}
2337
+ {/* group chevrons sit centered in a size-5 button that fills
2338
+ this w-5 gutter, so the + must center here too */}
2339
+ <span className="me-1 flex w-5 shrink-0 items-center justify-center">
2340
+ <PlusIcon className="size-3.5" aria-hidden="true" />
2341
+ </span>
2342
+ <span>{settings.i18n.labels.addTask}</span>
2343
+ </span>
2344
+ </button>
2345
+ )}
2346
+ </div>
2347
+ </div>
2348
+ )
2349
+
2350
+ // ----- timeline pane content -----
2351
+ const timelineContent = (
2352
+ <div
2353
+ className={cn(
2354
+ // grow (not just min-h-full) so the body reaches the bottom of the
2355
+ // pane: the columns then run the full height and the empty space
2356
+ // below the last row becomes pannable canvas instead of dead area
2357
+ "flex min-h-full w-max min-w-full grow flex-col",
2358
+ customScrollbars && "pb-2.5"
2359
+ )}
2360
+ >
2361
+ {/* Two-row grouped header; also the drag-to-pan surface */}
2362
+ <div
2363
+ data-slot="gantt-timeline-header"
2364
+ className="bg-background sticky top-0 z-30 shrink-0 border-b"
2365
+ style={{ minWidth: trackWidth }}
2366
+ onPointerDown={beginHeaderPan}
2367
+ >
2368
+ {/* group sectors; boundaries painted like the body lines */}
2369
+ <div className="relative h-8 border-b">
2370
+ <div className="flex h-full">
2371
+ {groups.map((group) => (
2372
+ <div
2373
+ key={group.key}
2374
+ data-slot="gantt-axis-group"
2375
+ // no `truncate` here: overflow-hidden would make this the
2376
+ // sticky label's scrollport and the stick would never fire
2377
+ className="text-muted-foreground flex min-w-0 items-center ps-3 pe-2"
2378
+ style={{ flex: `${group.span} 0 0px` }}
2379
+ >
2380
+ {/* Pure-CSS sticky: the label rides the leading edge for as
2381
+ long as its own band is on screen, then the next band pushes
2382
+ it out - so the day you are looking at always names itself.
2383
+ The browser composites this; a scroll listener would run JS
2384
+ on every frame to do worse. start-3 matches the cell's ps-3
2385
+ so the gutter is identical parked or pinned. */}
2386
+ <span
2387
+ data-slot="gantt-axis-group-label"
2388
+ className="sticky start-3 max-w-full truncate"
2389
+ >
2390
+ {group.label}
2391
+ </span>
2392
+ </div>
2393
+ ))}
2394
+ </div>
2395
+ {/* same span formula as the unit lines below: equal fractions get
2396
+ equal layout rounding, so the two rows' lines never drift apart */}
2397
+ {groupBoundaries.map((fraction) => (
2398
+ <span
2399
+ key={fraction}
2400
+ aria-hidden
2401
+ className="bg-border absolute inset-y-0 w-px"
2402
+ style={{ insetInlineStart: `calc(${fraction * 100}% - 1px)` }}
2403
+ />
2404
+ ))}
2405
+ </div>
2406
+ {/* units, engine axis = this row */}
2407
+ <div
2408
+ data-gantt-axis=""
2409
+ data-gantt-range-start={rangeStartMs}
2410
+ data-gantt-range-end={rangeEndMs}
2411
+ data-gantt-snap={snapMin}
2412
+ className="relative h-8"
2413
+ >
2414
+ {/* chrome underlay: off-day washes under the label layer */}
2415
+ <div aria-hidden className="absolute inset-0">
2416
+ {unitFractions.map(
2417
+ ({ unit, start, width }) =>
2418
+ unit.isOff && (
2419
+ <span
2420
+ key={unit.key}
2421
+ className={cn("absolute inset-y-0", offDayClassName)}
2422
+ style={{
2423
+ insetInlineStart: `${start * 100}%`,
2424
+ width: `${width * 100}%`,
2425
+ }}
2426
+ />
2427
+ )
2428
+ )}
2429
+ </div>
2430
+ <div className="flex h-full">
2431
+ {units.map((unit) => (
2432
+ <div
2433
+ key={unit.key}
2434
+ data-today={unit.isToday || undefined}
2435
+ data-off={unit.isOff || undefined}
2436
+ className={cn(
2437
+ "flex min-w-0 items-center justify-center truncate px-1.5 text-center",
2438
+ "text-muted-foreground",
2439
+ unit.isToday && "text-primary font-medium"
2440
+ )}
2441
+ style={{ flex: `${unit.weight} 0 0px` }}
2442
+ >
2443
+ {/* today reads as a soft pill, not just tinted text */}
2444
+ {unit.isToday ? (
2445
+ <span className="bg-primary/10 truncate rounded-full px-1.5 py-px">
2446
+ {unit.label}
2447
+ </span>
2448
+ ) : (
2449
+ unit.label
2450
+ )}
2451
+ </div>
2452
+ ))}
2453
+ </div>
2454
+ {showUnitLines &&
2455
+ unitFractions.slice(1).map(({ unit, start }) => (
2456
+ <span
2457
+ key={unit.key}
2458
+ aria-hidden
2459
+ data-slot="gantt-grid-line"
2460
+ data-axis="vertical"
2461
+ className={cn(
2462
+ "absolute inset-y-0 w-px",
2463
+ // a dashed rule is a repeating gradient, not a border: the
2464
+ // line is a 1px span, and border-dashed on a zero-width box
2465
+ // paints nothing
2466
+ gridLines.vertical === "dashed"
2467
+ ? "bg-[repeating-linear-gradient(to_bottom,var(--color-border)_0,var(--color-border)_3px,transparent_3px,transparent_6px)]"
2468
+ : "bg-border"
2469
+ )}
2470
+ style={{ insetInlineStart: `calc(${start * 100}% - 1px)` }}
2471
+ />
2472
+ ))}
2473
+ {viewConfig.nowIndicator && (
2474
+ <GanttNowDot rangeStartMs={rangeStartMs} rangeEndMs={rangeEndMs} />
2475
+ )}
2476
+ </div>
2477
+ </div>
2478
+ {/* Rows over a shared backdrop (off days, today, boundaries, now);
2479
+ grows so the columns run to the bottom of the pane. Pressing anywhere
2480
+ here that is not a bar or a hint tile begins a scroll pan - the whole
2481
+ panel is a draggable canvas, not just the rows. */}
2482
+ <div
2483
+ className="relative flex min-h-0 grow flex-col"
2484
+ onPointerDown={beginHeaderPan}
2485
+ >
2486
+ {/* off-day / today / now backdrop only; vertical gridlines are
2487
+ per-row and reveal on selection, not painted here */}
2488
+ <div
2489
+ aria-hidden
2490
+ data-slot="gantt-timeline-backdrop"
2491
+ className="pointer-events-none absolute inset-0"
2492
+ >
2493
+ {unitFractions.map(({ unit, start, width }) => (
2494
+ <span key={unit.key} className="contents">
2495
+ {unit.isOff && (
2496
+ <span
2497
+ data-off=""
2498
+ className={cn("absolute inset-y-0", offDayBodyClassName)}
2499
+ style={{
2500
+ insetInlineStart: `${start * 100}%`,
2501
+ width: `${width * 100}%`,
2502
+ }}
2503
+ />
2504
+ )}
2505
+ {unit.isToday && scale !== "day" && (
2506
+ <span
2507
+ data-today=""
2508
+ className="bg-primary/5 absolute inset-y-0"
2509
+ style={{
2510
+ insetInlineStart: `${start * 100}%`,
2511
+ width: `${width * 100}%`,
2512
+ }}
2513
+ />
2514
+ )}
2515
+ </span>
2516
+ ))}
2517
+ {/* one layer for the whole body, not per row: the unit boundaries
2518
+ have to line up with the header's spans exactly, so both use the
2519
+ same fraction formula */}
2520
+ {gridLines.vertical !== null &&
2521
+ unitFractions
2522
+ .slice(1)
2523
+ .map(({ unit, start }) => (
2524
+ <span
2525
+ key={`grid-${unit.key}`}
2526
+ data-slot="gantt-grid-line"
2527
+ data-axis="vertical"
2528
+ className={cn(
2529
+ "absolute inset-y-0 w-px",
2530
+ gridLines.vertical === "dashed"
2531
+ ? "bg-[repeating-linear-gradient(to_bottom,var(--color-border)_0,var(--color-border)_3px,transparent_3px,transparent_6px)]"
2532
+ : "bg-border"
2533
+ )}
2534
+ style={{ insetInlineStart: `calc(${start * 100}% - 1px)` }}
2535
+ />
2536
+ ))}
2537
+ {viewConfig.nowIndicator && (
2538
+ <GanttNowLine rangeStartMs={rangeStartMs} rangeEndMs={rangeEndMs} />
2539
+ )}
2540
+ </div>
2541
+ {/* Dependency arrows: after the backdrop, before the rows, so they
2542
+ run above the off-day wash but under every bar. Its own component
2543
+ because it follows drags per snap step, and that subscription must
2544
+ re-render a few paths, never this whole view. */}
2545
+ {dependencyEdges.edges.length > 0 && (
2546
+ <GanttDependencyLayer
2547
+ edges={dependencyEdges.edges}
2548
+ totalRem={dependencyEdges.totalRem}
2549
+ trackRemWidth={trackRemWidth}
2550
+ rangeStartMs={rangeStartMs}
2551
+ rangeEndMs={rangeEndMs}
2552
+ laneHeightRem={laneHeightRem}
2553
+ laneGapRem={laneGapRem}
2554
+ />
2555
+ )}
2556
+ {/* [allblue-fork] row window virtualization — see docs/superpowers/specs/2026-10-18
2557
+ rowIndex 传绝对下标(窗口内局部 index + startIdx):首行 tooltip 定位依赖它 */}
2558
+ {rowWindow.canVirtualize && (
2559
+ <div
2560
+ aria-hidden
2561
+ data-gantt-row-window-pad=""
2562
+ style={{ height: `${rowWindow.topPadRem}rem` }}
2563
+ />
2564
+ )}
2565
+ {rows
2566
+ .slice(rowWindow.startIdx, rowWindow.endIdx)
2567
+ .map((row, index) => (
2568
+ <GanttTimelineRow
2569
+ key={row.resource.id}
2570
+ row={row}
2571
+ rowIndex={rowWindow.startIdx + index}
2572
+ bars={rowBars.get(row.resource.id)}
2573
+ rangeStartMs={rangeStartMs}
2574
+ rangeEndMs={rangeEndMs}
2575
+ trackWidth={trackWidth}
2576
+ trackRemWidth={trackRemWidth}
2577
+ rowBorder={gridLines.horizontal}
2578
+ selected={selectedSet.has(row.resource.id)}
2579
+ resolveHintStop={resolveHintStop}
2580
+ isPanning={isPanning}
2581
+ laneHeightRem={laneHeightRem}
2582
+ laneGapRem={laneGapRem}
2583
+ minRowRem={minRowRem}
2584
+ ghostHeightRem={ghostHeightRem}
2585
+ dependencySourceIds={dependencySourceIds}
2586
+ />
2587
+ ))}
2588
+ {rowWindow.canVirtualize && (
2589
+ <div
2590
+ aria-hidden
2591
+ data-gantt-row-window-pad=""
2592
+ style={{ height: `${rowWindow.bottomPadRem}rem` }}
2593
+ />
2594
+ )}
2595
+ {/* [/allblue-fork] row window virtualization */}
2596
+ {rows.length === 0 && viewConfig.renderNoResources && (
2597
+ <div
2598
+ data-slot="gantt-no-resources"
2599
+ className="text-muted-foreground flex grow items-center justify-center p-6 text-sm"
2600
+ >
2601
+ {viewConfig.renderNoResources()}
2602
+ </div>
2603
+ )}
2604
+ {showCreateTask && (
2605
+ <div
2606
+ aria-hidden
2607
+ data-slot="gantt-create-task-spacer"
2608
+ className="h-10 border-b"
2609
+ style={{ minWidth: trackWidth }}
2610
+ />
2611
+ )}
2612
+ </div>
2613
+ </div>
2614
+ )
2615
+
2616
+ const horizontalScrollbar = (
2617
+ <ScrollBar
2618
+ orientation="horizontal"
2619
+ // taller strip with vertical padding so the thumb is not crowded.
2620
+ // end-0 runs the strip (bg + top border) to the pane's right edge instead
2621
+ // of stopping short by the corner width - the vertical scrollbar is inset
2622
+ // to end above this strip, so nothing collides in the bottom-right corner.
2623
+ className="bg-background border-t-border! end-0! z-40 h-4! rounded-none py-1"
2624
+ />
2625
+ )
2626
+
2627
+ const defaultProps = {
2628
+ "data-slot": "gantt-view",
2629
+ "data-scale": scale,
2630
+ "aria-busy": loading || undefined,
2631
+ className: cn(
2632
+ "flex min-h-0 flex-1 flex-col overflow-hidden",
2633
+ viewConfig.classNames?.view,
2634
+ className
2635
+ ),
2636
+ children: (
2637
+ <div ref={bodyRef} className="relative flex min-h-0 flex-1">
2638
+ {/* Tree pane */}
2639
+ <div
2640
+ ref={treePaneRef}
2641
+ data-slot="gantt-tree-pane"
2642
+ className="relative h-full shrink-0"
2643
+ style={{ width: liveTreeWidthRef.current ?? clampedTreeWidth }}
2644
+ >
2645
+ {customScrollbars ? (
2646
+ // keyed by scale: Base UI measures overflow once per mount, and a
2647
+ // scale switch changes content without resizing the viewport
2648
+ <ScrollArea
2649
+ key={scale}
2650
+ className="h-full [&>[data-orientation=vertical]]:hidden"
2651
+ >
2652
+ <ScrollAreaPrimitive.Content>
2653
+ {treeContent}
2654
+ </ScrollAreaPrimitive.Content>
2655
+ {horizontalScrollbar}
2656
+ </ScrollArea>
2657
+ ) : (
2658
+ <div
2659
+ data-slot="scroll-area-viewport"
2660
+ data-gantt-native-scroll=""
2661
+ // vertical axis is DISPLAY-ONLY: the position is always
2662
+ // mirrored from the timeline, so no vertical scrollbar can
2663
+ // ever appear (overlay platforms included). Wheel deltas
2664
+ // forward to the timeline (see the sync effect); horizontal
2665
+ // column scrolling stays fully native.
2666
+ className="h-full overflow-x-auto overflow-y-hidden overscroll-contain"
2667
+ >
2668
+ {treeContent}
2669
+ </div>
2670
+ )}
2671
+ {/* Reserved horizontal-scrollbar rail: the tree usually has no
2672
+ horizontal overflow, so its real scrollbar never mounts and its
2673
+ bottom edge would sit higher than the timeline's pinned strip.
2674
+ This static rail fills that gutter (same 1rem height + top border)
2675
+ so the bottom strip reads as one continuous band across both
2676
+ panes; a real tree scrollbar (with columns) draws over it. */}
2677
+ {customScrollbars && (
2678
+ <div
2679
+ aria-hidden
2680
+ data-slot="gantt-tree-scrollbar-rail"
2681
+ className="bg-background border-t-border pointer-events-none absolute inset-x-0 bottom-0 h-4 border-t"
2682
+ />
2683
+ )}
2684
+ {/* Reorder insertion indicator, pinned to the visible pane */}
2685
+ {reorder && (
2686
+ <div
2687
+ data-slot="gantt-reorder-indicator"
2688
+ data-invalid={!reorder.valid || undefined}
2689
+ className="pointer-events-none absolute inset-x-0 flex items-center"
2690
+ style={{ top: reorder.top - 4, zIndex: 110 }}
2691
+ >
2692
+ {/* caret head pointing along the insertion line; the whole
2693
+ indicator sits above the row carry overlay (z 100) */}
2694
+ <span
2695
+ className={cn(
2696
+ "ms-0.5 size-0 shrink-0 border-y-4 border-s-8 border-y-transparent",
2697
+ reorder.valid ? "border-s-primary" : "border-s-destructive"
2698
+ )}
2699
+ />
2700
+ <span
2701
+ className={cn(
2702
+ "h-px min-w-0 flex-1",
2703
+ reorder.valid ? "bg-primary" : "bg-destructive"
2704
+ )}
2705
+ />
2706
+ </div>
2707
+ )}
2708
+ </div>
2709
+ {/* Splitter */}
2710
+ {treeConfig.resizable ? (
2711
+ <div
2712
+ role="separator"
2713
+ aria-orientation="vertical"
2714
+ aria-label={settings.i18n.labels.resizePanel}
2715
+ aria-valuenow={Math.round(clampedTreeWidth)}
2716
+ // the EFFECTIVE floor, not the configured one: on a narrow
2717
+ // container the tree yields below its own minWidth to keep the
2718
+ // timeline usable, and valuenow must never fall outside the range
2719
+ aria-valuemin={Math.round(
2720
+ Math.min(treeConfig.minWidth, clampedTreeWidth)
2721
+ )}
2722
+ aria-valuemax={Math.round(
2723
+ Math.max(treeConfig.maxWidth, clampedTreeWidth)
2724
+ )}
2725
+ tabIndex={0}
2726
+ data-slot="gantt-splitter"
2727
+ className={cn(
2728
+ "group/gantt-splitter bg-border hover:bg-primary/60 data-resizing:bg-primary relative z-30 w-px shrink-0 cursor-col-resize touch-none outline-none",
2729
+ "focus-visible:ring-ring/50 focus-visible:ring-2",
2730
+ "after:absolute after:inset-y-0 after:-start-1 after:-end-1"
2731
+ )}
2732
+ onPointerDown={beginSplit}
2733
+ onDoubleClick={() => {
2734
+ setTreeWidth(treeConfig.width)
2735
+ treeConfig.onWidthChange?.(treeConfig.width)
2736
+ }}
2737
+ onKeyDown={(e) => {
2738
+ if (e.key === "ArrowLeft" || e.key === "ArrowRight") {
2739
+ e.preventDefault()
2740
+ const dir =
2741
+ getComputedStyle(e.currentTarget).direction === "rtl" ? -1 : 1
2742
+ const delta = (e.key === "ArrowLeft" ? -16 : 16) * dir
2743
+ const next = clampTree(clampedTreeWidth + delta)
2744
+ setTreeWidth(next)
2745
+ treeConfig.onWidthChange?.(next)
2746
+ }
2747
+ }}
2748
+ >
2749
+ {/* grip pill: makes the hairline read as draggable on approach */}
2750
+ <span
2751
+ aria-hidden
2752
+ data-slot="gantt-splitter-grip"
2753
+ className="bg-primary/60 group-data-resizing/gantt-splitter:bg-primary absolute top-1/2 left-1/2 h-6 w-0.75 -translate-x-1/2 -translate-y-1/2 rounded-full opacity-0 transition-opacity duration-150 group-hover/gantt-splitter:opacity-100 group-focus-visible/gantt-splitter:opacity-100 group-data-resizing/gantt-splitter:opacity-100"
2754
+ />
2755
+ </div>
2756
+ ) : (
2757
+ <div aria-hidden className="bg-border w-px shrink-0" />
2758
+ )}
2759
+ {/* Timeline pane */}
2760
+ <div
2761
+ ref={timelinePaneRef}
2762
+ data-slot="gantt-timeline-pane"
2763
+ className="relative h-full min-w-0 flex-1"
2764
+ >
2765
+ {viewConfig.zoomControl && (
2766
+ <div
2767
+ data-slot="gantt-zoom"
2768
+ /* --gantt-zoom-shift comes from the offscreen-chips measure
2769
+ pass: the control glides inward while a chip occupies its
2770
+ band, because the chips' position IS their meaning and this
2771
+ corner spot is merely a habit */
2772
+ className="bg-background absolute end-[calc(0.75rem+var(--gantt-zoom-shift,0px))] bottom-5 z-40 flex flex-col rounded-md border shadow-sm transition-[inset-inline-end] duration-200"
2773
+ >
2774
+ {/* aria-disabled instead of disabled: the not-allowed cursor
2775
+ must still show at the zoom limits */}
2776
+ <TooltipProvider delay={600} closeDelay={0} timeout={300}>
2777
+ <Tooltip>
2778
+ <TooltipTrigger
2779
+ render={
2780
+ <Button
2781
+ variant="ghost"
2782
+ size="icon-xs"
2783
+ aria-label={settings.i18n.labels.zoomIn}
2784
+ aria-disabled={!canZoomIn || undefined}
2785
+ className="text-muted-foreground hover:text-foreground size-5! rounded-b-none aria-disabled:cursor-not-allowed aria-disabled:opacity-50 aria-disabled:hover:bg-transparent"
2786
+ onClick={() => {
2787
+ if (!canZoomIn) return
2788
+ // controlled zoom anchors via fineCenterRef when
2789
+ // the parent adopts; a pre-set anchor would leak
2790
+ // stale if the parent ignores the proposal
2791
+ if (viewConfig.zoom === undefined) anchorZoomCenter()
2792
+ setZoomValue(
2793
+ +(zoom + (zoomRange.step ?? 0.25)).toFixed(2)
2794
+ )
2795
+ }}
2796
+ />
2797
+ }
2798
+ >
2799
+ <PlusIcon className="size-3" aria-hidden="true" />
2800
+ </TooltipTrigger>
2801
+ <TooltipContent side="left">
2802
+ {settings.i18n.labels.zoomIn}
2803
+ </TooltipContent>
2804
+ </Tooltip>
2805
+ <Tooltip>
2806
+ <TooltipTrigger
2807
+ render={
2808
+ <Button
2809
+ variant="ghost"
2810
+ size="icon-xs"
2811
+ aria-label={settings.i18n.labels.zoomOut}
2812
+ aria-disabled={!canZoomOut || undefined}
2813
+ className="text-muted-foreground hover:text-foreground size-5! rounded-t-none border-t aria-disabled:cursor-not-allowed aria-disabled:opacity-50 aria-disabled:hover:bg-transparent"
2814
+ onClick={() => {
2815
+ if (!canZoomOut) return
2816
+ if (viewConfig.zoom === undefined) anchorZoomCenter()
2817
+ setZoomValue(
2818
+ +(zoom - (zoomRange.step ?? 0.25)).toFixed(2)
2819
+ )
2820
+ }}
2821
+ />
2822
+ }
2823
+ >
2824
+ <MinusIcon className="size-3" aria-hidden="true" />
2825
+ </TooltipTrigger>
2826
+ <TooltipContent side="left">
2827
+ {settings.i18n.labels.zoomOut}
2828
+ </TooltipContent>
2829
+ </Tooltip>
2830
+ </TooltipProvider>
2831
+ </div>
2832
+ )}
2833
+ {customScrollbars ? (
2834
+ // The vertical scrollbar is inset into the body lane: it starts
2835
+ // below the sticky 65px two-row header (otherwise its top slides
2836
+ // behind the header and the thumb is clipped) and stops above the
2837
+ // pinned 16px horizontal strip. `!` overrides Base UI's inline
2838
+ // top/bottom; h-auto lets top+bottom define the track height so
2839
+ // the thumb is measured against the visible lane, not the full pane.
2840
+ <ScrollArea
2841
+ key={scale}
2842
+ className="h-full [&>[data-orientation=vertical]]:top-[65px]! [&>[data-orientation=vertical]]:bottom-4! [&>[data-orientation=vertical]]:h-auto!"
2843
+ >
2844
+ {/* A FLEX column, not a percentage: the content's own
2845
+ min-h-full would resolve against this box's auto height and
2846
+ collapse to nothing, which is why the columns used to stop at
2847
+ the last row and leave the rest of the pane dead space. As a
2848
+ flex parent it can hand the leftover height down instead. */}
2849
+ <ScrollAreaPrimitive.Content className="flex min-h-full flex-col">
2850
+ {timelineContent}
2851
+ </ScrollAreaPrimitive.Content>
2852
+ {horizontalScrollbar}
2853
+ </ScrollArea>
2854
+ ) : (
2855
+ <div
2856
+ data-slot="scroll-area-viewport"
2857
+ data-gantt-native-scroll=""
2858
+ className="h-full overflow-auto overscroll-contain"
2859
+ >
2860
+ {timelineContent}
2861
+ </div>
2862
+ )}
2863
+ {/* Reserved scrollbar rail - the twin of the tree rail. Keeps the
2864
+ bottom gutter present even when the real horizontal scrollbar is
2865
+ hidden (e.g. hover-reveal scrollbars at rest), so the strip reads
2866
+ as one continuous reserved band across both panes; the real
2867
+ scrollbar (z-40) draws over it when active. */}
2868
+ {customScrollbars && (
2869
+ <div
2870
+ aria-hidden
2871
+ data-slot="gantt-timeline-scrollbar-rail"
2872
+ className="bg-background border-t-border pointer-events-none absolute inset-x-0 bottom-0 h-4 border-t"
2873
+ />
2874
+ )}
2875
+ {viewConfig.offscreenIndicators && (
2876
+ <GanttOffscreenChips
2877
+ paneRef={timelinePaneRef}
2878
+ occurrences={occurrences}
2879
+ locale={settings.locale}
2880
+ refreshKey={`${scale}:${rangeKey}:${zoom}:${rows.length}:${clampedTreeWidth}:${viewConfig.scrollbars}`}
2881
+ />
2882
+ )}
2883
+ </div>
2884
+ {loading && (
2885
+ <div
2886
+ data-slot="gantt-loading"
2887
+ className="bg-background/60 absolute inset-0 z-50 flex items-center justify-center"
2888
+ >
2889
+ <span className="text-muted-foreground animate-pulse text-sm">
2890
+ {settings.i18n.labels.loading}
2891
+ </span>
2892
+ </div>
2893
+ )}
2894
+ {(viewConfig.renderDragPreview || viewConfig.renderResizeIndicator) && (
2895
+ <GanttCustomDragLayer />
2896
+ )}
2897
+ </div>
2898
+ ),
2899
+ }
2900
+
2901
+ return useRender({
2902
+ defaultTagName: "div",
2903
+ render,
2904
+ props: mergeProps<"div">(defaultProps, props),
2905
+ })
2906
+ }
2907
+
2908
+ /**
2909
+ * The red now-line, self-ticking: only this component re-renders on the 30s
2910
+ * clock, never the grid around it. z-10 keeps it above row content but UNDER
2911
+ * the sticky header (z-30) - vertical scrolling slides it beneath, never over.
2912
+ */
2913
+ function GanttNowLine({
2914
+ rangeStartMs,
2915
+ rangeEndMs,
2916
+ }: {
2917
+ rangeStartMs: number
2918
+ rangeEndMs: number
2919
+ }) {
2920
+ const now = useNow()
2921
+ const ms = now.getTime()
2922
+ if (ms < rangeStartMs || ms >= rangeEndMs) return null
2923
+ const fraction = (ms - rangeStartMs) / (rangeEndMs - rangeStartMs)
2924
+ return (
2925
+ <div
2926
+ data-slot="gantt-now-indicator"
2927
+ // comet tail: solid at the cap, dissolving toward the bottom -
2928
+ // present without ruling a hard line through every row
2929
+ className="from-destructive/80 via-destructive/45 to-destructive/15 absolute inset-y-0 z-10 w-px bg-linear-to-b"
2930
+ style={{ insetInlineStart: `${fraction * 100}%` }}
2931
+ />
2932
+ )
2933
+ }
2934
+
2935
+ /**
2936
+ * The now-line's dot cap, pinned INSIDE the sticky header at the header/body
2937
+ * boundary: it stays put while the line scrolls beneath the header.
2938
+ */
2939
+ function GanttNowDot({
2940
+ rangeStartMs,
2941
+ rangeEndMs,
2942
+ }: {
2943
+ rangeStartMs: number
2944
+ rangeEndMs: number
2945
+ }) {
2946
+ const now = useNow()
2947
+ const ms = now.getTime()
2948
+ if (ms < rangeStartMs || ms >= rangeEndMs) return null
2949
+ const fraction = (ms - rangeStartMs) / (rangeEndMs - rangeStartMs)
2950
+ return (
2951
+ <span
2952
+ aria-hidden
2953
+ data-slot="gantt-now-dot"
2954
+ className="bg-destructive absolute -bottom-0.75 z-10 size-1.5 -translate-x-1/2 rounded-full"
2955
+ style={{ insetInlineStart: `${fraction * 100}%` }}
2956
+ />
2957
+ )
2958
+ }
2959
+
2960
+ /**
2961
+ * Consumer-owned drag/resize indicators (renderDragPreview /
2962
+ * renderResizeIndicator): content is React and re-renders per snap step from
2963
+ * drag state; the dnd engine adopts this wrapper and writes its
2964
+ * cursor-tracking transform imperatively, flipping visibility on the first
2965
+ * positioned frame so nothing flashes at the viewport origin.
2966
+ */
2967
+ function GanttCustomDragLayer() {
2968
+ const viewConfig = useGanttViewConfig()
2969
+ const drag = useGanttSelector((state) => state.drag)
2970
+ if (!drag) return null
2971
+ const render =
2972
+ drag.kind === "move"
2973
+ ? viewConfig.renderDragPreview
2974
+ : viewConfig.renderResizeIndicator
2975
+ if (!render) return null
2976
+ return (
2977
+ <div
2978
+ data-slot={
2979
+ drag.kind === "move" ? "gantt-drag-overlay" : "gantt-resize-indicator"
2980
+ }
2981
+ data-custom=""
2982
+ // physical left-0 anchor: positioned by the engine's translate3d from
2983
+ // raw clientX (physical); a logical start-0 would break in RTL
2984
+ className="pointer-events-none fixed top-0 left-0 z-100 will-change-transform"
2985
+ style={{ visibility: "hidden" }}
2986
+ >
2987
+ {render({
2988
+ occurrence: drag.occurrence,
2989
+ kind: drag.kind,
2990
+ start: drag.proposedStart,
2991
+ end: drag.proposedEnd,
2992
+ valid: drag.valid,
2993
+ // the plan rides along so a custom overlay can keep drawing it
2994
+ // mid-gesture (the resting ghost is hidden with the original bar)
2995
+ baseline: resolveEventBaseline(drag.occurrence.event),
2996
+ })}
2997
+ </div>
2998
+ )
2999
+ }
3000
+
3001
+ /**
3002
+ * The dependency-arrow overlay: one SVG whose user unit is 1rem at the
3003
+ * track's natural width (the viewBox mirrors it), stretched to w-full so its
3004
+ * mapping tracks the bars' percentage positions when the zoomed track is
3005
+ * narrower than the pane. While a gesture is in flight the dragged event's
3006
+ * own endpoints re-derive from the proposed range and its edges go dashed -
3007
+ * the arrows point at the drop indicator's landing, never at stale data.
3008
+ * A component of its own so the per-snap drag subscription re-renders a few
3009
+ * paths instead of the whole view.
3010
+ */
3011
+ const GanttDependencyLayer = memo(function GanttDependencyLayer({
3012
+ edges,
3013
+ totalRem,
3014
+ trackRemWidth,
3015
+ rangeStartMs,
3016
+ rangeEndMs,
3017
+ laneHeightRem,
3018
+ laneGapRem,
3019
+ }: {
3020
+ edges: DependencyEdge[]
3021
+ totalRem: number
3022
+ trackRemWidth: number
3023
+ rangeStartMs: number
3024
+ rangeEndMs: number
3025
+ laneHeightRem: number
3026
+ laneGapRem: number
3027
+ }) {
3028
+ const viewConfig = useGanttViewConfig()
3029
+ // one snapshot per SNAP STEP (the engine already gates setDrag on those);
3030
+ // value-equal at rest, so resting renders never repeat
3031
+ const dragLink = useGanttSelector<
3032
+ unknown,
3033
+ { eventId: string; startMs: number; endMs: number } | null
3034
+ >(
3035
+ (state) =>
3036
+ state.drag
3037
+ ? {
3038
+ eventId: state.drag.occurrence.eventId,
3039
+ startMs: state.drag.proposedStart.getTime(),
3040
+ endMs: state.drag.proposedEnd.getTime(),
3041
+ }
3042
+ : null,
3043
+ {
3044
+ isEqual: (a, b) =>
3045
+ a === b ||
3046
+ (a !== null &&
3047
+ b !== null &&
3048
+ a.eventId === b.eventId &&
3049
+ a.startMs === b.startMs &&
3050
+ a.endMs === b.endMs),
3051
+ }
3052
+ )
3053
+ const totalMin = (rangeEndMs - rangeStartMs) / 60000
3054
+ // clamped exactly like segment minutes, so a live anchor can never leave
3055
+ // the coordinate space the resting anchors were computed in
3056
+ const liveX = (ms: number) =>
3057
+ (Math.min(Math.max((ms - rangeStartMs) / 60000, 0), totalMin) / totalMin) *
3058
+ trackRemWidth
3059
+ return (
3060
+ <svg
3061
+ aria-hidden
3062
+ data-slot="gantt-dependencies"
3063
+ // w-full, NOT the track's rem width: rows fill the pane when the
3064
+ // zoomed track is narrower (min-w-full), and bars position as a
3065
+ // percentage of that STRETCHED box - so the viewBox mapping must
3066
+ // stretch with them or every arrow drifts off its bar. The
3067
+ // non-uniform scale is neutralized on strokes below; arrowheads
3068
+ // lengthen slightly with the fill, which tracks the bars.
3069
+ className={cn(
3070
+ "text-muted-foreground/70 pointer-events-none absolute start-0 top-0 w-full overflow-visible rtl:-scale-x-100",
3071
+ viewConfig.classNames?.dependencies
3072
+ )}
3073
+ style={{ height: `${totalRem}rem` }}
3074
+ viewBox={`0 0 ${trackRemWidth} ${totalRem}`}
3075
+ preserveAspectRatio="none"
3076
+ >
3077
+ {edges.map((edge) => {
3078
+ // y never moves: a gesture stays on its own row and lane
3079
+ const dragged =
3080
+ dragLink !== null &&
3081
+ (edge.fromId === dragLink.eventId || edge.toId === dragLink.eventId)
3082
+ const fromX =
3083
+ dragged && edge.fromId === dragLink.eventId
3084
+ ? liveX(dragLink.endMs)
3085
+ : edge.fromX
3086
+ const toX =
3087
+ dragged && edge.toId === dragLink.eventId
3088
+ ? liveX(dragLink.startMs)
3089
+ : edge.toX
3090
+ const geometry = buildDependencyPath(
3091
+ { x: fromX, y: edge.fromY },
3092
+ { x: toX, y: edge.toY },
3093
+ {
3094
+ clearance: 0.625,
3095
+ // the loop route hops just past the lane edge
3096
+ laneStep: laneHeightRem / 2 + laneGapRem,
3097
+ arrowSize: 0.375,
3098
+ }
3099
+ )
3100
+ return (
3101
+ <g
3102
+ key={edge.key}
3103
+ data-slot="gantt-dependency"
3104
+ data-dragging={dragged || undefined}
3105
+ // in-flight edges stay SOLID - they still describe a real link -
3106
+ // and drop to a lower tone, arrowhead included, while the
3107
+ // endpoint is provisional
3108
+ className={dragged ? "opacity-50" : undefined}
3109
+ >
3110
+ <path
3111
+ d={geometry.line}
3112
+ fill="none"
3113
+ stroke="currentColor"
3114
+ // screen-space px via non-scaling-stroke, matching the
3115
+ // view's 1px gridlines; a viewBox-unit width would fatten
3116
+ // vertical runs whenever the track stretches
3117
+ strokeWidth={1.5}
3118
+ vectorEffect="non-scaling-stroke"
3119
+ />
3120
+ <path d={geometry.arrow} fill="currentColor" />
3121
+ </g>
3122
+ )
3123
+ })}
3124
+ </svg>
3125
+ )
3126
+ })
3127
+
3128
+ /** Memoized: only rows whose props actually changed re-render. */
3129
+ const GanttTreeRow = memo(function GanttTreeRow({
3130
+ row,
3131
+ heightRem,
3132
+ bandRem,
3133
+ columns,
3134
+ nameWidth,
3135
+ dimmed,
3136
+ selected,
3137
+ onSelectedChange,
3138
+ onGripPointerDown,
3139
+ onToggle,
3140
+ }: {
3141
+ row: TimelineRow
3142
+ heightRem: number
3143
+ bandRem: number
3144
+ columns: GanttColumn[]
3145
+ nameWidth: number
3146
+ dimmed: boolean
3147
+ selected: boolean
3148
+ onSelectedChange?: (id: string, checked: boolean) => void
3149
+ onGripPointerDown?: (e: React.PointerEvent, row: TimelineRow) => void
3150
+ onToggle: (row: TimelineRow) => void
3151
+ }) {
3152
+ const settings = useGanttSettings()
3153
+ const viewConfig = useGanttViewConfig()
3154
+ const ctx = {
3155
+ resource: row.resource,
3156
+ depth: row.depth,
3157
+ isGroup: row.isGroup,
3158
+ collapsed: row.collapsed,
3159
+ }
3160
+
3161
+ // consumer-owned right-click menu, same contract as the bar menu
3162
+ const menu = viewConfig.renderResourceMenu?.(ctx)
3163
+
3164
+ // A node with several schedules grows its row; "start" keeps the label and
3165
+ // its columns on the FIRST schedule's baseline instead of floating them to
3166
+ // the middle of a tall row. Every cell's inner box is minRowHeight tall, so
3167
+ // a single-lane row renders identically either way.
3168
+ const alignStart = (viewConfig.rowAlign ?? DEFAULT_ROW_ALIGN) === "start"
3169
+
3170
+ const rowNode = (
3171
+ <div
3172
+ data-slot="gantt-row-group"
3173
+ data-gantt-row-id={row.resource.id}
3174
+ data-selected={selected || undefined}
3175
+ className={cn(
3176
+ "group/gantt-row data-hover:bg-muted/40 data-selected:bg-primary/5 data-selected:data-hover:bg-primary/5 flex border-b",
3177
+ dimmed && "opacity-50"
3178
+ )}
3179
+ style={{ height: `${heightRem}rem` }}
3180
+ onClick={
3181
+ settings.onResourceClick
3182
+ ? (e: React.MouseEvent) => {
3183
+ // chrome clicks (chevron, checkbox, grip) are their own actions
3184
+ if ((e.target as HTMLElement).closest("button, [role=checkbox]"))
3185
+ return
3186
+ settings.onResourceClick?.(ctx, e)
3187
+ }
3188
+ : undefined
3189
+ }
3190
+ onDoubleClick={
3191
+ settings.onResourceDoubleClick
3192
+ ? (e: React.MouseEvent) => {
3193
+ if ((e.target as HTMLElement).closest("button, [role=checkbox]"))
3194
+ return
3195
+ settings.onResourceDoubleClick?.(ctx, e)
3196
+ }
3197
+ : undefined
3198
+ }
3199
+ >
3200
+ <div className="flex h-full w-full min-w-0">
3201
+ {/* In-flow name cell: the whole tree row scrolls horizontally as one;
3202
+ row-level hover/selected tints show through the transparent cell */}
3203
+ <div
3204
+ data-slot="gantt-tree-cell"
3205
+ className={cn(
3206
+ // ps-3 keeps the row toggles off the left edge (kept in sync with
3207
+ // namePaddingStart above so headers stay aligned with row titles)
3208
+ "flex shrink-0 ps-3 pe-3",
3209
+ alignStart ? "items-start" : "items-center",
3210
+ row.isGroup && "font-medium"
3211
+ )}
3212
+ style={{ width: nameWidth }}
3213
+ >
3214
+ {/* exactly the band the first schedule occupies: same height, both
3215
+ top-anchored, so the label and that schedule share a centerline */}
3216
+ <div
3217
+ className="flex w-full min-w-0 items-center"
3218
+ style={{ height: `${bandRem}rem` }}
3219
+ >
3220
+ {onGripPointerDown && (
3221
+ <button
3222
+ type="button"
3223
+ data-slot="gantt-row-grip"
3224
+ aria-label={settings.i18n.labels.reorder}
3225
+ // pointer-coarse keeps the grip visible on touch (no hover there).
3226
+ // -ms-1.5/me-1.5 nudge the grip toward the row edge and open a
3227
+ // gap before the checkbox so it's easy to grab without catching
3228
+ // the checkbox; the equal start/end margins keep the grip's
3229
+ // footprint net-zero, so the title stays aligned with the header.
3230
+ className="text-muted-foreground/60 hover:text-foreground -ms-1.5 me-1.5 flex w-3.5 shrink-0 cursor-grab touch-none items-center justify-center opacity-0 group-hover/gantt-row:opacity-100 group-data-hover/gantt-row:opacity-100 focus-visible:opacity-100 pointer-coarse:opacity-100"
3231
+ onPointerDown={(e) => onGripPointerDown(e, row)}
3232
+ onClick={(e) => e.stopPropagation()}
3233
+ >
3234
+ <GripVerticalIcon className="size-3" aria-hidden="true" />
3235
+ </button>
3236
+ )}
3237
+ {/* per-level indent keeps sibling titles on one x */}
3238
+ <span
3239
+ aria-hidden
3240
+ className="shrink-0"
3241
+ style={{ width: `${row.depth * 0.875}rem` }}
3242
+ />
3243
+ {/* fixed gutter: groups toggle here, leaves carry the checkbox -
3244
+ titles of one level share the same x either way */}
3245
+ <span className="me-1 flex w-5 shrink-0 items-center justify-start">
3246
+ {row.isGroup ? (
3247
+ <Button
3248
+ variant="ghost"
3249
+ size="icon-xs"
3250
+ aria-expanded={!row.collapsed}
3251
+ aria-label={row.resource.title}
3252
+ className={cn(
3253
+ "size-5! aria-expanded:bg-transparent!",
3254
+ row.collapsed
3255
+ ? "text-foreground"
3256
+ : "text-muted-foreground aria-expanded:text-muted-foreground! hover:text-foreground!"
3257
+ )}
3258
+ onClick={() => onToggle(row)}
3259
+ >
3260
+ <ChevronRightIcon
3261
+ className={cn(
3262
+ "size-3.5 transition-transform",
3263
+ !row.collapsed && "rotate-90"
3264
+ )}
3265
+ aria-hidden="true"
3266
+ />
3267
+ </Button>
3268
+ ) : (
3269
+ viewConfig.rowCheckboxes &&
3270
+ onSelectedChange && (
3271
+ <Checkbox
3272
+ data-slot="gantt-row-checkbox"
3273
+ checked={selected}
3274
+ onCheckedChange={(checked: boolean) =>
3275
+ onSelectedChange(row.resource.id, checked)
3276
+ }
3277
+ aria-label={row.resource.title}
3278
+ className={cn(
3279
+ "size-3.5 opacity-0 transition-opacity group-hover/gantt-row:opacity-100 group-data-hover/gantt-row:opacity-100 focus-visible:opacity-100",
3280
+ selected && "opacity-100"
3281
+ )}
3282
+ />
3283
+ )
3284
+ )}
3285
+ </span>
3286
+ {viewConfig.renderResourceLabel?.(ctx) ?? (
3287
+ <span className="truncate">{row.resource.title}</span>
3288
+ )}
3289
+ </div>
3290
+ </div>
3291
+ {columns.map((column) => (
3292
+ <div
3293
+ key={column.id}
3294
+ data-slot="gantt-tree-column-cell"
3295
+ data-column={column.id}
3296
+ className={cn(
3297
+ "flex shrink-0 px-2",
3298
+ alignStart ? "items-start" : "items-center",
3299
+ column.className
3300
+ )}
3301
+ style={{ width: column.width ?? DEFAULT_COLUMN_WIDTH }}
3302
+ >
3303
+ <div
3304
+ className={cn(
3305
+ "flex w-full min-w-0 items-center",
3306
+ column.align === "center" && "justify-center",
3307
+ column.align === "end" && "justify-end"
3308
+ )}
3309
+ style={{ height: `${bandRem}rem` }}
3310
+ >
3311
+ {column.render?.(ctx)}
3312
+ </div>
3313
+ </div>
3314
+ ))}
3315
+ <div className="min-w-0 flex-1" />
3316
+ </div>
3317
+ </div>
3318
+ )
3319
+
3320
+ if (!menu) return rowNode
3321
+ return (
3322
+ <ContextMenu>
3323
+ <ContextMenuTrigger render={rowNode} />
3324
+ <ContextMenuContent data-slot="gantt-resource-menu" className="min-w-44">
3325
+ {menu}
3326
+ </ContextMenuContent>
3327
+ </ContextMenu>
3328
+ )
3329
+ })
3330
+
3331
+ const GanttTimelineRow = memo(function GanttTimelineRow({
3332
+ row,
3333
+ rowIndex,
3334
+ bars,
3335
+ rangeStartMs,
3336
+ rangeEndMs,
3337
+ trackWidth,
3338
+ trackRemWidth,
3339
+ rowBorder,
3340
+ selected,
3341
+ resolveHintStop,
3342
+ isPanning,
3343
+ laneHeightRem,
3344
+ laneGapRem,
3345
+ minRowRem,
3346
+ ghostHeightRem,
3347
+ dependencySourceIds,
3348
+ }: {
3349
+ row: TimelineRow
3350
+ rowIndex: number
3351
+ bars: TimelineRowBars | undefined
3352
+ rangeStartMs: number
3353
+ rangeEndMs: number
3354
+ trackWidth: string
3355
+ trackRemWidth: number
3356
+ rowBorder: "solid" | "dashed" | null
3357
+ selected: boolean
3358
+ resolveHintStop: (
3359
+ fraction: number
3360
+ ) => { index: number; center: number; ms: number; endMs: number } | null
3361
+ isPanning: boolean
3362
+ laneHeightRem: number
3363
+ laneGapRem: number
3364
+ minRowRem: number
3365
+ ghostHeightRem: number
3366
+ dependencySourceIds: ReadonlySet<string>
3367
+ }) {
3368
+ const instance = useGantt()
3369
+ const settings = useGanttSettings()
3370
+ const viewConfig = useGanttViewConfig()
3371
+ const gestures = useGanttGestures()
3372
+ const segments = bars?.segments ?? []
3373
+ // parents aggregate their subtree; they take no direct scheduling gestures
3374
+ const schedulable = !row.isGroup || viewConfig.parentScheduling
3375
+ const heightRem = bars?.heightRem ?? minRowRem
3376
+ const laneCount = bars?.laneCount ?? 1
3377
+ const singleTrack =
3378
+ resolveScheduleMode(row.resource, viewConfig.scheduleMode) === "single"
3379
+ // shared with the tree pane so the two can never drift apart
3380
+ const laneOffsetRem = bars?.laneOffsetRem ?? (minRowRem - laneHeightRem) / 2
3381
+
3382
+ // Hover affordance over empty track space: the ghost tile snaps to the
3383
+ // unit under the cursor, so the (real) tooltip re-anchors per unit
3384
+ const [hintStop, setHintStop] = useState<{
3385
+ index: number
3386
+ center: number
3387
+ ms: number
3388
+ endMs: number
3389
+ } | null>(null)
3390
+ // Gated on an active hint: rows without one read a stable false, so a
3391
+ // gesture starting/ending anywhere doesn't re-render every row.
3392
+ const hintSuppressed = useGanttSelector<unknown, boolean>(
3393
+ (state) =>
3394
+ hintStop !== null && (state.drag !== null || state.slotDraft !== null)
3395
+ )
3396
+ const canSchedule = useGanttSelector<unknown, boolean>(
3397
+ (state) => state.interactions.selectSlot
3398
+ )
3399
+ // The affordance is offered ANYWHERE on a schedulable row - over bare track
3400
+ // and over existing bars alike - because a row can always take another
3401
+ // schedule on a free lane. The primitive deliberately owns NO opinion about
3402
+ // what may land where: that is `canSelectSlot`, the consumer's call. (It
3403
+ // used to withhold the hint on a one-track row that already held a
3404
+ // schedule, which also blocked adding a second NON-overlapping one.)
3405
+ // The lowest track FREE at the hovered time. Two jobs, kept separate on
3406
+ // purpose:
3407
+ // - VISIBILITY: `hintFreeLane < laneCount` is what proves an empty track
3408
+ // actually exists to draw on. It is computed regardless of mode, because
3409
+ // a "single" row whose only track is booked has nowhere free either, and
3410
+ // pinning the placement to 0 there would put the ring straight on the bar.
3411
+ // - PLACEMENT: "single" packs everything onto track 0, so that is where its
3412
+ // ring belongs; otherwise the ring sits on the track the schedule will
3413
+ // actually land on. Lane is a function of TIME only, so moving the pointer
3414
+ // down onto the ring never moves it away from you.
3415
+ const hintFreeLane = hintStop
3416
+ ? lowestFreeLane(segments, hintStop.ms, hintStop.endMs)
3417
+ : 0
3418
+ const hintLane = bars?.scheduleMode === "single" ? 0 : hintFreeLane
3419
+ const hintTopRem = Math.min(
3420
+ laneTopRem(laneOffsetRem, hintLane, laneHeightRem, laneGapRem) +
3421
+ laneHeightRem / 2,
3422
+ Math.max(heightRem - laneHeightRem / 2, laneHeightRem / 2)
3423
+ )
3424
+ // Single source of truth for "the add affordance is live at this spot". The
3425
+ // ring renders on it AND the row takes its cursor from it, so the pointer can
3426
+ // never promise something the ring is not offering.
3427
+ const hintVisible =
3428
+ hintStop !== null &&
3429
+ hintFreeLane < laneCount &&
3430
+ !hintSuppressed &&
3431
+ !isPanning
3432
+ // name the gesture that is actually wired, not a generic one
3433
+ const hintLabel = viewConfig.dragCreate
3434
+ ? settings.i18n.labels.scheduleHintDrag
3435
+ : settings.i18n.labels.scheduleHint
3436
+ const showHint =
3437
+ viewConfig.displayScheduleHint &&
3438
+ schedulable &&
3439
+ canSchedule &&
3440
+ !isPanning &&
3441
+ !!(settings.onSelectSlot || settings.onSlotClick)
3442
+
3443
+ const fractionOf = (ms: number) =>
3444
+ Math.min(Math.max((ms - rangeStartMs) / (rangeEndMs - rangeStartMs), 0), 1)
3445
+
3446
+ const dragTarget = useGanttSelector<unknown, "valid" | "invalid" | null>(
3447
+ (state) => {
3448
+ const drag = state.drag
3449
+ if (!drag || drag.proposedResourceId !== row.resource.id) return null
3450
+ return drag.valid ? "valid" : "invalid"
3451
+ }
3452
+ )
3453
+ const ghost = useGanttSelector<
3454
+ unknown,
3455
+ {
3456
+ from: number
3457
+ to: number
3458
+ color?: string
3459
+ valid: boolean
3460
+ title: string
3461
+ kind: string
3462
+ occurrenceKey: string
3463
+ milestone: boolean
3464
+ } | null
3465
+ >(
3466
+ (state) => {
3467
+ const drag = state.drag
3468
+ if (!drag || drag.proposedResourceId !== row.resource.id) return null
3469
+ return {
3470
+ from: fractionOf(drag.proposedStart.getTime()),
3471
+ to: fractionOf(drag.proposedEnd.getTime()),
3472
+ color: drag.occurrence.event.color,
3473
+ valid: drag.valid,
3474
+ title: drag.occurrence.event.title,
3475
+ kind: drag.kind,
3476
+ occurrenceKey: drag.occurrence.key,
3477
+ // real zero duration, not from==to: clamped fractions also coincide
3478
+ // for a bar dragged clear past a range edge
3479
+ milestone: drag.proposedEnd.getTime() === drag.proposedStart.getTime(),
3480
+ }
3481
+ },
3482
+ {
3483
+ isEqual: (a, b) =>
3484
+ a === b ||
3485
+ (a !== null &&
3486
+ b !== null &&
3487
+ a.from === b.from &&
3488
+ a.to === b.to &&
3489
+ a.valid === b.valid),
3490
+ }
3491
+ )
3492
+ const draft = useGanttSelector<
3493
+ unknown,
3494
+ {
3495
+ from: number
3496
+ to: number
3497
+ startMs: number
3498
+ endMs: number
3499
+ } | null
3500
+ >(
3501
+ (state) => {
3502
+ const slotDraft = state.slotDraft
3503
+ if (!slotDraft || slotDraft.resourceId !== row.resource.id) return null
3504
+ const startMs = slotDraft.start.getTime()
3505
+ const endMs = slotDraft.end.getTime()
3506
+ return {
3507
+ from: fractionOf(startMs),
3508
+ to: fractionOf(endMs),
3509
+ startMs,
3510
+ endMs,
3511
+ }
3512
+ },
3513
+ {
3514
+ // from/to as well as the instants: they are derived through fractionOf,
3515
+ // which closes over the range. An extendRange mid-gesture moves every
3516
+ // bar while an instants-only compare serves the cached (stale) fractions,
3517
+ // leaving the placeholder pinned to where the range used to be.
3518
+ isEqual: (a, b) =>
3519
+ a === b ||
3520
+ (a !== null &&
3521
+ b !== null &&
3522
+ a.startMs === b.startMs &&
3523
+ a.endMs === b.endMs &&
3524
+ a.from === b.from &&
3525
+ a.to === b.to),
3526
+ }
3527
+ )
3528
+
3529
+ /**
3530
+ * Where the schedule being painted will land - resolved in the shared layout
3531
+ * memo, which also RESERVES that track, so the row has already grown to hold
3532
+ * it. The clamp is only a backstop for the frame between a draft appearing
3533
+ * and the layout catching up.
3534
+ */
3535
+ const draftLane = bars?.draftLane ?? 0
3536
+ const draftTopRem = Math.min(
3537
+ laneTopRem(laneOffsetRem, draftLane, laneHeightRem, laneGapRem),
3538
+ Math.max(heightRem - laneHeightRem, 0)
3539
+ )
3540
+ // the range you are painting, named while you paint it - a drag that shows
3541
+ // no times asks you to guess where you let go
3542
+ const draftLabel = draft
3543
+ ? settings.i18n.functions.formatEventTime(
3544
+ toZoned(new Date(draft.startMs), settings.timeZone),
3545
+ toZoned(new Date(draft.endMs), settings.timeZone),
3546
+ false,
3547
+ settings.locale
3548
+ )
3549
+ : ""
3550
+
3551
+ /**
3552
+ * The row's create contract, in one place: onSlotClick if the consumer
3553
+ * wired it, else a ready-made slot draft. Both the hint tile and a plain
3554
+ * click on bare track go through this, so clicking anywhere placeable
3555
+ * behaves the same as clicking the tile.
3556
+ */
3557
+ const createAt = (
3558
+ stop: { ms: number; endMs: number },
3559
+ e: React.MouseEvent
3560
+ ) => {
3561
+ if (settings.onSlotClick) {
3562
+ settings.onSlotClick(
3563
+ { date: new Date(stop.ms), allDay: false, resourceId: row.resource.id },
3564
+ e
3565
+ )
3566
+ } else {
3567
+ settings.onSelectSlot?.({
3568
+ start: new Date(stop.ms),
3569
+ end: new Date(Math.max(stop.endMs, stop.ms + 1)),
3570
+ allDay: false,
3571
+ resourceId: row.resource.id,
3572
+ })
3573
+ }
3574
+ }
3575
+
3576
+ // The drop indicator belongs on the lane the dragged schedule actually
3577
+ // occupies. The gesture has not committed, so the segment is still packed
3578
+ // under its pre-drag key - no second packing pass, just a lookup.
3579
+ const ghostLane = ghost
3580
+ ? (segments.find(
3581
+ (segment) => segment.occurrence.key === ghost.occurrenceKey
3582
+ )?.column ?? 0)
3583
+ : 0
3584
+ const ghostLaneOffsetRem =
3585
+ laneTopRem(laneOffsetRem, ghostLane, laneHeightRem, laneGapRem) +
3586
+ (laneHeightRem - ghostHeightRem) / 2
3587
+
3588
+ return (
3589
+ <div
3590
+ data-gantt-row=""
3591
+ data-gantt-resource={row.resource.id}
3592
+ data-gantt-row-id={row.resource.id}
3593
+ data-gantt-row-static={!schedulable || undefined}
3594
+ data-gantt-bar-min={bars?.extent?.from}
3595
+ data-gantt-bar-max={bars?.extent?.to}
3596
+ data-gantt-bar-color={bars?.extent?.color}
3597
+ data-gantt-bar-label={bars?.extent?.label}
3598
+ data-gantt-bar-start-ms={bars?.extent?.startMs}
3599
+ data-drop-target={dragTarget ?? undefined}
3600
+ data-selected={selected || undefined}
3601
+ className={cn(
3602
+ "data-hover:bg-muted/30 data-selected:bg-primary/5 data-selected:data-hover:bg-primary/5 relative w-full min-w-0",
3603
+ // The ring is pointer-events-none, so a cursor set on IT can never be
3604
+ // reached - the row is the element actually under the pointer, so the
3605
+ // cursor belongs here. Gated on the same flag as the ring: wherever the
3606
+ // add affordance shows, the pointer says "add", and nowhere else.
3607
+ hintVisible && "cursor-crosshair",
3608
+ // horizontal separators mirror the tree node borders across panes.
3609
+ // No special case for the last row: the columns run the full height of
3610
+ // the pane, so the grid closes on the container edge on its own.
3611
+ rowBorder !== null && "border-b",
3612
+ rowBorder === "dashed" && "border-dashed",
3613
+ dragTarget === "valid" && "bg-muted/40",
3614
+ dragTarget === "invalid" && "bg-destructive/10"
3615
+ )}
3616
+ style={{
3617
+ height: `${heightRem}rem`,
3618
+ minWidth: trackWidth,
3619
+ }}
3620
+ onPointerDown={(e) => {
3621
+ // Opt-in drag-create owns presses on empty schedulable track (the
3622
+ // onSelectSlot contract); otherwise the press bubbles to the
3623
+ // container and pans the timeline.
3624
+ if (
3625
+ viewConfig.dragCreate &&
3626
+ e.button === 0 &&
3627
+ schedulable &&
3628
+ canSchedule &&
3629
+ // the bare track, or the hint tile that spawns under the cursor -
3630
+ // a sub-threshold press still ends as the tile's own click
3631
+ (e.target === e.currentTarget ||
3632
+ !!(e.target as HTMLElement).closest?.(
3633
+ "[data-slot=gantt-schedule-hint]"
3634
+ )) &&
3635
+ !!settings.onSelectSlot
3636
+ ) {
3637
+ // validate BEFORE claiming the press: on a vetoed slot (e.g. the
3638
+ // one-schedule-per-task rule) the press falls through to the pan
3639
+ const stop = resolveHintStop(
3640
+ trackFraction(e.currentTarget, e.clientX)
3641
+ )
3642
+ const allowed =
3643
+ stop !== null &&
3644
+ (settings.canSelectSlot?.({
3645
+ start: new Date(stop.ms),
3646
+ end: new Date(Math.max(stop.endMs, stop.ms + 1)),
3647
+ allDay: false,
3648
+ resourceId: row.resource.id,
3649
+ }) ??
3650
+ true)
3651
+ if (!allowed) return
3652
+ e.stopPropagation()
3653
+ gestures.beginCreate(e)
3654
+ }
3655
+ }}
3656
+ onPointerMove={(e) => {
3657
+ // read interaction state imperatively - a subscription here would
3658
+ // re-render the row for every gesture anywhere on the grid
3659
+ const interacting =
3660
+ instance.getState().drag !== null ||
3661
+ instance.getState().slotDraft !== null
3662
+ if (!showHint || e.pointerType !== "mouse" || interacting) {
3663
+ if (hintStop) setHintStop(null)
3664
+ return
3665
+ }
3666
+ // EMPTY TRACK ONLY. A bar under the pointer means the pointer is not
3667
+ // on an empty slot, so the affordance goes away entirely rather than
3668
+ // hovering over booked time - and the bar is left completely alone,
3669
+ // hover and click both. (No "pointer is over the tile" bail: the ring
3670
+ // is pointer-events-none, so it is never the target; a bail on it would
3671
+ // freeze it on the spot, since it rides under the cursor.)
3672
+ if (e.target !== e.currentTarget) {
3673
+ if (hintStop) setHintStop(null)
3674
+ return
3675
+ }
3676
+ const { fraction, offset } = trackPoint(e.currentTarget, e.clientX)
3677
+ // The dot follows the pointer FREELY - it is a cursor, not a cell, so
3678
+ // it is never quantised to the interval grid. Its position is written
3679
+ // as a CSS custom property straight onto the row: the cursor moves
3680
+ // every frame and a state update per frame would re-render the row and
3681
+ // every bar in it. React state still owns WHICH slot is offered, and
3682
+ // that changes only once per interval.
3683
+ //
3684
+ // In pixels rather than a percentage, pre-snapped by trackPoint to the
3685
+ // viewport pixel grid: a fractional inset makes the browser antialias
3686
+ // the ring and the glyph across two device pixels, which reads as a
3687
+ // furry, smudged dot. -translate-x-1/2 of an even-sized box keeps it on
3688
+ // the grid, so the result is crisp.
3689
+ e.currentTarget.style.setProperty("--gantt-hint-x", `${offset}px`)
3690
+ const stop = resolveHintStop(fraction)
3691
+ // validate placement before offering it: a consumer canSelectSlot
3692
+ // veto (e.g. a locked span) hides the hint entirely
3693
+ const allowed =
3694
+ stop !== null &&
3695
+ (settings.canSelectSlot?.({
3696
+ start: new Date(stop.ms),
3697
+ end: new Date(Math.max(stop.endMs, stop.ms + 1)),
3698
+ allDay: false,
3699
+ resourceId: row.resource.id,
3700
+ }) ??
3701
+ true)
3702
+ const next = allowed ? stop : null
3703
+ // state changes only when the cursor crosses into another unit
3704
+ if (next?.index !== hintStop?.index) setHintStop(next)
3705
+ }}
3706
+ onPointerLeave={() => {
3707
+ if (hintStop) setHintStop(null)
3708
+ }}
3709
+ onClick={(e) => {
3710
+ // With dragCreate the press belongs to the create GESTURE, which only
3711
+ // activates past its movement threshold - so a click that never moved
3712
+ // committed nothing and the row felt dead. Treat it as a create at the
3713
+ // hovered slot, using the same validation the hint tile uses.
3714
+ if (!viewConfig.dragCreate || e.target !== e.currentTarget) return
3715
+ if (!schedulable || !canSchedule) return
3716
+ if (wasRecentDrag()) return
3717
+ if (!settings.onSlotClick && !settings.onSelectSlot) return
3718
+ const stop = resolveHintStop(trackFraction(e.currentTarget, e.clientX))
3719
+ if (!stop) return
3720
+ const allowed =
3721
+ settings.canSelectSlot?.({
3722
+ start: new Date(stop.ms),
3723
+ end: new Date(Math.max(stop.endMs, stop.ms + 1)),
3724
+ allDay: false,
3725
+ resourceId: row.resource.id,
3726
+ }) ?? true
3727
+ if (!allowed) return
3728
+ createAt(stop, e)
3729
+ setHintStop(null)
3730
+ }}
3731
+ >
3732
+ {/* row CONTENT (bars, labels, ghosts). Pointer-transparent so
3733
+ empty-track presses still hit the row itself.
3734
+ content-visibility lets the browser skip rendering this layer for
3735
+ rows scrolled out of view (large trees stay cheap on low-end
3736
+ devices). Safe here: the layer is absolute inset-0 (geometry comes
3737
+ from the row, never from content), its paint containment keeps it
3738
+ a stacking context, and nothing inside escapes the row box - the
3739
+ schedule hint deliberately lives OUTSIDE this layer. Browsers
3740
+ without support simply ignore it. */}
3741
+ <div
3742
+ className="pointer-events-none absolute inset-0"
3743
+ style={{ contentVisibility: "auto" }}
3744
+ >
3745
+ {/* The node's own planned window: a band behind ALL of its lanes,
3746
+ first in the layer so even the per-event ghosts paint over it. */}
3747
+ {bars?.rowBaseline &&
3748
+ (() => {
3749
+ const plan = bars.rowBaseline
3750
+ const from = fractionOf(rangeStartMs + plan.startMin * 60000)
3751
+ const to = fractionOf(rangeStartMs + plan.endMin * 60000)
3752
+ const bandRemHeight = laneBlockRem(
3753
+ laneCount,
3754
+ laneHeightRem,
3755
+ laneGapRem
3756
+ )
3757
+ const content = viewConfig.renderRowBaseline?.({
3758
+ resource: row.resource,
3759
+ start: plan.baseline.start,
3760
+ end: plan.baseline.end,
3761
+ milestone: plan.baseline.milestone,
3762
+ variance: plan.variance,
3763
+ })
3764
+ return (
3765
+ <div
3766
+ data-slot="gantt-row-baseline"
3767
+ data-milestone={plan.baseline.milestone || undefined}
3768
+ data-variance={plan.variance ?? undefined}
3769
+ aria-hidden
3770
+ className={cn(
3771
+ "absolute",
3772
+ plan.baseline.milestone
3773
+ ? "flex items-center justify-center"
3774
+ : "px-px",
3775
+ viewConfig.classNames?.baseline
3776
+ )}
3777
+ style={
3778
+ {
3779
+ "--gantt-event-color":
3780
+ row.resource.color ?? "var(--color-primary)",
3781
+ insetInlineStart: plan.baseline.milestone
3782
+ ? `clamp(0rem, ${from * 100}% - ${laneHeightRem / 2}rem, 100% - ${laneHeightRem}rem)`
3783
+ : `${from * 100}%`,
3784
+ width: plan.baseline.milestone
3785
+ ? `${laneHeightRem}rem`
3786
+ : `${Math.max((to - from) * 100, 0.5)}%`,
3787
+ top: `${laneOffsetRem}rem`,
3788
+ height: `${bandRemHeight}rem`,
3789
+ } as CSSProperties
3790
+ }
3791
+ >
3792
+ {content ??
3793
+ (plan.baseline.milestone ? (
3794
+ // hollow diamond marking the node's planned instant
3795
+ <span className="size-2.5 rotate-45 rounded-[2px] border border-(--gantt-event-color)/60 bg-(--gantt-event-color)/15" />
3796
+ ) : (
3797
+ // fainter than a per-event ghost: a whole-row context
3798
+ // band must never compete with the bars on it
3799
+ <span className="relative block h-full w-full rounded-sm border border-(--gantt-event-color)/25 bg-(--gantt-event-color)/6" />
3800
+ ))}
3801
+ </div>
3802
+ )
3803
+ })()}
3804
+ {/* Baseline ghosts BEFORE the bars, with no z-index: DOM order keeps
3805
+ them painting under every bar (z 10+), and the layer's pointer
3806
+ transparency means they can never catch a press or a drop. */}
3807
+ {bars?.baselines.map((plan) => {
3808
+ const from = fractionOf(rangeStartMs + plan.startMin * 60000)
3809
+ const to = fractionOf(rangeStartMs + plan.endMin * 60000)
3810
+ const content = viewConfig.renderBaseline?.({
3811
+ event: plan.event,
3812
+ start: plan.baseline.start,
3813
+ end: plan.baseline.end,
3814
+ milestone: plan.baseline.milestone,
3815
+ variance: plan.variance,
3816
+ })
3817
+ return (
3818
+ <div
3819
+ key={`baseline-${plan.event.id}`}
3820
+ data-slot="gantt-baseline"
3821
+ data-milestone={plan.baseline.milestone || undefined}
3822
+ data-variance={plan.variance}
3823
+ aria-hidden
3824
+ // a milestone is a POINT: the wrapper centers on the instant
3825
+ // (flex centering, so RTL needs no translate gymnastics), while
3826
+ // a window mirrors the bar wrapper's px-px breathing room
3827
+ className={cn(
3828
+ "absolute",
3829
+ plan.baseline.milestone
3830
+ ? "flex items-center justify-center"
3831
+ : "px-px",
3832
+ viewConfig.classNames?.baseline
3833
+ )}
3834
+ style={
3835
+ {
3836
+ "--gantt-event-color":
3837
+ plan.event.color ?? "var(--color-primary)",
3838
+ /* clamped into the row box: the layer's paint containment
3839
+ slices anything that overhangs it, which would cut an
3840
+ edge milestone's diamond in half - so it nudges inward
3841
+ instead, at most half a lane off its instant */
3842
+ insetInlineStart: plan.baseline.milestone
3843
+ ? `clamp(0rem, ${from * 100}% - ${laneHeightRem / 2}rem, 100% - ${laneHeightRem}rem)`
3844
+ : `${from * 100}%`,
3845
+ width: plan.baseline.milestone
3846
+ ? `${laneHeightRem}rem`
3847
+ : `${Math.max((to - from) * 100, 0.5)}%`,
3848
+ top: `${laneTopRem(laneOffsetRem, plan.lane, laneHeightRem, laneGapRem)}rem`,
3849
+ height: `${laneHeightRem}rem`,
3850
+ } as CSSProperties
3851
+ }
3852
+ >
3853
+ {content ??
3854
+ (plan.baseline.milestone ? (
3855
+ // hollow diamond marking the planned instant
3856
+ <span className="size-2 rotate-45 rounded-[2px] border border-(--gantt-event-color)/60 bg-(--gantt-event-color)/15" />
3857
+ ) : (
3858
+ // block child (not inset-0) so the px-px padding holds and
3859
+ // the outline lands exactly on the bar's own box
3860
+ <span className="relative block h-full w-full rounded-sm border border-(--gantt-event-color)/40 bg-(--gantt-event-color)/10" />
3861
+ ))}
3862
+ </div>
3863
+ )
3864
+ })}
3865
+ {segments.map((segment, segmentIndex) => {
3866
+ const from = fractionOf(
3867
+ rangeStartMs + (segment.startMin ?? 0) * 60000
3868
+ )
3869
+ const to = fractionOf(rangeStartMs + (segment.endMin ?? 0) * 60000)
3870
+ // Zero duration = an actual MILESTONE: it renders as a diamond
3871
+ // centered on its instant instead of a zero-width (invisible) bar.
3872
+ const milestone =
3873
+ segment.occurrence.end.getTime() ===
3874
+ segment.occurrence.start.getTime()
3875
+ if (to <= from && !milestone) return null
3876
+ const lane = segment.column ?? 0
3877
+ // Title placement: outside beside the bar when configured (or too
3878
+ // short in "auto"), flipped before the bar near the range end, and
3879
+ // back inside when the bar spans the whole view. A milestone has
3880
+ // no room inside its diamond, so its title is always outside.
3881
+ const barRemWidth = milestone
3882
+ ? laneHeightRem
3883
+ : (to - from) * trackRemWidth
3884
+ const wantsOutside =
3885
+ milestone ||
3886
+ viewConfig.barLabel === "outside" ||
3887
+ (viewConfig.barLabel === "auto" &&
3888
+ barRemWidth <
3889
+ (viewConfig.metrics?.autoLabelMin ?? AUTO_LABEL_MIN_REM))
3890
+ const placement = !wantsOutside
3891
+ ? "inside"
3892
+ : to <= 0.92
3893
+ ? "after"
3894
+ : from >= 0.08
3895
+ ? "before"
3896
+ : "inside"
3897
+ // the wrapper carries the drag kind itself (from the row's ghost
3898
+ // state, same notify as the bar's own attribute) so the hide rules
3899
+ // below use plain attribute selectors instead of :has(), which
3900
+ // older Firefox (<121) does not support
3901
+ const segDragKind =
3902
+ ghost && ghost.occurrenceKey === segment.occurrence.key
3903
+ ? ghost.kind
3904
+ : undefined
3905
+ return (
3906
+ <div
3907
+ key={segment.occurrence.key}
3908
+ data-drag-kind={segDragKind}
3909
+ data-milestone={milestone || undefined}
3910
+ // lane position is headless state: a consumer can read it to
3911
+ // label the bar ("2 of 4") or drive its own manage UI
3912
+ data-lane={lane}
3913
+ data-lane-count={laneCount}
3914
+ // during a MOVE the whole thing (bar + its outside label) hides so
3915
+ // the smooth clone carries both; resize keeps the BAR as a faint
3916
+ // placeholder but its label yields to the ghost's outside label.
3917
+ // pointer-events-auto: the parent mask layer is pointer-
3918
+ // transparent so empty-track presses reach the row.
3919
+ // px-px keeps back-to-back bars off each other; the vertical
3920
+ // breathing room is the lane gap itself, not padding here, so
3921
+ // the bar is exactly laneHeight tall
3922
+ className="group/gantt-seg pointer-events-auto absolute px-px data-[drag-kind=move]:opacity-0"
3923
+ // insetInlineStart, not left: in RTL the axis mirrors and bars
3924
+ // must mirror with it (fractions measure from the range start)
3925
+ style={{
3926
+ /* a milestone wrapper is a lane-height square centered on the
3927
+ instant, clamped into the row box exactly like the planned
3928
+ milestone diamond */
3929
+ insetInlineStart: milestone
3930
+ ? `clamp(0rem, ${from * 100}% - ${laneHeightRem / 2}rem, 100% - ${laneHeightRem}rem)`
3931
+ : `${from * 100}%`,
3932
+ width: milestone
3933
+ ? `${laneHeightRem}rem`
3934
+ : `${Math.max((to - from) * 100, 0.5)}%`,
3935
+ top: `${laneTopRem(laneOffsetRem, lane, laneHeightRem, laneGapRem)}rem`,
3936
+ height: `${laneHeightRem}rem`,
3937
+ // one track means every lane is 0, so paint order (not the
3938
+ // lane) is what keeps overlapping bars individually reachable
3939
+ zIndex:
3940
+ segment.occurrence.event.zIndex ??
3941
+ 10 + (singleTrack ? segmentIndex : lane),
3942
+ }}
3943
+ >
3944
+ <GanttBar
3945
+ segment={segment}
3946
+ labelOutside={placement !== "inside"}
3947
+ rowTitle={row.resource.title}
3948
+ className="h-full"
3949
+ />
3950
+ {placement !== "inside" && (
3951
+ <span
3952
+ data-slot="gantt-bar-label"
3953
+ data-placement={placement}
3954
+ className={cn(
3955
+ "text-foreground pointer-events-none absolute top-1/2 z-10 max-w-60 -translate-y-1/2 truncate font-medium",
3956
+ // one label at a time: the resize ghost carries it while
3957
+ // this bar is the faded placeholder
3958
+ "group-data-[drag-kind^=resize]/gantt-seg:opacity-0",
3959
+ /* a departing dependency arrow drops its corner just past
3960
+ the bar's end, so exactly those labels reserve extra
3961
+ room; everything else keeps the tight default */
3962
+ placement === "after"
3963
+ ? dependencySourceIds.has(segment.occurrence.eventId)
3964
+ ? "start-full ms-4"
3965
+ : "start-full ms-2"
3966
+ : "end-full me-2"
3967
+ )}
3968
+ >
3969
+ {segment.occurrence.event.title}
3970
+ </span>
3971
+ )}
3972
+ </div>
3973
+ )
3974
+ })}
3975
+ {bars?.summary && segments.length === 0 && (
3976
+ <div
3977
+ data-slot="gantt-summary"
3978
+ aria-hidden
3979
+ className="pointer-events-none absolute top-1/2 -translate-y-1/2"
3980
+ style={{
3981
+ insetInlineStart: `${bars.summary.from * 100}%`,
3982
+ width: `${Math.max((bars.summary.to - bars.summary.from) * 100, 0.5)}%`,
3983
+ }}
3984
+ >
3985
+ {viewConfig.renderSummary ? (
3986
+ // consumer-owned rollup: the positioned envelope wrapper stays
3987
+ viewConfig.renderSummary({
3988
+ resource: row.resource,
3989
+ start: new Date(
3990
+ rangeStartMs + bars.summary.from * (rangeEndMs - rangeStartMs)
3991
+ ),
3992
+ end: new Date(
3993
+ rangeStartMs + bars.summary.to * (rangeEndMs - rangeStartMs)
3994
+ ),
3995
+ progress: bars.summary.progress,
3996
+ })
3997
+ ) : (
3998
+ <>
3999
+ {/* envelope end caps: the classic PM rollup silhouette, muted */}
4000
+ <span
4001
+ aria-hidden
4002
+ className="bg-muted-foreground/50 absolute start-0 top-1/2 h-3 w-0.5 -translate-y-1/2 rounded-full"
4003
+ />
4004
+ <span
4005
+ aria-hidden
4006
+ className="bg-muted-foreground/50 absolute end-0 top-1/2 h-3 w-0.5 -translate-y-1/2 rounded-full"
4007
+ />
4008
+ <div className="bg-muted-foreground/20 relative h-1.5 overflow-hidden rounded-full">
4009
+ {bars.summary.progress !== null && (
4010
+ <div
4011
+ data-slot="gantt-summary-progress"
4012
+ className="bg-muted-foreground/50 absolute inset-y-0 start-0 rounded-full"
4013
+ style={{ width: `${bars.summary.progress}%` }}
4014
+ />
4015
+ )}
4016
+ </div>
4017
+ {bars.summary.progress !== null && (
4018
+ <span className="text-muted-foreground absolute start-full top-1/2 ms-2 -translate-y-1/2 whitespace-nowrap">
4019
+ {bars.summary.progress}%
4020
+ </span>
4021
+ )}
4022
+ </>
4023
+ )}
4024
+ </div>
4025
+ )}
4026
+ {ghost && (
4027
+ <div
4028
+ data-slot="gantt-drag-ghost"
4029
+ data-kind={ghost.kind}
4030
+ data-milestone={ghost.milestone || undefined}
4031
+ data-drop-invalid={!ghost.valid || undefined}
4032
+ className={cn(
4033
+ // Slight dashed indicator, never a dramatic restyle. Move shows a
4034
+ // faint drop-target placeholder (the smooth cursor clone carries
4035
+ // the visual); resize shows the event at its new size in its own
4036
+ // color with just a dashed border.
4037
+ /* height via the class, not an inline style, so a consumer's
4038
+ own selector can still outrank it */
4039
+ "pointer-events-none absolute z-40 h-(--gantt-ghost-height) rounded-sm border border-dashed font-medium",
4040
+ !ghost.valid &&
4041
+ "border-destructive bg-destructive/10 text-destructive",
4042
+ ghost.valid &&
4043
+ ghost.kind === "move" &&
4044
+ "border-(--gantt-event-color)/50 bg-(--gantt-event-color)/8",
4045
+ ghost.valid &&
4046
+ ghost.kind !== "move" &&
4047
+ "text-foreground border-(--gantt-event-color)/70 bg-(--gantt-event-color)/22",
4048
+ /* a milestone's landing marker keeps the milestone's SHAPE: the
4049
+ wrapper sheds its own dashed box and centers a dashed diamond
4050
+ instead - a dashed rectangle read as a different object */
4051
+ ghost.milestone &&
4052
+ "flex items-center justify-center rounded-none border-0 bg-transparent"
4053
+ )}
4054
+ style={
4055
+ {
4056
+ /* a milestone drop lands as a lane-height square CENTERED on
4057
+ the instant (same clamp as the diamond); the generic 0.5%
4058
+ floor would anchor a sliver at the instant's left instead */
4059
+ insetInlineStart: ghost.milestone
4060
+ ? `clamp(0rem, ${ghost.from * 100}% - ${laneHeightRem / 2}rem, 100% - ${laneHeightRem}rem)`
4061
+ : `${ghost.from * 100}%`,
4062
+ width: ghost.milestone
4063
+ ? `${laneHeightRem}rem`
4064
+ : `${Math.max((ghost.to - ghost.from) * 100, 0.5)}%`,
4065
+ // sit on the dragged schedule's OWN lane. Centering the ghost
4066
+ // in the row put it on no lane at all once a node stacked, so
4067
+ // a 3-lane row showed the drop target floating in the middle.
4068
+ top: `${ghostLaneOffsetRem}rem`,
4069
+ /* metrics-driven, and published so a consumer can size
4070
+ against the SAME number instead of hardcoding 1.25 */
4071
+ "--gantt-ghost-height": `${ghostHeightRem}rem`,
4072
+ "--gantt-event-color": ghost.color ?? "var(--color-primary)",
4073
+ } as CSSProperties
4074
+ }
4075
+ >
4076
+ {ghost.milestone && (
4077
+ <span
4078
+ className={cn(
4079
+ "size-2.5 rotate-45 rounded-[2px] border border-dashed",
4080
+ ghost.valid
4081
+ ? "border-(--gantt-event-color)/70 bg-(--gantt-event-color)/10"
4082
+ : "border-destructive bg-destructive/10"
4083
+ )}
4084
+ />
4085
+ )}
4086
+ {ghost.kind !== "move" && (
4087
+ // label rides OUTSIDE after the bar, exactly like the resting
4088
+ // outside placement - never inside the schedule
4089
+ <span className="pointer-events-none absolute start-full top-1/2 ms-2 max-w-60 -translate-y-1/2 truncate whitespace-nowrap">
4090
+ {ghost.title}
4091
+ </span>
4092
+ )}
4093
+ </div>
4094
+ )}
4095
+ {draft && (
4096
+ <div
4097
+ data-slot="gantt-slot-draft"
4098
+ data-lane={draftLane}
4099
+ // OPAQUE. When the destination lane does not exist yet the row has
4100
+ // not grown, so the placeholder rides the bottom edge and overlaps
4101
+ // the bar it is going under - as a tint that read as a smudge over
4102
+ // the bar's own label. Punched out of the backdrop it reads as a
4103
+ // distinct object sliding underneath, which is what it is.
4104
+ className="border-primary bg-background pointer-events-none absolute z-40 overflow-hidden rounded-sm border border-dashed"
4105
+ style={{
4106
+ insetInlineStart: `${draft.from * 100}%`,
4107
+ width: `${Math.max((draft.to - draft.from) * 100, 0.5)}%`,
4108
+ // the destination lane, not the row's middle (which on a stacked
4109
+ // row is the GAP between two lanes), and the real lane height
4110
+ // rather than a hardcoded h-5 a consumer's metrics would break
4111
+ top: `${draftTopRem}rem`,
4112
+ height: `${laneHeightRem}rem`,
4113
+ }}
4114
+ >
4115
+ {/* the accent tint, over the opaque base rather than over whatever
4116
+ happens to be beneath the row */}
4117
+ <span aria-hidden className="bg-primary/15 absolute inset-0" />
4118
+ </div>
4119
+ )}
4120
+ </div>
4121
+ {/* OUTSIDE the content layer for the same reason as the hint bubble: the
4122
+ layer's paint containment would CLIP a chip that overhangs the row.
4123
+ Centred on the range being painted, so the times track the drag. */}
4124
+ {draft && draftLabel && (
4125
+ <div
4126
+ data-slot="gantt-slot-draft-label"
4127
+ className="pointer-events-none absolute z-40"
4128
+ style={{
4129
+ // anchored to the range's END and riding after it, exactly like the
4130
+ // drag ghost's own label. Centred above the placeholder it covered
4131
+ // the schedule on the track above - and the one thing a create
4132
+ // gesture must never hide is what is already booked.
4133
+ insetInlineStart: `${draft.to * 100}%`,
4134
+ top: `${draftTopRem}rem`,
4135
+ height: `${laneHeightRem}rem`,
4136
+ }}
4137
+ >
4138
+ <span className="bg-foreground text-background absolute start-full top-1/2 ms-2 inline-flex w-max -translate-y-1/2 items-center rounded-md px-2 py-1 text-xs font-medium whitespace-nowrap">
4139
+ {draftLabel}
4140
+ {/* Same arrow as every other bubble, one size down. A 45-degree
4141
+ square is symmetric, so size-2.5 spans ~14px whichever edge it
4142
+ straddles: a small nub under a ~120px-wide chip, but most of the
4143
+ short edge of a ~26px-TALL one. size-1.5 spans ~8.5px and
4144
+ protrudes ~4px, the usual tooltip-arrow proportion, so the side
4145
+ arrow reads the same weight as the ones above and below. */}
4146
+ <span
4147
+ aria-hidden
4148
+ className="bg-foreground absolute start-0 top-1/2 size-1.5 -translate-x-1/2 -translate-y-1/2 rotate-45 rounded-[1px]"
4149
+ />
4150
+ </span>
4151
+ </div>
4152
+ )}
4153
+ {/* OUTSIDE the content layer: its paint containment creates a stacking
4154
+ context that would trap the bubble's z-index under neighboring rows.
4155
+ As a direct row child its z-30 stacks above every row in the pane. */}
4156
+ {/* `hintLane < laneCount` is the second half of "empty slots only": the
4157
+ pointer being on bare track can still mean the row's own padding above
4158
+ a column that is booked on every track. There is no free track to
4159
+ draw on there, so the clamp would park the ring on top of a bar -
4160
+ exactly what must never happen. Booking such an instant is a drag from
4161
+ a free point, not a click. */}
4162
+ {hintVisible && hintStop && (
4163
+ <div
4164
+ data-slot="gantt-schedule-hint"
4165
+ // rtl flips the translate sign: insetInlineStart anchors the box's
4166
+ // inline-start edge, which is the RIGHT edge under rtl, so centring
4167
+ // on the anchor shifts the opposite way there
4168
+ className="pointer-events-none absolute z-30 -translate-x-1/2 -translate-y-1/2 rtl:translate-x-1/2"
4169
+ style={{
4170
+ // the live cursor position, written without React (see onPointerMove)
4171
+ insetInlineStart: "var(--gantt-hint-x, 50%)",
4172
+ // first track, centred on it - z-30 on this wrapper keeps the dot
4173
+ // above every bar, so a busy span still offers the affordance
4174
+ top: `${hintTopRem}rem`,
4175
+ }}
4176
+ >
4177
+ {viewConfig.renderScheduleHint ? (
4178
+ // consumer-owned hint: the wrapper stays snapped + validated;
4179
+ // the content drives its own create flow
4180
+ viewConfig.renderScheduleHint({
4181
+ start: new Date(hintStop.ms),
4182
+ end: new Date(Math.max(hintStop.endMs, hintStop.ms + 1)),
4183
+ resource: row.resource,
4184
+ })
4185
+ ) : (
4186
+ <>
4187
+ {/* the band IS the placement affordance: it covers the interval
4188
+ under the pointer, so what you see is the slot you get. Clicking
4189
+ books it; pressing and dragging paints a longer range. The bubble
4190
+ mirrors the tooltip theme, arrow included. */}
4191
+ {/* The dot IS the cursor: an open ring, so whatever it is standing
4192
+ on stays readable through it. The outer background ring is what
4193
+ keeps it visible on a dark bar - an outline, not a fill.
4194
+ The GLYPH is the native cursor rather than an icon: `cell` is the
4195
+ range-select cursor every spreadsheet uses, which is exactly the
4196
+ drag-a-range gesture, and `copy` carries a plus for the
4197
+ click-to-add case. Clicking books the interval it is standing in;
4198
+ pressing and dragging paints a range whose ends snap to the
4199
+ nearest boundary. */}
4200
+ <button
4201
+ type="button"
4202
+ data-slot="gantt-schedule-hint-tile"
4203
+ aria-label={hintLabel}
4204
+ // pointer-events-NONE: the ring rides under the cursor, so any
4205
+ // press it accepts is a press stolen from whatever it is
4206
+ // standing on - which is how it swallowed every click meant for
4207
+ // a bar. Passing pointers straight through makes the element
4208
+ // physically underneath the thing you click: a bar opens its
4209
+ // job, bare track creates (the row's own handlers, which the
4210
+ // ring merely previews). The button and its onClick stay for
4211
+ // KEYBOARD use - pointer-events never blocks Enter/Space.
4212
+ // No cursor class here: pointer-events-none makes it unreachable.
4213
+ // The row carries it (see `hintVisible`).
4214
+ className="border-primary ring-background/80 pointer-events-none block size-5 rounded-full border-2 bg-transparent ring-1"
4215
+ onPointerDown={(e) => {
4216
+ // with drag-create on the press belongs to the row's create
4217
+ // gesture; a sub-threshold press still ends as this click
4218
+ if (!viewConfig.dragCreate) e.stopPropagation()
4219
+ }}
4220
+ onClick={(e) => {
4221
+ e.stopPropagation()
4222
+ // a completed drag-create already committed via onSelectSlot
4223
+ if (wasRecentDrag()) return
4224
+ createAt(hintStop, e)
4225
+ setHintStop(null)
4226
+ }}
4227
+ />
4228
+ <span
4229
+ data-slot="gantt-schedule-hint-bubble"
4230
+ className={cn(
4231
+ "bg-foreground text-background absolute start-1/2 inline-flex w-max -translate-x-1/2 items-center rounded-md px-2 py-1 text-xs font-medium whitespace-nowrap",
4232
+ rowIndex === 0 ? "top-full mt-2" : "bottom-full mb-2"
4233
+ )}
4234
+ >
4235
+ {hintLabel}
4236
+ <span
4237
+ aria-hidden
4238
+ className={cn(
4239
+ "bg-foreground absolute start-1/2 size-2.5 -translate-x-1/2 rotate-45 rounded-[2px]",
4240
+ rowIndex === 0 ? "-top-1" : "-bottom-1"
4241
+ )}
4242
+ />
4243
+ </span>
4244
+ </>
4245
+ )}
4246
+ </div>
4247
+ )}
4248
+ </div>
4249
+ )
4250
+ })
4251
+
4252
+ interface OffscreenChip {
4253
+ id: string
4254
+ side: "start" | "end"
4255
+ top: number
4256
+ color?: string
4257
+ label: string
4258
+ /** First bar start, shown in the chip tooltip. */
4259
+ startMs: number | null
4260
+ /** scrollLeft that brings the bar back into view. */
4261
+ target: number
4262
+ }
4263
+
4264
+ function sameChips(a: OffscreenChip[], b: OffscreenChip[]): boolean {
4265
+ return (
4266
+ a.length === b.length &&
4267
+ a.every(
4268
+ (chip, i) =>
4269
+ chip.id === b[i].id &&
4270
+ chip.side === b[i].side &&
4271
+ chip.top === b[i].top &&
4272
+ chip.target === b[i].target
4273
+ )
4274
+ )
4275
+ }
4276
+
4277
+ /**
4278
+ * Edge chips for rows whose bars sit entirely outside the visible timeline;
4279
+ * clicking scrolls the bar back into view. Reads geometry straight from the
4280
+ * DOM (row data attributes), so scrolling never re-renders the grid.
4281
+ */
4282
+ function GanttOffscreenChips({
4283
+ paneRef,
4284
+ occurrences,
4285
+ locale,
4286
+ refreshKey,
4287
+ }: {
4288
+ paneRef: RefObject<HTMLDivElement | null>
4289
+ occurrences: GanttOccurrence[]
4290
+ locale?: Locale
4291
+ refreshKey: string
4292
+ }) {
4293
+ const settings = useGanttSettings()
4294
+ const [chips, setChips] = useState<OffscreenChip[]>([])
4295
+
4296
+ useEffect(() => {
4297
+ const pane = paneRef.current
4298
+ const viewport = getPaneViewport(pane)
4299
+ if (!pane || !viewport) return
4300
+ let raf = 0
4301
+ const measure = () => {
4302
+ raf = 0
4303
+ const paneRect = pane.getBoundingClientRect()
4304
+ const header = viewport.querySelector<HTMLElement>(
4305
+ "[data-slot=gantt-timeline-header]"
4306
+ )
4307
+ const headerBottom = header
4308
+ ? header.getBoundingClientRect().bottom - paneRect.top
4309
+ : 0
4310
+ const trackW = viewport.scrollWidth
4311
+ const visibleStart = getScrollStart(viewport)
4312
+ const visibleEnd = visibleStart + viewport.clientWidth
4313
+ // The floating zoom control shares the right edge. The chips stay in
4314
+ // their column - a shifted chip reads as misaligned, and its position
4315
+ // IS its meaning - so it is the ZOOM CONTROL that glides inward while
4316
+ // any end chip occupies its band (published as --gantt-zoom-shift,
4317
+ // written imperatively like the rest of this measure pass). The band
4318
+ // test uses the control's VERTICAL extent only, which a horizontal
4319
+ // dodge never changes, so the loop cannot oscillate.
4320
+ const zoomEl = pane.querySelector<HTMLElement>("[data-slot=gantt-zoom]")
4321
+ const zoom = zoomEl
4322
+ ? {
4323
+ top: zoomEl.getBoundingClientRect().top - paneRect.top - 8,
4324
+ bottom: zoomEl.getBoundingClientRect().bottom - paneRect.top + 8,
4325
+ }
4326
+ : null
4327
+ let chipInZoomBand = false
4328
+ const next: OffscreenChip[] = []
4329
+ for (const rowEl of viewport.querySelectorAll<HTMLElement>(
4330
+ "[data-gantt-row]"
4331
+ )) {
4332
+ const from = parseFloat(rowEl.dataset.ganttBarMin ?? "")
4333
+ const to = parseFloat(rowEl.dataset.ganttBarMax ?? "")
4334
+ if (Number.isNaN(from) || Number.isNaN(to)) continue
4335
+ const rect = rowEl.getBoundingClientRect()
4336
+ const top = rect.top - paneRect.top + rect.height / 2
4337
+ if (top < headerBottom + 10 || top > paneRect.height - 16) continue
4338
+ const startPx = from * trackW
4339
+ const endPx = to * trackW
4340
+ const startMs = parseFloat(rowEl.dataset.ganttBarStartMs ?? "")
4341
+ const base = {
4342
+ id: rowEl.dataset.ganttRowId ?? "",
4343
+ top: Math.round(top),
4344
+ color: rowEl.dataset.ganttBarColor,
4345
+ label: rowEl.dataset.ganttBarLabel ?? "",
4346
+ startMs: Number.isNaN(startMs) ? null : startMs,
4347
+ }
4348
+ if (endPx <= visibleStart + 2) {
4349
+ next.push({
4350
+ ...base,
4351
+ side: "start",
4352
+ target: startPx - 24,
4353
+ })
4354
+ } else if (startPx >= visibleEnd - 2) {
4355
+ if (zoom && top >= zoom.top && top <= zoom.bottom) {
4356
+ chipInZoomBand = true
4357
+ }
4358
+ next.push({
4359
+ ...base,
4360
+ side: "end",
4361
+ target: endPx - viewport.clientWidth + 24,
4362
+ })
4363
+ }
4364
+ }
4365
+ // 28px clears the 20px chip column plus breathing room on both sides
4366
+ zoomEl?.style.setProperty(
4367
+ "--gantt-zoom-shift",
4368
+ chipInZoomBand ? "28px" : "0px"
4369
+ )
4370
+ setChips((prev) => (sameChips(prev, next) ? prev : next))
4371
+ }
4372
+ const schedule = () => {
4373
+ if (!raf) raf = requestAnimationFrame(measure)
4374
+ }
4375
+ viewport.addEventListener("scroll", schedule)
4376
+ const observer = new ResizeObserver(schedule)
4377
+ observer.observe(viewport)
4378
+ schedule()
4379
+ return () => {
4380
+ viewport.removeEventListener("scroll", schedule)
4381
+ observer.disconnect()
4382
+ if (raf) cancelAnimationFrame(raf)
4383
+ // the zoom control returns to its corner once no chip can collide
4384
+ pane
4385
+ .querySelector<HTMLElement>("[data-slot=gantt-zoom]")
4386
+ ?.style.removeProperty("--gantt-zoom-shift")
4387
+ }
4388
+ }, [paneRef, occurrences, refreshKey])
4389
+
4390
+ if (chips.length === 0) return null
4391
+
4392
+ const scrollTo = (chip: OffscreenChip) => {
4393
+ const viewport = getPaneViewport(paneRef.current)
4394
+ if (!viewport) return
4395
+ const target = Math.max(0, chip.target)
4396
+ viewport.scrollTo({
4397
+ // chip targets are distances from the inline start; RTL signs them
4398
+ left: getComputedStyle(viewport).direction === "rtl" ? -target : target,
4399
+ behavior: "smooth",
4400
+ })
4401
+ // hand keyboard focus to the bar the chip promised (the chip unmounts)
4402
+ const bar = viewport.querySelector<HTMLElement>(
4403
+ `[data-gantt-row-id="${CSS.escape(chip.id)}"] [data-slot=gantt-bar]`
4404
+ )
4405
+ bar?.focus({ preventScroll: true })
4406
+ }
4407
+
4408
+ return (
4409
+ <div
4410
+ data-slot="gantt-offscreen-chips"
4411
+ className="pointer-events-none absolute inset-0 z-30 overflow-hidden"
4412
+ >
4413
+ <TooltipProvider delay={600} closeDelay={0} timeout={300}>
4414
+ {chips.map((chip) => (
4415
+ <Tooltip key={`${chip.id}-${chip.side}`}>
4416
+ <TooltipTrigger
4417
+ render={
4418
+ <button
4419
+ type="button"
4420
+ data-slot="gantt-offscreen-chip"
4421
+ data-side={chip.side}
4422
+ aria-label={settings.i18n.labels.jumpToBar(chip.label)}
4423
+ className="bg-background text-muted-foreground hover:text-foreground pointer-events-auto absolute flex size-5 -translate-y-1/2 cursor-pointer items-center justify-center rounded-full border shadow-xs"
4424
+ style={{
4425
+ top: chip.top,
4426
+ ...(chip.side === "start"
4427
+ ? { insetInlineStart: "0.5rem" }
4428
+ : { insetInlineEnd: "0.875rem" }),
4429
+ }}
4430
+ onClick={() => scrollTo(chip)}
4431
+ />
4432
+ }
4433
+ >
4434
+ {chip.side === "start" ? (
4435
+ <ChevronLeftIcon className="size-3" aria-hidden="true" />
4436
+ ) : (
4437
+ <ChevronRightIcon className="size-3" aria-hidden="true" />
4438
+ )}
4439
+ <span
4440
+ aria-hidden
4441
+ className="ring-background absolute -end-px -top-px size-1.5 rounded-full ring-1"
4442
+ style={{ background: chip.color ?? "var(--color-primary)" }}
4443
+ />
4444
+ </TooltipTrigger>
4445
+ <TooltipContent side={chip.side === "start" ? "right" : "left"}>
4446
+ <div className="font-medium">{chip.label}</div>
4447
+ {chip.startMs !== null && (
4448
+ <div className="opacity-80">
4449
+ {/* zoned: the chip must name the same day the grid shows */}
4450
+ {format(
4451
+ toZoned(new Date(chip.startMs), settings.timeZone),
4452
+ "MMM d, yyyy",
4453
+ { locale }
4454
+ )}
4455
+ </div>
4456
+ )}
4457
+ </TooltipContent>
4458
+ </Tooltip>
4459
+ ))}
4460
+ </TooltipProvider>
4461
+ </div>
4462
+ )
4463
+ }
4464
+
4465
+ export { GanttView }
4466
+ export type { GanttViewProps }