@gnome-ui/react 1.44.0 → 1.45.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 (624) hide show
  1. package/README.md +7 -1
  2. package/dist/components/AboutDialog/AboutDialog.cjs +1 -1
  3. package/dist/components/AboutDialog/AboutDialog.cjs.map +1 -1
  4. package/dist/components/AboutDialog/AboutDialog.js +1 -1
  5. package/dist/components/AboutDialog/AboutDialog.js.map +1 -1
  6. package/dist/components/AboutDialog/AboutDialog.module.css.cjs +1 -1
  7. package/dist/components/AboutDialog/AboutDialog.module.css.cjs.map +1 -1
  8. package/dist/components/AboutDialog/AboutDialog.module.css.js +3 -3
  9. package/dist/components/AboutDialog/AboutDialog.module.css.js.map +1 -1
  10. package/dist/components/AboutDialog/index.d.ts +1 -1
  11. package/dist/components/ActionRow/ActionRow.cjs.map +1 -1
  12. package/dist/components/ActionRow/ActionRow.d.ts +1 -1
  13. package/dist/components/ActionRow/ActionRow.js.map +1 -1
  14. package/dist/components/ActionRow/ActionRow.module.css.cjs +1 -1
  15. package/dist/components/ActionRow/ActionRow.module.css.cjs.map +1 -1
  16. package/dist/components/ActionRow/ActionRow.module.css.js +9 -9
  17. package/dist/components/ActionRow/ActionRow.module.css.js.map +1 -1
  18. package/dist/components/ActionRow/index.d.ts +1 -1
  19. package/dist/components/Avatar/Avatar.cjs.map +1 -1
  20. package/dist/components/Avatar/Avatar.d.ts +2 -2
  21. package/dist/components/Avatar/Avatar.js.map +1 -1
  22. package/dist/components/Avatar/Avatar.module.css.cjs +1 -1
  23. package/dist/components/Avatar/Avatar.module.css.cjs.map +1 -1
  24. package/dist/components/Avatar/Avatar.module.css.js +16 -16
  25. package/dist/components/Avatar/Avatar.module.css.js.map +1 -1
  26. package/dist/components/Avatar/index.d.ts +1 -1
  27. package/dist/components/AvatarRotator/AvatarRotator.cjs.map +1 -1
  28. package/dist/components/AvatarRotator/AvatarRotator.js.map +1 -1
  29. package/dist/components/AvatarRotator/index.d.ts +1 -1
  30. package/dist/components/Badge/Badge.cjs.map +1 -1
  31. package/dist/components/Badge/Badge.d.ts +1 -1
  32. package/dist/components/Badge/Badge.js.map +1 -1
  33. package/dist/components/Badge/Badge.module.css.cjs +1 -1
  34. package/dist/components/Badge/Badge.module.css.cjs.map +1 -1
  35. package/dist/components/Badge/Badge.module.css.js +9 -9
  36. package/dist/components/Badge/Badge.module.css.js.map +1 -1
  37. package/dist/components/Badge/index.d.ts +1 -1
  38. package/dist/components/Banner/Banner.cjs.map +1 -1
  39. package/dist/components/Banner/Banner.d.ts +1 -1
  40. package/dist/components/Banner/Banner.js.map +1 -1
  41. package/dist/components/Banner/Banner.module.css.cjs +1 -1
  42. package/dist/components/Banner/Banner.module.css.cjs.map +1 -1
  43. package/dist/components/Banner/Banner.module.css.js +5 -5
  44. package/dist/components/Banner/Banner.module.css.js.map +1 -1
  45. package/dist/components/Banner/index.d.ts +1 -1
  46. package/dist/components/Bin/Bin.cjs.map +1 -1
  47. package/dist/components/Bin/Bin.js.map +1 -1
  48. package/dist/components/Bin/index.d.ts +1 -1
  49. package/dist/components/Blockquote/Blockquote.cjs.map +1 -1
  50. package/dist/components/Blockquote/Blockquote.d.ts +1 -1
  51. package/dist/components/Blockquote/Blockquote.js.map +1 -1
  52. package/dist/components/Blockquote/Blockquote.module.css.cjs +1 -1
  53. package/dist/components/Blockquote/Blockquote.module.css.cjs.map +1 -1
  54. package/dist/components/Blockquote/Blockquote.module.css.js +11 -11
  55. package/dist/components/Blockquote/Blockquote.module.css.js.map +1 -1
  56. package/dist/components/Blockquote/index.d.ts +1 -1
  57. package/dist/components/BottomSheet/BottomSheet.cjs.map +1 -1
  58. package/dist/components/BottomSheet/BottomSheet.d.ts +1 -1
  59. package/dist/components/BottomSheet/BottomSheet.js.map +1 -1
  60. package/dist/components/BottomSheet/BottomSheet.module.css.cjs +1 -1
  61. package/dist/components/BottomSheet/BottomSheet.module.css.cjs.map +1 -1
  62. package/dist/components/BottomSheet/BottomSheet.module.css.js +3 -3
  63. package/dist/components/BottomSheet/BottomSheet.module.css.js.map +1 -1
  64. package/dist/components/BottomSheet/index.d.ts +1 -1
  65. package/dist/components/Box/Box.cjs.map +1 -1
  66. package/dist/components/Box/Box.d.ts +3 -3
  67. package/dist/components/Box/Box.js.map +1 -1
  68. package/dist/components/Box/index.d.ts +1 -1
  69. package/dist/components/BoxedList/BoxedList.cjs +1 -1
  70. package/dist/components/BoxedList/BoxedList.cjs.map +1 -1
  71. package/dist/components/BoxedList/BoxedList.d.ts +1 -1
  72. package/dist/components/BoxedList/BoxedList.js +0 -1
  73. package/dist/components/BoxedList/BoxedList.js.map +1 -1
  74. package/dist/components/BoxedList/BoxedList.module.css.cjs +1 -1
  75. package/dist/components/BoxedList/BoxedList.module.css.cjs.map +1 -1
  76. package/dist/components/BoxedList/BoxedList.module.css.js +5 -5
  77. package/dist/components/BoxedList/BoxedList.module.css.js.map +1 -1
  78. package/dist/components/BoxedList/index.d.ts +1 -1
  79. package/dist/components/BreakpointBin/BreakpointBin.cjs +1 -1
  80. package/dist/components/BreakpointBin/BreakpointBin.cjs.map +1 -1
  81. package/dist/components/BreakpointBin/BreakpointBin.d.ts +1 -1
  82. package/dist/components/BreakpointBin/BreakpointBin.js +1 -1
  83. package/dist/components/BreakpointBin/BreakpointBin.js.map +1 -1
  84. package/dist/components/BreakpointBin/index.d.ts +1 -1
  85. package/dist/components/Button/Button.cjs.map +1 -1
  86. package/dist/components/Button/Button.d.ts +3 -3
  87. package/dist/components/Button/Button.js.map +1 -1
  88. package/dist/components/Button/Button.module.css.cjs +1 -1
  89. package/dist/components/Button/Button.module.css.cjs.map +1 -1
  90. package/dist/components/Button/Button.module.css.js +11 -11
  91. package/dist/components/Button/Button.module.css.js.map +1 -1
  92. package/dist/components/Button/index.d.ts +1 -1
  93. package/dist/components/ButtonContent/ButtonContent.cjs.map +1 -1
  94. package/dist/components/ButtonContent/ButtonContent.d.ts +1 -1
  95. package/dist/components/ButtonContent/ButtonContent.js.map +1 -1
  96. package/dist/components/ButtonContent/index.d.ts +1 -1
  97. package/dist/components/ButtonRow/ButtonRow.cjs.map +1 -1
  98. package/dist/components/ButtonRow/ButtonRow.d.ts +1 -1
  99. package/dist/components/ButtonRow/ButtonRow.js.map +1 -1
  100. package/dist/components/ButtonRow/ButtonRow.module.css.cjs +1 -1
  101. package/dist/components/ButtonRow/ButtonRow.module.css.cjs.map +1 -1
  102. package/dist/components/ButtonRow/ButtonRow.module.css.js +7 -7
  103. package/dist/components/ButtonRow/ButtonRow.module.css.js.map +1 -1
  104. package/dist/components/ButtonRow/index.d.ts +1 -1
  105. package/dist/components/Card/Card.cjs.map +1 -1
  106. package/dist/components/Card/Card.d.ts +1 -1
  107. package/dist/components/Card/Card.js.map +1 -1
  108. package/dist/components/Card/Card.module.css.cjs +1 -1
  109. package/dist/components/Card/Card.module.css.cjs.map +1 -1
  110. package/dist/components/Card/Card.module.css.js +5 -5
  111. package/dist/components/Card/Card.module.css.js.map +1 -1
  112. package/dist/components/Card/index.d.ts +1 -1
  113. package/dist/components/Carousel/Carousel.cjs +1 -1
  114. package/dist/components/Carousel/Carousel.cjs.map +1 -1
  115. package/dist/components/Carousel/Carousel.d.ts +1 -1
  116. package/dist/components/Carousel/Carousel.js +7 -6
  117. package/dist/components/Carousel/Carousel.js.map +1 -1
  118. package/dist/components/Carousel/Carousel.module.css.cjs +1 -1
  119. package/dist/components/Carousel/Carousel.module.css.cjs.map +1 -1
  120. package/dist/components/Carousel/Carousel.module.css.js +10 -10
  121. package/dist/components/Carousel/Carousel.module.css.js.map +1 -1
  122. package/dist/components/Carousel/index.d.ts +1 -1
  123. package/dist/components/CheckRow/CheckRow.cjs.map +1 -1
  124. package/dist/components/CheckRow/CheckRow.d.ts +1 -1
  125. package/dist/components/CheckRow/CheckRow.js.map +1 -1
  126. package/dist/components/CheckRow/CheckRow.module.css.cjs +1 -1
  127. package/dist/components/CheckRow/CheckRow.module.css.cjs.map +1 -1
  128. package/dist/components/CheckRow/CheckRow.module.css.js +10 -10
  129. package/dist/components/CheckRow/CheckRow.module.css.js.map +1 -1
  130. package/dist/components/CheckRow/index.d.ts +1 -1
  131. package/dist/components/Checkbox/Checkbox.cjs.map +1 -1
  132. package/dist/components/Checkbox/Checkbox.d.ts +2 -2
  133. package/dist/components/Checkbox/Checkbox.js.map +1 -1
  134. package/dist/components/Checkbox/Checkbox.module.css.cjs +1 -1
  135. package/dist/components/Checkbox/Checkbox.module.css.cjs.map +1 -1
  136. package/dist/components/Checkbox/Checkbox.module.css.js +1 -1
  137. package/dist/components/Checkbox/Checkbox.module.css.js.map +1 -1
  138. package/dist/components/Checkbox/index.d.ts +1 -1
  139. package/dist/components/Chip/Chip.cjs.map +1 -1
  140. package/dist/components/Chip/Chip.d.ts +1 -1
  141. package/dist/components/Chip/Chip.js.map +1 -1
  142. package/dist/components/Chip/Chip.module.css.cjs +1 -1
  143. package/dist/components/Chip/Chip.module.css.cjs.map +1 -1
  144. package/dist/components/Chip/Chip.module.css.js +7 -7
  145. package/dist/components/Chip/Chip.module.css.js.map +1 -1
  146. package/dist/components/Chip/index.d.ts +1 -1
  147. package/dist/components/Clamp/Clamp.cjs.map +1 -1
  148. package/dist/components/Clamp/Clamp.js.map +1 -1
  149. package/dist/components/Clamp/index.d.ts +1 -1
  150. package/dist/components/ColorPicker/ColorPicker.cjs.map +1 -1
  151. package/dist/components/ColorPicker/ColorPicker.d.ts +6 -6
  152. package/dist/components/ColorPicker/ColorPicker.js.map +1 -1
  153. package/dist/components/ColorPicker/ColorPicker.module.css.cjs +1 -1
  154. package/dist/components/ColorPicker/ColorPicker.module.css.cjs.map +1 -1
  155. package/dist/components/ColorPicker/ColorPicker.module.css.js +4 -4
  156. package/dist/components/ColorPicker/ColorPicker.module.css.js.map +1 -1
  157. package/dist/components/ColorPicker/index.d.ts +1 -1
  158. package/dist/components/ColumnView/ColumnView.cjs +1 -1
  159. package/dist/components/ColumnView/ColumnView.cjs.map +1 -1
  160. package/dist/components/ColumnView/ColumnView.d.ts +3 -3
  161. package/dist/components/ColumnView/ColumnView.js +2 -5
  162. package/dist/components/ColumnView/ColumnView.js.map +1 -1
  163. package/dist/components/ColumnView/ColumnView.module.css.cjs +1 -1
  164. package/dist/components/ColumnView/ColumnView.module.css.cjs.map +1 -1
  165. package/dist/components/ColumnView/ColumnView.module.css.js +22 -22
  166. package/dist/components/ColumnView/ColumnView.module.css.js.map +1 -1
  167. package/dist/components/ColumnView/index.d.ts +1 -1
  168. package/dist/components/ComboRow/ComboRow.cjs +1 -1
  169. package/dist/components/ComboRow/ComboRow.cjs.map +1 -1
  170. package/dist/components/ComboRow/ComboRow.d.ts +1 -1
  171. package/dist/components/ComboRow/ComboRow.js +0 -2
  172. package/dist/components/ComboRow/ComboRow.js.map +1 -1
  173. package/dist/components/ComboRow/ComboRow.module.css.cjs +1 -1
  174. package/dist/components/ComboRow/ComboRow.module.css.cjs.map +1 -1
  175. package/dist/components/ComboRow/ComboRow.module.css.js +3 -3
  176. package/dist/components/ComboRow/ComboRow.module.css.js.map +1 -1
  177. package/dist/components/ComboRow/index.d.ts +1 -1
  178. package/dist/components/ContributionGraph/ContributionGraph.cjs +1 -1
  179. package/dist/components/ContributionGraph/ContributionGraph.cjs.map +1 -1
  180. package/dist/components/ContributionGraph/ContributionGraph.js +41 -41
  181. package/dist/components/ContributionGraph/ContributionGraph.js.map +1 -1
  182. package/dist/components/ContributionGraph/index.d.ts +1 -1
  183. package/dist/components/CountDownTimer/CountDownTimer.cjs.map +1 -1
  184. package/dist/components/CountDownTimer/CountDownTimer.d.ts +3 -3
  185. package/dist/components/CountDownTimer/CountDownTimer.js.map +1 -1
  186. package/dist/components/CountDownTimer/index.d.ts +1 -1
  187. package/dist/components/Dialog/Dialog.cjs.map +1 -1
  188. package/dist/components/Dialog/Dialog.d.ts +4 -4
  189. package/dist/components/Dialog/Dialog.js.map +1 -1
  190. package/dist/components/Dialog/Dialog.module.css.cjs +1 -1
  191. package/dist/components/Dialog/Dialog.module.css.cjs.map +1 -1
  192. package/dist/components/Dialog/Dialog.module.css.js +6 -6
  193. package/dist/components/Dialog/Dialog.module.css.js.map +1 -1
  194. package/dist/components/Dialog/dialogUtils.cjs.map +1 -1
  195. package/dist/components/Dialog/dialogUtils.js.map +1 -1
  196. package/dist/components/Dialog/index.d.ts +1 -1
  197. package/dist/components/Drawer/Drawer.cjs +1 -1
  198. package/dist/components/Drawer/Drawer.cjs.map +1 -1
  199. package/dist/components/Drawer/Drawer.d.ts +3 -3
  200. package/dist/components/Drawer/Drawer.js +49 -38
  201. package/dist/components/Drawer/Drawer.js.map +1 -1
  202. package/dist/components/Drawer/Drawer.module.css.cjs +1 -1
  203. package/dist/components/Drawer/Drawer.module.css.cjs.map +1 -1
  204. package/dist/components/Drawer/Drawer.module.css.js +7 -6
  205. package/dist/components/Drawer/Drawer.module.css.js.map +1 -1
  206. package/dist/components/Drawer/index.d.ts +1 -1
  207. package/dist/components/Dropdown/Dropdown.cjs.map +1 -1
  208. package/dist/components/Dropdown/Dropdown.d.ts +2 -2
  209. package/dist/components/Dropdown/Dropdown.js.map +1 -1
  210. package/dist/components/Dropdown/Dropdown.module.css.cjs +1 -1
  211. package/dist/components/Dropdown/Dropdown.module.css.cjs.map +1 -1
  212. package/dist/components/Dropdown/Dropdown.module.css.js +3 -3
  213. package/dist/components/Dropdown/Dropdown.module.css.js.map +1 -1
  214. package/dist/components/Dropdown/index.d.ts +1 -1
  215. package/dist/components/EntryRow/EntryRow.cjs.map +1 -1
  216. package/dist/components/EntryRow/EntryRow.js.map +1 -1
  217. package/dist/components/EntryRow/EntryRow.module.css.cjs +1 -1
  218. package/dist/components/EntryRow/EntryRow.module.css.cjs.map +1 -1
  219. package/dist/components/EntryRow/EntryRow.module.css.js +10 -10
  220. package/dist/components/EntryRow/EntryRow.module.css.js.map +1 -1
  221. package/dist/components/EntryRow/index.d.ts +1 -1
  222. package/dist/components/ExpanderRow/ExpanderRow.cjs.map +1 -1
  223. package/dist/components/ExpanderRow/ExpanderRow.js.map +1 -1
  224. package/dist/components/ExpanderRow/ExpanderRow.module.css.cjs +1 -1
  225. package/dist/components/ExpanderRow/ExpanderRow.module.css.cjs.map +1 -1
  226. package/dist/components/ExpanderRow/ExpanderRow.module.css.js +14 -14
  227. package/dist/components/ExpanderRow/ExpanderRow.module.css.js.map +1 -1
  228. package/dist/components/ExpanderRow/index.d.ts +1 -1
  229. package/dist/components/Footer/Footer.cjs.map +1 -1
  230. package/dist/components/Footer/Footer.js.map +1 -1
  231. package/dist/components/Footer/index.d.ts +1 -1
  232. package/dist/components/Frame/Frame.cjs.map +1 -1
  233. package/dist/components/Frame/Frame.js.map +1 -1
  234. package/dist/components/Frame/index.d.ts +1 -1
  235. package/dist/components/GnomeProvider/GnomeContext.cjs.map +1 -1
  236. package/dist/components/GnomeProvider/GnomeContext.d.ts +5 -5
  237. package/dist/components/GnomeProvider/GnomeContext.js.map +1 -1
  238. package/dist/components/GnomeProvider/GnomeProvider.cjs.map +1 -1
  239. package/dist/components/GnomeProvider/GnomeProvider.js.map +1 -1
  240. package/dist/components/HeaderBar/HeaderBar.cjs.map +1 -1
  241. package/dist/components/HeaderBar/HeaderBar.d.ts +1 -1
  242. package/dist/components/HeaderBar/HeaderBar.js.map +1 -1
  243. package/dist/components/HeaderBar/index.d.ts +1 -1
  244. package/dist/components/Icon/Icon.cjs.map +1 -1
  245. package/dist/components/Icon/Icon.d.ts +2 -2
  246. package/dist/components/Icon/Icon.js.map +1 -1
  247. package/dist/components/Icon/index.d.ts +1 -1
  248. package/dist/components/IconButton/IconButton.cjs.map +1 -1
  249. package/dist/components/IconButton/IconButton.d.ts +2 -2
  250. package/dist/components/IconButton/IconButton.js.map +1 -1
  251. package/dist/components/IconButton/index.d.ts +1 -1
  252. package/dist/components/InlineViewSwitcher/InlineViewSwitcher.cjs +1 -1
  253. package/dist/components/InlineViewSwitcher/InlineViewSwitcher.cjs.map +1 -1
  254. package/dist/components/InlineViewSwitcher/InlineViewSwitcher.d.ts +3 -3
  255. package/dist/components/InlineViewSwitcher/InlineViewSwitcher.js +8 -8
  256. package/dist/components/InlineViewSwitcher/InlineViewSwitcher.js.map +1 -1
  257. package/dist/components/InlineViewSwitcher/InlineViewSwitcher.module.css.cjs +1 -1
  258. package/dist/components/InlineViewSwitcher/InlineViewSwitcher.module.css.cjs.map +1 -1
  259. package/dist/components/InlineViewSwitcher/InlineViewSwitcher.module.css.js +10 -10
  260. package/dist/components/InlineViewSwitcher/InlineViewSwitcher.module.css.js.map +1 -1
  261. package/dist/components/InlineViewSwitcher/InlineViewSwitcherItem.cjs.map +1 -1
  262. package/dist/components/InlineViewSwitcher/InlineViewSwitcherItem.d.ts +1 -1
  263. package/dist/components/InlineViewSwitcher/InlineViewSwitcherItem.js.map +1 -1
  264. package/dist/components/InlineViewSwitcher/index.d.ts +2 -2
  265. package/dist/components/Link/Link.cjs.map +1 -1
  266. package/dist/components/Link/Link.js.map +1 -1
  267. package/dist/components/Link/Link.module.css.cjs +1 -1
  268. package/dist/components/Link/Link.module.css.cjs.map +1 -1
  269. package/dist/components/Link/Link.module.css.js +2 -2
  270. package/dist/components/Link/Link.module.css.js.map +1 -1
  271. package/dist/components/Link/index.d.ts +1 -1
  272. package/dist/components/LinkedGroup/LinkedGroup.cjs.map +1 -1
  273. package/dist/components/LinkedGroup/LinkedGroup.js.map +1 -1
  274. package/dist/components/LinkedGroup/LinkedGroup.module.css.cjs +1 -1
  275. package/dist/components/LinkedGroup/LinkedGroup.module.css.cjs.map +1 -1
  276. package/dist/components/LinkedGroup/LinkedGroup.module.css.js +2 -2
  277. package/dist/components/LinkedGroup/LinkedGroup.module.css.js.map +1 -1
  278. package/dist/components/LinkedGroup/index.d.ts +1 -1
  279. package/dist/components/NavigationSplitView/NavigationSplitView.cjs.map +1 -1
  280. package/dist/components/NavigationSplitView/NavigationSplitView.d.ts +1 -1
  281. package/dist/components/NavigationSplitView/NavigationSplitView.js.map +1 -1
  282. package/dist/components/NavigationSplitView/index.d.ts +1 -1
  283. package/dist/components/NavigationView/NavigationView.cjs.map +1 -1
  284. package/dist/components/NavigationView/NavigationView.d.ts +2 -2
  285. package/dist/components/NavigationView/NavigationView.js.map +1 -1
  286. package/dist/components/NavigationView/NavigationView.module.css.cjs +1 -1
  287. package/dist/components/NavigationView/NavigationView.module.css.cjs.map +1 -1
  288. package/dist/components/NavigationView/NavigationView.module.css.js +3 -3
  289. package/dist/components/NavigationView/NavigationView.module.css.js.map +1 -1
  290. package/dist/components/NavigationView/index.d.ts +2 -2
  291. package/dist/components/OverlaySplitView/OverlaySplitView.cjs.map +1 -1
  292. package/dist/components/OverlaySplitView/OverlaySplitView.d.ts +2 -2
  293. package/dist/components/OverlaySplitView/OverlaySplitView.js.map +1 -1
  294. package/dist/components/OverlaySplitView/OverlaySplitView.module.css.cjs +1 -1
  295. package/dist/components/OverlaySplitView/OverlaySplitView.module.css.cjs.map +1 -1
  296. package/dist/components/OverlaySplitView/OverlaySplitView.module.css.js +12 -12
  297. package/dist/components/OverlaySplitView/OverlaySplitView.module.css.js.map +1 -1
  298. package/dist/components/OverlaySplitView/index.d.ts +1 -1
  299. package/dist/components/PasswordEntryRow/PasswordEntryRow.cjs.map +1 -1
  300. package/dist/components/PasswordEntryRow/PasswordEntryRow.d.ts +1 -1
  301. package/dist/components/PasswordEntryRow/PasswordEntryRow.js.map +1 -1
  302. package/dist/components/PasswordEntryRow/PasswordEntryRow.module.css.cjs +1 -1
  303. package/dist/components/PasswordEntryRow/PasswordEntryRow.module.css.cjs.map +1 -1
  304. package/dist/components/PasswordEntryRow/PasswordEntryRow.module.css.js +1 -1
  305. package/dist/components/PasswordEntryRow/PasswordEntryRow.module.css.js.map +1 -1
  306. package/dist/components/PasswordEntryRow/index.d.ts +1 -1
  307. package/dist/components/PathBar/PathBar.cjs.map +1 -1
  308. package/dist/components/PathBar/PathBar.js.map +1 -1
  309. package/dist/components/PathBar/PathBar.module.css.cjs +1 -1
  310. package/dist/components/PathBar/PathBar.module.css.cjs.map +1 -1
  311. package/dist/components/PathBar/PathBar.module.css.js +7 -7
  312. package/dist/components/PathBar/PathBar.module.css.js.map +1 -1
  313. package/dist/components/PathBar/index.d.ts +1 -1
  314. package/dist/components/Popover/Popover.cjs.map +1 -1
  315. package/dist/components/Popover/Popover.d.ts +2 -2
  316. package/dist/components/Popover/Popover.js.map +1 -1
  317. package/dist/components/Popover/Popover.module.css.cjs +1 -1
  318. package/dist/components/Popover/Popover.module.css.cjs.map +1 -1
  319. package/dist/components/Popover/Popover.module.css.js +7 -7
  320. package/dist/components/Popover/Popover.module.css.js.map +1 -1
  321. package/dist/components/Popover/index.d.ts +1 -1
  322. package/dist/components/PreferencesDialog/PreferencesDialog.cjs +1 -1
  323. package/dist/components/PreferencesDialog/PreferencesDialog.cjs.map +1 -1
  324. package/dist/components/PreferencesDialog/PreferencesDialog.d.ts +1 -1
  325. package/dist/components/PreferencesDialog/PreferencesDialog.js +0 -1
  326. package/dist/components/PreferencesDialog/PreferencesDialog.js.map +1 -1
  327. package/dist/components/PreferencesDialog/PreferencesDialog.module.css.cjs +1 -1
  328. package/dist/components/PreferencesDialog/PreferencesDialog.module.css.cjs.map +1 -1
  329. package/dist/components/PreferencesDialog/PreferencesDialog.module.css.js +3 -3
  330. package/dist/components/PreferencesDialog/PreferencesDialog.module.css.js.map +1 -1
  331. package/dist/components/PreferencesDialog/index.d.ts +1 -1
  332. package/dist/components/PreferencesGroup/PreferencesGroup.cjs.map +1 -1
  333. package/dist/components/PreferencesGroup/PreferencesGroup.js.map +1 -1
  334. package/dist/components/PreferencesGroup/index.d.ts +1 -1
  335. package/dist/components/PreferencesPage/PreferencesPage.cjs.map +1 -1
  336. package/dist/components/PreferencesPage/PreferencesPage.js.map +1 -1
  337. package/dist/components/PreferencesPage/index.d.ts +1 -1
  338. package/dist/components/ProgressBar/ProgressBar.cjs.map +1 -1
  339. package/dist/components/ProgressBar/ProgressBar.d.ts +4 -4
  340. package/dist/components/ProgressBar/ProgressBar.js.map +1 -1
  341. package/dist/components/ProgressBar/ProgressBar.module.css.cjs +1 -1
  342. package/dist/components/ProgressBar/ProgressBar.module.css.cjs.map +1 -1
  343. package/dist/components/ProgressBar/ProgressBar.module.css.js +8 -8
  344. package/dist/components/ProgressBar/ProgressBar.module.css.js.map +1 -1
  345. package/dist/components/ProgressBar/index.d.ts +1 -1
  346. package/dist/components/RadioButton/RadioButton.cjs.map +1 -1
  347. package/dist/components/RadioButton/RadioButton.d.ts +2 -2
  348. package/dist/components/RadioButton/RadioButton.js.map +1 -1
  349. package/dist/components/RadioButton/RadioButton.module.css.cjs +1 -1
  350. package/dist/components/RadioButton/RadioButton.module.css.cjs.map +1 -1
  351. package/dist/components/RadioButton/RadioButton.module.css.js +1 -1
  352. package/dist/components/RadioButton/RadioButton.module.css.js.map +1 -1
  353. package/dist/components/RadioButton/index.d.ts +1 -1
  354. package/dist/components/SearchBar/SearchBar.cjs +1 -1
  355. package/dist/components/SearchBar/SearchBar.cjs.map +1 -1
  356. package/dist/components/SearchBar/SearchBar.d.ts +1 -1
  357. package/dist/components/SearchBar/SearchBar.js +1 -3
  358. package/dist/components/SearchBar/SearchBar.js.map +1 -1
  359. package/dist/components/SearchBar/SearchBar.module.css.cjs +1 -1
  360. package/dist/components/SearchBar/SearchBar.module.css.cjs.map +1 -1
  361. package/dist/components/SearchBar/SearchBar.module.css.js +13 -13
  362. package/dist/components/SearchBar/SearchBar.module.css.js.map +1 -1
  363. package/dist/components/SearchBar/index.d.ts +1 -1
  364. package/dist/components/SegmentedBar/SegmentedBar.cjs +2 -0
  365. package/dist/components/SegmentedBar/SegmentedBar.cjs.map +1 -0
  366. package/dist/components/SegmentedBar/SegmentedBar.d.ts +42 -0
  367. package/dist/components/SegmentedBar/SegmentedBar.js +40 -0
  368. package/dist/components/SegmentedBar/SegmentedBar.js.map +1 -0
  369. package/dist/components/SegmentedBar/SegmentedBar.module.css.cjs +2 -0
  370. package/dist/components/SegmentedBar/SegmentedBar.module.css.cjs.map +1 -0
  371. package/dist/components/SegmentedBar/SegmentedBar.module.css.js +18 -0
  372. package/dist/components/SegmentedBar/SegmentedBar.module.css.js.map +1 -0
  373. package/dist/components/SegmentedBar/index.d.ts +2 -0
  374. package/dist/components/SegmentedBar.cjs +1 -0
  375. package/dist/components/SegmentedBar.d.ts +2 -0
  376. package/dist/components/SegmentedBar.js +2 -0
  377. package/dist/components/Separator/Separator.cjs.map +1 -1
  378. package/dist/components/Separator/Separator.d.ts +1 -1
  379. package/dist/components/Separator/Separator.js.map +1 -1
  380. package/dist/components/Separator/index.d.ts +1 -1
  381. package/dist/components/ShortcutLabel/ShortcutLabel.cjs.map +1 -1
  382. package/dist/components/ShortcutLabel/ShortcutLabel.js.map +1 -1
  383. package/dist/components/ShortcutLabel/index.d.ts +1 -1
  384. package/dist/components/ShortcutsDialog/ShortcutsDialog.cjs +1 -1
  385. package/dist/components/ShortcutsDialog/ShortcutsDialog.cjs.map +1 -1
  386. package/dist/components/ShortcutsDialog/ShortcutsDialog.js +0 -1
  387. package/dist/components/ShortcutsDialog/ShortcutsDialog.js.map +1 -1
  388. package/dist/components/ShortcutsDialog/ShortcutsDialog.module.css.cjs +1 -1
  389. package/dist/components/ShortcutsDialog/ShortcutsDialog.module.css.cjs.map +1 -1
  390. package/dist/components/ShortcutsDialog/ShortcutsDialog.module.css.js +3 -3
  391. package/dist/components/ShortcutsDialog/ShortcutsDialog.module.css.js.map +1 -1
  392. package/dist/components/ShortcutsDialog/index.d.ts +1 -1
  393. package/dist/components/Sidebar/Sidebar.cjs.map +1 -1
  394. package/dist/components/Sidebar/Sidebar.d.ts +2 -2
  395. package/dist/components/Sidebar/Sidebar.js.map +1 -1
  396. package/dist/components/Sidebar/Sidebar.module.css.cjs +1 -1
  397. package/dist/components/Sidebar/Sidebar.module.css.cjs.map +1 -1
  398. package/dist/components/Sidebar/Sidebar.module.css.js +2 -2
  399. package/dist/components/Sidebar/Sidebar.module.css.js.map +1 -1
  400. package/dist/components/Sidebar/SidebarItem.cjs.map +1 -1
  401. package/dist/components/Sidebar/SidebarItem.d.ts +1 -1
  402. package/dist/components/Sidebar/SidebarItem.js.map +1 -1
  403. package/dist/components/Sidebar/SidebarSection.cjs +1 -1
  404. package/dist/components/Sidebar/SidebarSection.cjs.map +1 -1
  405. package/dist/components/Sidebar/SidebarSection.d.ts +1 -1
  406. package/dist/components/Sidebar/SidebarSection.js +0 -1
  407. package/dist/components/Sidebar/SidebarSection.js.map +1 -1
  408. package/dist/components/Sidebar/index.d.ts +4 -4
  409. package/dist/components/Sidebar.cjs +1 -1
  410. package/dist/components/Sidebar.js +3 -3
  411. package/dist/components/Skeleton/Skeleton.cjs.map +1 -1
  412. package/dist/components/Skeleton/Skeleton.d.ts +1 -1
  413. package/dist/components/Skeleton/Skeleton.js.map +1 -1
  414. package/dist/components/Skeleton/Skeleton.module.css.cjs +1 -1
  415. package/dist/components/Skeleton/Skeleton.module.css.cjs.map +1 -1
  416. package/dist/components/Skeleton/Skeleton.module.css.js +7 -7
  417. package/dist/components/Skeleton/Skeleton.module.css.js.map +1 -1
  418. package/dist/components/Skeleton/index.d.ts +1 -1
  419. package/dist/components/Slider/Slider.cjs.map +1 -1
  420. package/dist/components/Slider/Slider.d.ts +5 -5
  421. package/dist/components/Slider/Slider.js.map +1 -1
  422. package/dist/components/Slider/Slider.module.css.cjs +1 -1
  423. package/dist/components/Slider/Slider.module.css.cjs.map +1 -1
  424. package/dist/components/Slider/Slider.module.css.js +9 -9
  425. package/dist/components/Slider/Slider.module.css.js.map +1 -1
  426. package/dist/components/Slider/index.d.ts +1 -1
  427. package/dist/components/SpinButton/SpinButton.cjs.map +1 -1
  428. package/dist/components/SpinButton/SpinButton.d.ts +4 -4
  429. package/dist/components/SpinButton/SpinButton.js.map +1 -1
  430. package/dist/components/SpinButton/SpinButton.module.css.cjs +1 -1
  431. package/dist/components/SpinButton/SpinButton.module.css.cjs.map +1 -1
  432. package/dist/components/SpinButton/SpinButton.module.css.js +4 -4
  433. package/dist/components/SpinButton/SpinButton.module.css.js.map +1 -1
  434. package/dist/components/SpinButton/index.d.ts +1 -1
  435. package/dist/components/SpinRow/SpinRow.cjs.map +1 -1
  436. package/dist/components/SpinRow/SpinRow.d.ts +1 -1
  437. package/dist/components/SpinRow/SpinRow.js.map +1 -1
  438. package/dist/components/SpinRow/SpinRow.module.css.cjs +1 -1
  439. package/dist/components/SpinRow/SpinRow.module.css.cjs.map +1 -1
  440. package/dist/components/SpinRow/SpinRow.module.css.js +9 -9
  441. package/dist/components/SpinRow/SpinRow.module.css.js.map +1 -1
  442. package/dist/components/SpinRow/index.d.ts +1 -1
  443. package/dist/components/Spinner/Spinner.cjs.map +1 -1
  444. package/dist/components/Spinner/Spinner.d.ts +1 -1
  445. package/dist/components/Spinner/Spinner.js.map +1 -1
  446. package/dist/components/Spinner/Spinner.module.css.cjs +1 -1
  447. package/dist/components/Spinner/Spinner.module.css.cjs.map +1 -1
  448. package/dist/components/Spinner/Spinner.module.css.js +5 -5
  449. package/dist/components/Spinner/Spinner.module.css.js.map +1 -1
  450. package/dist/components/Spinner/index.d.ts +1 -1
  451. package/dist/components/SplitButton/SplitButton.cjs.map +1 -1
  452. package/dist/components/SplitButton/SplitButton.d.ts +2 -2
  453. package/dist/components/SplitButton/SplitButton.js.map +1 -1
  454. package/dist/components/SplitButton/SplitButton.module.css.cjs +1 -1
  455. package/dist/components/SplitButton/SplitButton.module.css.cjs.map +1 -1
  456. package/dist/components/SplitButton/SplitButton.module.css.js +10 -10
  457. package/dist/components/SplitButton/SplitButton.module.css.js.map +1 -1
  458. package/dist/components/SplitButton/index.d.ts +1 -1
  459. package/dist/components/StatusBadge/StatusBadge.cjs.map +1 -1
  460. package/dist/components/StatusBadge/StatusBadge.d.ts +1 -1
  461. package/dist/components/StatusBadge/StatusBadge.js.map +1 -1
  462. package/dist/components/StatusBadge/StatusBadge.module.css.cjs +1 -1
  463. package/dist/components/StatusBadge/StatusBadge.module.css.cjs.map +1 -1
  464. package/dist/components/StatusBadge/StatusBadge.module.css.js +7 -7
  465. package/dist/components/StatusBadge/StatusBadge.module.css.js.map +1 -1
  466. package/dist/components/StatusBadge/index.d.ts +1 -1
  467. package/dist/components/StatusPage/StatusPage.cjs.map +1 -1
  468. package/dist/components/StatusPage/StatusPage.d.ts +1 -1
  469. package/dist/components/StatusPage/StatusPage.js.map +1 -1
  470. package/dist/components/StatusPage/index.d.ts +1 -1
  471. package/dist/components/Switch/Switch.cjs.map +1 -1
  472. package/dist/components/Switch/Switch.d.ts +2 -2
  473. package/dist/components/Switch/Switch.js.map +1 -1
  474. package/dist/components/Switch/Switch.module.css.cjs +1 -1
  475. package/dist/components/Switch/Switch.module.css.cjs.map +1 -1
  476. package/dist/components/Switch/Switch.module.css.js +1 -1
  477. package/dist/components/Switch/Switch.module.css.js.map +1 -1
  478. package/dist/components/Switch/index.d.ts +1 -1
  479. package/dist/components/SwitchRow/SwitchRow.cjs.map +1 -1
  480. package/dist/components/SwitchRow/SwitchRow.d.ts +1 -1
  481. package/dist/components/SwitchRow/SwitchRow.js.map +1 -1
  482. package/dist/components/SwitchRow/SwitchRow.module.css.cjs +1 -1
  483. package/dist/components/SwitchRow/SwitchRow.module.css.cjs.map +1 -1
  484. package/dist/components/SwitchRow/SwitchRow.module.css.js +9 -9
  485. package/dist/components/SwitchRow/SwitchRow.module.css.js.map +1 -1
  486. package/dist/components/SwitchRow/index.d.ts +1 -1
  487. package/dist/components/Tabs/TabBar.cjs +1 -1
  488. package/dist/components/Tabs/TabBar.cjs.map +1 -1
  489. package/dist/components/Tabs/TabBar.d.ts +2 -2
  490. package/dist/components/Tabs/TabBar.js +8 -8
  491. package/dist/components/Tabs/TabBar.js.map +1 -1
  492. package/dist/components/Tabs/TabItem.cjs +1 -1
  493. package/dist/components/Tabs/TabItem.cjs.map +1 -1
  494. package/dist/components/Tabs/TabItem.d.ts +4 -2
  495. package/dist/components/Tabs/TabItem.js +34 -32
  496. package/dist/components/Tabs/TabItem.js.map +1 -1
  497. package/dist/components/Tabs/TabPanel.cjs +1 -1
  498. package/dist/components/Tabs/TabPanel.cjs.map +1 -1
  499. package/dist/components/Tabs/TabPanel.js +0 -1
  500. package/dist/components/Tabs/TabPanel.js.map +1 -1
  501. package/dist/components/Tabs/Tabs.module.css.cjs +1 -1
  502. package/dist/components/Tabs/Tabs.module.css.cjs.map +1 -1
  503. package/dist/components/Tabs/Tabs.module.css.js +10 -9
  504. package/dist/components/Tabs/Tabs.module.css.js.map +1 -1
  505. package/dist/components/Tabs/index.d.ts +3 -3
  506. package/dist/components/TerminalView/TerminalView.cjs +1 -1
  507. package/dist/components/TerminalView/TerminalView.cjs.map +1 -1
  508. package/dist/components/TerminalView/TerminalView.d.ts +1 -1
  509. package/dist/components/TerminalView/TerminalView.js +1 -1
  510. package/dist/components/TerminalView/TerminalView.js.map +1 -1
  511. package/dist/components/TerminalView/index.d.ts +1 -1
  512. package/dist/components/Text/Text.cjs.map +1 -1
  513. package/dist/components/Text/Text.d.ts +2 -2
  514. package/dist/components/Text/Text.js.map +1 -1
  515. package/dist/components/Text/index.d.ts +1 -1
  516. package/dist/components/TextField/TextField.cjs.map +1 -1
  517. package/dist/components/TextField/TextField.d.ts +1 -1
  518. package/dist/components/TextField/TextField.js.map +1 -1
  519. package/dist/components/TextField/TextField.module.css.cjs +1 -1
  520. package/dist/components/TextField/TextField.module.css.cjs.map +1 -1
  521. package/dist/components/TextField/TextField.module.css.js +7 -7
  522. package/dist/components/TextField/TextField.module.css.js.map +1 -1
  523. package/dist/components/TextField/index.d.ts +1 -1
  524. package/dist/components/Timeline/Timeline.cjs.map +1 -1
  525. package/dist/components/Timeline/Timeline.d.ts +2 -2
  526. package/dist/components/Timeline/Timeline.js.map +1 -1
  527. package/dist/components/Timeline/index.d.ts +1 -1
  528. package/dist/components/Toast/Toast.cjs +1 -1
  529. package/dist/components/Toast/Toast.cjs.map +1 -1
  530. package/dist/components/Toast/Toast.d.ts +1 -1
  531. package/dist/components/Toast/Toast.js +39 -35
  532. package/dist/components/Toast/Toast.js.map +1 -1
  533. package/dist/components/Toast/Toast.module.css.cjs +1 -1
  534. package/dist/components/Toast/Toast.module.css.cjs.map +1 -1
  535. package/dist/components/Toast/Toast.module.css.js +2 -2
  536. package/dist/components/Toast/Toast.module.css.js.map +1 -1
  537. package/dist/components/Toast/Toaster.cjs.map +1 -1
  538. package/dist/components/Toast/Toaster.d.ts +1 -1
  539. package/dist/components/Toast/Toaster.js.map +1 -1
  540. package/dist/components/Toast/index.d.ts +2 -2
  541. package/dist/components/ToggleGroup/ToggleGroup.cjs +1 -1
  542. package/dist/components/ToggleGroup/ToggleGroup.cjs.map +1 -1
  543. package/dist/components/ToggleGroup/ToggleGroup.d.ts +2 -2
  544. package/dist/components/ToggleGroup/ToggleGroup.js +8 -8
  545. package/dist/components/ToggleGroup/ToggleGroup.js.map +1 -1
  546. package/dist/components/ToggleGroup/ToggleGroup.module.css.cjs +1 -1
  547. package/dist/components/ToggleGroup/ToggleGroup.module.css.cjs.map +1 -1
  548. package/dist/components/ToggleGroup/ToggleGroup.module.css.js +6 -6
  549. package/dist/components/ToggleGroup/ToggleGroup.module.css.js.map +1 -1
  550. package/dist/components/ToggleGroup/ToggleGroupItem.cjs.map +1 -1
  551. package/dist/components/ToggleGroup/ToggleGroupItem.d.ts +1 -1
  552. package/dist/components/ToggleGroup/ToggleGroupItem.js.map +1 -1
  553. package/dist/components/ToggleGroup/index.d.ts +2 -2
  554. package/dist/components/Toolbar/Spacer.cjs.map +1 -1
  555. package/dist/components/Toolbar/Spacer.d.ts +1 -2
  556. package/dist/components/Toolbar/Spacer.js.map +1 -1
  557. package/dist/components/Toolbar/Toolbar.cjs.map +1 -1
  558. package/dist/components/Toolbar/Toolbar.js.map +1 -1
  559. package/dist/components/Toolbar/index.d.ts +3 -3
  560. package/dist/components/Toolbar.cjs +1 -1
  561. package/dist/components/Toolbar.js +3 -3
  562. package/dist/components/ToolbarView/ToolbarView.cjs.map +1 -1
  563. package/dist/components/ToolbarView/ToolbarView.js.map +1 -1
  564. package/dist/components/ToolbarView/index.d.ts +1 -1
  565. package/dist/components/Tooltip/Tooltip.cjs +1 -1
  566. package/dist/components/Tooltip/Tooltip.cjs.map +1 -1
  567. package/dist/components/Tooltip/Tooltip.d.ts +2 -2
  568. package/dist/components/Tooltip/Tooltip.js +4 -4
  569. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  570. package/dist/components/Tooltip/Tooltip.module.css.cjs +1 -1
  571. package/dist/components/Tooltip/Tooltip.module.css.cjs.map +1 -1
  572. package/dist/components/Tooltip/Tooltip.module.css.js +6 -6
  573. package/dist/components/Tooltip/Tooltip.module.css.js.map +1 -1
  574. package/dist/components/Tooltip/index.d.ts +1 -1
  575. package/dist/components/ViewSwitcher/ViewSwitcher.cjs +1 -1
  576. package/dist/components/ViewSwitcher/ViewSwitcher.cjs.map +1 -1
  577. package/dist/components/ViewSwitcher/ViewSwitcher.d.ts +2 -2
  578. package/dist/components/ViewSwitcher/ViewSwitcher.js +8 -8
  579. package/dist/components/ViewSwitcher/ViewSwitcher.js.map +1 -1
  580. package/dist/components/ViewSwitcher/ViewSwitcher.module.css.cjs +1 -1
  581. package/dist/components/ViewSwitcher/ViewSwitcher.module.css.cjs.map +1 -1
  582. package/dist/components/ViewSwitcher/ViewSwitcher.module.css.js +5 -5
  583. package/dist/components/ViewSwitcher/ViewSwitcher.module.css.js.map +1 -1
  584. package/dist/components/ViewSwitcher/ViewSwitcherItem.cjs.map +1 -1
  585. package/dist/components/ViewSwitcher/ViewSwitcherItem.d.ts +1 -1
  586. package/dist/components/ViewSwitcher/ViewSwitcherItem.js.map +1 -1
  587. package/dist/components/ViewSwitcher/index.d.ts +2 -2
  588. package/dist/components/ViewSwitcherBar/ViewSwitcherBar.cjs.map +1 -1
  589. package/dist/components/ViewSwitcherBar/ViewSwitcherBar.js.map +1 -1
  590. package/dist/components/ViewSwitcherBar/ViewSwitcherBar.module.css.cjs +1 -1
  591. package/dist/components/ViewSwitcherBar/ViewSwitcherBar.module.css.cjs.map +1 -1
  592. package/dist/components/ViewSwitcherBar/ViewSwitcherBar.module.css.js +1 -1
  593. package/dist/components/ViewSwitcherBar/ViewSwitcherBar.module.css.js.map +1 -1
  594. package/dist/components/ViewSwitcherBar/index.d.ts +1 -1
  595. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebar.cjs +1 -1
  596. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebar.cjs.map +1 -1
  597. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebar.d.ts +2 -2
  598. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebar.js +8 -8
  599. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebar.js.map +1 -1
  600. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebar.module.css.cjs +1 -1
  601. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebar.module.css.cjs.map +1 -1
  602. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebar.module.css.js +14 -14
  603. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebar.module.css.js.map +1 -1
  604. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebarItem.cjs.map +1 -1
  605. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebarItem.d.ts +1 -1
  606. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebarItem.js.map +1 -1
  607. package/dist/components/ViewSwitcherSidebar/index.d.ts +2 -2
  608. package/dist/components/WindowTitle/WindowTitle.cjs.map +1 -1
  609. package/dist/components/WindowTitle/WindowTitle.js.map +1 -1
  610. package/dist/components/WindowTitle/index.d.ts +1 -1
  611. package/dist/components/WrapBox/WrapBox.cjs.map +1 -1
  612. package/dist/components/WrapBox/WrapBox.d.ts +2 -2
  613. package/dist/components/WrapBox/WrapBox.js.map +1 -1
  614. package/dist/components/WrapBox/index.d.ts +1 -1
  615. package/dist/hooks/index.d.ts +3 -3
  616. package/dist/hooks/useBreakpoint.cjs +1 -1
  617. package/dist/hooks/useBreakpoint.cjs.map +1 -1
  618. package/dist/hooks/useBreakpoint.js +12 -12
  619. package/dist/hooks/useBreakpoint.js.map +1 -1
  620. package/dist/index.cjs +1 -1
  621. package/dist/index.d.ts +153 -151
  622. package/dist/index.js +35 -34
  623. package/dist/style.css +1 -1
  624. package/package.json +6 -1
@@ -1 +1 @@
1
- {"version":3,"file":"SidebarItem.js","names":[],"sources":["../../../src/components/Sidebar/SidebarItem.tsx"],"sourcesContent":["import {\n useState,\n useRef,\n useEffect,\n useCallback,\n useContext,\n type ButtonHTMLAttributes,\n type DragEvent,\n type ReactNode,\n type MouseEvent,\n type KeyboardEvent,\n} from \"react\";\nimport { createPortal } from \"react-dom\";\nimport type { IconDefinition } from \"@gnome-ui/icons\";\nimport { Icon } from \"../Icon\";\nimport { Tooltip } from \"../Tooltip\";\nimport { useSidebarCollapsed, SidebarFilterContext } from \"./Sidebar\";\nimport styles from \"./Sidebar.module.css\";\n\nexport interface SidebarMenuEntry {\n /** Label shown in the context menu. */\n label: string;\n /** Called when the entry is clicked. */\n onClick: () => void;\n /** Renders the entry in red. Use for destructive actions. */\n destructive?: boolean;\n /** Disables the entry. */\n disabled?: boolean;\n}\n\nexport interface SidebarItemProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n /** Primary label. */\n label: string;\n /** Icon from `@gnome-ui/icons`. */\n icon?: IconDefinition;\n /** Marks this item as the currently active view. */\n active?: boolean;\n /**\n * Trailing widget — any ReactNode (badge, button, icon…).\n * Supersedes `badge` when both are provided.\n */\n suffix?: ReactNode;\n /**\n * @deprecated Use `suffix` instead.\n */\n badge?: ReactNode;\n /**\n * Short tooltip shown when hovering the item.\n * Automatically shown when the sidebar is `collapsed`.\n */\n tooltip?: string;\n /**\n * Context-menu entries shown on right-click or the Menu key.\n */\n menuItems?: SidebarMenuEntry[];\n /**\n * Called when a dragged item is dropped onto this row.\n * Mirrors `AdwSidebar` per-row drop target support (libadwaita 1.9).\n */\n onDrop?: (e: DragEvent<HTMLButtonElement>) => void;\n /**\n * MIME types this row accepts as drop targets (e.g. `[\"text/plain\"]`).\n * When provided, drops of other types are rejected via `e.preventDefault()`.\n * When omitted, all types are accepted.\n */\n acceptTypes?: string[];\n}\n\n/**\n * Individual navigation item inside a `Sidebar` or `SidebarSection`.\n *\n * **Tier 11 additions:**\n * - Automatically hidden when `Sidebar`'s `filter` / `searchable` is active\n * and the `label` does not match (case-insensitive substring).\n * - `onDrop` / `acceptTypes` — HTML5 drag-and-drop target support.\n */\nexport function SidebarItem({\n label,\n icon,\n active = false,\n suffix,\n badge,\n tooltip,\n menuItems,\n onDrop,\n acceptTypes,\n className,\n ...props\n}: SidebarItemProps) {\n const collapsed = useSidebarCollapsed();\n const filterValue = useContext(SidebarFilterContext);\n const trailing = suffix ?? badge;\n const effectiveTooltip = collapsed ? (tooltip ?? label) : tooltip;\n\n // ── Filter visibility ────────────────────────────────────────────────────\n const isFiltered =\n filterValue.length > 0 &&\n !label.toLowerCase().includes(filterValue.toLowerCase());\n\n // ── Drag-and-drop ────────────────────────────────────────────────────────\n const [isDragOver, setIsDragOver] = useState(false);\n\n const handleDragOver = (e: DragEvent<HTMLButtonElement>) => {\n if (!onDrop) return;\n if (acceptTypes?.length) {\n const accepted = acceptTypes.some((t) => e.dataTransfer.types.includes(t));\n if (!accepted) return;\n }\n e.preventDefault();\n setIsDragOver(true);\n };\n\n const handleDragLeave = () => setIsDragOver(false);\n\n const handleDrop = (e: DragEvent<HTMLButtonElement>) => {\n if (!onDrop) return;\n e.preventDefault();\n setIsDragOver(false);\n onDrop(e);\n };\n\n // ── Context menu ─────────────────────────────────────────────────────────\n const [menu, setMenu] = useState<{ x: number; y: number } | null>(null);\n const menuRef = useRef<HTMLDivElement>(null);\n\n const openMenu = useCallback((x: number, y: number) => setMenu({ x, y }), []);\n const closeMenu = useCallback(() => setMenu(null), []);\n\n useEffect(() => {\n if (!menu) return;\n const handleClick = (e: globalThis.MouseEvent) => {\n if (menuRef.current && !menuRef.current.contains(e.target as Node)) closeMenu();\n };\n const handleKey = (e: globalThis.KeyboardEvent) => {\n if (e.key === \"Escape\") closeMenu();\n };\n document.addEventListener(\"mousedown\", handleClick);\n document.addEventListener(\"keydown\", handleKey);\n return () => {\n document.removeEventListener(\"mousedown\", handleClick);\n document.removeEventListener(\"keydown\", handleKey);\n };\n }, [menu, closeMenu]);\n\n const handleContextMenu = (e: MouseEvent<HTMLButtonElement>) => {\n if (!menuItems?.length) return;\n e.preventDefault();\n openMenu(e.clientX, e.clientY);\n };\n\n const handleMenuKey = (e: KeyboardEvent<HTMLButtonElement>) => {\n if (e.key === \"ContextMenu\" || (e.key === \"F10\" && e.shiftKey)) {\n if (!menuItems?.length) return;\n e.preventDefault();\n const rect = (e.currentTarget as HTMLElement).getBoundingClientRect();\n openMenu(rect.right, rect.top);\n }\n };\n\n // ── Render ───────────────────────────────────────────────────────────────\n const button = (\n <button\n type=\"button\"\n aria-current={active ? \"page\" : undefined}\n aria-label={collapsed ? label : undefined}\n className={[\n styles.itemBtn,\n active ? styles.active : null,\n collapsed ? styles.itemCollapsed : null,\n isDragOver ? styles.dragOver : null,\n className,\n ]\n .filter(Boolean)\n .join(\" \")}\n onContextMenu={handleContextMenu}\n onKeyDown={handleMenuKey}\n onDragOver={handleDragOver}\n onDragLeave={handleDragLeave}\n onDrop={handleDrop}\n {...props}\n >\n {icon && (\n <span className={styles.itemIcon}>\n <Icon icon={icon} size=\"md\" aria-hidden />\n </span>\n )}\n {!collapsed && <span className={styles.itemLabel}>{label}</span>}\n {!collapsed && trailing && <span className={styles.itemSuffix}>{trailing}</span>}\n </button>\n );\n\n return (\n <li className={styles.item} hidden={isFiltered || undefined}>\n {effectiveTooltip\n ? <Tooltip label={effectiveTooltip} placement=\"right\">{button}</Tooltip>\n : button}\n\n {menu && menuItems?.length && typeof document !== \"undefined\" &&\n createPortal(\n <div\n ref={menuRef}\n className={styles.contextMenu}\n style={{ top: menu.y, left: menu.x }}\n role=\"menu\"\n >\n {menuItems.map((entry) => (\n <button\n key={entry.label}\n type=\"button\"\n role=\"menuitem\"\n disabled={entry.disabled}\n className={[\n styles.contextMenuItem,\n entry.destructive ? styles.contextMenuDestructive : null,\n ]\n .filter(Boolean)\n .join(\" \")}\n onClick={() => {\n entry.onClick();\n closeMenu();\n }}\n >\n {entry.label}\n </button>\n ))}\n </div>,\n document.body,\n )}\n </li>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"SidebarItem.js","names":[],"sources":["../../../src/components/Sidebar/SidebarItem.tsx"],"sourcesContent":["import type { IconDefinition } from '@gnome-ui/icons';\nimport {\n type ButtonHTMLAttributes,\n type DragEvent,\n type KeyboardEvent,\n type MouseEvent,\n type ReactNode,\n useCallback,\n useContext,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport { createPortal } from 'react-dom';\n\nimport { Icon } from '../Icon';\nimport { Tooltip } from '../Tooltip';\n\nimport { SidebarFilterContext, useSidebarCollapsed } from './Sidebar';\nimport styles from './Sidebar.module.css';\n\nexport interface SidebarMenuEntry {\n /** Label shown in the context menu. */\n label: string;\n /** Called when the entry is clicked. */\n onClick: () => void;\n /** Renders the entry in red. Use for destructive actions. */\n destructive?: boolean;\n /** Disables the entry. */\n disabled?: boolean;\n}\n\nexport interface SidebarItemProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n /** Primary label. */\n label: string;\n /** Icon from `@gnome-ui/icons`. */\n icon?: IconDefinition;\n /** Marks this item as the currently active view. */\n active?: boolean;\n /**\n * Trailing widget — any ReactNode (badge, button, icon…).\n * Supersedes `badge` when both are provided.\n */\n suffix?: ReactNode;\n /**\n * @deprecated Use `suffix` instead.\n */\n badge?: ReactNode;\n /**\n * Short tooltip shown when hovering the item.\n * Automatically shown when the sidebar is `collapsed`.\n */\n tooltip?: string;\n /**\n * Context-menu entries shown on right-click or the Menu key.\n */\n menuItems?: SidebarMenuEntry[];\n /**\n * Called when a dragged item is dropped onto this row.\n * Mirrors `AdwSidebar` per-row drop target support (libadwaita 1.9).\n */\n onDrop?: (e: DragEvent<HTMLButtonElement>) => void;\n /**\n * MIME types this row accepts as drop targets (e.g. `[\"text/plain\"]`).\n * When provided, drops of other types are rejected via `e.preventDefault()`.\n * When omitted, all types are accepted.\n */\n acceptTypes?: string[];\n}\n\n/**\n * Individual navigation item inside a `Sidebar` or `SidebarSection`.\n *\n * **Tier 11 additions:**\n * - Automatically hidden when `Sidebar`'s `filter` / `searchable` is active\n * and the `label` does not match (case-insensitive substring).\n * - `onDrop` / `acceptTypes` — HTML5 drag-and-drop target support.\n */\nexport function SidebarItem({\n label,\n icon,\n active = false,\n suffix,\n badge,\n tooltip,\n menuItems,\n onDrop,\n acceptTypes,\n className,\n ...props\n}: SidebarItemProps) {\n const collapsed = useSidebarCollapsed();\n const filterValue = useContext(SidebarFilterContext);\n const trailing = suffix ?? badge;\n const effectiveTooltip = collapsed ? (tooltip ?? label) : tooltip;\n\n // ── Filter visibility ────────────────────────────────────────────────────\n const isFiltered =\n filterValue.length > 0 && !label.toLowerCase().includes(filterValue.toLowerCase());\n\n // ── Drag-and-drop ────────────────────────────────────────────────────────\n const [isDragOver, setIsDragOver] = useState(false);\n\n const handleDragOver = (e: DragEvent<HTMLButtonElement>) => {\n if (!onDrop) {\n return;\n }\n\n if (acceptTypes?.length) {\n const accepted = acceptTypes.some((t) => e.dataTransfer.types.includes(t));\n\n if (!accepted) {\n return;\n }\n }\n\n e.preventDefault();\n setIsDragOver(true);\n };\n\n const handleDragLeave = () => setIsDragOver(false);\n\n const handleDrop = (e: DragEvent<HTMLButtonElement>) => {\n if (!onDrop) {\n return;\n }\n\n e.preventDefault();\n setIsDragOver(false);\n onDrop(e);\n };\n\n // ── Context menu ─────────────────────────────────────────────────────────\n const [menu, setMenu] = useState<{ x: number; y: number } | null>(null);\n const menuRef = useRef<HTMLDivElement>(null);\n\n const openMenu = useCallback((x: number, y: number) => setMenu({ x, y }), []);\n const closeMenu = useCallback(() => setMenu(null), []);\n\n useEffect(() => {\n if (!menu) {\n return;\n }\n\n const handleClick = (e: globalThis.MouseEvent) => {\n if (menuRef.current && !menuRef.current.contains(e.target as Node)) {\n closeMenu();\n }\n };\n const handleKey = (e: globalThis.KeyboardEvent) => {\n if (e.key === 'Escape') {\n closeMenu();\n }\n };\n\n document.addEventListener('mousedown', handleClick);\n document.addEventListener('keydown', handleKey);\n\n return () => {\n document.removeEventListener('mousedown', handleClick);\n document.removeEventListener('keydown', handleKey);\n };\n }, [menu, closeMenu]);\n\n const handleContextMenu = (e: MouseEvent<HTMLButtonElement>) => {\n if (!menuItems?.length) {\n return;\n }\n\n e.preventDefault();\n openMenu(e.clientX, e.clientY);\n };\n\n const handleMenuKey = (e: KeyboardEvent<HTMLButtonElement>) => {\n if (e.key === 'ContextMenu' || (e.key === 'F10' && e.shiftKey)) {\n if (!menuItems?.length) {\n return;\n }\n\n e.preventDefault();\n const rect = (e.currentTarget as HTMLElement).getBoundingClientRect();\n\n openMenu(rect.right, rect.top);\n }\n };\n\n // ── Render ───────────────────────────────────────────────────────────────\n const button = (\n <button\n type=\"button\"\n aria-current={active ? 'page' : undefined}\n aria-label={collapsed ? label : undefined}\n className={[\n styles.itemBtn,\n active ? styles.active : null,\n collapsed ? styles.itemCollapsed : null,\n isDragOver ? styles.dragOver : null,\n className,\n ]\n .filter(Boolean)\n .join(' ')}\n onContextMenu={handleContextMenu}\n onKeyDown={handleMenuKey}\n onDragOver={handleDragOver}\n onDragLeave={handleDragLeave}\n onDrop={handleDrop}\n {...props}\n >\n {icon && (\n <span className={styles.itemIcon}>\n <Icon icon={icon} size=\"md\" aria-hidden />\n </span>\n )}\n {!collapsed && <span className={styles.itemLabel}>{label}</span>}\n {!collapsed && trailing && <span className={styles.itemSuffix}>{trailing}</span>}\n </button>\n );\n\n return (\n <li className={styles.item} hidden={isFiltered || undefined}>\n {effectiveTooltip ? (\n <Tooltip label={effectiveTooltip} placement=\"right\">\n {button}\n </Tooltip>\n ) : (\n button\n )}\n\n {menu &&\n menuItems?.length &&\n typeof document !== 'undefined' &&\n createPortal(\n <div\n ref={menuRef}\n className={styles.contextMenu}\n style={{ top: menu.y, left: menu.x }}\n role=\"menu\"\n >\n {menuItems.map((entry) => (\n <button\n key={entry.label}\n type=\"button\"\n role=\"menuitem\"\n disabled={entry.disabled}\n className={[\n styles.contextMenuItem,\n entry.destructive ? styles.contextMenuDestructive : null,\n ]\n .filter(Boolean)\n .join(' ')}\n onClick={() => {\n entry.onClick();\n closeMenu();\n }}\n >\n {entry.label}\n </button>\n ))}\n </div>,\n document.body,\n )}\n </li>\n );\n}\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- const e=require(`../Icon/Icon.cjs`),t=require(`./Sidebar.module.css.cjs`),n=require(`./Sidebar.cjs`);let r=require(`react`),i=require(`react/jsx-runtime`),a=require(`@gnome-ui/icons`);function o(e,t){let n=0;return r.Children.forEach(e,e=>{if(!(0,r.isValidElement)(e))return;let i=e.props;typeof i.label==`string`?i.label.toLowerCase().includes(t.toLowerCase())&&n++:i.children&&(n+=o(i.children,t))}),n}var s=(0,r.forwardRef)(function({title:s,icon:c,collapsible:l=!1,defaultOpen:u=!0,open:d,onOpenChange:f,children:p,className:m,...h},g){let[_,v]=(0,r.useState)(u),y=d!==void 0,b=y?d:_,x=n.useSidebarCollapsed(),S=(0,r.useContext)(n.SidebarFilterContext),C=(0,r.useId)(),w=e=>{y||v(e),f?.(e)};if((0,r.useImperativeHandle)(g,()=>({expand:()=>w(!0),collapse:()=>w(!1),toggle:()=>w(!b)})),!(S.length===0||o(p,S)>0))return null;let T=x?!0:b,E=!!(s||c||l&&!x);return(0,i.jsxs)(`section`,{className:[t.default.section,m].filter(Boolean).join(` `),...h,children:[E&&(l&&!x?(0,i.jsxs)(`button`,{type:`button`,className:t.default.sectionHeader,onClick:()=>w(!b),"aria-expanded":b,"aria-controls":C,children:[c&&(0,i.jsx)(`span`,{className:t.default.sectionHeaderIcon,children:(0,i.jsx)(e.Icon,{icon:c,size:`sm`,"aria-hidden":!0})}),s&&(0,i.jsx)(`span`,{className:t.default.sectionTitle,children:s}),(0,i.jsx)(`span`,{className:t.default.sectionChevron,children:(0,i.jsx)(e.Icon,{icon:b?a.PanUp:a.PanDown,size:`sm`,"aria-hidden":!0})})]}):(0,i.jsxs)(`div`,{className:t.default.sectionHeader,children:[c&&(0,i.jsx)(`span`,{className:t.default.sectionHeaderIcon,children:(0,i.jsx)(e.Icon,{icon:c,size:`sm`,"aria-hidden":!0})}),s&&(0,i.jsx)(`span`,{className:t.default.sectionTitle,children:s})]})),(0,i.jsx)(`div`,{id:C,className:[t.default.sectionBody,T?null:t.default.sectionBodyCollapsed].filter(Boolean).join(` `),"aria-hidden":!T||void 0,children:(0,i.jsx)(`div`,{className:t.default.sectionBodyInner,children:(0,i.jsx)(`ul`,{role:`list`,className:t.default.list,children:p})})})]})});exports.SidebarSection=s;
1
+ const e=require(`../Icon/Icon.cjs`),t=require(`./Sidebar.module.css.cjs`),n=require(`./Sidebar.cjs`);let r=require(`react`),i=require(`react/jsx-runtime`),a=require(`@gnome-ui/icons`);function o(e,t){let n=0;return r.Children.forEach(e,e=>{if(!(0,r.isValidElement)(e))return;let i=e.props;typeof i.label==`string`?i.label.toLowerCase().includes(t.toLowerCase())&&n++:i.children&&(n+=o(i.children,t))}),n}var s=(0,r.forwardRef)(function({title:s,icon:c,collapsible:l=!1,defaultOpen:u=!0,open:d,onOpenChange:f,children:p,className:m,...h},g){let[_,v]=(0,r.useState)(u),y=d!==void 0,b=y?d:_,x=n.useSidebarCollapsed(),S=(0,r.useContext)(n.SidebarFilterContext),C=(0,r.useId)(),w=e=>{y||v(e),f?.(e)};if((0,r.useImperativeHandle)(g,()=>({expand:()=>w(!0),collapse:()=>w(!1),toggle:()=>w(!b)})),!(S.length===0||o(p,S)>0))return null;let T=x?!0:b,E=!!(s||c||l&&!x);return(0,i.jsxs)(`section`,{className:[t.default.section,m].filter(Boolean).join(` `),...h,children:[E&&(l&&!x?(0,i.jsxs)(`button`,{type:`button`,className:t.default.sectionHeader,onClick:()=>w(!b),"aria-expanded":b,"aria-controls":C,children:[c&&(0,i.jsx)(`span`,{className:t.default.sectionHeaderIcon,children:(0,i.jsx)(e.Icon,{icon:c,size:`sm`,"aria-hidden":!0})}),s&&(0,i.jsx)(`span`,{className:t.default.sectionTitle,children:s}),(0,i.jsx)(`span`,{className:t.default.sectionChevron,children:(0,i.jsx)(e.Icon,{icon:b?a.PanUp:a.PanDown,size:`sm`,"aria-hidden":!0})})]}):(0,i.jsxs)(`div`,{className:t.default.sectionHeader,children:[c&&(0,i.jsx)(`span`,{className:t.default.sectionHeaderIcon,children:(0,i.jsx)(e.Icon,{icon:c,size:`sm`,"aria-hidden":!0})}),s&&(0,i.jsx)(`span`,{className:t.default.sectionTitle,children:s})]})),(0,i.jsx)(`div`,{id:C,className:[t.default.sectionBody,T?null:t.default.sectionBodyCollapsed].filter(Boolean).join(` `),"aria-hidden":!T||void 0,children:(0,i.jsx)(`div`,{className:t.default.sectionBodyInner,children:(0,i.jsx)(`ul`,{className:t.default.list,children:p})})})]})});exports.SidebarSection=s;
2
2
  //# sourceMappingURL=SidebarSection.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"SidebarSection.cjs","names":[],"sources":["../../../src/components/Sidebar/SidebarSection.tsx"],"sourcesContent":["import {\n forwardRef,\n useImperativeHandle,\n useState,\n useContext,\n useId,\n isValidElement,\n Children,\n type HTMLAttributes,\n type ReactNode,\n} from \"react\";\nimport type { IconDefinition } from \"@gnome-ui/icons\";\nimport { PanDown, PanUp } from \"@gnome-ui/icons\";\nimport { Icon } from \"../Icon\";\nimport { useSidebarCollapsed, SidebarFilterContext } from \"./Sidebar\";\nimport styles from \"./Sidebar.module.css\";\n\n// ─── Filter helper ────────────────────────────────────────────────────────────\n\nfunction countMatchingItems(children: ReactNode, filter: string): number {\n let count = 0;\n Children.forEach(children, (child) => {\n if (!isValidElement(child)) return;\n const props = child.props as Record<string, unknown>;\n if (typeof props.label === \"string\") {\n if (props.label.toLowerCase().includes(filter.toLowerCase())) count++;\n } else if (props.children) {\n count += countMatchingItems(props.children as ReactNode, filter);\n }\n });\n return count;\n}\n\n// ─── Handle ───────────────────────────────────────────────────────────────────\n\nexport interface SidebarSectionHandle {\n expand: () => void;\n collapse: () => void;\n toggle: () => void;\n}\n\n// ─── Props ────────────────────────────────────────────────────────────────────\n\nexport interface SidebarSectionProps extends HTMLAttributes<HTMLElement> {\n /**\n * Section heading. Rendered in small caps above the items.\n * Omit for an untitled section (e.g. the first group in a sidebar).\n */\n title?: string;\n /** Icon rendered left of the title. Same type as `SidebarItem.icon`. */\n icon?: IconDefinition;\n /** Whether the section body can be toggled open/closed. Defaults to `false`. */\n collapsible?: boolean;\n /** Initial open state when `collapsible` is true. Defaults to `true`. */\n defaultOpen?: boolean;\n /** Controlled open state. */\n open?: boolean;\n /** Called when open state changes. */\n onOpenChange?: (open: boolean) => void;\n children?: ReactNode;\n}\n\n// ─── Component ────────────────────────────────────────────────────────────────\n\n/**\n * Named group of `SidebarItem` entries inside a `Sidebar`.\n *\n * Sections are separated by a thin divider. The title and icon are optional.\n * When `collapsible` is true the body can be toggled via the header button or\n * imperatively via a `ref` (`expand`, `collapse`, `toggle`).\n *\n * In rail (icon-only) mode the body is always visible regardless of open state.\n * When a sidebar filter is active and no children match, the section is hidden.\n *\n * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.Sidebar.html\n */\nexport const SidebarSection = forwardRef<SidebarSectionHandle, SidebarSectionProps>(\n function SidebarSection(\n {\n title,\n icon,\n collapsible = false,\n defaultOpen = true,\n open: controlledOpen,\n onOpenChange,\n children,\n className,\n ...props\n },\n ref,\n ) {\n const [internalOpen, setInternalOpen] = useState(defaultOpen);\n const isControlled = controlledOpen !== undefined;\n const open = isControlled ? controlledOpen : internalOpen;\n\n const sidebarCollapsed = useSidebarCollapsed();\n const filterValue = useContext(SidebarFilterContext);\n const bodyId = useId();\n\n const setAndNotify = (next: boolean) => {\n if (!isControlled) setInternalOpen(next);\n onOpenChange?.(next);\n };\n\n useImperativeHandle(ref, () => ({\n expand: () => setAndNotify(true),\n collapse: () => setAndNotify(false),\n toggle: () => setAndNotify(!open),\n }));\n\n // Hide section entirely when filter is active and no children match\n const hasVisibleChildren =\n filterValue.length === 0 || countMatchingItems(children, filterValue) > 0;\n\n if (!hasVisibleChildren) return null;\n\n // In rail mode the body is always visible\n const isOpen = sidebarCollapsed ? true : open;\n\n const showHeader = !!(title || icon || (collapsible && !sidebarCollapsed));\n\n return (\n <section\n className={[styles.section, className].filter(Boolean).join(\" \")}\n {...props}\n >\n {showHeader && (\n collapsible && !sidebarCollapsed ? (\n <button\n type=\"button\"\n className={styles.sectionHeader}\n onClick={() => setAndNotify(!open)}\n aria-expanded={open}\n aria-controls={bodyId}\n >\n {icon && (\n <span className={styles.sectionHeaderIcon}>\n <Icon icon={icon} size=\"sm\" aria-hidden />\n </span>\n )}\n {title && <span className={styles.sectionTitle}>{title}</span>}\n <span className={styles.sectionChevron}>\n <Icon icon={open ? PanUp : PanDown} size=\"sm\" aria-hidden />\n </span>\n </button>\n ) : (\n <div className={styles.sectionHeader}>\n {icon && (\n <span className={styles.sectionHeaderIcon}>\n <Icon icon={icon} size=\"sm\" aria-hidden />\n </span>\n )}\n {title && <span className={styles.sectionTitle}>{title}</span>}\n </div>\n )\n )}\n\n <div\n id={bodyId}\n className={[\n styles.sectionBody,\n !isOpen ? styles.sectionBodyCollapsed : null,\n ]\n .filter(Boolean)\n .join(\" \")}\n aria-hidden={!isOpen || undefined}\n >\n <div className={styles.sectionBodyInner}>\n <ul role=\"list\" className={styles.list}>\n {children}\n </ul>\n </div>\n </div>\n </section>\n );\n },\n);\n"],"mappings":"wLAmBA,SAAS,EAAmB,EAAqB,EAAwB,CACvE,IAAI,EAAQ,EAUZ,OATA,EAAA,SAAS,QAAQ,EAAW,GAAU,CACpC,GAAI,EAAA,EAAA,EAAA,gBAAgB,EAAM,CAAE,OAC5B,IAAM,EAAQ,EAAM,MAChB,OAAO,EAAM,OAAU,SACrB,EAAM,MAAM,aAAa,CAAC,SAAS,EAAO,aAAa,CAAC,EAAE,IACrD,EAAM,WACf,GAAS,EAAmB,EAAM,SAAuB,EAAO,GAElE,CACK,EA8CT,IAAa,GAAA,EAAA,EAAA,YACX,SACE,CACE,QACA,OACA,cAAc,GACd,cAAc,GACd,KAAM,EACN,eACA,WACA,YACA,GAAG,GAEL,EACA,CACA,GAAM,CAAC,EAAc,IAAA,EAAA,EAAA,UAA4B,EAAY,CACvD,EAAe,IAAmB,IAAA,GAClC,EAAO,EAAe,EAAiB,EAEvC,EAAmB,EAAA,qBAAqB,CACxC,GAAA,EAAA,EAAA,YAAyB,EAAA,qBAAqB,CAC9C,GAAA,EAAA,EAAA,QAAgB,CAEhB,EAAgB,GAAkB,CACjC,GAAc,EAAgB,EAAK,CACxC,IAAe,EAAK,EAatB,IAVA,EAAA,EAAA,qBAAoB,OAAY,CAC9B,WAAc,EAAa,GAAK,CAChC,aAAgB,EAAa,GAAM,CACnC,WAAc,EAAa,CAAC,EAAK,CAClC,EAAE,CAMC,EAFF,EAAY,SAAW,GAAK,EAAmB,EAAU,EAAY,CAAG,GAEjD,OAAO,KAGhC,IAAM,EAAS,EAAmB,GAAO,EAEnC,EAAa,CAAC,EAAE,GAAS,GAAS,GAAe,CAAC,GAExD,OACE,EAAA,EAAA,MAAC,UAAD,CACE,UAAW,CAAC,EAAA,QAAO,QAAS,EAAU,CAAC,OAAO,QAAQ,CAAC,KAAK,IAAI,CAChE,GAAI,WAFN,CAIG,IACC,GAAe,CAAC,GACd,EAAA,EAAA,MAAC,SAAD,CACE,KAAK,SACL,UAAW,EAAA,QAAO,cAClB,YAAe,EAAa,CAAC,EAAK,CAClC,gBAAe,EACf,gBAAe,WALjB,CAOG,IACC,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,EAAA,QAAO,4BACtB,EAAA,EAAA,KAAC,EAAA,KAAD,CAAY,OAAM,KAAK,KAAK,cAAA,GAAc,CAAA,CACrC,CAAA,CAER,IAAS,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,EAAA,QAAO,sBAAe,EAAa,CAAA,EAC9D,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,EAAA,QAAO,yBACtB,EAAA,EAAA,KAAC,EAAA,KAAD,CAAM,KAAM,EAAO,EAAA,MAAQ,EAAA,QAAS,KAAK,KAAK,cAAA,GAAc,CAAA,CACvD,CAAA,CACA,IAET,EAAA,EAAA,MAAC,MAAD,CAAK,UAAW,EAAA,QAAO,uBAAvB,CACG,IACC,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,EAAA,QAAO,4BACtB,EAAA,EAAA,KAAC,EAAA,KAAD,CAAY,OAAM,KAAK,KAAK,cAAA,GAAc,CAAA,CACrC,CAAA,CAER,IAAS,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,EAAA,QAAO,sBAAe,EAAa,CAAA,CAC1D,KAIV,EAAA,EAAA,KAAC,MAAD,CACE,GAAI,EACJ,UAAW,CACT,EAAA,QAAO,YACN,EAAuC,KAA9B,EAAA,QAAO,qBAClB,CACE,OAAO,QAAQ,CACf,KAAK,IAAI,CACZ,cAAa,CAAC,GAAU,IAAA,aAExB,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,EAAA,QAAO,2BACrB,EAAA,EAAA,KAAC,KAAD,CAAI,KAAK,OAAO,UAAW,EAAA,QAAO,KAC/B,WACE,CAAA,CACD,CAAA,CACF,CAAA,CACE,IAGf"}
1
+ {"version":3,"file":"SidebarSection.cjs","names":[],"sources":["../../../src/components/Sidebar/SidebarSection.tsx"],"sourcesContent":["import type { IconDefinition } from '@gnome-ui/icons';\nimport { PanDown, PanUp } from '@gnome-ui/icons';\nimport {\n Children,\n forwardRef,\n type HTMLAttributes,\n isValidElement,\n type ReactNode,\n useContext,\n useId,\n useImperativeHandle,\n useState,\n} from 'react';\n\nimport { Icon } from '../Icon';\n\nimport { SidebarFilterContext, useSidebarCollapsed } from './Sidebar';\nimport styles from './Sidebar.module.css';\n\n// ─── Filter helper ────────────────────────────────────────────────────────────\n\nfunction countMatchingItems(children: ReactNode, filter: string): number {\n let count = 0;\n Children.forEach(children, (child) => {\n if (!isValidElement(child)) {\n return;\n }\n\n const props = child.props as Record<string, unknown>;\n\n if (typeof props.label === 'string') {\n if (props.label.toLowerCase().includes(filter.toLowerCase())) {\n count++;\n }\n } else if (props.children) {\n count += countMatchingItems(props.children as ReactNode, filter);\n }\n });\n\n return count;\n}\n\n// ─── Handle ───────────────────────────────────────────────────────────────────\n\nexport interface SidebarSectionHandle {\n expand: () => void;\n collapse: () => void;\n toggle: () => void;\n}\n\n// ─── Props ────────────────────────────────────────────────────────────────────\n\nexport interface SidebarSectionProps extends HTMLAttributes<HTMLElement> {\n /**\n * Section heading. Rendered in small caps above the items.\n * Omit for an untitled section (e.g. the first group in a sidebar).\n */\n title?: string;\n /** Icon rendered left of the title. Same type as `SidebarItem.icon`. */\n icon?: IconDefinition;\n /** Whether the section body can be toggled open/closed. Defaults to `false`. */\n collapsible?: boolean;\n /** Initial open state when `collapsible` is true. Defaults to `true`. */\n defaultOpen?: boolean;\n /** Controlled open state. */\n open?: boolean;\n /** Called when open state changes. */\n onOpenChange?: (open: boolean) => void;\n children?: ReactNode;\n}\n\n// ─── Component ────────────────────────────────────────────────────────────────\n\n/**\n * Named group of `SidebarItem` entries inside a `Sidebar`.\n *\n * Sections are separated by a thin divider. The title and icon are optional.\n * When `collapsible` is true the body can be toggled via the header button or\n * imperatively via a `ref` (`expand`, `collapse`, `toggle`).\n *\n * In rail (icon-only) mode the body is always visible regardless of open state.\n * When a sidebar filter is active and no children match, the section is hidden.\n *\n * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.Sidebar.html\n */\nexport const SidebarSection = forwardRef<SidebarSectionHandle, SidebarSectionProps>(\n function SidebarSection(\n {\n title,\n icon,\n collapsible = false,\n defaultOpen = true,\n open: controlledOpen,\n onOpenChange,\n children,\n className,\n ...props\n },\n ref,\n ) {\n const [internalOpen, setInternalOpen] = useState(defaultOpen);\n const isControlled = controlledOpen !== undefined;\n const open = isControlled ? controlledOpen : internalOpen;\n\n const sidebarCollapsed = useSidebarCollapsed();\n const filterValue = useContext(SidebarFilterContext);\n const bodyId = useId();\n\n const setAndNotify = (next: boolean) => {\n if (!isControlled) {\n setInternalOpen(next);\n }\n\n onOpenChange?.(next);\n };\n\n useImperativeHandle(ref, () => ({\n expand: () => setAndNotify(true),\n collapse: () => setAndNotify(false),\n toggle: () => setAndNotify(!open),\n }));\n\n // Hide section entirely when filter is active and no children match\n const hasVisibleChildren =\n filterValue.length === 0 || countMatchingItems(children, filterValue) > 0;\n\n if (!hasVisibleChildren) {\n return null;\n }\n\n // In rail mode the body is always visible\n const isOpen = sidebarCollapsed ? true : open;\n\n const showHeader = !!(title || icon || (collapsible && !sidebarCollapsed));\n\n return (\n <section className={[styles.section, className].filter(Boolean).join(' ')} {...props}>\n {showHeader &&\n (collapsible && !sidebarCollapsed ? (\n <button\n type=\"button\"\n className={styles.sectionHeader}\n onClick={() => setAndNotify(!open)}\n aria-expanded={open}\n aria-controls={bodyId}\n >\n {icon && (\n <span className={styles.sectionHeaderIcon}>\n <Icon icon={icon} size=\"sm\" aria-hidden />\n </span>\n )}\n {title && <span className={styles.sectionTitle}>{title}</span>}\n <span className={styles.sectionChevron}>\n <Icon icon={open ? PanUp : PanDown} size=\"sm\" aria-hidden />\n </span>\n </button>\n ) : (\n <div className={styles.sectionHeader}>\n {icon && (\n <span className={styles.sectionHeaderIcon}>\n <Icon icon={icon} size=\"sm\" aria-hidden />\n </span>\n )}\n {title && <span className={styles.sectionTitle}>{title}</span>}\n </div>\n ))}\n\n <div\n id={bodyId}\n className={[styles.sectionBody, !isOpen ? styles.sectionBodyCollapsed : null]\n .filter(Boolean)\n .join(' ')}\n aria-hidden={!isOpen || undefined}\n >\n <div className={styles.sectionBodyInner}>\n <ul className={styles.list}>{children}</ul>\n </div>\n </div>\n </section>\n );\n },\n);\n"],"mappings":"wLAqBA,SAAS,EAAmB,EAAqB,EAAwB,CACvE,IAAI,EAAQ,EAiBZ,OAhBA,EAAA,SAAS,QAAQ,EAAW,GAAU,CACpC,GAAI,EAAA,EAAA,EAAA,gBAAgB,EAAM,CACxB,OAGF,IAAM,EAAQ,EAAM,MAEhB,OAAO,EAAM,OAAU,SACrB,EAAM,MAAM,aAAa,CAAC,SAAS,EAAO,aAAa,CAAC,EAC1D,IAEO,EAAM,WACf,GAAS,EAAmB,EAAM,SAAuB,EAAO,GAElE,CAEK,EA8CT,IAAa,GAAA,EAAA,EAAA,YACX,SACE,CACE,QACA,OACA,cAAc,GACd,cAAc,GACd,KAAM,EACN,eACA,WACA,YACA,GAAG,GAEL,EACA,CACA,GAAM,CAAC,EAAc,IAAA,EAAA,EAAA,UAA4B,EAAY,CACvD,EAAe,IAAmB,IAAA,GAClC,EAAO,EAAe,EAAiB,EAEvC,EAAmB,EAAA,qBAAqB,CACxC,GAAA,EAAA,EAAA,YAAyB,EAAA,qBAAqB,CAC9C,GAAA,EAAA,EAAA,QAAgB,CAEhB,EAAgB,GAAkB,CACjC,GACH,EAAgB,EAAK,CAGvB,IAAe,EAAK,EAatB,IAVA,EAAA,EAAA,qBAAoB,OAAY,CAC9B,WAAc,EAAa,GAAK,CAChC,aAAgB,EAAa,GAAM,CACnC,WAAc,EAAa,CAAC,EAAK,CAClC,EAAE,CAMC,EAFF,EAAY,SAAW,GAAK,EAAmB,EAAU,EAAY,CAAG,GAGxE,OAAO,KAIT,IAAM,EAAS,EAAmB,GAAO,EAEnC,EAAa,CAAC,EAAE,GAAS,GAAS,GAAe,CAAC,GAExD,OACE,EAAA,EAAA,MAAC,UAAD,CAAS,UAAW,CAAC,EAAA,QAAO,QAAS,EAAU,CAAC,OAAO,QAAQ,CAAC,KAAK,IAAI,CAAE,GAAI,WAA/E,CACG,IACE,GAAe,CAAC,GACf,EAAA,EAAA,MAAC,SAAD,CACE,KAAK,SACL,UAAW,EAAA,QAAO,cAClB,YAAe,EAAa,CAAC,EAAK,CAClC,gBAAe,EACf,gBAAe,WALjB,CAOG,IACC,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,EAAA,QAAO,4BACtB,EAAA,EAAA,KAAC,EAAA,KAAD,CAAY,OAAM,KAAK,KAAK,cAAA,GAAc,CAAA,CACrC,CAAA,CAER,IAAS,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,EAAA,QAAO,sBAAe,EAAa,CAAA,EAC9D,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,EAAA,QAAO,yBACtB,EAAA,EAAA,KAAC,EAAA,KAAD,CAAM,KAAM,EAAO,EAAA,MAAQ,EAAA,QAAS,KAAK,KAAK,cAAA,GAAc,CAAA,CACvD,CAAA,CACA,IAET,EAAA,EAAA,MAAC,MAAD,CAAK,UAAW,EAAA,QAAO,uBAAvB,CACG,IACC,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,EAAA,QAAO,4BACtB,EAAA,EAAA,KAAC,EAAA,KAAD,CAAY,OAAM,KAAK,KAAK,cAAA,GAAc,CAAA,CACrC,CAAA,CAER,IAAS,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,EAAA,QAAO,sBAAe,EAAa,CAAA,CAC1D,KAGV,EAAA,EAAA,KAAC,MAAD,CACE,GAAI,EACJ,UAAW,CAAC,EAAA,QAAO,YAAc,EAAuC,KAA9B,EAAA,QAAO,qBAA4B,CAC1E,OAAO,QAAQ,CACf,KAAK,IAAI,CACZ,cAAa,CAAC,GAAU,IAAA,aAExB,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,EAAA,QAAO,2BACrB,EAAA,EAAA,KAAC,KAAD,CAAI,UAAW,EAAA,QAAO,KAAO,WAAc,CAAA,CACvC,CAAA,CACF,CAAA,CACE,IAGf"}
@@ -1,5 +1,5 @@
1
- import { HTMLAttributes, ReactNode } from 'react';
2
1
  import { IconDefinition } from '@gnome-ui/icons';
2
+ import { HTMLAttributes, ReactNode } from 'react';
3
3
  export interface SidebarSectionHandle {
4
4
  expand: () => void;
5
5
  collapse: () => void;
@@ -74,7 +74,6 @@ var g = a(function({ title: i, icon: a, collapsible: o = !1, defaultOpen: g = !0
74
74
  children: /* @__PURE__ */ d("div", {
75
75
  className: t.sectionBodyInner,
76
76
  children: /* @__PURE__ */ d("ul", {
77
- role: "list",
78
77
  className: t.list,
79
78
  children: y
80
79
  })
@@ -1 +1 @@
1
- {"version":3,"file":"SidebarSection.js","names":[],"sources":["../../../src/components/Sidebar/SidebarSection.tsx"],"sourcesContent":["import {\n forwardRef,\n useImperativeHandle,\n useState,\n useContext,\n useId,\n isValidElement,\n Children,\n type HTMLAttributes,\n type ReactNode,\n} from \"react\";\nimport type { IconDefinition } from \"@gnome-ui/icons\";\nimport { PanDown, PanUp } from \"@gnome-ui/icons\";\nimport { Icon } from \"../Icon\";\nimport { useSidebarCollapsed, SidebarFilterContext } from \"./Sidebar\";\nimport styles from \"./Sidebar.module.css\";\n\n// ─── Filter helper ────────────────────────────────────────────────────────────\n\nfunction countMatchingItems(children: ReactNode, filter: string): number {\n let count = 0;\n Children.forEach(children, (child) => {\n if (!isValidElement(child)) return;\n const props = child.props as Record<string, unknown>;\n if (typeof props.label === \"string\") {\n if (props.label.toLowerCase().includes(filter.toLowerCase())) count++;\n } else if (props.children) {\n count += countMatchingItems(props.children as ReactNode, filter);\n }\n });\n return count;\n}\n\n// ─── Handle ───────────────────────────────────────────────────────────────────\n\nexport interface SidebarSectionHandle {\n expand: () => void;\n collapse: () => void;\n toggle: () => void;\n}\n\n// ─── Props ────────────────────────────────────────────────────────────────────\n\nexport interface SidebarSectionProps extends HTMLAttributes<HTMLElement> {\n /**\n * Section heading. Rendered in small caps above the items.\n * Omit for an untitled section (e.g. the first group in a sidebar).\n */\n title?: string;\n /** Icon rendered left of the title. Same type as `SidebarItem.icon`. */\n icon?: IconDefinition;\n /** Whether the section body can be toggled open/closed. Defaults to `false`. */\n collapsible?: boolean;\n /** Initial open state when `collapsible` is true. Defaults to `true`. */\n defaultOpen?: boolean;\n /** Controlled open state. */\n open?: boolean;\n /** Called when open state changes. */\n onOpenChange?: (open: boolean) => void;\n children?: ReactNode;\n}\n\n// ─── Component ────────────────────────────────────────────────────────────────\n\n/**\n * Named group of `SidebarItem` entries inside a `Sidebar`.\n *\n * Sections are separated by a thin divider. The title and icon are optional.\n * When `collapsible` is true the body can be toggled via the header button or\n * imperatively via a `ref` (`expand`, `collapse`, `toggle`).\n *\n * In rail (icon-only) mode the body is always visible regardless of open state.\n * When a sidebar filter is active and no children match, the section is hidden.\n *\n * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.Sidebar.html\n */\nexport const SidebarSection = forwardRef<SidebarSectionHandle, SidebarSectionProps>(\n function SidebarSection(\n {\n title,\n icon,\n collapsible = false,\n defaultOpen = true,\n open: controlledOpen,\n onOpenChange,\n children,\n className,\n ...props\n },\n ref,\n ) {\n const [internalOpen, setInternalOpen] = useState(defaultOpen);\n const isControlled = controlledOpen !== undefined;\n const open = isControlled ? controlledOpen : internalOpen;\n\n const sidebarCollapsed = useSidebarCollapsed();\n const filterValue = useContext(SidebarFilterContext);\n const bodyId = useId();\n\n const setAndNotify = (next: boolean) => {\n if (!isControlled) setInternalOpen(next);\n onOpenChange?.(next);\n };\n\n useImperativeHandle(ref, () => ({\n expand: () => setAndNotify(true),\n collapse: () => setAndNotify(false),\n toggle: () => setAndNotify(!open),\n }));\n\n // Hide section entirely when filter is active and no children match\n const hasVisibleChildren =\n filterValue.length === 0 || countMatchingItems(children, filterValue) > 0;\n\n if (!hasVisibleChildren) return null;\n\n // In rail mode the body is always visible\n const isOpen = sidebarCollapsed ? true : open;\n\n const showHeader = !!(title || icon || (collapsible && !sidebarCollapsed));\n\n return (\n <section\n className={[styles.section, className].filter(Boolean).join(\" \")}\n {...props}\n >\n {showHeader && (\n collapsible && !sidebarCollapsed ? (\n <button\n type=\"button\"\n className={styles.sectionHeader}\n onClick={() => setAndNotify(!open)}\n aria-expanded={open}\n aria-controls={bodyId}\n >\n {icon && (\n <span className={styles.sectionHeaderIcon}>\n <Icon icon={icon} size=\"sm\" aria-hidden />\n </span>\n )}\n {title && <span className={styles.sectionTitle}>{title}</span>}\n <span className={styles.sectionChevron}>\n <Icon icon={open ? PanUp : PanDown} size=\"sm\" aria-hidden />\n </span>\n </button>\n ) : (\n <div className={styles.sectionHeader}>\n {icon && (\n <span className={styles.sectionHeaderIcon}>\n <Icon icon={icon} size=\"sm\" aria-hidden />\n </span>\n )}\n {title && <span className={styles.sectionTitle}>{title}</span>}\n </div>\n )\n )}\n\n <div\n id={bodyId}\n className={[\n styles.sectionBody,\n !isOpen ? styles.sectionBodyCollapsed : null,\n ]\n .filter(Boolean)\n .join(\" \")}\n aria-hidden={!isOpen || undefined}\n >\n <div className={styles.sectionBodyInner}>\n <ul role=\"list\" className={styles.list}>\n {children}\n </ul>\n </div>\n </div>\n </section>\n );\n },\n);\n"],"mappings":";;;;;;;AAmBA,SAAS,EAAmB,GAAqB,GAAwB;CACvE,IAAI,IAAQ;AAUZ,QATA,EAAS,QAAQ,IAAW,MAAU;AACpC,MAAI,CAAC,EAAe,EAAM,CAAE;EAC5B,IAAM,IAAQ,EAAM;AACpB,EAAI,OAAO,EAAM,SAAU,WACrB,EAAM,MAAM,aAAa,CAAC,SAAS,EAAO,aAAa,CAAC,IAAE,MACrD,EAAM,aACf,KAAS,EAAmB,EAAM,UAAuB,EAAO;GAElE,EACK;;AA8CT,IAAa,IAAiB,EAC5B,SACE,EACE,UACA,SACA,iBAAc,IACd,iBAAc,IACd,MAAM,GACN,iBACA,aACA,cACA,GAAG,KAEL,GACA;CACA,IAAM,CAAC,GAAc,KAAmB,EAAS,EAAY,EACvD,IAAe,MAAmB,KAAA,GAClC,IAAO,IAAe,IAAiB,GAEvC,IAAmB,GAAqB,EACxC,IAAc,EAAW,EAAqB,EAC9C,IAAS,GAAO,EAEhB,KAAgB,MAAkB;AAEtC,EADK,KAAc,EAAgB,EAAK,EACxC,IAAe,EAAK;;AAatB,KAVA,EAAoB,UAAY;EAC9B,cAAc,EAAa,GAAK;EAChC,gBAAgB,EAAa,GAAM;EACnC,cAAc,EAAa,CAAC,EAAK;EAClC,EAAE,EAMC,EAFF,EAAY,WAAW,KAAK,EAAmB,GAAU,EAAY,GAAG,GAEjD,QAAO;CAGhC,IAAM,IAAS,IAAmB,KAAO,GAEnC,IAAa,CAAC,EAAE,KAAS,KAAS,KAAe,CAAC;AAExD,QACE,kBAAC,WAAD;EACE,WAAW,CAAC,EAAO,SAAS,EAAU,CAAC,OAAO,QAAQ,CAAC,KAAK,IAAI;EAChE,GAAI;YAFN,CAIG,MACC,KAAe,CAAC,IACd,kBAAC,UAAD;GACE,MAAK;GACL,WAAW,EAAO;GAClB,eAAe,EAAa,CAAC,EAAK;GAClC,iBAAe;GACf,iBAAe;aALjB;IAOG,KACC,kBAAC,QAAD;KAAM,WAAW,EAAO;eACtB,kBAAC,GAAD;MAAY;MAAM,MAAK;MAAK,eAAA;MAAc,CAAA;KACrC,CAAA;IAER,KAAS,kBAAC,QAAD;KAAM,WAAW,EAAO;eAAe;KAAa,CAAA;IAC9D,kBAAC,QAAD;KAAM,WAAW,EAAO;eACtB,kBAAC,GAAD;MAAM,MAAM,IAAO,IAAQ;MAAS,MAAK;MAAK,eAAA;MAAc,CAAA;KACvD,CAAA;IACA;OAET,kBAAC,OAAD;GAAK,WAAW,EAAO;aAAvB,CACG,KACC,kBAAC,QAAD;IAAM,WAAW,EAAO;cACtB,kBAAC,GAAD;KAAY;KAAM,MAAK;KAAK,eAAA;KAAc,CAAA;IACrC,CAAA,EAER,KAAS,kBAAC,QAAD;IAAM,WAAW,EAAO;cAAe;IAAa,CAAA,CAC1D;OAIV,kBAAC,OAAD;GACE,IAAI;GACJ,WAAW,CACT,EAAO,aACN,IAAuC,OAA9B,EAAO,qBAClB,CACE,OAAO,QAAQ,CACf,KAAK,IAAI;GACZ,eAAa,CAAC,KAAU,KAAA;aAExB,kBAAC,OAAD;IAAK,WAAW,EAAO;cACrB,kBAAC,MAAD;KAAI,MAAK;KAAO,WAAW,EAAO;KAC/B;KACE,CAAA;IACD,CAAA;GACF,CAAA,CACE;;EAGf"}
1
+ {"version":3,"file":"SidebarSection.js","names":[],"sources":["../../../src/components/Sidebar/SidebarSection.tsx"],"sourcesContent":["import type { IconDefinition } from '@gnome-ui/icons';\nimport { PanDown, PanUp } from '@gnome-ui/icons';\nimport {\n Children,\n forwardRef,\n type HTMLAttributes,\n isValidElement,\n type ReactNode,\n useContext,\n useId,\n useImperativeHandle,\n useState,\n} from 'react';\n\nimport { Icon } from '../Icon';\n\nimport { SidebarFilterContext, useSidebarCollapsed } from './Sidebar';\nimport styles from './Sidebar.module.css';\n\n// ─── Filter helper ────────────────────────────────────────────────────────────\n\nfunction countMatchingItems(children: ReactNode, filter: string): number {\n let count = 0;\n Children.forEach(children, (child) => {\n if (!isValidElement(child)) {\n return;\n }\n\n const props = child.props as Record<string, unknown>;\n\n if (typeof props.label === 'string') {\n if (props.label.toLowerCase().includes(filter.toLowerCase())) {\n count++;\n }\n } else if (props.children) {\n count += countMatchingItems(props.children as ReactNode, filter);\n }\n });\n\n return count;\n}\n\n// ─── Handle ───────────────────────────────────────────────────────────────────\n\nexport interface SidebarSectionHandle {\n expand: () => void;\n collapse: () => void;\n toggle: () => void;\n}\n\n// ─── Props ────────────────────────────────────────────────────────────────────\n\nexport interface SidebarSectionProps extends HTMLAttributes<HTMLElement> {\n /**\n * Section heading. Rendered in small caps above the items.\n * Omit for an untitled section (e.g. the first group in a sidebar).\n */\n title?: string;\n /** Icon rendered left of the title. Same type as `SidebarItem.icon`. */\n icon?: IconDefinition;\n /** Whether the section body can be toggled open/closed. Defaults to `false`. */\n collapsible?: boolean;\n /** Initial open state when `collapsible` is true. Defaults to `true`. */\n defaultOpen?: boolean;\n /** Controlled open state. */\n open?: boolean;\n /** Called when open state changes. */\n onOpenChange?: (open: boolean) => void;\n children?: ReactNode;\n}\n\n// ─── Component ────────────────────────────────────────────────────────────────\n\n/**\n * Named group of `SidebarItem` entries inside a `Sidebar`.\n *\n * Sections are separated by a thin divider. The title and icon are optional.\n * When `collapsible` is true the body can be toggled via the header button or\n * imperatively via a `ref` (`expand`, `collapse`, `toggle`).\n *\n * In rail (icon-only) mode the body is always visible regardless of open state.\n * When a sidebar filter is active and no children match, the section is hidden.\n *\n * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.Sidebar.html\n */\nexport const SidebarSection = forwardRef<SidebarSectionHandle, SidebarSectionProps>(\n function SidebarSection(\n {\n title,\n icon,\n collapsible = false,\n defaultOpen = true,\n open: controlledOpen,\n onOpenChange,\n children,\n className,\n ...props\n },\n ref,\n ) {\n const [internalOpen, setInternalOpen] = useState(defaultOpen);\n const isControlled = controlledOpen !== undefined;\n const open = isControlled ? controlledOpen : internalOpen;\n\n const sidebarCollapsed = useSidebarCollapsed();\n const filterValue = useContext(SidebarFilterContext);\n const bodyId = useId();\n\n const setAndNotify = (next: boolean) => {\n if (!isControlled) {\n setInternalOpen(next);\n }\n\n onOpenChange?.(next);\n };\n\n useImperativeHandle(ref, () => ({\n expand: () => setAndNotify(true),\n collapse: () => setAndNotify(false),\n toggle: () => setAndNotify(!open),\n }));\n\n // Hide section entirely when filter is active and no children match\n const hasVisibleChildren =\n filterValue.length === 0 || countMatchingItems(children, filterValue) > 0;\n\n if (!hasVisibleChildren) {\n return null;\n }\n\n // In rail mode the body is always visible\n const isOpen = sidebarCollapsed ? true : open;\n\n const showHeader = !!(title || icon || (collapsible && !sidebarCollapsed));\n\n return (\n <section className={[styles.section, className].filter(Boolean).join(' ')} {...props}>\n {showHeader &&\n (collapsible && !sidebarCollapsed ? (\n <button\n type=\"button\"\n className={styles.sectionHeader}\n onClick={() => setAndNotify(!open)}\n aria-expanded={open}\n aria-controls={bodyId}\n >\n {icon && (\n <span className={styles.sectionHeaderIcon}>\n <Icon icon={icon} size=\"sm\" aria-hidden />\n </span>\n )}\n {title && <span className={styles.sectionTitle}>{title}</span>}\n <span className={styles.sectionChevron}>\n <Icon icon={open ? PanUp : PanDown} size=\"sm\" aria-hidden />\n </span>\n </button>\n ) : (\n <div className={styles.sectionHeader}>\n {icon && (\n <span className={styles.sectionHeaderIcon}>\n <Icon icon={icon} size=\"sm\" aria-hidden />\n </span>\n )}\n {title && <span className={styles.sectionTitle}>{title}</span>}\n </div>\n ))}\n\n <div\n id={bodyId}\n className={[styles.sectionBody, !isOpen ? styles.sectionBodyCollapsed : null]\n .filter(Boolean)\n .join(' ')}\n aria-hidden={!isOpen || undefined}\n >\n <div className={styles.sectionBodyInner}>\n <ul className={styles.list}>{children}</ul>\n </div>\n </div>\n </section>\n );\n },\n);\n"],"mappings":";;;;;;;AAqBA,SAAS,EAAmB,GAAqB,GAAwB;CACvE,IAAI,IAAQ;AAiBZ,QAhBA,EAAS,QAAQ,IAAW,MAAU;AACpC,MAAI,CAAC,EAAe,EAAM,CACxB;EAGF,IAAM,IAAQ,EAAM;AAEpB,EAAI,OAAO,EAAM,SAAU,WACrB,EAAM,MAAM,aAAa,CAAC,SAAS,EAAO,aAAa,CAAC,IAC1D,MAEO,EAAM,aACf,KAAS,EAAmB,EAAM,UAAuB,EAAO;GAElE,EAEK;;AA8CT,IAAa,IAAiB,EAC5B,SACE,EACE,UACA,SACA,iBAAc,IACd,iBAAc,IACd,MAAM,GACN,iBACA,aACA,cACA,GAAG,KAEL,GACA;CACA,IAAM,CAAC,GAAc,KAAmB,EAAS,EAAY,EACvD,IAAe,MAAmB,KAAA,GAClC,IAAO,IAAe,IAAiB,GAEvC,IAAmB,GAAqB,EACxC,IAAc,EAAW,EAAqB,EAC9C,IAAS,GAAO,EAEhB,KAAgB,MAAkB;AAKtC,EAJK,KACH,EAAgB,EAAK,EAGvB,IAAe,EAAK;;AAatB,KAVA,EAAoB,UAAY;EAC9B,cAAc,EAAa,GAAK;EAChC,gBAAgB,EAAa,GAAM;EACnC,cAAc,EAAa,CAAC,EAAK;EAClC,EAAE,EAMC,EAFF,EAAY,WAAW,KAAK,EAAmB,GAAU,EAAY,GAAG,GAGxE,QAAO;CAIT,IAAM,IAAS,IAAmB,KAAO,GAEnC,IAAa,CAAC,EAAE,KAAS,KAAS,KAAe,CAAC;AAExD,QACE,kBAAC,WAAD;EAAS,WAAW,CAAC,EAAO,SAAS,EAAU,CAAC,OAAO,QAAQ,CAAC,KAAK,IAAI;EAAE,GAAI;YAA/E,CACG,MACE,KAAe,CAAC,IACf,kBAAC,UAAD;GACE,MAAK;GACL,WAAW,EAAO;GAClB,eAAe,EAAa,CAAC,EAAK;GAClC,iBAAe;GACf,iBAAe;aALjB;IAOG,KACC,kBAAC,QAAD;KAAM,WAAW,EAAO;eACtB,kBAAC,GAAD;MAAY;MAAM,MAAK;MAAK,eAAA;MAAc,CAAA;KACrC,CAAA;IAER,KAAS,kBAAC,QAAD;KAAM,WAAW,EAAO;eAAe;KAAa,CAAA;IAC9D,kBAAC,QAAD;KAAM,WAAW,EAAO;eACtB,kBAAC,GAAD;MAAM,MAAM,IAAO,IAAQ;MAAS,MAAK;MAAK,eAAA;MAAc,CAAA;KACvD,CAAA;IACA;OAET,kBAAC,OAAD;GAAK,WAAW,EAAO;aAAvB,CACG,KACC,kBAAC,QAAD;IAAM,WAAW,EAAO;cACtB,kBAAC,GAAD;KAAY;KAAM,MAAK;KAAK,eAAA;KAAc,CAAA;IACrC,CAAA,EAER,KAAS,kBAAC,QAAD;IAAM,WAAW,EAAO;cAAe;IAAa,CAAA,CAC1D;OAGV,kBAAC,OAAD;GACE,IAAI;GACJ,WAAW,CAAC,EAAO,aAAc,IAAuC,OAA9B,EAAO,qBAA4B,CAC1E,OAAO,QAAQ,CACf,KAAK,IAAI;GACZ,eAAa,CAAC,KAAU,KAAA;aAExB,kBAAC,OAAD;IAAK,WAAW,EAAO;cACrB,kBAAC,MAAD;KAAI,WAAW,EAAO;KAAO;KAAc,CAAA;IACvC,CAAA;GACF,CAAA,CACE;;EAGf"}
@@ -1,6 +1,6 @@
1
- export { Sidebar, SidebarCollapsedContext, useSidebarCollapsed } from './Sidebar';
2
1
  export type { SidebarProps } from './Sidebar';
3
- export { SidebarSection } from './SidebarSection';
4
- export type { SidebarSectionProps, SidebarSectionHandle } from './SidebarSection';
5
- export { SidebarItem } from './SidebarItem';
2
+ export { Sidebar, SidebarCollapsedContext, useSidebarCollapsed } from './Sidebar';
6
3
  export type { SidebarItemProps, SidebarMenuEntry } from './SidebarItem';
4
+ export { SidebarItem } from './SidebarItem';
5
+ export type { SidebarSectionHandle, SidebarSectionProps } from './SidebarSection';
6
+ export { SidebarSection } from './SidebarSection';
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./Sidebar/Sidebar.cjs`),t=require(`./Sidebar/SidebarSection.cjs`),n=require(`./Sidebar/SidebarItem.cjs`);exports.Sidebar=e.Sidebar,exports.SidebarCollapsedContext=e.SidebarCollapsedContext,exports.SidebarItem=n.SidebarItem,exports.SidebarSection=t.SidebarSection,exports.useSidebarCollapsed=e.useSidebarCollapsed;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./Sidebar/Sidebar.cjs`),t=require(`./Sidebar/SidebarItem.cjs`),n=require(`./Sidebar/SidebarSection.cjs`);exports.Sidebar=e.Sidebar,exports.SidebarCollapsedContext=e.SidebarCollapsedContext,exports.SidebarItem=t.SidebarItem,exports.SidebarSection=n.SidebarSection,exports.useSidebarCollapsed=e.useSidebarCollapsed;
@@ -1,4 +1,4 @@
1
1
  import { Sidebar as e, SidebarCollapsedContext as t, useSidebarCollapsed as n } from "./Sidebar/Sidebar.js";
2
- import { SidebarSection as r } from "./Sidebar/SidebarSection.js";
3
- import { SidebarItem as i } from "./Sidebar/SidebarItem.js";
4
- export { e as Sidebar, t as SidebarCollapsedContext, i as SidebarItem, r as SidebarSection, n as useSidebarCollapsed };
2
+ import { SidebarItem as r } from "./Sidebar/SidebarItem.js";
3
+ import { SidebarSection as i } from "./Sidebar/SidebarSection.js";
4
+ export { e as Sidebar, t as SidebarCollapsedContext, r as SidebarItem, i as SidebarSection, n as useSidebarCollapsed };
@@ -1 +1 @@
1
- {"version":3,"file":"Skeleton.cjs","names":[],"sources":["../../../src/components/Skeleton/Skeleton.tsx"],"sourcesContent":["import type { CSSProperties, HTMLAttributes } from \"react\";\nimport styles from \"./Skeleton.module.css\";\n\nexport type SkeletonVariant = \"rect\" | \"circle\" | \"text\";\n\nexport interface SkeletonProps extends HTMLAttributes<HTMLDivElement> {\n /** Shape of the placeholder. Defaults to `\"rect\"`. */\n variant?: SkeletonVariant;\n /** Width for rectangular placeholders. Defaults to `\"100%\"`. */\n width?: number | string;\n /** Height for rectangular placeholders. Defaults to `16`. */\n height?: number | string;\n /** Diameter for circular placeholders. Defaults to `40`. */\n size?: number;\n /** Number of rows for text placeholders. Defaults to `3`. */\n lines?: number;\n /**\n * Enables the shimmer animation.\n * Respects `prefers-reduced-motion`. Defaults to `true`.\n */\n animated?: boolean;\n}\n\nfunction toCssSize(value: number | string) {\n return typeof value === \"number\" ? `${value}px` : value;\n}\n\n/**\n * Loading placeholder for content-shaped skeleton screens.\n *\n * GNOME HIG recommends `Spinner` or `ProgressBar` for loading states; this is a\n * pragmatic web-style extension for layouts that benefit from placeholder shape.\n */\nexport function Skeleton({\n variant = \"rect\",\n width = \"100%\",\n height = 16,\n size = 40,\n lines = 3,\n animated = true,\n className,\n style,\n ...props\n}: SkeletonProps) {\n const classes = [\n styles.skeleton,\n styles[variant],\n animated ? styles.animated : null,\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n\n if (variant === \"text\") {\n const lineCount = Math.max(1, Math.floor(lines));\n\n return (\n <div\n aria-hidden=\"true\"\n className={classes}\n style={style}\n {...props}\n >\n {Array.from({ length: lineCount }, (_, index) => (\n <div\n key={index}\n className={styles.line}\n style={\n index === lineCount - 1\n ? ({ \"--skeleton-line-width\": \"60%\" } as CSSProperties)\n : undefined\n }\n />\n ))}\n </div>\n );\n }\n\n const shapeStyle: CSSProperties =\n variant === \"circle\"\n ? { width: `${size}px`, height: `${size}px` }\n : { width: toCssSize(width), height: toCssSize(height) };\n\n return (\n <div\n aria-hidden=\"true\"\n className={classes}\n style={{ ...shapeStyle, ...style }}\n {...props}\n />\n );\n}\n"],"mappings":"gFAuBA,SAAS,EAAU,EAAwB,CACzC,OAAO,OAAO,GAAU,SAAW,GAAG,EAAM,IAAM,EASpD,SAAgB,EAAS,CACvB,UAAU,OACV,QAAQ,OACR,SAAS,GACT,OAAO,GACP,QAAQ,EACR,WAAW,GACX,YACA,QACA,GAAG,GACa,CAChB,IAAM,EAAU,CACd,EAAA,QAAO,SACP,EAAA,QAAO,GACP,EAAW,EAAA,QAAO,SAAW,KAC7B,EACD,CACE,OAAO,QAAQ,CACf,KAAK,IAAI,CAEZ,GAAI,IAAY,OAAQ,CACtB,IAAM,EAAY,KAAK,IAAI,EAAG,KAAK,MAAM,EAAM,CAAC,CAEhD,OACE,EAAA,EAAA,KAAC,MAAD,CACE,cAAY,OACZ,UAAW,EACJ,QACP,GAAI,WAEH,MAAM,KAAK,CAAE,OAAQ,EAAW,EAAG,EAAG,KACrC,EAAA,EAAA,KAAC,MAAD,CAEE,UAAW,EAAA,QAAO,KAClB,MACE,IAAU,EAAY,EACjB,CAAE,wBAAyB,MAAO,CACnC,IAAA,GAEN,CAPK,EAOL,CACF,CACE,CAAA,CAIV,IAAM,EACJ,IAAY,SACR,CAAE,MAAO,GAAG,EAAK,IAAK,OAAQ,GAAG,EAAK,IAAK,CAC3C,CAAE,MAAO,EAAU,EAAM,CAAE,OAAQ,EAAU,EAAO,CAAE,CAE5D,OACE,EAAA,EAAA,KAAC,MAAD,CACE,cAAY,OACZ,UAAW,EACX,MAAO,CAAE,GAAG,EAAY,GAAG,EAAO,CAClC,GAAI,EACJ,CAAA"}
1
+ {"version":3,"file":"Skeleton.cjs","names":[],"sources":["../../../src/components/Skeleton/Skeleton.tsx"],"sourcesContent":["import type { CSSProperties, HTMLAttributes } from 'react';\n\nimport styles from './Skeleton.module.css';\n\nexport type SkeletonVariant = 'rect' | 'circle' | 'text';\n\nexport interface SkeletonProps extends HTMLAttributes<HTMLDivElement> {\n /** Shape of the placeholder. Defaults to `\"rect\"`. */\n variant?: SkeletonVariant;\n /** Width for rectangular placeholders. Defaults to `\"100%\"`. */\n width?: number | string;\n /** Height for rectangular placeholders. Defaults to `16`. */\n height?: number | string;\n /** Diameter for circular placeholders. Defaults to `40`. */\n size?: number;\n /** Number of rows for text placeholders. Defaults to `3`. */\n lines?: number;\n /**\n * Enables the shimmer animation.\n * Respects `prefers-reduced-motion`. Defaults to `true`.\n */\n animated?: boolean;\n}\n\nfunction toCssSize(value: number | string) {\n return typeof value === 'number' ? `${value}px` : value;\n}\n\n/**\n * Loading placeholder for content-shaped skeleton screens.\n *\n * GNOME HIG recommends `Spinner` or `ProgressBar` for loading states; this is a\n * pragmatic web-style extension for layouts that benefit from placeholder shape.\n */\nexport function Skeleton({\n variant = 'rect',\n width = '100%',\n height = 16,\n size = 40,\n lines = 3,\n animated = true,\n className,\n style,\n ...props\n}: SkeletonProps) {\n const classes = [styles.skeleton, styles[variant], animated ? styles.animated : null, className]\n .filter(Boolean)\n .join(' ');\n\n if (variant === 'text') {\n const lineCount = Math.max(1, Math.floor(lines));\n\n return (\n <div aria-hidden=\"true\" className={classes} style={style} {...props}>\n {Array.from({ length: lineCount }, (_, index) => (\n <div\n key={index}\n className={styles.line}\n style={\n index === lineCount - 1\n ? ({ '--skeleton-line-width': '60%' } as CSSProperties)\n : undefined\n }\n />\n ))}\n </div>\n );\n }\n\n const shapeStyle: CSSProperties =\n variant === 'circle'\n ? { width: `${size}px`, height: `${size}px` }\n : { width: toCssSize(width), height: toCssSize(height) };\n\n return (\n <div aria-hidden=\"true\" className={classes} style={{ ...shapeStyle, ...style }} {...props} />\n );\n}\n"],"mappings":"gFAwBA,SAAS,EAAU,EAAwB,CACzC,OAAO,OAAO,GAAU,SAAW,GAAG,EAAM,IAAM,EASpD,SAAgB,EAAS,CACvB,UAAU,OACV,QAAQ,OACR,SAAS,GACT,OAAO,GACP,QAAQ,EACR,WAAW,GACX,YACA,QACA,GAAG,GACa,CAChB,IAAM,EAAU,CAAC,EAAA,QAAO,SAAU,EAAA,QAAO,GAAU,EAAW,EAAA,QAAO,SAAW,KAAM,EAAU,CAC7F,OAAO,QAAQ,CACf,KAAK,IAAI,CAEZ,GAAI,IAAY,OAAQ,CACtB,IAAM,EAAY,KAAK,IAAI,EAAG,KAAK,MAAM,EAAM,CAAC,CAEhD,OACE,EAAA,EAAA,KAAC,MAAD,CAAK,cAAY,OAAO,UAAW,EAAgB,QAAO,GAAI,WAC3D,MAAM,KAAK,CAAE,OAAQ,EAAW,EAAG,EAAG,KACrC,EAAA,EAAA,KAAC,MAAD,CAEE,UAAW,EAAA,QAAO,KAClB,MACE,IAAU,EAAY,EACjB,CAAE,wBAAyB,MAAO,CACnC,IAAA,GAEN,CAPK,EAOL,CACF,CACE,CAAA,CAIV,IAAM,EACJ,IAAY,SACR,CAAE,MAAO,GAAG,EAAK,IAAK,OAAQ,GAAG,EAAK,IAAK,CAC3C,CAAE,MAAO,EAAU,EAAM,CAAE,OAAQ,EAAU,EAAO,CAAE,CAE5D,OACE,EAAA,EAAA,KAAC,MAAD,CAAK,cAAY,OAAO,UAAW,EAAS,MAAO,CAAE,GAAG,EAAY,GAAG,EAAO,CAAE,GAAI,EAAS,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { HTMLAttributes } from 'react';
2
- export type SkeletonVariant = "rect" | "circle" | "text";
2
+ export type SkeletonVariant = 'rect' | 'circle' | 'text';
3
3
  export interface SkeletonProps extends HTMLAttributes<HTMLDivElement> {
4
4
  /** Shape of the placeholder. Defaults to `"rect"`. */
5
5
  variant?: SkeletonVariant;
@@ -1 +1 @@
1
- {"version":3,"file":"Skeleton.js","names":[],"sources":["../../../src/components/Skeleton/Skeleton.tsx"],"sourcesContent":["import type { CSSProperties, HTMLAttributes } from \"react\";\nimport styles from \"./Skeleton.module.css\";\n\nexport type SkeletonVariant = \"rect\" | \"circle\" | \"text\";\n\nexport interface SkeletonProps extends HTMLAttributes<HTMLDivElement> {\n /** Shape of the placeholder. Defaults to `\"rect\"`. */\n variant?: SkeletonVariant;\n /** Width for rectangular placeholders. Defaults to `\"100%\"`. */\n width?: number | string;\n /** Height for rectangular placeholders. Defaults to `16`. */\n height?: number | string;\n /** Diameter for circular placeholders. Defaults to `40`. */\n size?: number;\n /** Number of rows for text placeholders. Defaults to `3`. */\n lines?: number;\n /**\n * Enables the shimmer animation.\n * Respects `prefers-reduced-motion`. Defaults to `true`.\n */\n animated?: boolean;\n}\n\nfunction toCssSize(value: number | string) {\n return typeof value === \"number\" ? `${value}px` : value;\n}\n\n/**\n * Loading placeholder for content-shaped skeleton screens.\n *\n * GNOME HIG recommends `Spinner` or `ProgressBar` for loading states; this is a\n * pragmatic web-style extension for layouts that benefit from placeholder shape.\n */\nexport function Skeleton({\n variant = \"rect\",\n width = \"100%\",\n height = 16,\n size = 40,\n lines = 3,\n animated = true,\n className,\n style,\n ...props\n}: SkeletonProps) {\n const classes = [\n styles.skeleton,\n styles[variant],\n animated ? styles.animated : null,\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n\n if (variant === \"text\") {\n const lineCount = Math.max(1, Math.floor(lines));\n\n return (\n <div\n aria-hidden=\"true\"\n className={classes}\n style={style}\n {...props}\n >\n {Array.from({ length: lineCount }, (_, index) => (\n <div\n key={index}\n className={styles.line}\n style={\n index === lineCount - 1\n ? ({ \"--skeleton-line-width\": \"60%\" } as CSSProperties)\n : undefined\n }\n />\n ))}\n </div>\n );\n }\n\n const shapeStyle: CSSProperties =\n variant === \"circle\"\n ? { width: `${size}px`, height: `${size}px` }\n : { width: toCssSize(width), height: toCssSize(height) };\n\n return (\n <div\n aria-hidden=\"true\"\n className={classes}\n style={{ ...shapeStyle, ...style }}\n {...props}\n />\n );\n}\n"],"mappings":";;;AAuBA,SAAS,EAAU,GAAwB;AACzC,QAAO,OAAO,KAAU,WAAW,GAAG,EAAM,MAAM;;AASpD,SAAgB,EAAS,EACvB,aAAU,QACV,WAAQ,QACR,YAAS,IACT,UAAO,IACP,WAAQ,GACR,cAAW,IACX,cACA,UACA,GAAG,KACa;CAChB,IAAM,IAAU;EACd,EAAO;EACP,EAAO;EACP,IAAW,EAAO,WAAW;EAC7B;EACD,CACE,OAAO,QAAQ,CACf,KAAK,IAAI;AAEZ,KAAI,MAAY,QAAQ;EACtB,IAAM,IAAY,KAAK,IAAI,GAAG,KAAK,MAAM,EAAM,CAAC;AAEhD,SACE,kBAAC,OAAD;GACE,eAAY;GACZ,WAAW;GACJ;GACP,GAAI;aAEH,MAAM,KAAK,EAAE,QAAQ,GAAW,GAAG,GAAG,MACrC,kBAAC,OAAD;IAEE,WAAW,EAAO;IAClB,OACE,MAAU,IAAY,IACjB,EAAE,yBAAyB,OAAO,GACnC,KAAA;IAEN,EAPK,EAOL,CACF;GACE,CAAA;;CAIV,IAAM,IACJ,MAAY,WACR;EAAE,OAAO,GAAG,EAAK;EAAK,QAAQ,GAAG,EAAK;EAAK,GAC3C;EAAE,OAAO,EAAU,EAAM;EAAE,QAAQ,EAAU,EAAO;EAAE;AAE5D,QACE,kBAAC,OAAD;EACE,eAAY;EACZ,WAAW;EACX,OAAO;GAAE,GAAG;GAAY,GAAG;GAAO;EAClC,GAAI;EACJ,CAAA"}
1
+ {"version":3,"file":"Skeleton.js","names":[],"sources":["../../../src/components/Skeleton/Skeleton.tsx"],"sourcesContent":["import type { CSSProperties, HTMLAttributes } from 'react';\n\nimport styles from './Skeleton.module.css';\n\nexport type SkeletonVariant = 'rect' | 'circle' | 'text';\n\nexport interface SkeletonProps extends HTMLAttributes<HTMLDivElement> {\n /** Shape of the placeholder. Defaults to `\"rect\"`. */\n variant?: SkeletonVariant;\n /** Width for rectangular placeholders. Defaults to `\"100%\"`. */\n width?: number | string;\n /** Height for rectangular placeholders. Defaults to `16`. */\n height?: number | string;\n /** Diameter for circular placeholders. Defaults to `40`. */\n size?: number;\n /** Number of rows for text placeholders. Defaults to `3`. */\n lines?: number;\n /**\n * Enables the shimmer animation.\n * Respects `prefers-reduced-motion`. Defaults to `true`.\n */\n animated?: boolean;\n}\n\nfunction toCssSize(value: number | string) {\n return typeof value === 'number' ? `${value}px` : value;\n}\n\n/**\n * Loading placeholder for content-shaped skeleton screens.\n *\n * GNOME HIG recommends `Spinner` or `ProgressBar` for loading states; this is a\n * pragmatic web-style extension for layouts that benefit from placeholder shape.\n */\nexport function Skeleton({\n variant = 'rect',\n width = '100%',\n height = 16,\n size = 40,\n lines = 3,\n animated = true,\n className,\n style,\n ...props\n}: SkeletonProps) {\n const classes = [styles.skeleton, styles[variant], animated ? styles.animated : null, className]\n .filter(Boolean)\n .join(' ');\n\n if (variant === 'text') {\n const lineCount = Math.max(1, Math.floor(lines));\n\n return (\n <div aria-hidden=\"true\" className={classes} style={style} {...props}>\n {Array.from({ length: lineCount }, (_, index) => (\n <div\n key={index}\n className={styles.line}\n style={\n index === lineCount - 1\n ? ({ '--skeleton-line-width': '60%' } as CSSProperties)\n : undefined\n }\n />\n ))}\n </div>\n );\n }\n\n const shapeStyle: CSSProperties =\n variant === 'circle'\n ? { width: `${size}px`, height: `${size}px` }\n : { width: toCssSize(width), height: toCssSize(height) };\n\n return (\n <div aria-hidden=\"true\" className={classes} style={{ ...shapeStyle, ...style }} {...props} />\n );\n}\n"],"mappings":";;;AAwBA,SAAS,EAAU,GAAwB;AACzC,QAAO,OAAO,KAAU,WAAW,GAAG,EAAM,MAAM;;AASpD,SAAgB,EAAS,EACvB,aAAU,QACV,WAAQ,QACR,YAAS,IACT,UAAO,IACP,WAAQ,GACR,cAAW,IACX,cACA,UACA,GAAG,KACa;CAChB,IAAM,IAAU;EAAC,EAAO;EAAU,EAAO;EAAU,IAAW,EAAO,WAAW;EAAM;EAAU,CAC7F,OAAO,QAAQ,CACf,KAAK,IAAI;AAEZ,KAAI,MAAY,QAAQ;EACtB,IAAM,IAAY,KAAK,IAAI,GAAG,KAAK,MAAM,EAAM,CAAC;AAEhD,SACE,kBAAC,OAAD;GAAK,eAAY;GAAO,WAAW;GAAgB;GAAO,GAAI;aAC3D,MAAM,KAAK,EAAE,QAAQ,GAAW,GAAG,GAAG,MACrC,kBAAC,OAAD;IAEE,WAAW,EAAO;IAClB,OACE,MAAU,IAAY,IACjB,EAAE,yBAAyB,OAAO,GACnC,KAAA;IAEN,EAPK,EAOL,CACF;GACE,CAAA;;CAIV,IAAM,IACJ,MAAY,WACR;EAAE,OAAO,GAAG,EAAK;EAAK,QAAQ,GAAG,EAAK;EAAK,GAC3C;EAAE,OAAO,EAAU,EAAM;EAAE,QAAQ,EAAU,EAAO;EAAE;AAE5D,QACE,kBAAC,OAAD;EAAK,eAAY;EAAO,WAAW;EAAS,OAAO;GAAE,GAAG;GAAY,GAAG;GAAO;EAAE,GAAI;EAAS,CAAA"}
@@ -1,2 +1,2 @@
1
- var e={skeleton:`_skeleton_wkug0_3`,line:`_line_wkug0_15`,animated:`_animated_wkug0_28`,shimmer:`_shimmer_wkug0_1`,rect:`_rect_wkug0_35`,circle:`_circle_wkug0_39`,text:`_text_wkug0_43`};exports.default=e;
1
+ var e={skeleton:`_skeleton_sxiec_3`,line:`_line_sxiec_15`,animated:`_animated_sxiec_23`,shimmer:`_shimmer_sxiec_1`,rect:`_rect_sxiec_30`,circle:`_circle_sxiec_34`,text:`_text_sxiec_38`};exports.default=e;
2
2
  //# sourceMappingURL=Skeleton.module.css.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Skeleton.module.css.cjs","names":[],"sources":["../../../src/components/Skeleton/Skeleton.module.css"],"sourcesContent":["/* Base */\n\n.skeleton {\n --skeleton-base: var(--gnome-skeleton-base-color, rgba(0, 0, 0, 0.09));\n --skeleton-highlight: var(--gnome-skeleton-highlight-color, rgba(255, 255, 255, 0.55));\n\n position: relative;\n display: block;\n flex-shrink: 0;\n overflow: hidden;\n background-color: var(--skeleton-base);\n}\n\n.skeleton::after,\n.line::after {\n content: \"\";\n position: absolute;\n inset: 0;\n transform: translateX(-100%);\n background: linear-gradient(\n 90deg,\n transparent,\n var(--skeleton-highlight),\n transparent\n );\n}\n\n.animated::after,\n.animated .line::after {\n animation: shimmer 1.4s var(--gnome-easing-default, ease) infinite;\n}\n\n/* Variants */\n\n.rect {\n border-radius: var(--gnome-radius-md, 6px);\n}\n\n.circle {\n border-radius: 50%;\n}\n\n.text {\n display: flex;\n width: 100%;\n flex-direction: column;\n gap: 8px;\n background-color: transparent;\n}\n\n.text::after {\n display: none;\n}\n\n.line {\n position: relative;\n width: var(--skeleton-line-width, 100%);\n height: 12px;\n overflow: hidden;\n border-radius: var(--gnome-radius-pill, 999px);\n background-color: var(--skeleton-base);\n}\n\n/* Keyframes */\n\n@keyframes shimmer {\n 100% {\n transform: translateX(100%);\n }\n}\n\n/* Dark mode */\n\n@media (prefers-color-scheme: dark) {\n .skeleton {\n --skeleton-base: var(--gnome-skeleton-base-color, rgba(255, 255, 255, 0.12));\n --skeleton-highlight: var(--gnome-skeleton-highlight-color, rgba(255, 255, 255, 0.18));\n }\n}\n\n/* Reduced motion */\n\n@media (prefers-reduced-motion: reduce) {\n .animated::after,\n .animated .line::after {\n animation: none;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"Skeleton.module.css.cjs","names":[],"sources":["../../../src/components/Skeleton/Skeleton.module.css"],"sourcesContent":["/* Base */\n\n.skeleton {\n --skeleton-base: var(--gnome-skeleton-base-color, rgba(0, 0, 0, 0.09));\n --skeleton-highlight: var(--gnome-skeleton-highlight-color, rgba(255, 255, 255, 0.55));\n\n position: relative;\n display: block;\n flex-shrink: 0;\n overflow: hidden;\n background-color: var(--skeleton-base);\n}\n\n.skeleton::after,\n.line::after {\n content: \"\";\n position: absolute;\n inset: 0;\n transform: translateX(-100%);\n background: linear-gradient(90deg, transparent, var(--skeleton-highlight), transparent);\n}\n\n.animated::after,\n.animated .line::after {\n animation: shimmer 1.4s var(--gnome-easing-default, ease) infinite;\n}\n\n/* Variants */\n\n.rect {\n border-radius: var(--gnome-radius-md, 6px);\n}\n\n.circle {\n border-radius: 50%;\n}\n\n.text {\n display: flex;\n width: 100%;\n flex-direction: column;\n gap: 8px;\n background-color: transparent;\n}\n\n.text::after {\n display: none;\n}\n\n.line {\n position: relative;\n width: var(--skeleton-line-width, 100%);\n height: 12px;\n overflow: hidden;\n border-radius: var(--gnome-radius-pill, 999px);\n background-color: var(--skeleton-base);\n}\n\n/* Keyframes */\n\n@keyframes shimmer {\n 100% {\n transform: translateX(100%);\n }\n}\n\n/* Dark mode */\n\n@media (prefers-color-scheme: dark) {\n .skeleton {\n --skeleton-base: var(--gnome-skeleton-base-color, rgba(255, 255, 255, 0.12));\n --skeleton-highlight: var(--gnome-skeleton-highlight-color, rgba(255, 255, 255, 0.18));\n }\n}\n\n/* Reduced motion */\n\n@media (prefers-reduced-motion: reduce) {\n .animated::after,\n .animated .line::after {\n animation: none;\n }\n}\n"],"mappings":""}
@@ -1,11 +1,11 @@
1
1
  var e = {
2
- skeleton: "_skeleton_wkug0_3",
3
- line: "_line_wkug0_15",
4
- animated: "_animated_wkug0_28",
5
- shimmer: "_shimmer_wkug0_1",
6
- rect: "_rect_wkug0_35",
7
- circle: "_circle_wkug0_39",
8
- text: "_text_wkug0_43"
2
+ skeleton: "_skeleton_sxiec_3",
3
+ line: "_line_sxiec_15",
4
+ animated: "_animated_sxiec_23",
5
+ shimmer: "_shimmer_sxiec_1",
6
+ rect: "_rect_sxiec_30",
7
+ circle: "_circle_sxiec_34",
8
+ text: "_text_sxiec_38"
9
9
  };
10
10
  //#endregion
11
11
  export { e as default };
@@ -1 +1 @@
1
- {"version":3,"file":"Skeleton.module.css.js","names":[],"sources":["../../../src/components/Skeleton/Skeleton.module.css"],"sourcesContent":["/* Base */\n\n.skeleton {\n --skeleton-base: var(--gnome-skeleton-base-color, rgba(0, 0, 0, 0.09));\n --skeleton-highlight: var(--gnome-skeleton-highlight-color, rgba(255, 255, 255, 0.55));\n\n position: relative;\n display: block;\n flex-shrink: 0;\n overflow: hidden;\n background-color: var(--skeleton-base);\n}\n\n.skeleton::after,\n.line::after {\n content: \"\";\n position: absolute;\n inset: 0;\n transform: translateX(-100%);\n background: linear-gradient(\n 90deg,\n transparent,\n var(--skeleton-highlight),\n transparent\n );\n}\n\n.animated::after,\n.animated .line::after {\n animation: shimmer 1.4s var(--gnome-easing-default, ease) infinite;\n}\n\n/* Variants */\n\n.rect {\n border-radius: var(--gnome-radius-md, 6px);\n}\n\n.circle {\n border-radius: 50%;\n}\n\n.text {\n display: flex;\n width: 100%;\n flex-direction: column;\n gap: 8px;\n background-color: transparent;\n}\n\n.text::after {\n display: none;\n}\n\n.line {\n position: relative;\n width: var(--skeleton-line-width, 100%);\n height: 12px;\n overflow: hidden;\n border-radius: var(--gnome-radius-pill, 999px);\n background-color: var(--skeleton-base);\n}\n\n/* Keyframes */\n\n@keyframes shimmer {\n 100% {\n transform: translateX(100%);\n }\n}\n\n/* Dark mode */\n\n@media (prefers-color-scheme: dark) {\n .skeleton {\n --skeleton-base: var(--gnome-skeleton-base-color, rgba(255, 255, 255, 0.12));\n --skeleton-highlight: var(--gnome-skeleton-highlight-color, rgba(255, 255, 255, 0.18));\n }\n}\n\n/* Reduced motion */\n\n@media (prefers-reduced-motion: reduce) {\n .animated::after,\n .animated .line::after {\n animation: none;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"Skeleton.module.css.js","names":[],"sources":["../../../src/components/Skeleton/Skeleton.module.css"],"sourcesContent":["/* Base */\n\n.skeleton {\n --skeleton-base: var(--gnome-skeleton-base-color, rgba(0, 0, 0, 0.09));\n --skeleton-highlight: var(--gnome-skeleton-highlight-color, rgba(255, 255, 255, 0.55));\n\n position: relative;\n display: block;\n flex-shrink: 0;\n overflow: hidden;\n background-color: var(--skeleton-base);\n}\n\n.skeleton::after,\n.line::after {\n content: \"\";\n position: absolute;\n inset: 0;\n transform: translateX(-100%);\n background: linear-gradient(90deg, transparent, var(--skeleton-highlight), transparent);\n}\n\n.animated::after,\n.animated .line::after {\n animation: shimmer 1.4s var(--gnome-easing-default, ease) infinite;\n}\n\n/* Variants */\n\n.rect {\n border-radius: var(--gnome-radius-md, 6px);\n}\n\n.circle {\n border-radius: 50%;\n}\n\n.text {\n display: flex;\n width: 100%;\n flex-direction: column;\n gap: 8px;\n background-color: transparent;\n}\n\n.text::after {\n display: none;\n}\n\n.line {\n position: relative;\n width: var(--skeleton-line-width, 100%);\n height: 12px;\n overflow: hidden;\n border-radius: var(--gnome-radius-pill, 999px);\n background-color: var(--skeleton-base);\n}\n\n/* Keyframes */\n\n@keyframes shimmer {\n 100% {\n transform: translateX(100%);\n }\n}\n\n/* Dark mode */\n\n@media (prefers-color-scheme: dark) {\n .skeleton {\n --skeleton-base: var(--gnome-skeleton-base-color, rgba(255, 255, 255, 0.12));\n --skeleton-highlight: var(--gnome-skeleton-highlight-color, rgba(255, 255, 255, 0.18));\n }\n}\n\n/* Reduced motion */\n\n@media (prefers-reduced-motion: reduce) {\n .animated::after,\n .animated .line::after {\n animation: none;\n }\n}\n"],"mappings":""}
@@ -1,2 +1,2 @@
1
- export { Skeleton } from './Skeleton';
2
1
  export type { SkeletonProps, SkeletonVariant } from './Skeleton';
2
+ export { Skeleton } from './Skeleton';
@@ -1 +1 @@
1
- {"version":3,"file":"Slider.cjs","names":[],"sources":["../../../src/components/Slider/Slider.tsx"],"sourcesContent":["import {\n useRef,\n useCallback,\n type PointerEvent,\n type KeyboardEvent,\n type HTMLAttributes,\n} from \"react\";\nimport styles from \"./Slider.module.css\";\n\nexport interface SliderProps\n extends Omit<HTMLAttributes<HTMLDivElement>, \"onChange\"> {\n /** Current value. Must be between `min` and `max`. */\n value: number;\n /** Called when the value changes. */\n onChange: (value: number) => void;\n /** Minimum value. Defaults to `0`. */\n min?: number;\n /** Maximum value. Defaults to `100`. */\n max?: number;\n /**\n * Granularity of each step.\n * - Arrow keys move by one step.\n * - Page Up/Down move by 10 steps.\n * Defaults to `1`.\n */\n step?: number;\n /** Disables the control. */\n disabled?: boolean;\n /**\n * Marks to display along the track.\n * Each mark can have an optional label rendered below the track.\n */\n marks?: Array<{ value: number; label?: string }>;\n /** Accessible label. Required when no visible `<label>` is present. */\n \"aria-label\"?: string;\n /** Associates the control with a visible label element. */\n \"aria-labelledby\"?: string;\n /** `id` of an element that describes the current value (e.g. a live region). */\n \"aria-describedby\"?: string;\n}\n\nfunction clamp(v: number, min: number, max: number) {\n return Math.min(max, Math.max(min, v));\n}\n\nfunction snapToStep(v: number, min: number, step: number, decimals: number) {\n return parseFloat((Math.round((v - min) / step) * step + min).toFixed(decimals));\n}\n\nfunction countDecimals(n: number) {\n const s = n.toString();\n const dot = s.indexOf(\".\");\n return dot === -1 ? 0 : s.length - dot - 1;\n}\n\n/**\n * Draggable range slider following the Adwaita `GtkScale` pattern.\n *\n * - Pointer (mouse / touch / pen) drag to set value continuously.\n * - Keyboard: ← / → move by one step; Page Up/Down by 10 steps; Home/End jump to bounds.\n * - Optional tick marks with labels.\n * - Fills the track from the left up to the thumb (accent colour).\n *\n * @see https://developer.gnome.org/hig/patterns/controls/sliders.html\n */\nexport function Slider({\n value,\n onChange,\n min = 0,\n max = 100,\n step = 1,\n disabled = false,\n marks,\n className,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-describedby\": ariaDescribedBy,\n ...props\n}: SliderProps) {\n const trackRef = useRef<HTMLDivElement>(null);\n const dp = countDecimals(step);\n\n const pct = ((clamp(value, min, max) - min) / (max - min)) * 100;\n\n const setFromX = useCallback(\n (clientX: number) => {\n if (!trackRef.current) return;\n const { left, width } = trackRef.current.getBoundingClientRect();\n const raw = ((clientX - left) / width) * (max - min) + min;\n onChange(clamp(snapToStep(raw, min, step, dp), min, max));\n },\n [min, max, step, dp, onChange]\n );\n\n // Pointer drag — capture on the thumb, move anywhere\n const handlePointerDown = useCallback(\n (e: PointerEvent<HTMLDivElement>) => {\n if (disabled) return;\n e.currentTarget.setPointerCapture(e.pointerId);\n setFromX(e.clientX);\n },\n [disabled, setFromX]\n );\n\n const handlePointerMove = useCallback(\n (e: PointerEvent<HTMLDivElement>) => {\n if (!e.currentTarget.hasPointerCapture(e.pointerId)) return;\n setFromX(e.clientX);\n },\n [setFromX]\n );\n\n // Keyboard\n const handleKeyDown = useCallback(\n (e: KeyboardEvent<HTMLDivElement>) => {\n const set = (next: number) => {\n e.preventDefault();\n onChange(clamp(snapToStep(next, min, step, dp), min, max));\n };\n switch (e.key) {\n case \"ArrowRight\":\n case \"ArrowUp\":\n set(value + step);\n break;\n case \"ArrowLeft\":\n case \"ArrowDown\":\n set(value - step);\n break;\n case \"PageUp\":\n set(value + step * 10);\n break;\n case \"PageDown\":\n set(value - step * 10);\n break;\n case \"Home\":\n set(min);\n break;\n case \"End\":\n set(max);\n break;\n }\n },\n [value, step, min, max, dp, onChange]\n );\n\n const hasMarks = marks && marks.length > 0;\n const hasLabels = hasMarks && marks.some((m) => m.label);\n\n return (\n <div\n className={[\n styles.wrapper,\n hasLabels ? styles.hasLabels : null,\n className,\n ]\n .filter(Boolean)\n .join(\" \")}\n {...props}\n >\n {/* Accessible slider */}\n <div\n ref={trackRef}\n role=\"slider\"\n tabIndex={disabled ? -1 : 0}\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={value}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-describedby={ariaDescribedBy}\n aria-disabled={disabled || undefined}\n className={[styles.track, disabled ? styles.disabled : null]\n .filter(Boolean)\n .join(\" \")}\n onPointerDown={handlePointerDown}\n onPointerMove={handlePointerMove}\n onKeyDown={disabled ? undefined : handleKeyDown}\n >\n {/* Filled portion */}\n <div className={styles.fill} style={{ width: `${pct}%` }} />\n\n {/* Thumb */}\n <div\n className={styles.thumb}\n style={{ left: `${pct}%` }}\n aria-hidden=\"true\"\n />\n\n {/* Tick marks */}\n {hasMarks &&\n marks.map((m) => {\n const mPct = ((clamp(m.value, min, max) - min) / (max - min)) * 100;\n return (\n <div\n key={m.value}\n className={styles.tick}\n style={{ left: `${mPct}%` }}\n aria-hidden=\"true\"\n />\n );\n })}\n </div>\n\n {/* Mark labels */}\n {hasLabels && (\n <div className={styles.labels} aria-hidden=\"true\">\n {marks.map((m) => {\n const mPct = ((clamp(m.value, min, max) - min) / (max - min)) * 100;\n return (\n <span\n key={m.value}\n className={styles.markLabel}\n style={{ left: `${mPct}%` }}\n >\n {m.label}\n </span>\n );\n })}\n </div>\n )}\n </div>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Slider.cjs","names":[],"sources":["../../../src/components/Slider/Slider.tsx"],"sourcesContent":["import {\n type HTMLAttributes,\n type KeyboardEvent,\n type PointerEvent,\n useCallback,\n useRef,\n} from 'react';\n\nimport styles from './Slider.module.css';\n\nexport interface SliderProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {\n /** Current value. Must be between `min` and `max`. */\n value: number;\n /** Called when the value changes. */\n onChange: (value: number) => void;\n /** Minimum value. Defaults to `0`. */\n min?: number;\n /** Maximum value. Defaults to `100`. */\n max?: number;\n /**\n * Granularity of each step.\n * - Arrow keys move by one step.\n * - Page Up/Down move by 10 steps.\n * Defaults to `1`.\n */\n step?: number;\n /** Disables the control. */\n disabled?: boolean;\n /**\n * Marks to display along the track.\n * Each mark can have an optional label rendered below the track.\n */\n marks?: Array<{ value: number; label?: string }>;\n /** Accessible label. Required when no visible `<label>` is present. */\n 'aria-label'?: string;\n /** Associates the control with a visible label element. */\n 'aria-labelledby'?: string;\n /** `id` of an element that describes the current value (e.g. a live region). */\n 'aria-describedby'?: string;\n}\n\nfunction clamp(v: number, min: number, max: number) {\n return Math.min(max, Math.max(min, v));\n}\n\nfunction snapToStep(v: number, min: number, step: number, decimals: number) {\n return parseFloat((Math.round((v - min) / step) * step + min).toFixed(decimals));\n}\n\nfunction countDecimals(n: number) {\n const s = n.toString();\n const dot = s.indexOf('.');\n\n return dot === -1 ? 0 : s.length - dot - 1;\n}\n\n/**\n * Draggable range slider following the Adwaita `GtkScale` pattern.\n *\n * - Pointer (mouse / touch / pen) drag to set value continuously.\n * - Keyboard: ← / → move by one step; Page Up/Down by 10 steps; Home/End jump to bounds.\n * - Optional tick marks with labels.\n * - Fills the track from the left up to the thumb (accent colour).\n *\n * @see https://developer.gnome.org/hig/patterns/controls/sliders.html\n */\nexport function Slider({\n value,\n onChange,\n min = 0,\n max = 100,\n step = 1,\n disabled = false,\n marks,\n className,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n 'aria-describedby': ariaDescribedBy,\n ...props\n}: SliderProps) {\n const trackRef = useRef<HTMLDivElement>(null);\n const dp = countDecimals(step);\n\n const pct = ((clamp(value, min, max) - min) / (max - min)) * 100;\n\n const setFromX = useCallback(\n (clientX: number) => {\n if (!trackRef.current) {\n return;\n }\n\n const { left, width } = trackRef.current.getBoundingClientRect();\n const raw = ((clientX - left) / width) * (max - min) + min;\n\n onChange(clamp(snapToStep(raw, min, step, dp), min, max));\n },\n [min, max, step, dp, onChange],\n );\n\n // Pointer drag — capture on the thumb, move anywhere\n const handlePointerDown = useCallback(\n (e: PointerEvent<HTMLDivElement>) => {\n if (disabled) {\n return;\n }\n\n e.currentTarget.setPointerCapture(e.pointerId);\n setFromX(e.clientX);\n },\n [disabled, setFromX],\n );\n\n const handlePointerMove = useCallback(\n (e: PointerEvent<HTMLDivElement>) => {\n if (!e.currentTarget.hasPointerCapture(e.pointerId)) {\n return;\n }\n\n setFromX(e.clientX);\n },\n [setFromX],\n );\n\n // Keyboard\n const handleKeyDown = useCallback(\n (e: KeyboardEvent<HTMLDivElement>) => {\n const set = (next: number) => {\n e.preventDefault();\n onChange(clamp(snapToStep(next, min, step, dp), min, max));\n };\n\n switch (e.key) {\n case 'ArrowRight':\n case 'ArrowUp':\n set(value + step);\n break;\n case 'ArrowLeft':\n case 'ArrowDown':\n set(value - step);\n break;\n case 'PageUp':\n set(value + step * 10);\n break;\n case 'PageDown':\n set(value - step * 10);\n break;\n case 'Home':\n set(min);\n break;\n case 'End':\n set(max);\n break;\n }\n },\n [value, step, min, max, dp, onChange],\n );\n\n const hasMarks = marks && marks.length > 0;\n const hasLabels = hasMarks && marks.some((m) => m.label);\n\n return (\n <div\n className={[styles.wrapper, hasLabels ? styles.hasLabels : null, className]\n .filter(Boolean)\n .join(' ')}\n {...props}\n >\n {/* Accessible slider */}\n <div\n ref={trackRef}\n role=\"slider\"\n tabIndex={disabled ? -1 : 0}\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={value}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-describedby={ariaDescribedBy}\n aria-disabled={disabled || undefined}\n className={[styles.track, disabled ? styles.disabled : null].filter(Boolean).join(' ')}\n onPointerDown={handlePointerDown}\n onPointerMove={handlePointerMove}\n onKeyDown={disabled ? undefined : handleKeyDown}\n >\n {/* Filled portion */}\n <div className={styles.fill} style={{ width: `${pct}%` }} />\n\n {/* Thumb */}\n <div className={styles.thumb} style={{ left: `${pct}%` }} aria-hidden=\"true\" />\n\n {/* Tick marks */}\n {hasMarks &&\n marks.map((m) => {\n const mPct = ((clamp(m.value, min, max) - min) / (max - min)) * 100;\n\n return (\n <div\n key={m.value}\n className={styles.tick}\n style={{ left: `${mPct}%` }}\n aria-hidden=\"true\"\n />\n );\n })}\n </div>\n\n {/* Mark labels */}\n {hasLabels && (\n <div className={styles.labels} aria-hidden=\"true\">\n {marks.map((m) => {\n const mPct = ((clamp(m.value, min, max) - min) / (max - min)) * 100;\n\n return (\n <span key={m.value} className={styles.markLabel} style={{ left: `${mPct}%` }}>\n {m.label}\n </span>\n );\n })}\n </div>\n )}\n </div>\n );\n}\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { HTMLAttributes } from 'react';
2
- export interface SliderProps extends Omit<HTMLAttributes<HTMLDivElement>, "onChange"> {
2
+ export interface SliderProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {
3
3
  /** Current value. Must be between `min` and `max`. */
4
4
  value: number;
5
5
  /** Called when the value changes. */
@@ -26,11 +26,11 @@ export interface SliderProps extends Omit<HTMLAttributes<HTMLDivElement>, "onCha
26
26
  label?: string;
27
27
  }>;
28
28
  /** Accessible label. Required when no visible `<label>` is present. */
29
- "aria-label"?: string;
29
+ 'aria-label'?: string;
30
30
  /** Associates the control with a visible label element. */
31
- "aria-labelledby"?: string;
31
+ 'aria-labelledby'?: string;
32
32
  /** `id` of an element that describes the current value (e.g. a live region). */
33
- "aria-describedby"?: string;
33
+ 'aria-describedby'?: string;
34
34
  }
35
35
  /**
36
36
  * Draggable range slider following the Adwaita `GtkScale` pattern.
@@ -42,4 +42,4 @@ export interface SliderProps extends Omit<HTMLAttributes<HTMLDivElement>, "onCha
42
42
  *
43
43
  * @see https://developer.gnome.org/hig/patterns/controls/sliders.html
44
44
  */
45
- export declare function Slider({ value, onChange, min, max, step, disabled, marks, className, "aria-label": ariaLabel, "aria-labelledby": ariaLabelledBy, "aria-describedby": ariaDescribedBy, ...props }: SliderProps): import("react/jsx-runtime").JSX.Element;
45
+ export declare function Slider({ value, onChange, min, max, step, disabled, marks, className, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy, 'aria-describedby': ariaDescribedBy, ...props }: SliderProps): import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"Slider.js","names":[],"sources":["../../../src/components/Slider/Slider.tsx"],"sourcesContent":["import {\n useRef,\n useCallback,\n type PointerEvent,\n type KeyboardEvent,\n type HTMLAttributes,\n} from \"react\";\nimport styles from \"./Slider.module.css\";\n\nexport interface SliderProps\n extends Omit<HTMLAttributes<HTMLDivElement>, \"onChange\"> {\n /** Current value. Must be between `min` and `max`. */\n value: number;\n /** Called when the value changes. */\n onChange: (value: number) => void;\n /** Minimum value. Defaults to `0`. */\n min?: number;\n /** Maximum value. Defaults to `100`. */\n max?: number;\n /**\n * Granularity of each step.\n * - Arrow keys move by one step.\n * - Page Up/Down move by 10 steps.\n * Defaults to `1`.\n */\n step?: number;\n /** Disables the control. */\n disabled?: boolean;\n /**\n * Marks to display along the track.\n * Each mark can have an optional label rendered below the track.\n */\n marks?: Array<{ value: number; label?: string }>;\n /** Accessible label. Required when no visible `<label>` is present. */\n \"aria-label\"?: string;\n /** Associates the control with a visible label element. */\n \"aria-labelledby\"?: string;\n /** `id` of an element that describes the current value (e.g. a live region). */\n \"aria-describedby\"?: string;\n}\n\nfunction clamp(v: number, min: number, max: number) {\n return Math.min(max, Math.max(min, v));\n}\n\nfunction snapToStep(v: number, min: number, step: number, decimals: number) {\n return parseFloat((Math.round((v - min) / step) * step + min).toFixed(decimals));\n}\n\nfunction countDecimals(n: number) {\n const s = n.toString();\n const dot = s.indexOf(\".\");\n return dot === -1 ? 0 : s.length - dot - 1;\n}\n\n/**\n * Draggable range slider following the Adwaita `GtkScale` pattern.\n *\n * - Pointer (mouse / touch / pen) drag to set value continuously.\n * - Keyboard: ← / → move by one step; Page Up/Down by 10 steps; Home/End jump to bounds.\n * - Optional tick marks with labels.\n * - Fills the track from the left up to the thumb (accent colour).\n *\n * @see https://developer.gnome.org/hig/patterns/controls/sliders.html\n */\nexport function Slider({\n value,\n onChange,\n min = 0,\n max = 100,\n step = 1,\n disabled = false,\n marks,\n className,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledBy,\n \"aria-describedby\": ariaDescribedBy,\n ...props\n}: SliderProps) {\n const trackRef = useRef<HTMLDivElement>(null);\n const dp = countDecimals(step);\n\n const pct = ((clamp(value, min, max) - min) / (max - min)) * 100;\n\n const setFromX = useCallback(\n (clientX: number) => {\n if (!trackRef.current) return;\n const { left, width } = trackRef.current.getBoundingClientRect();\n const raw = ((clientX - left) / width) * (max - min) + min;\n onChange(clamp(snapToStep(raw, min, step, dp), min, max));\n },\n [min, max, step, dp, onChange]\n );\n\n // Pointer drag — capture on the thumb, move anywhere\n const handlePointerDown = useCallback(\n (e: PointerEvent<HTMLDivElement>) => {\n if (disabled) return;\n e.currentTarget.setPointerCapture(e.pointerId);\n setFromX(e.clientX);\n },\n [disabled, setFromX]\n );\n\n const handlePointerMove = useCallback(\n (e: PointerEvent<HTMLDivElement>) => {\n if (!e.currentTarget.hasPointerCapture(e.pointerId)) return;\n setFromX(e.clientX);\n },\n [setFromX]\n );\n\n // Keyboard\n const handleKeyDown = useCallback(\n (e: KeyboardEvent<HTMLDivElement>) => {\n const set = (next: number) => {\n e.preventDefault();\n onChange(clamp(snapToStep(next, min, step, dp), min, max));\n };\n switch (e.key) {\n case \"ArrowRight\":\n case \"ArrowUp\":\n set(value + step);\n break;\n case \"ArrowLeft\":\n case \"ArrowDown\":\n set(value - step);\n break;\n case \"PageUp\":\n set(value + step * 10);\n break;\n case \"PageDown\":\n set(value - step * 10);\n break;\n case \"Home\":\n set(min);\n break;\n case \"End\":\n set(max);\n break;\n }\n },\n [value, step, min, max, dp, onChange]\n );\n\n const hasMarks = marks && marks.length > 0;\n const hasLabels = hasMarks && marks.some((m) => m.label);\n\n return (\n <div\n className={[\n styles.wrapper,\n hasLabels ? styles.hasLabels : null,\n className,\n ]\n .filter(Boolean)\n .join(\" \")}\n {...props}\n >\n {/* Accessible slider */}\n <div\n ref={trackRef}\n role=\"slider\"\n tabIndex={disabled ? -1 : 0}\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={value}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-describedby={ariaDescribedBy}\n aria-disabled={disabled || undefined}\n className={[styles.track, disabled ? styles.disabled : null]\n .filter(Boolean)\n .join(\" \")}\n onPointerDown={handlePointerDown}\n onPointerMove={handlePointerMove}\n onKeyDown={disabled ? undefined : handleKeyDown}\n >\n {/* Filled portion */}\n <div className={styles.fill} style={{ width: `${pct}%` }} />\n\n {/* Thumb */}\n <div\n className={styles.thumb}\n style={{ left: `${pct}%` }}\n aria-hidden=\"true\"\n />\n\n {/* Tick marks */}\n {hasMarks &&\n marks.map((m) => {\n const mPct = ((clamp(m.value, min, max) - min) / (max - min)) * 100;\n return (\n <div\n key={m.value}\n className={styles.tick}\n style={{ left: `${mPct}%` }}\n aria-hidden=\"true\"\n />\n );\n })}\n </div>\n\n {/* Mark labels */}\n {hasLabels && (\n <div className={styles.labels} aria-hidden=\"true\">\n {marks.map((m) => {\n const mPct = ((clamp(m.value, min, max) - min) / (max - min)) * 100;\n return (\n <span\n key={m.value}\n className={styles.markLabel}\n style={{ left: `${mPct}%` }}\n >\n {m.label}\n </span>\n );\n })}\n </div>\n )}\n </div>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Slider.js","names":[],"sources":["../../../src/components/Slider/Slider.tsx"],"sourcesContent":["import {\n type HTMLAttributes,\n type KeyboardEvent,\n type PointerEvent,\n useCallback,\n useRef,\n} from 'react';\n\nimport styles from './Slider.module.css';\n\nexport interface SliderProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onChange'> {\n /** Current value. Must be between `min` and `max`. */\n value: number;\n /** Called when the value changes. */\n onChange: (value: number) => void;\n /** Minimum value. Defaults to `0`. */\n min?: number;\n /** Maximum value. Defaults to `100`. */\n max?: number;\n /**\n * Granularity of each step.\n * - Arrow keys move by one step.\n * - Page Up/Down move by 10 steps.\n * Defaults to `1`.\n */\n step?: number;\n /** Disables the control. */\n disabled?: boolean;\n /**\n * Marks to display along the track.\n * Each mark can have an optional label rendered below the track.\n */\n marks?: Array<{ value: number; label?: string }>;\n /** Accessible label. Required when no visible `<label>` is present. */\n 'aria-label'?: string;\n /** Associates the control with a visible label element. */\n 'aria-labelledby'?: string;\n /** `id` of an element that describes the current value (e.g. a live region). */\n 'aria-describedby'?: string;\n}\n\nfunction clamp(v: number, min: number, max: number) {\n return Math.min(max, Math.max(min, v));\n}\n\nfunction snapToStep(v: number, min: number, step: number, decimals: number) {\n return parseFloat((Math.round((v - min) / step) * step + min).toFixed(decimals));\n}\n\nfunction countDecimals(n: number) {\n const s = n.toString();\n const dot = s.indexOf('.');\n\n return dot === -1 ? 0 : s.length - dot - 1;\n}\n\n/**\n * Draggable range slider following the Adwaita `GtkScale` pattern.\n *\n * - Pointer (mouse / touch / pen) drag to set value continuously.\n * - Keyboard: ← / → move by one step; Page Up/Down by 10 steps; Home/End jump to bounds.\n * - Optional tick marks with labels.\n * - Fills the track from the left up to the thumb (accent colour).\n *\n * @see https://developer.gnome.org/hig/patterns/controls/sliders.html\n */\nexport function Slider({\n value,\n onChange,\n min = 0,\n max = 100,\n step = 1,\n disabled = false,\n marks,\n className,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledBy,\n 'aria-describedby': ariaDescribedBy,\n ...props\n}: SliderProps) {\n const trackRef = useRef<HTMLDivElement>(null);\n const dp = countDecimals(step);\n\n const pct = ((clamp(value, min, max) - min) / (max - min)) * 100;\n\n const setFromX = useCallback(\n (clientX: number) => {\n if (!trackRef.current) {\n return;\n }\n\n const { left, width } = trackRef.current.getBoundingClientRect();\n const raw = ((clientX - left) / width) * (max - min) + min;\n\n onChange(clamp(snapToStep(raw, min, step, dp), min, max));\n },\n [min, max, step, dp, onChange],\n );\n\n // Pointer drag — capture on the thumb, move anywhere\n const handlePointerDown = useCallback(\n (e: PointerEvent<HTMLDivElement>) => {\n if (disabled) {\n return;\n }\n\n e.currentTarget.setPointerCapture(e.pointerId);\n setFromX(e.clientX);\n },\n [disabled, setFromX],\n );\n\n const handlePointerMove = useCallback(\n (e: PointerEvent<HTMLDivElement>) => {\n if (!e.currentTarget.hasPointerCapture(e.pointerId)) {\n return;\n }\n\n setFromX(e.clientX);\n },\n [setFromX],\n );\n\n // Keyboard\n const handleKeyDown = useCallback(\n (e: KeyboardEvent<HTMLDivElement>) => {\n const set = (next: number) => {\n e.preventDefault();\n onChange(clamp(snapToStep(next, min, step, dp), min, max));\n };\n\n switch (e.key) {\n case 'ArrowRight':\n case 'ArrowUp':\n set(value + step);\n break;\n case 'ArrowLeft':\n case 'ArrowDown':\n set(value - step);\n break;\n case 'PageUp':\n set(value + step * 10);\n break;\n case 'PageDown':\n set(value - step * 10);\n break;\n case 'Home':\n set(min);\n break;\n case 'End':\n set(max);\n break;\n }\n },\n [value, step, min, max, dp, onChange],\n );\n\n const hasMarks = marks && marks.length > 0;\n const hasLabels = hasMarks && marks.some((m) => m.label);\n\n return (\n <div\n className={[styles.wrapper, hasLabels ? styles.hasLabels : null, className]\n .filter(Boolean)\n .join(' ')}\n {...props}\n >\n {/* Accessible slider */}\n <div\n ref={trackRef}\n role=\"slider\"\n tabIndex={disabled ? -1 : 0}\n aria-valuemin={min}\n aria-valuemax={max}\n aria-valuenow={value}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledBy}\n aria-describedby={ariaDescribedBy}\n aria-disabled={disabled || undefined}\n className={[styles.track, disabled ? styles.disabled : null].filter(Boolean).join(' ')}\n onPointerDown={handlePointerDown}\n onPointerMove={handlePointerMove}\n onKeyDown={disabled ? undefined : handleKeyDown}\n >\n {/* Filled portion */}\n <div className={styles.fill} style={{ width: `${pct}%` }} />\n\n {/* Thumb */}\n <div className={styles.thumb} style={{ left: `${pct}%` }} aria-hidden=\"true\" />\n\n {/* Tick marks */}\n {hasMarks &&\n marks.map((m) => {\n const mPct = ((clamp(m.value, min, max) - min) / (max - min)) * 100;\n\n return (\n <div\n key={m.value}\n className={styles.tick}\n style={{ left: `${mPct}%` }}\n aria-hidden=\"true\"\n />\n );\n })}\n </div>\n\n {/* Mark labels */}\n {hasLabels && (\n <div className={styles.labels} aria-hidden=\"true\">\n {marks.map((m) => {\n const mPct = ((clamp(m.value, min, max) - min) / (max - min)) * 100;\n\n return (\n <span key={m.value} className={styles.markLabel} style={{ left: `${mPct}%` }}>\n {m.label}\n </span>\n );\n })}\n </div>\n )}\n </div>\n );\n}\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- var e={wrapper:`_wrapper_11zhs_3`,hasLabels:`_hasLabels_11zhs_11`,track:`_track_11zhs_17`,disabled:`_disabled_11zhs_42`,fill:`_fill_11zhs_50`,thumb:`_thumb_11zhs_64`,tick:`_tick_11zhs_97`,labels:`_labels_11zhs_112`,markLabel:`_markLabel_11zhs_119`};exports.default=e;
1
+ var e={wrapper:`_wrapper_qpwn3_3`,hasLabels:`_hasLabels_qpwn3_11`,track:`_track_qpwn3_17`,disabled:`_disabled_qpwn3_42`,fill:`_fill_qpwn3_50`,thumb:`_thumb_qpwn3_64`,tick:`_tick_qpwn3_97`,labels:`_labels_qpwn3_112`,markLabel:`_markLabel_qpwn3_119`};exports.default=e;
2
2
  //# sourceMappingURL=Slider.module.css.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Slider.module.css.cjs","names":[],"sources":["../../../src/components/Slider/Slider.module.css"],"sourcesContent":["/* ─── Outer wrapper ──────────────────────────────────────────────────────────── */\n\n.wrapper {\n display: flex;\n flex-direction: column;\n width: 100%;\n /* Vertical space for thumb overflow */\n padding: 10px 0;\n}\n\n.hasLabels {\n padding-bottom: 0;\n}\n\n/* ─── Track ──────────────────────────────────────────────────────────────────── */\n\n.track {\n position: relative;\n width: 100%;\n height: 6px;\n\n background-color: var(--gnome-card-shade-color, rgba(0, 0, 0, 0.15));\n border-radius: var(--gnome-radius-pill, 9999px);\n\n cursor: pointer;\n touch-action: none; /* prevent scroll interference during drag */\n user-select: none;\n\n outline: none;\n}\n\n.track:focus-visible {\n /* Focus ring on the track itself as a fallback */\n box-shadow:\n 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-window-bg-color, #fafafa),\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/* ─── Disabled ───────────────────────────────────────────────────────────────── */\n\n.disabled {\n opacity: var(--gnome-opacity-disabled, 0.5);\n cursor: not-allowed;\n pointer-events: none;\n}\n\n/* ─── Filled section (left of thumb) ────────────────────────────────────────── */\n\n.fill {\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n border-radius: var(--gnome-radius-pill, 9999px);\n\n background-color: var(--gnome-accent-bg-color, #3584e4);\n\n pointer-events: none;\n}\n\n/* ─── Thumb ──────────────────────────────────────────────────────────────────── */\n\n.thumb {\n position: absolute;\n top: 50%;\n /* Translate left by half thumb width so it centres on the left edge of .fill */\n transform: translate(-50%, -50%);\n\n width: 22px;\n height: 22px;\n border-radius: var(--gnome-radius-pill, 9999px);\n\n background-color: var(--gnome-accent-bg-color, #3584e4);\n box-shadow:\n 0 1px 3px rgba(0, 0, 0, 0.25),\n 0 0 0 2px var(--gnome-window-bg-color, #fafafa);\n\n pointer-events: none;\n\n transition:\n transform var(--gnome-duration-fast, 100ms) var(--gnome-easing-default, ease),\n box-shadow var(--gnome-duration-fast, 100ms) var(--gnome-easing-default, ease);\n}\n\n/* Slightly larger thumb on focus / active drag */\n.track:focus-visible .thumb,\n.track:active .thumb {\n transform: translate(-50%, -50%) scale(1.18);\n box-shadow:\n 0 2px 6px rgba(0, 0, 0, 0.3),\n 0 0 0 2px var(--gnome-window-bg-color, #fafafa);\n}\n\n/* ─── Tick marks ─────────────────────────────────────────────────────────────── */\n\n.tick {\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n\n width: 4px;\n height: 4px;\n border-radius: 50%;\n\n background-color: var(--gnome-window-bg-color, #fafafa);\n pointer-events: none;\n}\n\n/* ─── Labels row ─────────────────────────────────────────────────────────────── */\n\n.labels {\n position: relative;\n width: 100%;\n height: 20px;\n margin-top: var(--gnome-space-1, 6px);\n}\n\n.markLabel {\n position: absolute;\n transform: translateX(-50%);\n\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-caption, 0.8125rem);\n line-height: 1;\n color: var(--gnome-window-fg-color, rgba(0, 0, 0, 0.8));\n opacity: var(--gnome-opacity-dim, 0.55);\n\n white-space: nowrap;\n pointer-events: none;\n user-select: none;\n}\n\n/* ─── Dark mode ──────────────────────────────────────────────────────────────── */\n\n@media (prefers-color-scheme: dark) {\n .track {\n background-color: rgba(255, 255, 255, 0.15);\n }\n\n .thumb {\n box-shadow:\n 0 1px 4px rgba(0, 0, 0, 0.5),\n 0 0 0 2px var(--gnome-window-bg-color, #242424);\n }\n\n .track:focus-visible .thumb,\n .track:active .thumb {\n box-shadow:\n 0 2px 8px rgba(0, 0, 0, 0.6),\n 0 0 0 2px var(--gnome-window-bg-color, #242424);\n }\n\n .tick {\n background-color: var(--gnome-window-bg-color, #242424);\n }\n}\n\n/* ─── Reduced motion ─────────────────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .thumb {\n transition: none;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"Slider.module.css.cjs","names":[],"sources":["../../../src/components/Slider/Slider.module.css"],"sourcesContent":["/* ─── Outer wrapper ──────────────────────────────────────────────────────────── */\n\n.wrapper {\n display: flex;\n flex-direction: column;\n width: 100%;\n /* Vertical space for thumb overflow */\n padding: 10px 0;\n}\n\n.hasLabels {\n padding-bottom: 0;\n}\n\n/* ─── Track ──────────────────────────────────────────────────────────────────── */\n\n.track {\n position: relative;\n width: 100%;\n height: 6px;\n\n background-color: var(--gnome-card-shade-color, rgba(0, 0, 0, 0.15));\n border-radius: var(--gnome-radius-pill, 9999px);\n\n cursor: pointer;\n touch-action: none; /* prevent scroll interference during drag */\n user-select: none;\n\n outline: none;\n}\n\n.track:focus-visible {\n /* Focus ring on the track itself as a fallback */\n box-shadow:\n 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-window-bg-color, #fafafa),\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/* ─── Disabled ───────────────────────────────────────────────────────────────── */\n\n.disabled {\n opacity: var(--gnome-opacity-disabled, 0.5);\n cursor: not-allowed;\n pointer-events: none;\n}\n\n/* ─── Filled section (left of thumb) ────────────────────────────────────────── */\n\n.fill {\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n border-radius: var(--gnome-radius-pill, 9999px);\n\n background-color: var(--gnome-accent-bg-color, #3584e4);\n\n pointer-events: none;\n}\n\n/* ─── Thumb ──────────────────────────────────────────────────────────────────── */\n\n.thumb {\n position: absolute;\n top: 50%;\n /* Translate left by half thumb width so it centres on the left edge of .fill */\n transform: translate(-50%, -50%);\n\n width: 22px;\n height: 22px;\n border-radius: var(--gnome-radius-pill, 9999px);\n\n background-color: var(--gnome-accent-bg-color, #3584e4);\n box-shadow:\n 0 1px 3px rgba(0, 0, 0, 0.25),\n 0 0 0 2px var(--gnome-window-bg-color, #fafafa);\n\n pointer-events: none;\n\n transition:\n transform var(--gnome-duration-fast, 100ms) var(--gnome-easing-default, ease),\n box-shadow var(--gnome-duration-fast, 100ms) var(--gnome-easing-default, ease);\n}\n\n/* Slightly larger thumb on focus / active drag */\n.track:focus-visible .thumb,\n.track:active .thumb {\n transform: translate(-50%, -50%) scale(1.18);\n box-shadow:\n 0 2px 6px rgba(0, 0, 0, 0.3),\n 0 0 0 2px var(--gnome-window-bg-color, #fafafa);\n}\n\n/* ─── Tick marks ─────────────────────────────────────────────────────────────── */\n\n.tick {\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n\n width: 4px;\n height: 4px;\n border-radius: 50%;\n\n background-color: var(--gnome-window-bg-color, #fafafa);\n pointer-events: none;\n}\n\n/* ─── Labels row ─────────────────────────────────────────────────────────────── */\n\n.labels {\n position: relative;\n width: 100%;\n height: 20px;\n margin-top: var(--gnome-space-1, 6px);\n}\n\n.markLabel {\n position: absolute;\n transform: translateX(-50%);\n\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-caption, 0.8125rem);\n line-height: 1;\n color: var(--gnome-window-fg-color, rgba(0, 0, 0, 0.8));\n opacity: var(--gnome-opacity-dim, 0.55);\n\n white-space: nowrap;\n pointer-events: none;\n user-select: none;\n}\n\n/* ─── Dark mode ──────────────────────────────────────────────────────────────── */\n\n@media (prefers-color-scheme: dark) {\n .track {\n background-color: rgba(255, 255, 255, 0.15);\n }\n\n .thumb {\n box-shadow:\n 0 1px 4px rgba(0, 0, 0, 0.5),\n 0 0 0 2px var(--gnome-window-bg-color, #242424);\n }\n\n .track:focus-visible .thumb,\n .track:active .thumb {\n box-shadow:\n 0 2px 8px rgba(0, 0, 0, 0.6),\n 0 0 0 2px var(--gnome-window-bg-color, #242424);\n }\n\n .tick {\n background-color: var(--gnome-window-bg-color, #242424);\n }\n}\n\n/* ─── Reduced motion ─────────────────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .thumb {\n transition: none;\n }\n}\n"],"mappings":""}
@@ -1,13 +1,13 @@
1
1
  var e = {
2
- wrapper: "_wrapper_11zhs_3",
3
- hasLabels: "_hasLabels_11zhs_11",
4
- track: "_track_11zhs_17",
5
- disabled: "_disabled_11zhs_42",
6
- fill: "_fill_11zhs_50",
7
- thumb: "_thumb_11zhs_64",
8
- tick: "_tick_11zhs_97",
9
- labels: "_labels_11zhs_112",
10
- markLabel: "_markLabel_11zhs_119"
2
+ wrapper: "_wrapper_qpwn3_3",
3
+ hasLabels: "_hasLabels_qpwn3_11",
4
+ track: "_track_qpwn3_17",
5
+ disabled: "_disabled_qpwn3_42",
6
+ fill: "_fill_qpwn3_50",
7
+ thumb: "_thumb_qpwn3_64",
8
+ tick: "_tick_qpwn3_97",
9
+ labels: "_labels_qpwn3_112",
10
+ markLabel: "_markLabel_qpwn3_119"
11
11
  };
12
12
  //#endregion
13
13
  export { e as default };
@@ -1 +1 @@
1
- {"version":3,"file":"Slider.module.css.js","names":[],"sources":["../../../src/components/Slider/Slider.module.css"],"sourcesContent":["/* ─── Outer wrapper ──────────────────────────────────────────────────────────── */\n\n.wrapper {\n display: flex;\n flex-direction: column;\n width: 100%;\n /* Vertical space for thumb overflow */\n padding: 10px 0;\n}\n\n.hasLabels {\n padding-bottom: 0;\n}\n\n/* ─── Track ──────────────────────────────────────────────────────────────────── */\n\n.track {\n position: relative;\n width: 100%;\n height: 6px;\n\n background-color: var(--gnome-card-shade-color, rgba(0, 0, 0, 0.15));\n border-radius: var(--gnome-radius-pill, 9999px);\n\n cursor: pointer;\n touch-action: none; /* prevent scroll interference during drag */\n user-select: none;\n\n outline: none;\n}\n\n.track:focus-visible {\n /* Focus ring on the track itself as a fallback */\n box-shadow:\n 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-window-bg-color, #fafafa),\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/* ─── Disabled ───────────────────────────────────────────────────────────────── */\n\n.disabled {\n opacity: var(--gnome-opacity-disabled, 0.5);\n cursor: not-allowed;\n pointer-events: none;\n}\n\n/* ─── Filled section (left of thumb) ────────────────────────────────────────── */\n\n.fill {\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n border-radius: var(--gnome-radius-pill, 9999px);\n\n background-color: var(--gnome-accent-bg-color, #3584e4);\n\n pointer-events: none;\n}\n\n/* ─── Thumb ──────────────────────────────────────────────────────────────────── */\n\n.thumb {\n position: absolute;\n top: 50%;\n /* Translate left by half thumb width so it centres on the left edge of .fill */\n transform: translate(-50%, -50%);\n\n width: 22px;\n height: 22px;\n border-radius: var(--gnome-radius-pill, 9999px);\n\n background-color: var(--gnome-accent-bg-color, #3584e4);\n box-shadow:\n 0 1px 3px rgba(0, 0, 0, 0.25),\n 0 0 0 2px var(--gnome-window-bg-color, #fafafa);\n\n pointer-events: none;\n\n transition:\n transform var(--gnome-duration-fast, 100ms) var(--gnome-easing-default, ease),\n box-shadow var(--gnome-duration-fast, 100ms) var(--gnome-easing-default, ease);\n}\n\n/* Slightly larger thumb on focus / active drag */\n.track:focus-visible .thumb,\n.track:active .thumb {\n transform: translate(-50%, -50%) scale(1.18);\n box-shadow:\n 0 2px 6px rgba(0, 0, 0, 0.3),\n 0 0 0 2px var(--gnome-window-bg-color, #fafafa);\n}\n\n/* ─── Tick marks ─────────────────────────────────────────────────────────────── */\n\n.tick {\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n\n width: 4px;\n height: 4px;\n border-radius: 50%;\n\n background-color: var(--gnome-window-bg-color, #fafafa);\n pointer-events: none;\n}\n\n/* ─── Labels row ─────────────────────────────────────────────────────────────── */\n\n.labels {\n position: relative;\n width: 100%;\n height: 20px;\n margin-top: var(--gnome-space-1, 6px);\n}\n\n.markLabel {\n position: absolute;\n transform: translateX(-50%);\n\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-caption, 0.8125rem);\n line-height: 1;\n color: var(--gnome-window-fg-color, rgba(0, 0, 0, 0.8));\n opacity: var(--gnome-opacity-dim, 0.55);\n\n white-space: nowrap;\n pointer-events: none;\n user-select: none;\n}\n\n/* ─── Dark mode ──────────────────────────────────────────────────────────────── */\n\n@media (prefers-color-scheme: dark) {\n .track {\n background-color: rgba(255, 255, 255, 0.15);\n }\n\n .thumb {\n box-shadow:\n 0 1px 4px rgba(0, 0, 0, 0.5),\n 0 0 0 2px var(--gnome-window-bg-color, #242424);\n }\n\n .track:focus-visible .thumb,\n .track:active .thumb {\n box-shadow:\n 0 2px 8px rgba(0, 0, 0, 0.6),\n 0 0 0 2px var(--gnome-window-bg-color, #242424);\n }\n\n .tick {\n background-color: var(--gnome-window-bg-color, #242424);\n }\n}\n\n/* ─── Reduced motion ─────────────────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .thumb {\n transition: none;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"Slider.module.css.js","names":[],"sources":["../../../src/components/Slider/Slider.module.css"],"sourcesContent":["/* ─── Outer wrapper ──────────────────────────────────────────────────────────── */\n\n.wrapper {\n display: flex;\n flex-direction: column;\n width: 100%;\n /* Vertical space for thumb overflow */\n padding: 10px 0;\n}\n\n.hasLabels {\n padding-bottom: 0;\n}\n\n/* ─── Track ──────────────────────────────────────────────────────────────────── */\n\n.track {\n position: relative;\n width: 100%;\n height: 6px;\n\n background-color: var(--gnome-card-shade-color, rgba(0, 0, 0, 0.15));\n border-radius: var(--gnome-radius-pill, 9999px);\n\n cursor: pointer;\n touch-action: none; /* prevent scroll interference during drag */\n user-select: none;\n\n outline: none;\n}\n\n.track:focus-visible {\n /* Focus ring on the track itself as a fallback */\n box-shadow:\n 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-window-bg-color, #fafafa),\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/* ─── Disabled ───────────────────────────────────────────────────────────────── */\n\n.disabled {\n opacity: var(--gnome-opacity-disabled, 0.5);\n cursor: not-allowed;\n pointer-events: none;\n}\n\n/* ─── Filled section (left of thumb) ────────────────────────────────────────── */\n\n.fill {\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n border-radius: var(--gnome-radius-pill, 9999px);\n\n background-color: var(--gnome-accent-bg-color, #3584e4);\n\n pointer-events: none;\n}\n\n/* ─── Thumb ──────────────────────────────────────────────────────────────────── */\n\n.thumb {\n position: absolute;\n top: 50%;\n /* Translate left by half thumb width so it centres on the left edge of .fill */\n transform: translate(-50%, -50%);\n\n width: 22px;\n height: 22px;\n border-radius: var(--gnome-radius-pill, 9999px);\n\n background-color: var(--gnome-accent-bg-color, #3584e4);\n box-shadow:\n 0 1px 3px rgba(0, 0, 0, 0.25),\n 0 0 0 2px var(--gnome-window-bg-color, #fafafa);\n\n pointer-events: none;\n\n transition:\n transform var(--gnome-duration-fast, 100ms) var(--gnome-easing-default, ease),\n box-shadow var(--gnome-duration-fast, 100ms) var(--gnome-easing-default, ease);\n}\n\n/* Slightly larger thumb on focus / active drag */\n.track:focus-visible .thumb,\n.track:active .thumb {\n transform: translate(-50%, -50%) scale(1.18);\n box-shadow:\n 0 2px 6px rgba(0, 0, 0, 0.3),\n 0 0 0 2px var(--gnome-window-bg-color, #fafafa);\n}\n\n/* ─── Tick marks ─────────────────────────────────────────────────────────────── */\n\n.tick {\n position: absolute;\n top: 50%;\n transform: translate(-50%, -50%);\n\n width: 4px;\n height: 4px;\n border-radius: 50%;\n\n background-color: var(--gnome-window-bg-color, #fafafa);\n pointer-events: none;\n}\n\n/* ─── Labels row ─────────────────────────────────────────────────────────────── */\n\n.labels {\n position: relative;\n width: 100%;\n height: 20px;\n margin-top: var(--gnome-space-1, 6px);\n}\n\n.markLabel {\n position: absolute;\n transform: translateX(-50%);\n\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-caption, 0.8125rem);\n line-height: 1;\n color: var(--gnome-window-fg-color, rgba(0, 0, 0, 0.8));\n opacity: var(--gnome-opacity-dim, 0.55);\n\n white-space: nowrap;\n pointer-events: none;\n user-select: none;\n}\n\n/* ─── Dark mode ──────────────────────────────────────────────────────────────── */\n\n@media (prefers-color-scheme: dark) {\n .track {\n background-color: rgba(255, 255, 255, 0.15);\n }\n\n .thumb {\n box-shadow:\n 0 1px 4px rgba(0, 0, 0, 0.5),\n 0 0 0 2px var(--gnome-window-bg-color, #242424);\n }\n\n .track:focus-visible .thumb,\n .track:active .thumb {\n box-shadow:\n 0 2px 8px rgba(0, 0, 0, 0.6),\n 0 0 0 2px var(--gnome-window-bg-color, #242424);\n }\n\n .tick {\n background-color: var(--gnome-window-bg-color, #242424);\n }\n}\n\n/* ─── Reduced motion ─────────────────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .thumb {\n transition: none;\n }\n}\n"],"mappings":""}
@@ -1,2 +1,2 @@
1
- export { Slider } from './Slider';
2
1
  export type { SliderProps } from './Slider';
2
+ export { Slider } from './Slider';