@gnome-ui/react 1.49.0 → 1.49.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (343) hide show
  1. package/dist/components/AboutDialog/AboutDialog.module.css.cjs +1 -1
  2. package/dist/components/AboutDialog/AboutDialog.module.css.cjs.map +1 -1
  3. package/dist/components/AboutDialog/AboutDialog.module.css.js +28 -28
  4. package/dist/components/AboutDialog/AboutDialog.module.css.js.map +1 -1
  5. package/dist/components/ActionRow/ActionRow.module.css.cjs +1 -1
  6. package/dist/components/ActionRow/ActionRow.module.css.cjs.map +1 -1
  7. package/dist/components/ActionRow/ActionRow.module.css.js +9 -9
  8. package/dist/components/ActionRow/ActionRow.module.css.js.map +1 -1
  9. package/dist/components/Avatar/Avatar.module.css.cjs +1 -1
  10. package/dist/components/Avatar/Avatar.module.css.cjs.map +1 -1
  11. package/dist/components/Avatar/Avatar.module.css.js +16 -16
  12. package/dist/components/Avatar/Avatar.module.css.js.map +1 -1
  13. package/dist/components/AvatarGroup/AvatarGroup.module.css.cjs +1 -1
  14. package/dist/components/AvatarGroup/AvatarGroup.module.css.cjs.map +1 -1
  15. package/dist/components/AvatarGroup/AvatarGroup.module.css.js +7 -7
  16. package/dist/components/AvatarGroup/AvatarGroup.module.css.js.map +1 -1
  17. package/dist/components/Badge/Badge.module.css.cjs +1 -1
  18. package/dist/components/Badge/Badge.module.css.cjs.map +1 -1
  19. package/dist/components/Badge/Badge.module.css.js +9 -9
  20. package/dist/components/Badge/Badge.module.css.js.map +1 -1
  21. package/dist/components/Banner/Banner.module.css.cjs +1 -1
  22. package/dist/components/Banner/Banner.module.css.cjs.map +1 -1
  23. package/dist/components/Banner/Banner.module.css.js +13 -13
  24. package/dist/components/Banner/Banner.module.css.js.map +1 -1
  25. package/dist/components/Blockquote/Blockquote.module.css.cjs +1 -1
  26. package/dist/components/Blockquote/Blockquote.module.css.cjs.map +1 -1
  27. package/dist/components/Blockquote/Blockquote.module.css.js +11 -11
  28. package/dist/components/Blockquote/Blockquote.module.css.js.map +1 -1
  29. package/dist/components/BottomSheet/BottomSheet.cjs +1 -1
  30. package/dist/components/BottomSheet/BottomSheet.cjs.map +1 -1
  31. package/dist/components/BottomSheet/BottomSheet.js +1 -1
  32. package/dist/components/BottomSheet/BottomSheet.js.map +1 -1
  33. package/dist/components/BottomSheet/BottomSheet.module.css.cjs +1 -1
  34. package/dist/components/BottomSheet/BottomSheet.module.css.cjs.map +1 -1
  35. package/dist/components/BottomSheet/BottomSheet.module.css.js +13 -13
  36. package/dist/components/BottomSheet/BottomSheet.module.css.js.map +1 -1
  37. package/dist/components/BoxedList/BoxedList.module.css.cjs +1 -1
  38. package/dist/components/BoxedList/BoxedList.module.css.cjs.map +1 -1
  39. package/dist/components/BoxedList/BoxedList.module.css.js +5 -5
  40. package/dist/components/BoxedList/BoxedList.module.css.js.map +1 -1
  41. package/dist/components/BreakpointBin/BreakpointBin.cjs +1 -1
  42. package/dist/components/BreakpointBin/BreakpointBin.cjs.map +1 -1
  43. package/dist/components/BreakpointBin/BreakpointBin.js +1 -1
  44. package/dist/components/BreakpointBin/BreakpointBin.js.map +1 -1
  45. package/dist/components/Button/Button.module.css.cjs +1 -1
  46. package/dist/components/Button/Button.module.css.cjs.map +1 -1
  47. package/dist/components/Button/Button.module.css.js +11 -11
  48. package/dist/components/Button/Button.module.css.js.map +1 -1
  49. package/dist/components/ButtonRow/ButtonRow.module.css.cjs +1 -1
  50. package/dist/components/ButtonRow/ButtonRow.module.css.cjs.map +1 -1
  51. package/dist/components/ButtonRow/ButtonRow.module.css.js +7 -7
  52. package/dist/components/ButtonRow/ButtonRow.module.css.js.map +1 -1
  53. package/dist/components/Card/Card.module.css.cjs +1 -1
  54. package/dist/components/Card/Card.module.css.cjs.map +1 -1
  55. package/dist/components/Card/Card.module.css.js +6 -6
  56. package/dist/components/Card/Card.module.css.js.map +1 -1
  57. package/dist/components/Carousel/Carousel.cjs +1 -1
  58. package/dist/components/Carousel/Carousel.cjs.map +1 -1
  59. package/dist/components/Carousel/Carousel.d.ts +9 -3
  60. package/dist/components/Carousel/Carousel.js +99 -42
  61. package/dist/components/Carousel/Carousel.js.map +1 -1
  62. package/dist/components/Carousel/Carousel.module.css.cjs +1 -1
  63. package/dist/components/Carousel/Carousel.module.css.cjs.map +1 -1
  64. package/dist/components/Carousel/Carousel.module.css.js +11 -10
  65. package/dist/components/Carousel/Carousel.module.css.js.map +1 -1
  66. package/dist/components/CheckRow/CheckRow.module.css.cjs +1 -1
  67. package/dist/components/CheckRow/CheckRow.module.css.cjs.map +1 -1
  68. package/dist/components/CheckRow/CheckRow.module.css.js +10 -10
  69. package/dist/components/CheckRow/CheckRow.module.css.js.map +1 -1
  70. package/dist/components/Checkbox/Checkbox.module.css.cjs +1 -1
  71. package/dist/components/Checkbox/Checkbox.module.css.cjs.map +1 -1
  72. package/dist/components/Checkbox/Checkbox.module.css.js +1 -1
  73. package/dist/components/Checkbox/Checkbox.module.css.js.map +1 -1
  74. package/dist/components/Chip/Chip.module.css.cjs +1 -1
  75. package/dist/components/Chip/Chip.module.css.cjs.map +1 -1
  76. package/dist/components/Chip/Chip.module.css.js +7 -7
  77. package/dist/components/Chip/Chip.module.css.js.map +1 -1
  78. package/dist/components/ColorPicker/ColorPicker.cjs +1 -1
  79. package/dist/components/ColorPicker/ColorPicker.cjs.map +1 -1
  80. package/dist/components/ColorPicker/ColorPicker.js +1 -1
  81. package/dist/components/ColorPicker/ColorPicker.js.map +1 -1
  82. package/dist/components/ColorPicker/ColorPicker.module.css.cjs +1 -1
  83. package/dist/components/ColorPicker/ColorPicker.module.css.cjs.map +1 -1
  84. package/dist/components/ColorPicker/ColorPicker.module.css.js +10 -10
  85. package/dist/components/ColorPicker/ColorPicker.module.css.js.map +1 -1
  86. package/dist/components/ColumnView/ColumnView.module.css.cjs +1 -1
  87. package/dist/components/ColumnView/ColumnView.module.css.cjs.map +1 -1
  88. package/dist/components/ColumnView/ColumnView.module.css.js +22 -22
  89. package/dist/components/ColumnView/ColumnView.module.css.js.map +1 -1
  90. package/dist/components/ComboRow/ComboRow.module.css.cjs +1 -1
  91. package/dist/components/ComboRow/ComboRow.module.css.cjs.map +1 -1
  92. package/dist/components/ComboRow/ComboRow.module.css.js +24 -24
  93. package/dist/components/ComboRow/ComboRow.module.css.js.map +1 -1
  94. package/dist/components/ContributionGraph/ContributionGraph.module.css.cjs +1 -1
  95. package/dist/components/ContributionGraph/ContributionGraph.module.css.cjs.map +1 -1
  96. package/dist/components/ContributionGraph/ContributionGraph.module.css.js +9 -9
  97. package/dist/components/ContributionGraph/ContributionGraph.module.css.js.map +1 -1
  98. package/dist/components/CountDownTimer/CountDownTimer.module.css.cjs +1 -1
  99. package/dist/components/CountDownTimer/CountDownTimer.module.css.cjs.map +1 -1
  100. package/dist/components/CountDownTimer/CountDownTimer.module.css.js +7 -7
  101. package/dist/components/CountDownTimer/CountDownTimer.module.css.js.map +1 -1
  102. package/dist/components/Dialog/Dialog.module.css.cjs +1 -1
  103. package/dist/components/Dialog/Dialog.module.css.cjs.map +1 -1
  104. package/dist/components/Dialog/Dialog.module.css.js +11 -11
  105. package/dist/components/Dialog/Dialog.module.css.js.map +1 -1
  106. package/dist/components/Dialog/dialogUtils.cjs +1 -1
  107. package/dist/components/Dialog/dialogUtils.cjs.map +1 -1
  108. package/dist/components/Dialog/dialogUtils.js +1 -1
  109. package/dist/components/Dialog/dialogUtils.js.map +1 -1
  110. package/dist/components/Drawer/Drawer.module.css.cjs +1 -1
  111. package/dist/components/Drawer/Drawer.module.css.cjs.map +1 -1
  112. package/dist/components/Drawer/Drawer.module.css.js +12 -12
  113. package/dist/components/Drawer/Drawer.module.css.js.map +1 -1
  114. package/dist/components/Dropdown/Dropdown.module.css.cjs +1 -1
  115. package/dist/components/Dropdown/Dropdown.module.css.cjs.map +1 -1
  116. package/dist/components/Dropdown/Dropdown.module.css.js +20 -20
  117. package/dist/components/Dropdown/Dropdown.module.css.js.map +1 -1
  118. package/dist/components/EntryRow/EntryRow.module.css.cjs +1 -1
  119. package/dist/components/EntryRow/EntryRow.module.css.cjs.map +1 -1
  120. package/dist/components/EntryRow/EntryRow.module.css.js +10 -10
  121. package/dist/components/EntryRow/EntryRow.module.css.js.map +1 -1
  122. package/dist/components/ExpanderRow/ExpanderRow.module.css.cjs +1 -1
  123. package/dist/components/ExpanderRow/ExpanderRow.module.css.cjs.map +1 -1
  124. package/dist/components/ExpanderRow/ExpanderRow.module.css.js +14 -14
  125. package/dist/components/ExpanderRow/ExpanderRow.module.css.js.map +1 -1
  126. package/dist/components/Footer/Footer.module.css.cjs +1 -1
  127. package/dist/components/Footer/Footer.module.css.cjs.map +1 -1
  128. package/dist/components/Footer/Footer.module.css.js +5 -5
  129. package/dist/components/Footer/Footer.module.css.js.map +1 -1
  130. package/dist/components/Frame/Frame.module.css.cjs +1 -1
  131. package/dist/components/Frame/Frame.module.css.cjs.map +1 -1
  132. package/dist/components/Frame/Frame.module.css.js +1 -1
  133. package/dist/components/Frame/Frame.module.css.js.map +1 -1
  134. package/dist/components/HeaderBar/HeaderBar.module.css.cjs +1 -1
  135. package/dist/components/HeaderBar/HeaderBar.module.css.cjs.map +1 -1
  136. package/dist/components/HeaderBar/HeaderBar.module.css.js +6 -6
  137. package/dist/components/HeaderBar/HeaderBar.module.css.js.map +1 -1
  138. package/dist/components/Icon/Icon.module.css.cjs +1 -1
  139. package/dist/components/Icon/Icon.module.css.cjs.map +1 -1
  140. package/dist/components/Icon/Icon.module.css.js +7 -7
  141. package/dist/components/Icon/Icon.module.css.js.map +1 -1
  142. package/dist/components/InlineViewSwitcher/InlineViewSwitcher.cjs +1 -1
  143. package/dist/components/InlineViewSwitcher/InlineViewSwitcher.cjs.map +1 -1
  144. package/dist/components/InlineViewSwitcher/InlineViewSwitcher.js +1 -1
  145. package/dist/components/InlineViewSwitcher/InlineViewSwitcher.js.map +1 -1
  146. package/dist/components/InlineViewSwitcher/InlineViewSwitcher.module.css.cjs +1 -1
  147. package/dist/components/InlineViewSwitcher/InlineViewSwitcher.module.css.cjs.map +1 -1
  148. package/dist/components/InlineViewSwitcher/InlineViewSwitcher.module.css.js +22 -22
  149. package/dist/components/InlineViewSwitcher/InlineViewSwitcher.module.css.js.map +1 -1
  150. package/dist/components/Link/Link.module.css.cjs +1 -1
  151. package/dist/components/Link/Link.module.css.cjs.map +1 -1
  152. package/dist/components/Link/Link.module.css.js +2 -2
  153. package/dist/components/Link/Link.module.css.js.map +1 -1
  154. package/dist/components/Modal/Modal.module.css.cjs +1 -1
  155. package/dist/components/Modal/Modal.module.css.cjs.map +1 -1
  156. package/dist/components/Modal/Modal.module.css.js +17 -17
  157. package/dist/components/Modal/Modal.module.css.js.map +1 -1
  158. package/dist/components/NavigationSplitView/NavigationSplitView.module.css.cjs +1 -1
  159. package/dist/components/NavigationSplitView/NavigationSplitView.module.css.cjs.map +1 -1
  160. package/dist/components/NavigationSplitView/NavigationSplitView.module.css.js +8 -8
  161. package/dist/components/NavigationSplitView/NavigationSplitView.module.css.js.map +1 -1
  162. package/dist/components/NavigationView/NavigationView.module.css.cjs +1 -1
  163. package/dist/components/NavigationView/NavigationView.module.css.cjs.map +1 -1
  164. package/dist/components/NavigationView/NavigationView.module.css.js +9 -9
  165. package/dist/components/NavigationView/NavigationView.module.css.js.map +1 -1
  166. package/dist/components/OverlaySplitView/OverlaySplitView.module.css.cjs +1 -1
  167. package/dist/components/OverlaySplitView/OverlaySplitView.module.css.cjs.map +1 -1
  168. package/dist/components/OverlaySplitView/OverlaySplitView.module.css.js +12 -12
  169. package/dist/components/OverlaySplitView/OverlaySplitView.module.css.js.map +1 -1
  170. package/dist/components/PasswordEntryRow/PasswordEntryRow.module.css.cjs +1 -1
  171. package/dist/components/PasswordEntryRow/PasswordEntryRow.module.css.cjs.map +1 -1
  172. package/dist/components/PasswordEntryRow/PasswordEntryRow.module.css.js +1 -1
  173. package/dist/components/PasswordEntryRow/PasswordEntryRow.module.css.js.map +1 -1
  174. package/dist/components/PathBar/PathBar.module.css.cjs +1 -1
  175. package/dist/components/PathBar/PathBar.module.css.cjs.map +1 -1
  176. package/dist/components/PathBar/PathBar.module.css.js +7 -7
  177. package/dist/components/PathBar/PathBar.module.css.js.map +1 -1
  178. package/dist/components/Popover/Popover.module.css.cjs +1 -1
  179. package/dist/components/Popover/Popover.module.css.cjs.map +1 -1
  180. package/dist/components/Popover/Popover.module.css.js +7 -7
  181. package/dist/components/Popover/Popover.module.css.js.map +1 -1
  182. package/dist/components/PreferencesDialog/PreferencesDialog.cjs +1 -1
  183. package/dist/components/PreferencesDialog/PreferencesDialog.cjs.map +1 -1
  184. package/dist/components/PreferencesDialog/PreferencesDialog.js +1 -1
  185. package/dist/components/PreferencesDialog/PreferencesDialog.js.map +1 -1
  186. package/dist/components/PreferencesDialog/PreferencesDialog.module.css.cjs +1 -1
  187. package/dist/components/PreferencesDialog/PreferencesDialog.module.css.cjs.map +1 -1
  188. package/dist/components/PreferencesDialog/PreferencesDialog.module.css.js +18 -18
  189. package/dist/components/PreferencesDialog/PreferencesDialog.module.css.js.map +1 -1
  190. package/dist/components/PreferencesGroup/PreferencesGroup.module.css.cjs +1 -1
  191. package/dist/components/PreferencesGroup/PreferencesGroup.module.css.cjs.map +1 -1
  192. package/dist/components/PreferencesGroup/PreferencesGroup.module.css.js +7 -7
  193. package/dist/components/PreferencesGroup/PreferencesGroup.module.css.js.map +1 -1
  194. package/dist/components/ProgressBar/ProgressBar.module.css.cjs +1 -1
  195. package/dist/components/ProgressBar/ProgressBar.module.css.cjs.map +1 -1
  196. package/dist/components/ProgressBar/ProgressBar.module.css.js +8 -8
  197. package/dist/components/ProgressBar/ProgressBar.module.css.js.map +1 -1
  198. package/dist/components/RadioButton/RadioButton.module.css.cjs +1 -1
  199. package/dist/components/RadioButton/RadioButton.module.css.cjs.map +1 -1
  200. package/dist/components/RadioButton/RadioButton.module.css.js +1 -1
  201. package/dist/components/RadioButton/RadioButton.module.css.js.map +1 -1
  202. package/dist/components/SearchBar/SearchBar.module.css.cjs +1 -1
  203. package/dist/components/SearchBar/SearchBar.module.css.cjs.map +1 -1
  204. package/dist/components/SearchBar/SearchBar.module.css.js +13 -13
  205. package/dist/components/SearchBar/SearchBar.module.css.js.map +1 -1
  206. package/dist/components/SegmentedBar/SegmentedBar.module.css.cjs +1 -1
  207. package/dist/components/SegmentedBar/SegmentedBar.module.css.cjs.map +1 -1
  208. package/dist/components/SegmentedBar/SegmentedBar.module.css.js +12 -12
  209. package/dist/components/SegmentedBar/SegmentedBar.module.css.js.map +1 -1
  210. package/dist/components/Separator/Separator.module.css.cjs +1 -1
  211. package/dist/components/Separator/Separator.module.css.cjs.map +1 -1
  212. package/dist/components/Separator/Separator.module.css.js +3 -3
  213. package/dist/components/Separator/Separator.module.css.js.map +1 -1
  214. package/dist/components/ShortcutLabel/ShortcutLabel.module.css.cjs +1 -1
  215. package/dist/components/ShortcutLabel/ShortcutLabel.module.css.cjs.map +1 -1
  216. package/dist/components/ShortcutLabel/ShortcutLabel.module.css.js +2 -2
  217. package/dist/components/ShortcutLabel/ShortcutLabel.module.css.js.map +1 -1
  218. package/dist/components/ShortcutsDialog/ShortcutsDialog.cjs +1 -1
  219. package/dist/components/ShortcutsDialog/ShortcutsDialog.cjs.map +1 -1
  220. package/dist/components/ShortcutsDialog/ShortcutsDialog.js +1 -1
  221. package/dist/components/ShortcutsDialog/ShortcutsDialog.js.map +1 -1
  222. package/dist/components/ShortcutsDialog/ShortcutsDialog.module.css.cjs +1 -1
  223. package/dist/components/ShortcutsDialog/ShortcutsDialog.module.css.cjs.map +1 -1
  224. package/dist/components/ShortcutsDialog/ShortcutsDialog.module.css.js +21 -21
  225. package/dist/components/ShortcutsDialog/ShortcutsDialog.module.css.js.map +1 -1
  226. package/dist/components/Sidebar/Sidebar.module.css.cjs +1 -1
  227. package/dist/components/Sidebar/Sidebar.module.css.cjs.map +1 -1
  228. package/dist/components/Sidebar/Sidebar.module.css.js +32 -32
  229. package/dist/components/Sidebar/Sidebar.module.css.js.map +1 -1
  230. package/dist/components/Skeleton/Skeleton.module.css.cjs +1 -1
  231. package/dist/components/Skeleton/Skeleton.module.css.cjs.map +1 -1
  232. package/dist/components/Skeleton/Skeleton.module.css.js +7 -7
  233. package/dist/components/Skeleton/Skeleton.module.css.js.map +1 -1
  234. package/dist/components/Slider/Slider.module.css.cjs +1 -1
  235. package/dist/components/Slider/Slider.module.css.cjs.map +1 -1
  236. package/dist/components/Slider/Slider.module.css.js +9 -9
  237. package/dist/components/Slider/Slider.module.css.js.map +1 -1
  238. package/dist/components/SpinButton/SpinButton.module.css.cjs +1 -1
  239. package/dist/components/SpinButton/SpinButton.module.css.cjs.map +1 -1
  240. package/dist/components/SpinButton/SpinButton.module.css.js +4 -4
  241. package/dist/components/SpinButton/SpinButton.module.css.js.map +1 -1
  242. package/dist/components/SpinRow/SpinRow.module.css.cjs +1 -1
  243. package/dist/components/SpinRow/SpinRow.module.css.cjs.map +1 -1
  244. package/dist/components/SpinRow/SpinRow.module.css.js +9 -9
  245. package/dist/components/SpinRow/SpinRow.module.css.js.map +1 -1
  246. package/dist/components/Spinner/Spinner.module.css.cjs +1 -1
  247. package/dist/components/Spinner/Spinner.module.css.cjs.map +1 -1
  248. package/dist/components/Spinner/Spinner.module.css.js +5 -5
  249. package/dist/components/Spinner/Spinner.module.css.js.map +1 -1
  250. package/dist/components/SplitButton/SplitButton.module.css.cjs +1 -1
  251. package/dist/components/SplitButton/SplitButton.module.css.cjs.map +1 -1
  252. package/dist/components/SplitButton/SplitButton.module.css.js +10 -10
  253. package/dist/components/SplitButton/SplitButton.module.css.js.map +1 -1
  254. package/dist/components/StatusBadge/StatusBadge.module.css.cjs +1 -1
  255. package/dist/components/StatusBadge/StatusBadge.module.css.cjs.map +1 -1
  256. package/dist/components/StatusBadge/StatusBadge.module.css.js +7 -7
  257. package/dist/components/StatusBadge/StatusBadge.module.css.js.map +1 -1
  258. package/dist/components/StatusPage/StatusPage.module.css.cjs +1 -1
  259. package/dist/components/StatusPage/StatusPage.module.css.cjs.map +1 -1
  260. package/dist/components/StatusPage/StatusPage.module.css.js +6 -6
  261. package/dist/components/StatusPage/StatusPage.module.css.js.map +1 -1
  262. package/dist/components/Switch/Switch.module.css.cjs +1 -1
  263. package/dist/components/Switch/Switch.module.css.cjs.map +1 -1
  264. package/dist/components/Switch/Switch.module.css.js +1 -1
  265. package/dist/components/Switch/Switch.module.css.js.map +1 -1
  266. package/dist/components/SwitchRow/SwitchRow.module.css.cjs +1 -1
  267. package/dist/components/SwitchRow/SwitchRow.module.css.cjs.map +1 -1
  268. package/dist/components/SwitchRow/SwitchRow.module.css.js +9 -9
  269. package/dist/components/SwitchRow/SwitchRow.module.css.js.map +1 -1
  270. package/dist/components/Tabs/TabBar.cjs +1 -1
  271. package/dist/components/Tabs/TabBar.cjs.map +1 -1
  272. package/dist/components/Tabs/TabBar.js +1 -1
  273. package/dist/components/Tabs/TabBar.js.map +1 -1
  274. package/dist/components/Tabs/Tabs.module.css.cjs +1 -1
  275. package/dist/components/Tabs/Tabs.module.css.cjs.map +1 -1
  276. package/dist/components/Tabs/Tabs.module.css.js +10 -10
  277. package/dist/components/Tabs/Tabs.module.css.js.map +1 -1
  278. package/dist/components/TerminalView/TerminalView.module.css.cjs +1 -1
  279. package/dist/components/TerminalView/TerminalView.module.css.cjs.map +1 -1
  280. package/dist/components/TerminalView/TerminalView.module.css.js +6 -6
  281. package/dist/components/TerminalView/TerminalView.module.css.js.map +1 -1
  282. package/dist/components/Text/Text.module.css.cjs +1 -1
  283. package/dist/components/Text/Text.module.css.cjs.map +1 -1
  284. package/dist/components/Text/Text.module.css.js +20 -20
  285. package/dist/components/Text/Text.module.css.js.map +1 -1
  286. package/dist/components/TextField/TextField.module.css.cjs +1 -1
  287. package/dist/components/TextField/TextField.module.css.cjs.map +1 -1
  288. package/dist/components/TextField/TextField.module.css.js +7 -7
  289. package/dist/components/TextField/TextField.module.css.js.map +1 -1
  290. package/dist/components/Timeline/Timeline.module.css.cjs +1 -1
  291. package/dist/components/Timeline/Timeline.module.css.cjs.map +1 -1
  292. package/dist/components/Timeline/Timeline.module.css.js +13 -13
  293. package/dist/components/Timeline/Timeline.module.css.js.map +1 -1
  294. package/dist/components/Toast/Toast.module.css.cjs +1 -1
  295. package/dist/components/Toast/Toast.module.css.cjs.map +1 -1
  296. package/dist/components/Toast/Toast.module.css.js +9 -9
  297. package/dist/components/Toast/Toast.module.css.js.map +1 -1
  298. package/dist/components/ToggleGroup/ToggleGroup.cjs +1 -1
  299. package/dist/components/ToggleGroup/ToggleGroup.cjs.map +1 -1
  300. package/dist/components/ToggleGroup/ToggleGroup.js +1 -1
  301. package/dist/components/ToggleGroup/ToggleGroup.js.map +1 -1
  302. package/dist/components/ToggleGroup/ToggleGroup.module.css.cjs +1 -1
  303. package/dist/components/ToggleGroup/ToggleGroup.module.css.cjs.map +1 -1
  304. package/dist/components/ToggleGroup/ToggleGroup.module.css.js +6 -6
  305. package/dist/components/ToggleGroup/ToggleGroup.module.css.js.map +1 -1
  306. package/dist/components/Toolbar/Toolbar.module.css.cjs +1 -1
  307. package/dist/components/Toolbar/Toolbar.module.css.cjs.map +1 -1
  308. package/dist/components/Toolbar/Toolbar.module.css.js +2 -2
  309. package/dist/components/Toolbar/Toolbar.module.css.js.map +1 -1
  310. package/dist/components/Tooltip/Tooltip.module.css.cjs +1 -1
  311. package/dist/components/Tooltip/Tooltip.module.css.cjs.map +1 -1
  312. package/dist/components/Tooltip/Tooltip.module.css.js +6 -6
  313. package/dist/components/Tooltip/Tooltip.module.css.js.map +1 -1
  314. package/dist/components/ViewSwitcher/ViewSwitcher.cjs +1 -1
  315. package/dist/components/ViewSwitcher/ViewSwitcher.cjs.map +1 -1
  316. package/dist/components/ViewSwitcher/ViewSwitcher.js +1 -1
  317. package/dist/components/ViewSwitcher/ViewSwitcher.js.map +1 -1
  318. package/dist/components/ViewSwitcher/ViewSwitcher.module.css.cjs +1 -1
  319. package/dist/components/ViewSwitcher/ViewSwitcher.module.css.cjs.map +1 -1
  320. package/dist/components/ViewSwitcher/ViewSwitcher.module.css.js +5 -5
  321. package/dist/components/ViewSwitcher/ViewSwitcher.module.css.js.map +1 -1
  322. package/dist/components/ViewSwitcherBar/ViewSwitcherBar.module.css.cjs +1 -1
  323. package/dist/components/ViewSwitcherBar/ViewSwitcherBar.module.css.cjs.map +1 -1
  324. package/dist/components/ViewSwitcherBar/ViewSwitcherBar.module.css.js +1 -1
  325. package/dist/components/ViewSwitcherBar/ViewSwitcherBar.module.css.js.map +1 -1
  326. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebar.cjs +1 -1
  327. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebar.cjs.map +1 -1
  328. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebar.js +1 -1
  329. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebar.js.map +1 -1
  330. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebar.module.css.cjs +1 -1
  331. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebar.module.css.cjs.map +1 -1
  332. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebar.module.css.js +14 -14
  333. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebar.module.css.js.map +1 -1
  334. package/dist/components/WindowTitle/WindowTitle.module.css.cjs +1 -1
  335. package/dist/components/WindowTitle/WindowTitle.module.css.cjs.map +1 -1
  336. package/dist/components/WindowTitle/WindowTitle.module.css.js +3 -3
  337. package/dist/components/WindowTitle/WindowTitle.module.css.js.map +1 -1
  338. package/dist/components/WrapBox/WrapBox.module.css.cjs +1 -1
  339. package/dist/components/WrapBox/WrapBox.module.css.cjs.map +1 -1
  340. package/dist/components/WrapBox/WrapBox.module.css.js +2 -2
  341. package/dist/components/WrapBox/WrapBox.module.css.js.map +1 -1
  342. package/dist/style.css +1 -1
  343. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ToggleGroup.js","names":[],"sources":["../../../src/components/ToggleGroup/ToggleGroup.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 './ToggleGroup.module.css';\n\n// ─── Context ──────────────────────────────────────────────────────────────────\n\ninterface ToggleGroupContextValue {\n value: string;\n onValueChange: (value: string) => void;\n}\n\nconst ToggleGroupContext = createContext<ToggleGroupContextValue | null>(null);\n\n// eslint-disable-next-line react-refresh/only-export-components\nexport function useToggleGroup() {\n const ctx = useContext(ToggleGroupContext);\n\n if (!ctx) {\n throw new Error('ToggleGroupItem must be used inside ToggleGroup');\n }\n\n return ctx;\n}\n\n// ─── ToggleGroup ──────────────────────────────────────────────────────────────\n\nexport interface ToggleGroupProps extends HTMLAttributes<HTMLDivElement> {\n /** Name of the currently active toggle. */\n value: string;\n /** Called with the new value when a toggle is selected. */\n onValueChange: (value: string) => void;\n /** Accessible label for the group. */\n 'aria-label'?: string;\n children?: ReactNode;\n}\n\n/**\n * Mutually-exclusive group of toggle buttons for in-place option selection.\n *\n * Mirrors `AdwToggleGroup` (libadwaita 1.7 / GNOME 48).\n *\n * Use for formatting controls, view-mode selectors, and toolbar options —\n * wherever a `ViewSwitcher` would be too heavy or is not placed in a HeaderBar.\n *\n * Compose with `ToggleGroupItem`. Keyboard: ← / → cycle, Home / End jump.\n *\n * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.ToggleGroup.html\n */\nexport const ToggleGroup = ({\n value,\n onValueChange,\n 'aria-label': ariaLabel = 'Options',\n children,\n className,\n ...props\n}: ToggleGroupProps) => {\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 <ToggleGroupContext.Provider value={{ value, onValueChange }}>\n <div\n ref={groupRef}\n role=\"radiogroup\"\n aria-label={ariaLabel}\n onKeyDown={handleKeyDown}\n className={[styles.group, className].filter(Boolean).join(' ')}\n {...props}\n >\n {children}\n </div>\n </ToggleGroupContext.Provider>\n );\n};\n"],"mappings":";;;;AAkBA,IAAM,IAAqB,EAA8C,IAAI;AAG7E,SAAgB,IAAiB;CAC/B,IAAM,IAAM,EAAW,CAAkB;CAEzC,IAAI,CAAC,GACH,MAAU,MAAM,iDAAiD;CAGnE,OAAO;AACT;AA0BA,IAAa,KAAe,EAC1B,UACA,kBACA,cAAc,IAAY,WAC1B,aACA,cACA,GAAG,QACmB;CACtB,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,EAAmB,UAApB;EAA6B,OAAO;GAAE;GAAO;EAAc;YACzD,kBAAC,OAAD;GACE,KAAK;GACL,MAAK;GACL,cAAY;GACZ,WAAW;GACX,WAAW,CAAC,EAAO,OAAO,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;GAC7D,GAAI;GAEH;EACE,CAAA;CACsB,CAAA;AAEjC"}
1
+ {"version":3,"file":"ToggleGroup.js","names":[],"sources":["../../../src/components/ToggleGroup/ToggleGroup.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 './ToggleGroup.module.css';\n\n// ─── Context ──────────────────────────────────────────────────────────────────\n\ninterface ToggleGroupContextValue {\n value: string;\n onValueChange: (value: string) => void;\n}\n\nconst ToggleGroupContext = createContext<ToggleGroupContextValue | null>(null);\n\n// eslint-disable-next-line react-refresh/only-export-components\nexport function useToggleGroup() {\n const ctx = useContext(ToggleGroupContext);\n\n if (!ctx) {\n throw new Error('ToggleGroupItem must be used inside ToggleGroup');\n }\n\n return ctx;\n}\n\n// ─── ToggleGroup ──────────────────────────────────────────────────────────────\n\nexport interface ToggleGroupProps extends HTMLAttributes<HTMLDivElement> {\n /** Name of the currently active toggle. */\n value: string;\n /** Called with the new value when a toggle is selected. */\n onValueChange: (value: string) => void;\n /** Accessible label for the group. */\n 'aria-label'?: string;\n children?: ReactNode;\n}\n\n/**\n * Mutually-exclusive group of toggle buttons for in-place option selection.\n *\n * Mirrors `AdwToggleGroup` (libadwaita 1.7 / GNOME 48).\n *\n * Use for formatting controls, view-mode selectors, and toolbar options —\n * wherever a `ViewSwitcher` would be too heavy or is not placed in a HeaderBar.\n *\n * Compose with `ToggleGroupItem`. Keyboard: ← / → cycle, Home / End jump.\n *\n * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.ToggleGroup.html\n */\nexport const ToggleGroup = ({\n value,\n onValueChange,\n 'aria-label': ariaLabel = 'Options',\n children,\n className,\n ...props\n}: ToggleGroupProps) => {\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;\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 <ToggleGroupContext.Provider value={{ value, onValueChange }}>\n <div\n ref={groupRef}\n role=\"radiogroup\"\n aria-label={ariaLabel}\n onKeyDown={handleKeyDown}\n className={[styles.group, className].filter(Boolean).join(' ')}\n {...props}\n >\n {children}\n </div>\n </ToggleGroupContext.Provider>\n );\n};\n"],"mappings":";;;;AAkBA,IAAM,IAAqB,EAA8C,IAAI;AAG7E,SAAgB,IAAiB;CAC/B,IAAM,IAAM,EAAW,CAAkB;CAEzC,IAAI,CAAC,GACH,MAAU,MAAM,iDAAiD;CAGnE,OAAO;AACT;AA0BA,IAAa,KAAe,EAC1B,UACA,kBACA,cAAc,IAAY,WAC1B,aACA,cACA,GAAG,QACmB;CACtB,IAAM,IAAW,EAAuB,IAAI;CAE5C,SAAS,EAAc,GAAkC;EACvD,IAAM,IAAQ,MAAM,KAClB,EAAS,SAAS,iBAAoC,6BAA6B,KAAK,CAAC,CAC3F,GACM,EAAE,qBAAkB,UACpB,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,EAAmB,UAApB;EAA6B,OAAO;GAAE;GAAO;EAAc;YACzD,kBAAC,OAAD;GACE,KAAK;GACL,MAAK;GACL,cAAY;GACZ,WAAW;GACX,WAAW,CAAC,EAAO,OAAO,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;GAC7D,GAAI;GAEH;EACE,CAAA;CACsB,CAAA;AAEjC"}
@@ -1,2 +1,2 @@
1
- var e={group:`_group_1g5d7_3`,item:`_item_1g5d7_18`,iconOnly:`_iconOnly_1g5d7_48`,active:`_active_1g5d7_53`,itemIcon:`_itemIcon_1g5d7_87`,itemLabel:`_itemLabel_1g5d7_93`};exports.default=e;
1
+ var e={group:`_group_abomc_3`,item:`_item_abomc_16`,iconOnly:`_iconOnly_abomc_41`,active:`_active_abomc_46`,itemIcon:`_itemIcon_abomc_80`,itemLabel:`_itemLabel_abomc_86`};exports.default=e;
2
2
  //# sourceMappingURL=ToggleGroup.module.css.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToggleGroup.module.css.cjs","names":[],"sources":["../../../src/components/ToggleGroup/ToggleGroup.module.css"],"sourcesContent":["/* ─── Container ─────────────────────────────────────────────────────────────── */\n\n.group {\n display: inline-flex;\n align-items: stretch;\n gap: 0;\n\n background-color: var(--gnome-card-bg-color, #ffffff);\n border: 1px solid var(--gnome-light-3, #deddda);\n border-radius: var(--gnome-radius-md);\n box-shadow: var(--gnome-shadow-sm);\n padding: 2px;\n gap: 2px;\n}\n\n/* ─── Item ──────────────────────────────────────────────────────────────────── */\n\n.item {\n appearance: none;\n -webkit-appearance: none;\n border: none;\n background: transparent;\n font: inherit;\n cursor: pointer;\n outline: none;\n\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--gnome-space-1, 6px);\n\n padding: 4px var(--gnome-space-2, 12px);\n border-radius: calc(var(--gnome-radius-md) - 2px);\n min-height: 28px;\n\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-body, 1rem);\n font-weight: var(--gnome-font-weight-normal, 400);\n color: var(--gnome-window-fg-color, rgba(0, 0, 0, 0.8));\n white-space: nowrap;\n\n transition:\n background-color var(--gnome-duration-fast) var(--gnome-easing-default),\n box-shadow var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n/* Icon-only: square aspect ratio */\n.iconOnly {\n padding: 4px;\n min-width: 28px;\n}\n\n.item:hover:not(:disabled):not(.active) {\n background-color: rgba(0, 0, 0, 0.06);\n}\n\n.item:active:not(:disabled):not(.active) {\n background-color: rgba(0, 0, 0, 0.12);\n}\n\n.item:disabled {\n opacity: var(--gnome-opacity-disabled, 0.5);\n cursor: not-allowed;\n}\n\n/* ─── Focus ─────────────────────────────────────────────────────────────────── */\n\n.item:focus-visible {\n box-shadow:\n 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-card-bg-color, #ffffff),\n 0 0 0 calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 2px))\n var(--gnome-focus-ring-color, #3584e4);\n}\n\n/* ─── Active ────────────────────────────────────────────────────────────────── */\n\n.active {\n background-color: color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 15%, transparent);\n color: var(--gnome-accent-color, #3584e4);\n font-weight: var(--gnome-font-weight-semibold, 600);\n box-shadow: inset 0 0 0 1px\n color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 40%, transparent);\n}\n\n/* ─── Icon ──────────────────────────────────────────────────────────────────── */\n\n.itemIcon {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n}\n\n.itemLabel {\n line-height: 1;\n}\n\n/* ─── Dark mode ─────────────────────────────────────────────────────────────── */\n\n@media (prefers-color-scheme: dark) {\n .group {\n background-color: var(--gnome-card-bg-color, #383838);\n border-color: rgba(255, 255, 255, 0.12);\n box-shadow: none;\n }\n\n .item:hover:not(:disabled):not(.active) {\n background-color: rgba(255, 255, 255, 0.08);\n }\n\n .item:active:not(:disabled):not(.active) {\n background-color: rgba(255, 255, 255, 0.14);\n }\n\n .item:focus-visible {\n box-shadow:\n 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-card-bg-color, #383838),\n 0 0 0 calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 2px))\n var(--gnome-focus-ring-color, #78aeed);\n }\n\n .active {\n background-color: color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 25%, transparent);\n color: var(--gnome-accent-color, #78aeed);\n box-shadow: inset 0 0 0 1px\n color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 50%, transparent);\n }\n}\n\n/* ─── Reduced motion ────────────────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .item {\n transition: none;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"ToggleGroup.module.css.cjs","names":[],"sources":["../../../src/components/ToggleGroup/ToggleGroup.module.css"],"sourcesContent":["/* ─── Container ─────────────────────────────────────────────────────────────── */\n\n.group {\n display: inline-flex;\n align-items: stretch;\n background-color: var(--gnome-card-bg-color, #fff);\n border: 1px solid var(--gnome-light-3, #deddda);\n border-radius: var(--gnome-radius-md);\n box-shadow: var(--gnome-shadow-sm);\n padding: 2px;\n gap: 2px;\n}\n\n/* ─── Item ──────────────────────────────────────────────────────────────────── */\n\n.item {\n appearance: none;\n border: none;\n background: transparent;\n font: inherit;\n cursor: pointer;\n outline: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--gnome-space-1, 6px);\n padding: 4px var(--gnome-space-2, 12px);\n border-radius: calc(var(--gnome-radius-md) - 2px);\n min-height: 28px;\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-body, 1rem);\n font-weight: var(--gnome-font-weight-normal, 400);\n color: var(--gnome-window-fg-color, rgb(0 0 0 / 0.8));\n white-space: nowrap;\n transition:\n background-color var(--gnome-duration-fast) var(--gnome-easing-default),\n box-shadow var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n/* Icon-only: square aspect ratio */\n.iconOnly {\n padding: 4px;\n min-width: 28px;\n}\n\n.item:hover:not(:disabled, .active) {\n background-color: rgb(0 0 0 / 0.06);\n}\n\n.item:active:not(:disabled, .active) {\n background-color: rgb(0 0 0 / 0.12);\n}\n\n.item:disabled {\n opacity: var(--gnome-opacity-disabled, 0.5);\n cursor: not-allowed;\n}\n\n/* ─── Focus ─────────────────────────────────────────────────────────────────── */\n\n.item:focus-visible {\n box-shadow:\n 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-card-bg-color, #fff),\n 0 0 0 calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 2px))\n var(--gnome-focus-ring-color, #3584e4);\n}\n\n/* ─── Active ────────────────────────────────────────────────────────────────── */\n\n.active {\n background-color: color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 15%, transparent);\n color: var(--gnome-accent-color, #3584e4);\n font-weight: var(--gnome-font-weight-semibold, 600);\n box-shadow: inset 0 0 0 1px\n color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 40%, transparent);\n}\n\n/* ─── Icon ──────────────────────────────────────────────────────────────────── */\n\n.itemIcon {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n}\n\n.itemLabel {\n line-height: 1;\n}\n\n/* ─── Dark mode ─────────────────────────────────────────────────────────────── */\n\n@media (prefers-color-scheme: dark) {\n .group {\n background-color: var(--gnome-card-bg-color, #383838);\n border-color: rgb(255 255 255 / 0.12);\n box-shadow: none;\n }\n\n .item:hover:not(:disabled, .active) {\n background-color: rgb(255 255 255 / 0.08);\n }\n\n .item:active:not(:disabled, .active) {\n background-color: rgb(255 255 255 / 0.14);\n }\n\n .item:focus-visible {\n box-shadow:\n 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-card-bg-color, #383838),\n 0 0 0 calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 2px))\n var(--gnome-focus-ring-color, #78aeed);\n }\n\n .active {\n background-color: color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 25%, transparent);\n color: var(--gnome-accent-color, #78aeed);\n box-shadow: inset 0 0 0 1px\n color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 50%, transparent);\n }\n}\n\n/* ─── Reduced motion ────────────────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .item {\n transition: none;\n }\n}\n"],"mappings":""}
@@ -1,10 +1,10 @@
1
1
  var e = {
2
- group: "_group_1g5d7_3",
3
- item: "_item_1g5d7_18",
4
- iconOnly: "_iconOnly_1g5d7_48",
5
- active: "_active_1g5d7_53",
6
- itemIcon: "_itemIcon_1g5d7_87",
7
- itemLabel: "_itemLabel_1g5d7_93"
2
+ group: "_group_abomc_3",
3
+ item: "_item_abomc_16",
4
+ iconOnly: "_iconOnly_abomc_41",
5
+ active: "_active_abomc_46",
6
+ itemIcon: "_itemIcon_abomc_80",
7
+ itemLabel: "_itemLabel_abomc_86"
8
8
  };
9
9
  //#endregion
10
10
  export { e as default };
@@ -1 +1 @@
1
- {"version":3,"file":"ToggleGroup.module.css.js","names":[],"sources":["../../../src/components/ToggleGroup/ToggleGroup.module.css"],"sourcesContent":["/* ─── Container ─────────────────────────────────────────────────────────────── */\n\n.group {\n display: inline-flex;\n align-items: stretch;\n gap: 0;\n\n background-color: var(--gnome-card-bg-color, #ffffff);\n border: 1px solid var(--gnome-light-3, #deddda);\n border-radius: var(--gnome-radius-md);\n box-shadow: var(--gnome-shadow-sm);\n padding: 2px;\n gap: 2px;\n}\n\n/* ─── Item ──────────────────────────────────────────────────────────────────── */\n\n.item {\n appearance: none;\n -webkit-appearance: none;\n border: none;\n background: transparent;\n font: inherit;\n cursor: pointer;\n outline: none;\n\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--gnome-space-1, 6px);\n\n padding: 4px var(--gnome-space-2, 12px);\n border-radius: calc(var(--gnome-radius-md) - 2px);\n min-height: 28px;\n\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-body, 1rem);\n font-weight: var(--gnome-font-weight-normal, 400);\n color: var(--gnome-window-fg-color, rgba(0, 0, 0, 0.8));\n white-space: nowrap;\n\n transition:\n background-color var(--gnome-duration-fast) var(--gnome-easing-default),\n box-shadow var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n/* Icon-only: square aspect ratio */\n.iconOnly {\n padding: 4px;\n min-width: 28px;\n}\n\n.item:hover:not(:disabled):not(.active) {\n background-color: rgba(0, 0, 0, 0.06);\n}\n\n.item:active:not(:disabled):not(.active) {\n background-color: rgba(0, 0, 0, 0.12);\n}\n\n.item:disabled {\n opacity: var(--gnome-opacity-disabled, 0.5);\n cursor: not-allowed;\n}\n\n/* ─── Focus ─────────────────────────────────────────────────────────────────── */\n\n.item:focus-visible {\n box-shadow:\n 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-card-bg-color, #ffffff),\n 0 0 0 calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 2px))\n var(--gnome-focus-ring-color, #3584e4);\n}\n\n/* ─── Active ────────────────────────────────────────────────────────────────── */\n\n.active {\n background-color: color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 15%, transparent);\n color: var(--gnome-accent-color, #3584e4);\n font-weight: var(--gnome-font-weight-semibold, 600);\n box-shadow: inset 0 0 0 1px\n color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 40%, transparent);\n}\n\n/* ─── Icon ──────────────────────────────────────────────────────────────────── */\n\n.itemIcon {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n}\n\n.itemLabel {\n line-height: 1;\n}\n\n/* ─── Dark mode ─────────────────────────────────────────────────────────────── */\n\n@media (prefers-color-scheme: dark) {\n .group {\n background-color: var(--gnome-card-bg-color, #383838);\n border-color: rgba(255, 255, 255, 0.12);\n box-shadow: none;\n }\n\n .item:hover:not(:disabled):not(.active) {\n background-color: rgba(255, 255, 255, 0.08);\n }\n\n .item:active:not(:disabled):not(.active) {\n background-color: rgba(255, 255, 255, 0.14);\n }\n\n .item:focus-visible {\n box-shadow:\n 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-card-bg-color, #383838),\n 0 0 0 calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 2px))\n var(--gnome-focus-ring-color, #78aeed);\n }\n\n .active {\n background-color: color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 25%, transparent);\n color: var(--gnome-accent-color, #78aeed);\n box-shadow: inset 0 0 0 1px\n color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 50%, transparent);\n }\n}\n\n/* ─── Reduced motion ────────────────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .item {\n transition: none;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"ToggleGroup.module.css.js","names":[],"sources":["../../../src/components/ToggleGroup/ToggleGroup.module.css"],"sourcesContent":["/* ─── Container ─────────────────────────────────────────────────────────────── */\n\n.group {\n display: inline-flex;\n align-items: stretch;\n background-color: var(--gnome-card-bg-color, #fff);\n border: 1px solid var(--gnome-light-3, #deddda);\n border-radius: var(--gnome-radius-md);\n box-shadow: var(--gnome-shadow-sm);\n padding: 2px;\n gap: 2px;\n}\n\n/* ─── Item ──────────────────────────────────────────────────────────────────── */\n\n.item {\n appearance: none;\n border: none;\n background: transparent;\n font: inherit;\n cursor: pointer;\n outline: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--gnome-space-1, 6px);\n padding: 4px var(--gnome-space-2, 12px);\n border-radius: calc(var(--gnome-radius-md) - 2px);\n min-height: 28px;\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-body, 1rem);\n font-weight: var(--gnome-font-weight-normal, 400);\n color: var(--gnome-window-fg-color, rgb(0 0 0 / 0.8));\n white-space: nowrap;\n transition:\n background-color var(--gnome-duration-fast) var(--gnome-easing-default),\n box-shadow var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n/* Icon-only: square aspect ratio */\n.iconOnly {\n padding: 4px;\n min-width: 28px;\n}\n\n.item:hover:not(:disabled, .active) {\n background-color: rgb(0 0 0 / 0.06);\n}\n\n.item:active:not(:disabled, .active) {\n background-color: rgb(0 0 0 / 0.12);\n}\n\n.item:disabled {\n opacity: var(--gnome-opacity-disabled, 0.5);\n cursor: not-allowed;\n}\n\n/* ─── Focus ─────────────────────────────────────────────────────────────────── */\n\n.item:focus-visible {\n box-shadow:\n 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-card-bg-color, #fff),\n 0 0 0 calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 2px))\n var(--gnome-focus-ring-color, #3584e4);\n}\n\n/* ─── Active ────────────────────────────────────────────────────────────────── */\n\n.active {\n background-color: color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 15%, transparent);\n color: var(--gnome-accent-color, #3584e4);\n font-weight: var(--gnome-font-weight-semibold, 600);\n box-shadow: inset 0 0 0 1px\n color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 40%, transparent);\n}\n\n/* ─── Icon ──────────────────────────────────────────────────────────────────── */\n\n.itemIcon {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n}\n\n.itemLabel {\n line-height: 1;\n}\n\n/* ─── Dark mode ─────────────────────────────────────────────────────────────── */\n\n@media (prefers-color-scheme: dark) {\n .group {\n background-color: var(--gnome-card-bg-color, #383838);\n border-color: rgb(255 255 255 / 0.12);\n box-shadow: none;\n }\n\n .item:hover:not(:disabled, .active) {\n background-color: rgb(255 255 255 / 0.08);\n }\n\n .item:active:not(:disabled, .active) {\n background-color: rgb(255 255 255 / 0.14);\n }\n\n .item:focus-visible {\n box-shadow:\n 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-card-bg-color, #383838),\n 0 0 0 calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 2px))\n var(--gnome-focus-ring-color, #78aeed);\n }\n\n .active {\n background-color: color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 25%, transparent);\n color: var(--gnome-accent-color, #78aeed);\n box-shadow: inset 0 0 0 1px\n color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 50%, transparent);\n }\n}\n\n/* ─── Reduced motion ────────────────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .item {\n transition: none;\n }\n}\n"],"mappings":""}
@@ -1,2 +1,2 @@
1
- var e={toolbar:`_toolbar_1avgl_2`,spacer:`_spacer_1avgl_20`};exports.default=e;
1
+ var e={toolbar:`_toolbar_1x5lw_2`,spacer:`_spacer_1x5lw_18`};exports.default=e;
2
2
  //# sourceMappingURL=Toolbar.module.css.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Toolbar.module.css.cjs","names":[],"sources":["../../../src/components/Toolbar/Toolbar.module.css"],"sourcesContent":["/* ─── Toolbar ─────────────────────────────────────────────────────────────────\n Mirrors the libadwaita `.toolbar` style class:\n horizontal flex row, 6 px padding on all sides, 6 px gap between children.\n ─────────────────────────────────────────────────────────────────────────── */\n\n.toolbar {\n display: flex;\n flex-direction: row;\n align-items: center;\n flex-wrap: nowrap;\n gap: var(--gnome-space-1, 6px);\n padding: var(--gnome-space-1, 6px);\n min-height: 46px;\n\n color: var(--gnome-window-fg-color, rgba(0, 0, 0, 0.8));\n font-family: var(--gnome-font-family);\n}\n\n/* ─── Spacer ──────────────────────────────────────────────────────────────────\n Invisible flex filler — mirrors `GtkSeparator.spacer`.\n ─────────────────────────────────────────────────────────────────────────── */\n\n.spacer {\n flex: 1;\n min-width: 0;\n}\n"],"mappings":""}
1
+ {"version":3,"file":"Toolbar.module.css.cjs","names":[],"sources":["../../../src/components/Toolbar/Toolbar.module.css"],"sourcesContent":["/* ─── Toolbar ─────────────────────────────────────────────────────────────────\n Mirrors the libadwaita `.toolbar` style class:\n horizontal flex row, 6 px padding on all sides, 6 px gap between children.\n ─────────────────────────────────────────────────────────────────────────── */\n\n.toolbar {\n display: flex;\n flex-flow: row nowrap;\n align-items: center;\n gap: var(--gnome-space-1, 6px);\n padding: var(--gnome-space-1, 6px);\n min-height: 46px;\n color: var(--gnome-window-fg-color, rgb(0 0 0 / 0.8));\n font-family: var(--gnome-font-family);\n}\n\n/* ─── Spacer ──────────────────────────────────────────────────────────────────\n Invisible flex filler — mirrors `GtkSeparator.spacer`.\n ─────────────────────────────────────────────────────────────────────────── */\n\n.spacer {\n flex: 1;\n min-width: 0;\n}\n"],"mappings":""}
@@ -1,6 +1,6 @@
1
1
  var e = {
2
- toolbar: "_toolbar_1avgl_2",
3
- spacer: "_spacer_1avgl_20"
2
+ toolbar: "_toolbar_1x5lw_2",
3
+ spacer: "_spacer_1x5lw_18"
4
4
  };
5
5
  //#endregion
6
6
  export { e as default };
@@ -1 +1 @@
1
- {"version":3,"file":"Toolbar.module.css.js","names":[],"sources":["../../../src/components/Toolbar/Toolbar.module.css"],"sourcesContent":["/* ─── Toolbar ─────────────────────────────────────────────────────────────────\n Mirrors the libadwaita `.toolbar` style class:\n horizontal flex row, 6 px padding on all sides, 6 px gap between children.\n ─────────────────────────────────────────────────────────────────────────── */\n\n.toolbar {\n display: flex;\n flex-direction: row;\n align-items: center;\n flex-wrap: nowrap;\n gap: var(--gnome-space-1, 6px);\n padding: var(--gnome-space-1, 6px);\n min-height: 46px;\n\n color: var(--gnome-window-fg-color, rgba(0, 0, 0, 0.8));\n font-family: var(--gnome-font-family);\n}\n\n/* ─── Spacer ──────────────────────────────────────────────────────────────────\n Invisible flex filler — mirrors `GtkSeparator.spacer`.\n ─────────────────────────────────────────────────────────────────────────── */\n\n.spacer {\n flex: 1;\n min-width: 0;\n}\n"],"mappings":""}
1
+ {"version":3,"file":"Toolbar.module.css.js","names":[],"sources":["../../../src/components/Toolbar/Toolbar.module.css"],"sourcesContent":["/* ─── Toolbar ─────────────────────────────────────────────────────────────────\n Mirrors the libadwaita `.toolbar` style class:\n horizontal flex row, 6 px padding on all sides, 6 px gap between children.\n ─────────────────────────────────────────────────────────────────────────── */\n\n.toolbar {\n display: flex;\n flex-flow: row nowrap;\n align-items: center;\n gap: var(--gnome-space-1, 6px);\n padding: var(--gnome-space-1, 6px);\n min-height: 46px;\n color: var(--gnome-window-fg-color, rgb(0 0 0 / 0.8));\n font-family: var(--gnome-font-family);\n}\n\n/* ─── Spacer ──────────────────────────────────────────────────────────────────\n Invisible flex filler — mirrors `GtkSeparator.spacer`.\n ─────────────────────────────────────────────────────────────────────────── */\n\n.spacer {\n flex: 1;\n min-width: 0;\n}\n"],"mappings":""}
@@ -1,2 +1,2 @@
1
- var e={tooltip:`_tooltip_n1yac_3`,visible:`_visible_n1yac_29`,top:`_top_n1yac_55`,bottom:`_bottom_n1yac_62`,left:`_left_n1yac_69`,right:`_right_n1yac_76`};exports.default=e;
1
+ var e={tooltip:`_tooltip_v8xns_3`,visible:`_visible_v8xns_24`,top:`_top_v8xns_50`,bottom:`_bottom_v8xns_57`,left:`_left_v8xns_64`,right:`_right_v8xns_71`};exports.default=e;
2
2
  //# sourceMappingURL=Tooltip.module.css.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Tooltip.module.css.cjs","names":[],"sources":["../../../src/components/Tooltip/Tooltip.module.css"],"sourcesContent":["/* ─── Tooltip bubble ─────────────────────────────────────────────────────────── */\n\n.tooltip {\n position: fixed;\n z-index: 10500; /* above Dialog (10000) and Toaster (9999) */\n\n max-width: 240px;\n padding: 4px var(--gnome-space-2, 12px);\n\n background-color: var(--gnome-tooltip-bg-color, #3d3d3d);\n color: var(--gnome-tooltip-fg-color, #ffffff);\n\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-caption, 0.8125rem);\n font-weight: var(--gnome-font-weight-normal, 400);\n line-height: var(--gnome-line-height-body, 1.5);\n text-align: center;\n white-space: pre-wrap;\n word-break: break-word;\n\n border-radius: var(--gnome-radius-sm, 6px);\n box-shadow:\n 0 2px 8px rgba(0, 0, 0, 0.2),\n 0 0 0 1px rgba(255, 255, 255, 0.06);\n\n pointer-events: none;\n user-select: none;\n\n /* Hidden by default — fades in when .visible is applied */\n opacity: 0;\n transform: scale(0.94);\n transition:\n opacity var(--gnome-duration-fast, 100ms) var(--gnome-easing-default, ease),\n transform var(--gnome-duration-fast, 100ms) var(--gnome-easing-default, ease);\n}\n\n/* ─── Visible state ──────────────────────────────────────────────────────────── */\n\n.visible {\n opacity: 1;\n transform: scale(1);\n}\n\n/* ─── Arrow ──────────────────────────────────────────────────────────────────── */\n\n.tooltip::after {\n content: \"\";\n position: absolute;\n width: 0;\n height: 0;\n border: 5px solid transparent;\n pointer-events: none;\n}\n\n.top::after {\n top: 100%;\n left: 50%;\n transform: translateX(-50%);\n border-top-color: var(--gnome-tooltip-bg-color, #3d3d3d);\n}\n\n.bottom::after {\n bottom: 100%;\n left: 50%;\n transform: translateX(-50%);\n border-bottom-color: var(--gnome-tooltip-bg-color, #3d3d3d);\n}\n\n.left::after {\n left: 100%;\n top: 50%;\n transform: translateY(-50%);\n border-left-color: var(--gnome-tooltip-bg-color, #3d3d3d);\n}\n\n.right::after {\n right: 100%;\n top: 50%;\n transform: translateY(-50%);\n border-right-color: var(--gnome-tooltip-bg-color, #3d3d3d);\n}\n\n/* ─── Dark mode ──────────────────────────────────────────────────────────────── */\n\n@media (prefers-color-scheme: dark) {\n .tooltip {\n background-color: var(--gnome-tooltip-bg-color, #c0bfbc);\n color: var(--gnome-tooltip-fg-color, rgba(0, 0, 0, 0.8));\n box-shadow:\n 0 2px 8px rgba(0, 0, 0, 0.4),\n 0 0 0 1px rgba(0, 0, 0, 0.12);\n }\n\n .top::after {\n border-top-color: var(--gnome-tooltip-bg-color, #c0bfbc);\n }\n .bottom::after {\n border-bottom-color: var(--gnome-tooltip-bg-color, #c0bfbc);\n }\n .left::after {\n border-left-color: var(--gnome-tooltip-bg-color, #c0bfbc);\n }\n .right::after {\n border-right-color: var(--gnome-tooltip-bg-color, #c0bfbc);\n }\n}\n\n/* ─── Reduced motion ─────────────────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .tooltip {\n transition: opacity var(--gnome-duration-fast, 100ms) linear;\n transform: none;\n }\n\n .visible {\n transform: none;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"Tooltip.module.css.cjs","names":[],"sources":["../../../src/components/Tooltip/Tooltip.module.css"],"sourcesContent":["/* ─── Tooltip bubble ─────────────────────────────────────────────────────────── */\n\n.tooltip {\n position: fixed;\n z-index: 10500; /* above Dialog (10000) and Toaster (9999) */\n max-width: 240px;\n padding: 4px var(--gnome-space-2, 12px);\n background-color: var(--gnome-tooltip-bg-color, #3d3d3d);\n color: var(--gnome-tooltip-fg-color, #fff);\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-caption, 0.8125rem);\n font-weight: var(--gnome-font-weight-normal, 400);\n line-height: var(--gnome-line-height-body, 1.5);\n text-align: center;\n white-space: pre-wrap;\n overflow-wrap: anywhere;\n border-radius: var(--gnome-radius-sm, 6px);\n box-shadow:\n 0 2px 8px rgb(0 0 0 / 0.2),\n 0 0 0 1px rgb(255 255 255 / 0.06);\n pointer-events: none;\n user-select: none;\n\n /* Hidden by default — fades in when .visible is applied */\n opacity: 0;\n transform: scale(0.94);\n transition:\n opacity var(--gnome-duration-fast, 100ms) var(--gnome-easing-default, ease),\n transform var(--gnome-duration-fast, 100ms) var(--gnome-easing-default, ease);\n}\n\n/* ─── Visible state ──────────────────────────────────────────────────────────── */\n\n.visible {\n opacity: 1;\n transform: scale(1);\n}\n\n/* ─── Arrow ──────────────────────────────────────────────────────────────────── */\n\n.tooltip::after {\n content: \"\";\n position: absolute;\n width: 0;\n height: 0;\n border: 5px solid transparent;\n pointer-events: none;\n}\n\n.top::after {\n top: 100%;\n left: 50%;\n transform: translateX(-50%);\n border-top-color: var(--gnome-tooltip-bg-color, #3d3d3d);\n}\n\n.bottom::after {\n bottom: 100%;\n left: 50%;\n transform: translateX(-50%);\n border-bottom-color: var(--gnome-tooltip-bg-color, #3d3d3d);\n}\n\n.left::after {\n left: 100%;\n top: 50%;\n transform: translateY(-50%);\n border-left-color: var(--gnome-tooltip-bg-color, #3d3d3d);\n}\n\n.right::after {\n right: 100%;\n top: 50%;\n transform: translateY(-50%);\n border-right-color: var(--gnome-tooltip-bg-color, #3d3d3d);\n}\n\n/* ─── Dark mode ──────────────────────────────────────────────────────────────── */\n\n@media (prefers-color-scheme: dark) {\n .tooltip {\n background-color: var(--gnome-tooltip-bg-color, #c0bfbc);\n color: var(--gnome-tooltip-fg-color, rgb(0 0 0 / 0.8));\n box-shadow:\n 0 2px 8px rgb(0 0 0 / 0.4),\n 0 0 0 1px rgb(0 0 0 / 0.12);\n }\n\n .top::after {\n border-top-color: var(--gnome-tooltip-bg-color, #c0bfbc);\n }\n\n .bottom::after {\n border-bottom-color: var(--gnome-tooltip-bg-color, #c0bfbc);\n }\n\n .left::after {\n border-left-color: var(--gnome-tooltip-bg-color, #c0bfbc);\n }\n\n .right::after {\n border-right-color: var(--gnome-tooltip-bg-color, #c0bfbc);\n }\n}\n\n/* ─── Reduced motion ─────────────────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .tooltip {\n transition: opacity var(--gnome-duration-fast, 100ms) linear;\n transform: none;\n }\n\n .visible {\n transform: none;\n }\n}\n"],"mappings":""}
@@ -1,10 +1,10 @@
1
1
  var e = {
2
- tooltip: "_tooltip_n1yac_3",
3
- visible: "_visible_n1yac_29",
4
- top: "_top_n1yac_55",
5
- bottom: "_bottom_n1yac_62",
6
- left: "_left_n1yac_69",
7
- right: "_right_n1yac_76"
2
+ tooltip: "_tooltip_v8xns_3",
3
+ visible: "_visible_v8xns_24",
4
+ top: "_top_v8xns_50",
5
+ bottom: "_bottom_v8xns_57",
6
+ left: "_left_v8xns_64",
7
+ right: "_right_v8xns_71"
8
8
  };
9
9
  //#endregion
10
10
  export { e as default };
@@ -1 +1 @@
1
- {"version":3,"file":"Tooltip.module.css.js","names":[],"sources":["../../../src/components/Tooltip/Tooltip.module.css"],"sourcesContent":["/* ─── Tooltip bubble ─────────────────────────────────────────────────────────── */\n\n.tooltip {\n position: fixed;\n z-index: 10500; /* above Dialog (10000) and Toaster (9999) */\n\n max-width: 240px;\n padding: 4px var(--gnome-space-2, 12px);\n\n background-color: var(--gnome-tooltip-bg-color, #3d3d3d);\n color: var(--gnome-tooltip-fg-color, #ffffff);\n\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-caption, 0.8125rem);\n font-weight: var(--gnome-font-weight-normal, 400);\n line-height: var(--gnome-line-height-body, 1.5);\n text-align: center;\n white-space: pre-wrap;\n word-break: break-word;\n\n border-radius: var(--gnome-radius-sm, 6px);\n box-shadow:\n 0 2px 8px rgba(0, 0, 0, 0.2),\n 0 0 0 1px rgba(255, 255, 255, 0.06);\n\n pointer-events: none;\n user-select: none;\n\n /* Hidden by default — fades in when .visible is applied */\n opacity: 0;\n transform: scale(0.94);\n transition:\n opacity var(--gnome-duration-fast, 100ms) var(--gnome-easing-default, ease),\n transform var(--gnome-duration-fast, 100ms) var(--gnome-easing-default, ease);\n}\n\n/* ─── Visible state ──────────────────────────────────────────────────────────── */\n\n.visible {\n opacity: 1;\n transform: scale(1);\n}\n\n/* ─── Arrow ──────────────────────────────────────────────────────────────────── */\n\n.tooltip::after {\n content: \"\";\n position: absolute;\n width: 0;\n height: 0;\n border: 5px solid transparent;\n pointer-events: none;\n}\n\n.top::after {\n top: 100%;\n left: 50%;\n transform: translateX(-50%);\n border-top-color: var(--gnome-tooltip-bg-color, #3d3d3d);\n}\n\n.bottom::after {\n bottom: 100%;\n left: 50%;\n transform: translateX(-50%);\n border-bottom-color: var(--gnome-tooltip-bg-color, #3d3d3d);\n}\n\n.left::after {\n left: 100%;\n top: 50%;\n transform: translateY(-50%);\n border-left-color: var(--gnome-tooltip-bg-color, #3d3d3d);\n}\n\n.right::after {\n right: 100%;\n top: 50%;\n transform: translateY(-50%);\n border-right-color: var(--gnome-tooltip-bg-color, #3d3d3d);\n}\n\n/* ─── Dark mode ──────────────────────────────────────────────────────────────── */\n\n@media (prefers-color-scheme: dark) {\n .tooltip {\n background-color: var(--gnome-tooltip-bg-color, #c0bfbc);\n color: var(--gnome-tooltip-fg-color, rgba(0, 0, 0, 0.8));\n box-shadow:\n 0 2px 8px rgba(0, 0, 0, 0.4),\n 0 0 0 1px rgba(0, 0, 0, 0.12);\n }\n\n .top::after {\n border-top-color: var(--gnome-tooltip-bg-color, #c0bfbc);\n }\n .bottom::after {\n border-bottom-color: var(--gnome-tooltip-bg-color, #c0bfbc);\n }\n .left::after {\n border-left-color: var(--gnome-tooltip-bg-color, #c0bfbc);\n }\n .right::after {\n border-right-color: var(--gnome-tooltip-bg-color, #c0bfbc);\n }\n}\n\n/* ─── Reduced motion ─────────────────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .tooltip {\n transition: opacity var(--gnome-duration-fast, 100ms) linear;\n transform: none;\n }\n\n .visible {\n transform: none;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"Tooltip.module.css.js","names":[],"sources":["../../../src/components/Tooltip/Tooltip.module.css"],"sourcesContent":["/* ─── Tooltip bubble ─────────────────────────────────────────────────────────── */\n\n.tooltip {\n position: fixed;\n z-index: 10500; /* above Dialog (10000) and Toaster (9999) */\n max-width: 240px;\n padding: 4px var(--gnome-space-2, 12px);\n background-color: var(--gnome-tooltip-bg-color, #3d3d3d);\n color: var(--gnome-tooltip-fg-color, #fff);\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-caption, 0.8125rem);\n font-weight: var(--gnome-font-weight-normal, 400);\n line-height: var(--gnome-line-height-body, 1.5);\n text-align: center;\n white-space: pre-wrap;\n overflow-wrap: anywhere;\n border-radius: var(--gnome-radius-sm, 6px);\n box-shadow:\n 0 2px 8px rgb(0 0 0 / 0.2),\n 0 0 0 1px rgb(255 255 255 / 0.06);\n pointer-events: none;\n user-select: none;\n\n /* Hidden by default — fades in when .visible is applied */\n opacity: 0;\n transform: scale(0.94);\n transition:\n opacity var(--gnome-duration-fast, 100ms) var(--gnome-easing-default, ease),\n transform var(--gnome-duration-fast, 100ms) var(--gnome-easing-default, ease);\n}\n\n/* ─── Visible state ──────────────────────────────────────────────────────────── */\n\n.visible {\n opacity: 1;\n transform: scale(1);\n}\n\n/* ─── Arrow ──────────────────────────────────────────────────────────────────── */\n\n.tooltip::after {\n content: \"\";\n position: absolute;\n width: 0;\n height: 0;\n border: 5px solid transparent;\n pointer-events: none;\n}\n\n.top::after {\n top: 100%;\n left: 50%;\n transform: translateX(-50%);\n border-top-color: var(--gnome-tooltip-bg-color, #3d3d3d);\n}\n\n.bottom::after {\n bottom: 100%;\n left: 50%;\n transform: translateX(-50%);\n border-bottom-color: var(--gnome-tooltip-bg-color, #3d3d3d);\n}\n\n.left::after {\n left: 100%;\n top: 50%;\n transform: translateY(-50%);\n border-left-color: var(--gnome-tooltip-bg-color, #3d3d3d);\n}\n\n.right::after {\n right: 100%;\n top: 50%;\n transform: translateY(-50%);\n border-right-color: var(--gnome-tooltip-bg-color, #3d3d3d);\n}\n\n/* ─── Dark mode ──────────────────────────────────────────────────────────────── */\n\n@media (prefers-color-scheme: dark) {\n .tooltip {\n background-color: var(--gnome-tooltip-bg-color, #c0bfbc);\n color: var(--gnome-tooltip-fg-color, rgb(0 0 0 / 0.8));\n box-shadow:\n 0 2px 8px rgb(0 0 0 / 0.4),\n 0 0 0 1px rgb(0 0 0 / 0.12);\n }\n\n .top::after {\n border-top-color: var(--gnome-tooltip-bg-color, #c0bfbc);\n }\n\n .bottom::after {\n border-bottom-color: var(--gnome-tooltip-bg-color, #c0bfbc);\n }\n\n .left::after {\n border-left-color: var(--gnome-tooltip-bg-color, #c0bfbc);\n }\n\n .right::after {\n border-right-color: var(--gnome-tooltip-bg-color, #c0bfbc);\n }\n}\n\n/* ─── Reduced motion ─────────────────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .tooltip {\n transition: opacity var(--gnome-duration-fast, 100ms) linear;\n transform: none;\n }\n\n .visible {\n transform: none;\n }\n}\n"],"mappings":""}
@@ -1,2 +1,2 @@
1
- const e=require("./ViewSwitcher.module.css.cjs");let t=require("react"),n=require("react/jsx-runtime");var r=({children:r,className:i,"aria-label":a=`View switcher`,...o})=>{let s=(0,t.useRef)(null);function c(e){let t=Array.from(s.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===`ArrowRight`||e.key===`ArrowDown`)i=(r+1)%t.length;else if(e.key===`ArrowLeft`||e.key===`ArrowUp`)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)(`div`,{ref:s,role:`radiogroup`,"aria-label":a,onKeyDown:c,className:[e.default.switcher,i].filter(Boolean).join(` `),...o,children:r})};exports.ViewSwitcher=r;
1
+ const e=require("./ViewSwitcher.module.css.cjs");let t=require("react"),n=require("react/jsx-runtime");var r=({children:r,className:i,"aria-label":a=`View switcher`,...o})=>{let s=(0,t.useRef)(null);function c(e){let t=Array.from(s.current?.querySelectorAll(`[role=radio]:not(:disabled)`)??[]),{activeElement:n}=document,r=n instanceof HTMLButtonElement?t.indexOf(n):-1;if(r===-1)return;let i=r;if(e.key===`ArrowRight`||e.key===`ArrowDown`)i=(r+1)%t.length;else if(e.key===`ArrowLeft`||e.key===`ArrowUp`)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)(`div`,{ref:s,role:`radiogroup`,"aria-label":a,onKeyDown:c,className:[e.default.switcher,i].filter(Boolean).join(` `),...o,children:r})};exports.ViewSwitcher=r;
2
2
  //# sourceMappingURL=ViewSwitcher.cjs.map
@@ -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 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"}
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;\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,CAAE,iBAAkB,SACpB,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"}
@@ -5,7 +5,7 @@ import { jsx as n } from "react/jsx-runtime";
5
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
- let t = Array.from(s.current?.querySelectorAll("[role=radio]:not(:disabled)") ?? []), n = document.activeElement, r = n instanceof HTMLButtonElement ? t.indexOf(n) : -1;
8
+ let t = Array.from(s.current?.querySelectorAll("[role=radio]:not(:disabled)") ?? []), { activeElement: n } = document, r = n instanceof HTMLButtonElement ? t.indexOf(n) : -1;
9
9
  if (r === -1) return;
10
10
  let i = r;
11
11
  if (e.key === "ArrowRight" || e.key === "ArrowDown") i = (r + 1) % t.length;
@@ -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 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
+ {"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;\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,EAAE,qBAAkB,UACpB,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
- var e={switcher:`_switcher_xusgc_3`,item:`_item_xusgc_14`,active:`_active_xusgc_41`,itemIcon:`_itemIcon_xusgc_72`,itemLabel:`_itemLabel_xusgc_80`};exports.default=e;
1
+ var e={switcher:`_switcher_1kg6i_3`,item:`_item_1kg6i_14`,active:`_active_1kg6i_37`,itemIcon:`_itemIcon_1kg6i_68`,itemLabel:`_itemLabel_1kg6i_76`};exports.default=e;
2
2
  //# sourceMappingURL=ViewSwitcher.module.css.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ViewSwitcher.module.css.cjs","names":[],"sources":["../../../src/components/ViewSwitcher/ViewSwitcher.module.css"],"sourcesContent":["/* ─── Container ────────────────────────────────────────────────────────────── */\n\n.switcher {\n display: inline-flex;\n align-items: center;\n gap: 2px;\n padding: 3px;\n border-radius: var(--gnome-radius-pill);\n background-color: color-mix(in srgb, var(--gnome-headerbar-bg-color, #ebebeb) 75%, black 25%);\n}\n\n/* ─── Item ─────────────────────────────────────────────────────────────────── */\n\n.item {\n appearance: none;\n -webkit-appearance: none;\n border: none;\n background: transparent;\n font: inherit;\n cursor: pointer;\n outline: none;\n\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--gnome-space-1, 6px);\n padding: 5px var(--gnome-space-2, 12px);\n border-radius: calc(var(--gnome-radius-pill) - 3px);\n\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-body, 1rem);\n font-weight: var(--gnome-font-weight-normal, 400);\n color: var(--gnome-headerbar-fg-color, rgba(0, 0, 0, 0.8));\n white-space: nowrap;\n\n transition:\n background-color var(--gnome-duration-fast) var(--gnome-easing-default),\n color var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.item:hover:not(:disabled):not(.active) {\n background-color: rgba(0, 0, 0, 0.06);\n}\n\n.item:active:not(:disabled):not(.active) {\n background-color: rgba(0, 0, 0, 0.12);\n}\n\n.item:disabled {\n opacity: var(--gnome-opacity-disabled, 0.5);\n cursor: not-allowed;\n}\n\n.item:focus-visible {\n box-shadow:\n 0 0 0 var(--gnome-focus-ring-offset, 2px)\n color-mix(in srgb, var(--gnome-headerbar-bg-color, #ebebeb) 75%, black 25%),\n 0 0 0 calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 3px))\n var(--gnome-focus-ring-color, #3584e4);\n}\n\n/* ─── Active item ──────────────────────────────────────────────────────────── */\n\n.active {\n background-color: var(--gnome-headerbar-bg-color, #ebebeb);\n font-weight: var(--gnome-font-weight-semibold, 600);\n box-shadow: var(--gnome-shadow-sm, 0 1px 2px rgba(0, 0, 0, 0.12));\n}\n\n/* ─── Icon ─────────────────────────────────────────────────────────────────── */\n\n.itemIcon {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n}\n\n/* ─── Label ────────────────────────────────────────────────────────────────── */\n\n.itemLabel {\n line-height: var(--gnome-line-height-body, 1.5);\n}\n\n/* ─── Dark mode ────────────────────────────────────────────────────────────── */\n\n@media (prefers-color-scheme: dark) {\n .switcher {\n background-color: color-mix(in srgb, var(--gnome-headerbar-bg-color, #303030) 70%, black 30%);\n }\n\n .item:hover:not(:disabled):not(.active) {\n background-color: rgba(255, 255, 255, 0.08);\n }\n\n .item:active:not(:disabled):not(.active) {\n background-color: rgba(255, 255, 255, 0.14);\n }\n\n .active {\n background-color: var(--gnome-headerbar-bg-color, #303030);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);\n }\n}\n\n/* ─── Reduced motion ───────────────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .item {\n transition: none;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"ViewSwitcher.module.css.cjs","names":[],"sources":["../../../src/components/ViewSwitcher/ViewSwitcher.module.css"],"sourcesContent":["/* ─── Container ────────────────────────────────────────────────────────────── */\n\n.switcher {\n display: inline-flex;\n align-items: center;\n gap: 2px;\n padding: 3px;\n border-radius: var(--gnome-radius-pill);\n background-color: color-mix(in srgb, var(--gnome-headerbar-bg-color, #ebebeb) 75%, black 25%);\n}\n\n/* ─── Item ─────────────────────────────────────────────────────────────────── */\n\n.item {\n appearance: none;\n border: none;\n background: transparent;\n font: inherit;\n cursor: pointer;\n outline: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--gnome-space-1, 6px);\n padding: 5px var(--gnome-space-2, 12px);\n border-radius: calc(var(--gnome-radius-pill) - 3px);\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-body, 1rem);\n font-weight: var(--gnome-font-weight-normal, 400);\n color: var(--gnome-headerbar-fg-color, rgb(0 0 0 / 0.8));\n white-space: nowrap;\n transition:\n background-color var(--gnome-duration-fast) var(--gnome-easing-default),\n color var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.item:hover:not(:disabled, .active) {\n background-color: rgb(0 0 0 / 0.06);\n}\n\n.item:active:not(:disabled, .active) {\n background-color: rgb(0 0 0 / 0.12);\n}\n\n.item:disabled {\n opacity: var(--gnome-opacity-disabled, 0.5);\n cursor: not-allowed;\n}\n\n.item:focus-visible {\n box-shadow:\n 0 0 0 var(--gnome-focus-ring-offset, 2px)\n color-mix(in srgb, var(--gnome-headerbar-bg-color, #ebebeb) 75%, black 25%),\n 0 0 0 calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 3px))\n var(--gnome-focus-ring-color, #3584e4);\n}\n\n/* ─── Active item ──────────────────────────────────────────────────────────── */\n\n.active {\n background-color: var(--gnome-headerbar-bg-color, #ebebeb);\n font-weight: var(--gnome-font-weight-semibold, 600);\n box-shadow: var(--gnome-shadow-sm, 0 1px 2px rgb(0 0 0 / 0.12));\n}\n\n/* ─── Icon ─────────────────────────────────────────────────────────────────── */\n\n.itemIcon {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n}\n\n/* ─── Label ────────────────────────────────────────────────────────────────── */\n\n.itemLabel {\n line-height: var(--gnome-line-height-body, 1.5);\n}\n\n/* ─── Dark mode ────────────────────────────────────────────────────────────── */\n\n@media (prefers-color-scheme: dark) {\n .switcher {\n background-color: color-mix(in srgb, var(--gnome-headerbar-bg-color, #303030) 70%, black 30%);\n }\n\n .item:hover:not(:disabled, .active) {\n background-color: rgb(255 255 255 / 0.08);\n }\n\n .item:active:not(:disabled, .active) {\n background-color: rgb(255 255 255 / 0.14);\n }\n\n .active {\n background-color: var(--gnome-headerbar-bg-color, #303030);\n box-shadow: 0 1px 2px rgb(0 0 0 / 0.4);\n }\n}\n\n/* ─── Reduced motion ───────────────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .item {\n transition: none;\n }\n}\n"],"mappings":""}
@@ -1,9 +1,9 @@
1
1
  var e = {
2
- switcher: "_switcher_xusgc_3",
3
- item: "_item_xusgc_14",
4
- active: "_active_xusgc_41",
5
- itemIcon: "_itemIcon_xusgc_72",
6
- itemLabel: "_itemLabel_xusgc_80"
2
+ switcher: "_switcher_1kg6i_3",
3
+ item: "_item_1kg6i_14",
4
+ active: "_active_1kg6i_37",
5
+ itemIcon: "_itemIcon_1kg6i_68",
6
+ itemLabel: "_itemLabel_1kg6i_76"
7
7
  };
8
8
  //#endregion
9
9
  export { e as default };
@@ -1 +1 @@
1
- {"version":3,"file":"ViewSwitcher.module.css.js","names":[],"sources":["../../../src/components/ViewSwitcher/ViewSwitcher.module.css"],"sourcesContent":["/* ─── Container ────────────────────────────────────────────────────────────── */\n\n.switcher {\n display: inline-flex;\n align-items: center;\n gap: 2px;\n padding: 3px;\n border-radius: var(--gnome-radius-pill);\n background-color: color-mix(in srgb, var(--gnome-headerbar-bg-color, #ebebeb) 75%, black 25%);\n}\n\n/* ─── Item ─────────────────────────────────────────────────────────────────── */\n\n.item {\n appearance: none;\n -webkit-appearance: none;\n border: none;\n background: transparent;\n font: inherit;\n cursor: pointer;\n outline: none;\n\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--gnome-space-1, 6px);\n padding: 5px var(--gnome-space-2, 12px);\n border-radius: calc(var(--gnome-radius-pill) - 3px);\n\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-body, 1rem);\n font-weight: var(--gnome-font-weight-normal, 400);\n color: var(--gnome-headerbar-fg-color, rgba(0, 0, 0, 0.8));\n white-space: nowrap;\n\n transition:\n background-color var(--gnome-duration-fast) var(--gnome-easing-default),\n color var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.item:hover:not(:disabled):not(.active) {\n background-color: rgba(0, 0, 0, 0.06);\n}\n\n.item:active:not(:disabled):not(.active) {\n background-color: rgba(0, 0, 0, 0.12);\n}\n\n.item:disabled {\n opacity: var(--gnome-opacity-disabled, 0.5);\n cursor: not-allowed;\n}\n\n.item:focus-visible {\n box-shadow:\n 0 0 0 var(--gnome-focus-ring-offset, 2px)\n color-mix(in srgb, var(--gnome-headerbar-bg-color, #ebebeb) 75%, black 25%),\n 0 0 0 calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 3px))\n var(--gnome-focus-ring-color, #3584e4);\n}\n\n/* ─── Active item ──────────────────────────────────────────────────────────── */\n\n.active {\n background-color: var(--gnome-headerbar-bg-color, #ebebeb);\n font-weight: var(--gnome-font-weight-semibold, 600);\n box-shadow: var(--gnome-shadow-sm, 0 1px 2px rgba(0, 0, 0, 0.12));\n}\n\n/* ─── Icon ─────────────────────────────────────────────────────────────────── */\n\n.itemIcon {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n}\n\n/* ─── Label ────────────────────────────────────────────────────────────────── */\n\n.itemLabel {\n line-height: var(--gnome-line-height-body, 1.5);\n}\n\n/* ─── Dark mode ────────────────────────────────────────────────────────────── */\n\n@media (prefers-color-scheme: dark) {\n .switcher {\n background-color: color-mix(in srgb, var(--gnome-headerbar-bg-color, #303030) 70%, black 30%);\n }\n\n .item:hover:not(:disabled):not(.active) {\n background-color: rgba(255, 255, 255, 0.08);\n }\n\n .item:active:not(:disabled):not(.active) {\n background-color: rgba(255, 255, 255, 0.14);\n }\n\n .active {\n background-color: var(--gnome-headerbar-bg-color, #303030);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);\n }\n}\n\n/* ─── Reduced motion ───────────────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .item {\n transition: none;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"ViewSwitcher.module.css.js","names":[],"sources":["../../../src/components/ViewSwitcher/ViewSwitcher.module.css"],"sourcesContent":["/* ─── Container ────────────────────────────────────────────────────────────── */\n\n.switcher {\n display: inline-flex;\n align-items: center;\n gap: 2px;\n padding: 3px;\n border-radius: var(--gnome-radius-pill);\n background-color: color-mix(in srgb, var(--gnome-headerbar-bg-color, #ebebeb) 75%, black 25%);\n}\n\n/* ─── Item ─────────────────────────────────────────────────────────────────── */\n\n.item {\n appearance: none;\n border: none;\n background: transparent;\n font: inherit;\n cursor: pointer;\n outline: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--gnome-space-1, 6px);\n padding: 5px var(--gnome-space-2, 12px);\n border-radius: calc(var(--gnome-radius-pill) - 3px);\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-body, 1rem);\n font-weight: var(--gnome-font-weight-normal, 400);\n color: var(--gnome-headerbar-fg-color, rgb(0 0 0 / 0.8));\n white-space: nowrap;\n transition:\n background-color var(--gnome-duration-fast) var(--gnome-easing-default),\n color var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.item:hover:not(:disabled, .active) {\n background-color: rgb(0 0 0 / 0.06);\n}\n\n.item:active:not(:disabled, .active) {\n background-color: rgb(0 0 0 / 0.12);\n}\n\n.item:disabled {\n opacity: var(--gnome-opacity-disabled, 0.5);\n cursor: not-allowed;\n}\n\n.item:focus-visible {\n box-shadow:\n 0 0 0 var(--gnome-focus-ring-offset, 2px)\n color-mix(in srgb, var(--gnome-headerbar-bg-color, #ebebeb) 75%, black 25%),\n 0 0 0 calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 3px))\n var(--gnome-focus-ring-color, #3584e4);\n}\n\n/* ─── Active item ──────────────────────────────────────────────────────────── */\n\n.active {\n background-color: var(--gnome-headerbar-bg-color, #ebebeb);\n font-weight: var(--gnome-font-weight-semibold, 600);\n box-shadow: var(--gnome-shadow-sm, 0 1px 2px rgb(0 0 0 / 0.12));\n}\n\n/* ─── Icon ─────────────────────────────────────────────────────────────────── */\n\n.itemIcon {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n}\n\n/* ─── Label ────────────────────────────────────────────────────────────────── */\n\n.itemLabel {\n line-height: var(--gnome-line-height-body, 1.5);\n}\n\n/* ─── Dark mode ────────────────────────────────────────────────────────────── */\n\n@media (prefers-color-scheme: dark) {\n .switcher {\n background-color: color-mix(in srgb, var(--gnome-headerbar-bg-color, #303030) 70%, black 30%);\n }\n\n .item:hover:not(:disabled, .active) {\n background-color: rgb(255 255 255 / 0.08);\n }\n\n .item:active:not(:disabled, .active) {\n background-color: rgb(255 255 255 / 0.14);\n }\n\n .active {\n background-color: var(--gnome-headerbar-bg-color, #303030);\n box-shadow: 0 1px 2px rgb(0 0 0 / 0.4);\n }\n}\n\n/* ─── Reduced motion ───────────────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .item {\n transition: none;\n }\n}\n"],"mappings":""}
@@ -1,2 +1,2 @@
1
- var e={bar:`_bar_kfy6h_3`};exports.default=e;
1
+ var e={bar:`_bar_1azyf_3`};exports.default=e;
2
2
  //# sourceMappingURL=ViewSwitcherBar.module.css.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ViewSwitcherBar.module.css.cjs","names":[],"sources":["../../../src/components/ViewSwitcherBar/ViewSwitcherBar.module.css"],"sourcesContent":["/* ─── Bottom bar ─────────────────────────────────────────────────────────────── */\n\n.bar {\n display: flex;\n align-items: stretch;\n\n width: 100%;\n min-height: 52px;\n\n background-color: var(--gnome-headerbar-bg-color, #ebebeb);\n border-top: 1px solid var(--gnome-headerbar-shade-color, rgba(0, 0, 0, 0.12));\n\n /* Safe-area inset for mobile browsers */\n padding-bottom: env(safe-area-inset-bottom, 0px);\n}\n\n/* Each child (ViewSwitcherItem) fills equal width */\n.bar > * {\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 2px;\n\n /* Override the horizontal pill style from ViewSwitcherItem */\n border-radius: 0;\n padding: 6px 4px;\n font-size: var(--gnome-font-size-caption, 0.8125rem);\n min-height: 52px;\n}\n\n/* ─── Dark mode ──────────────────────────────────────────────────────────────── */\n\n@media (prefers-color-scheme: dark) {\n .bar {\n background-color: var(--gnome-headerbar-bg-color, #303030);\n border-top-color: rgba(0, 0, 0, 0.3);\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"ViewSwitcherBar.module.css.cjs","names":[],"sources":["../../../src/components/ViewSwitcherBar/ViewSwitcherBar.module.css"],"sourcesContent":["/* ─── Bottom bar ─────────────────────────────────────────────────────────────── */\n\n.bar {\n display: flex;\n align-items: stretch;\n width: 100%;\n min-height: 52px;\n background-color: var(--gnome-headerbar-bg-color, #ebebeb);\n border-top: 1px solid var(--gnome-headerbar-shade-color, rgb(0 0 0 / 0.12));\n\n /* Safe-area inset for mobile browsers */\n padding-bottom: env(safe-area-inset-bottom, 0);\n}\n\n/* Each child (ViewSwitcherItem) fills equal width */\n.bar > * {\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 2px;\n\n /* Override the horizontal pill style from ViewSwitcherItem */\n border-radius: 0;\n padding: 6px 4px;\n font-size: var(--gnome-font-size-caption, 0.8125rem);\n min-height: 52px;\n}\n\n/* ─── Dark mode ──────────────────────────────────────────────────────────────── */\n\n@media (prefers-color-scheme: dark) {\n .bar {\n background-color: var(--gnome-headerbar-bg-color, #303030);\n border-top-color: rgb(0 0 0 / 0.3);\n }\n}\n"],"mappings":""}
@@ -1,4 +1,4 @@
1
- var e = { bar: "_bar_kfy6h_3" };
1
+ var e = { bar: "_bar_1azyf_3" };
2
2
  //#endregion
3
3
  export { e as default };
4
4
 
@@ -1 +1 @@
1
- {"version":3,"file":"ViewSwitcherBar.module.css.js","names":[],"sources":["../../../src/components/ViewSwitcherBar/ViewSwitcherBar.module.css"],"sourcesContent":["/* ─── Bottom bar ─────────────────────────────────────────────────────────────── */\n\n.bar {\n display: flex;\n align-items: stretch;\n\n width: 100%;\n min-height: 52px;\n\n background-color: var(--gnome-headerbar-bg-color, #ebebeb);\n border-top: 1px solid var(--gnome-headerbar-shade-color, rgba(0, 0, 0, 0.12));\n\n /* Safe-area inset for mobile browsers */\n padding-bottom: env(safe-area-inset-bottom, 0px);\n}\n\n/* Each child (ViewSwitcherItem) fills equal width */\n.bar > * {\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 2px;\n\n /* Override the horizontal pill style from ViewSwitcherItem */\n border-radius: 0;\n padding: 6px 4px;\n font-size: var(--gnome-font-size-caption, 0.8125rem);\n min-height: 52px;\n}\n\n/* ─── Dark mode ──────────────────────────────────────────────────────────────── */\n\n@media (prefers-color-scheme: dark) {\n .bar {\n background-color: var(--gnome-headerbar-bg-color, #303030);\n border-top-color: rgba(0, 0, 0, 0.3);\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"ViewSwitcherBar.module.css.js","names":[],"sources":["../../../src/components/ViewSwitcherBar/ViewSwitcherBar.module.css"],"sourcesContent":["/* ─── Bottom bar ─────────────────────────────────────────────────────────────── */\n\n.bar {\n display: flex;\n align-items: stretch;\n width: 100%;\n min-height: 52px;\n background-color: var(--gnome-headerbar-bg-color, #ebebeb);\n border-top: 1px solid var(--gnome-headerbar-shade-color, rgb(0 0 0 / 0.12));\n\n /* Safe-area inset for mobile browsers */\n padding-bottom: env(safe-area-inset-bottom, 0);\n}\n\n/* Each child (ViewSwitcherItem) fills equal width */\n.bar > * {\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 2px;\n\n /* Override the horizontal pill style from ViewSwitcherItem */\n border-radius: 0;\n padding: 6px 4px;\n font-size: var(--gnome-font-size-caption, 0.8125rem);\n min-height: 52px;\n}\n\n/* ─── Dark mode ──────────────────────────────────────────────────────────────── */\n\n@media (prefers-color-scheme: dark) {\n .bar {\n background-color: var(--gnome-headerbar-bg-color, #303030);\n border-top-color: rgb(0 0 0 / 0.3);\n }\n}\n"],"mappings":""}
@@ -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}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;
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)`)??[]),{activeElement:n}=document,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 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"}
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;\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,CAAE,iBAAkB,SACpB,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"}
@@ -11,7 +11,7 @@ function s() {
11
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
- let t = Array.from(g.current?.querySelectorAll("[role=radio]:not(:disabled)") ?? []), n = document.activeElement, r = n instanceof HTMLButtonElement ? t.indexOf(n) : -1;
14
+ let t = Array.from(g.current?.querySelectorAll("[role=radio]:not(:disabled)") ?? []), { activeElement: n } = document, r = n instanceof HTMLButtonElement ? t.indexOf(n) : -1;
15
15
  if (r === -1) return;
16
16
  let i = r;
17
17
  if (e.key === "ArrowDown" || e.key === "ArrowRight") i = (r + 1) % t.length;
@@ -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 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
+ {"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;\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,EAAE,qBAAkB,UACpB,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
- var e={sidebar:`_sidebar_1pj3d_3`,sidebarCollapsed:`_sidebarCollapsed_1pj3d_15`,itemBtn:`_itemBtn_1pj3d_19`,header:`_header_1pj3d_26`,footer:`_footer_1pj3d_31`,noHeaderSeparator:`_noHeaderSeparator_1pj3d_36`,noFooterSeparator:`_noFooterSeparator_1pj3d_40`,list:`_list_1pj3d_46`,item:`_item_1pj3d_19`,active:`_active_1pj3d_92`,itemIcon:`_itemIcon_1pj3d_130`,itemLabel:`_itemLabel_1pj3d_143`,itemSuffix:`_itemSuffix_1pj3d_153`,count:`_count_1pj3d_160`};exports.default=e;
1
+ var e={sidebar:`_sidebar_wza63_3`,sidebarCollapsed:`_sidebarCollapsed_wza63_15`,itemBtn:`_itemBtn_wza63_19`,header:`_header_wza63_26`,footer:`_footer_wza63_31`,noHeaderSeparator:`_noHeaderSeparator_wza63_36`,noFooterSeparator:`_noFooterSeparator_wza63_40`,list:`_list_wza63_46`,item:`_item_wza63_19`,active:`_active_wza63_87`,itemIcon:`_itemIcon_wza63_125`,itemLabel:`_itemLabel_wza63_138`,itemSuffix:`_itemSuffix_wza63_148`,count:`_count_wza63_155`};exports.default=e;
2
2
  //# sourceMappingURL=ViewSwitcherSidebar.module.css.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ViewSwitcherSidebar.module.css.cjs","names":[],"sources":["../../../src/components/ViewSwitcherSidebar/ViewSwitcherSidebar.module.css"],"sourcesContent":["/* ─── Container ─────────────────────────────────────────────────────────────── */\n\n.sidebar {\n display: flex;\n flex-direction: column;\n width: 240px;\n height: 100%;\n background-color: var(--gnome-sidebar-bg-color, #ebebeb);\n color: var(--gnome-sidebar-fg-color, rgba(0, 0, 0, 0.8));\n border-right: 1px solid var(--gnome-headerbar-border-color, rgba(0, 0, 0, 0.12));\n overflow: hidden;\n transition: width var(--gnome-duration-normal, 200ms) var(--gnome-easing-default, ease);\n}\n\n.sidebarCollapsed {\n width: 56px;\n}\n\n.sidebarCollapsed .itemBtn {\n justify-content: center;\n padding: 9px;\n}\n\n/* ─── Header / Footer slots ─────────────────────────────────────────────────── */\n\n.header {\n flex-shrink: 0;\n border-bottom: 1px solid var(--gnome-headerbar-border-color, rgba(0, 0, 0, 0.12));\n}\n\n.footer {\n flex-shrink: 0;\n border-top: 1px solid var(--gnome-headerbar-border-color, rgba(0, 0, 0, 0.12));\n}\n\n.noHeaderSeparator .header {\n border-bottom-color: transparent;\n}\n\n.noFooterSeparator .footer {\n border-top-color: transparent;\n}\n\n/* ─── List ──────────────────────────────────────────────────────────────────── */\n\n.list {\n list-style: none;\n margin: 0;\n padding: var(--gnome-space-1, 6px);\n display: flex;\n flex-direction: column;\n gap: 2px;\n flex: 1;\n overflow-y: auto;\n overflow-x: hidden;\n}\n\n/* ─── Item wrapper ──────────────────────────────────────────────────────────── */\n\n.item {\n display: block;\n}\n\n/* ─── Item button ───────────────────────────────────────────────────────────── */\n\n.itemBtn {\n appearance: none;\n -webkit-appearance: none;\n border: none;\n background: transparent;\n font: inherit;\n text-align: start;\n cursor: pointer;\n outline: none;\n\n display: flex;\n align-items: center;\n gap: var(--gnome-space-2, 12px);\n width: 100%;\n padding: 9px var(--gnome-space-2, 12px);\n border-radius: var(--gnome-radius-md, 8px);\n min-height: 42px;\n\n color: var(--gnome-sidebar-fg-color, rgba(0, 0, 0, 0.8));\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-body, 1rem);\n font-weight: var(--gnome-font-weight-normal, 400);\n\n transition: background-color var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.itemBtn:hover:not(:disabled):not(.active) {\n background-color: color-mix(in srgb, var(--gnome-sidebar-bg-color, #ebebeb) 88%, black 12%);\n}\n\n.itemBtn:active:not(:disabled):not(.active) {\n background-color: color-mix(in srgb, var(--gnome-sidebar-bg-color, #ebebeb) 78%, black 22%);\n}\n\n.itemBtn:focus-visible {\n box-shadow:\n 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-sidebar-bg-color, #ebebeb),\n 0 0 0 calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 2px))\n var(--gnome-focus-ring-color, #3584e4);\n}\n\n.itemBtn:disabled {\n opacity: var(--gnome-opacity-disabled, 0.5);\n cursor: not-allowed;\n}\n\n/* ─── Active ────────────────────────────────────────────────────────────────── */\n\n.active {\n background-color: var(--gnome-accent-bg-color, #3584e4);\n color: var(--gnome-accent-fg-color, #ffffff);\n font-weight: var(--gnome-font-weight-semibold, 600);\n}\n\n.active:hover:not(:disabled) {\n background-color: color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 92%, black 8%);\n}\n\n.active:active:not(:disabled) {\n background-color: color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 84%, black 16%);\n}\n\n/* ─── Icon ──────────────────────────────────────────────────────────────────── */\n\n.itemIcon {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n opacity: 0.85;\n}\n\n.active .itemIcon {\n opacity: 1;\n}\n\n/* ─── Label ─────────────────────────────────────────────────────────────────── */\n\n.itemLabel {\n flex: 1;\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n/* ─── Suffix / count ────────────────────────────────────────────────────────── */\n\n.itemSuffix {\n flex-shrink: 0;\n margin-left: auto;\n display: flex;\n align-items: center;\n}\n\n.count {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 20px;\n height: 20px;\n padding: 0 6px;\n border-radius: var(--gnome-radius-pill);\n\n font-size: var(--gnome-font-size-caption, 0.875rem);\n font-weight: var(--gnome-font-weight-semibold, 600);\n line-height: 1;\n\n /* Inactive: dim pill */\n background-color: rgba(0, 0, 0, 0.12);\n color: var(--gnome-sidebar-fg-color, rgba(0, 0, 0, 0.8));\n}\n\n.active .count {\n /* Active: white pill on accent */\n background-color: rgba(255, 255, 255, 0.25);\n color: var(--gnome-accent-fg-color, #ffffff);\n}\n\n/* ─── Dark mode ─────────────────────────────────────────────────────────────── */\n\n@media (prefers-color-scheme: dark) {\n .sidebar {\n border-right-color: rgba(255, 255, 255, 0.1);\n }\n\n .header,\n .footer {\n border-color: rgba(255, 255, 255, 0.08);\n }\n\n .itemBtn:hover:not(:disabled):not(.active) {\n background-color: color-mix(in srgb, var(--gnome-sidebar-bg-color, #303030) 85%, white 15%);\n }\n\n .itemBtn:active:not(:disabled):not(.active) {\n background-color: color-mix(in srgb, var(--gnome-sidebar-bg-color, #303030) 75%, white 25%);\n }\n\n .count {\n background-color: rgba(255, 255, 255, 0.12);\n color: var(--gnome-sidebar-fg-color, rgba(255, 255, 255, 0.87));\n }\n}\n\n/* ─── Reduced motion ────────────────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .itemBtn {\n transition: none;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"ViewSwitcherSidebar.module.css.cjs","names":[],"sources":["../../../src/components/ViewSwitcherSidebar/ViewSwitcherSidebar.module.css"],"sourcesContent":["/* ─── Container ─────────────────────────────────────────────────────────────── */\n\n.sidebar {\n display: flex;\n flex-direction: column;\n width: 240px;\n height: 100%;\n background-color: var(--gnome-sidebar-bg-color, #ebebeb);\n color: var(--gnome-sidebar-fg-color, rgb(0 0 0 / 0.8));\n border-right: 1px solid var(--gnome-headerbar-border-color, rgb(0 0 0 / 0.12));\n overflow: hidden;\n transition: width var(--gnome-duration-normal, 200ms) var(--gnome-easing-default, ease);\n}\n\n.sidebarCollapsed {\n width: 56px;\n}\n\n.sidebarCollapsed .itemBtn {\n justify-content: center;\n padding: 9px;\n}\n\n/* ─── Header / Footer slots ─────────────────────────────────────────────────── */\n\n.header {\n flex-shrink: 0;\n border-bottom: 1px solid var(--gnome-headerbar-border-color, rgb(0 0 0 / 0.12));\n}\n\n.footer {\n flex-shrink: 0;\n border-top: 1px solid var(--gnome-headerbar-border-color, rgb(0 0 0 / 0.12));\n}\n\n.noHeaderSeparator .header {\n border-bottom-color: transparent;\n}\n\n.noFooterSeparator .footer {\n border-top-color: transparent;\n}\n\n/* ─── List ──────────────────────────────────────────────────────────────────── */\n\n.list {\n list-style: none;\n margin: 0;\n padding: var(--gnome-space-1, 6px);\n display: flex;\n flex-direction: column;\n gap: 2px;\n flex: 1;\n overflow: hidden auto;\n}\n\n/* ─── Item wrapper ──────────────────────────────────────────────────────────── */\n\n.item {\n display: block;\n}\n\n/* ─── Item button ───────────────────────────────────────────────────────────── */\n\n.itemBtn {\n appearance: none;\n border: none;\n background: transparent;\n font: inherit;\n text-align: start;\n cursor: pointer;\n outline: none;\n display: flex;\n align-items: center;\n gap: var(--gnome-space-2, 12px);\n width: 100%;\n padding: 9px var(--gnome-space-2, 12px);\n border-radius: var(--gnome-radius-md, 8px);\n min-height: 42px;\n color: var(--gnome-sidebar-fg-color, rgb(0 0 0 / 0.8));\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-body, 1rem);\n font-weight: var(--gnome-font-weight-normal, 400);\n transition: background-color var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.itemBtn:hover:not(:disabled, .active) {\n background-color: color-mix(in srgb, var(--gnome-sidebar-bg-color, #ebebeb) 88%, black 12%);\n}\n\n.itemBtn:active:not(:disabled, .active) {\n background-color: color-mix(in srgb, var(--gnome-sidebar-bg-color, #ebebeb) 78%, black 22%);\n}\n\n.itemBtn:focus-visible {\n box-shadow:\n 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-sidebar-bg-color, #ebebeb),\n 0 0 0 calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 2px))\n var(--gnome-focus-ring-color, #3584e4);\n}\n\n.itemBtn:disabled {\n opacity: var(--gnome-opacity-disabled, 0.5);\n cursor: not-allowed;\n}\n\n/* ─── Active ────────────────────────────────────────────────────────────────── */\n\n.active {\n background-color: var(--gnome-accent-bg-color, #3584e4);\n color: var(--gnome-accent-fg-color, #fff);\n font-weight: var(--gnome-font-weight-semibold, 600);\n}\n\n.active:hover:not(:disabled) {\n background-color: color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 92%, black 8%);\n}\n\n.active:active:not(:disabled) {\n background-color: color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 84%, black 16%);\n}\n\n/* ─── Icon ──────────────────────────────────────────────────────────────────── */\n\n.itemIcon {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n opacity: 0.85;\n}\n\n.active .itemIcon {\n opacity: 1;\n}\n\n/* ─── Label ─────────────────────────────────────────────────────────────────── */\n\n.itemLabel {\n flex: 1;\n min-width: 0;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n/* ─── Suffix / count ────────────────────────────────────────────────────────── */\n\n.itemSuffix {\n flex-shrink: 0;\n margin-left: auto;\n display: flex;\n align-items: center;\n}\n\n.count {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 20px;\n height: 20px;\n padding: 0 6px;\n border-radius: var(--gnome-radius-pill);\n font-size: var(--gnome-font-size-caption, 0.875rem);\n font-weight: var(--gnome-font-weight-semibold, 600);\n line-height: 1;\n\n /* Inactive: dim pill */\n background-color: rgb(0 0 0 / 0.12);\n color: var(--gnome-sidebar-fg-color, rgb(0 0 0 / 0.8));\n}\n\n.active .count {\n /* Active: white pill on accent */\n background-color: rgb(255 255 255 / 0.25);\n color: var(--gnome-accent-fg-color, #fff);\n}\n\n/* ─── Dark mode ─────────────────────────────────────────────────────────────── */\n\n@media (prefers-color-scheme: dark) {\n .sidebar {\n border-right-color: rgb(255 255 255 / 0.1);\n }\n\n .header,\n .footer {\n border-color: rgb(255 255 255 / 0.08);\n }\n\n .itemBtn:hover:not(:disabled, .active) {\n background-color: color-mix(in srgb, var(--gnome-sidebar-bg-color, #303030) 85%, white 15%);\n }\n\n .itemBtn:active:not(:disabled, .active) {\n background-color: color-mix(in srgb, var(--gnome-sidebar-bg-color, #303030) 75%, white 25%);\n }\n\n .count {\n background-color: rgb(255 255 255 / 0.12);\n color: var(--gnome-sidebar-fg-color, rgb(255 255 255 / 0.87));\n }\n}\n\n/* ─── Reduced motion ────────────────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .itemBtn {\n transition: none;\n }\n}\n"],"mappings":""}
@@ -1,18 +1,18 @@
1
1
  var e = {
2
- sidebar: "_sidebar_1pj3d_3",
3
- sidebarCollapsed: "_sidebarCollapsed_1pj3d_15",
4
- itemBtn: "_itemBtn_1pj3d_19",
5
- header: "_header_1pj3d_26",
6
- footer: "_footer_1pj3d_31",
7
- noHeaderSeparator: "_noHeaderSeparator_1pj3d_36",
8
- noFooterSeparator: "_noFooterSeparator_1pj3d_40",
9
- list: "_list_1pj3d_46",
10
- item: "_item_1pj3d_19",
11
- active: "_active_1pj3d_92",
12
- itemIcon: "_itemIcon_1pj3d_130",
13
- itemLabel: "_itemLabel_1pj3d_143",
14
- itemSuffix: "_itemSuffix_1pj3d_153",
15
- count: "_count_1pj3d_160"
2
+ sidebar: "_sidebar_wza63_3",
3
+ sidebarCollapsed: "_sidebarCollapsed_wza63_15",
4
+ itemBtn: "_itemBtn_wza63_19",
5
+ header: "_header_wza63_26",
6
+ footer: "_footer_wza63_31",
7
+ noHeaderSeparator: "_noHeaderSeparator_wza63_36",
8
+ noFooterSeparator: "_noFooterSeparator_wza63_40",
9
+ list: "_list_wza63_46",
10
+ item: "_item_wza63_19",
11
+ active: "_active_wza63_87",
12
+ itemIcon: "_itemIcon_wza63_125",
13
+ itemLabel: "_itemLabel_wza63_138",
14
+ itemSuffix: "_itemSuffix_wza63_148",
15
+ count: "_count_wza63_155"
16
16
  };
17
17
  //#endregion
18
18
  export { e as default };