@gnome-ui/react 1.45.1 → 1.45.2

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 (574) hide show
  1. package/dist/components/AboutDialog/AboutDialog.cjs +1 -1
  2. package/dist/components/AboutDialog/AboutDialog.cjs.map +1 -1
  3. package/dist/components/AboutDialog/AboutDialog.d.ts +1 -1
  4. package/dist/components/AboutDialog/AboutDialog.js +2 -3
  5. package/dist/components/AboutDialog/AboutDialog.js.map +1 -1
  6. package/dist/components/AboutDialog/AboutDialog.module.css.cjs +1 -1
  7. package/dist/components/AboutDialog/AboutDialog.module.css.js +28 -29
  8. package/dist/components/AboutDialog.cjs +1 -1
  9. package/dist/components/ActionRow/ActionRow.cjs +1 -1
  10. package/dist/components/ActionRow/ActionRow.cjs.map +1 -1
  11. package/dist/components/ActionRow/ActionRow.d.ts +1 -1
  12. package/dist/components/ActionRow/ActionRow.js +2 -2
  13. package/dist/components/ActionRow/ActionRow.js.map +1 -1
  14. package/dist/components/ActionRow.cjs +1 -1
  15. package/dist/components/Avatar/Avatar.cjs +1 -1
  16. package/dist/components/Avatar/Avatar.cjs.map +1 -1
  17. package/dist/components/Avatar/Avatar.d.ts +1 -1
  18. package/dist/components/Avatar/Avatar.js +2 -2
  19. package/dist/components/Avatar/Avatar.js.map +1 -1
  20. package/dist/components/Avatar.cjs +1 -1
  21. package/dist/components/AvatarRotator/AvatarRotator.cjs +1 -1
  22. package/dist/components/AvatarRotator/AvatarRotator.cjs.map +1 -1
  23. package/dist/components/AvatarRotator/AvatarRotator.d.ts +1 -1
  24. package/dist/components/AvatarRotator/AvatarRotator.js +2 -2
  25. package/dist/components/AvatarRotator/AvatarRotator.js.map +1 -1
  26. package/dist/components/AvatarRotator.cjs +1 -1
  27. package/dist/components/Badge/Badge.cjs +1 -1
  28. package/dist/components/Badge/Badge.cjs.map +1 -1
  29. package/dist/components/Badge/Badge.d.ts +1 -1
  30. package/dist/components/Badge/Badge.js +2 -2
  31. package/dist/components/Badge/Badge.js.map +1 -1
  32. package/dist/components/Badge.cjs +1 -1
  33. package/dist/components/Banner/Banner.cjs +1 -1
  34. package/dist/components/Banner/Banner.cjs.map +1 -1
  35. package/dist/components/Banner/Banner.d.ts +1 -1
  36. package/dist/components/Banner/Banner.js +34 -36
  37. package/dist/components/Banner/Banner.js.map +1 -1
  38. package/dist/components/Banner/Banner.module.css.cjs +1 -1
  39. package/dist/components/Banner/Banner.module.css.js +11 -12
  40. package/dist/components/Banner.cjs +1 -1
  41. package/dist/components/Bin/Bin.cjs +1 -1
  42. package/dist/components/Bin/Bin.cjs.map +1 -1
  43. package/dist/components/Bin/Bin.d.ts +1 -1
  44. package/dist/components/Bin/Bin.js +4 -6
  45. package/dist/components/Bin/Bin.js.map +1 -1
  46. package/dist/components/Bin.cjs +1 -1
  47. package/dist/components/Blockquote/Blockquote.cjs +1 -1
  48. package/dist/components/Blockquote/Blockquote.cjs.map +1 -1
  49. package/dist/components/Blockquote/Blockquote.d.ts +1 -1
  50. package/dist/components/Blockquote/Blockquote.js +24 -26
  51. package/dist/components/Blockquote/Blockquote.js.map +1 -1
  52. package/dist/components/Blockquote.cjs +1 -1
  53. package/dist/components/BottomSheet/BottomSheet.cjs +1 -1
  54. package/dist/components/BottomSheet/BottomSheet.cjs.map +1 -1
  55. package/dist/components/BottomSheet/BottomSheet.d.ts +1 -1
  56. package/dist/components/BottomSheet/BottomSheet.js +2 -3
  57. package/dist/components/BottomSheet/BottomSheet.js.map +1 -1
  58. package/dist/components/BottomSheet/BottomSheet.module.css.cjs +1 -1
  59. package/dist/components/BottomSheet/BottomSheet.module.css.js +8 -9
  60. package/dist/components/BottomSheet.cjs +1 -1
  61. package/dist/components/Box/Box.cjs +1 -1
  62. package/dist/components/Box/Box.cjs.map +1 -1
  63. package/dist/components/Box/Box.d.ts +1 -1
  64. package/dist/components/Box/Box.js +2 -2
  65. package/dist/components/Box/Box.js.map +1 -1
  66. package/dist/components/Box.cjs +1 -1
  67. package/dist/components/BoxedList/BoxedList.cjs +1 -1
  68. package/dist/components/BoxedList/BoxedList.cjs.map +1 -1
  69. package/dist/components/BoxedList/BoxedList.d.ts +1 -1
  70. package/dist/components/BoxedList/BoxedList.js +2 -2
  71. package/dist/components/BoxedList/BoxedList.js.map +1 -1
  72. package/dist/components/BoxedList.cjs +1 -1
  73. package/dist/components/BreakpointBin/BreakpointBin.cjs +1 -1
  74. package/dist/components/BreakpointBin/BreakpointBin.cjs.map +1 -1
  75. package/dist/components/BreakpointBin/BreakpointBin.d.ts +1 -1
  76. package/dist/components/BreakpointBin/BreakpointBin.js +2 -2
  77. package/dist/components/BreakpointBin/BreakpointBin.js.map +1 -1
  78. package/dist/components/BreakpointBin.cjs +1 -1
  79. package/dist/components/Button/Button.cjs +1 -1
  80. package/dist/components/Button/Button.cjs.map +1 -1
  81. package/dist/components/Button/Button.js.map +1 -1
  82. package/dist/components/Button.cjs +1 -1
  83. package/dist/components/ButtonContent/ButtonContent.cjs +1 -1
  84. package/dist/components/ButtonContent/ButtonContent.cjs.map +1 -1
  85. package/dist/components/ButtonContent/ButtonContent.d.ts +1 -1
  86. package/dist/components/ButtonContent/ButtonContent.js +24 -26
  87. package/dist/components/ButtonContent/ButtonContent.js.map +1 -1
  88. package/dist/components/ButtonContent.cjs +1 -1
  89. package/dist/components/ButtonRow/ButtonRow.cjs +1 -1
  90. package/dist/components/ButtonRow/ButtonRow.cjs.map +1 -1
  91. package/dist/components/ButtonRow/ButtonRow.d.ts +1 -1
  92. package/dist/components/ButtonRow/ButtonRow.js +22 -24
  93. package/dist/components/ButtonRow/ButtonRow.js.map +1 -1
  94. package/dist/components/ButtonRow.cjs +1 -1
  95. package/dist/components/Card/Card.cjs +1 -1
  96. package/dist/components/Card/Card.cjs.map +1 -1
  97. package/dist/components/Card/Card.d.ts +1 -1
  98. package/dist/components/Card/Card.js +10 -12
  99. package/dist/components/Card/Card.js.map +1 -1
  100. package/dist/components/Card/Card.module.css.cjs +1 -1
  101. package/dist/components/Card/Card.module.css.js +4 -5
  102. package/dist/components/Card.cjs +1 -1
  103. package/dist/components/Carousel/Carousel.cjs +1 -1
  104. package/dist/components/Carousel/Carousel.cjs.map +1 -1
  105. package/dist/components/Carousel/Carousel.d.ts +3 -3
  106. package/dist/components/Carousel/Carousel.js +28 -34
  107. package/dist/components/Carousel/Carousel.js.map +1 -1
  108. package/dist/components/Carousel.cjs +1 -1
  109. package/dist/components/CheckRow/CheckRow.cjs +1 -1
  110. package/dist/components/CheckRow/CheckRow.cjs.map +1 -1
  111. package/dist/components/CheckRow/CheckRow.d.ts +1 -1
  112. package/dist/components/CheckRow/CheckRow.js +7 -7
  113. package/dist/components/CheckRow/CheckRow.js.map +1 -1
  114. package/dist/components/CheckRow.cjs +1 -1
  115. package/dist/components/Checkbox/Checkbox.cjs +1 -1
  116. package/dist/components/Checkbox/Checkbox.cjs.map +1 -1
  117. package/dist/components/Checkbox/Checkbox.d.ts +1 -1
  118. package/dist/components/Checkbox/Checkbox.js +2 -2
  119. package/dist/components/Checkbox/Checkbox.js.map +1 -1
  120. package/dist/components/Checkbox.cjs +1 -1
  121. package/dist/components/Chip/Chip.cjs +1 -1
  122. package/dist/components/Chip/Chip.cjs.map +1 -1
  123. package/dist/components/Chip/Chip.d.ts +1 -1
  124. package/dist/components/Chip/Chip.js +2 -2
  125. package/dist/components/Chip/Chip.js.map +1 -1
  126. package/dist/components/Chip.cjs +1 -1
  127. package/dist/components/Clamp/Clamp.cjs +1 -1
  128. package/dist/components/Clamp/Clamp.cjs.map +1 -1
  129. package/dist/components/Clamp/Clamp.d.ts +1 -1
  130. package/dist/components/Clamp/Clamp.js +9 -11
  131. package/dist/components/Clamp/Clamp.js.map +1 -1
  132. package/dist/components/Clamp.cjs +1 -1
  133. package/dist/components/ColorPicker/ColorPicker.cjs +1 -1
  134. package/dist/components/ColorPicker/ColorPicker.cjs.map +1 -1
  135. package/dist/components/ColorPicker/ColorPicker.d.ts +2 -2
  136. package/dist/components/ColorPicker/ColorPicker.js +33 -37
  137. package/dist/components/ColorPicker/ColorPicker.js.map +1 -1
  138. package/dist/components/ColorPicker/ColorPicker.module.css.cjs +1 -1
  139. package/dist/components/ColorPicker/ColorPicker.module.css.js +9 -10
  140. package/dist/components/ColorPicker.cjs +1 -1
  141. package/dist/components/ColumnView/ColumnView.cjs +1 -1
  142. package/dist/components/ColumnView/ColumnView.cjs.map +1 -1
  143. package/dist/components/ColumnView/ColumnView.d.ts +1 -1
  144. package/dist/components/ColumnView/ColumnView.js +24 -28
  145. package/dist/components/ColumnView/ColumnView.js.map +1 -1
  146. package/dist/components/ColumnView.cjs +1 -1
  147. package/dist/components/ComboRow/ComboRow.cjs +1 -1
  148. package/dist/components/ComboRow/ComboRow.cjs.map +1 -1
  149. package/dist/components/ComboRow/ComboRow.d.ts +1 -1
  150. package/dist/components/ComboRow/ComboRow.js +2 -2
  151. package/dist/components/ComboRow/ComboRow.js.map +1 -1
  152. package/dist/components/ComboRow/ComboRow.module.css.cjs +1 -1
  153. package/dist/components/ComboRow/ComboRow.module.css.js +24 -25
  154. package/dist/components/ComboRow.cjs +1 -1
  155. package/dist/components/ContributionGraph/ContributionGraph.cjs +1 -1
  156. package/dist/components/ContributionGraph/ContributionGraph.cjs.map +1 -1
  157. package/dist/components/ContributionGraph/ContributionGraph.d.ts +1 -1
  158. package/dist/components/ContributionGraph/ContributionGraph.js +2 -2
  159. package/dist/components/ContributionGraph/ContributionGraph.js.map +1 -1
  160. package/dist/components/ContributionGraph.cjs +1 -1
  161. package/dist/components/CountDownTimer/CountDownTimer.cjs +1 -1
  162. package/dist/components/CountDownTimer/CountDownTimer.cjs.map +1 -1
  163. package/dist/components/CountDownTimer/CountDownTimer.d.ts +1 -1
  164. package/dist/components/CountDownTimer/CountDownTimer.js +2 -2
  165. package/dist/components/CountDownTimer/CountDownTimer.js.map +1 -1
  166. package/dist/components/CountDownTimer.cjs +1 -1
  167. package/dist/components/Dialog/Dialog.cjs +1 -1
  168. package/dist/components/Dialog/Dialog.cjs.map +1 -1
  169. package/dist/components/Dialog/Dialog.d.ts +1 -1
  170. package/dist/components/Dialog/Dialog.js +2 -2
  171. package/dist/components/Dialog/Dialog.js.map +1 -1
  172. package/dist/components/Dialog/Dialog.module.css.cjs +1 -1
  173. package/dist/components/Dialog/Dialog.module.css.js +8 -9
  174. package/dist/components/Dialog/dialogUtils.cjs +1 -1
  175. package/dist/components/Dialog/dialogUtils.cjs.map +1 -1
  176. package/dist/components/Dialog/dialogUtils.js.map +1 -1
  177. package/dist/components/Dialog.cjs +1 -1
  178. package/dist/components/Drawer/Drawer.cjs +1 -1
  179. package/dist/components/Drawer/Drawer.cjs.map +1 -1
  180. package/dist/components/Drawer/Drawer.d.ts +1 -1
  181. package/dist/components/Drawer/Drawer.js +2 -2
  182. package/dist/components/Drawer/Drawer.js.map +1 -1
  183. package/dist/components/Drawer/Drawer.module.css.cjs +1 -1
  184. package/dist/components/Drawer/Drawer.module.css.js +11 -12
  185. package/dist/components/Drawer.cjs +1 -1
  186. package/dist/components/Dropdown/Dropdown.cjs +1 -1
  187. package/dist/components/Dropdown/Dropdown.cjs.map +1 -1
  188. package/dist/components/Dropdown/Dropdown.d.ts +1 -1
  189. package/dist/components/Dropdown/Dropdown.js +2 -2
  190. package/dist/components/Dropdown/Dropdown.js.map +1 -1
  191. package/dist/components/Dropdown/Dropdown.module.css.cjs +1 -1
  192. package/dist/components/Dropdown/Dropdown.module.css.js +20 -21
  193. package/dist/components/Dropdown.cjs +1 -1
  194. package/dist/components/EntryRow/EntryRow.cjs +1 -1
  195. package/dist/components/EntryRow/EntryRow.cjs.map +1 -1
  196. package/dist/components/EntryRow/EntryRow.d.ts +1 -1
  197. package/dist/components/EntryRow/EntryRow.js +2 -2
  198. package/dist/components/EntryRow/EntryRow.js.map +1 -1
  199. package/dist/components/EntryRow.cjs +1 -1
  200. package/dist/components/ExpanderRow/ExpanderRow.cjs +1 -1
  201. package/dist/components/ExpanderRow/ExpanderRow.cjs.map +1 -1
  202. package/dist/components/ExpanderRow/ExpanderRow.d.ts +1 -1
  203. package/dist/components/ExpanderRow/ExpanderRow.js +2 -2
  204. package/dist/components/ExpanderRow/ExpanderRow.js.map +1 -1
  205. package/dist/components/ExpanderRow.cjs +1 -1
  206. package/dist/components/Footer/Footer.cjs +1 -1
  207. package/dist/components/Footer/Footer.cjs.map +1 -1
  208. package/dist/components/Footer/Footer.d.ts +1 -1
  209. package/dist/components/Footer/Footer.js +22 -24
  210. package/dist/components/Footer/Footer.js.map +1 -1
  211. package/dist/components/Footer.cjs +1 -1
  212. package/dist/components/Frame/Frame.cjs +1 -1
  213. package/dist/components/Frame/Frame.cjs.map +1 -1
  214. package/dist/components/Frame/Frame.d.ts +1 -1
  215. package/dist/components/Frame/Frame.js +5 -7
  216. package/dist/components/Frame/Frame.js.map +1 -1
  217. package/dist/components/Frame.cjs +1 -1
  218. package/dist/components/GnomeProvider/GnomeContext.cjs +1 -1
  219. package/dist/components/GnomeProvider/GnomeContext.cjs.map +1 -1
  220. package/dist/components/GnomeProvider/GnomeContext.js.map +1 -1
  221. package/dist/components/GnomeProvider/GnomeProvider.cjs +1 -1
  222. package/dist/components/GnomeProvider/GnomeProvider.cjs.map +1 -1
  223. package/dist/components/GnomeProvider/GnomeProvider.d.ts +1 -1
  224. package/dist/components/GnomeProvider/GnomeProvider.js +2 -2
  225. package/dist/components/GnomeProvider/GnomeProvider.js.map +1 -1
  226. package/dist/components/HeaderBar/HeaderBar.cjs +1 -1
  227. package/dist/components/HeaderBar/HeaderBar.cjs.map +1 -1
  228. package/dist/components/HeaderBar/HeaderBar.d.ts +1 -1
  229. package/dist/components/HeaderBar/HeaderBar.js +26 -28
  230. package/dist/components/HeaderBar/HeaderBar.js.map +1 -1
  231. package/dist/components/HeaderBar.cjs +1 -1
  232. package/dist/components/Icon/Icon.cjs +1 -1
  233. package/dist/components/Icon/Icon.cjs.map +1 -1
  234. package/dist/components/Icon/Icon.d.ts +1 -1
  235. package/dist/components/Icon/Icon.js +2 -2
  236. package/dist/components/Icon/Icon.js.map +1 -1
  237. package/dist/components/Icon.cjs +1 -1
  238. package/dist/components/IconButton/IconButton.cjs +1 -1
  239. package/dist/components/IconButton/IconButton.cjs.map +1 -1
  240. package/dist/components/IconButton/IconButton.js +4 -4
  241. package/dist/components/IconButton/IconButton.js.map +1 -1
  242. package/dist/components/IconButton.cjs +1 -1
  243. package/dist/components/InlineViewSwitcher/InlineViewSwitcher.cjs +1 -1
  244. package/dist/components/InlineViewSwitcher/InlineViewSwitcher.cjs.map +1 -1
  245. package/dist/components/InlineViewSwitcher/InlineViewSwitcher.d.ts +1 -1
  246. package/dist/components/InlineViewSwitcher/InlineViewSwitcher.js +2 -2
  247. package/dist/components/InlineViewSwitcher/InlineViewSwitcher.js.map +1 -1
  248. package/dist/components/InlineViewSwitcher/InlineViewSwitcherItem.cjs +1 -1
  249. package/dist/components/InlineViewSwitcher/InlineViewSwitcherItem.cjs.map +1 -1
  250. package/dist/components/InlineViewSwitcher/InlineViewSwitcherItem.d.ts +1 -1
  251. package/dist/components/InlineViewSwitcher/InlineViewSwitcherItem.js +2 -2
  252. package/dist/components/InlineViewSwitcher/InlineViewSwitcherItem.js.map +1 -1
  253. package/dist/components/InlineViewSwitcher.cjs +1 -1
  254. package/dist/components/Link/Link.cjs +1 -1
  255. package/dist/components/Link/Link.cjs.map +1 -1
  256. package/dist/components/Link/Link.d.ts +1 -1
  257. package/dist/components/Link/Link.js +2 -2
  258. package/dist/components/Link/Link.js.map +1 -1
  259. package/dist/components/Link.cjs +1 -1
  260. package/dist/components/LinkedGroup/LinkedGroup.cjs +1 -1
  261. package/dist/components/LinkedGroup/LinkedGroup.cjs.map +1 -1
  262. package/dist/components/LinkedGroup/LinkedGroup.d.ts +1 -1
  263. package/dist/components/LinkedGroup/LinkedGroup.js +9 -11
  264. package/dist/components/LinkedGroup/LinkedGroup.js.map +1 -1
  265. package/dist/components/LinkedGroup.cjs +1 -1
  266. package/dist/components/NavigationSplitView/NavigationSplitView.cjs +1 -1
  267. package/dist/components/NavigationSplitView/NavigationSplitView.cjs.map +1 -1
  268. package/dist/components/NavigationSplitView/NavigationSplitView.d.ts +1 -1
  269. package/dist/components/NavigationSplitView/NavigationSplitView.js +2 -2
  270. package/dist/components/NavigationSplitView/NavigationSplitView.js.map +1 -1
  271. package/dist/components/NavigationSplitView.cjs +1 -1
  272. package/dist/components/NavigationView/NavigationView.cjs +1 -1
  273. package/dist/components/NavigationView/NavigationView.cjs.map +1 -1
  274. package/dist/components/NavigationView/NavigationView.d.ts +2 -2
  275. package/dist/components/NavigationView/NavigationView.js +3 -4
  276. package/dist/components/NavigationView/NavigationView.js.map +1 -1
  277. package/dist/components/NavigationView/NavigationView.module.css.cjs +1 -1
  278. package/dist/components/NavigationView/NavigationView.module.css.js +9 -10
  279. package/dist/components/NavigationView.cjs +1 -1
  280. package/dist/components/OverlaySplitView/OverlaySplitView.cjs +1 -1
  281. package/dist/components/OverlaySplitView/OverlaySplitView.cjs.map +1 -1
  282. package/dist/components/OverlaySplitView/OverlaySplitView.d.ts +1 -1
  283. package/dist/components/OverlaySplitView/OverlaySplitView.js +2 -2
  284. package/dist/components/OverlaySplitView/OverlaySplitView.js.map +1 -1
  285. package/dist/components/OverlaySplitView.cjs +1 -1
  286. package/dist/components/PasswordEntryRow/PasswordEntryRow.cjs +1 -1
  287. package/dist/components/PasswordEntryRow/PasswordEntryRow.cjs.map +1 -1
  288. package/dist/components/PasswordEntryRow/PasswordEntryRow.d.ts +1 -1
  289. package/dist/components/PasswordEntryRow/PasswordEntryRow.js +2 -2
  290. package/dist/components/PasswordEntryRow/PasswordEntryRow.js.map +1 -1
  291. package/dist/components/PasswordEntryRow.cjs +1 -1
  292. package/dist/components/PathBar/PathBar.cjs +1 -1
  293. package/dist/components/PathBar/PathBar.cjs.map +1 -1
  294. package/dist/components/PathBar/PathBar.d.ts +1 -1
  295. package/dist/components/PathBar/PathBar.js +48 -50
  296. package/dist/components/PathBar/PathBar.js.map +1 -1
  297. package/dist/components/PathBar.cjs +1 -1
  298. package/dist/components/Popover/Popover.cjs +1 -1
  299. package/dist/components/Popover/Popover.cjs.map +1 -1
  300. package/dist/components/Popover/Popover.d.ts +1 -1
  301. package/dist/components/Popover/Popover.js +5 -5
  302. package/dist/components/Popover/Popover.js.map +1 -1
  303. package/dist/components/Popover.cjs +1 -1
  304. package/dist/components/PreferencesDialog/PreferencesDialog.cjs +1 -1
  305. package/dist/components/PreferencesDialog/PreferencesDialog.cjs.map +1 -1
  306. package/dist/components/PreferencesDialog/PreferencesDialog.d.ts +1 -1
  307. package/dist/components/PreferencesDialog/PreferencesDialog.js +2 -2
  308. package/dist/components/PreferencesDialog/PreferencesDialog.js.map +1 -1
  309. package/dist/components/PreferencesDialog/PreferencesDialog.module.css.cjs +1 -1
  310. package/dist/components/PreferencesDialog/PreferencesDialog.module.css.js +18 -19
  311. package/dist/components/PreferencesDialog.cjs +1 -1
  312. package/dist/components/PreferencesGroup/PreferencesGroup.cjs +1 -1
  313. package/dist/components/PreferencesGroup/PreferencesGroup.cjs.map +1 -1
  314. package/dist/components/PreferencesGroup/PreferencesGroup.d.ts +1 -1
  315. package/dist/components/PreferencesGroup/PreferencesGroup.js +2 -2
  316. package/dist/components/PreferencesGroup/PreferencesGroup.js.map +1 -1
  317. package/dist/components/PreferencesGroup.cjs +1 -1
  318. package/dist/components/PreferencesPage/PreferencesPage.cjs +1 -1
  319. package/dist/components/PreferencesPage/PreferencesPage.cjs.map +1 -1
  320. package/dist/components/PreferencesPage/PreferencesPage.d.ts +1 -1
  321. package/dist/components/PreferencesPage/PreferencesPage.js +9 -11
  322. package/dist/components/PreferencesPage/PreferencesPage.js.map +1 -1
  323. package/dist/components/PreferencesPage.cjs +1 -1
  324. package/dist/components/ProgressBar/ProgressBar.cjs +1 -1
  325. package/dist/components/ProgressBar/ProgressBar.cjs.map +1 -1
  326. package/dist/components/ProgressBar/ProgressBar.d.ts +1 -1
  327. package/dist/components/ProgressBar/ProgressBar.js +2 -2
  328. package/dist/components/ProgressBar/ProgressBar.js.map +1 -1
  329. package/dist/components/ProgressBar.cjs +1 -1
  330. package/dist/components/RadioButton/RadioButton.cjs +1 -1
  331. package/dist/components/RadioButton/RadioButton.cjs.map +1 -1
  332. package/dist/components/RadioButton/RadioButton.d.ts +1 -1
  333. package/dist/components/RadioButton/RadioButton.js +5 -7
  334. package/dist/components/RadioButton/RadioButton.js.map +1 -1
  335. package/dist/components/RadioButton.cjs +1 -1
  336. package/dist/components/SearchBar/SearchBar.cjs +1 -1
  337. package/dist/components/SearchBar/SearchBar.cjs.map +1 -1
  338. package/dist/components/SearchBar/SearchBar.d.ts +1 -1
  339. package/dist/components/SearchBar/SearchBar.js +2 -2
  340. package/dist/components/SearchBar/SearchBar.js.map +1 -1
  341. package/dist/components/SearchBar.cjs +1 -1
  342. package/dist/components/SegmentedBar/SegmentedBar.cjs +1 -1
  343. package/dist/components/SegmentedBar/SegmentedBar.cjs.map +1 -1
  344. package/dist/components/SegmentedBar/SegmentedBar.js.map +1 -1
  345. package/dist/components/SegmentedBar.cjs +1 -1
  346. package/dist/components/Separator/Separator.cjs +1 -1
  347. package/dist/components/Separator/Separator.cjs.map +1 -1
  348. package/dist/components/Separator/Separator.d.ts +1 -1
  349. package/dist/components/Separator/Separator.js +2 -2
  350. package/dist/components/Separator/Separator.js.map +1 -1
  351. package/dist/components/Separator.cjs +1 -1
  352. package/dist/components/ShortcutLabel/ShortcutLabel.cjs +1 -1
  353. package/dist/components/ShortcutLabel/ShortcutLabel.cjs.map +1 -1
  354. package/dist/components/ShortcutLabel/ShortcutLabel.d.ts +1 -1
  355. package/dist/components/ShortcutLabel/ShortcutLabel.js +2 -3
  356. package/dist/components/ShortcutLabel/ShortcutLabel.js.map +1 -1
  357. package/dist/components/ShortcutLabel.cjs +1 -1
  358. package/dist/components/ShortcutsDialog/ShortcutsDialog.cjs +1 -1
  359. package/dist/components/ShortcutsDialog/ShortcutsDialog.cjs.map +1 -1
  360. package/dist/components/ShortcutsDialog/ShortcutsDialog.d.ts +1 -1
  361. package/dist/components/ShortcutsDialog/ShortcutsDialog.js +2 -3
  362. package/dist/components/ShortcutsDialog/ShortcutsDialog.js.map +1 -1
  363. package/dist/components/ShortcutsDialog/ShortcutsDialog.module.css.cjs +1 -1
  364. package/dist/components/ShortcutsDialog/ShortcutsDialog.module.css.js +21 -22
  365. package/dist/components/ShortcutsDialog.cjs +1 -1
  366. package/dist/components/Sidebar/Sidebar.cjs +1 -1
  367. package/dist/components/Sidebar/Sidebar.cjs.map +1 -1
  368. package/dist/components/Sidebar/Sidebar.d.ts +1 -1
  369. package/dist/components/Sidebar/Sidebar.js +2 -3
  370. package/dist/components/Sidebar/Sidebar.js.map +1 -1
  371. package/dist/components/Sidebar/Sidebar.module.css.cjs +1 -1
  372. package/dist/components/Sidebar/Sidebar.module.css.js +33 -34
  373. package/dist/components/Sidebar/SidebarItem.cjs +1 -1
  374. package/dist/components/Sidebar/SidebarItem.cjs.map +1 -1
  375. package/dist/components/Sidebar/SidebarItem.d.ts +1 -1
  376. package/dist/components/Sidebar/SidebarItem.js +16 -16
  377. package/dist/components/Sidebar/SidebarItem.js.map +1 -1
  378. package/dist/components/Sidebar/SidebarSection.cjs +1 -1
  379. package/dist/components/Sidebar/SidebarSection.cjs.map +1 -1
  380. package/dist/components/Sidebar/SidebarSection.js.map +1 -1
  381. package/dist/components/Sidebar.cjs +1 -1
  382. package/dist/components/Skeleton/Skeleton.cjs +1 -1
  383. package/dist/components/Skeleton/Skeleton.cjs.map +1 -1
  384. package/dist/components/Skeleton/Skeleton.d.ts +1 -1
  385. package/dist/components/Skeleton/Skeleton.js +9 -10
  386. package/dist/components/Skeleton/Skeleton.js.map +1 -1
  387. package/dist/components/Skeleton.cjs +1 -1
  388. package/dist/components/Slider/Slider.cjs +1 -1
  389. package/dist/components/Slider/Slider.cjs.map +1 -1
  390. package/dist/components/Slider/Slider.d.ts +1 -1
  391. package/dist/components/Slider/Slider.js +2 -2
  392. package/dist/components/Slider/Slider.js.map +1 -1
  393. package/dist/components/Slider.cjs +1 -1
  394. package/dist/components/SpinButton/SpinButton.cjs +1 -1
  395. package/dist/components/SpinButton/SpinButton.cjs.map +1 -1
  396. package/dist/components/SpinButton/SpinButton.d.ts +1 -1
  397. package/dist/components/SpinButton/SpinButton.js +2 -2
  398. package/dist/components/SpinButton/SpinButton.js.map +1 -1
  399. package/dist/components/SpinButton.cjs +1 -1
  400. package/dist/components/SpinRow/SpinRow.cjs +1 -1
  401. package/dist/components/SpinRow/SpinRow.cjs.map +1 -1
  402. package/dist/components/SpinRow/SpinRow.d.ts +1 -1
  403. package/dist/components/SpinRow/SpinRow.js +2 -2
  404. package/dist/components/SpinRow/SpinRow.js.map +1 -1
  405. package/dist/components/SpinRow.cjs +1 -1
  406. package/dist/components/Spinner/Spinner.cjs +1 -1
  407. package/dist/components/Spinner/Spinner.cjs.map +1 -1
  408. package/dist/components/Spinner/Spinner.d.ts +1 -1
  409. package/dist/components/Spinner/Spinner.js +2 -2
  410. package/dist/components/Spinner/Spinner.js.map +1 -1
  411. package/dist/components/Spinner.cjs +1 -1
  412. package/dist/components/SplitButton/SplitButton.cjs +1 -1
  413. package/dist/components/SplitButton/SplitButton.cjs.map +1 -1
  414. package/dist/components/SplitButton/SplitButton.d.ts +1 -1
  415. package/dist/components/SplitButton/SplitButton.js +2 -2
  416. package/dist/components/SplitButton/SplitButton.js.map +1 -1
  417. package/dist/components/SplitButton.cjs +1 -1
  418. package/dist/components/StatusBadge/StatusBadge.cjs +1 -1
  419. package/dist/components/StatusBadge/StatusBadge.cjs.map +1 -1
  420. package/dist/components/StatusBadge/StatusBadge.d.ts +1 -1
  421. package/dist/components/StatusBadge/StatusBadge.js +9 -11
  422. package/dist/components/StatusBadge/StatusBadge.js.map +1 -1
  423. package/dist/components/StatusBadge.cjs +1 -1
  424. package/dist/components/StatusPage/StatusPage.cjs +1 -1
  425. package/dist/components/StatusPage/StatusPage.cjs.map +1 -1
  426. package/dist/components/StatusPage/StatusPage.d.ts +1 -1
  427. package/dist/components/StatusPage/StatusPage.js +2 -2
  428. package/dist/components/StatusPage/StatusPage.js.map +1 -1
  429. package/dist/components/StatusPage.cjs +1 -1
  430. package/dist/components/Switch/Switch.cjs +1 -1
  431. package/dist/components/Switch/Switch.cjs.map +1 -1
  432. package/dist/components/Switch/Switch.d.ts +1 -1
  433. package/dist/components/Switch/Switch.js +6 -8
  434. package/dist/components/Switch/Switch.js.map +1 -1
  435. package/dist/components/Switch.cjs +1 -1
  436. package/dist/components/SwitchRow/SwitchRow.cjs +1 -1
  437. package/dist/components/SwitchRow/SwitchRow.cjs.map +1 -1
  438. package/dist/components/SwitchRow/SwitchRow.d.ts +1 -1
  439. package/dist/components/SwitchRow/SwitchRow.js +7 -7
  440. package/dist/components/SwitchRow/SwitchRow.js.map +1 -1
  441. package/dist/components/SwitchRow.cjs +1 -1
  442. package/dist/components/Tabs/TabBar.cjs +1 -1
  443. package/dist/components/Tabs/TabBar.cjs.map +1 -1
  444. package/dist/components/Tabs/TabBar.d.ts +1 -1
  445. package/dist/components/Tabs/TabBar.js +2 -2
  446. package/dist/components/Tabs/TabBar.js.map +1 -1
  447. package/dist/components/Tabs/TabItem.cjs +1 -1
  448. package/dist/components/Tabs/TabItem.cjs.map +1 -1
  449. package/dist/components/Tabs/TabItem.js.map +1 -1
  450. package/dist/components/Tabs/TabPanel.cjs +1 -1
  451. package/dist/components/Tabs/TabPanel.cjs.map +1 -1
  452. package/dist/components/Tabs/TabPanel.d.ts +1 -1
  453. package/dist/components/Tabs/TabPanel.js +8 -10
  454. package/dist/components/Tabs/TabPanel.js.map +1 -1
  455. package/dist/components/Tabs.cjs +1 -1
  456. package/dist/components/TerminalView/TerminalView.cjs +1 -1
  457. package/dist/components/TerminalView/TerminalView.cjs.map +1 -1
  458. package/dist/components/TerminalView/TerminalView.d.ts +1 -1
  459. package/dist/components/TerminalView/TerminalView.js +2 -2
  460. package/dist/components/TerminalView/TerminalView.js.map +1 -1
  461. package/dist/components/TerminalView.cjs +1 -1
  462. package/dist/components/Text/Text.cjs +1 -1
  463. package/dist/components/Text/Text.cjs.map +1 -1
  464. package/dist/components/Text/Text.d.ts +1 -1
  465. package/dist/components/Text/Text.js +10 -13
  466. package/dist/components/Text/Text.js.map +1 -1
  467. package/dist/components/Text/Text.module.css.cjs +1 -1
  468. package/dist/components/Text/Text.module.css.js +9 -10
  469. package/dist/components/Text.cjs +1 -1
  470. package/dist/components/TextField/TextField.cjs +1 -1
  471. package/dist/components/TextField/TextField.cjs.map +1 -1
  472. package/dist/components/TextField/TextField.d.ts +1 -1
  473. package/dist/components/TextField/TextField.js +2 -2
  474. package/dist/components/TextField/TextField.js.map +1 -1
  475. package/dist/components/TextField.cjs +1 -1
  476. package/dist/components/Timeline/Timeline.cjs +1 -1
  477. package/dist/components/Timeline/Timeline.cjs.map +1 -1
  478. package/dist/components/Timeline/Timeline.d.ts +1 -1
  479. package/dist/components/Timeline/Timeline.js +2 -2
  480. package/dist/components/Timeline/Timeline.js.map +1 -1
  481. package/dist/components/Timeline.cjs +1 -1
  482. package/dist/components/Toast/Toast.cjs +1 -1
  483. package/dist/components/Toast/Toast.cjs.map +1 -1
  484. package/dist/components/Toast/Toast.d.ts +1 -1
  485. package/dist/components/Toast/Toast.js +2 -2
  486. package/dist/components/Toast/Toast.js.map +1 -1
  487. package/dist/components/Toast/Toast.module.css.cjs +1 -1
  488. package/dist/components/Toast/Toast.module.css.js +10 -11
  489. package/dist/components/Toast/Toaster.cjs +1 -1
  490. package/dist/components/Toast/Toaster.cjs.map +1 -1
  491. package/dist/components/Toast/Toaster.d.ts +1 -1
  492. package/dist/components/Toast/Toaster.js +2 -2
  493. package/dist/components/Toast/Toaster.js.map +1 -1
  494. package/dist/components/Toast.cjs +1 -1
  495. package/dist/components/ToggleGroup/ToggleGroup.cjs +1 -1
  496. package/dist/components/ToggleGroup/ToggleGroup.cjs.map +1 -1
  497. package/dist/components/ToggleGroup/ToggleGroup.d.ts +1 -1
  498. package/dist/components/ToggleGroup/ToggleGroup.js +2 -2
  499. package/dist/components/ToggleGroup/ToggleGroup.js.map +1 -1
  500. package/dist/components/ToggleGroup/ToggleGroupItem.cjs +1 -1
  501. package/dist/components/ToggleGroup/ToggleGroupItem.cjs.map +1 -1
  502. package/dist/components/ToggleGroup/ToggleGroupItem.d.ts +1 -1
  503. package/dist/components/ToggleGroup/ToggleGroupItem.js +2 -2
  504. package/dist/components/ToggleGroup/ToggleGroupItem.js.map +1 -1
  505. package/dist/components/ToggleGroup.cjs +1 -1
  506. package/dist/components/Toolbar/Spacer.cjs +1 -1
  507. package/dist/components/Toolbar/Spacer.cjs.map +1 -1
  508. package/dist/components/Toolbar/Spacer.d.ts +1 -1
  509. package/dist/components/Toolbar/Spacer.js +5 -7
  510. package/dist/components/Toolbar/Spacer.js.map +1 -1
  511. package/dist/components/Toolbar/Toolbar.cjs +1 -1
  512. package/dist/components/Toolbar/Toolbar.cjs.map +1 -1
  513. package/dist/components/Toolbar/Toolbar.d.ts +1 -1
  514. package/dist/components/Toolbar/Toolbar.js +5 -7
  515. package/dist/components/Toolbar/Toolbar.js.map +1 -1
  516. package/dist/components/Toolbar.cjs +1 -1
  517. package/dist/components/ToolbarView/ToolbarView.cjs +1 -1
  518. package/dist/components/ToolbarView/ToolbarView.cjs.map +1 -1
  519. package/dist/components/ToolbarView/ToolbarView.d.ts +1 -1
  520. package/dist/components/ToolbarView/ToolbarView.js +18 -20
  521. package/dist/components/ToolbarView/ToolbarView.js.map +1 -1
  522. package/dist/components/ToolbarView.cjs +1 -1
  523. package/dist/components/Tooltip/Tooltip.cjs +1 -1
  524. package/dist/components/Tooltip/Tooltip.cjs.map +1 -1
  525. package/dist/components/Tooltip/Tooltip.d.ts +1 -1
  526. package/dist/components/Tooltip/Tooltip.js +2 -2
  527. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  528. package/dist/components/Tooltip.cjs +1 -1
  529. package/dist/components/ViewSwitcher/ViewSwitcher.cjs +1 -1
  530. package/dist/components/ViewSwitcher/ViewSwitcher.cjs.map +1 -1
  531. package/dist/components/ViewSwitcher/ViewSwitcher.d.ts +1 -1
  532. package/dist/components/ViewSwitcher/ViewSwitcher.js +2 -2
  533. package/dist/components/ViewSwitcher/ViewSwitcher.js.map +1 -1
  534. package/dist/components/ViewSwitcher/ViewSwitcherItem.cjs +1 -1
  535. package/dist/components/ViewSwitcher/ViewSwitcherItem.cjs.map +1 -1
  536. package/dist/components/ViewSwitcher/ViewSwitcherItem.d.ts +1 -1
  537. package/dist/components/ViewSwitcher/ViewSwitcherItem.js +24 -26
  538. package/dist/components/ViewSwitcher/ViewSwitcherItem.js.map +1 -1
  539. package/dist/components/ViewSwitcher.cjs +1 -1
  540. package/dist/components/ViewSwitcherBar/ViewSwitcherBar.cjs +1 -1
  541. package/dist/components/ViewSwitcherBar/ViewSwitcherBar.cjs.map +1 -1
  542. package/dist/components/ViewSwitcherBar/ViewSwitcherBar.d.ts +1 -1
  543. package/dist/components/ViewSwitcherBar/ViewSwitcherBar.js +7 -9
  544. package/dist/components/ViewSwitcherBar/ViewSwitcherBar.js.map +1 -1
  545. package/dist/components/ViewSwitcherBar.cjs +1 -1
  546. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebar.cjs +1 -1
  547. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebar.cjs.map +1 -1
  548. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebar.d.ts +1 -1
  549. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebar.js +2 -2
  550. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebar.js.map +1 -1
  551. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebarItem.cjs +1 -1
  552. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebarItem.cjs.map +1 -1
  553. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebarItem.d.ts +1 -1
  554. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebarItem.js +2 -2
  555. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebarItem.js.map +1 -1
  556. package/dist/components/ViewSwitcherSidebar.cjs +1 -1
  557. package/dist/components/WindowTitle/WindowTitle.cjs +1 -1
  558. package/dist/components/WindowTitle/WindowTitle.cjs.map +1 -1
  559. package/dist/components/WindowTitle/WindowTitle.d.ts +1 -1
  560. package/dist/components/WindowTitle/WindowTitle.js +11 -13
  561. package/dist/components/WindowTitle/WindowTitle.js.map +1 -1
  562. package/dist/components/WindowTitle.cjs +1 -1
  563. package/dist/components/WrapBox/WrapBox.cjs +1 -1
  564. package/dist/components/WrapBox/WrapBox.cjs.map +1 -1
  565. package/dist/components/WrapBox/WrapBox.d.ts +1 -1
  566. package/dist/components/WrapBox/WrapBox.js +5 -5
  567. package/dist/components/WrapBox/WrapBox.js.map +1 -1
  568. package/dist/components/WrapBox.cjs +1 -1
  569. package/dist/hooks/useBreakpoint.cjs +1 -1
  570. package/dist/hooks/useBreakpoint.cjs.map +1 -1
  571. package/dist/hooks/useBreakpoint.js.map +1 -1
  572. package/dist/hooks.cjs +1 -1
  573. package/dist/index.cjs +1 -1
  574. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"ViewSwitcher.cjs","names":[],"sources":["../../../src/components/ViewSwitcher/ViewSwitcher.tsx"],"sourcesContent":["import { type HTMLAttributes, type KeyboardEvent, type ReactNode, useRef } from 'react';\n\nimport styles from './ViewSwitcher.module.css';\n\nexport interface ViewSwitcherProps extends HTMLAttributes<HTMLDivElement> {\n children?: ReactNode;\n /** Accessible label for the group. */\n 'aria-label'?: string;\n}\n\n/**\n * Segmented control for switching between major views.\n *\n * Mirrors the Adwaita `AdwViewSwitcher` pattern. Place in a `HeaderBar`\n * as the `title` for the canonical GNOME layout.\n *\n * Compose with `ViewSwitcherItem` for each option.\n * Keyboard: ← / → cycle through items, Home / End jump to first / last.\n *\n * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.ViewSwitcher.html\n * @see https://developer.gnome.org/hig/patterns/nav/view-switchers.html\n */\nexport function ViewSwitcher({\n children,\n className,\n 'aria-label': ariaLabel = 'View switcher',\n ...props\n}: ViewSwitcherProps) {\n const groupRef = useRef<HTMLDivElement>(null);\n\n function handleKeyDown(e: KeyboardEvent<HTMLDivElement>) {\n const items = Array.from(\n groupRef.current?.querySelectorAll<HTMLButtonElement>('[role=radio]:not(:disabled)') ?? [],\n );\n const activeElement = document.activeElement;\n const idx = activeElement instanceof HTMLButtonElement ? items.indexOf(activeElement) : -1;\n\n if (idx === -1) {\n return;\n }\n\n let next = idx;\n if (e.key === 'ArrowRight' || e.key === 'ArrowDown') {\n next = (idx + 1) % items.length;\n } else if (e.key === 'ArrowLeft' || e.key === 'ArrowUp') {\n next = (idx - 1 + items.length) % items.length;\n } else if (e.key === 'Home') {\n next = 0;\n } else if (e.key === 'End') {\n next = items.length - 1;\n } else {\n return;\n }\n\n e.preventDefault();\n items[next].focus();\n items[next].click();\n }\n\n return (\n <div\n ref={groupRef}\n role=\"radiogroup\"\n aria-label={ariaLabel}\n onKeyDown={handleKeyDown}\n className={[styles.switcher, className].filter(Boolean).join(' ')}\n {...props}\n >\n {children}\n </div>\n );\n}\n"],"mappings":"uGAsBA,SAAgB,EAAa,CAC3B,WACA,YACA,aAAc,EAAY,gBAC1B,GAAG,GACiB,CACpB,IAAM,GAAA,EAAA,EAAA,QAAkC,KAAK,CAE7C,SAAS,EAAc,EAAkC,CACvD,IAAM,EAAQ,MAAM,KAClB,EAAS,SAAS,iBAAoC,8BAA8B,EAAI,EAAE,CAC3F,CACK,EAAgB,SAAS,cACzB,EAAM,aAAyB,kBAAoB,EAAM,QAAQ,EAAc,CAAG,GAExF,GAAI,IAAQ,GACV,OAGF,IAAI,EAAO,EACX,GAAI,EAAE,MAAQ,cAAgB,EAAE,MAAQ,YACtC,GAAQ,EAAM,GAAK,EAAM,eAChB,EAAE,MAAQ,aAAe,EAAE,MAAQ,UAC5C,GAAQ,EAAM,EAAI,EAAM,QAAU,EAAM,eAC/B,EAAE,MAAQ,OACnB,EAAO,UACE,EAAE,MAAQ,MACnB,EAAO,EAAM,OAAS,OAEtB,OAGF,EAAE,gBAAgB,CAClB,EAAM,GAAM,OAAO,CACnB,EAAM,GAAM,OAAO,CAGrB,OACE,EAAA,EAAA,KAAC,MAAD,CACE,IAAK,EACL,KAAK,aACL,aAAY,EACZ,UAAW,EACX,UAAW,CAAC,EAAA,QAAO,SAAU,EAAU,CAAC,OAAO,QAAQ,CAAC,KAAK,IAAI,CACjE,GAAI,EAEH,WACG,CAAA"}
1
+ {"version":3,"file":"ViewSwitcher.cjs","names":[],"sources":["../../../src/components/ViewSwitcher/ViewSwitcher.tsx"],"sourcesContent":["import { type HTMLAttributes, type KeyboardEvent, type ReactNode, useRef } from 'react';\n\nimport styles from './ViewSwitcher.module.css';\n\nexport interface ViewSwitcherProps extends HTMLAttributes<HTMLDivElement> {\n children?: ReactNode;\n /** Accessible label for the group. */\n 'aria-label'?: string;\n}\n\n/**\n * Segmented control for switching between major views.\n *\n * Mirrors the Adwaita `AdwViewSwitcher` pattern. Place in a `HeaderBar`\n * as the `title` for the canonical GNOME layout.\n *\n * Compose with `ViewSwitcherItem` for each option.\n * Keyboard: ← / → cycle through items, Home / End jump to first / last.\n *\n * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.ViewSwitcher.html\n * @see https://developer.gnome.org/hig/patterns/nav/view-switchers.html\n */\nexport const ViewSwitcher = ({\n children,\n className,\n 'aria-label': ariaLabel = 'View switcher',\n ...props\n}: ViewSwitcherProps) => {\n const groupRef = useRef<HTMLDivElement>(null);\n\n function handleKeyDown(e: KeyboardEvent<HTMLDivElement>) {\n const items = Array.from(\n groupRef.current?.querySelectorAll<HTMLButtonElement>('[role=radio]:not(:disabled)') ?? [],\n );\n const activeElement = document.activeElement;\n const idx = activeElement instanceof HTMLButtonElement ? items.indexOf(activeElement) : -1;\n\n if (idx === -1) {\n return;\n }\n\n let next = idx;\n if (e.key === 'ArrowRight' || e.key === 'ArrowDown') {\n next = (idx + 1) % items.length;\n } else if (e.key === 'ArrowLeft' || e.key === 'ArrowUp') {\n next = (idx - 1 + items.length) % items.length;\n } else if (e.key === 'Home') {\n next = 0;\n } else if (e.key === 'End') {\n next = items.length - 1;\n } else {\n return;\n }\n\n e.preventDefault();\n items[next].focus();\n items[next].click();\n }\n\n return (\n <div\n ref={groupRef}\n role=\"radiogroup\"\n aria-label={ariaLabel}\n onKeyDown={handleKeyDown}\n className={[styles.switcher, className].filter(Boolean).join(' ')}\n {...props}\n >\n {children}\n </div>\n );\n};\n"],"mappings":"uGAsBA,IAAa,GAAgB,CAC3B,WACA,YACA,aAAc,EAAY,gBAC1B,GAAG,KACoB,CACvB,IAAM,GAAA,EAAA,EAAA,QAAkC,IAAI,EAE5C,SAAS,EAAc,EAAkC,CACvD,IAAM,EAAQ,MAAM,KAClB,EAAS,SAAS,iBAAoC,6BAA6B,GAAK,CAAC,CAC3F,EACM,EAAgB,SAAS,cACzB,EAAM,aAAyB,kBAAoB,EAAM,QAAQ,CAAa,EAAI,GAExF,GAAI,IAAQ,GACV,OAGF,IAAI,EAAO,EACX,GAAI,EAAE,MAAQ,cAAgB,EAAE,MAAQ,YACtC,GAAQ,EAAM,GAAK,EAAM,YACpB,GAAI,EAAE,MAAQ,aAAe,EAAE,MAAQ,UAC5C,GAAQ,EAAM,EAAI,EAAM,QAAU,EAAM,YACnC,GAAI,EAAE,MAAQ,OACnB,EAAO,OACF,GAAI,EAAE,MAAQ,MACnB,EAAO,EAAM,OAAS,OAEtB,OAGF,EAAE,eAAe,EACjB,EAAM,GAAM,MAAM,EAClB,EAAM,GAAM,MAAM,CACpB,CAEA,OACE,EAAA,EAAA,KAAC,MAAD,CACE,IAAK,EACL,KAAK,aACL,aAAY,EACZ,UAAW,EACX,UAAW,CAAC,EAAA,QAAO,SAAU,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,EAChE,GAAI,EAEH,UACE,CAAA,CAET"}
@@ -16,4 +16,4 @@ export interface ViewSwitcherProps extends HTMLAttributes<HTMLDivElement> {
16
16
  * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.ViewSwitcher.html
17
17
  * @see https://developer.gnome.org/hig/patterns/nav/view-switchers.html
18
18
  */
19
- export declare function ViewSwitcher({ children, className, 'aria-label': ariaLabel, ...props }: ViewSwitcherProps): import("react/jsx-runtime").JSX.Element;
19
+ export declare const ViewSwitcher: ({ children, className, "aria-label": ariaLabel, ...props }: ViewSwitcherProps) => import("react/jsx-runtime").JSX.Element;
@@ -2,7 +2,7 @@ import e from "./ViewSwitcher.module.css.js";
2
2
  import { useRef as t } from "react";
3
3
  import { jsx as n } from "react/jsx-runtime";
4
4
  //#region src/components/ViewSwitcher/ViewSwitcher.tsx
5
- function r({ children: r, className: i, "aria-label": a = "View switcher", ...o }) {
5
+ var r = ({ children: r, className: i, "aria-label": a = "View switcher", ...o }) => {
6
6
  let s = t(null);
7
7
  function c(e) {
8
8
  let t = Array.from(s.current?.querySelectorAll("[role=radio]:not(:disabled)") ?? []), n = document.activeElement, r = n instanceof HTMLButtonElement ? t.indexOf(n) : -1;
@@ -24,7 +24,7 @@ function r({ children: r, className: i, "aria-label": a = "View switcher", ...o
24
24
  ...o,
25
25
  children: r
26
26
  });
27
- }
27
+ };
28
28
  //#endregion
29
29
  export { r as ViewSwitcher };
30
30
 
@@ -1 +1 @@
1
- {"version":3,"file":"ViewSwitcher.js","names":[],"sources":["../../../src/components/ViewSwitcher/ViewSwitcher.tsx"],"sourcesContent":["import { type HTMLAttributes, type KeyboardEvent, type ReactNode, useRef } from 'react';\n\nimport styles from './ViewSwitcher.module.css';\n\nexport interface ViewSwitcherProps extends HTMLAttributes<HTMLDivElement> {\n children?: ReactNode;\n /** Accessible label for the group. */\n 'aria-label'?: string;\n}\n\n/**\n * Segmented control for switching between major views.\n *\n * Mirrors the Adwaita `AdwViewSwitcher` pattern. Place in a `HeaderBar`\n * as the `title` for the canonical GNOME layout.\n *\n * Compose with `ViewSwitcherItem` for each option.\n * Keyboard: ← / → cycle through items, Home / End jump to first / last.\n *\n * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.ViewSwitcher.html\n * @see https://developer.gnome.org/hig/patterns/nav/view-switchers.html\n */\nexport function ViewSwitcher({\n children,\n className,\n 'aria-label': ariaLabel = 'View switcher',\n ...props\n}: ViewSwitcherProps) {\n const groupRef = useRef<HTMLDivElement>(null);\n\n function handleKeyDown(e: KeyboardEvent<HTMLDivElement>) {\n const items = Array.from(\n groupRef.current?.querySelectorAll<HTMLButtonElement>('[role=radio]:not(:disabled)') ?? [],\n );\n const activeElement = document.activeElement;\n const idx = activeElement instanceof HTMLButtonElement ? items.indexOf(activeElement) : -1;\n\n if (idx === -1) {\n return;\n }\n\n let next = idx;\n if (e.key === 'ArrowRight' || e.key === 'ArrowDown') {\n next = (idx + 1) % items.length;\n } else if (e.key === 'ArrowLeft' || e.key === 'ArrowUp') {\n next = (idx - 1 + items.length) % items.length;\n } else if (e.key === 'Home') {\n next = 0;\n } else if (e.key === 'End') {\n next = items.length - 1;\n } else {\n return;\n }\n\n e.preventDefault();\n items[next].focus();\n items[next].click();\n }\n\n return (\n <div\n ref={groupRef}\n role=\"radiogroup\"\n aria-label={ariaLabel}\n onKeyDown={handleKeyDown}\n className={[styles.switcher, className].filter(Boolean).join(' ')}\n {...props}\n >\n {children}\n </div>\n );\n}\n"],"mappings":";;;;AAsBA,SAAgB,EAAa,EAC3B,aACA,cACA,cAAc,IAAY,iBAC1B,GAAG,KACiB;CACpB,IAAM,IAAW,EAAuB,KAAK;CAE7C,SAAS,EAAc,GAAkC;EACvD,IAAM,IAAQ,MAAM,KAClB,EAAS,SAAS,iBAAoC,8BAA8B,IAAI,EAAE,CAC3F,EACK,IAAgB,SAAS,eACzB,IAAM,aAAyB,oBAAoB,EAAM,QAAQ,EAAc,GAAG;AAExF,MAAI,MAAQ,GACV;EAGF,IAAI,IAAO;AACX,MAAI,EAAE,QAAQ,gBAAgB,EAAE,QAAQ,YACtC,MAAQ,IAAM,KAAK,EAAM;WAChB,EAAE,QAAQ,eAAe,EAAE,QAAQ,UAC5C,MAAQ,IAAM,IAAI,EAAM,UAAU,EAAM;WAC/B,EAAE,QAAQ,OACnB,KAAO;WACE,EAAE,QAAQ,MACnB,KAAO,EAAM,SAAS;MAEtB;AAKF,EAFA,EAAE,gBAAgB,EAClB,EAAM,GAAM,OAAO,EACnB,EAAM,GAAM,OAAO;;AAGrB,QACE,kBAAC,OAAD;EACE,KAAK;EACL,MAAK;EACL,cAAY;EACZ,WAAW;EACX,WAAW,CAAC,EAAO,UAAU,EAAU,CAAC,OAAO,QAAQ,CAAC,KAAK,IAAI;EACjE,GAAI;EAEH;EACG,CAAA"}
1
+ {"version":3,"file":"ViewSwitcher.js","names":[],"sources":["../../../src/components/ViewSwitcher/ViewSwitcher.tsx"],"sourcesContent":["import { type HTMLAttributes, type KeyboardEvent, type ReactNode, useRef } from 'react';\n\nimport styles from './ViewSwitcher.module.css';\n\nexport interface ViewSwitcherProps extends HTMLAttributes<HTMLDivElement> {\n children?: ReactNode;\n /** Accessible label for the group. */\n 'aria-label'?: string;\n}\n\n/**\n * Segmented control for switching between major views.\n *\n * Mirrors the Adwaita `AdwViewSwitcher` pattern. Place in a `HeaderBar`\n * as the `title` for the canonical GNOME layout.\n *\n * Compose with `ViewSwitcherItem` for each option.\n * Keyboard: ← / → cycle through items, Home / End jump to first / last.\n *\n * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.ViewSwitcher.html\n * @see https://developer.gnome.org/hig/patterns/nav/view-switchers.html\n */\nexport const ViewSwitcher = ({\n children,\n className,\n 'aria-label': ariaLabel = 'View switcher',\n ...props\n}: ViewSwitcherProps) => {\n const groupRef = useRef<HTMLDivElement>(null);\n\n function handleKeyDown(e: KeyboardEvent<HTMLDivElement>) {\n const items = Array.from(\n groupRef.current?.querySelectorAll<HTMLButtonElement>('[role=radio]:not(:disabled)') ?? [],\n );\n const activeElement = document.activeElement;\n const idx = activeElement instanceof HTMLButtonElement ? items.indexOf(activeElement) : -1;\n\n if (idx === -1) {\n return;\n }\n\n let next = idx;\n if (e.key === 'ArrowRight' || e.key === 'ArrowDown') {\n next = (idx + 1) % items.length;\n } else if (e.key === 'ArrowLeft' || e.key === 'ArrowUp') {\n next = (idx - 1 + items.length) % items.length;\n } else if (e.key === 'Home') {\n next = 0;\n } else if (e.key === 'End') {\n next = items.length - 1;\n } else {\n return;\n }\n\n e.preventDefault();\n items[next].focus();\n items[next].click();\n }\n\n return (\n <div\n ref={groupRef}\n role=\"radiogroup\"\n aria-label={ariaLabel}\n onKeyDown={handleKeyDown}\n className={[styles.switcher, className].filter(Boolean).join(' ')}\n {...props}\n >\n {children}\n </div>\n );\n};\n"],"mappings":";;;;AAsBA,IAAa,KAAgB,EAC3B,aACA,cACA,cAAc,IAAY,iBAC1B,GAAG,QACoB;CACvB,IAAM,IAAW,EAAuB,IAAI;CAE5C,SAAS,EAAc,GAAkC;EACvD,IAAM,IAAQ,MAAM,KAClB,EAAS,SAAS,iBAAoC,6BAA6B,KAAK,CAAC,CAC3F,GACM,IAAgB,SAAS,eACzB,IAAM,aAAyB,oBAAoB,EAAM,QAAQ,CAAa,IAAI;EAExF,IAAI,MAAQ,IACV;EAGF,IAAI,IAAO;EACX,IAAI,EAAE,QAAQ,gBAAgB,EAAE,QAAQ,aACtC,KAAQ,IAAM,KAAK,EAAM;OACpB,IAAI,EAAE,QAAQ,eAAe,EAAE,QAAQ,WAC5C,KAAQ,IAAM,IAAI,EAAM,UAAU,EAAM;OACnC,IAAI,EAAE,QAAQ,QACnB,IAAO;OACF,IAAI,EAAE,QAAQ,OACnB,IAAO,EAAM,SAAS;OAEtB;EAKF,AAFA,EAAE,eAAe,GACjB,EAAM,GAAM,MAAM,GAClB,EAAM,GAAM,MAAM;CACpB;CAEA,OACE,kBAAC,OAAD;EACE,KAAK;EACL,MAAK;EACL,cAAY;EACZ,WAAW;EACX,WAAW,CAAC,EAAO,UAAU,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;EAChE,GAAI;EAEH;CACE,CAAA;AAET"}
@@ -1,2 +1,2 @@
1
- const e=require(`../Icon/Icon.cjs`),t=require(`./ViewSwitcher.module.css.cjs`);let n=require(`react/jsx-runtime`);function r({label:r,icon:i,active:a=!1,className:o,disabled:s,...c}){return(0,n.jsxs)(`button`,{type:`button`,role:`radio`,"aria-checked":a,tabIndex:a?0:-1,disabled:s,className:[t.default.item,a?t.default.active:null,o].filter(Boolean).join(` `),...c,children:[i&&(0,n.jsx)(`span`,{className:t.default.itemIcon,children:(0,n.jsx)(e.Icon,{icon:i,size:`md`,"aria-hidden":!0})}),(0,n.jsx)(`span`,{className:t.default.itemLabel,children:r})]})}exports.ViewSwitcherItem=r;
1
+ const e=require("../Icon/Icon.cjs"),t=require("./ViewSwitcher.module.css.cjs");let n=require("react/jsx-runtime");var r=({label:r,icon:i,active:a=!1,className:o,disabled:s,...c})=>(0,n.jsxs)(`button`,{type:`button`,role:`radio`,"aria-checked":a,tabIndex:a?0:-1,disabled:s,className:[t.default.item,a?t.default.active:null,o].filter(Boolean).join(` `),...c,children:[i&&(0,n.jsx)(`span`,{className:t.default.itemIcon,children:(0,n.jsx)(e.Icon,{icon:i,size:`md`,"aria-hidden":!0})}),(0,n.jsx)(`span`,{className:t.default.itemLabel,children:r})]});exports.ViewSwitcherItem=r;
2
2
  //# sourceMappingURL=ViewSwitcherItem.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ViewSwitcherItem.cjs","names":[],"sources":["../../../src/components/ViewSwitcher/ViewSwitcherItem.tsx"],"sourcesContent":["import type { IconDefinition } from '@gnome-ui/icons';\nimport type { ButtonHTMLAttributes } from 'react';\n\nimport { Icon } from '../Icon';\n\nimport styles from './ViewSwitcher.module.css';\n\nexport interface ViewSwitcherItemProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n /** Display label. */\n label: string;\n /** Optional icon from `@gnome-ui/icons`. */\n icon?: IconDefinition;\n /** Marks this item as the currently active view. */\n active?: boolean;\n}\n\n/**\n * Individual option inside a `ViewSwitcher`.\n *\n * Renders as `role=\"radio\"` so the group has proper radiogroup semantics.\n */\nexport function ViewSwitcherItem({\n label,\n icon,\n active = false,\n className,\n disabled,\n ...props\n}: ViewSwitcherItemProps) {\n return (\n <button\n type=\"button\"\n role=\"radio\"\n aria-checked={active}\n tabIndex={active ? 0 : -1}\n disabled={disabled}\n className={[styles.item, active ? styles.active : null, className].filter(Boolean).join(' ')}\n {...props}\n >\n {icon && (\n <span className={styles.itemIcon}>\n <Icon icon={icon} size=\"md\" aria-hidden />\n </span>\n )}\n <span className={styles.itemLabel}>{label}</span>\n </button>\n );\n}\n"],"mappings":"kHAqBA,SAAgB,EAAiB,CAC/B,QACA,OACA,SAAS,GACT,YACA,WACA,GAAG,GACqB,CACxB,OACE,EAAA,EAAA,MAAC,SAAD,CACE,KAAK,SACL,KAAK,QACL,eAAc,EACd,SAAU,EAAS,EAAI,GACb,WACV,UAAW,CAAC,EAAA,QAAO,KAAM,EAAS,EAAA,QAAO,OAAS,KAAM,EAAU,CAAC,OAAO,QAAQ,CAAC,KAAK,IAAI,CAC5F,GAAI,WAPN,CASG,IACC,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,EAAA,QAAO,mBACtB,EAAA,EAAA,KAAC,EAAA,KAAD,CAAY,OAAM,KAAK,KAAK,cAAA,GAAc,CAAA,CACrC,CAAA,EAET,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,EAAA,QAAO,mBAAY,EAAa,CAAA,CAC1C"}
1
+ {"version":3,"file":"ViewSwitcherItem.cjs","names":[],"sources":["../../../src/components/ViewSwitcher/ViewSwitcherItem.tsx"],"sourcesContent":["import type { IconDefinition } from '@gnome-ui/icons';\nimport type { ButtonHTMLAttributes } from 'react';\n\nimport { Icon } from '../Icon';\n\nimport styles from './ViewSwitcher.module.css';\n\nexport interface ViewSwitcherItemProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n /** Display label. */\n label: string;\n /** Optional icon from `@gnome-ui/icons`. */\n icon?: IconDefinition;\n /** Marks this item as the currently active view. */\n active?: boolean;\n}\n\n/**\n * Individual option inside a `ViewSwitcher`.\n *\n * Renders as `role=\"radio\"` so the group has proper radiogroup semantics.\n */\nexport const ViewSwitcherItem = ({\n label,\n icon,\n active = false,\n className,\n disabled,\n ...props\n}: ViewSwitcherItemProps) => {\n return (\n <button\n type=\"button\"\n role=\"radio\"\n aria-checked={active}\n tabIndex={active ? 0 : -1}\n disabled={disabled}\n className={[styles.item, active ? styles.active : null, className].filter(Boolean).join(' ')}\n {...props}\n >\n {icon && (\n <span className={styles.itemIcon}>\n <Icon icon={icon} size=\"md\" aria-hidden />\n </span>\n )}\n <span className={styles.itemLabel}>{label}</span>\n </button>\n );\n};\n"],"mappings":"kHAqBA,IAAa,GAAoB,CAC/B,QACA,OACA,SAAS,GACT,YACA,WACA,GAAG,MAGD,EAAA,EAAA,MAAC,SAAD,CACE,KAAK,SACL,KAAK,QACL,eAAc,EACd,SAAU,EAAS,EAAI,GACb,WACV,UAAW,CAAC,EAAA,QAAO,KAAM,EAAS,EAAA,QAAO,OAAS,KAAM,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,EAC3F,GAAI,WAPN,CASG,IACC,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,EAAA,QAAO,mBACtB,EAAA,EAAA,KAAC,EAAA,KAAD,CAAY,OAAM,KAAK,KAAK,cAAA,EAAa,CAAA,CACrC,CAAA,GAER,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,EAAA,QAAO,mBAAY,CAAY,CAAA,CAC1C"}
@@ -13,4 +13,4 @@ export interface ViewSwitcherItemProps extends ButtonHTMLAttributes<HTMLButtonEl
13
13
  *
14
14
  * Renders as `role="radio"` so the group has proper radiogroup semantics.
15
15
  */
16
- export declare function ViewSwitcherItem({ label, icon, active, className, disabled, ...props }: ViewSwitcherItemProps): import("react/jsx-runtime").JSX.Element;
16
+ export declare const ViewSwitcherItem: ({ label, icon, active, className, disabled, ...props }: ViewSwitcherItemProps) => import("react/jsx-runtime").JSX.Element;
@@ -2,32 +2,30 @@ import { Icon as e } from "../Icon/Icon.js";
2
2
  import t from "./ViewSwitcher.module.css.js";
3
3
  import { jsx as n, jsxs as r } from "react/jsx-runtime";
4
4
  //#region src/components/ViewSwitcher/ViewSwitcherItem.tsx
5
- function i({ label: i, icon: a, active: o = !1, className: s, disabled: c, ...l }) {
6
- return /* @__PURE__ */ r("button", {
7
- type: "button",
8
- role: "radio",
9
- "aria-checked": o,
10
- tabIndex: o ? 0 : -1,
11
- disabled: c,
12
- className: [
13
- t.item,
14
- o ? t.active : null,
15
- s
16
- ].filter(Boolean).join(" "),
17
- ...l,
18
- children: [a && /* @__PURE__ */ n("span", {
19
- className: t.itemIcon,
20
- children: /* @__PURE__ */ n(e, {
21
- icon: a,
22
- size: "md",
23
- "aria-hidden": !0
24
- })
25
- }), /* @__PURE__ */ n("span", {
26
- className: t.itemLabel,
27
- children: i
28
- })]
29
- });
30
- }
5
+ var i = ({ label: i, icon: a, active: o = !1, className: s, disabled: c, ...l }) => /* @__PURE__ */ r("button", {
6
+ type: "button",
7
+ role: "radio",
8
+ "aria-checked": o,
9
+ tabIndex: o ? 0 : -1,
10
+ disabled: c,
11
+ className: [
12
+ t.item,
13
+ o ? t.active : null,
14
+ s
15
+ ].filter(Boolean).join(" "),
16
+ ...l,
17
+ children: [a && /* @__PURE__ */ n("span", {
18
+ className: t.itemIcon,
19
+ children: /* @__PURE__ */ n(e, {
20
+ icon: a,
21
+ size: "md",
22
+ "aria-hidden": !0
23
+ })
24
+ }), /* @__PURE__ */ n("span", {
25
+ className: t.itemLabel,
26
+ children: i
27
+ })]
28
+ });
31
29
  //#endregion
32
30
  export { i as ViewSwitcherItem };
33
31
 
@@ -1 +1 @@
1
- {"version":3,"file":"ViewSwitcherItem.js","names":[],"sources":["../../../src/components/ViewSwitcher/ViewSwitcherItem.tsx"],"sourcesContent":["import type { IconDefinition } from '@gnome-ui/icons';\nimport type { ButtonHTMLAttributes } from 'react';\n\nimport { Icon } from '../Icon';\n\nimport styles from './ViewSwitcher.module.css';\n\nexport interface ViewSwitcherItemProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n /** Display label. */\n label: string;\n /** Optional icon from `@gnome-ui/icons`. */\n icon?: IconDefinition;\n /** Marks this item as the currently active view. */\n active?: boolean;\n}\n\n/**\n * Individual option inside a `ViewSwitcher`.\n *\n * Renders as `role=\"radio\"` so the group has proper radiogroup semantics.\n */\nexport function ViewSwitcherItem({\n label,\n icon,\n active = false,\n className,\n disabled,\n ...props\n}: ViewSwitcherItemProps) {\n return (\n <button\n type=\"button\"\n role=\"radio\"\n aria-checked={active}\n tabIndex={active ? 0 : -1}\n disabled={disabled}\n className={[styles.item, active ? styles.active : null, className].filter(Boolean).join(' ')}\n {...props}\n >\n {icon && (\n <span className={styles.itemIcon}>\n <Icon icon={icon} size=\"md\" aria-hidden />\n </span>\n )}\n <span className={styles.itemLabel}>{label}</span>\n </button>\n );\n}\n"],"mappings":";;;;AAqBA,SAAgB,EAAiB,EAC/B,UACA,SACA,YAAS,IACT,cACA,aACA,GAAG,KACqB;AACxB,QACE,kBAAC,UAAD;EACE,MAAK;EACL,MAAK;EACL,gBAAc;EACd,UAAU,IAAS,IAAI;EACb;EACV,WAAW;GAAC,EAAO;GAAM,IAAS,EAAO,SAAS;GAAM;GAAU,CAAC,OAAO,QAAQ,CAAC,KAAK,IAAI;EAC5F,GAAI;YAPN,CASG,KACC,kBAAC,QAAD;GAAM,WAAW,EAAO;aACtB,kBAAC,GAAD;IAAY;IAAM,MAAK;IAAK,eAAA;IAAc,CAAA;GACrC,CAAA,EAET,kBAAC,QAAD;GAAM,WAAW,EAAO;aAAY;GAAa,CAAA,CAC1C"}
1
+ {"version":3,"file":"ViewSwitcherItem.js","names":[],"sources":["../../../src/components/ViewSwitcher/ViewSwitcherItem.tsx"],"sourcesContent":["import type { IconDefinition } from '@gnome-ui/icons';\nimport type { ButtonHTMLAttributes } from 'react';\n\nimport { Icon } from '../Icon';\n\nimport styles from './ViewSwitcher.module.css';\n\nexport interface ViewSwitcherItemProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n /** Display label. */\n label: string;\n /** Optional icon from `@gnome-ui/icons`. */\n icon?: IconDefinition;\n /** Marks this item as the currently active view. */\n active?: boolean;\n}\n\n/**\n * Individual option inside a `ViewSwitcher`.\n *\n * Renders as `role=\"radio\"` so the group has proper radiogroup semantics.\n */\nexport const ViewSwitcherItem = ({\n label,\n icon,\n active = false,\n className,\n disabled,\n ...props\n}: ViewSwitcherItemProps) => {\n return (\n <button\n type=\"button\"\n role=\"radio\"\n aria-checked={active}\n tabIndex={active ? 0 : -1}\n disabled={disabled}\n className={[styles.item, active ? styles.active : null, className].filter(Boolean).join(' ')}\n {...props}\n >\n {icon && (\n <span className={styles.itemIcon}>\n <Icon icon={icon} size=\"md\" aria-hidden />\n </span>\n )}\n <span className={styles.itemLabel}>{label}</span>\n </button>\n );\n};\n"],"mappings":";;;;AAqBA,IAAa,KAAoB,EAC/B,UACA,SACA,YAAS,IACT,cACA,aACA,GAAG,QAGD,kBAAC,UAAD;CACE,MAAK;CACL,MAAK;CACL,gBAAc;CACd,UAAU,IAAS,IAAI;CACb;CACV,WAAW;EAAC,EAAO;EAAM,IAAS,EAAO,SAAS;EAAM;CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;CAC3F,GAAI;WAPN,CASG,KACC,kBAAC,QAAD;EAAM,WAAW,EAAO;YACtB,kBAAC,GAAD;GAAY;GAAM,MAAK;GAAK,eAAA;EAAa,CAAA;CACrC,CAAA,GAER,kBAAC,QAAD;EAAM,WAAW,EAAO;YAAY;CAAY,CAAA,CAC1C"}
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./ViewSwitcher/ViewSwitcher.cjs`),t=require(`./ViewSwitcher/ViewSwitcherItem.cjs`);exports.ViewSwitcher=e.ViewSwitcher,exports.ViewSwitcherItem=t.ViewSwitcherItem;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./ViewSwitcher/ViewSwitcher.cjs"),t=require("./ViewSwitcher/ViewSwitcherItem.cjs");exports.ViewSwitcher=e.ViewSwitcher,exports.ViewSwitcherItem=t.ViewSwitcherItem;
@@ -1,2 +1,2 @@
1
- const e=require(`./ViewSwitcherBar.module.css.cjs`);let t=require(`react/jsx-runtime`);function n({children:n,reveal:r=!0,className:i,...a}){return r?(0,t.jsx)(`div`,{role:`navigation`,"aria-label":`Bottom navigation`,className:[e.default.bar,i].filter(Boolean).join(` `),...a,children:n}):null}exports.ViewSwitcherBar=n;
1
+ const e=require("./ViewSwitcherBar.module.css.cjs");let t=require("react/jsx-runtime");var n=({children:n,reveal:r=!0,className:i,...a})=>r?(0,t.jsx)(`div`,{role:`navigation`,"aria-label":`Bottom navigation`,className:[e.default.bar,i].filter(Boolean).join(` `),...a,children:n}):null;exports.ViewSwitcherBar=n;
2
2
  //# sourceMappingURL=ViewSwitcherBar.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ViewSwitcherBar.cjs","names":[],"sources":["../../../src/components/ViewSwitcherBar/ViewSwitcherBar.tsx"],"sourcesContent":["import type { HTMLAttributes, ReactNode } from 'react';\n\nimport styles from './ViewSwitcherBar.module.css';\n\nexport interface ViewSwitcherBarProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * `ViewSwitcherItem` elements to render in the bottom bar.\n * Use the same items you pass to the header-bar `ViewSwitcher`.\n */\n children: ReactNode;\n /**\n * Whether the bar is visible.\n * Typically tied to `useBreakpoint().isMedium` so it appears\n * automatically when the window is ≤ 550 px wide.\n */\n reveal?: boolean;\n}\n\n/**\n * Bottom navigation bar for `ViewSwitcher` items on narrow screens (≤ 550 px),\n * mirroring the Adwaita `AdwViewSwitcherBar` pattern.\n *\n * Use in tandem with a `ViewSwitcher` in the `HeaderBar`:\n * - **Wide** (> 550 px): show the `ViewSwitcher` in the header, hide the bar.\n * - **Narrow** (≤ 550 px): hide the header switcher, reveal the bar.\n *\n * @example\n * const { isMedium } = useBreakpoint();\n * <>\n * <HeaderBar\n * title={\n * !isMedium && (\n * <ViewSwitcher aria-label=\"View\">…items…</ViewSwitcher>\n * )\n * }\n * />\n * <ViewSwitcherBar reveal={isMedium}>…items…</ViewSwitcherBar>\n * </>\n *\n * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.ViewSwitcherBar.html\n */\nexport function ViewSwitcherBar({\n children,\n reveal = true,\n className,\n ...props\n}: ViewSwitcherBarProps) {\n if (!reveal) {\n return null;\n }\n\n return (\n <div\n role=\"navigation\"\n aria-label=\"Bottom navigation\"\n className={[styles.bar, className].filter(Boolean).join(' ')}\n {...props}\n >\n {children}\n </div>\n );\n}\n"],"mappings":"uFAyCA,SAAgB,EAAgB,CAC9B,WACA,SAAS,GACT,YACA,GAAG,GACoB,CAKvB,OAJK,GAKH,EAAA,EAAA,KAAC,MAAD,CACE,KAAK,aACL,aAAW,oBACX,UAAW,CAAC,EAAA,QAAO,IAAK,EAAU,CAAC,OAAO,QAAQ,CAAC,KAAK,IAAI,CAC5D,GAAI,EAEH,WACG,CAAA,CAXC"}
1
+ {"version":3,"file":"ViewSwitcherBar.cjs","names":[],"sources":["../../../src/components/ViewSwitcherBar/ViewSwitcherBar.tsx"],"sourcesContent":["import type { HTMLAttributes, ReactNode } from 'react';\n\nimport styles from './ViewSwitcherBar.module.css';\n\nexport interface ViewSwitcherBarProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * `ViewSwitcherItem` elements to render in the bottom bar.\n * Use the same items you pass to the header-bar `ViewSwitcher`.\n */\n children: ReactNode;\n /**\n * Whether the bar is visible.\n * Typically tied to `useBreakpoint().isMedium` so it appears\n * automatically when the window is ≤ 550 px wide.\n */\n reveal?: boolean;\n}\n\n/**\n * Bottom navigation bar for `ViewSwitcher` items on narrow screens (≤ 550 px),\n * mirroring the Adwaita `AdwViewSwitcherBar` pattern.\n *\n * Use in tandem with a `ViewSwitcher` in the `HeaderBar`:\n * - **Wide** (> 550 px): show the `ViewSwitcher` in the header, hide the bar.\n * - **Narrow** (≤ 550 px): hide the header switcher, reveal the bar.\n *\n * @example\n * const { isMedium } = useBreakpoint();\n * <>\n * <HeaderBar\n * title={\n * !isMedium && (\n * <ViewSwitcher aria-label=\"View\">…items…</ViewSwitcher>\n * )\n * }\n * />\n * <ViewSwitcherBar reveal={isMedium}>…items…</ViewSwitcherBar>\n * </>\n *\n * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.ViewSwitcherBar.html\n */\nexport const ViewSwitcherBar = ({\n children,\n reveal = true,\n className,\n ...props\n}: ViewSwitcherBarProps) => {\n if (!reveal) {\n return null;\n }\n\n return (\n <div\n role=\"navigation\"\n aria-label=\"Bottom navigation\"\n className={[styles.bar, className].filter(Boolean).join(' ')}\n {...props}\n >\n {children}\n </div>\n );\n};\n"],"mappings":"uFAyCA,IAAa,GAAmB,CAC9B,WACA,SAAS,GACT,YACA,GAAG,KAEE,GAKH,EAAA,EAAA,KAAC,MAAD,CACE,KAAK,aACL,aAAW,oBACX,UAAW,CAAC,EAAA,QAAO,IAAK,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,EAC3D,GAAI,EAEH,UACE,CAAA,EAXE"}
@@ -35,4 +35,4 @@ export interface ViewSwitcherBarProps extends HTMLAttributes<HTMLDivElement> {
35
35
  *
36
36
  * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.ViewSwitcherBar.html
37
37
  */
38
- export declare function ViewSwitcherBar({ children, reveal, className, ...props }: ViewSwitcherBarProps): import("react/jsx-runtime").JSX.Element | null;
38
+ export declare const ViewSwitcherBar: ({ children, reveal, className, ...props }: ViewSwitcherBarProps) => import("react/jsx-runtime").JSX.Element | null;
@@ -1,15 +1,13 @@
1
1
  import e from "./ViewSwitcherBar.module.css.js";
2
2
  import { jsx as t } from "react/jsx-runtime";
3
3
  //#region src/components/ViewSwitcherBar/ViewSwitcherBar.tsx
4
- function n({ children: n, reveal: r = !0, className: i, ...a }) {
5
- return r ? /* @__PURE__ */ t("div", {
6
- role: "navigation",
7
- "aria-label": "Bottom navigation",
8
- className: [e.bar, i].filter(Boolean).join(" "),
9
- ...a,
10
- children: n
11
- }) : null;
12
- }
4
+ var n = ({ children: n, reveal: r = !0, className: i, ...a }) => r ? /* @__PURE__ */ t("div", {
5
+ role: "navigation",
6
+ "aria-label": "Bottom navigation",
7
+ className: [e.bar, i].filter(Boolean).join(" "),
8
+ ...a,
9
+ children: n
10
+ }) : null;
13
11
  //#endregion
14
12
  export { n as ViewSwitcherBar };
15
13
 
@@ -1 +1 @@
1
- {"version":3,"file":"ViewSwitcherBar.js","names":[],"sources":["../../../src/components/ViewSwitcherBar/ViewSwitcherBar.tsx"],"sourcesContent":["import type { HTMLAttributes, ReactNode } from 'react';\n\nimport styles from './ViewSwitcherBar.module.css';\n\nexport interface ViewSwitcherBarProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * `ViewSwitcherItem` elements to render in the bottom bar.\n * Use the same items you pass to the header-bar `ViewSwitcher`.\n */\n children: ReactNode;\n /**\n * Whether the bar is visible.\n * Typically tied to `useBreakpoint().isMedium` so it appears\n * automatically when the window is ≤ 550 px wide.\n */\n reveal?: boolean;\n}\n\n/**\n * Bottom navigation bar for `ViewSwitcher` items on narrow screens (≤ 550 px),\n * mirroring the Adwaita `AdwViewSwitcherBar` pattern.\n *\n * Use in tandem with a `ViewSwitcher` in the `HeaderBar`:\n * - **Wide** (> 550 px): show the `ViewSwitcher` in the header, hide the bar.\n * - **Narrow** (≤ 550 px): hide the header switcher, reveal the bar.\n *\n * @example\n * const { isMedium } = useBreakpoint();\n * <>\n * <HeaderBar\n * title={\n * !isMedium && (\n * <ViewSwitcher aria-label=\"View\">…items…</ViewSwitcher>\n * )\n * }\n * />\n * <ViewSwitcherBar reveal={isMedium}>…items…</ViewSwitcherBar>\n * </>\n *\n * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.ViewSwitcherBar.html\n */\nexport function ViewSwitcherBar({\n children,\n reveal = true,\n className,\n ...props\n}: ViewSwitcherBarProps) {\n if (!reveal) {\n return null;\n }\n\n return (\n <div\n role=\"navigation\"\n aria-label=\"Bottom navigation\"\n className={[styles.bar, className].filter(Boolean).join(' ')}\n {...props}\n >\n {children}\n </div>\n );\n}\n"],"mappings":";;;AAyCA,SAAgB,EAAgB,EAC9B,aACA,YAAS,IACT,cACA,GAAG,KACoB;AAKvB,QAJK,IAKH,kBAAC,OAAD;EACE,MAAK;EACL,cAAW;EACX,WAAW,CAAC,EAAO,KAAK,EAAU,CAAC,OAAO,QAAQ,CAAC,KAAK,IAAI;EAC5D,GAAI;EAEH;EACG,CAAA,GAXC"}
1
+ {"version":3,"file":"ViewSwitcherBar.js","names":[],"sources":["../../../src/components/ViewSwitcherBar/ViewSwitcherBar.tsx"],"sourcesContent":["import type { HTMLAttributes, ReactNode } from 'react';\n\nimport styles from './ViewSwitcherBar.module.css';\n\nexport interface ViewSwitcherBarProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * `ViewSwitcherItem` elements to render in the bottom bar.\n * Use the same items you pass to the header-bar `ViewSwitcher`.\n */\n children: ReactNode;\n /**\n * Whether the bar is visible.\n * Typically tied to `useBreakpoint().isMedium` so it appears\n * automatically when the window is ≤ 550 px wide.\n */\n reveal?: boolean;\n}\n\n/**\n * Bottom navigation bar for `ViewSwitcher` items on narrow screens (≤ 550 px),\n * mirroring the Adwaita `AdwViewSwitcherBar` pattern.\n *\n * Use in tandem with a `ViewSwitcher` in the `HeaderBar`:\n * - **Wide** (> 550 px): show the `ViewSwitcher` in the header, hide the bar.\n * - **Narrow** (≤ 550 px): hide the header switcher, reveal the bar.\n *\n * @example\n * const { isMedium } = useBreakpoint();\n * <>\n * <HeaderBar\n * title={\n * !isMedium && (\n * <ViewSwitcher aria-label=\"View\">…items…</ViewSwitcher>\n * )\n * }\n * />\n * <ViewSwitcherBar reveal={isMedium}>…items…</ViewSwitcherBar>\n * </>\n *\n * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.ViewSwitcherBar.html\n */\nexport const ViewSwitcherBar = ({\n children,\n reveal = true,\n className,\n ...props\n}: ViewSwitcherBarProps) => {\n if (!reveal) {\n return null;\n }\n\n return (\n <div\n role=\"navigation\"\n aria-label=\"Bottom navigation\"\n className={[styles.bar, className].filter(Boolean).join(' ')}\n {...props}\n >\n {children}\n </div>\n );\n};\n"],"mappings":";;;AAyCA,IAAa,KAAmB,EAC9B,aACA,YAAS,IACT,cACA,GAAG,QAEE,IAKH,kBAAC,OAAD;CACE,MAAK;CACL,cAAW;CACX,WAAW,CAAC,EAAO,KAAK,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;CAC3D,GAAI;CAEH;AACE,CAAA,IAXE"}
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./ViewSwitcherBar/ViewSwitcherBar.cjs`);exports.ViewSwitcherBar=e.ViewSwitcherBar;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./ViewSwitcherBar/ViewSwitcherBar.cjs");exports.ViewSwitcherBar=e.ViewSwitcherBar;
@@ -1,2 +1,2 @@
1
- const e=require(`./ViewSwitcherSidebar.module.css.cjs`);let t=require(`react`),n=require(`react/jsx-runtime`);var r=(0,t.createContext)(null);function i(){let e=(0,t.useContext)(r);if(!e)throw Error(`ViewSwitcherSidebarItem must be used inside ViewSwitcherSidebar`);return e}function a({value:i,onValueChange:a,"aria-label":o=`Views`,collapsed:s=!1,header:c,footer:l,showHeaderSeparator:u=!0,showFooterSeparator:d=!0,children:f,className:p,...m}){let h=(0,t.useRef)(null);function g(e){let t=Array.from(h.current?.querySelectorAll(`[role=radio]:not(:disabled)`)??[]),n=document.activeElement,r=n instanceof HTMLButtonElement?t.indexOf(n):-1;if(r===-1)return;let i=r;if(e.key===`ArrowDown`||e.key===`ArrowRight`)i=(r+1)%t.length;else if(e.key===`ArrowUp`||e.key===`ArrowLeft`)i=(r-1+t.length)%t.length;else if(e.key===`Home`)i=0;else if(e.key===`End`)i=t.length-1;else return;e.preventDefault(),t[i].focus(),t[i].click()}return(0,n.jsx)(r.Provider,{value:{value:i,onValueChange:a,collapsed:s},children:(0,n.jsxs)(`nav`,{className:[e.default.sidebar,s?e.default.sidebarCollapsed:null,u?null:e.default.noHeaderSeparator,d?null:e.default.noFooterSeparator,p].filter(Boolean).join(` `),onKeyDown:g,...m,children:[c&&(0,n.jsx)(`div`,{className:e.default.header,children:c}),(0,n.jsx)(`ul`,{ref:h,role:`radiogroup`,"aria-label":o,className:e.default.list,children:f}),l&&(0,n.jsx)(`div`,{className:e.default.footer,children:l})]})})}exports.ViewSwitcherSidebar=a,exports.useViewSwitcherSidebar=i;
1
+ const e=require("./ViewSwitcherSidebar.module.css.cjs");let t=require("react"),n=require("react/jsx-runtime");var r=(0,t.createContext)(null);function i(){let e=(0,t.useContext)(r);if(!e)throw Error(`ViewSwitcherSidebarItem must be used inside ViewSwitcherSidebar`);return e}var a=({value:i,onValueChange:a,"aria-label":o=`Views`,collapsed:s=!1,header:c,footer:l,showHeaderSeparator:u=!0,showFooterSeparator:d=!0,children:f,className:p,...m})=>{let h=(0,t.useRef)(null);function g(e){let t=Array.from(h.current?.querySelectorAll(`[role=radio]:not(:disabled)`)??[]),n=document.activeElement,r=n instanceof HTMLButtonElement?t.indexOf(n):-1;if(r===-1)return;let i=r;if(e.key===`ArrowDown`||e.key===`ArrowRight`)i=(r+1)%t.length;else if(e.key===`ArrowUp`||e.key===`ArrowLeft`)i=(r-1+t.length)%t.length;else if(e.key===`Home`)i=0;else if(e.key===`End`)i=t.length-1;else return;e.preventDefault(),t[i].focus(),t[i].click()}return(0,n.jsx)(r.Provider,{value:{value:i,onValueChange:a,collapsed:s},children:(0,n.jsxs)(`nav`,{className:[e.default.sidebar,s?e.default.sidebarCollapsed:null,u?null:e.default.noHeaderSeparator,d?null:e.default.noFooterSeparator,p].filter(Boolean).join(` `),onKeyDown:g,...m,children:[c&&(0,n.jsx)(`div`,{className:e.default.header,children:c}),(0,n.jsx)(`ul`,{ref:h,role:`radiogroup`,"aria-label":o,className:e.default.list,children:f}),l&&(0,n.jsx)(`div`,{className:e.default.footer,children:l})]})})};exports.ViewSwitcherSidebar=a,exports.useViewSwitcherSidebar=i;
2
2
  //# sourceMappingURL=ViewSwitcherSidebar.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ViewSwitcherSidebar.cjs","names":[],"sources":["../../../src/components/ViewSwitcherSidebar/ViewSwitcherSidebar.tsx"],"sourcesContent":["import {\n createContext,\n type HTMLAttributes,\n type KeyboardEvent,\n type ReactNode,\n useContext,\n useRef,\n} from 'react';\n\nimport styles from './ViewSwitcherSidebar.module.css';\n\n// ─── Context ──────────────────────────────────────────────────────────────────\n\ninterface ViewSwitcherSidebarContextValue {\n value: string;\n onValueChange: (value: string) => void;\n collapsed: boolean;\n}\n\nconst ViewSwitcherSidebarContext = createContext<ViewSwitcherSidebarContextValue | null>(null);\n\n// eslint-disable-next-line react-refresh/only-export-components\nexport function useViewSwitcherSidebar() {\n const ctx = useContext(ViewSwitcherSidebarContext);\n\n if (!ctx) {\n throw new Error('ViewSwitcherSidebarItem must be used inside ViewSwitcherSidebar');\n }\n\n return ctx;\n}\n\n// ─── Component ────────────────────────────────────────────────────────────────\n\nexport interface ViewSwitcherSidebarProps extends HTMLAttributes<HTMLElement> {\n /** Name of the currently active view. */\n value: string;\n /** Called with the new view name when the user selects an item. */\n onValueChange: (value: string) => void;\n /** Accessible label for the group. Defaults to `\"Views\"`. */\n 'aria-label'?: string;\n /**\n * When `true`, items render icon-only (labels hidden) and the sidebar\n * shrinks to its compact width. Used by `AdaptiveLayout` on tablet viewports.\n */\n collapsed?: boolean;\n /** Rendered above the scrollable item list (e.g. user card). */\n header?: ReactNode;\n /** Rendered below the scrollable item list (e.g. collapse toggle). */\n footer?: ReactNode;\n /** Show the separator line below the header slot. Defaults to `true`. */\n showHeaderSeparator?: boolean;\n /** Show the separator line above the footer slot. Defaults to `true`. */\n showFooterSeparator?: boolean;\n children?: ReactNode;\n}\n\n/**\n * Sidebar-style view switcher for apps with more than 4 top-level views,\n * or when the sidebar layout fits better than a header-bar `ViewSwitcher`.\n *\n * Mirrors `AdwViewSwitcherSidebar` (libadwaita 1.9 / GNOME 50), the modern\n * replacement for `GtkStackSidebar`.\n *\n * Compose with `ViewSwitcherSidebarItem` for each view. The active item is\n * highlighted with the accent colour; keyboard ↑ / ↓ cycles through items.\n *\n * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.ViewSwitcherSidebar.html\n *\n * @example\n * ```tsx\n * <ViewSwitcherSidebar value={view} onValueChange={setView}>\n * <ViewSwitcherSidebarItem name=\"photos\" label=\"Photos\" icon={MediaPlay} />\n * <ViewSwitcherSidebarItem name=\"albums\" label=\"Albums\" icon={Star} count={12} />\n * </ViewSwitcherSidebar>\n * ```\n */\nexport function ViewSwitcherSidebar({\n value,\n onValueChange,\n 'aria-label': ariaLabel = 'Views',\n collapsed = false,\n header,\n footer,\n showHeaderSeparator = true,\n showFooterSeparator = true,\n children,\n className,\n ...props\n}: ViewSwitcherSidebarProps) {\n const groupRef = useRef<HTMLUListElement>(null);\n\n function handleKeyDown(e: KeyboardEvent<HTMLElement>) {\n const items = Array.from(\n groupRef.current?.querySelectorAll<HTMLButtonElement>('[role=radio]:not(:disabled)') ?? [],\n );\n const activeElement = document.activeElement;\n const idx = activeElement instanceof HTMLButtonElement ? items.indexOf(activeElement) : -1;\n\n if (idx === -1) {\n return;\n }\n\n let next = idx;\n if (e.key === 'ArrowDown' || e.key === 'ArrowRight') {\n next = (idx + 1) % items.length;\n } else if (e.key === 'ArrowUp' || e.key === 'ArrowLeft') {\n next = (idx - 1 + items.length) % items.length;\n } else if (e.key === 'Home') {\n next = 0;\n } else if (e.key === 'End') {\n next = items.length - 1;\n } else {\n return;\n }\n\n e.preventDefault();\n items[next].focus();\n items[next].click();\n }\n\n return (\n <ViewSwitcherSidebarContext.Provider value={{ value, onValueChange, collapsed }}>\n <nav\n className={[\n styles.sidebar,\n collapsed ? styles.sidebarCollapsed : null,\n !showHeaderSeparator ? styles.noHeaderSeparator : null,\n !showFooterSeparator ? styles.noFooterSeparator : null,\n className,\n ]\n .filter(Boolean)\n .join(' ')}\n onKeyDown={handleKeyDown}\n {...props}\n >\n {header && <div className={styles.header}>{header}</div>}\n <ul ref={groupRef} role=\"radiogroup\" aria-label={ariaLabel} className={styles.list}>\n {children}\n </ul>\n {footer && <div className={styles.footer}>{footer}</div>}\n </nav>\n </ViewSwitcherSidebarContext.Provider>\n );\n}\n"],"mappings":"8GAmBA,IAAM,GAAA,EAAA,EAAA,eAAmF,KAAK,CAG9F,SAAgB,GAAyB,CACvC,IAAM,GAAA,EAAA,EAAA,YAAiB,EAA2B,CAElD,GAAI,CAAC,EACH,MAAU,MAAM,kEAAkE,CAGpF,OAAO,EAgDT,SAAgB,EAAoB,CAClC,QACA,gBACA,aAAc,EAAY,QAC1B,YAAY,GACZ,SACA,SACA,sBAAsB,GACtB,sBAAsB,GACtB,WACA,YACA,GAAG,GACwB,CAC3B,IAAM,GAAA,EAAA,EAAA,QAAoC,KAAK,CAE/C,SAAS,EAAc,EAA+B,CACpD,IAAM,EAAQ,MAAM,KAClB,EAAS,SAAS,iBAAoC,8BAA8B,EAAI,EAAE,CAC3F,CACK,EAAgB,SAAS,cACzB,EAAM,aAAyB,kBAAoB,EAAM,QAAQ,EAAc,CAAG,GAExF,GAAI,IAAQ,GACV,OAGF,IAAI,EAAO,EACX,GAAI,EAAE,MAAQ,aAAe,EAAE,MAAQ,aACrC,GAAQ,EAAM,GAAK,EAAM,eAChB,EAAE,MAAQ,WAAa,EAAE,MAAQ,YAC1C,GAAQ,EAAM,EAAI,EAAM,QAAU,EAAM,eAC/B,EAAE,MAAQ,OACnB,EAAO,UACE,EAAE,MAAQ,MACnB,EAAO,EAAM,OAAS,OAEtB,OAGF,EAAE,gBAAgB,CAClB,EAAM,GAAM,OAAO,CACnB,EAAM,GAAM,OAAO,CAGrB,OACE,EAAA,EAAA,KAAC,EAA2B,SAA5B,CAAqC,MAAO,CAAE,QAAO,gBAAe,YAAW,WAC7E,EAAA,EAAA,MAAC,MAAD,CACE,UAAW,CACT,EAAA,QAAO,QACP,EAAY,EAAA,QAAO,iBAAmB,KACrC,EAAiD,KAA3B,EAAA,QAAO,kBAC7B,EAAiD,KAA3B,EAAA,QAAO,kBAC9B,EACD,CACE,OAAO,QAAQ,CACf,KAAK,IAAI,CACZ,UAAW,EACX,GAAI,WAXN,CAaG,IAAU,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,EAAA,QAAO,gBAAS,EAAa,CAAA,EACxD,EAAA,EAAA,KAAC,KAAD,CAAI,IAAK,EAAU,KAAK,aAAa,aAAY,EAAW,UAAW,EAAA,QAAO,KAC3E,WACE,CAAA,CACJ,IAAU,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,EAAA,QAAO,gBAAS,EAAa,CAAA,CACpD,GAC8B,CAAA"}
1
+ {"version":3,"file":"ViewSwitcherSidebar.cjs","names":[],"sources":["../../../src/components/ViewSwitcherSidebar/ViewSwitcherSidebar.tsx"],"sourcesContent":["import {\n createContext,\n type HTMLAttributes,\n type KeyboardEvent,\n type ReactNode,\n useContext,\n useRef,\n} from 'react';\n\nimport styles from './ViewSwitcherSidebar.module.css';\n\n// ─── Context ──────────────────────────────────────────────────────────────────\n\ninterface ViewSwitcherSidebarContextValue {\n value: string;\n onValueChange: (value: string) => void;\n collapsed: boolean;\n}\n\nconst ViewSwitcherSidebarContext = createContext<ViewSwitcherSidebarContextValue | null>(null);\n\n// eslint-disable-next-line react-refresh/only-export-components\nexport function useViewSwitcherSidebar() {\n const ctx = useContext(ViewSwitcherSidebarContext);\n\n if (!ctx) {\n throw new Error('ViewSwitcherSidebarItem must be used inside ViewSwitcherSidebar');\n }\n\n return ctx;\n}\n\n// ─── Component ────────────────────────────────────────────────────────────────\n\nexport interface ViewSwitcherSidebarProps extends HTMLAttributes<HTMLElement> {\n /** Name of the currently active view. */\n value: string;\n /** Called with the new view name when the user selects an item. */\n onValueChange: (value: string) => void;\n /** Accessible label for the group. Defaults to `\"Views\"`. */\n 'aria-label'?: string;\n /**\n * When `true`, items render icon-only (labels hidden) and the sidebar\n * shrinks to its compact width. Used by `AdaptiveLayout` on tablet viewports.\n */\n collapsed?: boolean;\n /** Rendered above the scrollable item list (e.g. user card). */\n header?: ReactNode;\n /** Rendered below the scrollable item list (e.g. collapse toggle). */\n footer?: ReactNode;\n /** Show the separator line below the header slot. Defaults to `true`. */\n showHeaderSeparator?: boolean;\n /** Show the separator line above the footer slot. Defaults to `true`. */\n showFooterSeparator?: boolean;\n children?: ReactNode;\n}\n\n/**\n * Sidebar-style view switcher for apps with more than 4 top-level views,\n * or when the sidebar layout fits better than a header-bar `ViewSwitcher`.\n *\n * Mirrors `AdwViewSwitcherSidebar` (libadwaita 1.9 / GNOME 50), the modern\n * replacement for `GtkStackSidebar`.\n *\n * Compose with `ViewSwitcherSidebarItem` for each view. The active item is\n * highlighted with the accent colour; keyboard ↑ / ↓ cycles through items.\n *\n * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.ViewSwitcherSidebar.html\n *\n * @example\n * ```tsx\n * <ViewSwitcherSidebar value={view} onValueChange={setView}>\n * <ViewSwitcherSidebarItem name=\"photos\" label=\"Photos\" icon={MediaPlay} />\n * <ViewSwitcherSidebarItem name=\"albums\" label=\"Albums\" icon={Star} count={12} />\n * </ViewSwitcherSidebar>\n * ```\n */\nexport const ViewSwitcherSidebar = ({\n value,\n onValueChange,\n 'aria-label': ariaLabel = 'Views',\n collapsed = false,\n header,\n footer,\n showHeaderSeparator = true,\n showFooterSeparator = true,\n children,\n className,\n ...props\n}: ViewSwitcherSidebarProps) => {\n const groupRef = useRef<HTMLUListElement>(null);\n\n function handleKeyDown(e: KeyboardEvent<HTMLElement>) {\n const items = Array.from(\n groupRef.current?.querySelectorAll<HTMLButtonElement>('[role=radio]:not(:disabled)') ?? [],\n );\n const activeElement = document.activeElement;\n const idx = activeElement instanceof HTMLButtonElement ? items.indexOf(activeElement) : -1;\n\n if (idx === -1) {\n return;\n }\n\n let next = idx;\n if (e.key === 'ArrowDown' || e.key === 'ArrowRight') {\n next = (idx + 1) % items.length;\n } else if (e.key === 'ArrowUp' || e.key === 'ArrowLeft') {\n next = (idx - 1 + items.length) % items.length;\n } else if (e.key === 'Home') {\n next = 0;\n } else if (e.key === 'End') {\n next = items.length - 1;\n } else {\n return;\n }\n\n e.preventDefault();\n items[next].focus();\n items[next].click();\n }\n\n return (\n <ViewSwitcherSidebarContext.Provider value={{ value, onValueChange, collapsed }}>\n <nav\n className={[\n styles.sidebar,\n collapsed ? styles.sidebarCollapsed : null,\n !showHeaderSeparator ? styles.noHeaderSeparator : null,\n !showFooterSeparator ? styles.noFooterSeparator : null,\n className,\n ]\n .filter(Boolean)\n .join(' ')}\n onKeyDown={handleKeyDown}\n {...props}\n >\n {header && <div className={styles.header}>{header}</div>}\n <ul ref={groupRef} role=\"radiogroup\" aria-label={ariaLabel} className={styles.list}>\n {children}\n </ul>\n {footer && <div className={styles.footer}>{footer}</div>}\n </nav>\n </ViewSwitcherSidebarContext.Provider>\n );\n};\n"],"mappings":"8GAmBA,IAAM,GAAA,EAAA,EAAA,eAAmF,IAAI,EAG7F,SAAgB,GAAyB,CACvC,IAAM,GAAA,EAAA,EAAA,YAAiB,CAA0B,EAEjD,GAAI,CAAC,EACH,MAAU,MAAM,iEAAiE,EAGnF,OAAO,CACT,CA+CA,IAAa,GAAuB,CAClC,QACA,gBACA,aAAc,EAAY,QAC1B,YAAY,GACZ,SACA,SACA,sBAAsB,GACtB,sBAAsB,GACtB,WACA,YACA,GAAG,KAC2B,CAC9B,IAAM,GAAA,EAAA,EAAA,QAAoC,IAAI,EAE9C,SAAS,EAAc,EAA+B,CACpD,IAAM,EAAQ,MAAM,KAClB,EAAS,SAAS,iBAAoC,6BAA6B,GAAK,CAAC,CAC3F,EACM,EAAgB,SAAS,cACzB,EAAM,aAAyB,kBAAoB,EAAM,QAAQ,CAAa,EAAI,GAExF,GAAI,IAAQ,GACV,OAGF,IAAI,EAAO,EACX,GAAI,EAAE,MAAQ,aAAe,EAAE,MAAQ,aACrC,GAAQ,EAAM,GAAK,EAAM,YACpB,GAAI,EAAE,MAAQ,WAAa,EAAE,MAAQ,YAC1C,GAAQ,EAAM,EAAI,EAAM,QAAU,EAAM,YACnC,GAAI,EAAE,MAAQ,OACnB,EAAO,OACF,GAAI,EAAE,MAAQ,MACnB,EAAO,EAAM,OAAS,OAEtB,OAGF,EAAE,eAAe,EACjB,EAAM,GAAM,MAAM,EAClB,EAAM,GAAM,MAAM,CACpB,CAEA,OACE,EAAA,EAAA,KAAC,EAA2B,SAA5B,CAAqC,MAAO,CAAE,QAAO,gBAAe,WAAU,YAC5E,EAAA,EAAA,MAAC,MAAD,CACE,UAAW,CACT,EAAA,QAAO,QACP,EAAY,EAAA,QAAO,iBAAmB,KACrC,EAAiD,KAA3B,EAAA,QAAO,kBAC7B,EAAiD,KAA3B,EAAA,QAAO,kBAC9B,CACF,EACG,OAAO,OAAO,EACd,KAAK,GAAG,EACX,UAAW,EACX,GAAI,WAXN,CAaG,IAAU,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,EAAA,QAAO,gBAAS,CAAY,CAAA,GACvD,EAAA,EAAA,KAAC,KAAD,CAAI,IAAK,EAAU,KAAK,aAAa,aAAY,EAAW,UAAW,EAAA,QAAO,KAC3E,UACC,CAAA,EACH,IAAU,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,EAAA,QAAO,gBAAS,CAAY,CAAA,CACpD,GAC8B,CAAA,CAEzC"}
@@ -47,5 +47,5 @@ export interface ViewSwitcherSidebarProps extends HTMLAttributes<HTMLElement> {
47
47
  * </ViewSwitcherSidebar>
48
48
  * ```
49
49
  */
50
- export declare function ViewSwitcherSidebar({ value, onValueChange, 'aria-label': ariaLabel, collapsed, header, footer, showHeaderSeparator, showFooterSeparator, children, className, ...props }: ViewSwitcherSidebarProps): import("react/jsx-runtime").JSX.Element;
50
+ export declare const ViewSwitcherSidebar: ({ value, onValueChange, "aria-label": ariaLabel, collapsed, header, footer, showHeaderSeparator, showFooterSeparator, children, className, ...props }: ViewSwitcherSidebarProps) => import("react/jsx-runtime").JSX.Element;
51
51
  export {};
@@ -8,7 +8,7 @@ function s() {
8
8
  if (!e) throw Error("ViewSwitcherSidebarItem must be used inside ViewSwitcherSidebar");
9
9
  return e;
10
10
  }
11
- function c({ value: t, onValueChange: n, "aria-label": s = "Views", collapsed: c = !1, header: l, footer: u, showHeaderSeparator: d = !0, showFooterSeparator: f = !0, children: p, className: m, ...h }) {
11
+ var c = ({ value: t, onValueChange: n, "aria-label": s = "Views", collapsed: c = !1, header: l, footer: u, showHeaderSeparator: d = !0, showFooterSeparator: f = !0, children: p, className: m, ...h }) => {
12
12
  let g = r(null);
13
13
  function _(e) {
14
14
  let t = Array.from(g.current?.querySelectorAll("[role=radio]:not(:disabled)") ?? []), n = document.activeElement, r = n instanceof HTMLButtonElement ? t.indexOf(n) : -1;
@@ -56,7 +56,7 @@ function c({ value: t, onValueChange: n, "aria-label": s = "Views", collapsed: c
56
56
  ]
57
57
  })
58
58
  });
59
- }
59
+ };
60
60
  //#endregion
61
61
  export { c as ViewSwitcherSidebar, s as useViewSwitcherSidebar };
62
62
 
@@ -1 +1 @@
1
- {"version":3,"file":"ViewSwitcherSidebar.js","names":[],"sources":["../../../src/components/ViewSwitcherSidebar/ViewSwitcherSidebar.tsx"],"sourcesContent":["import {\n createContext,\n type HTMLAttributes,\n type KeyboardEvent,\n type ReactNode,\n useContext,\n useRef,\n} from 'react';\n\nimport styles from './ViewSwitcherSidebar.module.css';\n\n// ─── Context ──────────────────────────────────────────────────────────────────\n\ninterface ViewSwitcherSidebarContextValue {\n value: string;\n onValueChange: (value: string) => void;\n collapsed: boolean;\n}\n\nconst ViewSwitcherSidebarContext = createContext<ViewSwitcherSidebarContextValue | null>(null);\n\n// eslint-disable-next-line react-refresh/only-export-components\nexport function useViewSwitcherSidebar() {\n const ctx = useContext(ViewSwitcherSidebarContext);\n\n if (!ctx) {\n throw new Error('ViewSwitcherSidebarItem must be used inside ViewSwitcherSidebar');\n }\n\n return ctx;\n}\n\n// ─── Component ────────────────────────────────────────────────────────────────\n\nexport interface ViewSwitcherSidebarProps extends HTMLAttributes<HTMLElement> {\n /** Name of the currently active view. */\n value: string;\n /** Called with the new view name when the user selects an item. */\n onValueChange: (value: string) => void;\n /** Accessible label for the group. Defaults to `\"Views\"`. */\n 'aria-label'?: string;\n /**\n * When `true`, items render icon-only (labels hidden) and the sidebar\n * shrinks to its compact width. Used by `AdaptiveLayout` on tablet viewports.\n */\n collapsed?: boolean;\n /** Rendered above the scrollable item list (e.g. user card). */\n header?: ReactNode;\n /** Rendered below the scrollable item list (e.g. collapse toggle). */\n footer?: ReactNode;\n /** Show the separator line below the header slot. Defaults to `true`. */\n showHeaderSeparator?: boolean;\n /** Show the separator line above the footer slot. Defaults to `true`. */\n showFooterSeparator?: boolean;\n children?: ReactNode;\n}\n\n/**\n * Sidebar-style view switcher for apps with more than 4 top-level views,\n * or when the sidebar layout fits better than a header-bar `ViewSwitcher`.\n *\n * Mirrors `AdwViewSwitcherSidebar` (libadwaita 1.9 / GNOME 50), the modern\n * replacement for `GtkStackSidebar`.\n *\n * Compose with `ViewSwitcherSidebarItem` for each view. The active item is\n * highlighted with the accent colour; keyboard ↑ / ↓ cycles through items.\n *\n * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.ViewSwitcherSidebar.html\n *\n * @example\n * ```tsx\n * <ViewSwitcherSidebar value={view} onValueChange={setView}>\n * <ViewSwitcherSidebarItem name=\"photos\" label=\"Photos\" icon={MediaPlay} />\n * <ViewSwitcherSidebarItem name=\"albums\" label=\"Albums\" icon={Star} count={12} />\n * </ViewSwitcherSidebar>\n * ```\n */\nexport function ViewSwitcherSidebar({\n value,\n onValueChange,\n 'aria-label': ariaLabel = 'Views',\n collapsed = false,\n header,\n footer,\n showHeaderSeparator = true,\n showFooterSeparator = true,\n children,\n className,\n ...props\n}: ViewSwitcherSidebarProps) {\n const groupRef = useRef<HTMLUListElement>(null);\n\n function handleKeyDown(e: KeyboardEvent<HTMLElement>) {\n const items = Array.from(\n groupRef.current?.querySelectorAll<HTMLButtonElement>('[role=radio]:not(:disabled)') ?? [],\n );\n const activeElement = document.activeElement;\n const idx = activeElement instanceof HTMLButtonElement ? items.indexOf(activeElement) : -1;\n\n if (idx === -1) {\n return;\n }\n\n let next = idx;\n if (e.key === 'ArrowDown' || e.key === 'ArrowRight') {\n next = (idx + 1) % items.length;\n } else if (e.key === 'ArrowUp' || e.key === 'ArrowLeft') {\n next = (idx - 1 + items.length) % items.length;\n } else if (e.key === 'Home') {\n next = 0;\n } else if (e.key === 'End') {\n next = items.length - 1;\n } else {\n return;\n }\n\n e.preventDefault();\n items[next].focus();\n items[next].click();\n }\n\n return (\n <ViewSwitcherSidebarContext.Provider value={{ value, onValueChange, collapsed }}>\n <nav\n className={[\n styles.sidebar,\n collapsed ? styles.sidebarCollapsed : null,\n !showHeaderSeparator ? styles.noHeaderSeparator : null,\n !showFooterSeparator ? styles.noFooterSeparator : null,\n className,\n ]\n .filter(Boolean)\n .join(' ')}\n onKeyDown={handleKeyDown}\n {...props}\n >\n {header && <div className={styles.header}>{header}</div>}\n <ul ref={groupRef} role=\"radiogroup\" aria-label={ariaLabel} className={styles.list}>\n {children}\n </ul>\n {footer && <div className={styles.footer}>{footer}</div>}\n </nav>\n </ViewSwitcherSidebarContext.Provider>\n );\n}\n"],"mappings":";;;;AAmBA,IAAM,IAA6B,EAAsD,KAAK;AAG9F,SAAgB,IAAyB;CACvC,IAAM,IAAM,EAAW,EAA2B;AAElD,KAAI,CAAC,EACH,OAAU,MAAM,kEAAkE;AAGpF,QAAO;;AAgDT,SAAgB,EAAoB,EAClC,UACA,kBACA,cAAc,IAAY,SAC1B,eAAY,IACZ,WACA,WACA,yBAAsB,IACtB,yBAAsB,IACtB,aACA,cACA,GAAG,KACwB;CAC3B,IAAM,IAAW,EAAyB,KAAK;CAE/C,SAAS,EAAc,GAA+B;EACpD,IAAM,IAAQ,MAAM,KAClB,EAAS,SAAS,iBAAoC,8BAA8B,IAAI,EAAE,CAC3F,EACK,IAAgB,SAAS,eACzB,IAAM,aAAyB,oBAAoB,EAAM,QAAQ,EAAc,GAAG;AAExF,MAAI,MAAQ,GACV;EAGF,IAAI,IAAO;AACX,MAAI,EAAE,QAAQ,eAAe,EAAE,QAAQ,aACrC,MAAQ,IAAM,KAAK,EAAM;WAChB,EAAE,QAAQ,aAAa,EAAE,QAAQ,YAC1C,MAAQ,IAAM,IAAI,EAAM,UAAU,EAAM;WAC/B,EAAE,QAAQ,OACnB,KAAO;WACE,EAAE,QAAQ,MACnB,KAAO,EAAM,SAAS;MAEtB;AAKF,EAFA,EAAE,gBAAgB,EAClB,EAAM,GAAM,OAAO,EACnB,EAAM,GAAM,OAAO;;AAGrB,QACE,kBAAC,EAA2B,UAA5B;EAAqC,OAAO;GAAE;GAAO;GAAe;GAAW;YAC7E,kBAAC,OAAD;GACE,WAAW;IACT,EAAO;IACP,IAAY,EAAO,mBAAmB;IACrC,IAAiD,OAA3B,EAAO;IAC7B,IAAiD,OAA3B,EAAO;IAC9B;IACD,CACE,OAAO,QAAQ,CACf,KAAK,IAAI;GACZ,WAAW;GACX,GAAI;aAXN;IAaG,KAAU,kBAAC,OAAD;KAAK,WAAW,EAAO;eAAS;KAAa,CAAA;IACxD,kBAAC,MAAD;KAAI,KAAK;KAAU,MAAK;KAAa,cAAY;KAAW,WAAW,EAAO;KAC3E;KACE,CAAA;IACJ,KAAU,kBAAC,OAAD;KAAK,WAAW,EAAO;eAAS;KAAa,CAAA;IACpD;;EAC8B,CAAA"}
1
+ {"version":3,"file":"ViewSwitcherSidebar.js","names":[],"sources":["../../../src/components/ViewSwitcherSidebar/ViewSwitcherSidebar.tsx"],"sourcesContent":["import {\n createContext,\n type HTMLAttributes,\n type KeyboardEvent,\n type ReactNode,\n useContext,\n useRef,\n} from 'react';\n\nimport styles from './ViewSwitcherSidebar.module.css';\n\n// ─── Context ──────────────────────────────────────────────────────────────────\n\ninterface ViewSwitcherSidebarContextValue {\n value: string;\n onValueChange: (value: string) => void;\n collapsed: boolean;\n}\n\nconst ViewSwitcherSidebarContext = createContext<ViewSwitcherSidebarContextValue | null>(null);\n\n// eslint-disable-next-line react-refresh/only-export-components\nexport function useViewSwitcherSidebar() {\n const ctx = useContext(ViewSwitcherSidebarContext);\n\n if (!ctx) {\n throw new Error('ViewSwitcherSidebarItem must be used inside ViewSwitcherSidebar');\n }\n\n return ctx;\n}\n\n// ─── Component ────────────────────────────────────────────────────────────────\n\nexport interface ViewSwitcherSidebarProps extends HTMLAttributes<HTMLElement> {\n /** Name of the currently active view. */\n value: string;\n /** Called with the new view name when the user selects an item. */\n onValueChange: (value: string) => void;\n /** Accessible label for the group. Defaults to `\"Views\"`. */\n 'aria-label'?: string;\n /**\n * When `true`, items render icon-only (labels hidden) and the sidebar\n * shrinks to its compact width. Used by `AdaptiveLayout` on tablet viewports.\n */\n collapsed?: boolean;\n /** Rendered above the scrollable item list (e.g. user card). */\n header?: ReactNode;\n /** Rendered below the scrollable item list (e.g. collapse toggle). */\n footer?: ReactNode;\n /** Show the separator line below the header slot. Defaults to `true`. */\n showHeaderSeparator?: boolean;\n /** Show the separator line above the footer slot. Defaults to `true`. */\n showFooterSeparator?: boolean;\n children?: ReactNode;\n}\n\n/**\n * Sidebar-style view switcher for apps with more than 4 top-level views,\n * or when the sidebar layout fits better than a header-bar `ViewSwitcher`.\n *\n * Mirrors `AdwViewSwitcherSidebar` (libadwaita 1.9 / GNOME 50), the modern\n * replacement for `GtkStackSidebar`.\n *\n * Compose with `ViewSwitcherSidebarItem` for each view. The active item is\n * highlighted with the accent colour; keyboard ↑ / ↓ cycles through items.\n *\n * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.ViewSwitcherSidebar.html\n *\n * @example\n * ```tsx\n * <ViewSwitcherSidebar value={view} onValueChange={setView}>\n * <ViewSwitcherSidebarItem name=\"photos\" label=\"Photos\" icon={MediaPlay} />\n * <ViewSwitcherSidebarItem name=\"albums\" label=\"Albums\" icon={Star} count={12} />\n * </ViewSwitcherSidebar>\n * ```\n */\nexport const ViewSwitcherSidebar = ({\n value,\n onValueChange,\n 'aria-label': ariaLabel = 'Views',\n collapsed = false,\n header,\n footer,\n showHeaderSeparator = true,\n showFooterSeparator = true,\n children,\n className,\n ...props\n}: ViewSwitcherSidebarProps) => {\n const groupRef = useRef<HTMLUListElement>(null);\n\n function handleKeyDown(e: KeyboardEvent<HTMLElement>) {\n const items = Array.from(\n groupRef.current?.querySelectorAll<HTMLButtonElement>('[role=radio]:not(:disabled)') ?? [],\n );\n const activeElement = document.activeElement;\n const idx = activeElement instanceof HTMLButtonElement ? items.indexOf(activeElement) : -1;\n\n if (idx === -1) {\n return;\n }\n\n let next = idx;\n if (e.key === 'ArrowDown' || e.key === 'ArrowRight') {\n next = (idx + 1) % items.length;\n } else if (e.key === 'ArrowUp' || e.key === 'ArrowLeft') {\n next = (idx - 1 + items.length) % items.length;\n } else if (e.key === 'Home') {\n next = 0;\n } else if (e.key === 'End') {\n next = items.length - 1;\n } else {\n return;\n }\n\n e.preventDefault();\n items[next].focus();\n items[next].click();\n }\n\n return (\n <ViewSwitcherSidebarContext.Provider value={{ value, onValueChange, collapsed }}>\n <nav\n className={[\n styles.sidebar,\n collapsed ? styles.sidebarCollapsed : null,\n !showHeaderSeparator ? styles.noHeaderSeparator : null,\n !showFooterSeparator ? styles.noFooterSeparator : null,\n className,\n ]\n .filter(Boolean)\n .join(' ')}\n onKeyDown={handleKeyDown}\n {...props}\n >\n {header && <div className={styles.header}>{header}</div>}\n <ul ref={groupRef} role=\"radiogroup\" aria-label={ariaLabel} className={styles.list}>\n {children}\n </ul>\n {footer && <div className={styles.footer}>{footer}</div>}\n </nav>\n </ViewSwitcherSidebarContext.Provider>\n );\n};\n"],"mappings":";;;;AAmBA,IAAM,IAA6B,EAAsD,IAAI;AAG7F,SAAgB,IAAyB;CACvC,IAAM,IAAM,EAAW,CAA0B;CAEjD,IAAI,CAAC,GACH,MAAU,MAAM,iEAAiE;CAGnF,OAAO;AACT;AA+CA,IAAa,KAAuB,EAClC,UACA,kBACA,cAAc,IAAY,SAC1B,eAAY,IACZ,WACA,WACA,yBAAsB,IACtB,yBAAsB,IACtB,aACA,cACA,GAAG,QAC2B;CAC9B,IAAM,IAAW,EAAyB,IAAI;CAE9C,SAAS,EAAc,GAA+B;EACpD,IAAM,IAAQ,MAAM,KAClB,EAAS,SAAS,iBAAoC,6BAA6B,KAAK,CAAC,CAC3F,GACM,IAAgB,SAAS,eACzB,IAAM,aAAyB,oBAAoB,EAAM,QAAQ,CAAa,IAAI;EAExF,IAAI,MAAQ,IACV;EAGF,IAAI,IAAO;EACX,IAAI,EAAE,QAAQ,eAAe,EAAE,QAAQ,cACrC,KAAQ,IAAM,KAAK,EAAM;OACpB,IAAI,EAAE,QAAQ,aAAa,EAAE,QAAQ,aAC1C,KAAQ,IAAM,IAAI,EAAM,UAAU,EAAM;OACnC,IAAI,EAAE,QAAQ,QACnB,IAAO;OACF,IAAI,EAAE,QAAQ,OACnB,IAAO,EAAM,SAAS;OAEtB;EAKF,AAFA,EAAE,eAAe,GACjB,EAAM,GAAM,MAAM,GAClB,EAAM,GAAM,MAAM;CACpB;CAEA,OACE,kBAAC,EAA2B,UAA5B;EAAqC,OAAO;GAAE;GAAO;GAAe;EAAU;YAC5E,kBAAC,OAAD;GACE,WAAW;IACT,EAAO;IACP,IAAY,EAAO,mBAAmB;IACrC,IAAiD,OAA3B,EAAO;IAC7B,IAAiD,OAA3B,EAAO;IAC9B;GACF,EACG,OAAO,OAAO,EACd,KAAK,GAAG;GACX,WAAW;GACX,GAAI;aAXN;IAaG,KAAU,kBAAC,OAAD;KAAK,WAAW,EAAO;eAAS;IAAY,CAAA;IACvD,kBAAC,MAAD;KAAI,KAAK;KAAU,MAAK;KAAa,cAAY;KAAW,WAAW,EAAO;KAC3E;IACC,CAAA;IACH,KAAU,kBAAC,OAAD;KAAK,WAAW,EAAO;eAAS;IAAY,CAAA;GACpD;;CAC8B,CAAA;AAEzC"}
@@ -1,2 +1,2 @@
1
- const e=require(`../Icon/Icon.cjs`),t=require(`./ViewSwitcherSidebar.module.css.cjs`),n=require(`./ViewSwitcherSidebar.cjs`);let r=require(`react/jsx-runtime`);function i({name:i,label:a,icon:o,count:s,suffix:c,disabled:l,className:u,...d}){let{value:f,onValueChange:p,collapsed:m}=n.useViewSwitcherSidebar(),h=f===i,g=c??s??null;return(0,r.jsx)(`li`,{className:t.default.item,children:(0,r.jsxs)(`button`,{type:`button`,role:`radio`,"aria-checked":h,tabIndex:h?0:-1,disabled:l,onClick:()=>p(i),className:[t.default.itemBtn,h?t.default.active:null,u].filter(Boolean).join(` `),...d,children:[o&&(0,r.jsx)(`span`,{className:t.default.itemIcon,children:(0,r.jsx)(e.Icon,{icon:o,size:`md`,"aria-hidden":!0})}),!m&&(0,r.jsx)(`span`,{className:t.default.itemLabel,children:a}),!m&&g!=null&&(0,r.jsx)(`span`,{className:t.default.itemSuffix,children:typeof g==`number`?(0,r.jsx)(`span`,{className:t.default.count,children:g>99?`99+`:g}):g})]})})}exports.ViewSwitcherSidebarItem=i;
1
+ const e=require("../Icon/Icon.cjs"),t=require("./ViewSwitcherSidebar.module.css.cjs"),n=require("./ViewSwitcherSidebar.cjs");let r=require("react/jsx-runtime");var i=({name:i,label:a,icon:o,count:s,suffix:c,disabled:l,className:u,...d})=>{let{value:f,onValueChange:p,collapsed:m}=n.useViewSwitcherSidebar(),h=f===i,g=c??s??null;return(0,r.jsx)(`li`,{className:t.default.item,children:(0,r.jsxs)(`button`,{type:`button`,role:`radio`,"aria-checked":h,tabIndex:h?0:-1,disabled:l,onClick:()=>p(i),className:[t.default.itemBtn,h?t.default.active:null,u].filter(Boolean).join(` `),...d,children:[o&&(0,r.jsx)(`span`,{className:t.default.itemIcon,children:(0,r.jsx)(e.Icon,{icon:o,size:`md`,"aria-hidden":!0})}),!m&&(0,r.jsx)(`span`,{className:t.default.itemLabel,children:a}),!m&&g!=null&&(0,r.jsx)(`span`,{className:t.default.itemSuffix,children:typeof g==`number`?(0,r.jsx)(`span`,{className:t.default.count,children:g>99?`99+`:g}):g})]})})};exports.ViewSwitcherSidebarItem=i;
2
2
  //# sourceMappingURL=ViewSwitcherSidebarItem.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ViewSwitcherSidebarItem.cjs","names":[],"sources":["../../../src/components/ViewSwitcherSidebar/ViewSwitcherSidebarItem.tsx"],"sourcesContent":["import type { IconDefinition } from '@gnome-ui/icons';\nimport type { ButtonHTMLAttributes, ReactNode } from 'react';\n\nimport { Icon } from '../Icon';\n\nimport { useViewSwitcherSidebar } from './ViewSwitcherSidebar';\nimport styles from './ViewSwitcherSidebar.module.css';\n\nexport interface ViewSwitcherSidebarItemProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n /** String identifier — matched against the group's `value`. */\n name: string;\n /** View label. */\n label: string;\n /** Icon from `@gnome-ui/icons`. */\n icon?: IconDefinition;\n /**\n * Optional trailing count (unread messages, items…).\n * Rendered as a small badge at the trailing edge.\n */\n count?: number;\n /**\n * Optional trailing widget. Takes precedence over `count`.\n * Use for custom badges, buttons, or status indicators.\n */\n suffix?: ReactNode;\n}\n\n/**\n * Individual view item inside a `ViewSwitcherSidebar`.\n *\n * Renders as `role=\"radio\"`. Only the active item is in the natural Tab order;\n * all others use `tabIndex={-1}` and are reached via arrow-key navigation.\n */\nexport function ViewSwitcherSidebarItem({\n name,\n label,\n icon,\n count,\n suffix,\n disabled,\n className,\n ...props\n}: ViewSwitcherSidebarItemProps) {\n const { value, onValueChange, collapsed } = useViewSwitcherSidebar();\n const active = value === name;\n const trailing = suffix ?? (count !== null && count !== undefined ? count : null);\n\n return (\n <li className={styles.item}>\n <button\n type=\"button\"\n role=\"radio\"\n aria-checked={active}\n tabIndex={active ? 0 : -1}\n disabled={disabled}\n onClick={() => onValueChange(name)}\n className={[styles.itemBtn, active ? styles.active : null, className]\n .filter(Boolean)\n .join(' ')}\n {...props}\n >\n {icon && (\n <span className={styles.itemIcon}>\n <Icon icon={icon} size=\"md\" aria-hidden />\n </span>\n )}\n {!collapsed && <span className={styles.itemLabel}>{label}</span>}\n {!collapsed && trailing !== null && trailing !== undefined && (\n <span className={styles.itemSuffix}>\n {typeof trailing === 'number' ? (\n <span className={styles.count}>{trailing > 99 ? '99+' : trailing}</span>\n ) : (\n trailing\n )}\n </span>\n )}\n </button>\n </li>\n );\n}\n"],"mappings":"gKAiCA,SAAgB,EAAwB,CACtC,OACA,QACA,OACA,QACA,SACA,WACA,YACA,GAAG,GAC4B,CAC/B,GAAM,CAAE,QAAO,gBAAe,aAAc,EAAA,wBAAwB,CAC9D,EAAS,IAAU,EACnB,EAAW,GAAW,GAAgD,KAE5E,OACE,EAAA,EAAA,KAAC,KAAD,CAAI,UAAW,EAAA,QAAO,eACpB,EAAA,EAAA,MAAC,SAAD,CACE,KAAK,SACL,KAAK,QACL,eAAc,EACd,SAAU,EAAS,EAAI,GACb,WACV,YAAe,EAAc,EAAK,CAClC,UAAW,CAAC,EAAA,QAAO,QAAS,EAAS,EAAA,QAAO,OAAS,KAAM,EAAU,CAClE,OAAO,QAAQ,CACf,KAAK,IAAI,CACZ,GAAI,WAVN,CAYG,IACC,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,EAAA,QAAO,mBACtB,EAAA,EAAA,KAAC,EAAA,KAAD,CAAY,OAAM,KAAK,KAAK,cAAA,GAAc,CAAA,CACrC,CAAA,CAER,CAAC,IAAa,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,EAAA,QAAO,mBAAY,EAAa,CAAA,CAC/D,CAAC,GAAa,GAAa,OAC1B,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,EAAA,QAAO,oBACrB,OAAO,GAAa,UACnB,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,EAAA,QAAO,eAAQ,EAAW,GAAK,MAAQ,EAAgB,CAAA,CAExE,EAEG,CAAA,CAEF,GACN,CAAA"}
1
+ {"version":3,"file":"ViewSwitcherSidebarItem.cjs","names":[],"sources":["../../../src/components/ViewSwitcherSidebar/ViewSwitcherSidebarItem.tsx"],"sourcesContent":["import type { IconDefinition } from '@gnome-ui/icons';\nimport type { ButtonHTMLAttributes, ReactNode } from 'react';\n\nimport { Icon } from '../Icon';\n\nimport { useViewSwitcherSidebar } from './ViewSwitcherSidebar';\nimport styles from './ViewSwitcherSidebar.module.css';\n\nexport interface ViewSwitcherSidebarItemProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n /** String identifier — matched against the group's `value`. */\n name: string;\n /** View label. */\n label: string;\n /** Icon from `@gnome-ui/icons`. */\n icon?: IconDefinition;\n /**\n * Optional trailing count (unread messages, items…).\n * Rendered as a small badge at the trailing edge.\n */\n count?: number;\n /**\n * Optional trailing widget. Takes precedence over `count`.\n * Use for custom badges, buttons, or status indicators.\n */\n suffix?: ReactNode;\n}\n\n/**\n * Individual view item inside a `ViewSwitcherSidebar`.\n *\n * Renders as `role=\"radio\"`. Only the active item is in the natural Tab order;\n * all others use `tabIndex={-1}` and are reached via arrow-key navigation.\n */\nexport const ViewSwitcherSidebarItem = ({\n name,\n label,\n icon,\n count,\n suffix,\n disabled,\n className,\n ...props\n}: ViewSwitcherSidebarItemProps) => {\n const { value, onValueChange, collapsed } = useViewSwitcherSidebar();\n const active = value === name;\n const trailing = suffix ?? (count !== null && count !== undefined ? count : null);\n\n return (\n <li className={styles.item}>\n <button\n type=\"button\"\n role=\"radio\"\n aria-checked={active}\n tabIndex={active ? 0 : -1}\n disabled={disabled}\n onClick={() => onValueChange(name)}\n className={[styles.itemBtn, active ? styles.active : null, className]\n .filter(Boolean)\n .join(' ')}\n {...props}\n >\n {icon && (\n <span className={styles.itemIcon}>\n <Icon icon={icon} size=\"md\" aria-hidden />\n </span>\n )}\n {!collapsed && <span className={styles.itemLabel}>{label}</span>}\n {!collapsed && trailing !== null && trailing !== undefined && (\n <span className={styles.itemSuffix}>\n {typeof trailing === 'number' ? (\n <span className={styles.count}>{trailing > 99 ? '99+' : trailing}</span>\n ) : (\n trailing\n )}\n </span>\n )}\n </button>\n </li>\n );\n};\n"],"mappings":"gKAiCA,IAAa,GAA2B,CACtC,OACA,QACA,OACA,QACA,SACA,WACA,YACA,GAAG,KAC+B,CAClC,GAAM,CAAE,QAAO,gBAAe,aAAc,EAAA,uBAAuB,EAC7D,EAAS,IAAU,EACnB,EAAW,GAAW,GAAgD,KAE5E,OACE,EAAA,EAAA,KAAC,KAAD,CAAI,UAAW,EAAA,QAAO,eACpB,EAAA,EAAA,MAAC,SAAD,CACE,KAAK,SACL,KAAK,QACL,eAAc,EACd,SAAU,EAAS,EAAI,GACb,WACV,YAAe,EAAc,CAAI,EACjC,UAAW,CAAC,EAAA,QAAO,QAAS,EAAS,EAAA,QAAO,OAAS,KAAM,CAAS,EACjE,OAAO,OAAO,EACd,KAAK,GAAG,EACX,GAAI,WAVN,CAYG,IACC,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,EAAA,QAAO,mBACtB,EAAA,EAAA,KAAC,EAAA,KAAD,CAAY,OAAM,KAAK,KAAK,cAAA,EAAa,CAAA,CACrC,CAAA,EAEP,CAAC,IAAa,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,EAAA,QAAO,mBAAY,CAAY,CAAA,EAC9D,CAAC,GAAa,GAAa,OAC1B,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,EAAA,QAAO,oBACrB,OAAO,GAAa,UACnB,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,EAAA,QAAO,eAAQ,EAAW,GAAK,MAAQ,CAAe,CAAA,EAEvE,CAEE,CAAA,CAEF,GACN,CAAA,CAER"}
@@ -24,4 +24,4 @@ export interface ViewSwitcherSidebarItemProps extends ButtonHTMLAttributes<HTMLB
24
24
  * Renders as `role="radio"`. Only the active item is in the natural Tab order;
25
25
  * all others use `tabIndex={-1}` and are reached via arrow-key navigation.
26
26
  */
27
- export declare function ViewSwitcherSidebarItem({ name, label, icon, count, suffix, disabled, className, ...props }: ViewSwitcherSidebarItemProps): import("react/jsx-runtime").JSX.Element;
27
+ export declare const ViewSwitcherSidebarItem: ({ name, label, icon, count, suffix, disabled, className, ...props }: ViewSwitcherSidebarItemProps) => import("react/jsx-runtime").JSX.Element;
@@ -3,7 +3,7 @@ import t from "./ViewSwitcherSidebar.module.css.js";
3
3
  import { useViewSwitcherSidebar as n } from "./ViewSwitcherSidebar.js";
4
4
  import { jsx as r, jsxs as i } from "react/jsx-runtime";
5
5
  //#region src/components/ViewSwitcherSidebar/ViewSwitcherSidebarItem.tsx
6
- function a({ name: a, label: o, icon: s, count: c, suffix: l, disabled: u, className: d, ...f }) {
6
+ var a = ({ name: a, label: o, icon: s, count: c, suffix: l, disabled: u, className: d, ...f }) => {
7
7
  let { value: p, onValueChange: m, collapsed: h } = n(), g = p === a, _ = l ?? c ?? null;
8
8
  return /* @__PURE__ */ r("li", {
9
9
  className: t.item,
@@ -43,7 +43,7 @@ function a({ name: a, label: o, icon: s, count: c, suffix: l, disabled: u, class
43
43
  ]
44
44
  })
45
45
  });
46
- }
46
+ };
47
47
  //#endregion
48
48
  export { a as ViewSwitcherSidebarItem };
49
49
 
@@ -1 +1 @@
1
- {"version":3,"file":"ViewSwitcherSidebarItem.js","names":[],"sources":["../../../src/components/ViewSwitcherSidebar/ViewSwitcherSidebarItem.tsx"],"sourcesContent":["import type { IconDefinition } from '@gnome-ui/icons';\nimport type { ButtonHTMLAttributes, ReactNode } from 'react';\n\nimport { Icon } from '../Icon';\n\nimport { useViewSwitcherSidebar } from './ViewSwitcherSidebar';\nimport styles from './ViewSwitcherSidebar.module.css';\n\nexport interface ViewSwitcherSidebarItemProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n /** String identifier — matched against the group's `value`. */\n name: string;\n /** View label. */\n label: string;\n /** Icon from `@gnome-ui/icons`. */\n icon?: IconDefinition;\n /**\n * Optional trailing count (unread messages, items…).\n * Rendered as a small badge at the trailing edge.\n */\n count?: number;\n /**\n * Optional trailing widget. Takes precedence over `count`.\n * Use for custom badges, buttons, or status indicators.\n */\n suffix?: ReactNode;\n}\n\n/**\n * Individual view item inside a `ViewSwitcherSidebar`.\n *\n * Renders as `role=\"radio\"`. Only the active item is in the natural Tab order;\n * all others use `tabIndex={-1}` and are reached via arrow-key navigation.\n */\nexport function ViewSwitcherSidebarItem({\n name,\n label,\n icon,\n count,\n suffix,\n disabled,\n className,\n ...props\n}: ViewSwitcherSidebarItemProps) {\n const { value, onValueChange, collapsed } = useViewSwitcherSidebar();\n const active = value === name;\n const trailing = suffix ?? (count !== null && count !== undefined ? count : null);\n\n return (\n <li className={styles.item}>\n <button\n type=\"button\"\n role=\"radio\"\n aria-checked={active}\n tabIndex={active ? 0 : -1}\n disabled={disabled}\n onClick={() => onValueChange(name)}\n className={[styles.itemBtn, active ? styles.active : null, className]\n .filter(Boolean)\n .join(' ')}\n {...props}\n >\n {icon && (\n <span className={styles.itemIcon}>\n <Icon icon={icon} size=\"md\" aria-hidden />\n </span>\n )}\n {!collapsed && <span className={styles.itemLabel}>{label}</span>}\n {!collapsed && trailing !== null && trailing !== undefined && (\n <span className={styles.itemSuffix}>\n {typeof trailing === 'number' ? (\n <span className={styles.count}>{trailing > 99 ? '99+' : trailing}</span>\n ) : (\n trailing\n )}\n </span>\n )}\n </button>\n </li>\n );\n}\n"],"mappings":";;;;;AAiCA,SAAgB,EAAwB,EACtC,SACA,UACA,SACA,UACA,WACA,aACA,cACA,GAAG,KAC4B;CAC/B,IAAM,EAAE,UAAO,kBAAe,iBAAc,GAAwB,EAC9D,IAAS,MAAU,GACnB,IAAW,KAAW,KAAgD;AAE5E,QACE,kBAAC,MAAD;EAAI,WAAW,EAAO;YACpB,kBAAC,UAAD;GACE,MAAK;GACL,MAAK;GACL,gBAAc;GACd,UAAU,IAAS,IAAI;GACb;GACV,eAAe,EAAc,EAAK;GAClC,WAAW;IAAC,EAAO;IAAS,IAAS,EAAO,SAAS;IAAM;IAAU,CAClE,OAAO,QAAQ,CACf,KAAK,IAAI;GACZ,GAAI;aAVN;IAYG,KACC,kBAAC,QAAD;KAAM,WAAW,EAAO;eACtB,kBAAC,GAAD;MAAY;MAAM,MAAK;MAAK,eAAA;MAAc,CAAA;KACrC,CAAA;IAER,CAAC,KAAa,kBAAC,QAAD;KAAM,WAAW,EAAO;eAAY;KAAa,CAAA;IAC/D,CAAC,KAAa,KAAa,QAC1B,kBAAC,QAAD;KAAM,WAAW,EAAO;eACrB,OAAO,KAAa,WACnB,kBAAC,QAAD;MAAM,WAAW,EAAO;gBAAQ,IAAW,KAAK,QAAQ;MAAgB,CAAA,GAExE;KAEG,CAAA;IAEF;;EACN,CAAA"}
1
+ {"version":3,"file":"ViewSwitcherSidebarItem.js","names":[],"sources":["../../../src/components/ViewSwitcherSidebar/ViewSwitcherSidebarItem.tsx"],"sourcesContent":["import type { IconDefinition } from '@gnome-ui/icons';\nimport type { ButtonHTMLAttributes, ReactNode } from 'react';\n\nimport { Icon } from '../Icon';\n\nimport { useViewSwitcherSidebar } from './ViewSwitcherSidebar';\nimport styles from './ViewSwitcherSidebar.module.css';\n\nexport interface ViewSwitcherSidebarItemProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n /** String identifier — matched against the group's `value`. */\n name: string;\n /** View label. */\n label: string;\n /** Icon from `@gnome-ui/icons`. */\n icon?: IconDefinition;\n /**\n * Optional trailing count (unread messages, items…).\n * Rendered as a small badge at the trailing edge.\n */\n count?: number;\n /**\n * Optional trailing widget. Takes precedence over `count`.\n * Use for custom badges, buttons, or status indicators.\n */\n suffix?: ReactNode;\n}\n\n/**\n * Individual view item inside a `ViewSwitcherSidebar`.\n *\n * Renders as `role=\"radio\"`. Only the active item is in the natural Tab order;\n * all others use `tabIndex={-1}` and are reached via arrow-key navigation.\n */\nexport const ViewSwitcherSidebarItem = ({\n name,\n label,\n icon,\n count,\n suffix,\n disabled,\n className,\n ...props\n}: ViewSwitcherSidebarItemProps) => {\n const { value, onValueChange, collapsed } = useViewSwitcherSidebar();\n const active = value === name;\n const trailing = suffix ?? (count !== null && count !== undefined ? count : null);\n\n return (\n <li className={styles.item}>\n <button\n type=\"button\"\n role=\"radio\"\n aria-checked={active}\n tabIndex={active ? 0 : -1}\n disabled={disabled}\n onClick={() => onValueChange(name)}\n className={[styles.itemBtn, active ? styles.active : null, className]\n .filter(Boolean)\n .join(' ')}\n {...props}\n >\n {icon && (\n <span className={styles.itemIcon}>\n <Icon icon={icon} size=\"md\" aria-hidden />\n </span>\n )}\n {!collapsed && <span className={styles.itemLabel}>{label}</span>}\n {!collapsed && trailing !== null && trailing !== undefined && (\n <span className={styles.itemSuffix}>\n {typeof trailing === 'number' ? (\n <span className={styles.count}>{trailing > 99 ? '99+' : trailing}</span>\n ) : (\n trailing\n )}\n </span>\n )}\n </button>\n </li>\n );\n};\n"],"mappings":";;;;;AAiCA,IAAa,KAA2B,EACtC,SACA,UACA,SACA,UACA,WACA,aACA,cACA,GAAG,QAC+B;CAClC,IAAM,EAAE,UAAO,kBAAe,iBAAc,EAAuB,GAC7D,IAAS,MAAU,GACnB,IAAW,KAAW,KAAgD;CAE5E,OACE,kBAAC,MAAD;EAAI,WAAW,EAAO;YACpB,kBAAC,UAAD;GACE,MAAK;GACL,MAAK;GACL,gBAAc;GACd,UAAU,IAAS,IAAI;GACb;GACV,eAAe,EAAc,CAAI;GACjC,WAAW;IAAC,EAAO;IAAS,IAAS,EAAO,SAAS;IAAM;GAAS,EACjE,OAAO,OAAO,EACd,KAAK,GAAG;GACX,GAAI;aAVN;IAYG,KACC,kBAAC,QAAD;KAAM,WAAW,EAAO;eACtB,kBAAC,GAAD;MAAY;MAAM,MAAK;MAAK,eAAA;KAAa,CAAA;IACrC,CAAA;IAEP,CAAC,KAAa,kBAAC,QAAD;KAAM,WAAW,EAAO;eAAY;IAAY,CAAA;IAC9D,CAAC,KAAa,KAAa,QAC1B,kBAAC,QAAD;KAAM,WAAW,EAAO;eACrB,OAAO,KAAa,WACnB,kBAAC,QAAD;MAAM,WAAW,EAAO;gBAAQ,IAAW,KAAK,QAAQ;KAAe,CAAA,IAEvE;IAEE,CAAA;GAEF;;CACN,CAAA;AAER"}
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./ViewSwitcherSidebar/ViewSwitcherSidebar.cjs`),t=require(`./ViewSwitcherSidebar/ViewSwitcherSidebarItem.cjs`);exports.ViewSwitcherSidebar=e.ViewSwitcherSidebar,exports.ViewSwitcherSidebarItem=t.ViewSwitcherSidebarItem;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./ViewSwitcherSidebar/ViewSwitcherSidebar.cjs"),t=require("./ViewSwitcherSidebar/ViewSwitcherSidebarItem.cjs");exports.ViewSwitcherSidebar=e.ViewSwitcherSidebar,exports.ViewSwitcherSidebarItem=t.ViewSwitcherSidebarItem;
@@ -1,2 +1,2 @@
1
- const e=require(`./WindowTitle.module.css.cjs`);let t=require(`react/jsx-runtime`);function n({title:n,subtitle:r,className:i,...a}){return(0,t.jsxs)(`div`,{className:[e.default.windowTitle,i].filter(Boolean).join(` `),...a,children:[(0,t.jsx)(`span`,{className:e.default.title,children:n}),r&&(0,t.jsx)(`span`,{className:e.default.subtitle,children:r})]})}exports.WindowTitle=n;
1
+ const e=require("./WindowTitle.module.css.cjs");let t=require("react/jsx-runtime");var n=({title:n,subtitle:r,className:i,...a})=>(0,t.jsxs)(`div`,{className:[e.default.windowTitle,i].filter(Boolean).join(` `),...a,children:[(0,t.jsx)(`span`,{className:e.default.title,children:n}),r&&(0,t.jsx)(`span`,{className:e.default.subtitle,children:r})]});exports.WindowTitle=n;
2
2
  //# sourceMappingURL=WindowTitle.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"WindowTitle.cjs","names":[],"sources":["../../../src/components/WindowTitle/WindowTitle.tsx"],"sourcesContent":["import type { HTMLAttributes } from 'react';\n\nimport styles from './WindowTitle.module.css';\n\nexport interface WindowTitleProps extends HTMLAttributes<HTMLDivElement> {\n /** Primary title — rendered in bold. */\n title: string;\n /** Secondary subtitle — rendered smaller and dimmed below the title. */\n subtitle?: string;\n}\n\n/**\n * Two-line title + subtitle widget for use inside a `HeaderBar`.\n *\n * Pass as the `title` prop of `HeaderBar` to get a centred two-line header\n * that shows an app name and current document/view name.\n *\n * Mirrors `AdwWindowTitle`.\n *\n * @example\n * ```tsx\n * <HeaderBar title={<WindowTitle title=\"Files\" subtitle=\"/home/user/Documents\" />} />\n * ```\n *\n * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.WindowTitle.html\n */\nexport function WindowTitle({ title, subtitle, className, ...props }: WindowTitleProps) {\n return (\n <div className={[styles.windowTitle, className].filter(Boolean).join(' ')} {...props}>\n <span className={styles.title}>{title}</span>\n {subtitle && <span className={styles.subtitle}>{subtitle}</span>}\n </div>\n );\n}\n"],"mappings":"mFA0BA,SAAgB,EAAY,CAAE,QAAO,WAAU,YAAW,GAAG,GAA2B,CACtF,OACE,EAAA,EAAA,MAAC,MAAD,CAAK,UAAW,CAAC,EAAA,QAAO,YAAa,EAAU,CAAC,OAAO,QAAQ,CAAC,KAAK,IAAI,CAAE,GAAI,WAA/E,EACE,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,EAAA,QAAO,eAAQ,EAAa,CAAA,CAC5C,IAAY,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,EAAA,QAAO,kBAAW,EAAgB,CAAA,CAC5D"}
1
+ {"version":3,"file":"WindowTitle.cjs","names":[],"sources":["../../../src/components/WindowTitle/WindowTitle.tsx"],"sourcesContent":["import type { HTMLAttributes } from 'react';\n\nimport styles from './WindowTitle.module.css';\n\nexport interface WindowTitleProps extends HTMLAttributes<HTMLDivElement> {\n /** Primary title — rendered in bold. */\n title: string;\n /** Secondary subtitle — rendered smaller and dimmed below the title. */\n subtitle?: string;\n}\n\n/**\n * Two-line title + subtitle widget for use inside a `HeaderBar`.\n *\n * Pass as the `title` prop of `HeaderBar` to get a centred two-line header\n * that shows an app name and current document/view name.\n *\n * Mirrors `AdwWindowTitle`.\n *\n * @example\n * ```tsx\n * <HeaderBar title={<WindowTitle title=\"Files\" subtitle=\"/home/user/Documents\" />} />\n * ```\n *\n * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.WindowTitle.html\n */\nexport const WindowTitle = ({ title, subtitle, className, ...props }: WindowTitleProps) => {\n return (\n <div className={[styles.windowTitle, className].filter(Boolean).join(' ')} {...props}>\n <span className={styles.title}>{title}</span>\n {subtitle && <span className={styles.subtitle}>{subtitle}</span>}\n </div>\n );\n};\n"],"mappings":"mFA0BA,IAAa,GAAe,CAAE,QAAO,WAAU,YAAW,GAAG,MAEzD,EAAA,EAAA,MAAC,MAAD,CAAK,UAAW,CAAC,EAAA,QAAO,YAAa,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,EAAG,GAAI,WAA/E,EACE,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,EAAA,QAAO,eAAQ,CAAY,CAAA,EAC3C,IAAY,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,EAAA,QAAO,kBAAW,CAAe,CAAA,CAC5D"}
@@ -20,4 +20,4 @@ export interface WindowTitleProps extends HTMLAttributes<HTMLDivElement> {
20
20
  *
21
21
  * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.WindowTitle.html
22
22
  */
23
- export declare function WindowTitle({ title, subtitle, className, ...props }: WindowTitleProps): import("react/jsx-runtime").JSX.Element;
23
+ export declare const WindowTitle: ({ title, subtitle, className, ...props }: WindowTitleProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,19 +1,17 @@
1
1
  import e from "./WindowTitle.module.css.js";
2
2
  import { jsx as t, jsxs as n } from "react/jsx-runtime";
3
3
  //#region src/components/WindowTitle/WindowTitle.tsx
4
- function r({ title: r, subtitle: i, className: a, ...o }) {
5
- return /* @__PURE__ */ n("div", {
6
- className: [e.windowTitle, a].filter(Boolean).join(" "),
7
- ...o,
8
- children: [/* @__PURE__ */ t("span", {
9
- className: e.title,
10
- children: r
11
- }), i && /* @__PURE__ */ t("span", {
12
- className: e.subtitle,
13
- children: i
14
- })]
15
- });
16
- }
4
+ var r = ({ title: r, subtitle: i, className: a, ...o }) => /* @__PURE__ */ n("div", {
5
+ className: [e.windowTitle, a].filter(Boolean).join(" "),
6
+ ...o,
7
+ children: [/* @__PURE__ */ t("span", {
8
+ className: e.title,
9
+ children: r
10
+ }), i && /* @__PURE__ */ t("span", {
11
+ className: e.subtitle,
12
+ children: i
13
+ })]
14
+ });
17
15
  //#endregion
18
16
  export { r as WindowTitle };
19
17
 
@@ -1 +1 @@
1
- {"version":3,"file":"WindowTitle.js","names":[],"sources":["../../../src/components/WindowTitle/WindowTitle.tsx"],"sourcesContent":["import type { HTMLAttributes } from 'react';\n\nimport styles from './WindowTitle.module.css';\n\nexport interface WindowTitleProps extends HTMLAttributes<HTMLDivElement> {\n /** Primary title — rendered in bold. */\n title: string;\n /** Secondary subtitle — rendered smaller and dimmed below the title. */\n subtitle?: string;\n}\n\n/**\n * Two-line title + subtitle widget for use inside a `HeaderBar`.\n *\n * Pass as the `title` prop of `HeaderBar` to get a centred two-line header\n * that shows an app name and current document/view name.\n *\n * Mirrors `AdwWindowTitle`.\n *\n * @example\n * ```tsx\n * <HeaderBar title={<WindowTitle title=\"Files\" subtitle=\"/home/user/Documents\" />} />\n * ```\n *\n * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.WindowTitle.html\n */\nexport function WindowTitle({ title, subtitle, className, ...props }: WindowTitleProps) {\n return (\n <div className={[styles.windowTitle, className].filter(Boolean).join(' ')} {...props}>\n <span className={styles.title}>{title}</span>\n {subtitle && <span className={styles.subtitle}>{subtitle}</span>}\n </div>\n );\n}\n"],"mappings":";;;AA0BA,SAAgB,EAAY,EAAE,UAAO,aAAU,cAAW,GAAG,KAA2B;AACtF,QACE,kBAAC,OAAD;EAAK,WAAW,CAAC,EAAO,aAAa,EAAU,CAAC,OAAO,QAAQ,CAAC,KAAK,IAAI;EAAE,GAAI;YAA/E,CACE,kBAAC,QAAD;GAAM,WAAW,EAAO;aAAQ;GAAa,CAAA,EAC5C,KAAY,kBAAC,QAAD;GAAM,WAAW,EAAO;aAAW;GAAgB,CAAA,CAC5D"}
1
+ {"version":3,"file":"WindowTitle.js","names":[],"sources":["../../../src/components/WindowTitle/WindowTitle.tsx"],"sourcesContent":["import type { HTMLAttributes } from 'react';\n\nimport styles from './WindowTitle.module.css';\n\nexport interface WindowTitleProps extends HTMLAttributes<HTMLDivElement> {\n /** Primary title — rendered in bold. */\n title: string;\n /** Secondary subtitle — rendered smaller and dimmed below the title. */\n subtitle?: string;\n}\n\n/**\n * Two-line title + subtitle widget for use inside a `HeaderBar`.\n *\n * Pass as the `title` prop of `HeaderBar` to get a centred two-line header\n * that shows an app name and current document/view name.\n *\n * Mirrors `AdwWindowTitle`.\n *\n * @example\n * ```tsx\n * <HeaderBar title={<WindowTitle title=\"Files\" subtitle=\"/home/user/Documents\" />} />\n * ```\n *\n * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.WindowTitle.html\n */\nexport const WindowTitle = ({ title, subtitle, className, ...props }: WindowTitleProps) => {\n return (\n <div className={[styles.windowTitle, className].filter(Boolean).join(' ')} {...props}>\n <span className={styles.title}>{title}</span>\n {subtitle && <span className={styles.subtitle}>{subtitle}</span>}\n </div>\n );\n};\n"],"mappings":";;;AA0BA,IAAa,KAAe,EAAE,UAAO,aAAU,cAAW,GAAG,QAEzD,kBAAC,OAAD;CAAK,WAAW,CAAC,EAAO,aAAa,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;CAAG,GAAI;WAA/E,CACE,kBAAC,QAAD;EAAM,WAAW,EAAO;YAAQ;CAAY,CAAA,GAC3C,KAAY,kBAAC,QAAD;EAAM,WAAW,EAAO;YAAW;CAAe,CAAA,CAC5D"}
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./WindowTitle/WindowTitle.cjs`);exports.WindowTitle=e.WindowTitle;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./WindowTitle/WindowTitle.cjs");exports.WindowTitle=e.WindowTitle;
@@ -1,2 +1,2 @@
1
- const e=require(`./WrapBox.module.css.cjs`);let t=require(`react/jsx-runtime`);function n({childSpacing:n=6,lineSpacing:r,justify:i=`start`,align:a=`center`,wrapReverse:o=!1,children:s,className:c,style:l,...u}){let d=typeof n==`number`?`${n}px`:n,f=r==null?d:typeof r==`number`?`${r}px`:r,p={"--wrapbox-gap":d,"--wrapbox-row-gap":f,"--wrapbox-justify":i,"--wrapbox-align":a,...l};return(0,t.jsx)(`div`,{className:[e.default.wrapBox,o?e.default.reverse:null,c].filter(Boolean).join(` `),style:p,...u,children:s})}exports.WrapBox=n;
1
+ const e=require("./WrapBox.module.css.cjs");let t=require("react/jsx-runtime");var n=({childSpacing:n=6,lineSpacing:r,justify:i=`start`,align:a=`center`,wrapReverse:o=!1,children:s,className:c,style:l,...u})=>{let d=typeof n==`number`?`${n}px`:n,f={"--wrapbox-gap":d,"--wrapbox-row-gap":r==null?d:typeof r==`number`?`${r}px`:r,"--wrapbox-justify":i,"--wrapbox-align":a,...l};return(0,t.jsx)(`div`,{className:[e.default.wrapBox,o?e.default.reverse:null,c].filter(Boolean).join(` `),style:f,...u,children:s})};exports.WrapBox=n;
2
2
  //# sourceMappingURL=WrapBox.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"WrapBox.cjs","names":[],"sources":["../../../src/components/WrapBox/WrapBox.tsx"],"sourcesContent":["import type { CSSProperties, HTMLAttributes, ReactNode } from 'react';\n\nimport styles from './WrapBox.module.css';\n\nexport type WrapBoxJustify =\n | 'start'\n | 'center'\n | 'end'\n | 'space-between'\n | 'space-around'\n | 'space-evenly';\nexport type WrapBoxAlign = 'start' | 'center' | 'end' | 'stretch';\n\nexport interface WrapBoxProps extends HTMLAttributes<HTMLDivElement> {\n /** Gap between children on the same line. Default: `6`. */\n childSpacing?: number | string;\n /** Gap between lines. Defaults to `childSpacing`. */\n lineSpacing?: number | string;\n /** Horizontal distribution of children within each line. Default: `\"start\"`. */\n justify?: WrapBoxJustify;\n /** Cross-axis alignment of children within each line. Default: `\"center\"`. */\n align?: WrapBoxAlign;\n /** When true children wrap in the reverse direction (bottom to top). */\n wrapReverse?: boolean;\n children?: ReactNode;\n}\n\n/**\n * Flexible wrapping layout container.\n *\n * Children flow horizontally and wrap to new lines when they don't fit,\n * like words in a paragraph — without locking them into a grid.\n *\n * Mirrors `AdwWrapBox` (libadwaita 1.7 / GNOME 48).\n *\n * Pair with `Chip` for tag lists and filter rows.\n *\n * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.WrapBox.html\n */\nexport function WrapBox({\n childSpacing = 6,\n lineSpacing,\n justify = 'start',\n align = 'center',\n wrapReverse = false,\n children,\n className,\n style,\n ...props\n}: WrapBoxProps) {\n const gap = typeof childSpacing === 'number' ? `${childSpacing}px` : childSpacing;\n const rowGap =\n lineSpacing !== null && lineSpacing !== undefined\n ? typeof lineSpacing === 'number'\n ? `${lineSpacing}px`\n : lineSpacing\n : gap;\n\n const cssVars: CSSProperties = {\n '--wrapbox-gap': gap,\n '--wrapbox-row-gap': rowGap,\n '--wrapbox-justify': justify,\n '--wrapbox-align': align,\n ...style,\n } as CSSProperties;\n\n return (\n <div\n className={[styles.wrapBox, wrapReverse ? styles.reverse : null, className]\n .filter(Boolean)\n .join(' ')}\n style={cssVars}\n {...props}\n >\n {children}\n </div>\n );\n}\n"],"mappings":"+EAuCA,SAAgB,EAAQ,CACtB,eAAe,EACf,cACA,UAAU,QACV,QAAQ,SACR,cAAc,GACd,WACA,YACA,QACA,GAAG,GACY,CACf,IAAM,EAAM,OAAO,GAAiB,SAAW,GAAG,EAAa,IAAM,EAC/D,EACJ,GAAgB,KAIZ,EAHA,OAAO,GAAgB,SACrB,GAAG,EAAY,IACf,EAGF,EAAyB,CAC7B,gBAAiB,EACjB,oBAAqB,EACrB,oBAAqB,EACrB,kBAAmB,EACnB,GAAG,EACJ,CAED,OACE,EAAA,EAAA,KAAC,MAAD,CACE,UAAW,CAAC,EAAA,QAAO,QAAS,EAAc,EAAA,QAAO,QAAU,KAAM,EAAU,CACxE,OAAO,QAAQ,CACf,KAAK,IAAI,CACZ,MAAO,EACP,GAAI,EAEH,WACG,CAAA"}
1
+ {"version":3,"file":"WrapBox.cjs","names":[],"sources":["../../../src/components/WrapBox/WrapBox.tsx"],"sourcesContent":["import type { CSSProperties, HTMLAttributes, ReactNode } from 'react';\n\nimport styles from './WrapBox.module.css';\n\nexport type WrapBoxJustify =\n | 'start'\n | 'center'\n | 'end'\n | 'space-between'\n | 'space-around'\n | 'space-evenly';\nexport type WrapBoxAlign = 'start' | 'center' | 'end' | 'stretch';\n\nexport interface WrapBoxProps extends HTMLAttributes<HTMLDivElement> {\n /** Gap between children on the same line. Default: `6`. */\n childSpacing?: number | string;\n /** Gap between lines. Defaults to `childSpacing`. */\n lineSpacing?: number | string;\n /** Horizontal distribution of children within each line. Default: `\"start\"`. */\n justify?: WrapBoxJustify;\n /** Cross-axis alignment of children within each line. Default: `\"center\"`. */\n align?: WrapBoxAlign;\n /** When true children wrap in the reverse direction (bottom to top). */\n wrapReverse?: boolean;\n children?: ReactNode;\n}\n\n/**\n * Flexible wrapping layout container.\n *\n * Children flow horizontally and wrap to new lines when they don't fit,\n * like words in a paragraph — without locking them into a grid.\n *\n * Mirrors `AdwWrapBox` (libadwaita 1.7 / GNOME 48).\n *\n * Pair with `Chip` for tag lists and filter rows.\n *\n * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.WrapBox.html\n */\nexport const WrapBox = ({\n childSpacing = 6,\n lineSpacing,\n justify = 'start',\n align = 'center',\n wrapReverse = false,\n children,\n className,\n style,\n ...props\n}: WrapBoxProps) => {\n const gap = typeof childSpacing === 'number' ? `${childSpacing}px` : childSpacing;\n const rowGap =\n lineSpacing !== null && lineSpacing !== undefined\n ? typeof lineSpacing === 'number'\n ? `${lineSpacing}px`\n : lineSpacing\n : gap;\n\n const cssVars: CSSProperties = {\n '--wrapbox-gap': gap,\n '--wrapbox-row-gap': rowGap,\n '--wrapbox-justify': justify,\n '--wrapbox-align': align,\n ...style,\n } as CSSProperties;\n\n return (\n <div\n className={[styles.wrapBox, wrapReverse ? styles.reverse : null, className]\n .filter(Boolean)\n .join(' ')}\n style={cssVars}\n {...props}\n >\n {children}\n </div>\n );\n};\n"],"mappings":"+EAuCA,IAAa,GAAW,CACtB,eAAe,EACf,cACA,UAAU,QACV,QAAQ,SACR,cAAc,GACd,WACA,YACA,QACA,GAAG,KACe,CAClB,IAAM,EAAM,OAAO,GAAiB,SAAW,GAAG,EAAa,IAAM,EAQ/D,EAAyB,CAC7B,gBAAiB,EACjB,oBARA,GAAgB,KAIZ,EAHA,OAAO,GAAgB,SACrB,GAAG,EAAY,IACf,EAMN,oBAAqB,EACrB,kBAAmB,EACnB,GAAG,CACL,EAEA,OACE,EAAA,EAAA,KAAC,MAAD,CACE,UAAW,CAAC,EAAA,QAAO,QAAS,EAAc,EAAA,QAAO,QAAU,KAAM,CAAS,EACvE,OAAO,OAAO,EACd,KAAK,GAAG,EACX,MAAO,EACP,GAAI,EAEH,UACE,CAAA,CAET"}
@@ -26,4 +26,4 @@ export interface WrapBoxProps extends HTMLAttributes<HTMLDivElement> {
26
26
  *
27
27
  * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.WrapBox.html
28
28
  */
29
- export declare function WrapBox({ childSpacing, lineSpacing, justify, align, wrapReverse, children, className, style, ...props }: WrapBoxProps): import("react/jsx-runtime").JSX.Element;
29
+ export declare const WrapBox: ({ childSpacing, lineSpacing, justify, align, wrapReverse, children, className, style, ...props }: WrapBoxProps) => import("react/jsx-runtime").JSX.Element;