cursedbelt 5.87.0 → 5.89.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (594) hide show
  1. package/dist/looks.css +4 -4
  2. package/dist/react/Toast.js +2 -2
  3. package/dist/react/Toast.js.map +1 -1
  4. package/dist/react/VirtualCardGrid.d.ts +1 -1
  5. package/dist/react/VirtualCardGrid.js +1 -1
  6. package/dist/react/activity-bar/ActivityBar.d.ts +2 -2
  7. package/dist/react/activity-bar/ActivityBar.js +1 -1
  8. package/dist/react/activity-bar/activityBar.css +4 -4
  9. package/dist/react/analytics/AnalyticsPanel.d.ts +1 -1
  10. package/dist/react/analytics/AnalyticsPanel.js +1 -1
  11. package/dist/react/canvas-hud/CanvasMinimap.d.ts +1 -1
  12. package/dist/react/canvas-hud/HudControls.d.ts +2 -2
  13. package/dist/react/canvas-hud/alignment.d.ts +2 -2
  14. package/dist/react/canvas-hud/alignment.js +3 -3
  15. package/dist/react/canvas-hud/alignment.js.map +1 -1
  16. package/dist/react/canvas-hud/viewport.d.ts +1 -1
  17. package/dist/react/canvas-hud/viewport.js +1 -1
  18. package/dist/react/charts/BarChart.d.ts +2 -2
  19. package/dist/react/charts/HeatmapChart.d.ts +1 -1
  20. package/dist/react/charts/HeatmapChart.js +1 -1
  21. package/dist/react/charts/IntervalTimeline.d.ts +2 -2
  22. package/dist/react/charts/IntervalTimeline.d.ts.map +1 -1
  23. package/dist/react/charts/categorical.d.ts +11 -11
  24. package/dist/react/charts/categorical.js +9 -9
  25. package/dist/react/charts/categorical.js.map +1 -1
  26. package/dist/react/charts/ink.d.ts +5 -5
  27. package/dist/react/charts/ink.js +5 -5
  28. package/dist/react/charts/tokens.d.ts +1 -1
  29. package/dist/react/charts/tokens.js +1 -1
  30. package/dist/react/chat/Bubble.js +1 -1
  31. package/dist/react/chat/Bubble.js.map +1 -1
  32. package/dist/react/chat/DateMarker.js +1 -1
  33. package/dist/react/chat/MessageComposer.d.ts +1 -1
  34. package/dist/react/chat/types.d.ts +1 -1
  35. package/dist/react/chat/usePresence.d.ts +2 -2
  36. package/dist/react/chat/usePresence.js +1 -1
  37. package/dist/react/code-editor/markdownRules.js +1 -1
  38. package/dist/react/code-editor/markdownRules.js.map +1 -1
  39. package/dist/react/components/Badge.js +1 -1
  40. package/dist/react/components/Badge.js.map +1 -1
  41. package/dist/react/components/Button.js +5 -5
  42. package/dist/react/components/Button.js.map +1 -1
  43. package/dist/react/components/ChartTablePanel.js +1 -1
  44. package/dist/react/components/ChartTablePanel.js.map +1 -1
  45. package/dist/react/components/Checkbox.js +2 -2
  46. package/dist/react/components/Checkbox.js.map +1 -1
  47. package/dist/react/components/ChoiceGroup.d.ts +1 -1
  48. package/dist/react/components/ChoiceGroup.js +1 -1
  49. package/dist/react/components/CodeChip.d.ts +1 -1
  50. package/dist/react/components/CodeChip.js +1 -1
  51. package/dist/react/components/ColorSwatches.d.ts +10 -10
  52. package/dist/react/components/ColorSwatches.d.ts.map +1 -1
  53. package/dist/react/components/ColorSwatches.js +10 -10
  54. package/dist/react/components/ColorSwatches.js.map +1 -1
  55. package/dist/react/components/DataTable/DataTable.d.ts +2 -2
  56. package/dist/react/components/DataTable/DataTable.js +8 -8
  57. package/dist/react/components/DataTable/DataTable.js.map +1 -1
  58. package/dist/react/components/DataTable/SearchBox.js +2 -2
  59. package/dist/react/components/DataTable/SortHeader.js +1 -1
  60. package/dist/react/components/DataTable/SortHeader.js.map +1 -1
  61. package/dist/react/components/DataTable/TableFilterBuilder.d.ts +1 -1
  62. package/dist/react/components/DataTable/TableFilterBuilder.js +1 -1
  63. package/dist/react/components/DropdownMenu.js +1 -1
  64. package/dist/react/components/Field.d.ts +1 -1
  65. package/dist/react/components/FormPreviewLayout.d.ts +1 -1
  66. package/dist/react/components/FormPreviewLayout.js +1 -1
  67. package/dist/react/components/Heat.d.ts +6 -6
  68. package/dist/react/components/Heat.js +1 -1
  69. package/dist/react/components/IconPicker.d.ts +8 -8
  70. package/dist/react/components/IconPicker.d.ts.map +1 -1
  71. package/dist/react/components/IconPicker.js +6 -6
  72. package/dist/react/components/IconPicker.js.map +1 -1
  73. package/dist/react/components/InfoHint.d.ts +1 -1
  74. package/dist/react/components/InfoHint.js +1 -1
  75. package/dist/react/components/InheritBadge.js +2 -2
  76. package/dist/react/components/ListToolbar.d.ts +1 -1
  77. package/dist/react/components/ListToolbar.js +1 -1
  78. package/dist/react/components/Menu.d.ts +1 -1
  79. package/dist/react/components/Menu.d.ts.map +1 -1
  80. package/dist/react/components/Modal.js +5 -5
  81. package/dist/react/components/Modal.js.map +1 -1
  82. package/dist/react/components/Page.d.ts +1 -1
  83. package/dist/react/components/Page.js +1 -1
  84. package/dist/react/components/PaneSplit.d.ts +1 -1
  85. package/dist/react/components/PathText.d.ts +1 -1
  86. package/dist/react/components/PathText.js +1 -1
  87. package/dist/react/components/Popover.d.ts +1 -1
  88. package/dist/react/components/PropertyList.d.ts +1 -1
  89. package/dist/react/components/PropertyList.js +1 -1
  90. package/dist/react/components/PropertyPicker.d.ts +2 -2
  91. package/dist/react/components/PropertyPicker.js +2 -2
  92. package/dist/react/components/RatingField.js +1 -1
  93. package/dist/react/components/RatingField.js.map +1 -1
  94. package/dist/react/components/SaveIndicator.d.ts +2 -2
  95. package/dist/react/components/SaveIndicator.js +2 -2
  96. package/dist/react/components/SearchInput.d.ts +1 -1
  97. package/dist/react/components/SearchInput.d.ts.map +1 -1
  98. package/dist/react/components/SecretInput.d.ts +1 -1
  99. package/dist/react/components/Section.d.ts +1 -1
  100. package/dist/react/components/SectionNav.d.ts +3 -3
  101. package/dist/react/components/SectionNav.d.ts.map +1 -1
  102. package/dist/react/components/SectionNav.js +2 -2
  103. package/dist/react/components/Slider.js +1 -1
  104. package/dist/react/components/StarRating.js +1 -1
  105. package/dist/react/components/SwatchPicker.d.ts +6 -6
  106. package/dist/react/components/SwatchPicker.d.ts.map +1 -1
  107. package/dist/react/components/SwatchPicker.js +3 -3
  108. package/dist/react/components/SwatchPicker.js.map +1 -1
  109. package/dist/react/components/Tooltip.js +1 -1
  110. package/dist/react/components/TreeView.js +1 -1
  111. package/dist/react/components/TreeView.js.map +1 -1
  112. package/dist/react/components/TruncatedText.d.ts +1 -1
  113. package/dist/react/components/TruncatedText.js +1 -1
  114. package/dist/react/components/UnstyledButton.d.ts +2 -2
  115. package/dist/react/components/UnstyledButton.js +2 -2
  116. package/dist/react/components/auth/AuthCard.js +1 -1
  117. package/dist/react/components/auth/AuthCard.js.map +1 -1
  118. package/dist/react/components/buildFreshness.css +2 -2
  119. package/dist/react/components/calendar/MonthGrid.js +2 -2
  120. package/dist/react/components/calendar/MonthGrid.js.map +1 -1
  121. package/dist/react/components/calendar/colorUtils.js +2 -2
  122. package/dist/react/components/dialog.js +1 -1
  123. package/dist/react/components/fieldErrorText.d.ts +1 -1
  124. package/dist/react/components/fieldErrorText.js +1 -1
  125. package/dist/react/components/paneSplit.css +1 -1
  126. package/dist/react/components/sharing/ShareEditor.d.ts +5 -1
  127. package/dist/react/components/sharing/ShareEditor.d.ts.map +1 -1
  128. package/dist/react/components/sharing/ShareEditor.js +2 -2
  129. package/dist/react/components/sharing/ShareEditor.js.map +1 -1
  130. package/dist/react/deep-link/links.d.ts +1 -1
  131. package/dist/react/deep-link/resume.js +1 -1
  132. package/dist/react/diff-viewer/DiffViewer.css +1 -1
  133. package/dist/react/file-tree/FileTree.d.ts +9 -9
  134. package/dist/react/file-tree/FileTree.js +13 -13
  135. package/dist/react/file-tree/FileTree.js.map +1 -1
  136. package/dist/react/file-tree/FolderViewMenus.d.ts +3 -3
  137. package/dist/react/file-tree/FolderViewMenus.d.ts.map +1 -1
  138. package/dist/react/file-tree/FolderViewMenus.js +1 -1
  139. package/dist/react/file-tree/FolderViewMenus.js.map +1 -1
  140. package/dist/react/file-tree/fileTree.css +14 -14
  141. package/dist/react/file-tree/fileTreeSelection.d.ts +3 -3
  142. package/dist/react/file-tree/fileTreeSelection.js +4 -4
  143. package/dist/react/file-tree/folderView.d.ts +3 -3
  144. package/dist/react/file-tree/folderView.d.ts.map +1 -1
  145. package/dist/react/file-tree/folderView.js +3 -3
  146. package/dist/react/file-tree/folderView.js.map +1 -1
  147. package/dist/react/filter-rail/FilterRail.d.ts +3 -3
  148. package/dist/react/filter-rail/FilterRail.d.ts.map +1 -1
  149. package/dist/react/filter-rail/FilterRail.js +1 -1
  150. package/dist/react/filter-rail/RailSection.d.ts +1 -1
  151. package/dist/react/filter-rail/railResize.d.ts +1 -1
  152. package/dist/react/filter-rail/railResize.js +1 -1
  153. package/dist/react/folder-tree/FolderBreadcrumb.d.ts +1 -1
  154. package/dist/react/folder-tree/NewFolderControl.js +1 -1
  155. package/dist/react/hooks/keyboardDnd.d.ts +1 -1
  156. package/dist/react/hooks/keyboardDnd.d.ts.map +1 -1
  157. package/dist/react/hooks/keyboardDnd.js +2 -2
  158. package/dist/react/hooks/keyboardDnd.js.map +1 -1
  159. package/dist/react/hooks/pointerDnd.d.ts +2 -2
  160. package/dist/react/hooks/pointerDnd.d.ts.map +1 -1
  161. package/dist/react/hooks/pointerDnd.js +1 -1
  162. package/dist/react/hooks/usePointerDrag.d.ts +2 -2
  163. package/dist/react/icons.d.ts +16 -9
  164. package/dist/react/icons.d.ts.map +1 -1
  165. package/dist/react/icons.js +17 -10
  166. package/dist/react/icons.js.map +1 -1
  167. package/dist/react/layoutEngine/LayoutRenderer.js +1 -1
  168. package/dist/react/layoutEngine/LayoutRenderer.js.map +1 -1
  169. package/dist/react/lib/cn.d.ts +3 -3
  170. package/dist/react/lib/cn.js +4 -4
  171. package/dist/react/lib/field.d.ts +1 -1
  172. package/dist/react/lib/floatingContainer.d.ts +1 -1
  173. package/dist/react/lib/floatingContainer.js +1 -1
  174. package/dist/react/lib/floatingStyles.d.ts +1 -1
  175. package/dist/react/lib/floatingStyles.js +2 -2
  176. package/dist/react/lib/floatingStyles.js.map +1 -1
  177. package/dist/react/lib/hoverIntent.d.ts +6 -6
  178. package/dist/react/lib/hoverIntent.js +6 -6
  179. package/dist/react/lib/infoHint.d.ts +1 -1
  180. package/dist/react/lib/infoHint.js +1 -1
  181. package/dist/react/lib/overlayMotion.d.ts +1 -1
  182. package/dist/react/lib/overlayMotion.d.ts.map +1 -1
  183. package/dist/react/lib/overlayMotion.js +1 -1
  184. package/dist/react/lib/overlayMotion.js.map +1 -1
  185. package/dist/react/lib/press.d.ts +1 -1
  186. package/dist/react/lib/press.js +1 -1
  187. package/dist/react/lib/selectField.d.ts +2 -2
  188. package/dist/react/lib/selectField.d.ts.map +1 -1
  189. package/dist/react/lib/selectField.js +2 -2
  190. package/dist/react/lib/selectField.js.map +1 -1
  191. package/dist/react/look/AppearanceMenu.d.ts +1 -1
  192. package/dist/react/look/AppearanceMenu.js +1 -1
  193. package/dist/react/look/LookPicker.d.ts +3 -3
  194. package/dist/react/look/LookPicker.js +3 -3
  195. package/dist/react/look/lookStore.d.ts +1 -1
  196. package/dist/react/look/lookStore.js +4 -4
  197. package/dist/react/look/lookStore.js.map +1 -1
  198. package/dist/react/master-lock/MasterLockDialog.js +2 -2
  199. package/dist/react/master-lock/MasterLockDialog.js.map +1 -1
  200. package/dist/react/master-lock/MasterLockProvider.d.ts +1 -1
  201. package/dist/react/media/DenseGalleryShell.d.ts +3 -3
  202. package/dist/react/media/FocusViewer.js +3 -3
  203. package/dist/react/media/FocusViewer.js.map +1 -1
  204. package/dist/react/media/FrameGrabber.js +3 -3
  205. package/dist/react/media/FrameGrabber.js.map +1 -1
  206. package/dist/react/media/HoverScrubVideoThumb.d.ts +1 -1
  207. package/dist/react/media/HoverScrubVideoThumb.js +1 -1
  208. package/dist/react/media/HoverScrubVideoThumb.js.map +1 -1
  209. package/dist/react/media/MediaCell.d.ts +1 -1
  210. package/dist/react/media/MediaCell.js +1 -1
  211. package/dist/react/media/MediaResize.d.ts +1 -1
  212. package/dist/react/media/MediaThumb.d.ts +1 -1
  213. package/dist/react/media/PictureControls.d.ts +1 -1
  214. package/dist/react/media/PictureControls.js +2 -2
  215. package/dist/react/media/PictureControls.js.map +1 -1
  216. package/dist/react/media/PictureEditor.js +2 -2
  217. package/dist/react/media/PictureEditor.js.map +1 -1
  218. package/dist/react/media/PlayerStrip.d.ts +4 -4
  219. package/dist/react/media/PlayerStrip.d.ts.map +1 -1
  220. package/dist/react/media/PlayerStrip.js +2 -2
  221. package/dist/react/media/VideoPlayer.d.ts +3 -3
  222. package/dist/react/media/VideoPlayer.js +5 -5
  223. package/dist/react/media/VideoTurner.js +1 -1
  224. package/dist/react/media/VideoTurner.js.map +1 -1
  225. package/dist/react/media/VirtualizedRows.d.ts +1 -1
  226. package/dist/react/media/denseGallery.css +7 -7
  227. package/dist/react/media/focusViewer.css +2 -2
  228. package/dist/react/media/gifEncode.d.ts +4 -4
  229. package/dist/react/media/gifEncode.d.ts.map +1 -1
  230. package/dist/react/media/gifEncode.js +8 -8
  231. package/dist/react/media/gifEncode.js.map +1 -1
  232. package/dist/react/media/gifRecord.js +1 -1
  233. package/dist/react/media/gifRecord.js.map +1 -1
  234. package/dist/react/media/hlsSource.js +2 -2
  235. package/dist/react/media/hlsSource.js.map +1 -1
  236. package/dist/react/media/mediaResize.css +3 -3
  237. package/dist/react/media/pictureEdit.d.ts +1 -1
  238. package/dist/react/media/pictureEdit.js +4 -4
  239. package/dist/react/media/pictureEdit.js.map +1 -1
  240. package/dist/react/media/pictureEditor.css +6 -6
  241. package/dist/react/media/playerSpaceKey.js +3 -3
  242. package/dist/react/media/playerStrip.css +11 -11
  243. package/dist/react/media/posterFraming.d.ts +2 -2
  244. package/dist/react/media/posterFraming.d.ts.map +1 -1
  245. package/dist/react/media/posterFraming.js +4 -4
  246. package/dist/react/media/posterFraming.js.map +1 -1
  247. package/dist/react/media/sourceFault.d.ts +2 -2
  248. package/dist/react/media/sourceFault.js +1 -1
  249. package/dist/react/media/stageResize.d.ts +1 -1
  250. package/dist/react/media/stageResize.js +1 -1
  251. package/dist/react/media/surfaceGesture.d.ts +1 -1
  252. package/dist/react/media/surfaceGesture.js +1 -1
  253. package/dist/react/media/types.d.ts +1 -1
  254. package/dist/react/media/videoChapterEditor.css +1 -1
  255. package/dist/react/media/videoChapters.d.ts +1 -1
  256. package/dist/react/media/videoChapters.js +1 -1
  257. package/dist/react/media/videoCutEditor.css +2 -2
  258. package/dist/react/media/videoEnhance.d.ts +2 -2
  259. package/dist/react/media/videoEnhance.js +2 -2
  260. package/dist/react/media/videoPoster.d.ts +3 -3
  261. package/dist/react/media/videoPoster.d.ts.map +1 -1
  262. package/dist/react/media/videoPoster.js +4 -4
  263. package/dist/react/media/videoPoster.js.map +1 -1
  264. package/dist/react/media/videoRegion.d.ts +8 -8
  265. package/dist/react/media/videoRegion.js +8 -8
  266. package/dist/react/media-gallery/MediaGallery.d.ts +2 -2
  267. package/dist/react/media-gallery/MediaGallery.d.ts.map +1 -1
  268. package/dist/react/media-gallery/MediaGallery.js +17 -17
  269. package/dist/react/media-gallery/MediaGallery.js.map +1 -1
  270. package/dist/react/media-gallery/MediaMetaEditor.js +1 -1
  271. package/dist/react/media-gallery/galleryDeepLink.d.ts +1 -1
  272. package/dist/react/media-gallery/galleryDeepLink.js +2 -2
  273. package/dist/react/media-gallery/galleryItemMedia.d.ts +1 -1
  274. package/dist/react/media-gallery/galleryItemMedia.js +1 -1
  275. package/dist/react/media-gallery/galleryReturn.d.ts +1 -1
  276. package/dist/react/media-gallery/galleryReturn.js +2 -2
  277. package/dist/react/media-gallery/mediaGallery.css +10 -10
  278. package/dist/react/media-gallery/mediaGalleryModel.d.ts +1 -1
  279. package/dist/react/media-gallery/mediaGalleryModel.js +1 -1
  280. package/dist/react/media-gallery/playbackPreferences.d.ts +3 -3
  281. package/dist/react/media-gallery/playbackPreferences.js +2 -2
  282. package/dist/react/media-gallery/playbackRun.d.ts +1 -1
  283. package/dist/react/media-gallery/playbackRun.js +1 -1
  284. package/dist/react/media-gallery/preferenceSync.js +1 -1
  285. package/dist/react/namespace/NamespaceTargetCapsule.d.ts +1 -1
  286. package/dist/react/nav/BreadcrumbTrail.d.ts +1 -1
  287. package/dist/react/nav/BreadcrumbTrail.js +1 -1
  288. package/dist/react/nav/Breadcrumbs.d.ts +1 -1
  289. package/dist/react/nav/Breadcrumbs.js +1 -1
  290. package/dist/react/nav/HeaderSearch.d.ts +3 -3
  291. package/dist/react/nav/HeaderSearch.d.ts.map +1 -1
  292. package/dist/react/nav/HeaderSearch.js +2 -2
  293. package/dist/react/nav/PlaceBar.d.ts +1 -1
  294. package/dist/react/nav/PlaceBar.js +2 -2
  295. package/dist/react/nav/SearchResults.d.ts +2 -2
  296. package/dist/react/nav/SearchResults.d.ts.map +1 -1
  297. package/dist/react/nav/SearchResults.js +1 -1
  298. package/dist/react/nav/TopBar.js +1 -1
  299. package/dist/react/nav/breadcrumbStore.js +1 -1
  300. package/dist/react/nav/navShared.d.ts +1 -1
  301. package/dist/react/palette/CommandPalette.js +1 -1
  302. package/dist/react/palette/CommandPalette.js.map +1 -1
  303. package/dist/react/pdf-viewer/PdfPage.js +1 -1
  304. package/dist/react/pdf-viewer/PdfPage.js.map +1 -1
  305. package/dist/react/spreadsheet/SpreadsheetGrid.d.ts +1 -1
  306. package/dist/react/spreadsheet/useGlideTheme.js +2 -2
  307. package/dist/react/workbook-viewer/WorkbookViewer.js +1 -1
  308. package/dist/react/workbook-viewer/WorkbookViewer.js.map +1 -1
  309. package/dist/styles-areas/notifications.css +1 -1
  310. package/dist/styles-static.css +1 -1
  311. package/dist/styles.css +1 -1
  312. package/dist/testing/designAudit.d.ts +2 -2
  313. package/dist/testing/designAudit.js +3 -3
  314. package/dist/testing/designAudit.js.map +1 -1
  315. package/dist/testing/phoneRules.d.ts +4 -4
  316. package/dist/testing/phoneRules.js +4 -4
  317. package/dist/testing/phoneRules.js.map +1 -1
  318. package/dist/theme.css +10 -10
  319. package/package.json +1 -1
  320. package/scripts/attributesForwarded.ts +1 -1
  321. package/scripts/checkAreaStyles.ts +2 -2
  322. package/scripts/cssRules.ts +2 -2
  323. package/scripts/demoCoverage.ts +1 -1
  324. package/scripts/demoServer.ts +1 -1
  325. package/scripts/generateStaticStyles.ts +1 -1
  326. package/scripts/guardrailsEnforce.spec.ts +14 -14
  327. package/scripts/guardrailsEnforce.ts +25 -25
  328. package/scripts/paths.ts +1 -1
  329. package/scripts/styleAreas.ts +2 -2
  330. package/scripts/testTmpRoot.ts +1 -1
  331. package/src/buildIsStaged.spec.ts +1 -1
  332. package/src/iframesMakeNoRealRequest.spec.ts +1 -1
  333. package/src/looks.css +4 -4
  334. package/src/looks.spec.ts +3 -3
  335. package/src/namedSubpathsResolve.spec.ts +2 -2
  336. package/src/publishShape.spec.ts +1 -1
  337. package/src/react/Toast.spec.tsx +1 -1
  338. package/src/react/Toast.tsx +2 -2
  339. package/src/react/VirtualCardGrid.spec.tsx +1 -1
  340. package/src/react/VirtualCardGrid.tsx +3 -3
  341. package/src/react/activity-bar/ActivityBar.spec.tsx +2 -2
  342. package/src/react/activity-bar/ActivityBar.tsx +4 -4
  343. package/src/react/activity-bar/activityBar.css +4 -4
  344. package/src/react/analytics/AnalyticsPanel.tsx +1 -1
  345. package/src/react/canvas-hud/CanvasMinimap.tsx +1 -1
  346. package/src/react/canvas-hud/HudControls.spec.tsx +1 -1
  347. package/src/react/canvas-hud/HudControls.tsx +2 -2
  348. package/src/react/canvas-hud/alignment.spec.tsx +4 -4
  349. package/src/react/canvas-hud/alignment.ts +3 -3
  350. package/src/react/canvas-hud/viewport.spec.ts +1 -1
  351. package/src/react/canvas-hud/viewport.ts +1 -1
  352. package/src/react/charts/BarChart.tsx +2 -2
  353. package/src/react/charts/HeatmapChart.spec.ts +1 -1
  354. package/src/react/charts/HeatmapChart.tsx +1 -1
  355. package/src/react/charts/IntervalTimeline.color.spec.tsx +6 -6
  356. package/src/react/charts/IntervalTimeline.tsx +2 -2
  357. package/src/react/charts/Treemap.tsx +1 -1
  358. package/src/react/charts/accentCollision.spec.ts +1 -1
  359. package/src/react/charts/categorical.spec.ts +3 -3
  360. package/src/react/charts/categorical.ts +12 -12
  361. package/src/react/charts/ink.spec.ts +1 -1
  362. package/src/react/charts/ink.ts +5 -5
  363. package/src/react/charts/tokens.ts +1 -1
  364. package/src/react/chat/Bubble.tsx +1 -1
  365. package/src/react/chat/DateMarker.tsx +2 -2
  366. package/src/react/chat/MessageComposer.tsx +1 -1
  367. package/src/react/chat/PresenceRoster.tsx +2 -2
  368. package/src/react/chat/types.ts +1 -1
  369. package/src/react/chat/usePresence.ts +2 -2
  370. package/src/react/code-editor/markdownRules.ts +1 -1
  371. package/src/react/components/AvatarStack.spec.tsx +2 -2
  372. package/src/react/components/AvatarStack.tsx +2 -2
  373. package/src/react/components/Badge.capsule.spec.ts +6 -6
  374. package/src/react/components/Badge.tsx +1 -1
  375. package/src/react/components/Button.spec.tsx +1 -1
  376. package/src/react/components/Button.tsx +5 -5
  377. package/src/react/components/ChartTablePanel.tsx +1 -1
  378. package/src/react/components/Checkbox.spec.tsx +2 -2
  379. package/src/react/components/Checkbox.tsx +2 -2
  380. package/src/react/components/ChoiceGroup.tsx +1 -1
  381. package/src/react/components/CodeChip.spec.tsx +1 -1
  382. package/src/react/components/CodeChip.tsx +1 -1
  383. package/src/react/components/ColorSwatches.spec.tsx +9 -9
  384. package/src/react/components/ColorSwatches.tsx +16 -16
  385. package/src/react/components/CommentThread.tsx +1 -1
  386. package/src/react/components/ConnectionHealer.tsx +1 -1
  387. package/src/react/components/DataTable/DataTable.spec.tsx +2 -2
  388. package/src/react/components/DataTable/DataTable.tsx +10 -10
  389. package/src/react/components/DataTable/SearchBox.tsx +2 -2
  390. package/src/react/components/DataTable/SortHeader.tsx +1 -1
  391. package/src/react/components/DataTable/TableFilterBuilder.tsx +1 -1
  392. package/src/react/components/DataTable/selection.spec.tsx +1 -1
  393. package/src/react/components/DataTable/virtualize.spec.tsx +1 -1
  394. package/src/react/components/DropdownMenu.tsx +1 -1
  395. package/src/react/components/Field.tsx +1 -1
  396. package/src/react/components/FormPreviewLayout.tsx +1 -1
  397. package/src/react/components/Heat.spec.tsx +1 -1
  398. package/src/react/components/Heat.tsx +6 -6
  399. package/src/react/components/IconPicker.spec.tsx +1 -1
  400. package/src/react/components/IconPicker.tsx +9 -9
  401. package/src/react/components/InfoHint.spec.tsx +2 -2
  402. package/src/react/components/InfoHint.tsx +1 -1
  403. package/src/react/components/InheritBadge.tsx +2 -2
  404. package/src/react/components/IsolatedFrame.tsx +1 -1
  405. package/src/react/components/ListToolbar.tsx +1 -1
  406. package/src/react/components/Menu.tsx +1 -1
  407. package/src/react/components/Modal.tsx +5 -5
  408. package/src/react/components/Page.spec.tsx +1 -1
  409. package/src/react/components/Page.tsx +2 -2
  410. package/src/react/components/PaneSplit.tsx +1 -1
  411. package/src/react/components/PathText.tsx +1 -1
  412. package/src/react/components/PointerDrag.spec.tsx +1 -1
  413. package/src/react/components/Popover.spec.tsx +2 -2
  414. package/src/react/components/Popover.tsx +1 -1
  415. package/src/react/components/PropertyList.tsx +1 -1
  416. package/src/react/components/PropertyPicker.tsx +2 -2
  417. package/src/react/components/RatingField.tsx +1 -1
  418. package/src/react/components/SaveIndicator.tsx +2 -2
  419. package/src/react/components/SearchInput.tsx +1 -1
  420. package/src/react/components/SecretInput.tsx +1 -1
  421. package/src/react/components/Section.tsx +1 -1
  422. package/src/react/components/SectionNav.spec.tsx +3 -3
  423. package/src/react/components/SectionNav.tsx +3 -3
  424. package/src/react/components/SelectField.spec.tsx +1 -1
  425. package/src/react/components/Slider.tsx +1 -1
  426. package/src/react/components/StarRating.spec.tsx +4 -4
  427. package/src/react/components/StarRating.tsx +3 -3
  428. package/src/react/components/SwatchPicker.spec.tsx +4 -4
  429. package/src/react/components/SwatchPicker.tsx +9 -9
  430. package/src/react/components/Tooltip.spec.tsx +3 -3
  431. package/src/react/components/Tooltip.tsx +1 -1
  432. package/src/react/components/TreeView.tsx +1 -1
  433. package/src/react/components/TruncatedText.tsx +1 -1
  434. package/src/react/components/UnstyledButton.tsx +2 -2
  435. package/src/react/components/auth/AuthCard.tsx +1 -1
  436. package/src/react/components/buildFreshness.css +2 -2
  437. package/src/react/components/calendar/EventChip.spec.tsx +2 -2
  438. package/src/react/components/calendar/MonthGrid.tsx +2 -2
  439. package/src/react/components/calendar/colorUtils.ts +2 -2
  440. package/src/react/components/dialog.tsx +1 -1
  441. package/src/react/components/fieldErrorText.tsx +1 -1
  442. package/src/react/components/paneSplit.css +1 -1
  443. package/src/react/components/sharing/ShareEditor.spec.tsx +15 -0
  444. package/src/react/components/sharing/ShareEditor.tsx +14 -3
  445. package/src/react/deep-link/links.spec.ts +1 -1
  446. package/src/react/deep-link/links.ts +1 -1
  447. package/src/react/deep-link/resume.spec.tsx +1 -1
  448. package/src/react/deep-link/resume.ts +1 -1
  449. package/src/react/diff-viewer/DiffViewer.css +1 -1
  450. package/src/react/file-tree/FileTree.spec.tsx +13 -13
  451. package/src/react/file-tree/FileTree.tsx +22 -22
  452. package/src/react/file-tree/FolderViewMenus.tsx +3 -3
  453. package/src/react/file-tree/FolderViewPanels.tsx +1 -1
  454. package/src/react/file-tree/fileTree.css +14 -14
  455. package/src/react/file-tree/fileTreeGeometry.spec.ts +5 -5
  456. package/src/react/file-tree/fileTreeSelection.ts +4 -4
  457. package/src/react/file-tree/folderView.spec.ts +1 -1
  458. package/src/react/file-tree/folderView.ts +3 -3
  459. package/src/react/filter-rail/FilterRail.spec.tsx +1 -1
  460. package/src/react/filter-rail/FilterRail.tsx +4 -4
  461. package/src/react/filter-rail/RailSection.spec.tsx +2 -2
  462. package/src/react/filter-rail/RailSection.tsx +1 -1
  463. package/src/react/filter-rail/railResize.tsx +1 -1
  464. package/src/react/folder-tree/FolderBreadcrumb.tsx +1 -1
  465. package/src/react/folder-tree/NewFolderControl.tsx +1 -1
  466. package/src/react/hooks/keyboardDnd.spec.tsx +1 -1
  467. package/src/react/hooks/keyboardDnd.tsx +2 -2
  468. package/src/react/hooks/pointerDnd.spec.ts +3 -3
  469. package/src/react/hooks/pointerDnd.ts +2 -2
  470. package/src/react/hooks/useOutsidePress.spec.tsx +1 -1
  471. package/src/react/hooks/usePointerDrag.ts +2 -2
  472. package/src/react/icons.tsx +18 -11
  473. package/src/react/keep-awake/keepAwakeEngine.spec.ts +1 -1
  474. package/src/react/layoutEngine/LayoutConfigDialog.tsx +1 -1
  475. package/src/react/layoutEngine/LayoutRenderer.tsx +1 -1
  476. package/src/react/layoutEngine/gridClasses.spec.ts +3 -3
  477. package/src/react/lib/cn.spec.ts +1 -1
  478. package/src/react/lib/cn.ts +4 -4
  479. package/src/react/lib/directUpload.spec.ts +1 -1
  480. package/src/react/lib/field.ts +1 -1
  481. package/src/react/lib/floatingContainer.ts +1 -1
  482. package/src/react/lib/floatingStyles.spec.ts +1 -1
  483. package/src/react/lib/floatingStyles.ts +2 -2
  484. package/src/react/lib/hoverIntent.ts +6 -6
  485. package/src/react/lib/infoHint.ts +1 -1
  486. package/src/react/lib/overlayMotion.ts +1 -1
  487. package/src/react/lib/press.ts +1 -1
  488. package/src/react/lib/selectField.ts +2 -2
  489. package/src/react/lib/zodResolver.ts +1 -1
  490. package/src/react/look/AppearanceMenu.tsx +1 -1
  491. package/src/react/look/LookPicker.tsx +3 -3
  492. package/src/react/look/lookStore.ts +4 -4
  493. package/src/react/markdown/MarkdownDoc.spec.tsx +1 -1
  494. package/src/react/master-detail/MasterDetail.tsx +1 -1
  495. package/src/react/master-lock/MasterLockDialog.tsx +2 -2
  496. package/src/react/master-lock/MasterLockProvider.spec.tsx +1 -1
  497. package/src/react/master-lock/MasterLockProvider.tsx +1 -1
  498. package/src/react/media/DenseGalleryShell.tsx +3 -3
  499. package/src/react/media/FocusViewer.tsx +3 -3
  500. package/src/react/media/FrameGrabber.spec.tsx +2 -2
  501. package/src/react/media/FrameGrabber.tsx +3 -3
  502. package/src/react/media/HoverScrubVideoThumb.tsx +3 -3
  503. package/src/react/media/MediaCell.tsx +1 -1
  504. package/src/react/media/MediaResize.spec.tsx +4 -4
  505. package/src/react/media/MediaResize.tsx +1 -1
  506. package/src/react/media/MediaThumb.tsx +1 -1
  507. package/src/react/media/PictureControls.tsx +2 -2
  508. package/src/react/media/PictureEditor.tsx +2 -2
  509. package/src/react/media/PlayerStrip.tsx +9 -9
  510. package/src/react/media/VideoChapterEditor.tsx +1 -1
  511. package/src/react/media/VideoCutEditor.spec.tsx +1 -1
  512. package/src/react/media/VideoCutEditor.tsx +1 -1
  513. package/src/react/media/VideoPlayer.spec.tsx +7 -7
  514. package/src/react/media/VideoPlayer.tsx +6 -6
  515. package/src/react/media/VideoTurner.tsx +1 -1
  516. package/src/react/media/VirtualizedRows.tsx +1 -1
  517. package/src/react/media/denseGallery.css +7 -7
  518. package/src/react/media/focusViewer.css +2 -2
  519. package/src/react/media/focusViewer.css.spec.ts +1 -1
  520. package/src/react/media/gifEncode.spec.ts +2 -2
  521. package/src/react/media/gifEncode.ts +9 -9
  522. package/src/react/media/gifRecord.ts +1 -1
  523. package/src/react/media/hlsSource.recovery.spec.ts +2 -2
  524. package/src/react/media/hlsSource.spec.ts +1 -1
  525. package/src/react/media/hlsSource.ts +2 -2
  526. package/src/react/media/mediaResize.css +3 -3
  527. package/src/react/media/pictureEdit.spec.ts +5 -5
  528. package/src/react/media/pictureEdit.ts +4 -4
  529. package/src/react/media/pictureEditor.css +6 -6
  530. package/src/react/media/playerSpaceKey.ts +3 -3
  531. package/src/react/media/playerStrip.css +11 -11
  532. package/src/react/media/playerStrip.spec.tsx +17 -13
  533. package/src/react/media/posterFraming.spec.ts +4 -4
  534. package/src/react/media/posterFraming.ts +5 -5
  535. package/src/react/media/sourceFault.tsx +2 -2
  536. package/src/react/media/stageResize.ts +1 -1
  537. package/src/react/media/surfaceGesture.ts +1 -1
  538. package/src/react/media/types.ts +1 -1
  539. package/src/react/media/videoChapterEditor.css +1 -1
  540. package/src/react/media/videoChapters.spec.ts +1 -1
  541. package/src/react/media/videoChapters.ts +1 -1
  542. package/src/react/media/videoCutEditor.css +2 -2
  543. package/src/react/media/videoEnhance.spec.ts +1 -1
  544. package/src/react/media/videoEnhance.ts +2 -2
  545. package/src/react/media/videoPoster.spec.ts +3 -3
  546. package/src/react/media/videoPoster.ts +5 -5
  547. package/src/react/media/videoRegion.spec.ts +7 -7
  548. package/src/react/media/videoRegion.ts +8 -8
  549. package/src/react/media-gallery/GalleryTable.tsx +1 -1
  550. package/src/react/media-gallery/MediaGallery.spec.tsx +11 -11
  551. package/src/react/media-gallery/MediaGallery.tsx +23 -23
  552. package/src/react/media-gallery/MediaMetaEditor.tsx +1 -1
  553. package/src/react/media-gallery/galleryDeepLink.ts +2 -2
  554. package/src/react/media-gallery/galleryItemMedia.spec.tsx +1 -1
  555. package/src/react/media-gallery/galleryItemMedia.tsx +1 -1
  556. package/src/react/media-gallery/galleryReturn.ts +2 -2
  557. package/src/react/media-gallery/mediaGallery.css +10 -10
  558. package/src/react/media-gallery/mediaGalleryModel.ts +1 -1
  559. package/src/react/media-gallery/playbackPreferences.ts +3 -3
  560. package/src/react/media-gallery/playbackRun.spec.ts +1 -1
  561. package/src/react/media-gallery/playbackRun.ts +1 -1
  562. package/src/react/media-gallery/preferenceSync.ts +1 -1
  563. package/src/react/namespace/NamespaceTargetCapsule.tsx +1 -1
  564. package/src/react/nav/BreadcrumbTrail.tsx +1 -1
  565. package/src/react/nav/Breadcrumbs.tsx +1 -1
  566. package/src/react/nav/HeaderSearch.tsx +3 -3
  567. package/src/react/nav/PlaceBar.spec.tsx +4 -4
  568. package/src/react/nav/PlaceBar.tsx +4 -4
  569. package/src/react/nav/SearchResults.tsx +2 -2
  570. package/src/react/nav/TopBar.spec.tsx +1 -1
  571. package/src/react/nav/TopBar.tsx +1 -1
  572. package/src/react/nav/breadcrumbStore.ts +1 -1
  573. package/src/react/nav/breadcrumbSystem.spec.tsx +1 -1
  574. package/src/react/nav/navShared.tsx +1 -1
  575. package/src/react/palette/CommandPalette.spec.tsx +1 -1
  576. package/src/react/palette/CommandPalette.tsx +1 -1
  577. package/src/react/pdf-viewer/PdfPage.tsx +1 -1
  578. package/src/react/spreadsheet/SpreadsheetGrid.tsx +1 -1
  579. package/src/react/spreadsheet/useGlideTheme.ts +2 -2
  580. package/src/react/workbook-viewer/WorkbookViewer.tsx +1 -1
  581. package/src/shippedFilesAreTracked.spec.ts +2 -2
  582. package/src/styles-areas/notifications.css +1 -1
  583. package/src/styles-static.css +1 -1
  584. package/src/styles.css +1 -1
  585. package/src/stylesAreas.spec.ts +1 -1
  586. package/src/stylesStaticMatches.spec.ts +2 -2
  587. package/src/stylesUtilitiesMatches.spec.ts +4 -4
  588. package/src/testing/designAudit.ts +4 -4
  589. package/src/testing/phoneRules.spec.ts +1 -1
  590. package/src/testing/phoneRules.ts +7 -7
  591. package/src/theme.css +10 -10
  592. package/src/themeColorsResolve.spec.ts +5 -5
  593. package/src/themeDarkScopeAliases.spec.ts +1 -1
  594. package/src/verifyGraph.spec.ts +1 -1
@@ -9,7 +9,7 @@
9
9
  * ── Where it came from ──────────────────────────────────────────────────────────────────
10
10
  * Owner, 2026-09-08: *"the spreadsheet app has a much better file tree sidebar than
11
11
  * collections has. Add the file tree viewer from it into cb so apps like collections can
12
- * use it."* This is `cursed-embeddable-spreadsheet`'s `FileTree`, generalised: its workbook
12
+ * use it."* This is `cursed-embeddable-spreadsheet`'s `FileTree`, generalized: its workbook
13
13
  * /sheet/note vocabulary is gone, its manual sibling order became the opt-in
14
14
  * {@link FileTreeProps.allowReorder}, and everything that made it good — the gesture, the
15
15
  * spring-open, the typeahead, the in-place rename — is here unchanged.
@@ -17,11 +17,11 @@
17
17
  * ── 🔴 The graduation verdict, 2026-09-13: this one stays, and it grew ──────────────────
18
18
  * `cursedesk` has a `FileTree.tsx` of its own — the same ancestor, kept in step by hand ever
19
19
  * since. The pair was compared to decide which should be the shared one, and this is: it is
20
- * the app's tree with the workbook/sheet/note/merge vocabulary generalised away, and it has
20
+ * the app's tree with the workbook/sheet/note/merge vocabulary generalized away, and it has
21
21
  * external drags, `canDrop`, `acceptsDrop`, reordering, filtering, access marks, counts and
22
22
  * the three render slots, none of which the app's has.
23
23
  *
24
- * But the app's carried SIX behaviours this did not, every one of them general, and adopting
24
+ * But the app's carried SIX behaviors this did not, every one of them general, and adopting
25
25
  * this tree without them would have been a regression on a 200-row library rather than a
26
26
  * graduation. They are here now and each says so where it lives:
27
27
  *
@@ -309,7 +309,7 @@ export interface FileTreeProps {
309
309
  * folder the library is filtered by. Those are singular questions with singular answers,
310
310
  * and a tree that silently became multi-select would break "what am I looking at" in two
311
311
  * shipped apps on the day it published. So a consumer that passes neither this nor
312
- * {@link onSelectionChange} gets EXACTLY today's behaviour, byte for byte.
312
+ * {@link onSelectionChange} gets EXACTLY today's behavior, byte for byte.
313
313
  *
314
314
  * Omit it and the selection is `[selectedId]`, which is what makes ⌘-click work for a
315
315
  * consumer that stores only the one id and grows into the array afterwards.
@@ -348,7 +348,7 @@ export interface FileTreeProps {
348
348
  * persisted is still the collapse it persisted — on the next mount the tree reads it back
349
349
  * unchanged. Shutting one of them by hand drops it from the overlay and the persisted value
350
350
  * decides again; nothing about it is ever written out. That is the whole of the objection
351
- * limit 1 records, answered without giving up the behaviour he asked for.
351
+ * limit 1 records, answered without giving up the behavior he asked for.
352
352
  *
353
353
  * Off unless it is wired, like every other verb here: a consumer that passes nothing gets
354
354
  * byte for byte today's reveal.
@@ -407,7 +407,7 @@ export interface FileTreeProps {
407
407
  /**
408
408
  * What the pinned section is called — its heading, and its `aria-label`. Default `Pinned`.
409
409
  *
410
- * An app whose vocabulary differs ("Favourites", "Starred") passes its own, for the same
410
+ * An app whose vocabulary differs ("Favorites", "Starred") passes its own, for the same
411
411
  * reason {@link accessCopy} exists: the mechanism is general and the words are not.
412
412
  */
413
413
  pinnedLabel?: string;
@@ -497,7 +497,7 @@ export interface FileTreeProps {
497
497
  * delete all the selected files"*.
498
498
  *
499
499
  * Without it, ⌫ on a multi-selection deletes the focused row alone, which is today's
500
- * behaviour and a consumer that never asked for the plural keeps it. The nodes are handed
500
+ * behavior and a consumer that never asked for the plural keeps it. The nodes are handed
501
501
  * over rather than the ids, because a confirmation dialog needs their names.
502
502
  */
503
503
  onDeleteMany?: (nodes: readonly FileTreeNode[]) => void;
@@ -526,7 +526,7 @@ export interface FileTreeProps {
526
526
  *
527
527
  * 🔴 Nothing is created until the name is committed. A folder made first and renamed
528
528
  * afterwards is a row that spent a moment called "untitled", and a row in the way if the
529
- * field is cancelled.
529
+ * field is canceled.
530
530
  *
531
531
  * `wrap` is the same draft asked to close AROUND rows that already exist — *"allow make
532
532
  * dir from file where dir wraps file location and gets name of file"*, which is Finder's
@@ -582,7 +582,7 @@ export interface FileTreeProps {
582
582
  *
583
583
  * 🔴 A tree whose folders are DERIVED has nothing to wrap with. `apps/music` builds a
584
584
  * folder out of the `folder` column of the tracks inside it, so there is no folder for this
585
- * gesture to make — and offering a name field that cannot be honoured is the "control that
585
+ * gesture to make — and offering a name field that cannot be honored is the "control that
586
586
  * fails on commit" this component refuses everywhere else. See `refuseWrap`.
587
587
  *
588
588
  * A row the consumer marked `draggable: false` is refused without asking, because wrapping
@@ -760,7 +760,7 @@ function DefaultIcon({ node, open }: { node: FileTreeNode; open: boolean }): Rea
760
760
  /**
761
761
  * A row's name, with {@link FileTreeProps.subtitle}'s muted second line under it when it has one.
762
762
  * The two stack in one column so every mark after the name (lock, count, tools) stays on the
763
- * row's centre line, and each line truncates on its own.
763
+ * row's center line, and each line truncates on its own.
764
764
  */
765
765
  function withSubtitle(name: ReactNode, subtitle: string | undefined): ReactNode {
766
766
  if (!subtitle) return name;
@@ -918,7 +918,7 @@ export function FileTree({
918
918
  * Swallow the `click` a finished drag leaves behind.
919
919
  *
920
920
  * 🔴 A pointerdown and a pointerup on the same row still produce a click even when the
921
- * pointer travelled the length of the list in between — and with `setPointerCapture` the
921
+ * pointer traveled the length of the list in between — and with `setPointerCapture` the
922
922
  * click is delivered to the row the gesture STARTED on whatever it ended over. So without
923
923
  * this, dropping a row into a folder also selects the row that was dropped, which in a
924
924
  * consumer that navigates on select means the drag takes you somewhere. The drag is the
@@ -930,7 +930,7 @@ export function FileTree({
930
930
  *
931
931
  * 🔴 A shift-click deliberately does not move it. That is what lets a second shift-click
932
932
  * re-cover the range from the same start instead of growing it one row at a time, which is
933
- * the behaviour every file explorer has and the reason the anchor is not just "the last
933
+ * the behavior every file explorer has and the reason the anchor is not just "the last
934
934
  * thing selected".
935
935
  */
936
936
  const anchor = useRef<string | null>(null);
@@ -1162,7 +1162,7 @@ export function FileTree({
1162
1162
  * one and the consumer wired the plural verb, and `node` alone otherwise.
1163
1163
  *
1164
1164
  * 🔴 `batched` is the whole compatibility story in one argument. Every plural callback is
1165
- * optional, so a consumer that wired only the singular one keeps the singular behaviour on
1165
+ * optional, so a consumer that wired only the singular one keeps the singular behavior on
1166
1166
  * every gesture — the tree never invents a batch nobody can receive.
1167
1167
  */
1168
1168
  const actOn = useCallback(
@@ -1367,7 +1367,7 @@ export function FileTree({
1367
1367
  }, [revealShut, onRevealExpand]);
1368
1368
  /** The selection an expanding reveal has already fired for — see limit 1 below. */
1369
1369
  const revealedFor = useRef<string | null | undefined>(null);
1370
- /** The {@link FileTreeProps.revealKey} last honoured — a change re-arms `revealedFor`. */
1370
+ /** The {@link FileTreeProps.revealKey} last honored — a change re-arms `revealedFor`. */
1371
1371
  const revealedKey = useRef(revealKey);
1372
1372
 
1373
1373
  /**
@@ -1388,12 +1388,12 @@ export function FileTree({
1388
1388
  *
1389
1389
  * 🔴 **The argument, and what changed about it, 2026-09-16.** This limit was written as
1390
1390
  * a flat refusal: auto-expanding is what `explorer.autoReveal` does and it is the
1391
- * behaviour people turn off, because it silently undoes a collapse they chose — and
1391
+ * behavior people turn off, because it silently undoes a collapse they chose — and
1392
1392
  * `collapsed` here is often a CONTROLLED value the consumer persists, so expanding would
1393
1393
  * write it open for good. Then the owner asked for it BY NAME — *"show that file in the
1394
1394
  * file tree by like vscode does when you select a tab with a file in it"* — and named the
1395
1395
  * application whose default is `true`. His ask wins over the default this file chose for
1396
- * him, so the behaviour is here.
1396
+ * him, so the behavior is here.
1397
1397
  *
1398
1398
  * What survives is the half of the objection that was never taste: **the persisted value
1399
1399
  * is not rewritten.** The expansion goes into `revealOpened`, an overlay of this tree's
@@ -1522,8 +1522,8 @@ export function FileTree({
1522
1522
  (commit: boolean, state: DragState | null) => {
1523
1523
  stopAutoScroll();
1524
1524
  stopSpring();
1525
- // Whatever happens next, a gesture that actually travelled owes the row a swallowed
1526
- // click — see `draggedJustNow`. Set for a cancelled drag too: the click arrives either
1525
+ // Whatever happens next, a gesture that actually traveled owes the row a swallowed
1526
+ // click — see `draggedJustNow`. Set for a canceled drag too: the click arrives either
1527
1527
  // way, and Escape landing you on a different row would be its own surprise.
1528
1528
  if (state?.active) draggedJustNow.current = true;
1529
1529
  if (commit && state?.active && state.outside) {
@@ -1948,7 +1948,7 @@ export function FileTree({
1948
1948
  event: React.KeyboardEvent<HTMLElement>,
1949
1949
  row: FileTreeRow,
1950
1950
  /*
1951
- * The rows the ARROWS walk, and which section drew this one. A pinned copy's neighbours
1951
+ * The rows the ARROWS walk, and which section drew this one. A pinned copy's neighbors
1952
1952
  * are the other pins, not the tree rows around where it lives — ↓ from the last pin
1953
1953
  * jumping into the middle of a folder would be a cursor that teleports. Every verb below
1954
1954
  * still acts on `row.node`, which is the one identity both copies share.
@@ -2355,7 +2355,7 @@ export function FileTree({
2355
2355
  * Files on the clipboard, or text that is not the rows' names, mean something was copied
2356
2356
  * after the rows: the rows are put down and the event goes on untouched, to whatever the
2357
2357
  * consumer does with a paste (desk files a screenshot into the folder). The names still
2358
- * there mean the rows ARE the newest copy, and they are pasted — the event cancelled and
2358
+ * there mean the rows ARE the newest copy, and they are pasted — the event canceled and
2359
2359
  * stopped, so nothing above pastes the same keypress a second time.
2360
2360
  */
2361
2361
  const onPaste = useCallback(
@@ -2539,7 +2539,7 @@ export function FileTree({
2539
2539
  wrapping?.name ?? '',
2540
2540
  (value) => commitDraft(value),
2541
2541
  () => onDraftCancel?.(),
2542
- // A suggested name that comes back unchanged is the person AGREEING with it. Cancelling
2542
+ // A suggested name that comes back unchanged is the person AGREEING with it. Canceling
2543
2543
  // there would make Enter mean "no" on the one field where it obviously means "yes".
2544
2544
  wrapping ? 'commit' : 'cancel',
2545
2545
  wrapping ? undefined : draftPlaceholder,
@@ -3288,7 +3288,7 @@ export function FileTree({
3288
3288
  * 🔴 Asked on the ROW rather than answered by handlers on the shelf. A container with an
3289
3289
  * `onClick` that only calls `stopPropagation` is a static element the a11y rules correctly
3290
3290
  * refuse — it looks interactive, announces nothing, and has no keyboard equivalent. The row
3291
- * bailing is the same behaviour said once, in the place that actually has the rule: a press
3291
+ * bailing is the same behavior said once, in the place that actually has the rule: a press
3292
3292
  * on a tool must not select the row or start a drag.
3293
3293
  */
3294
3294
  function inTools(event: { target: EventTarget | null; currentTarget: EventTarget | null }): boolean {
@@ -7,7 +7,7 @@
7
7
  *
8
8
  * The arithmetic is `folderView.ts`, the storage is `useFolderView.ts`, and `FileTree.tsx`
9
9
  * decides when each of these opens. Kept out of that file because it is already the largest
10
- * in the package, and because none of this is part of the drag gesture it is organised around.
10
+ * in the package, and because none of this is part of the drag gesture it is organized around.
11
11
  *
12
12
  * ── What was copied, and from whom ──────────────────────────────────────────────────────
13
13
  *
@@ -21,7 +21,7 @@
21
21
  * using it, never in a separate "manage tags" screen, and stops existing when no folder
22
22
  * carries it — so there is nothing to tidy.
23
23
  * · **Filter by tag** → Linear's and Gmail's *is* / *is not*, as two quiet toggles per tag
24
- * ("Only", "Hide"), labelled **This device** because that is the one thing about it a
24
+ * ("Only", "Hide"), labeled **This device** because that is the one thing about it a
25
25
  * person could not guess.
26
26
  * · **The strip** → Linear's filter bar: when the tree is narrowed, the tree SAYS so, with
27
27
  * a one-click way back. A folder missing on one machine and present on another is
@@ -204,7 +204,7 @@ export function withFolderItems(
204
204
  ];
205
205
  }
206
206
 
207
- /** The colour mark for one tag. */
207
+ /** The color mark for one tag. */
208
208
  export function TagDot({ tag, ...rest }: { tag: string }): ReactNode {
209
209
  return <span {...rest} className='cbft-tagdot' data-hue={tagHue(tag)} aria-hidden='true' />;
210
210
  }
@@ -246,7 +246,7 @@ function TagFilter({ view }: { view: FolderView }): ReactNode {
246
246
  <span className='cbft-fv-count'>{count}</span>
247
247
  {/* A 2-segment toggle in a 28px menu row, styled by `.cbft-fv-seg` — the tree
248
248
  ships plain CSS (see fileTree.css's header), so the button is the belt's
249
- UNSTYLED one: its behaviour and hint, none of a 36px control's look. */}
249
+ UNSTYLED one: its behavior and hint, none of a 36px control's look. */}
250
250
  <fieldset className='cbft-fv-seg' aria-label={`Filter by ${tag}`}>
251
251
  <UnstyledButton
252
252
  tooltip={`Show only folders tagged ${tag} (and those with any other “Only” tag)`}
@@ -23,7 +23,7 @@
23
23
  * copied rather than approximated, because "densely packed" is a measurement and an
24
24
  * approximation of it is just a different tree.
25
25
  *
26
- * 22px is also VS Code's explorer row, which is what the whole sidebar is modelled on.
26
+ * 22px is also VS Code's explorer row, which is what the whole sidebar is modeled on.
27
27
  * It was 30 here, and 8px per row over forty rows is a third of a screenful.
28
28
  *
29
29
  * 🔴 `--cbft-indent` and `--cbft-guide-offset` MOVE TOGETHER: the guide is drawn down the
@@ -78,7 +78,7 @@
78
78
  * Owner, 2026-09-10: *"use thinner fonts and less bright font in dark mode. It looks too
79
79
  * glaring."* `--foreground` is `#f9fafb` in dark — near-white, correct for a heading and
80
80
  * far too loud for forty rows of it down a sidebar. VS Code's dark themes all land near
81
- * `#cccccc` for exactly this surface, and the mix below is that colour derived from the
81
+ * `#cccccc` for exactly this surface, and the mix below is that color derived from the
82
82
  * theme rather than pinned to a literal, so a re-themed app keeps its own hue.
83
83
  */
84
84
  --cbft-fg: var(--foreground);
@@ -99,7 +99,7 @@
99
99
  /*
100
100
  * The other half of "thinner". On a dark ground macOS's default stem-darkening renders
101
101
  * 13px type visibly heavier than the same weight on white, which is the *glare* he is
102
- * reading as brightness — dimming the colour alone leaves the letterforms fat. This is
102
+ * reading as brightness — dimming the color alone leaves the letterforms fat. This is
103
103
  * the one lever that thins them, and it is scoped to dark because on a light ground it
104
104
  * would make the same text too faint.
105
105
  */
@@ -401,7 +401,7 @@
401
401
  * It should look like vscode looks instead."*
402
402
  *
403
403
  * It was a 16% accent wash plus a 2px accent bar down the leading edge: two cues, both
404
- * coloured, on a row that is already the only one carrying them. In a sidebar that is mostly
404
+ * colored, on a row that is already the only one carrying them. In a sidebar that is mostly
405
405
  * rows, the eye reads that as an alert rather than as a cursor.
406
406
  *
407
407
  * VS Code's reading, which is what he asked for and what `cursed-embeddable-spreadsheet` does:
@@ -427,7 +427,7 @@
427
427
  * BETWEEN the root and the selection are weighted a step, and the shut folder actually
428
428
  * holding it takes a mark of its own.
429
429
  *
430
- * Weight rather than colour for the ancestors: they are context, and three tinted rows down a
430
+ * Weight rather than color for the ancestors: they are context, and three tinted rows down a
431
431
  * sidebar would compete with the one neutral fill that says *this is where you are*. 550 is
432
432
  * `file-tree-geometry`'s `maxWeight` — the ceiling the "use thinner fonts" note put on this
433
433
  * tree, and the reason this is not 600.
@@ -586,7 +586,7 @@
586
586
 
587
587
  The row's height is NOT a function of this — it is pinned to `--cbft-glyph` by
588
588
  fleet/standards/file-tree-geometry.json's `row === glyph + pad * 2`, so a thumbnail can
589
- never make one row taller than its neighbours. */
589
+ never make one row taller than its neighbors. */
590
590
  .cbft-thumb {
591
591
  flex: 0 0 var(--cbft-glyph);
592
592
  inline-size: var(--cbft-glyph);
@@ -757,7 +757,7 @@
757
757
  *
758
758
  * It is the only thing on the row in the folder that says *"this is also at the top"*, and a
759
759
  * state mark that is invisible until hovered is a state nobody can scan for — the same
760
- * failure the shelf's 40% floor exists to prevent, one step further. The colour is the
760
+ * failure the shelf's 40% floor exists to prevent, one step further. The color is the
761
761
  * accent, which is this tree's one strong mark and correct here for the same reason it is
762
762
  * correct on the focus ring: it answers a different question from "where am I".
763
763
  */
@@ -771,7 +771,7 @@
771
771
 
772
772
  /*
773
773
  * Filled, not outlined — the one-glance difference between pinned and pinnable, and the half
774
- * of it that survives for anyone who cannot see the colour change at all.
774
+ * of it that survives for anyone who cannot see the color change at all.
775
775
  *
776
776
  * 🔴 On the `<svg>` itself, not inherited from the button. The element carries `fill="none"`
777
777
  * as a presentation attribute, and a presentation attribute on an element beats a value
@@ -919,7 +919,7 @@
919
919
  *
920
920
  * Quiet rather than loud, and it has to be both: loud enough to find on one row in thirty,
921
921
  * quiet enough that three of them down a sidebar are not what the eye lands on first. 11px of
922
- * emoji at 75% opacity is about where the grey row text sits.
922
+ * emoji at 75% opacity is about where the gray row text sits.
923
923
  *
924
924
  * 🔴 `margin-inline-start: auto` pushes it to the row's END, so it does not move with the name's
925
925
  * length and does not displace the count or the tool shelf beside it. `flex: none` so a long
@@ -954,7 +954,7 @@
954
954
  /*
955
955
  * Two parts, not one string: what is held, and where it is going. The destination is drawn a
956
956
  * step quieter because the name is what identifies the chip and the destination is what you
957
- * are checking — and because a refusal takes the same slot, where the colour below is what
957
+ * are checking — and because a refusal takes the same slot, where the color below is what
958
958
  * carries the "no".
959
959
  */
960
960
  .cbft-chip-name {
@@ -988,7 +988,7 @@
988
988
  background: var(--surface-raised, var(--card));
989
989
  color: var(--foreground);
990
990
  font-size: 0.75rem;
991
- /* A cast shadow, not a surface colour: it has to darken whatever is behind the chip, and
991
+ /* A cast shadow, not a surface color: it has to darken whatever is behind the chip, and
992
992
  the chip is over arbitrary app chrome in both themes. A token here would tint a shadow.
993
993
  guardrails-ignore no-hardcoded-colors: see above. */
994
994
  box-shadow: 0 8px 24px -12px rgb(0 0 0 / 0.45);
@@ -1056,9 +1056,9 @@
1056
1056
  }
1057
1057
 
1058
1058
  /*
1059
- * Tag dots — Finder's: a few coloured dots after the name, one per tag, the rest in the
1060
- * hover. The colour is the tag's NAME hashed onto the theme's chart palette (`tagHue`), so the
1061
- * same tag is the same colour everywhere without anyone choosing or storing a colour.
1059
+ * Tag dots — Finder's: a few colored dots after the name, one per tag, the rest in the
1060
+ * hover. The color is the tag's NAME hashed onto the theme's chart palette (`tagHue`), so the
1061
+ * same tag is the same color everywhere without anyone choosing or storing a color.
1062
1062
  */
1063
1063
  .cbft-tagdots {
1064
1064
  flex: none;
@@ -5,7 +5,7 @@
5
5
  * Owner, 2026-09-10: *"We have two sidenav components now. I need updates and we need them
6
6
  * in two places because of the copying."* The two are this one and
7
7
  * `cursed-embeddable-spreadsheet`'s, and they cannot be merged into one — the two ship as
8
- * separate published packages, and cb's tree is a deliberate generalisation that has fewer
8
+ * separate published packages, and cb's tree is a deliberate generalization that has fewer
9
9
  * features than ces's, not the same ones. The full reasoning is in the spec file this reads.
10
10
  *
11
11
  * So the design is shared and the code is not, and this is the seam that keeps the design
@@ -154,15 +154,15 @@ describe('the file tree geometry', () => {
154
154
  });
155
155
 
156
156
  /*
157
- * ── The shared BEHAVIOUR, not just the numbers ────────────────────────────────────────
157
+ * ── The shared BEHAVIOR, not just the numbers ────────────────────────────────────────
158
158
  *
159
159
  * 🔴 Each of these asserts the shared file's claim against THIS tree's implementation,
160
160
  * never against itself. A test that read `true` out of the JSON and then asserted `true`
161
161
  * would pass on a tree that does neither thing — it would gate nothing while looking
162
- * exactly like a gate. So the flag is the CONDITION and the behaviour is the assertion:
162
+ * exactly like a gate. So the flag is the CONDITION and the behavior is the assertion:
163
163
  * flip the flag in the design file and this suite reds until the code here follows it.
164
164
  */
165
- it('declares every behaviour flag this suite asserts against', () => {
165
+ it('declares every behavior flag this suite asserts against', () => {
166
166
  // The fixture is the CONDITION for the two tests below, so a missing key would turn
167
167
  // each of them into a silent pass — the exact failure mode that vendoring it fixed.
168
168
  expect(Object.keys(DESIGN.behaviour).sort()).toEqual(
@@ -182,7 +182,7 @@ describe('the file tree geometry', () => {
182
182
  // · one glyph box, never a second track — the box is `--cbft-glyph` wide either way;
183
183
  // · the row height does not move — `.cbft-thumb` declares no height of its own beyond it;
184
184
  // · it crops rather than letterboxes, which is what makes 16px legible at all.
185
- // The fallback-once rule is DOM behaviour and is pinned in `FileTree.spec.tsx`.
185
+ // The fallback-once rule is DOM behavior and is pinned in `FileTree.spec.tsx`.
186
186
  expect(CSS.includes('.cbft-thumb')).toBe(declared.value);
187
187
  const thumb = CSS.slice(CSS.indexOf('.cbft-thumb {'));
188
188
  expect(thumb).toContain('inline-size: var(--cbft-glyph);');
@@ -28,8 +28,8 @@
28
28
  * `src/noPathDeps.spec.ts`, so the model's other half would have to be published there first
29
29
  * and picked up here by a version bump — two packages, two publishes, for one feature.
30
30
  *
31
- * So the SPLIT the model half exists for is honoured exactly (no DOM, unit-tested, the drop
32
- * rules reachable without a renderer) and the package boundary is honoured too. Everything
31
+ * So the SPLIT the model half exists for is honored exactly (no DOM, unit-tested, the drop
32
+ * rules reachable without a renderer) and the package boundary is honored too. Everything
33
33
  * here is built out of `fileTreeModel`'s own primitives rather than re-deriving them, so
34
34
  * there is one definition of "legal drop" and this composes it N times.
35
35
  */
@@ -133,7 +133,7 @@ export interface ResolveMultiDropOptions extends Omit<ResolveDropOptions, 'dragI
133
133
  * The first refusal's WORDS are what comes back, so the chip says which rule was broken
134
134
  * rather than "some of these cannot go there".
135
135
  *
136
- * Every per-row rule is therefore honoured N times over, out of one definition: the
136
+ * Every per-row rule is therefore honored N times over, out of one definition: the
137
137
  * descendant rule (a folder cannot go inside itself, and now also cannot go inside a folder
138
138
  * being dragged beside it), `acceptsDrop`, and the consumer's `canDrop` — which is called
139
139
  * once per dragged id, so a veto that depends on WHICH row is moving still gets asked about
@@ -301,7 +301,7 @@ export function nodesByIds(
301
301
  return out;
302
302
  }
303
303
 
304
- /** `findFileTreeNode` without the full depth-first materialisation it does per call. */
304
+ /** `findFileTreeNode` without the full depth-first materialization it does per call. */
305
305
  function nodeById(nodes: readonly FileTreeNode[], id: string): FileTreeNode | null {
306
306
  for (const node of nodes) {
307
307
  if (node.id === id) return node;
@@ -189,7 +189,7 @@ describe('tags', () => {
189
189
  expect(tagCounts(marks).some((t) => t.tag === 'code')).toBe(false);
190
190
  });
191
191
 
192
- test('a tag is always the same colour, and always one of the palette', () => {
192
+ test('a tag is always the same color, and always one of the palette', () => {
193
193
  expect(tagHue('home')).toBe(tagHue('home'));
194
194
  for (const tag of ['home', 'work', 'code', 'dynatrace', 'x'])
195
195
  expect(tagHue(tag)).toBeLessThan(TAG_HUES);
@@ -229,12 +229,12 @@ export function tagCounts(marks: FolderMarks): TagCount[] {
229
229
  .sort((a, b) => b.count - a.count || a.tag.localeCompare(b.tag));
230
230
  }
231
231
 
232
- /** How many colours a tag dot can be — `--cbft-tag-0` … `--cbft-tag-7` in fileTree.css. */
232
+ /** How many colors a tag dot can be — `--cbft-tag-0` … `--cbft-tag-7` in fileTree.css. */
233
233
  export const TAG_HUES = 8;
234
234
 
235
235
  /**
236
- * A tag's colour slot, from its name — the same tag is the same colour in every app, on every
237
- * device, without a colour having to be chosen or stored. FNV-1a, because it is four lines and
236
+ * A tag's color slot, from its name — the same tag is the same color in every app, on every
237
+ * device, without a color having to be chosen or stored. FNV-1a, because it is four lines and
238
238
  * spreads short words well.
239
239
  */
240
240
  export function tagHue(tag: string): number {
@@ -67,7 +67,7 @@ describe('FilterRail — the three-state affordance', () => {
67
67
  const { container } = renderRail();
68
68
  const active = container.querySelector('[data-cb-rail-row="active"]') as HTMLElement;
69
69
  expect(active.className).toContain('bg-card-overlay');
70
- // The second, non-colour channel. `inset` box-shadow rather than a border so the row's
70
+ // The second, non-color channel. `inset` box-shadow rather than a border so the row's
71
71
  // box does not change size between states and the list cannot twitch under the pointer.
72
72
  expect(active.className).toContain('inset_3px_0_0_0');
73
73
  });
@@ -46,7 +46,7 @@ export interface FilterRailItem {
46
46
  * Omit on a row that simply selects.
47
47
  */
48
48
  pressed?: boolean;
49
- /** The host's own tone for this row — a tag's colour. Painted over the row's resting state. */
49
+ /** The host's own tone for this row — a tag's color. Painted over the row's resting state. */
50
50
  style?: CSSProperties;
51
51
  /**
52
52
  * Per-row controls — a rename pencil, a privacy padlock, a delete.
@@ -72,7 +72,7 @@ export interface FilterRailItem {
72
72
  *
73
73
  * Put real buttons in here — an {@link IconButton} is the right one, and the shelf gives
74
74
  * every button inside it the 44px coarse-pointer floor (DESIGN.md §5) whatever it is.
75
- * The rail gives them their visibility, not their behaviour.
75
+ * The rail gives them their visibility, not their behavior.
76
76
  */
77
77
  tools?: ReactNode;
78
78
  /**
@@ -240,7 +240,7 @@ export interface FilterRailProps {
240
240
  * *"The sidebar looks especially poor as it's hard to tell what is hovered and clickable
241
241
  * as I move over it."* A single background step is not enough — `raised` and `overlay`
242
242
  * are deliberately one step apart, which is right for a card on a page and far too quiet
243
- * for a list you are sweeping a pointer down. So SELECTED gets a **second, non-colour
243
+ * for a list you are sweeping a pointer down. So SELECTED gets a **second, non-color
244
244
  * channel**: an accent rail down its inside edge, painted with `box-shadow: inset` rather
245
245
  * than a border so the row's box does not change size between states (a 3px border on
246
246
  * selection shifts every label 3px and the list appears to twitch under the pointer).
@@ -454,7 +454,7 @@ function FilterRailRow({
454
454
  const title = item.title ?? (typeof item.label === 'string' ? item.label : undefined);
455
455
 
456
456
  return (
457
- // biome-ignore lint/a11y/noStaticElementInteractions: a drop target is a POINTER gesture with no keyboard equivalent, and everything a drop does here is also reachable from the row's own `tools` — so there is no behaviour to mirror onto a key handler, and giving this wrapper a role would announce a second control a keyboard user can never operate.
457
+ // biome-ignore lint/a11y/noStaticElementInteractions: a drop target is a POINTER gesture with no keyboard equivalent, and everything a drop does here is also reachable from the row's own `tools` — so there is no behavior to mirror onto a key handler, and giving this wrapper a role would announce a second control a keyboard user can never operate.
458
458
  <div
459
459
  // `group/rail-row` is what the tools hang their reveal off; see `FilterRailItem.tools`.
460
460
  // A drag is a POINTER gesture with no keyboard equivalent, and everything a drop does
@@ -13,7 +13,7 @@ const COLOURS = (
13
13
  // guardrails-ignore no-raw-action-button: spec fixture, not a real control
14
14
  type='button'
15
15
  >
16
- Colours
16
+ Colors
17
17
  </button>
18
18
  );
19
19
 
@@ -40,7 +40,7 @@ describe('RailSection', () => {
40
40
  </RailSection>,
41
41
  );
42
42
  expect(toggle('Tags').textContent).toBe('Tags');
43
- fireEvent.click(screen.getByRole('button', { name: 'Colours' }));
43
+ fireEvent.click(screen.getByRole('button', { name: 'Colors' }));
44
44
  expect(toggle('Tags').getAttribute('aria-expanded')).toBe('true');
45
45
  });
46
46
 
@@ -17,7 +17,7 @@ import { RAW_BUTTON } from '../lib/cn.js';
17
17
  * So a sidebar section is one shape everywhere, and this is it: a small-caps heading that is
18
18
  * ITSELF the toggle (a chevron in front, `aria-expanded` on the button), an `action` slot beside
19
19
  * it for the section's own controls — an ⓘ, a 🎨, a "+" — and the body. `FilterRail` draws its
20
- * labelled sections with it (`FilterRailSection.collapsible`), and a hand-built rail that cannot
20
+ * labeled sections with it (`FilterRailSection.collapsible`), and a hand-built rail that cannot
21
21
  * be a `FilterRail` (music's, whose rows are drop targets and toggles) mounts it directly.
22
22
  *
23
23
  * ── Remembered, and remembered on the SERVER when the app wants it ──────────────────────────
@@ -121,7 +121,7 @@ export function useRailResize<E extends HTMLElement = HTMLElement>({
121
121
  }
122
122
 
123
123
  /**
124
- * The handle itself — a 12px hotspot centred on the rail's right border. The RAIL must be
124
+ * The handle itself — a 12px hotspot centered on the rail's right border. The RAIL must be
125
125
  * `position: relative` (the handle is absolutely positioned against it). Renders nothing while
126
126
  * the resize is inactive.
127
127
  *
@@ -9,7 +9,7 @@
9
9
  * the theme classes, no `<ol>`/`<li>` semantics, no `aria-current`, and a
10
10
  * `truncate` with nothing behind it. That was the fleet's THIRD breadcrumb
11
11
  * implementation, and the reason "fix the breadcrumb" had to be done three
12
- * times. It now normalises its path into {@link BreadcrumbTrailNode}s and hands
12
+ * times. It now normalizes its path into {@link BreadcrumbTrailNode}s and hands
13
13
  * them to {@link BreadcrumbTrail}, so notes, vault and `FolderPicker` inherit
14
14
  * the overflow engine, the truncation tooltips and the 12px gap for free.
15
15
  *
@@ -21,7 +21,7 @@
21
21
  * would otherwise re-type: the affordance, the inline field, the name rules
22
22
  * (`isValidFolderName`, so an illegal name is refused BEFORE a round trip and
23
23
  * says why), the duplicate check against the siblings that already exist, and
24
- * the Enter/Escape behaviour.
24
+ * the Enter/Escape behavior.
25
25
  *
26
26
  * ── Name collisions are refused HERE, not by the server ────────────────────
27
27
  * Folder identity is case-insensitive in this model ("Work" and "work" are one
@@ -93,7 +93,7 @@ describe('announcements', () => {
93
93
  'Dropped Card A, position 3 of 3.',
94
94
  );
95
95
  expect(cancelAnnouncement({ label: 'Card A' })).toBe(
96
- 'Movement cancelled. Card A returned to its starting position.',
96
+ 'Movement canceled. Card A returned to its starting position.',
97
97
  );
98
98
  });
99
99
 
@@ -121,9 +121,9 @@ export function dropAnnouncement(c: DragAnnouncementContext): string {
121
121
  return `Dropped ${c.label}${positionSuffix(c)}.`;
122
122
  }
123
123
 
124
- /** "Movement cancelled. X returned to its starting position." */
124
+ /** "Movement canceled. X returned to its starting position." */
125
125
  export function cancelAnnouncement(c: DragAnnouncementContext): string {
126
- return `Movement cancelled. ${c.label} returned to its starting position.`;
126
+ return `Movement canceled. ${c.label} returned to its starting position.`;
127
127
  }
128
128
 
129
129
  // --- Hooks -------------------------------------------------------------------------
@@ -182,8 +182,8 @@ describe('createTouchDragSession', () => {
182
182
  const h = harness();
183
183
  h.session.pointerDown({ x: 0, y: 0 });
184
184
  h.session.pointerMove({ x: 0, y: 40 });
185
- expect(h.isScheduled()).toBe(false); // pending activation was cancelled
186
- h.fireLongPress(); // firing a cancelled timer is a no-op
185
+ expect(h.isScheduled()).toBe(false); // pending activation was canceled
186
+ h.fireLongPress(); // firing a canceled timer is a no-op
187
187
  expect(h.session.isActive()).toBe(false);
188
188
  expect(h.events).toHaveLength(0);
189
189
  });
@@ -273,7 +273,7 @@ describe('wireTouchDragSource (DOM glue)', () => {
273
273
  expect(touchMove()).toBe(false); // still waiting: the browser may scroll
274
274
  expect(menu()).toBe(true); // the long press is ours, not Android's menu
275
275
  await Bun.sleep(20);
276
- expect(touchMove()).toBe(true); // the drag is live: the pan is cancelled
276
+ expect(touchMove()).toBe(true); // the drag is live: the pan is canceled
277
277
  cleanup();
278
278
  expect(touchMove()).toBe(false);
279
279
  element.remove();
@@ -171,7 +171,7 @@ export interface TouchDragSessionConfig {
171
171
  onEnd: () => void;
172
172
  delayMs: number;
173
173
  tolerancePx: number;
174
- /** Schedule activation after `delayMs`; returns a canceller. Injected for tests. */
174
+ /** Schedule activation after `delayMs`; returns a canceler. Injected for tests. */
175
175
  schedule: (callback: () => void, ms: number) => () => void;
176
176
  }
177
177
 
@@ -332,7 +332,7 @@ function elementsFromPointSafe(x: number, y: number): Element[] {
332
332
  * `@dnd-kit`'s TouchSensor does it. This used to set `touch-action: none` on the element, and
333
333
  * on a phone a board whose columns are full of cards could not be swiped or scrolled from any
334
334
  * card (forge task 3033, seen on vault-stage at 390). While a press is in flight the
335
- * long-press `contextmenu` (Android's menu) is cancelled too.
335
+ * long-press `contextmenu` (Android's menu) is canceled too.
336
336
  *
337
337
  * The `pointerdown` listener lives on the element; the `pointermove`/`up`/`cancel`/
338
338
  * `keydown` listeners are only attached on the `window` for the life of one interaction
@@ -21,7 +21,7 @@ function B(props: ButtonHTMLAttributes<HTMLButtonElement> & { ref?: Ref<HTMLButt
21
21
  /**
22
22
  * The shape music's folder tree has (2026-09-27): a panel that is always rendered and only
23
23
  * becomes an overlay when a toggle says so — so it cannot be a Popover, and needs the same
24
- * tap-away behaviour anyway.
24
+ * tap-away behavior anyway.
25
25
  */
26
26
  function Panel({ modal = false, onRow = () => {} }: { modal?: boolean; onRow?: () => void }) {
27
27
  const [open, setOpen] = useState(false);
@@ -9,13 +9,13 @@ import { useCallback, useEffect, useRef } from 'react';
9
9
  * leaks (capture releases on up/cancel, and unmount cleans up mid-drag).
10
10
  * - `onMove` receives the cumulative delta from the drag origin plus the raw
11
11
  * event (for modifier keys); `onEnd` fires exactly once with the final delta
12
- * and whether the drag was cancelled (Escape).
12
+ * and whether the drag was canceled (Escape).
13
13
  * - Returns the props to spread on the handle element.
14
14
  *
15
15
  * ```tsx
16
16
  * const trim = usePointerDrag({
17
17
  * onMove: ({ dx }) => preview(pxToSeconds(dx, zoom)),
18
- * onEnd: ({ dx, cancelled }) => (cancelled ? preview(0) : commit(pxToSeconds(dx, zoom))),
18
+ * onEnd: ({ dx, canceled }) => (canceled ? preview(0) : commit(pxToSeconds(dx, zoom))),
19
19
  * });
20
20
  * <div {...trim.handleProps} className='… cursor-ew-resize' />
21
21
  * ```