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
@@ -576,7 +576,7 @@ export interface DataTableProps<TRow extends Record<string, unknown>> {
576
576
  * date created."* Clicking a column already in the stack cycles it
577
577
  * ascending → descending → out, without disturbing the others.
578
578
  *
579
- * Default `true`. `false` restores the old one-key-at-a-time behaviour.
579
+ * Default `true`. `false` restores the old one-key-at-a-time behavior.
580
580
  */
581
581
  multiSort?: boolean;
582
582
  /**
@@ -803,7 +803,7 @@ export function declaredTrackFloor(
803
803
  * What one header click does to the sort STACK.
804
804
  *
805
805
  * 🔴 The new key goes to the FRONT, and that is the whole feature. The owner
806
- * described the behaviour by its result — *"I sort by date created, then sort by
806
+ * described the behavior by its result — *"I sort by date created, then sort by
807
807
  * artist and I get a list ordered by artist with their tracks still sorted by
808
808
  * date created"* — which is a stack in click order where the LATEST click is the
809
809
  * primary key and everything clicked before it survives as a tie-breaker.
@@ -846,7 +846,7 @@ export function nextSortStack(
846
846
  }
847
847
 
848
848
  /**
849
- * Read a `ColDef.key` off a row, honouring the dot-notation `ColDef` documents.
849
+ * Read a `ColDef.key` off a row, honoring the dot-notation `ColDef` documents.
850
850
  * TanStack's own `accessorKey` does this for the cells; the filter builder runs
851
851
  * BEFORE TanStack (see `filteredData`) and so needs the same reading, or a
852
852
  * nested column would filter on `undefined` and match nothing.
@@ -874,13 +874,13 @@ function readPath(row: unknown, key: string): unknown {
874
874
  * too, so a collapsed cell reads as nothing, not as a value nobody can see.)
875
875
  *
876
876
  * 🔴 `invisible` too: `[&>*]` reaches child ELEMENTS only, and a `render` that returns a bare
877
- * string is a text node — it overflowed the zero-wide cell and printed across its neighbour at
877
+ * string is a text node — it overflowed the zero-wide cell and printed across its neighbor at
878
878
  * phone width (desk's folder list, forge task 2762). Hidden visibility hides the text and takes
879
879
  * it out of the accessibility tree, without touching the column's box.
880
880
  *
881
881
  * 🔴 And a font size of zero: hidden text still LAYS OUT, and a table's auto layout hands each
882
882
  * column a share of the spare width by its content's width — so a collapsed column whose cells
883
- * are bare strings ("3m 16s") stood 45px wide and blank between its neighbours (station's Insights
883
+ * are bare strings ("3m 16s") stood 45px wide and blank between its neighbors (station's Insights
884
884
  * kinds table at 1440, forge task 2975). Text at size zero has no width, and the column is 0px.
885
885
  */
886
886
  const HIDE_BELOW_CLASS = {
@@ -1315,13 +1315,13 @@ export function DataTable<TRow extends Record<string, unknown>>({
1315
1315
  columns: tsColumns,
1316
1316
  getRowId: resolvedGetRowId,
1317
1317
  state: { sorting, columnFilters, globalFilter: search, columnVisibility, pagination },
1318
- // Through `applySorting`, like every other write — so a controlled `sorting` is honoured
1318
+ // Through `applySorting`, like every other write — so a controlled `sorting` is honored
1319
1319
  // whether TanStack or a header asked for the change.
1320
1320
  onSortingChange: (updater) =>
1321
1321
  applySorting((prev) => (typeof updater === 'function' ? updater(prev) : updater)),
1322
1322
  onColumnFiltersChange: chainUpdaterResettingPage(setColumnFilters, setPagination, onColumnFiltersChange),
1323
1323
  // TanStack hands the updater whatever `state.globalFilter` is, which is now
1324
- // a TableSearchState; the toolbar sets TEXT, so normalise both shapes.
1324
+ // a TableSearchState; the toolbar sets TEXT, so normalize both shapes.
1325
1325
  onGlobalFilterChange: (updater) => {
1326
1326
  const next = typeof updater === 'function' ? updater(search) : updater;
1327
1327
  const text = typeof next === 'string' ? next : ((next as TableSearchState | undefined)?.text ?? '');
@@ -1333,7 +1333,7 @@ export function DataTable<TRow extends Record<string, unknown>>({
1333
1333
  // `String(new Date())` / `String(['rock','80s'])` are not the text the
1334
1334
  // reader can see in the cell — a date column answered nothing at all for a
1335
1335
  // typed year, which is the owner's own *"'199' in the date created"* case.
1336
- // `filterableText` is the SAME normalisation the filter builder uses, so a
1336
+ // `filterableText` is the SAME normalization the filter builder uses, so a
1337
1337
  // search and a `contains` condition on one column agree by construction
1338
1338
  // rather than by two implementations happening to match.
1339
1339
  globalFilterFn: (row, columnId, value) => {
@@ -1346,7 +1346,7 @@ export function DataTable<TRow extends Record<string, unknown>>({
1346
1346
  return filterableText(row.getValue(columnId)).toLowerCase().includes(text.toLowerCase());
1347
1347
  },
1348
1348
  // A server window is server-ordered and server-filtered by construction: a WINDOW
1349
- // re-sorted locally would put row 4,000's neighbours next to row 12's.
1349
+ // re-sorted locally would put row 4,000's neighbors next to row 12's.
1350
1350
  manualSorting: serverSide || !!serverWindow,
1351
1351
  manualFiltering: serverSide || !!serverWindow,
1352
1352
  manualPagination: serverSide,
@@ -2138,7 +2138,7 @@ export function DataTable<TRow extends Record<string, unknown>>({
2138
2138
  </div>
2139
2139
  )}
2140
2140
  {/* The totals row's narrow form: the cards and the list have no column to sit a total
2141
- under, so each footer reads as a labelled figure under the last row. */}
2141
+ under, so each footer reads as a labeled figure under the last row. */}
2142
2142
  {mobileCards && footerHeaders ? (
2143
2143
  <dl data-cb-table-footer-summary='' className='m-0 mt-3 flex flex-wrap gap-x-6 gap-y-1 border-t-2 border-border pt-2 text-sm @3xl:hidden'>
2144
2144
  {footerHeaders
@@ -106,11 +106,11 @@ export function SearchBox({
106
106
  // h-9 matches the search input beside it on a mouse; the floor only applies
107
107
  // to a finger (DESIGN.md §5), and e2e/touch-targets.spec.ts measures it.
108
108
  // RAW_BUTTON then `border-solid`: without preflight a `border` width is drawn in the UA's
109
- // `outset` style, and an unfilled trigger must not read as a disabled grey box (task 2749).
109
+ // `outset` style, and an unfilled trigger must not read as a disabled gray box (task 2749).
110
110
  RAW_BUTTON,
111
111
  'inline-flex h-9 shrink-0 items-center gap-1 rounded-md border border-solid border-border px-2 text-caption transition-colors pointer-coarse:h-11',
112
112
  'hover:bg-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',
113
- // Narrowed scope reads as ACTIVE state, not as another grey
113
+ // Narrowed scope reads as ACTIVE state, not as another gray
114
114
  // control — the whole point is that it cannot hide.
115
115
  isAll ? 'text-muted-foreground' : 'border-accent/60 bg-accent/10 text-foreground',
116
116
  )}
@@ -144,7 +144,7 @@ export function SortHeader<TRow>({
144
144
  // button reset lands `text-transform: none` on this element, and
145
145
  // text-transform does not inherit past a value that is explicitly set. So
146
146
  // every SORTABLE header in every cursedbelt table has been rendering
147
- // "Heartbeat" beside a non-sortable neighbour's "WORKER" — measured
147
+ // "Heartbeat" beside a non-sortable neighbor's "WORKER" — measured
148
148
  // computed styles on orch's Fleet tab, 2026-08-12: `th` uppercase,
149
149
  // `button` none. Letter-spacing does inherit (0.55px on both), so only
150
150
  // the case needs restating.
@@ -60,7 +60,7 @@ const OP_OPTIONS = (Object.keys(FILTER_OP_LABELS) as FilterOp[]).map((op) => ({
60
60
  * the exact `FilterNode` its API consumes so what is built is what the server
61
61
  * filters and exports by.
62
62
  *
63
- * Neither is the other generalised. Collapsing them would mean either giving a
63
+ * Neither is the other generalized. Collapsing them would mean either giving a
64
64
  * table toolbar a regex field and a three-deep nesting rule, or taking typed
65
65
  * operators away from a filter the server evaluates — so they stay two, and
66
66
  * this one says which it is. See {@link FilterQuery} for the shape it edits;
@@ -73,7 +73,7 @@ describe('DataTable row selection', () => {
73
73
  expect(container.querySelectorAll('tbody tr')[0]?.querySelectorAll('td').length).toBe(COLUMNS.length);
74
74
  });
75
75
 
76
- test('selection on: a leading checkbox column in the grid, one labelled box per row', () => {
76
+ test('selection on: a leading checkbox column in the grid, one labeled box per row', () => {
77
77
  const { container } = render(<Harness />);
78
78
  const ths = container.querySelectorAll('thead th');
79
79
  expect(ths.length).toBe(COLUMNS.length + 1);
@@ -41,7 +41,7 @@ const table = (props: Partial<React.ComponentProps<typeof DataTable<Row>>> = {})
41
41
  const bodyRows = () => [...document.querySelectorAll('tbody tr')];
42
42
 
43
43
  describe('virtualize', () => {
44
- test('🔴 OFF by default, and off means byte-identical behaviour', () => {
44
+ test('🔴 OFF by default, and off means byte-identical behavior', () => {
45
45
  // Every existing consumer must keep paginating exactly as it did — the pager is
46
46
  // the visible proof that nothing about the default path moved.
47
47
  table();
@@ -159,7 +159,7 @@ function MenuSections({ items }: { items: readonly DropdownMenuItem[] }) {
159
159
  const sections = useMemo(() => arrangeMenuItems(items), [items]);
160
160
  /*
161
161
  * One row that can be checked gives every row of this menu the check column, as a native menu
162
- * does: otherwise the toggles' icons sit 24px right of their neighbours' (the player's ⋯, forge
162
+ * does: otherwise the toggles' icons sit 24px right of their neighbors' (the player's ⋯, forge
163
163
  * task 2568). A submenu is its own menu and decides for itself.
164
164
  */
165
165
  const inset = items.some((item) => !item.divider && item.checked !== undefined);
@@ -112,7 +112,7 @@ export type FieldProps = FieldBaseProps &
112
112
  *
113
113
  * Why it is not cosmetic: a `<label>` binds to ONE control, and pointing it at a wrapper
114
114
  * binds it to nothing. Measured in desk (2026-09): a caption welded onto the first chip of a
115
- * group announced that chip as "Items are Prod" — the caption plus its neighbour — and a
115
+ * group announced that chip as "Items are Prod" — the caption plus its neighbor — and a
116
116
  * click on the description pressed it. Inside a `role="group"` both go away.
117
117
  */
118
118
  group: true;
@@ -37,7 +37,7 @@ export interface FormPreviewLayoutProps {
37
37
  * (col-span-7) and an interactive … preview window (col-span-5). This handles the wide layout
38
38
  * beautifully without leaving empty dead space on the right."* And for a phone: *"the live
39
39
  * preview panel moves … to a sticky floating bar at the very top … This allows users to watch
40
- * the card's accent colour and label adjust in real-time as they scroll."*
40
+ * the card's accent color and label adjust in real-time as they scroll."*
41
41
  *
42
42
  * - **Wide** (its container ≥ 52rem): twelve columns, the form on seven, the preview on five
43
43
  * and sticky at the top of its column; `below` spans all twelve underneath.
@@ -72,7 +72,7 @@ describe('heatScaleFrom — the baseline is the data’s own', () => {
72
72
  });
73
73
 
74
74
  describe('the tones', () => {
75
- test('only the two bands that mean trouble colour a tile; the rest stay quiet', () => {
75
+ test('only the two bands that mean trouble color a tile; the rest stay quiet', () => {
76
76
  expect(heatTileTone('critical')).toBe('danger');
77
77
  expect(heatTileTone('high')).toBe('warning');
78
78
  expect(heatTileTone('notice')).toBeUndefined();
@@ -16,8 +16,8 @@ import type { StatTileTone } from './StatTile.js';
16
16
  * Heat answers "how does this row compare to the OTHERS" — a column of costs, token counts or
17
17
  * error rates, each scored against the column's baseline (its median by default, or a limit the
18
18
  * caller names). Five bands, never a continuous gradient: a gradient makes every cell a slightly
19
- * different colour and nothing stands out, which is the opposite of the ask. The bands ride the
20
- * status tokens (FND-10, colour means status), so they re-theme and clear 4.5:1 in both modes:
19
+ * different color and nothing stands out, which is the opposite of the ask. The bands ride the
20
+ * status tokens (FND-10, color means status), so they re-theme and clear 4.5:1 in both modes:
21
21
  *
22
22
  * good well under the baseline success tint
23
23
  * ok about the baseline no tint — the quiet default
@@ -26,13 +26,13 @@ import type { StatTileTone } from './StatTile.js';
26
26
  * critical far over destructive tint
27
27
  *
28
28
  * The number stays the signal: the tint is added to it, never substituted for it, and the band's
29
- * word rides along for assistive tech (`sr-only`), so colour is never the only channel (FND-9).
29
+ * word rides along for assistive tech (`sr-only`), so color is never the only channel (FND-9).
30
30
  *
31
31
  * ── Where it goes ───────────────────────────────────────────────────────────
32
32
  * A `DataTable` column through {@link heatColumn}; any number through {@link HeatCell}; a tile's
33
- * tone through {@link heatTileTone}; a bar's colour through {@link heatChartTone} and `BarChart`'s
33
+ * tone through {@link heatTileTone}; a bar's color through {@link heatChartTone} and `BarChart`'s
34
34
  * `colorBy`. One scale per column — two columns scored against each other's baselines would make
35
- * the same number two colours.
35
+ * the same number two colors.
36
36
  */
37
37
  export type HeatBand = 'good' | 'ok' | 'notice' | 'high' | 'critical';
38
38
 
@@ -59,7 +59,7 @@ export const RELATIVE_STEPS: HeatSteps = { good: 0.5, notice: 1.25, high: 1.75,
59
59
 
60
60
  /**
61
61
  * Scoring against a LIMIT (`baseline` is the allowance): the same 85% / 95% turns as
62
- * {@link ThresholdMeter}, so a quota reads the same colour as a number and as a bar.
62
+ * {@link ThresholdMeter}, so a quota reads the same color as a number and as a bar.
63
63
  */
64
64
  export const LIMIT_STEPS: HeatSteps = { good: 0.5, notice: 0.7, high: 0.85, critical: 0.95 };
65
65
 
@@ -36,7 +36,7 @@ describe('searchIcons', () => {
36
36
  });
37
37
 
38
38
  describe('iconDataUrl', () => {
39
- test('draws in the colour given, and only a hex or a name is spliced in', () => {
39
+ test('draws in the color given, and only a hex or a name is spliced in', () => {
40
40
  const icon = { body: '<path fill="currentColor"/>', width: 24, height: 24 };
41
41
  expect(decodeURIComponent(iconDataUrl(icon, 'orange'))).toContain('color="orange"');
42
42
  const hostile = decodeURIComponent(iconDataUrl(icon, '"><script>x</script>'));
@@ -12,7 +12,7 @@ import './editorPage.css';
12
12
  export interface PickedIcon {
13
13
  /** Iconify's name, `set:icon` — `lucide:code`, `simple-icons:kubernetes`. */
14
14
  name: string;
15
- /** The SVG's inner markup, every colour `currentColor`. */
15
+ /** The SVG's inner markup, every color `currentColor`. */
16
16
  body: string;
17
17
  width: number;
18
18
  height: number;
@@ -24,9 +24,9 @@ export interface IconSet {
24
24
  }
25
25
 
26
26
  /**
27
- * The sets searched, all single-colour (they tint): the general-purpose four, and Simple Icons
28
- * for the brands a runbook names — Kubernetes, Datadog, GitHub. Multi-colour logo sets are left
29
- * out because a colour of the owner's choosing is the point of the mark.
27
+ * The sets searched, all single-color (they tint): the general-purpose four, and Simple Icons
28
+ * for the brands a runbook names — Kubernetes, Datadog, GitHub. Multi-color logo sets are left
29
+ * out because a color of the owner's choosing is the point of the mark.
30
30
  */
31
31
  export const ICON_SETS: readonly IconSet[] = [
32
32
  { prefix: 'lucide', label: 'Lucide' },
@@ -38,13 +38,13 @@ export const ICON_SETS: readonly IconSet[] = [
38
38
 
39
39
  export const ICONIFY_API = 'https://api.iconify.design';
40
40
  const RESULTS = 96;
41
- /** A hex, or a named colour — nothing that could close the attribute it is spliced into. */
41
+ /** A hex, or a named color — nothing that could close the attribute it is spliced into. */
42
42
  const SAFE_COLOR = /^(?:#[0-9a-f]{3,8}|[a-z]+)$/i;
43
43
 
44
44
  /**
45
45
  * A picked icon as an `<img>` source, in `color`. An image rather than inline SVG on purpose: a
46
46
  * stored body is drawn wherever the record goes, and an SVG inside an `<img>` cannot run script
47
- * or reach the page, whatever the stored markup says. `color` must be a hex or a colour's name —
47
+ * or reach the page, whatever the stored markup says. `color` must be a hex or a color's name —
48
48
  * anything else is left out, and the icon draws in the SVG's default black.
49
49
  */
50
50
  export function iconDataUrl(icon: Pick<PickedIcon, 'body' | 'width' | 'height'>, color: string): string {
@@ -109,8 +109,8 @@ export interface IconPickerProps {
109
109
  value?: string | null;
110
110
  onPick: (icon: PickedIcon) => void;
111
111
  /**
112
- * The colour the results are drawn in — the mark's own, so the choice is made in it. A hex
113
- * or a colour's name: the hits are images, which cannot inherit the page's `currentColor`.
112
+ * The color the results are drawn in — the mark's own, so the choice is made in it. A hex
113
+ * or a color's name: the hits are images, which cannot inherit the page's `currentColor`.
114
114
  */
115
115
  color: string;
116
116
  /**
@@ -127,7 +127,7 @@ export interface IconPickerProps {
127
127
 
128
128
  /**
129
129
  * Search big icon sets and pick one: a search field, a row of sets, and a grid of hits drawn in
130
- * the mark's own colour.
130
+ * the mark's own color.
131
131
  *
132
132
  * The owner, 2026-10-05: *"For the mark I want a way to search in icon lists to choose a good
133
133
  * icon … if I make a code snippet template I want to be able to pick an icon instead of letters
@@ -7,7 +7,7 @@ import { InfoHint } from './InfoHint.js';
7
7
  afterEach(cleanup);
8
8
 
9
9
  /**
10
- * A BYTE contract as much as a behavioural one: `InfoHint` is rendered by every field
10
+ * A BYTE contract as much as a behavioral one: `InfoHint` is rendered by every field
11
11
  * primitive that carries a long hint, so it must not carry `@floating-ui/react` with it — that
12
12
  * engine arrives as its own chunk (`InfoHintImpl`). 5.40.0's SliderField imported it statically
13
13
  * and roms' controls chunk grew 14.68 → 25.24 kB gzip (forge task 2518).
@@ -20,7 +20,7 @@ describe('InfoHint (lazy)', () => {
20
20
  expect(src).toContain("import('./InfoHintImpl.js')");
21
21
  });
22
22
 
23
- test('the trigger draws its own ground, so a host without preflight shows no grey button box', () => {
23
+ test('the trigger draws its own ground, so a host without preflight shows no gray button box', () => {
24
24
  // A raw <button>: without `border-0`/`bg-transparent` the browser's default chrome shows in
25
25
  // desk, which loads no preflight (forge task 2752).
26
26
  const { getByLabelText } = render(<InfoHint>Frames per tick</InfoHint>);
@@ -27,7 +27,7 @@ if (typeof window !== 'undefined') void preloadInfoHint();
27
27
 
28
28
  /**
29
29
  * "ⓘ" field-help: hover + focus on pointer devices, click/tap everywhere, the panel portaled
30
- * and never clipped (the behaviour is `InfoHintImpl.tsx`).
30
+ * and never clipped (the behavior is `InfoHintImpl.tsx`).
31
31
  *
32
32
  * ── Why this file is a wrapper and not the hint ─────────────────────────────
33
33
  * 🔴 The panel is built on `@floating-ui/react` (+ `tabbable`), ~10 KB gzip, and every field
@@ -45,7 +45,7 @@ export interface InheritBadgeProps {
45
45
  * 🔴 Corrected 2026-08-19 (unit 11). This map used to be `bg-transparent` + a
46
46
  * dashed border — i.e. exactly the "thin low-visibility unstyled outline"
47
47
  * `DESIGN.md` §3 forbids, and the contradiction `UX_STANDARDS.md` §0 records as
48
- * resolved in DESIGN.md's favour. Inherited and explicit still read apart, but as
48
+ * resolved in DESIGN.md's favor. Inherited and explicit still read apart, but as
49
49
  * TWO FILLED TONES: 8% fill + dashed edge vs. the standard 15% fill + solid edge,
50
50
  * with the glyph (◌ vs 📌) and the sr-only word carrying it a third and fourth
51
51
  * time. The text stays on the `-strong` step, which is the audited ≥4.5:1 one.
@@ -140,7 +140,7 @@ export function InheritBadge({
140
140
  // is what keeps this a real touch target, and forcing a size-5 square
141
141
  // would quietly delete that on every phone.
142
142
  // A DISABLED reset stays hidden until hover too: Button's `disabled:opacity-50`
143
- // out-ranked the reveal's `opacity-0`, so an in-flight row showed a grey reset
143
+ // out-ranked the reveal's `opacity-0`, so an in-flight row showed a gray reset
144
144
  // the others did not (forge task 2594).
145
145
  className={cn(
146
146
  '[&_svg]:size-3.5',
@@ -104,7 +104,7 @@ export function IsolatedFrame({
104
104
  const frame = (
105
105
  // No `bg-background` of its own: the iframe and the skeleton paint theirs, and a painted
106
106
  // wrapper squared off the host's rounded corners (forge task 2594). `flex-col` lets the
107
- // `fill` empty and error states actually centre.
107
+ // `fill` empty and error states actually center.
108
108
  <div className='relative flex h-full w-full flex-col'>
109
109
  {errorSlot ??
110
110
  (hasContent ? (
@@ -72,7 +72,7 @@ export interface ListToolbarProps {
72
72
  *
73
73
  * ── `flex-wrap`, and no `role='toolbar'` ──────────────────────────────────
74
74
  * Wrapping, not a grid and not a breakpoint swap: the console runs at 1440 on a desk
75
- * and 390 on a phone, and wrapping is the one behaviour that keeps DESIGN.md §5's 44px
75
+ * and 390 on a phone, and wrapping is the one behavior that keeps DESIGN.md §5's 44px
76
76
  * targets at both widths without a second layout. `ml-auto` on the right-hand cluster
77
77
  * keeps the controls right when everything fits on one line and lets them ride down as
78
78
  * a group when it does not.
@@ -75,7 +75,7 @@ export interface MenuItemProps {
75
75
  onSelect?: () => void;
76
76
  /** Drawn right-aligned and muted — `⌘D`, `Del`. */
77
77
  shortcut?: string;
78
- /** Destroys something: drawn in the destructive colour. */
78
+ /** Destroys something: drawn in the destructive color. */
79
79
  danger?: boolean;
80
80
  /** Momentarily inert. Use {@link MenuItemProps.unavailableReason} for "cannot work here". */
81
81
  disabled?: boolean;
@@ -42,14 +42,14 @@ function sizeClass(size: ModalSize): string {
42
42
  return SIZE[size];
43
43
  }
44
44
 
45
- /** Below `sm` (640px), where a centred card becomes a bottom sheet. */
45
+ /** Below `sm` (640px), where a centered card becomes a bottom sheet. */
46
46
  const PHONE_QUERY = '(max-width: 639px)';
47
47
 
48
48
  /**
49
- * 🔴 A phone gets a BOTTOM SHEET, not a centred card — the owner's cb-form review, 2026-09-30:
49
+ * 🔴 A phone gets a BOTTOM SHEET, not a centered card — the owner's cb-form review, 2026-09-30:
50
50
  * *"Instead of a centered floating rectangle with a dark backdrop mask, the entire interaction
51
51
  * behaves like a native iOS bottom drawer. It anchors to the bottom of the screen, sliding
52
- * upward to take up 90% or 100% of the viewport."* A centred card on a 390px screen is a
52
+ * upward to take up 90% or 100% of the viewport."* A centered card on a 390px screen is a
53
53
  * smaller screen inside the screen, with its Save button wherever the content left it; a sheet
54
54
  * puts the footer's actions where the thumb already is, and comes down with the same swipe
55
55
  * every native sheet does.
@@ -57,7 +57,7 @@ const PHONE_QUERY = '(max-width: 639px)';
57
57
  const SHEET =
58
58
  'max-sm:inset-x-0 max-sm:bottom-0 max-sm:w-full max-sm:max-w-none max-sm:max-h-[var(--sheet-h-phone)] max-sm:rounded-t-2xl max-sm:rounded-b-none max-sm:border-x-0 max-sm:border-b-0 max-sm:data-[state=open]:slide-in-from-bottom max-sm:data-[state=closed]:slide-out-to-bottom';
59
59
 
60
- /** From `sm` up: the centred card, capped to the viewport. It rises with every dialog
60
+ /** From `sm` up: the centered card, capped to the viewport. It rises with every dialog
61
61
  * (`DIALOG_MOTION`: 8px and 0.985); the phone's sheet above slides its whole height instead. */
62
62
  const CARD =
63
63
  'sm:top-1/2 sm:left-1/2 sm:w-[calc(100vw-2rem)] sm:-translate-x-1/2 sm:-translate-y-1/2 sm:rounded-xl sm:max-h-[min(90dvh,calc(100dvh-2rem))]';
@@ -201,7 +201,7 @@ export function Modal({
201
201
  <DialogContent
202
202
  data-cb-modal=''
203
203
  className={cn(
204
- // A bottom sheet on a phone, a centred card from `sm` up (see SHEET / CARD). The
204
+ // A bottom sheet on a phone, a centered card from `sm` up (see SHEET / CARD). The
205
205
  // card keeps a 1rem margin on each side at every size, then caps at the size's
206
206
  // max-width.
207
207
  'fixed flex flex-col gap-0 overflow-hidden',
@@ -6,7 +6,7 @@ import { PageContainer, PageHeader, ReadableColumn } from './Page.js';
6
6
  afterEach(cleanup);
7
7
 
8
8
  describe('ReadableColumn — DESIGN.md §1, prose is clamped to 750–850px', () => {
9
- test('it clamps to the reading-width token and centres', () => {
9
+ test('it clamps to the reading-width token and centers', () => {
10
10
  const { container } = render(<ReadableColumn>text</ReadableColumn>);
11
11
  const el = container.querySelector('[data-cb-readable]');
12
12
  expect(el?.className).toContain('max-w-[var(--reading-width)]');
@@ -82,7 +82,7 @@ export function PageContainer({ width = 'dashboard', className, ...p }: PageCont
82
82
  * intents and every chat surface ran their text edge to edge. `--reading-width`
83
83
  * (800px, the middle of the stated band) is the token; this is the component.
84
84
  *
85
- * It sets width and centring only: no background, no padding beyond the page
85
+ * It sets width and centering only: no background, no padding beyond the page
86
86
  * gutter, no scroll. A message list still owns its own `ScrollArea`.
87
87
  */
88
88
  export function ReadableColumn({ className, ...p }: HTMLAttributes<HTMLDivElement>) {
@@ -236,7 +236,7 @@ function PageSubtitle({ children, dense }: { children: ReactNode; dense: boolean
236
236
  {clipped ? (
237
237
  // One text line tall, whatever the trigger is: on a coarse pointer the ⓘ carries a 44px
238
238
  // TAP_TARGET, and as a flex child it grew the row 24px a frame AFTER first paint, so the
239
- // browser's scroll anchoring moved a restored Back by 24px (forge task 2717). Centred in
239
+ // browser's scroll anchoring moved a restored Back by 24px (forge task 2717). Centered in
240
240
  // a box this short it overflows evenly instead — the hit area stays 44px, the row 20px.
241
241
  <span data-cb-page-subtitle-hint='' className='inline-flex h-5 shrink-0 items-center'>
242
242
  <InfoHint label='The full description'>
@@ -14,7 +14,7 @@
14
14
  * 🔴 **The seam is keyboard-operable.** Arrow keys move it by 2%, Home/End take it to the bounds.
15
15
  *
16
16
  * 🔴 **The hit strip lives inside the seam's own track** — a real flex item, never a bar hung over
17
- * the boundary. An invisible strip centred on the seam sits over the first pixels of the pane beside
17
+ * the boundary. An invisible strip centered on the seam sits over the first pixels of the pane beside
18
18
  * it and swallows clicks nobody aimed at it (desk's file `21`, where a 44px hit area ate a fill
19
19
  * handle). So the track is a few pixels wide for the hand, painted the panes' own ground
20
20
  * (`--cb-panesplit-ground`) with the hairline drawn down its middle: to the eye, two panes and one
@@ -64,7 +64,7 @@ export interface PathTextProps {
64
64
  *
65
65
  * 🔴 It paints as a {@link CodeChip} since unit 11, which is `DESIGN.md` §3's
66
66
  * "monospace code block with a subtle background tint layer". The tint is what
67
- * makes a path read as a LITERAL rather than as prose that happens to be grey —
67
+ * makes a path read as a LITERAL rather than as prose that happens to be gray —
68
68
  * one token, one border, shared with every other inline literal in the fleet.
69
69
  */
70
70
  export function PathText({
@@ -92,7 +92,7 @@ describe('usePointerDrag', () => {
92
92
  expect(after.defaultPrevented).toBe(false);
93
93
  });
94
94
 
95
- test('Escape abandons a drag — cancelled, never dropped', () => {
95
+ test('Escape abandons a drag — canceled, never dropped', () => {
96
96
  const onDrop = mock();
97
97
  const onCancel = mock();
98
98
  render(<Harness onDrop={onDrop} onCancel={onCancel} />);
@@ -20,7 +20,7 @@ function B(props: ButtonHTMLAttributes<HTMLButtonElement> & { ref?: Ref<HTMLButt
20
20
  /**
21
21
  * Owner report, 2026-09-27, on an iPhone: menus that stayed open after tapping away (flix's
22
22
  * subtitle menu, music's folder menu). Each was a hand-rolled panel with no outside-press
23
- * handling. These pin the behaviour every app now gets from this one component.
23
+ * handling. These pin the behavior every app now gets from this one component.
24
24
  */
25
25
  function Harness({ modal = false }: { modal?: boolean }) {
26
26
  const [open, setOpen] = useState(false);
@@ -243,7 +243,7 @@ describe('full screen', () => {
243
243
  describe('an app-declared container', () => {
244
244
  /*
245
245
  * desk keeps its tokens on `.cs-root`, so a panel portalled to `body` draws with no
246
- * colours and no z-index. `FloatingContainer` names where the app's panels mount.
246
+ * colors and no z-index. `FloatingContainer` names where the app's panels mount.
247
247
  */
248
248
  test('the panel mounts in the container the app named, not in body', () => {
249
249
  const host = document.createElement('div');
@@ -55,7 +55,7 @@ export interface PopoverProps {
55
55
  className?: string;
56
56
  /**
57
57
  * Drop the belt's surface — border, background, shadow, padding, arrow — and keep only
58
- * the behaviour: positioning, collision flipping, and closing on a tap or click outside,
58
+ * the behavior: positioning, collision flipping, and closing on a tap or click outside,
59
59
  * on Escape and on focus leaving. For a panel that belongs to its own visual language
60
60
  * (a video player's controls over the picture); `className` then carries the look.
61
61
  */
@@ -70,7 +70,7 @@ export interface PropertyProps extends Omit<HTMLAttributes<HTMLDivElement>, "chi
70
70
  *
71
71
  * The row is a `display: contents` wrapper, so the label and value sit on the LIST's shared
72
72
  * tracks. Anything else given to it — a `className`, a `data-type`, a `data-tone` — lands on that
73
- * wrapper, which is what lets an app hang its own customising (a highlighted override, a row a
73
+ * wrapper, which is what lets an app hang its own customizing (a highlighted override, a row a
74
74
  * test finds by type, tools shown on `:hover`) off the row without hand-rolling one (desk, task
75
75
  * 2823: ten `<dl>`s whose rows each carried exactly that).
76
76
  */
@@ -91,14 +91,14 @@ function shortcutLabel(shortcut: string): string {
91
91
  * The owner, 2026-10-10, on vault's entry form: *"I saw we don't style the dropdowns and that
92
92
  * is a violation of our design requirements … cb should have components that handle this."*
93
93
  * Its Type, Folder and field-kind controls were {@link NativeSelect}s, whose list the OS
94
- * draws — on macOS a grey system menu no stylesheet reaches — beside a tree picker and a
94
+ * draws — on macOS a gray system menu no stylesheet reaches — beside a tree picker and a
95
95
  * chip input that each looked different again. Three controls for one job, one of them not
96
96
  * ours to style. This is the one control for "set a property of this record", drawn
97
97
  * entirely by the kit, searchable the moment the list is long enough to need it.
98
98
  *
99
99
  * ── Which control to reach for ──────────────────────────────────────────────────
100
100
  * - A property of the record being edited, in a header row → this.
101
- * - A labelled field in a form column → {@link SelectField} / {@link ComboboxField}.
101
+ * - A labeled field in a form column → {@link SelectField} / {@link ComboboxField}.
102
102
  * - Choose-and-act-now (File under…) → {@link ChoiceMenu}.
103
103
  */
104
104
  export function PropertyPicker(props: PropertyPickerProps) {
@@ -74,7 +74,7 @@ export function RatingField({
74
74
  onKeyDown={onKeyDown}
75
75
  className={cn(RAW_BUTTON,
76
76
  'inline-flex items-center justify-center rounded p-1 transition focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-field-ring/40 disabled:cursor-not-allowed',
77
- // DESIGN.md §5: a 28px star is a miss on a phone, and the neighbouring
77
+ // DESIGN.md §5: a 28px star is a miss on a phone, and the neighboring
78
78
  // star is a different rating.
79
79
  TAP_TARGET,
80
80
  filled ? 'text-warning' : 'text-muted-foreground hover:text-warning',
@@ -54,9 +54,9 @@ const DOT: Record<SaveState, string> = {
54
54
  * At rest (`idle`, `saved`) the dot says it on its own and the label is spoken, not drawn —
55
55
  * the owner: *"the green circle with a tooltip is fine so it doesn't have to take up space
56
56
  * with the word there"*. `Saving…`, `3 unsaved`, `Changed elsewhere` and `Save failed` are
57
- * each a state somebody has to act on, and a coloured dot is not a sentence, so those are
57
+ * each a state somebody has to act on, and a colored dot is not a sentence, so those are
58
58
  * drawn. 🔴 The resting label is `sr-only`, never deleted: whether work is written is
59
- * exactly what a screen reader user cannot infer from a colour.
59
+ * exactly what a screen reader user cannot infer from a color.
60
60
  *
61
61
  * `data-cb-save-indicator`, `data-state` and `data-saves` are stable test hooks.
62
62
  *
@@ -26,7 +26,7 @@ export interface SearchInputProps extends Omit<InputProps, 'value' | 'onChange'
26
26
  showSyntaxBadge?: boolean;
27
27
  /** Classes for the wrapper, which carries the width. */
28
28
  className?: string;
29
- /** Classes for the `<input>` itself — colours, radius, text size. */
29
+ /** Classes for the `<input>` itself — colors, radius, text size. */
30
30
  inputClassName?: string;
31
31
  /**
32
32
  * Draw a ✕ that empties the box (and keeps the caret in it) while there is text to clear.
@@ -96,7 +96,7 @@ export interface SecretInputProps extends StyleableProps<SecretInputSlot> {
96
96
  * `copyThenClear`, which WIPES the clipboard ~45s later — and because this
97
97
  * component owned the copy, the vault shipped two copy affordances side by
98
98
  * side: a text link that cleared, and this button, which left the password on
99
- * the clipboard for ever. A primitive whose behaviour an app cannot correct
99
+ * the clipboard for ever. A primitive whose behavior an app cannot correct
100
100
  * gets worked around, and the workaround is the bug.
101
101
  *
102
102
  * `onCopied` still fires afterwards, so a toast stays in one place.
@@ -13,7 +13,7 @@ export interface SectionProps extends Omit<HTMLAttributes<HTMLElement>, 'title'>
13
13
  /** Right-anchored section-level controls. */
14
14
  actions?: ReactNode;
15
15
  /**
16
- * `plain` (default) — a labelled band on the page background: its title sits
16
+ * `plain` (default) — a labeled band on the page background: its title sits
17
17
  * over a 1px hairline rule, and whitespace does the rest (LAY-5, task 2461 —
18
18
  * settings, forms and control panels read better cardless).
19
19
  * `card` — the same header/body in a bordered, tinted container. An explicit
@@ -21,7 +21,7 @@ function renderNav(value = 'general', onValueChange = mock((_id: string) => {}))
21
21
  }
22
22
 
23
23
  describe('SectionNav', () => {
24
- test('a labelled nav of list items carrying each section’s words', () => {
24
+ test('a labeled nav of list items carrying each section’s words', () => {
25
25
  const { getByRole, getAllByRole, button } = renderNav();
26
26
  expect(getByRole('navigation', { name: 'Settings' })).toBeTruthy();
27
27
  const words = getAllByRole('listitem').map((li) => li.textContent);
@@ -29,7 +29,7 @@ describe('SectionNav', () => {
29
29
  // No preflight in some hosts: the list resets its own bullets and indent.
30
30
  const list = getByRole('list').className.split(/\s+/);
31
31
  expect(list).toEqual(expect.arrayContaining(['list-none', 'm-0', 'p-0']));
32
- // …and each item its own ground, family and weight (no grey button box, no button font).
32
+ // …and each item its own ground, family and weight (no gray button box, no button font).
33
33
  const general = button('Fields').className.split(/\s+/);
34
34
  expect(general).toEqual(expect.arrayContaining(['border-0', 'bg-transparent', 'font-[inherit]', 'font-normal']));
35
35
  });
@@ -80,7 +80,7 @@ describe('SectionNav', () => {
80
80
  expect(document.activeElement).toBe(button('Billing'));
81
81
  });
82
82
 
83
- test('the marker’s words are in the item’s accessible name, never colour alone', () => {
83
+ test('the marker’s words are in the item’s accessible name, never color alone', () => {
84
84
  const { button } = renderNav();
85
85
  const notify = button('Notifications');
86
86
  expect(notify.textContent).toContain('Unsaved changes');