cursedbelt 5.40.0 → 5.45.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 (499) hide show
  1. package/dist/react/Toast.d.ts +12 -2
  2. package/dist/react/Toast.d.ts.map +1 -1
  3. package/dist/react/Toast.js +32 -3
  4. package/dist/react/Toast.js.map +1 -1
  5. package/dist/react/analytics/MetricDrilldown.js +1 -1
  6. package/dist/react/charts/AreaChart.d.ts.map +1 -1
  7. package/dist/react/charts/AreaChart.js +5 -5
  8. package/dist/react/charts/AreaChart.js.map +1 -1
  9. package/dist/react/charts/BarChart.d.ts.map +1 -1
  10. package/dist/react/charts/BarChart.js +3 -3
  11. package/dist/react/charts/BarChart.js.map +1 -1
  12. package/dist/react/charts/ChartCard.d.ts +53 -0
  13. package/dist/react/charts/ChartCard.d.ts.map +1 -0
  14. package/dist/react/charts/ChartCard.js +46 -0
  15. package/dist/react/charts/ChartCard.js.map +1 -0
  16. package/dist/react/charts/ChartFrame.d.ts +12 -5
  17. package/dist/react/charts/ChartFrame.d.ts.map +1 -1
  18. package/dist/react/charts/ChartFrame.js +12 -5
  19. package/dist/react/charts/ChartFrame.js.map +1 -1
  20. package/dist/react/charts/ChartLegend.js +1 -1
  21. package/dist/react/charts/ChartLegend.js.map +1 -1
  22. package/dist/react/charts/HeatmapChart.js +3 -3
  23. package/dist/react/charts/HeatmapChart.js.map +1 -1
  24. package/dist/react/charts/IntervalTimeline.js +1 -1
  25. package/dist/react/charts/IntervalTimeline.js.map +1 -1
  26. package/dist/react/charts/LineChart.d.ts.map +1 -1
  27. package/dist/react/charts/LineChart.js +3 -3
  28. package/dist/react/charts/LineChart.js.map +1 -1
  29. package/dist/react/charts/TimeSeriesChart.d.ts.map +1 -1
  30. package/dist/react/charts/TimeSeriesChart.js +6 -6
  31. package/dist/react/charts/TimeSeriesChart.js.map +1 -1
  32. package/dist/react/charts/chartBox.d.ts +46 -0
  33. package/dist/react/charts/chartBox.d.ts.map +1 -0
  34. package/dist/react/charts/chartBox.js +45 -0
  35. package/dist/react/charts/chartBox.js.map +1 -0
  36. package/dist/react/charts/index.d.ts +2 -0
  37. package/dist/react/charts/index.d.ts.map +1 -1
  38. package/dist/react/charts/index.js +2 -0
  39. package/dist/react/charts/index.js.map +1 -1
  40. package/dist/react/charts/shared.d.ts +13 -2
  41. package/dist/react/charts/shared.d.ts.map +1 -1
  42. package/dist/react/charts/shared.js +14 -3
  43. package/dist/react/charts/shared.js.map +1 -1
  44. package/dist/react/chat/Bubble.js +4 -4
  45. package/dist/react/chat/Bubble.js.map +1 -1
  46. package/dist/react/chat/MessageScroller.js +1 -1
  47. package/dist/react/chat/MessageScroller.js.map +1 -1
  48. package/dist/react/components/ActionBar.d.ts.map +1 -1
  49. package/dist/react/components/ActionBar.js +63 -1
  50. package/dist/react/components/ActionBar.js.map +1 -1
  51. package/dist/react/components/AddItemsMenu.js +1 -1
  52. package/dist/react/components/AddItemsMenu.js.map +1 -1
  53. package/dist/react/components/Alert.d.ts +16 -2
  54. package/dist/react/components/Alert.d.ts.map +1 -1
  55. package/dist/react/components/Alert.js +35 -2
  56. package/dist/react/components/Alert.js.map +1 -1
  57. package/dist/react/components/AppShell.d.ts +55 -33
  58. package/dist/react/components/AppShell.d.ts.map +1 -1
  59. package/dist/react/components/AppShell.js +121 -31
  60. package/dist/react/components/AppShell.js.map +1 -1
  61. package/dist/react/components/AsyncPanel.d.ts +21 -3
  62. package/dist/react/components/AsyncPanel.d.ts.map +1 -1
  63. package/dist/react/components/AsyncPanel.js +49 -5
  64. package/dist/react/components/AsyncPanel.js.map +1 -1
  65. package/dist/react/components/BannerLane.d.ts +32 -0
  66. package/dist/react/components/BannerLane.d.ts.map +1 -0
  67. package/dist/react/components/BannerLane.js +41 -0
  68. package/dist/react/components/BannerLane.js.map +1 -0
  69. package/dist/react/components/Button.d.ts.map +1 -1
  70. package/dist/react/components/Button.js +2 -1
  71. package/dist/react/components/Button.js.map +1 -1
  72. package/dist/react/components/ChipFilterStrip.js +1 -1
  73. package/dist/react/components/ChipFilterStrip.js.map +1 -1
  74. package/dist/react/components/ComboboxField.d.ts.map +1 -1
  75. package/dist/react/components/ComboboxField.js +14 -4
  76. package/dist/react/components/ComboboxField.js.map +1 -1
  77. package/dist/react/components/CommentThread.js +2 -2
  78. package/dist/react/components/CommentThread.js.map +1 -1
  79. package/dist/react/components/ConfirmDialog.js +1 -1
  80. package/dist/react/components/ConfirmDialog.js.map +1 -1
  81. package/dist/react/components/DataTable/DataTable.d.ts +18 -2
  82. package/dist/react/components/DataTable/DataTable.d.ts.map +1 -1
  83. package/dist/react/components/DataTable/DataTable.js +51 -12
  84. package/dist/react/components/DataTable/DataTable.js.map +1 -1
  85. package/dist/react/components/DataTable/Pagination.js +1 -1
  86. package/dist/react/components/DataTable/Pagination.js.map +1 -1
  87. package/dist/react/components/DataTable/RowActions.d.ts +7 -1
  88. package/dist/react/components/DataTable/RowActions.d.ts.map +1 -1
  89. package/dist/react/components/DataTable/RowActions.js +10 -3
  90. package/dist/react/components/DataTable/RowActions.js.map +1 -1
  91. package/dist/react/components/DataTable/TableFilterBuilder.js +1 -1
  92. package/dist/react/components/DataTable/TableFilterBuilder.js.map +1 -1
  93. package/dist/react/components/DataTable/cells/CodeCell.js +1 -1
  94. package/dist/react/components/DataTable/cells/CodeCell.js.map +1 -1
  95. package/dist/react/components/DataTable/cells/LinkCell.js +1 -1
  96. package/dist/react/components/DataTable/cells/LinkCell.js.map +1 -1
  97. package/dist/react/components/DataTable/index.d.ts +1 -1
  98. package/dist/react/components/DataTable/index.d.ts.map +1 -1
  99. package/dist/react/components/DataTable/index.js.map +1 -1
  100. package/dist/react/components/DataTable/types.d.ts +20 -0
  101. package/dist/react/components/DataTable/types.d.ts.map +1 -1
  102. package/dist/react/components/DataTable/types.js +22 -0
  103. package/dist/react/components/DataTable/types.js.map +1 -1
  104. package/dist/react/components/DateTimeField.d.ts.map +1 -1
  105. package/dist/react/components/DateTimeField.js +4 -1
  106. package/dist/react/components/DateTimeField.js.map +1 -1
  107. package/dist/react/components/DeleteButton.js +2 -0
  108. package/dist/react/components/DeleteButton.js.map +1 -1
  109. package/dist/react/components/Drawer.js +3 -3
  110. package/dist/react/components/Drawer.js.map +1 -1
  111. package/dist/react/components/DropdownMenu.d.ts +16 -0
  112. package/dist/react/components/DropdownMenu.d.ts.map +1 -1
  113. package/dist/react/components/DropdownMenu.js +22 -6
  114. package/dist/react/components/DropdownMenu.js.map +1 -1
  115. package/dist/react/components/EmptyState.d.ts +10 -2
  116. package/dist/react/components/EmptyState.d.ts.map +1 -1
  117. package/dist/react/components/EmptyState.js +10 -5
  118. package/dist/react/components/EmptyState.js.map +1 -1
  119. package/dist/react/components/EventTimeline.js +1 -1
  120. package/dist/react/components/EventTimeline.js.map +1 -1
  121. package/dist/react/components/FileDropZone.js +1 -1
  122. package/dist/react/components/FileDropZone.js.map +1 -1
  123. package/dist/react/components/Grid.d.ts +9 -1
  124. package/dist/react/components/Grid.d.ts.map +1 -1
  125. package/dist/react/components/Grid.js +20 -2
  126. package/dist/react/components/Grid.js.map +1 -1
  127. package/dist/react/components/Guide.d.ts +31 -0
  128. package/dist/react/components/Guide.d.ts.map +1 -0
  129. package/dist/react/components/Guide.js +18 -0
  130. package/dist/react/components/Guide.js.map +1 -0
  131. package/dist/react/components/InfoHintImpl.d.ts +0 -13
  132. package/dist/react/components/InfoHintImpl.d.ts.map +1 -1
  133. package/dist/react/components/InfoHintImpl.js +17 -1
  134. package/dist/react/components/InfoHintImpl.js.map +1 -1
  135. package/dist/react/components/InlineEditableText.js +1 -1
  136. package/dist/react/components/InlineEditableText.js.map +1 -1
  137. package/dist/react/components/IsolatedFrame.js +1 -1
  138. package/dist/react/components/IsolatedFrame.js.map +1 -1
  139. package/dist/react/components/ListToolbar.d.ts.map +1 -1
  140. package/dist/react/components/ListToolbar.js +2 -2
  141. package/dist/react/components/ListToolbar.js.map +1 -1
  142. package/dist/react/components/LogViewer.d.ts +26 -2
  143. package/dist/react/components/LogViewer.d.ts.map +1 -1
  144. package/dist/react/components/LogViewer.js +41 -26
  145. package/dist/react/components/LogViewer.js.map +1 -1
  146. package/dist/react/components/Modal.d.ts +5 -1
  147. package/dist/react/components/Modal.d.ts.map +1 -1
  148. package/dist/react/components/Modal.js +18 -8
  149. package/dist/react/components/Modal.js.map +1 -1
  150. package/dist/react/components/Page.d.ts +51 -7
  151. package/dist/react/components/Page.d.ts.map +1 -1
  152. package/dist/react/components/Page.js +53 -8
  153. package/dist/react/components/Page.js.map +1 -1
  154. package/dist/react/components/PageGuideButton.d.ts +11 -0
  155. package/dist/react/components/PageGuideButton.d.ts.map +1 -0
  156. package/dist/react/components/PageGuideButton.js +13 -0
  157. package/dist/react/components/PageGuideButton.js.map +1 -0
  158. package/dist/react/components/PanelSeparator.js +1 -1
  159. package/dist/react/components/PanelSeparator.js.map +1 -1
  160. package/dist/react/components/Popover.d.ts.map +1 -1
  161. package/dist/react/components/Popover.js +2 -1
  162. package/dist/react/components/Popover.js.map +1 -1
  163. package/dist/react/components/PromptDialog.js +1 -1
  164. package/dist/react/components/PromptDialog.js.map +1 -1
  165. package/dist/react/components/ScrollArea.d.ts +9 -1
  166. package/dist/react/components/ScrollArea.d.ts.map +1 -1
  167. package/dist/react/components/ScrollArea.js +9 -3
  168. package/dist/react/components/ScrollArea.js.map +1 -1
  169. package/dist/react/components/Section.d.ts +5 -2
  170. package/dist/react/components/Section.d.ts.map +1 -1
  171. package/dist/react/components/Section.js +5 -2
  172. package/dist/react/components/Section.js.map +1 -1
  173. package/dist/react/components/Skeleton.d.ts +19 -1
  174. package/dist/react/components/Skeleton.d.ts.map +1 -1
  175. package/dist/react/components/Skeleton.js +24 -2
  176. package/dist/react/components/Skeleton.js.map +1 -1
  177. package/dist/react/components/StatStrip.js +1 -1
  178. package/dist/react/components/StatStrip.js.map +1 -1
  179. package/dist/react/components/StatTile.d.ts +30 -3
  180. package/dist/react/components/StatTile.d.ts.map +1 -1
  181. package/dist/react/components/StatTile.js +35 -9
  182. package/dist/react/components/StatTile.js.map +1 -1
  183. package/dist/react/components/StatTileGrid.d.ts +10 -1
  184. package/dist/react/components/StatTileGrid.d.ts.map +1 -1
  185. package/dist/react/components/StatTileGrid.js +50 -33
  186. package/dist/react/components/StatTileGrid.js.map +1 -1
  187. package/dist/react/components/StatusPill.d.ts.map +1 -1
  188. package/dist/react/components/StatusPill.js +26 -1
  189. package/dist/react/components/StatusPill.js.map +1 -1
  190. package/dist/react/components/Surface.d.ts +1 -1
  191. package/dist/react/components/Surface.d.ts.map +1 -1
  192. package/dist/react/components/Surface.js +20 -11
  193. package/dist/react/components/Surface.js.map +1 -1
  194. package/dist/react/components/SwatchPicker.d.ts.map +1 -1
  195. package/dist/react/components/SwatchPicker.js +5 -1
  196. package/dist/react/components/SwatchPicker.js.map +1 -1
  197. package/dist/react/components/Switch.js +1 -1
  198. package/dist/react/components/Switch.js.map +1 -1
  199. package/dist/react/components/WidgetHeader.js +1 -1
  200. package/dist/react/components/WidgetHeader.js.map +1 -1
  201. package/dist/react/components/calendar/CalendarLegend.js +1 -1
  202. package/dist/react/components/calendar/CalendarLegend.js.map +1 -1
  203. package/dist/react/components/calendar/DayAgenda.js +1 -1
  204. package/dist/react/components/calendar/DayAgenda.js.map +1 -1
  205. package/dist/react/components/calendar/EventChip.js +1 -1
  206. package/dist/react/components/calendar/EventChip.js.map +1 -1
  207. package/dist/react/components/calendar/MonthGrid.js +1 -1
  208. package/dist/react/components/calendar/MonthGrid.js.map +1 -1
  209. package/dist/react/components/calendar/WeekView.js +2 -2
  210. package/dist/react/components/calendar/WeekView.js.map +1 -1
  211. package/dist/react/components/cardFrame.d.ts +16 -0
  212. package/dist/react/components/cardFrame.d.ts.map +1 -0
  213. package/dist/react/components/cardFrame.js +24 -0
  214. package/dist/react/components/cardFrame.js.map +1 -0
  215. package/dist/react/components/dialog.d.ts.map +1 -1
  216. package/dist/react/components/dialog.js +2 -1
  217. package/dist/react/components/dialog.js.map +1 -1
  218. package/dist/react/dashboard-grid/WidgetFrame.js +2 -2
  219. package/dist/react/dashboard-grid/WidgetFrame.js.map +1 -1
  220. package/dist/react/emoji/EmojiPicker.js +1 -1
  221. package/dist/react/emoji/EmojiPicker.js.map +1 -1
  222. package/dist/react/file-tree/FileTree.d.ts +8 -1
  223. package/dist/react/file-tree/FileTree.d.ts.map +1 -1
  224. package/dist/react/file-tree/FileTree.js +29 -4
  225. package/dist/react/file-tree/FileTree.js.map +1 -1
  226. package/dist/react/filter-rail/FilterRail.js +1 -1
  227. package/dist/react/filter-rail/FilterRail.js.map +1 -1
  228. package/dist/react/icons.js +1 -1
  229. package/dist/react/icons.js.map +1 -1
  230. package/dist/react/index.d.ts +8 -5
  231. package/dist/react/index.d.ts.map +1 -1
  232. package/dist/react/index.js +5 -2
  233. package/dist/react/index.js.map +1 -1
  234. package/dist/react/lib/menuSections.d.ts +8 -0
  235. package/dist/react/lib/menuSections.d.ts.map +1 -0
  236. package/dist/react/lib/menuSections.js +37 -0
  237. package/dist/react/lib/menuSections.js.map +1 -0
  238. package/dist/react/markdown/Markdown.js +2 -2
  239. package/dist/react/markdown/Markdown.js.map +1 -1
  240. package/dist/react/media/HoverScrubVideoThumb.js +1 -1
  241. package/dist/react/media/HoverScrubVideoThumb.js.map +1 -1
  242. package/dist/react/media/MaskPainter.js +1 -1
  243. package/dist/react/media/MediaUploadControl.js +1 -1
  244. package/dist/react/media/MediaUploadControl.js.map +1 -1
  245. package/dist/react/media/VideoTrimmer.js +1 -1
  246. package/dist/react/media/VideoTrimmer.js.map +1 -1
  247. package/dist/react/media/denseGallery.css +5 -1
  248. package/dist/react/namespace/NamespaceTargetCapsule.js +1 -1
  249. package/dist/react/namespace/NamespaceTargetCapsule.js.map +1 -1
  250. package/dist/react/nav/BreadcrumbTrail.js +1 -1
  251. package/dist/react/nav/BreadcrumbTrail.js.map +1 -1
  252. package/dist/react/nav/CommandBar.d.ts +7 -1
  253. package/dist/react/nav/CommandBar.d.ts.map +1 -1
  254. package/dist/react/nav/CommandBar.js +5 -3
  255. package/dist/react/nav/CommandBar.js.map +1 -1
  256. package/dist/react/nav/PlaceBar.d.ts.map +1 -1
  257. package/dist/react/nav/PlaceBar.js +7 -9
  258. package/dist/react/nav/PlaceBar.js.map +1 -1
  259. package/dist/react/nav/SideNav.d.ts +12 -2
  260. package/dist/react/nav/SideNav.d.ts.map +1 -1
  261. package/dist/react/nav/SideNav.js +42 -22
  262. package/dist/react/nav/SideNav.js.map +1 -1
  263. package/dist/react/nav/TopBar.d.ts +65 -31
  264. package/dist/react/nav/TopBar.d.ts.map +1 -1
  265. package/dist/react/nav/TopBar.js +59 -24
  266. package/dist/react/nav/TopBar.js.map +1 -1
  267. package/dist/react/nav/index.d.ts +1 -1
  268. package/dist/react/nav/index.d.ts.map +1 -1
  269. package/dist/react/nav/index.js +1 -1
  270. package/dist/react/nav/index.js.map +1 -1
  271. package/dist/react/nav/navShared.d.ts +10 -1
  272. package/dist/react/nav/navShared.d.ts.map +1 -1
  273. package/dist/react/nav/navShared.js +23 -0
  274. package/dist/react/nav/navShared.js.map +1 -1
  275. package/dist/react/notifications/NotificationFeed.js +2 -2
  276. package/dist/react/notifications/NotificationFeed.js.map +1 -1
  277. package/dist/react/palette/Command.d.ts.map +1 -1
  278. package/dist/react/palette/Command.js +1 -1
  279. package/dist/react/palette/Command.js.map +1 -1
  280. package/dist/react/palette/CommandPalette.d.ts +13 -1
  281. package/dist/react/palette/CommandPalette.d.ts.map +1 -1
  282. package/dist/react/palette/CommandPalette.js +44 -8
  283. package/dist/react/palette/CommandPalette.js.map +1 -1
  284. package/dist/react/palette/commandSources.d.ts +57 -0
  285. package/dist/react/palette/commandSources.d.ts.map +1 -0
  286. package/dist/react/palette/commandSources.js +129 -0
  287. package/dist/react/palette/commandSources.js.map +1 -0
  288. package/dist/react/palette/index.d.ts +1 -0
  289. package/dist/react/palette/index.d.ts.map +1 -1
  290. package/dist/react/palette/index.js +1 -0
  291. package/dist/react/palette/index.js.map +1 -1
  292. package/dist/react/rich-text/RichTextEditor.js +1 -1
  293. package/dist/react/rich-text/RichTextEditor.js.map +1 -1
  294. package/dist/react/rich-text/RichTextToolbar.js +1 -1
  295. package/dist/react/rich-text/RichTextToolbar.js.map +1 -1
  296. package/dist/scripts/guardrailsEnforce.d.ts.map +1 -1
  297. package/dist/styles-areas/analytics.css +16 -16
  298. package/dist/styles-areas/auth.css +3 -3
  299. package/dist/styles-areas/calendar.css +6 -6
  300. package/dist/styles-areas/chart-table.css +1 -1
  301. package/dist/styles-areas/charts.css +3 -3
  302. package/dist/styles-areas/chat.css +7 -6
  303. package/dist/styles-areas/companion-link.css +2 -2
  304. package/dist/styles-areas/core.css +98 -89
  305. package/dist/styles-areas/dashboard-grid.css +4 -4
  306. package/dist/styles-areas/data-table.css +16 -16
  307. package/dist/styles-areas/disk-usage.css +5 -5
  308. package/dist/styles-areas/emoji.css +2 -2
  309. package/dist/styles-areas/fields.css +13 -14
  310. package/dist/styles-areas/filter-rail.css +4 -4
  311. package/dist/styles-areas/folder-tree.css +3 -3
  312. package/dist/styles-areas/markdown.css +2 -1
  313. package/dist/styles-areas/master-detail.css +3 -3
  314. package/dist/styles-areas/media-gallery.css +8 -8
  315. package/dist/styles-areas/media.css +12 -13
  316. package/dist/styles-areas/nav.css +28 -14
  317. package/dist/styles-areas/notifications.css +4 -4
  318. package/dist/styles-areas/overlays.css +4 -4
  319. package/dist/styles-areas/palette.css +4 -3
  320. package/dist/styles-areas/rich-text.css +3 -3
  321. package/dist/styles-areas/sharing.css +4 -3
  322. package/dist/styles-areas/stats.css +9 -8
  323. package/dist/styles-areas/test-report.css +3 -3
  324. package/dist/styles-areas/wizard.css +6 -5
  325. package/dist/styles-areas/workbench.css +10 -9
  326. package/dist/styles-areas/workbook-viewer.css +2 -2
  327. package/dist/styles-utilities.css +272 -187
  328. package/dist/testing/designAudit.d.ts.map +1 -1
  329. package/dist/testing/designAudit.js +4 -0
  330. package/dist/testing/designAudit.js.map +1 -1
  331. package/dist/testing/designBaseline.d.ts.map +1 -1
  332. package/dist/testing/designBaseline.js +4 -0
  333. package/dist/testing/designBaseline.js.map +1 -1
  334. package/dist/theme.css +103 -2
  335. package/package.json +3 -2
  336. package/scripts/guardrails-baseline.json +2 -1
  337. package/scripts/guardrailsEnforce.spec.ts +64 -0
  338. package/scripts/guardrailsEnforce.ts +65 -8
  339. package/scripts/styleAreas.ts +1 -0
  340. package/src/nodeTypesDeclared.spec.ts +47 -0
  341. package/src/react/Toast.spec.tsx +43 -0
  342. package/src/react/Toast.tsx +45 -2
  343. package/src/react/analytics/MetricDrilldown.tsx +1 -1
  344. package/src/react/charts/AreaChart.tsx +9 -8
  345. package/src/react/charts/BarChart.tsx +11 -10
  346. package/src/react/charts/ChartCard.tsx +146 -0
  347. package/src/react/charts/ChartFrame.tsx +28 -10
  348. package/src/react/charts/ChartLegend.tsx +1 -1
  349. package/src/react/charts/HeatmapChart.tsx +5 -5
  350. package/src/react/charts/IntervalTimeline.tsx +2 -2
  351. package/src/react/charts/LineChart.tsx +9 -8
  352. package/src/react/charts/TimeSeriesChart.tsx +11 -10
  353. package/src/react/charts/chartBox.spec.ts +40 -0
  354. package/src/react/charts/chartBox.ts +75 -0
  355. package/src/react/charts/index.ts +2 -0
  356. package/src/react/charts/shared.ts +16 -3
  357. package/src/react/chat/Bubble.tsx +5 -5
  358. package/src/react/chat/MessageScroller.tsx +1 -1
  359. package/src/react/components/ActionBar.spec.tsx +90 -0
  360. package/src/react/components/ActionBar.tsx +82 -2
  361. package/src/react/components/AddItemsMenu.tsx +1 -1
  362. package/src/react/components/Alert.spec.tsx +32 -2
  363. package/src/react/components/Alert.tsx +47 -3
  364. package/src/react/components/AppShell.spec.tsx +199 -13
  365. package/src/react/components/AppShell.tsx +235 -92
  366. package/src/react/components/AsyncPanel.spec.tsx +7 -1
  367. package/src/react/components/AsyncPanel.tsx +85 -5
  368. package/src/react/components/BannerLane.tsx +128 -0
  369. package/src/react/components/Button.tsx +2 -0
  370. package/src/react/components/ChipFilterStrip.tsx +1 -1
  371. package/src/react/components/ComboboxField.tsx +20 -3
  372. package/src/react/components/CommentThread.tsx +2 -2
  373. package/src/react/components/ConfirmDialog.tsx +1 -1
  374. package/src/react/components/DataTable/DataTable.tsx +80 -8
  375. package/src/react/components/DataTable/Pagination.tsx +1 -1
  376. package/src/react/components/DataTable/RowActions.tsx +55 -2
  377. package/src/react/components/DataTable/TableFilterBuilder.tsx +1 -1
  378. package/src/react/components/DataTable/cells/CodeCell.tsx +1 -1
  379. package/src/react/components/DataTable/cells/LinkCell.tsx +1 -1
  380. package/src/react/components/DataTable/index.ts +1 -0
  381. package/src/react/components/DataTable/numericColumn.spec.ts +19 -0
  382. package/src/react/components/DataTable/types.ts +36 -0
  383. package/src/react/components/DateTimeField.tsx +3 -1
  384. package/src/react/components/DeleteButton.tsx +3 -0
  385. package/src/react/components/Drawer.tsx +3 -3
  386. package/src/react/components/DropdownMenu.spec.tsx +55 -0
  387. package/src/react/components/DropdownMenu.tsx +73 -20
  388. package/src/react/components/EmptyState.tsx +26 -7
  389. package/src/react/components/EventTimeline.tsx +1 -1
  390. package/src/react/components/Field.width.spec.tsx +11 -0
  391. package/src/react/components/FileDropZone.tsx +1 -1
  392. package/src/react/components/Grid.spec.tsx +44 -0
  393. package/src/react/components/Grid.tsx +41 -11
  394. package/src/react/components/Guide.tsx +77 -0
  395. package/src/react/components/InfoHint.spec.tsx +21 -0
  396. package/src/react/components/InfoHintImpl.tsx +22 -1
  397. package/src/react/components/InlineEditableText.tsx +1 -1
  398. package/src/react/components/IsolatedFrame.tsx +1 -1
  399. package/src/react/components/ListToolbar.spec.tsx +12 -0
  400. package/src/react/components/ListToolbar.tsx +8 -5
  401. package/src/react/components/LogViewer.tsx +118 -18
  402. package/src/react/components/Modal.spec.tsx +17 -2
  403. package/src/react/components/Modal.tsx +25 -10
  404. package/src/react/components/MultiSelectField.spec.tsx +6 -0
  405. package/src/react/components/Page.spec.tsx +89 -5
  406. package/src/react/components/Page.tsx +100 -16
  407. package/src/react/components/PageGuideButton.tsx +42 -0
  408. package/src/react/components/PanelSeparator.tsx +1 -1
  409. package/src/react/components/Popover.tsx +3 -1
  410. package/src/react/components/PromptDialog.tsx +1 -1
  411. package/src/react/components/ScrollArea.spec.tsx +20 -0
  412. package/src/react/components/ScrollArea.tsx +19 -0
  413. package/src/react/components/Section.spec.tsx +82 -1
  414. package/src/react/components/Section.tsx +10 -4
  415. package/src/react/components/Skeleton.tsx +50 -2
  416. package/src/react/components/StatStrip.tsx +1 -1
  417. package/src/react/components/StatTile.tsx +84 -11
  418. package/src/react/components/StatTileGrid.spec.tsx +6 -1
  419. package/src/react/components/StatTileGrid.tsx +25 -0
  420. package/src/react/components/StatusPill.tsx +26 -1
  421. package/src/react/components/Surface.tsx +22 -14
  422. package/src/react/components/SwatchPicker.tsx +4 -0
  423. package/src/react/components/Switch.tsx +1 -1
  424. package/src/react/components/WidgetHeader.tsx +1 -1
  425. package/src/react/components/calendar/CalendarLegend.tsx +1 -1
  426. package/src/react/components/calendar/DayAgenda.tsx +1 -1
  427. package/src/react/components/calendar/EventChip.tsx +1 -1
  428. package/src/react/components/calendar/MonthGrid.tsx +1 -1
  429. package/src/react/components/calendar/WeekView.tsx +2 -2
  430. package/src/react/components/cardFrame.ts +28 -0
  431. package/src/react/components/dataDisplay.spec.tsx +176 -0
  432. package/src/react/components/dialog.tsx +4 -1
  433. package/src/react/dashboard-grid/WidgetFrame.tsx +2 -2
  434. package/src/react/emoji/EmojiPicker.tsx +1 -1
  435. package/src/react/file-tree/FileTree.spec.tsx +49 -0
  436. package/src/react/file-tree/FileTree.tsx +37 -4
  437. package/src/react/filter-rail/FilterRail.tsx +1 -1
  438. package/src/react/icons.tsx +1 -1
  439. package/src/react/index.ts +28 -3
  440. package/src/react/lib/menuSections.ts +33 -0
  441. package/src/react/markdown/Markdown.tsx +2 -2
  442. package/src/react/media/HoverScrubVideoThumb.tsx +2 -2
  443. package/src/react/media/MaskPainter.tsx +1 -1
  444. package/src/react/media/MediaUploadControl.tsx +1 -1
  445. package/src/react/media/VideoTrimmer.tsx +1 -1
  446. package/src/react/media/denseGallery.css +5 -1
  447. package/src/react/namespace/NamespaceTargetCapsule.tsx +1 -1
  448. package/src/react/nav/BreadcrumbTrail.tsx +2 -2
  449. package/src/react/nav/CommandBar.tsx +14 -3
  450. package/src/react/nav/PlaceBar.tsx +18 -8
  451. package/src/react/nav/SideNav.tsx +99 -17
  452. package/src/react/nav/TopBar.spec.tsx +78 -21
  453. package/src/react/nav/TopBar.tsx +270 -98
  454. package/src/react/nav/index.ts +8 -1
  455. package/src/react/nav/nav.spec.tsx +46 -2
  456. package/src/react/nav/navShared.tsx +23 -2
  457. package/src/react/notifications/NotificationFeed.tsx +2 -2
  458. package/src/react/palette/Command.tsx +1 -1
  459. package/src/react/palette/CommandPalette.spec.tsx +31 -0
  460. package/src/react/palette/CommandPalette.tsx +108 -11
  461. package/src/react/palette/commandSources.tsx +186 -0
  462. package/src/react/palette/index.ts +7 -0
  463. package/src/react/rich-text/RichTextEditor.tsx +1 -1
  464. package/src/react/rich-text/RichTextToolbar.tsx +1 -1
  465. package/src/styles-areas/analytics.css +16 -16
  466. package/src/styles-areas/auth.css +3 -3
  467. package/src/styles-areas/calendar.css +6 -6
  468. package/src/styles-areas/chart-table.css +1 -1
  469. package/src/styles-areas/charts.css +3 -3
  470. package/src/styles-areas/chat.css +7 -6
  471. package/src/styles-areas/companion-link.css +2 -2
  472. package/src/styles-areas/core.css +98 -89
  473. package/src/styles-areas/dashboard-grid.css +4 -4
  474. package/src/styles-areas/data-table.css +16 -16
  475. package/src/styles-areas/disk-usage.css +5 -5
  476. package/src/styles-areas/emoji.css +2 -2
  477. package/src/styles-areas/fields.css +13 -14
  478. package/src/styles-areas/filter-rail.css +4 -4
  479. package/src/styles-areas/folder-tree.css +3 -3
  480. package/src/styles-areas/markdown.css +2 -1
  481. package/src/styles-areas/master-detail.css +3 -3
  482. package/src/styles-areas/media-gallery.css +8 -8
  483. package/src/styles-areas/media.css +12 -13
  484. package/src/styles-areas/nav.css +28 -14
  485. package/src/styles-areas/notifications.css +4 -4
  486. package/src/styles-areas/overlays.css +4 -4
  487. package/src/styles-areas/palette.css +4 -3
  488. package/src/styles-areas/rich-text.css +3 -3
  489. package/src/styles-areas/sharing.css +4 -3
  490. package/src/styles-areas/stats.css +9 -8
  491. package/src/styles-areas/test-report.css +3 -3
  492. package/src/styles-areas/wizard.css +6 -5
  493. package/src/styles-areas/workbench.css +10 -9
  494. package/src/styles-areas/workbook-viewer.css +2 -2
  495. package/src/styles-utilities.css +272 -187
  496. package/src/testing/designAudit.ts +3 -0
  497. package/src/testing/designBaseline.ts +4 -0
  498. package/src/theme.css +103 -2
  499. package/src/themeDarkScopeAliases.spec.ts +65 -0
@@ -1 +1 @@
1
- {"version":3,"file":"PlaceBar.js","sourceRoot":"","sources":["../../../src/react/nav/PlaceBar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PlaceBar.js","sourceRoot":"","sources":["../../../src/react/nav/PlaceBar.tsx"],"names":[],"mappings":"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"}
@@ -32,8 +32,18 @@ export interface SideNavProps extends NavNavigationProps {
32
32
  badgeTone?: NavBadgeTone;
33
33
  /** App slot above the list (logo / brand). */
34
34
  header?: ReactNode;
35
- /** App slot below the list (theme toggle / avatar). */
35
+ /**
36
+ * App slot below the list — the version, `BuildFreshness` and a Settings link (NAV-13). Set
37
+ * in 12px muted type, under a 1px rule; a tool has no marketing footer anywhere else. Not
38
+ * drawn in the `collapsed` icon rail, which is 64px wide.
39
+ */
36
40
  footer?: ReactNode;
41
+ /**
42
+ * Show the ACTIVE place's own items beneath it, each label aligned under the parent's label
43
+ * text (NAV-7) — so a reader sees where they are inside a place without a second nav.
44
+ * Default `true`. Never in the icon rail, which has no labels to align to.
45
+ */
46
+ expandActive?: boolean;
37
47
  className?: string;
38
48
  }
39
49
  /**
@@ -47,5 +57,5 @@ export interface SideNavProps extends NavNavigationProps {
47
57
  * Consumed by `AppShell` (which renders it inside the desktop sidebar AND the mobile
48
58
  * drawer); also usable standalone.
49
59
  */
50
- export declare function SideNav({ model, activeHref, gate, linkComponent, onNavigate, onAfterNavigate, resolveIcon, prefs, onPrefsChange, collapsed, collapsedSections: controlledCollapsedSections, onSectionToggle, badges, badgeTone, header, footer, className, }: SideNavProps): import("react").JSX.Element;
60
+ export declare function SideNav({ model, activeHref, gate, linkComponent, onNavigate, onAfterNavigate, resolveIcon, prefs, onPrefsChange, collapsed, collapsedSections: controlledCollapsedSections, onSectionToggle, badges, badgeTone, header, footer, expandActive, className, }: SideNavProps): import("react").JSX.Element;
51
61
  //# sourceMappingURL=SideNav.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SideNav.d.ts","sourceRoot":"","sources":["../../../src/react/nav/SideNav.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,SAAS,EAAsB,MAAM,OAAO,CAAC;AACrE,OAAO,EAIL,KAAK,MAAM,EAEX,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,4BAA4B,CAAC;AAOpC,OAAO,EAGL,KAAK,YAAY,EAEjB,KAAK,kBAAkB,EAIxB,MAAM,gBAAgB,CAAC;AAsBxB,MAAM,WAAW,YAAa,SAAQ,kBAAkB;IACtD,0EAA0E;IAC1E,KAAK,EAAE,eAAe,CAAC;IACvB,kFAAkF;IAClF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;qFACiF;IACjF,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IAC/C,qEAAqE;IACrE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;;;OAOG;IACH,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B;mDAC+C;IAC/C,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IAChE,yEAAyE;IACzE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IACzC,+EAA+E;IAC/E,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,8CAA8C;IAC9C,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,uDAAuD;IACvD,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,OAAO,CAAC,EACtB,KAAK,EACL,UAAU,EACV,IAAmB,EACnB,aAAa,EACb,UAAU,EACV,eAAe,EACf,WAAW,EACX,KAAK,EACL,aAAa,EACb,SAAiB,EACjB,iBAAiB,EAAE,2BAA2B,EAC9C,eAAe,EACf,MAAM,EACN,SAAmB,EACnB,MAAM,EACN,MAAM,EACN,SAAS,GACV,EAAE,YAAY,+BAkKd"}
1
+ {"version":3,"file":"SideNav.d.ts","sourceRoot":"","sources":["../../../src/react/nav/SideNav.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,SAAS,EAAsB,MAAM,OAAO,CAAC;AACrE,OAAO,EAKL,KAAK,MAAM,EAEX,KAAK,eAAe,EAEpB,KAAK,cAAc,EACpB,MAAM,4BAA4B,CAAC;AAOpC,OAAO,EAIL,KAAK,YAAY,EAEjB,KAAK,kBAAkB,EAIxB,MAAM,gBAAgB,CAAC;AAsBxB,MAAM,WAAW,YAAa,SAAQ,kBAAkB;IACtD,0EAA0E;IAC1E,KAAK,EAAE,eAAe,CAAC;IACvB,kFAAkF;IAClF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qEAAqE;IACrE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;qFACiF;IACjF,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IAC/C,qEAAqE;IACrE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;;;;OAOG;IACH,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B;mDAC+C;IAC/C,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAC;IAChE,yEAAyE;IACzE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IACzC,+EAA+E;IAC/E,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB,8CAA8C;IAC9C,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB;;;;OAIG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,OAAO,CAAC,EACtB,KAAK,EACL,UAAU,EACV,IAAmB,EACnB,aAAa,EACb,UAAU,EACV,eAAe,EACf,WAAW,EACX,KAAK,EACL,aAAa,EACb,SAAiB,EACjB,iBAAiB,EAAE,2BAA2B,EAC9C,eAAe,EACf,MAAM,EACN,SAAmB,EACnB,MAAM,EACN,MAAM,EACN,YAAmB,EACnB,SAAS,GACV,EAAE,YAAY,+BA0Ld"}
@@ -1,12 +1,12 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Fragment, Suspense, useState } from 'react';
3
- import { allowAllGate, CURRENT_NAV_PREFS_VERSION, deriveSideNavDomains, } from 'cursedbelt-core/navigation';
3
+ import { allowAllGate, CURRENT_NAV_PREFS_VERSION, deriveDomainItems, deriveSideNavDomains, } from 'cursedbelt-core/navigation';
4
4
  import { DisclosureButton } from '../components/DisclosureButton.js';
5
5
  import { lazyWithReload } from '../lazy/staleChunk.js';
6
6
  import { ScrollArea } from '../components/ScrollArea.js';
7
7
  import { Tooltip } from '../components/Tooltip.js';
8
8
  import { cn } from '../lib/cn.js';
9
- import { isPathWithin, NAV_BADGE_TONE, NavLink, navAccent, rankBySavedOrder, renderIcon, } from './navShared.js';
9
+ import { isDomainActive, isPathWithin, NAV_BADGE_TONE, NavLink, navAccent, rankBySavedOrder, renderIcon, } from './navShared.js';
10
10
  import { TAP_TARGET, TAP_TARGET_HEIGHT } from '../lib/tapTarget.js';
11
11
  /**
12
12
  * 🔴 Lazy on purpose, and the number is why: drag-to-reorder pulls three
@@ -31,7 +31,7 @@ const RestoreHiddenMenu = lazyWithReload(() => import('./SideNavCustomize.js').t
31
31
  * Consumed by `AppShell` (which renders it inside the desktop sidebar AND the mobile
32
32
  * drawer); also usable standalone.
33
33
  */
34
- export function SideNav({ model, activeHref, gate = allowAllGate, linkComponent, onNavigate, onAfterNavigate, resolveIcon, prefs, onPrefsChange, collapsed = false, collapsedSections: controlledCollapsedSections, onSectionToggle, badges, badgeTone = 'alert', header, footer, className, }) {
34
+ export function SideNav({ model, activeHref, gate = allowAllGate, linkComponent, onNavigate, onAfterNavigate, resolveIcon, prefs, onPrefsChange, collapsed = false, collapsedSections: controlledCollapsedSections, onSectionToggle, badges, badgeTone = 'alert', header, footer, expandActive = true, className, }) {
35
35
  const domains = deriveSideNavDomains(model, gate);
36
36
  const hiddenIds = prefs?.hidden ?? [];
37
37
  const visible = rankBySavedOrder(domains.filter((d) => !hiddenIds.includes(d.id)), (d) => d.id, prefs?.order);
@@ -75,15 +75,26 @@ export function SideNav({ model, activeHref, gate = allowAllGate, linkComponent,
75
75
  // section order otherwise stays first-appearance).
76
76
  sections.sort((a, b) => Number(b.section === undefined) - Number(a.section === undefined));
77
77
  }
78
- const renderRow = (domain, drag) => (_jsx(DomainRow, { domain: domain, active: isDomainActive(domain, activeHref), color: prefs?.colors?.[domain.id], badge: badges?.[domain.id], badgeTone: badgeTone, collapsed: collapsed, canCustomize: canCustomize, drag: drag, onHide: () => setPref({ hidden: [...hiddenIds, domain.id] }), onColor: (color) => {
79
- const colors = { ...(prefs?.colors ?? {}) };
80
- if (color)
81
- colors[domain.id] = color;
82
- else
83
- delete colors[domain.id];
84
- setPref({ colors });
85
- }, ...navProps }, domain.id));
86
- return (_jsxs("nav", { "data-cb-sidenav": '', "aria-label": 'Primary', className: cn('flex h-full flex-col', collapsed ? 'w-16' : 'w-full', className), children: [header && _jsx("div", { className: 'shrink-0 border-b border-border px-3 py-4', children: header }), _jsx(ScrollArea, { axis: 'y', className: 'p-2', children: hasSections ? (_jsx("div", { className: 'space-y-1', children: sections.map(({ section, domains: sectionDomains }) => {
78
+ const renderRow = (domain, drag) => {
79
+ const active = isDomainActive(domain, activeHref);
80
+ const children = active && expandActive && !collapsed ? deriveDomainItems(domain, gate) : [];
81
+ const activeChild = children.find((it) => isPathWithin(it.path, activeHref));
82
+ const row = (_jsx(DomainRow, { domain: domain, active: active,
83
+ // When a child is the current page, IT carries the bar and the tint; the place keeps
84
+ // its foreground label so the reader still sees which place they are inside.
85
+ activeIsChild: Boolean(activeChild), color: prefs?.colors?.[domain.id], badge: badges?.[domain.id], badgeTone: badgeTone, collapsed: collapsed, canCustomize: canCustomize, drag: drag, onHide: () => setPref({ hidden: [...hiddenIds, domain.id] }), onColor: (color) => {
86
+ const colors = { ...(prefs?.colors ?? {}) };
87
+ if (color)
88
+ colors[domain.id] = color;
89
+ else
90
+ delete colors[domain.id];
91
+ setPref({ colors });
92
+ }, ...navProps }, domain.id));
93
+ if (children.length === 0)
94
+ return row;
95
+ return (_jsxs(Fragment, { children: [row, _jsx("ul", { "data-cb-sidenav-children": '', className: 'mt-0.5 space-y-0.5', children: children.map((item) => (_jsx("li", { children: _jsx(ChildRow, { item: item, active: item === activeChild, ...navProps }) }, item.id))) })] }, domain.id));
96
+ };
97
+ return (_jsxs("nav", { "data-cb-sidenav": '', "data-cb-nav-collapsed": collapsed ? '' : undefined, "aria-label": 'Primary', className: cn('flex h-full flex-col', collapsed ? 'w-16' : 'w-full', className), children: [header && _jsx("div", { className: 'shrink-0 border-b border-border px-3 py-4', children: header }), _jsx(ScrollArea, { axis: 'y', className: 'p-2', children: hasSections ? (_jsx("div", { className: 'space-y-1', children: sections.map(({ section, domains: sectionDomains }) => {
87
98
  const isOpen = section === undefined || !collapsedSections.includes(section);
88
99
  // A section can hold the active domain while itself collapsed
89
100
  // (rail default: every section starts collapsed so its header
@@ -93,15 +104,9 @@ export function SideNav({ model, activeHref, gate = allowAllGate, linkComponent,
93
104
  // resting state.
94
105
  const containsActive = !isOpen && sectionDomains.some((d) => isDomainActive(d, activeHref));
95
106
  return (_jsxs(Fragment, { children: [section !== undefined && (_jsx(DisclosureButton, { open: isOpen, onToggle: () => toggleSection(section), className: cn('cb-meta-label flex w-full items-center justify-between rounded px-3 pb-1 pt-3 transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring', containsActive && 'text-foreground'), classNames: { arrow: 'size-3.5' }, children: _jsxs("span", { className: 'flex items-center gap-1.5', children: [containsActive && (_jsx("span", { "aria-hidden": 'true', className: 'size-1.5 shrink-0 rounded-full bg-accent-solid' })), section] }) })), isOpen && (_jsx("ul", { className: 'space-y-0.5', children: sectionDomains.map((domain) => (_jsx("li", { children: renderRow(domain) }, domain.id))) }))] }, section ?? '__unsectioned'));
96
- }) })) : canCustomize ? (_jsx(Suspense, { fallback: _jsx("ul", { className: 'space-y-0.5', children: visible.map((domain) => (_jsx("li", { children: renderRow(domain) }, domain.id))) }), children: _jsx(ReorderableRows, { domains: visible, onReorder: (next) => setPref({ order: next.map((d) => d.id) }), renderRow: renderRow }) })) : (_jsx("ul", { className: 'space-y-0.5', children: visible.map((domain) => (_jsx("li", { children: renderRow(domain) }, domain.id))) })) }), (footer || (canCustomize && hiddenDomains.length > 0)) && (_jsxs("div", { className: 'shrink-0 space-y-2 border-t border-border px-3 py-3', children: [canCustomize && hiddenDomains.length > 0 && (_jsx(Suspense, { fallback: null, children: _jsx(RestoreHiddenMenu, { domains: hiddenDomains, resolveIcon: resolveIcon, onRestore: (id) => setPref({ hidden: hiddenIds.filter((x) => x !== id) }) }) })), footer] }))] }));
97
- }
98
- /** A domain is active when the route is its landing or lives within it. */
99
- function isDomainActive(domain, activeHref) {
100
- if (isPathWithin(domain.path, activeHref))
101
- return true;
102
- return domain.groups.some((g) => g.items.some((it) => isPathWithin(it.path, activeHref)));
107
+ }) })) : canCustomize ? (_jsx(Suspense, { fallback: _jsx("ul", { className: 'space-y-0.5', children: visible.map((domain) => (_jsx("li", { children: renderRow(domain) }, domain.id))) }), children: _jsx(ReorderableRows, { domains: visible, onReorder: (next) => setPref({ order: next.map((d) => d.id) }), renderRow: renderRow }) })) : (_jsx("ul", { className: 'space-y-0.5', children: visible.map((domain) => (_jsx("li", { children: renderRow(domain) }, domain.id))) })) }), ((footer && !collapsed) || (canCustomize && hiddenDomains.length > 0)) && (_jsxs("div", { "data-cb-sidenav-footer": '', className: 'shrink-0 space-y-2 border-t border-border px-3 py-3 text-xs text-muted-foreground', children: [canCustomize && hiddenDomains.length > 0 && (_jsx(Suspense, { fallback: null, children: _jsx(RestoreHiddenMenu, { domains: hiddenDomains, resolveIcon: resolveIcon, onRestore: (id) => setPref({ hidden: hiddenIds.filter((x) => x !== id) }) }) })), collapsed ? null : footer] }))] }));
103
108
  }
104
- function DomainRow({ domain, active, color, badge, badgeTone, collapsed, canCustomize, drag, onHide, onColor, linkComponent, onNavigate, onAfterNavigate, resolveIcon, }) {
109
+ function DomainRow({ domain, active, activeIsChild = false, color, badge, badgeTone, collapsed, canCustomize, drag, onHide, onColor, linkComponent, onNavigate, onAfterNavigate, resolveIcon, }) {
105
110
  const accent = navAccent(color);
106
111
  const icon = renderIcon(resolveIcon, domain.icon);
107
112
  /**
@@ -113,7 +118,7 @@ function DomainRow({ domain, active, color, badge, badgeTone, collapsed, canCust
113
118
  */
114
119
  const limit = domain.hostLimit;
115
120
  const limited = Boolean(limit) && limit?.navigable !== true;
116
- const link = (_jsxs(NavLink, { path: domain.path, linkComponent: linkComponent, onNavigate: onNavigate, onAfterNavigate: onAfterNavigate, ariaCurrent: active ? 'page' : undefined, disabled: limited,
121
+ const link = (_jsxs(NavLink, { path: domain.path, linkComponent: linkComponent, onNavigate: onNavigate, onAfterNavigate: onAfterNavigate, ariaCurrent: active && !activeIsChild ? 'page' : undefined, disabled: limited,
117
122
  // When there IS a host limit the wrapper below carries the richer hint, so the
118
123
  // link must not open a second, nested one.
119
124
  title: limit ? undefined : collapsed ? domain.label : undefined, className: cn('group/navrow relative flex items-center rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',
@@ -127,7 +132,14 @@ function DomainRow({ domain, active, color, badge, badgeTone, collapsed, canCust
127
132
  // 390px mobile-drawer teardown — sidenav rows measured 223×36).
128
133
  collapsed
129
134
  ? `size-10 justify-center ${TAP_TARGET}`
130
- : `w-full gap-3 px-3 py-2 ${TAP_TARGET_HEIGHT}`, active ? 'bg-muted text-foreground' : 'text-foreground hover:bg-muted'), children: [active && (_jsx("span", { "aria-hidden": 'true', className: cn('absolute left-0 rounded-full', collapsed ? 'inset-y-1 left-0 w-[3px]' : 'inset-y-1.5 w-0.5'), style: { backgroundColor: accent } })), icon && (_jsx("span", { className: 'grid size-5 shrink-0 place-items-center [&_svg]:size-5', "aria-hidden": 'true', style: active ? { color: accent } : undefined, children: icon })), !collapsed && _jsx("span", { className: 'flex-1 truncate text-left', children: domain.label }), !collapsed && badge != null && badge !== 0 && (_jsx("span", { className: cn('rounded-full px-1.5 py-0.5 text-xs font-bold', NAV_BADGE_TONE[badgeTone]), children: typeof badge === 'number' && badge > 99 ? '99+' : badge }))] }));
135
+ : `w-full gap-3 px-3 py-2 ${TAP_TARGET_HEIGHT}`,
136
+ // NAV-6: the current place is marked three ways — the bar below, this tint, and a
137
+ // foreground label against the muted ones around it. Color alone fails.
138
+ active && !activeIsChild
139
+ ? 'bg-accent/10 text-foreground'
140
+ : active
141
+ ? 'text-foreground hover:bg-muted'
142
+ : 'text-muted-foreground hover:bg-muted hover:text-foreground'), children: [active && !activeIsChild && (_jsx("span", { "aria-hidden": 'true', "data-cb-active-indicator": '', className: cn('absolute left-0 w-[var(--indicator-w)] rounded-full', collapsed ? 'inset-y-1' : 'inset-y-1.5'), style: { backgroundColor: accent } })), icon && (_jsx("span", { className: 'grid size-5 shrink-0 place-items-center [&_svg]:size-5', "aria-hidden": 'true', style: active ? { color: accent } : undefined, children: icon })), !collapsed && _jsx("span", { className: 'flex-1 truncate text-left', children: domain.label }), !collapsed && badge != null && badge !== 0 && (_jsx("span", { className: cn('rounded-full px-1.5 py-0.5 text-xs font-bold', NAV_BADGE_TONE[badgeTone]), children: typeof badge === 'number' && badge > 99 ? '99+' : badge }))] }));
131
143
  const hint = limit ? (_jsxs("span", { className: 'block max-w-64', children: [_jsxs("span", { className: 'block font-semibold', children: [domain.label, " \u2014 not available here"] }), _jsx("span", { className: 'block', children: limit.reason }), limit.worksAt ? _jsx("span", { className: 'mt-1 block opacity-80', children: limit.worksAt }) : null] })) : null;
132
144
  // Icon-rail: just the icon link with a portal tooltip carrying the label.
133
145
  if (collapsed) {
@@ -141,4 +153,12 @@ function DomainRow({ domain, active, color, badge, badgeTone, collapsed, canCust
141
153
  // Expanded: the link + (when customizing) a reveal-on-hover drag handle + kebab.
142
154
  return (_jsxs("div", { className: 'group/navitem relative flex items-center', children: [_jsx("div", { className: 'min-w-0 flex-1', children: link }), canCustomize && (_jsx(Suspense, { fallback: null, children: _jsx(RowCustomizeControls, { label: domain.label, color: color, drag: drag, onHide: onHide, onColor: onColor }) }))] }));
143
155
  }
156
+ /**
157
+ * One of the active place's items (NAV-7). Its label starts exactly under the parent's label:
158
+ * the parent row's `px-3` + its 20px icon + its `gap-3` is 44px, so the child's padding is 44px
159
+ * (`pl-11`) and its text lands on the same x. Marked like the place when it is the current page.
160
+ */
161
+ function ChildRow({ item, active, linkComponent, onNavigate, onAfterNavigate, }) {
162
+ return (_jsxs(NavLink, { path: item.path, linkComponent: linkComponent, onNavigate: onNavigate, onAfterNavigate: onAfterNavigate, ariaCurrent: active ? 'page' : undefined, className: cn('relative flex w-full items-center rounded-md py-1.5 pl-11 pr-3 text-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring', TAP_TARGET_HEIGHT, active ? 'bg-accent/10 font-medium text-foreground' : 'text-muted-foreground hover:bg-muted hover:text-foreground'), children: [active && (_jsx("span", { "aria-hidden": 'true', "data-cb-active-indicator": '', className: 'absolute inset-y-1.5 left-0 w-[var(--indicator-w)] rounded-full bg-accent-solid' })), _jsx("span", { "data-cb-nav-child-label": '', className: 'min-w-0 flex-1 truncate text-left', children: item.label })] }));
163
+ }
144
164
  //# sourceMappingURL=SideNav.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SideNav.js","sourceRoot":"","sources":["../../../src/react/nav/SideNav.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SideNav.js","sourceRoot":"","sources":["../../../src/react/nav/SideNav.tsx"],"names":[],"mappings":"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"}
@@ -1,26 +1,32 @@
1
- import type { AnchorHTMLAttributes, ReactNode } from 'react';
1
+ import type { AnchorHTMLAttributes, ElementType, ReactNode } from 'react';
2
+ import { type NavBadgeTone } from './navShared.js';
2
3
  /** What an `<a>` in the bar is handed — `href`, `onClick`, whatever the app's router needs. */
3
4
  export type TopBarLinkProps = Omit<AnchorHTMLAttributes<HTMLAnchorElement>, 'children' | 'className' | 'aria-label' | 'href'>;
4
5
  export interface TopBarItem {
5
6
  /** Stable key. */
6
7
  id: string;
7
- /** The place's name. It is the accessible name and the hover hint — it is NOT painted. */
8
+ /** The place's name — painted beside the icon from 768px up, and always its accessible name. */
8
9
  label: string;
9
- /** The glyph that IS the item. Required: an item without one cannot be drawn in this bar. */
10
+ /** The place's glyph. Alone below 768px (or in an `iconOnly` utility bar), beside the label above. */
10
11
  icon: ReactNode;
11
- /** The place the user is in. Lit, and `aria-current="page"`. */
12
+ /** The place the user is in. Marked three ways, and `aria-current="page"`. */
12
13
  active?: boolean;
13
14
  /** Where it goes. A real link, so it still copies and middle-clicks. */
14
15
  href: string;
15
16
  /** `onClick` and whatever else the app's router needs on the `<a>`. */
16
17
  linkProps?: TopBarLinkProps;
17
18
  /**
18
- * 🔴 The purposefully made exception: paint `label` beside the icon. Takes the REASON,
19
- * not a boolean — the owner's rule (2026-09-25) is icons, not words, "unless there is a
20
- * purposefully made exception", and a `showLabel` flag is an exception nobody had to make.
21
- * Even then the words drop below `sm`, because a phone is where they overflowed.
19
+ * A count beside the label (unread, waiting), on the icon's corner where the icon stands alone.
20
+ * Clamped to 99+, and read as part of the place's name (`Duplicates · 7`).
22
21
  */
23
- wordsBecause?: string;
22
+ badge?: number | string;
23
+ /** How the count reads — `alert` (default, red) or a plain fact. */
24
+ badgeTone?: NavBadgeTone;
25
+ /**
26
+ * The place exists but cannot work on THIS host: it stays visible, cannot be followed, and
27
+ * says why on hover — the owner's one-UI rule, never a hidden item. The reason, in a sentence.
28
+ */
29
+ unavailable?: string;
24
30
  }
25
31
  export interface TopBarProps {
26
32
  /** The app's mark. Its `label` is painted from `md` up and is the accessible name below it. */
@@ -30,43 +36,71 @@ export interface TopBarProps {
30
36
  href: string;
31
37
  linkProps?: TopBarLinkProps;
32
38
  };
33
- /** The places. Icons only — see {@link TopBarItem.wordsBecause} for the one way out. */
39
+ /** The places — 2 to 5 of them (NAV-3). Six or more belong in `AppShell`'s sectioned `SideNav`. */
34
40
  items: readonly TopBarItem[];
35
- /** The trailing cluster: theme toggle, account menu. Never shrinks. */
41
+ /** The right zone: ⌘K, alerts, theme toggle, account. Locked — it never shrinks (NAV-1). */
36
42
  trailing?: ReactNode;
37
43
  /**
38
44
  * One control BEFORE the brand — a phone's way into the app's sidebar drawer (the owner's
39
45
  * music report, 2026-09-28: *"there is a large horizontal scrolling header row and no sidebar
40
- * popout"*). Top-left is where Gmail, Linear and Slack put it on a phone, so a reader finds it
41
- * without being told. Never shrinks. Render it only where there is a sidebar to open.
46
+ * popout"*). Top-left is where Gmail, Linear and Slack put it on a phone. Never shrinks.
42
47
  */
43
48
  leading?: ReactNode;
49
+ /**
50
+ * The center zone's content when it is NOT the places — a global search, a command trigger.
51
+ * Given together with `items`, the places render first and this follows them.
52
+ */
53
+ center?: ReactNode;
54
+ /**
55
+ * The header height (NAV-1): `roomy` 64px for media and consumer apps, `dense` 48px for a
56
+ * tool (station, desk, binary-server). Unset, it reads `--header-h`, which a `.cb-dense`
57
+ * scope already sets to 48px.
58
+ */
59
+ density?: 'roomy' | 'dense';
60
+ /**
61
+ * A UTILITY bar, not the app's router: icons only at every width, each with its tooltip.
62
+ * NAV-2 allows icons alone only in a utility cluster — a row of window controls, a
63
+ * viewer's tools — so this is the mode for those, never for an app's places.
64
+ */
65
+ iconOnly?: boolean;
66
+ /**
67
+ * Below 768px: `'icons'` (default) keeps the places as an icon strip in the header; `'none'`
68
+ * drops them, for a shell whose bottom `PlaceBar` already carries every place (NAV-14).
69
+ */
70
+ phonePlaces?: 'icons' | 'none';
71
+ /** SPA link component (e.g. react-router `Link`) — receives `to` and `href`. Default `<a>`. */
72
+ linkComponent?: ElementType;
44
73
  /** The nav landmark's name. Default `'Places'`. */
45
74
  navLabel?: string;
46
75
  className?: string;
47
76
  }
48
77
  /**
49
- * THE top bar: brand, places, trailing controls — one row that can never be wider than the
50
- * screen.
51
- *
52
- * ── Why it exists (owner, 2026-09-25) ───────────────────────────────────────────────────
53
- * *"the music app header on iphone goes off the right side of the screen. It should use
54
- * icons instead of words and it should not be allowed to make the screen have a wide
55
- * scrollbar … cb should enforce this via a top bar component so each app cannot do it wrong
56
- * with separately made components."* Every app had hand-rolled its own `<header><nav>`, and
57
- * music's — "♪ Music · Library · Visualize · YouTube · Add music · Downloads" plus a theme
58
- * toggle and an avatar — was ~560px of words on a 390px phone, so the whole page scrolled
59
- * sideways.
78
+ * THE top bar: three zones on one midline — brand, places, utilities — in a row that can
79
+ * never be wider than the screen.
60
80
  *
61
- * Two properties are built in rather than asked for:
62
- * · **Icons, not words.** An item cannot be declared without an icon, and its label is
63
- * the accessible name + hover hint, never painted — unless `wordsBecause` says why.
64
- * · **It cannot widen the page.** The row is `min-w-0 max-w-full`; the places take the
65
- * remaining width and, if a phone is narrower still, scroll INSIDE their own strip.
66
- * Brand and trailing controls never shrink, so the account menu is always reachable.
81
+ * ── Why it is shaped like this ─────────────────────────────────────────────────────────
82
+ * It was born (owner, 2026-09-25) from music's header running off a 390px phone, and the
83
+ * fix then was *"icons instead of words"*. The owner's 2026-10-01 review reversed the words
84
+ * half: thirteen naked icons is mystery-meat navigation (`docs/design/README.md`, "Settled
85
+ * conflicts" #1). So now (`docs/design/shell-and-navigation.md`):
86
+ * · **Destinations have words** (NAV-2) — icon plus label from 768px up. Icons alone only
87
+ * below 768px, or in an `iconOnly` utility bar.
88
+ * · **Three zones, one height** (NAV-1) — `--header-h` (64/48px), every item on one
89
+ * midline, a 1px bottom border and no shadow. Left and right are locked; when space
90
+ * runs out the center gives way, scrolling INSIDE its own strip, so the page never
91
+ * scrolls sideways and the account menu is always reachable.
92
+ * · **The active place is unmistakable** (NAV-6) — a 3px accent bar on the header-side
93
+ * edge, a tinted background and foreground (not muted) text. Never color alone.
67
94
  *
68
95
  * `guardrails no-raw-nav` is the other half: a hand-rolled `<nav>` in app source fails the
69
96
  * app's gate, so the next header is this one.
70
97
  */
71
- export declare function TopBar({ brand, items, trailing, leading, navLabel, className }: TopBarProps): import("react").JSX.Element;
98
+ export declare function TopBar({ brand, items, trailing, leading, center, density, iconOnly, phonePlaces, linkComponent, navLabel, className, }: TopBarProps): import("react").JSX.Element;
99
+ export interface TopBarPlacesProps extends Pick<TopBarProps, 'items' | 'iconOnly' | 'phonePlaces' | 'linkComponent' | 'navLabel'> {
100
+ }
101
+ /**
102
+ * The center zone's places on their own — `TopBar` draws them, and so does `AppShell`'s
103
+ * header for a 2–5-place app (NAV-3). One strip, so the two can never drift.
104
+ */
105
+ export declare function TopBarPlaces({ items, iconOnly, phonePlaces, linkComponent, navLabel, }: TopBarPlacesProps): import("react").JSX.Element;
72
106
  //# sourceMappingURL=TopBar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TopBar.d.ts","sourceRoot":"","sources":["../../../src/react/nav/TopBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAO7D,+FAA+F;AAC/F,MAAM,MAAM,eAAe,GAAG,IAAI,CAChC,oBAAoB,CAAC,iBAAiB,CAAC,EACvC,UAAU,GAAG,WAAW,GAAG,YAAY,GAAG,MAAM,CACjD,CAAC;AAEF,MAAM,WAAW,UAAU;IACzB,kBAAkB;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,0FAA0F;IAC1F,KAAK,EAAE,MAAM,CAAC;IACd,6FAA6F;IAC7F,IAAI,EAAE,SAAS,CAAC;IAChB,gEAAgE;IAChE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,+FAA+F;IAC/F,KAAK,EAAE;QAAE,IAAI,EAAE,SAAS,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,eAAe,CAAA;KAAE,CAAC;IACrF,wFAAwF;IACxF,KAAK,EAAE,SAAS,UAAU,EAAE,CAAC;IAC7B,uEAAuE;IACvE,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAmB,EAAE,SAAS,EAAE,EAAE,WAAW,+BAkDtG"}
1
+ {"version":3,"file":"TopBar.d.ts","sourceRoot":"","sources":["../../../src/react/nav/TopBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAQ1E,OAAO,EAAkB,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnE,+FAA+F;AAC/F,MAAM,MAAM,eAAe,GAAG,IAAI,CAChC,oBAAoB,CAAC,iBAAiB,CAAC,EACvC,UAAU,GAAG,WAAW,GAAG,YAAY,GAAG,MAAM,CACjD,CAAC;AAEF,MAAM,WAAW,UAAU;IACzB,kBAAkB;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,gGAAgG;IAChG,KAAK,EAAE,MAAM,CAAC;IACd,sGAAsG;IACtG,IAAI,EAAE,SAAS,CAAC;IAChB,8EAA8E;IAC9E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAC;IACb,uEAAuE;IACvE,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,oEAAoE;IACpE,SAAS,CAAC,EAAE,YAAY,CAAC;IACzB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,+FAA+F;IAC/F,KAAK,EAAE;QAAE,IAAI,EAAE,SAAS,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,eAAe,CAAA;KAAE,CAAC;IACrF,mGAAmG;IACnG,KAAK,EAAE,SAAS,UAAU,EAAE,CAAC;IAC7B,4FAA4F;IAC5F,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;;;OAIG;IACH,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB;;;OAGG;IACH,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC/B,+FAA+F;IAC/F,aAAa,CAAC,EAAE,WAAW,CAAC;IAC5B,mDAAmD;IACnD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,MAAM,CAAC,EACrB,KAAK,EACL,KAAK,EACL,QAAQ,EACR,OAAO,EACP,MAAM,EACN,OAAO,EACP,QAAgB,EAChB,WAAqB,EACrB,aAAa,EACb,QAAmB,EACnB,SAAS,GACV,EAAE,WAAW,+BAqEb;AAKD,MAAM,WAAW,iBACf,SAAQ,IAAI,CAAC,WAAW,EAAE,OAAO,GAAG,UAAU,GAAG,aAAa,GAAG,eAAe,GAAG,UAAU,CAAC;CAAG;AAEnG;;;GAGG;AACH,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,QAAgB,EAChB,WAAqB,EACrB,aAAa,EACb,QAAmB,GACpB,EAAE,iBAAiB,+BAsCnB"}
@@ -1,40 +1,75 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { ScrollArea } from '../components/ScrollArea.js';
3
3
  import { Tooltip } from '../components/Tooltip.js';
4
+ import { useMediaQuery } from '../hooks/useMediaQuery.js';
4
5
  import { useScrollEdgeFade } from '../hooks/useScrollEdgeFade.js';
5
6
  import { cn } from '../lib/cn.js';
7
+ import { devWarnOnce } from '../lib/devWarn.js';
6
8
  import { TAP_TARGET_SQUARE } from '../lib/tapTarget.js';
9
+ import { NAV_BADGE_TONE } from './navShared.js';
7
10
  /**
8
- * THE top bar: brand, places, trailing controls — one row that can never be wider than the
9
- * screen.
11
+ * THE top bar: three zones on one midline — brand, places, utilities — in a row that can
12
+ * never be wider than the screen.
10
13
  *
11
- * ── Why it exists (owner, 2026-09-25) ───────────────────────────────────────────────────
12
- * *"the music app header on iphone goes off the right side of the screen. It should use
13
- * icons instead of words and it should not be allowed to make the screen have a wide
14
- * scrollbar … cb should enforce this via a top bar component so each app cannot do it wrong
15
- * with separately made components."* Every app had hand-rolled its own `<header><nav>`, and
16
- * music's — "♪ Music · Library · Visualize · YouTube · Add music · Downloads" plus a theme
17
- * toggle and an avatar — was ~560px of words on a 390px phone, so the whole page scrolled
18
- * sideways.
19
- *
20
- * Two properties are built in rather than asked for:
21
- * · **Icons, not words.** An item cannot be declared without an icon, and its label is
22
- * the accessible name + hover hint, never painted — unless `wordsBecause` says why.
23
- * · **It cannot widen the page.** The row is `min-w-0 max-w-full`; the places take the
24
- * remaining width and, if a phone is narrower still, scroll INSIDE their own strip.
25
- * Brand and trailing controls never shrink, so the account menu is always reachable.
14
+ * ── Why it is shaped like this ─────────────────────────────────────────────────────────
15
+ * It was born (owner, 2026-09-25) from music's header running off a 390px phone, and the
16
+ * fix then was *"icons instead of words"*. The owner's 2026-10-01 review reversed the words
17
+ * half: thirteen naked icons is mystery-meat navigation (`docs/design/README.md`, "Settled
18
+ * conflicts" #1). So now (`docs/design/shell-and-navigation.md`):
19
+ * · **Destinations have words** (NAV-2) — icon plus label from 768px up. Icons alone only
20
+ * below 768px, or in an `iconOnly` utility bar.
21
+ * · **Three zones, one height** (NAV-1) — `--header-h` (64/48px), every item on one
22
+ * midline, a 1px bottom border and no shadow. Left and right are locked; when space
23
+ * runs out the center gives way, scrolling INSIDE its own strip, so the page never
24
+ * scrolls sideways and the account menu is always reachable.
25
+ * · **The active place is unmistakable** (NAV-6) — a 3px accent bar on the header-side
26
+ * edge, a tinted background and foreground (not muted) text. Never color alone.
26
27
  *
27
28
  * `guardrails no-raw-nav` is the other half: a hand-rolled `<nav>` in app source fails the
28
29
  * app's gate, so the next header is this one.
29
30
  */
30
- export function TopBar({ brand, items, trailing, leading, navLabel = 'Places', className }) {
31
+ export function TopBar({ brand, items, trailing, leading, center, density, iconOnly = false, phonePlaces = 'icons', linkComponent, navLabel = 'Places', className, }) {
32
+ if (!iconOnly && items.length > 5) {
33
+ devWarnOnce(`TopBar:too-many:${brand.label}`, `cursedbelt: <TopBar> "${brand.label}" puts ${items.length} places in the header. NAV-3 caps a top bar at 5 — ` +
34
+ 'pass the places to AppShell as a NavigationModel with sections, and it renders a SideNav.');
35
+ }
36
+ const hasPlaces = items.length > 0;
37
+ return (_jsxs("header", { "data-cb-topbar": '', "data-cb-density": density, className: cn('flex w-full min-w-0 max-w-full shrink-0 items-center gap-2 border-b border-border px-3 md:gap-4 md:px-6', density === 'dense'
38
+ ? 'h-[var(--header-h-dense)]'
39
+ : density === 'roomy'
40
+ ? 'h-[var(--header-h-roomy)]'
41
+ : 'h-[var(--header-h)]', className), children: [_jsxs("div", { "data-cb-topbar-zone": 'left', className: 'flex shrink-0 items-center gap-2', children: [leading ? _jsx("div", { className: 'flex shrink-0 items-center', children: leading }) : null, _jsxs("a", { ...brand.linkProps, href: brand.href, "aria-label": brand.label, "data-cb-topbar-brand": '', className: cn('flex shrink-0 items-center gap-2 rounded-md px-1.5 py-1 font-semibold text-foreground', 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring', TAP_TARGET_SQUARE, 'md:pointer-coarse:w-auto'), children: [_jsx("span", { "aria-hidden": 'true', className: 'grid size-6 place-items-center [&_svg]:size-5', children: brand.icon }), _jsx("span", { "aria-hidden": 'true', className: 'hidden md:inline', children: brand.label })] })] }), _jsxs("div", { "data-cb-topbar-zone": 'center', className: 'flex h-full min-w-0 flex-1 items-center justify-center gap-3', children: [hasPlaces ? (_jsx(TopBarPlaces, { items: items, iconOnly: iconOnly, phonePlaces: phonePlaces, linkComponent: linkComponent, navLabel: navLabel })) : null, center ? _jsx("div", { className: 'flex min-w-0 flex-1 items-center justify-center', children: center }) : null] }), trailing ? (_jsx("div", { "data-cb-topbar-zone": 'right', className: 'flex shrink-0 items-center gap-1', children: trailing })) : null] }));
42
+ }
43
+ /** NAV-2's line: from here up a router's places show their words. */
44
+ const WIDE_QUERY = '(min-width: 768px)';
45
+ /**
46
+ * The center zone's places on their own — `TopBar` draws them, and so does `AppShell`'s
47
+ * header for a 2–5-place app (NAV-3). One strip, so the two can never drift.
48
+ */
49
+ export function TopBarPlaces({ items, iconOnly = false, phonePlaces = 'icons', linkComponent, navLabel = 'Places', }) {
31
50
  const fade = useScrollEdgeFade();
32
- return (_jsxs("header", { "data-cb-topbar": '', className: cn('flex w-full min-w-0 max-w-full items-center gap-2 px-3 py-1.5 md:gap-3 md:px-6', className), children: [leading ? _jsx("div", { className: 'flex shrink-0 items-center', children: leading }) : null, _jsxs("a", { ...brand.linkProps, href: brand.href, "aria-label": brand.label, "data-cb-topbar-brand": '', className: cn('flex shrink-0 items-center gap-2 rounded-md px-1.5 py-1 font-semibold text-foreground', 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring', TAP_TARGET_SQUARE, 'md:pointer-coarse:w-auto'), children: [_jsx("span", { "aria-hidden": 'true', className: 'grid size-6 place-items-center [&_svg]:size-5', children: brand.icon }), _jsx("span", { "aria-hidden": 'true', className: 'hidden md:inline', children: brand.label })] }), _jsx("nav", { "aria-label": navLabel, "data-cb-topbar-nav": '', className: 'min-w-0 flex-1', style: fade.maskStyle, children: _jsx(ScrollArea, { axis: 'x', space: 'none', safeArea: false, scrollRef: fade.ref, onScroll: fade.onScroll, className: 'w-full [scrollbar-width:none] [&::-webkit-scrollbar]:hidden', children: _jsx("div", { className: 'flex w-max items-center gap-1', children: items.map((item) => (_jsx(TopBarLink, { item: item }, item.id))) }) }) }), trailing ? _jsx("div", { className: 'flex shrink-0 items-center gap-1', children: trailing }) : null] }));
51
+ const wide = useMediaQuery(WIDE_QUERY);
52
+ return (_jsx("nav", { "aria-label": navLabel, "data-cb-topbar-nav": '', "data-cb-primary-nav": iconOnly ? undefined : '', "data-cb-nav-utility": iconOnly ? '' : undefined, className: cn('h-full min-w-0', phonePlaces === 'none' && !iconOnly && 'max-md:hidden'), style: fade.maskStyle, children: _jsx(ScrollArea, { axis: 'x', space: 'none', safeArea: false, scrollRef: fade.ref, onScroll: fade.onScroll, className: 'h-full w-full [scrollbar-width:none] [&::-webkit-scrollbar]:hidden', children: _jsx("div", { className: 'flex h-full w-max items-center gap-1', children: items.map((item) => (_jsx(TopBarLink, { item: item, hint: iconOnly || !wide, iconOnly: iconOnly, linkComponent: linkComponent }, item.id))) }) }) }));
33
53
  }
34
- function TopBarLink({ item }) {
35
- const words = Boolean(item.wordsBecause?.trim());
36
- return (_jsx(Tooltip, { content: item.label, side: 'bottom', children: _jsxs("a", { ...item.linkProps, href: item.href, "aria-label": item.label, "aria-current": item.active ? 'page' : undefined, "data-active": item.active ? '' : undefined, className: cn('relative flex h-9 min-w-9 shrink-0 items-center justify-center gap-2 rounded-md px-2 transition-colors', 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring', TAP_TARGET_SQUARE, words && 'sm:pointer-coarse:w-auto', item.active
37
- ? 'bg-muted text-foreground'
38
- : 'text-muted-foreground hover:bg-muted hover:text-foreground'), children: [_jsx("span", { "aria-hidden": 'true', className: 'grid size-5 place-items-center [&_svg]:size-5', children: item.icon }), words ? (_jsx("span", { "aria-hidden": 'true', className: 'hidden text-sm font-medium sm:inline', children: item.label })) : null] }) }));
54
+ function TopBarLink({ item, hint, iconOnly, linkComponent, }) {
55
+ const Link = item.unavailable ? 'span' : (linkComponent ?? 'a');
56
+ const showBadge = item.badge != null && item.badge !== 0;
57
+ const badgeText = typeof item.badge === 'number' && item.badge > 99 ? '99+' : item.badge;
58
+ const target = item.unavailable
59
+ ? // HTML has no disabled anchor: a span that still announces as the link it is.
60
+ { role: 'link', 'aria-disabled': 'true', tabIndex: 0 }
61
+ : { ...item.linkProps, ...(linkComponent ? { to: item.href } : {}), href: item.href };
62
+ const link = (_jsxs(Link, { ...target, "aria-label": showBadge ? `${item.label} · ${badgeText}` : item.label, "aria-current": item.active ? 'page' : undefined, "data-active": item.active ? '' : undefined, "data-cb-nav-item": '', className: cn('relative flex h-9 min-w-9 shrink-0 items-center justify-center gap-2 rounded-md px-2 transition-colors', 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring', TAP_TARGET_SQUARE, !iconOnly && 'md:px-3 md:pointer-coarse:w-auto', item.unavailable && 'opacity-55', item.active
63
+ ? 'bg-accent/10 text-foreground'
64
+ : 'text-muted-foreground hover:bg-muted hover:text-foreground'), children: [item.active ? (_jsx("span", { "aria-hidden": 'true', "data-cb-active-indicator": '', className: 'absolute inset-x-2 bottom-0 h-[var(--indicator-w)] rounded-full bg-accent-solid' })) : null, _jsx("span", { "aria-hidden": 'true', className: 'grid size-5 place-items-center [&_svg]:size-5', children: item.icon }), iconOnly ? null : (_jsx("span", { "aria-hidden": 'true', className: 'hidden whitespace-nowrap text-sm font-medium md:inline', children: item.label })), showBadge ? (_jsx("span", { "aria-hidden": 'true', "data-cb-nav-badge": '', className: cn('rounded-full px-1.5 py-0.5 text-xs font-bold leading-none', NAV_BADGE_TONE[item.badgeTone ?? 'alert'],
65
+ // Where the glyph stands alone the count rides on its corner — a pill beside it
66
+ // would crowd the strip, and hiding it would hide the one figure the reader goes by.
67
+ iconOnly ? 'absolute -top-0.5 -right-0.5' : 'max-md:absolute max-md:-top-0.5 max-md:-right-0.5'), children: badgeText })) : null] }));
68
+ if (item.unavailable) {
69
+ return (_jsx(Tooltip, { content: `${item.label} — not available here. ${item.unavailable}`, side: 'bottom', multiline: true, children: link }));
70
+ }
71
+ // The hover hint is only for a glyph standing alone: in a utility bar always, and below
72
+ // 768px in a router. Above it the word is painted, and a tooltip repeating it is noise.
73
+ return hint ? (_jsx(Tooltip, { content: item.label, side: 'bottom', children: link })) : (link);
39
74
  }
40
75
  //# sourceMappingURL=TopBar.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TopBar.js","sourceRoot":"","sources":["../../../src/react/nav/TopBar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TopBar.js","sourceRoot":"","sources":["../../../src/react/nav/TopBar.tsx"],"names":[],"mappings":"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"}
@@ -16,5 +16,5 @@ export { type IconResolver, isPathWithin, NavLink, type NavLinkProps, type NavNa
16
16
  export { PlaceBar, type PlaceBarProps } from './PlaceBar.js';
17
17
  export { type SearchResultGroup, type SearchResultRow, SearchResults, type SearchResultsProps, searchOptionId, } from './SearchResults.js';
18
18
  export { SideNav, type SideNavProps } from './SideNav.js';
19
- export { TopBar, type TopBarItem, type TopBarLinkProps, type TopBarProps } from './TopBar.js';
19
+ export { TopBar, type TopBarItem, type TopBarLinkProps, TopBarPlaces, type TopBarPlacesProps, type TopBarProps, } from './TopBar.js';
20
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/react/nav/index.ts"],"names":[],"mappings":"AAQA,cAAc,4BAA4B,CAAC;AAC3C,OAAO,EACL,WAAW,EACX,KAAK,gBAAgB,EACrB,eAAe,EACf,KAAK,oBAAoB,EACzB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EACL,kBAAkB,EAClB,KAAK,uBAAuB,EAC5B,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,0BAA0B,EAC1B,0BAA0B,EAC1B,qBAAqB,EACrB,mBAAmB,EACnB,KAAK,mBAAmB,GACzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,KAAK,eAAe,EACpB,qBAAqB,EACrB,KAAK,eAAe,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,aAAa,EACb,aAAa,EACb,KAAK,qBAAqB,EAC1B,QAAQ,EACR,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,YAAY,GACb,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EACL,KAAK,YAAY,EACjB,YAAY,EACZ,OAAO,EACP,KAAK,YAAY,EACjB,KAAK,kBAAkB,GACxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,aAAa,EACb,KAAK,kBAAkB,EACvB,cAAc,GACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,KAAK,UAAU,EAAE,KAAK,eAAe,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/react/nav/index.ts"],"names":[],"mappings":"AAQA,cAAc,4BAA4B,CAAC;AAC3C,OAAO,EACL,WAAW,EACX,KAAK,gBAAgB,EACrB,eAAe,EACf,KAAK,oBAAoB,EACzB,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EACL,kBAAkB,EAClB,KAAK,uBAAuB,EAC5B,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,0BAA0B,EAC1B,0BAA0B,EAC1B,qBAAqB,EACrB,mBAAmB,EACnB,KAAK,mBAAmB,GACzB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,KAAK,eAAe,EACpB,qBAAqB,EACrB,KAAK,eAAe,GACrB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,aAAa,EACb,aAAa,EACb,KAAK,qBAAqB,EAC1B,QAAQ,EACR,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,YAAY,GACb,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,EACL,KAAK,YAAY,EACjB,YAAY,EACZ,OAAO,EACP,KAAK,YAAY,EACjB,KAAK,kBAAkB,GACxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,aAAa,EACb,KAAK,kBAAkB,EACvB,cAAc,GACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EACL,MAAM,EACN,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,YAAY,EACZ,KAAK,iBAAiB,EACtB,KAAK,WAAW,GACjB,MAAM,aAAa,CAAC"}
@@ -23,5 +23,5 @@ export { isPathWithin, NavLink, } from './navShared.js';
23
23
  export { PlaceBar } from './PlaceBar.js';
24
24
  export { SearchResults, searchOptionId, } from './SearchResults.js';
25
25
  export { SideNav } from './SideNav.js';
26
- export { TopBar } from './TopBar.js';
26
+ export { TopBar, TopBarPlaces, } from './TopBar.js';
27
27
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/react/nav/index.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,iGAAiG;AACjG,sFAAsF;AACtF,mFAAmF;AACnF,mFAAmF;AACnF,oFAAoF;AACpF,6FAA6F;AAE7F,cAAc,4BAA4B,CAAC;AAC3C,OAAO,EACL,WAAW,EAEX,eAAe,EAEf,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAA6B,MAAM,sBAAsB,CAAC;AAClF,OAAO,EACL,kBAAkB,EAElB,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,0BAA0B,EAC1B,0BAA0B,EAC1B,qBAAqB,EACrB,mBAAmB,GAEpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEL,qBAAqB,GAEtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,eAAe,EAA6B,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAKL,aAAa,EACb,aAAa,EAEb,QAAQ,EAGR,YAAY,GACb,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,eAAe,EAA6B,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,UAAU,EAAwB,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,YAAY,EAA0B,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,WAAW,EAAyB,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,cAAc,EAA4B,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAyB,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAEL,YAAY,EACZ,OAAO,GAGR,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAsB,MAAM,eAAe,CAAC;AAC7D,OAAO,EAGL,aAAa,EAEb,cAAc,GACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAqB,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,MAAM,EAA2D,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/react/nav/index.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,iGAAiG;AACjG,sFAAsF;AACtF,mFAAmF;AACnF,mFAAmF;AACnF,oFAAoF;AACpF,6FAA6F;AAE7F,cAAc,4BAA4B,CAAC;AAC3C,OAAO,EACL,WAAW,EAEX,eAAe,EAEf,qBAAqB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAA6B,MAAM,sBAAsB,CAAC;AAClF,OAAO,EACL,kBAAkB,EAElB,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,kBAAkB,EAClB,0BAA0B,EAC1B,0BAA0B,EAC1B,qBAAqB,EACrB,mBAAmB,GAEpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAEL,qBAAqB,GAEtB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,eAAe,EAA6B,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAKL,aAAa,EACb,aAAa,EAEb,QAAQ,EAGR,YAAY,GACb,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,eAAe,EAA6B,MAAM,sBAAsB,CAAC;AAClF,OAAO,EAAE,UAAU,EAAwB,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,YAAY,EAA0B,MAAM,mBAAmB,CAAC;AACzE,OAAO,EAAE,WAAW,EAAyB,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAAE,cAAc,EAA4B,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAyB,MAAM,kBAAkB,CAAC;AACtE,OAAO,EAEL,YAAY,EACZ,OAAO,GAGR,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAsB,MAAM,eAAe,CAAC;AAC7D,OAAO,EAGL,aAAa,EAEb,cAAc,GACf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAqB,MAAM,cAAc,CAAC;AAC1D,OAAO,EACL,MAAM,EAGN,YAAY,GAGb,MAAM,aAAa,CAAC"}