@gnome-ui/react 1.45.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 (610) hide show
  1. package/dist/components/AboutDialog/AboutDialog.cjs +1 -1
  2. package/dist/components/AboutDialog/AboutDialog.cjs.map +1 -1
  3. package/dist/components/AboutDialog/AboutDialog.js +1 -1
  4. package/dist/components/AboutDialog/AboutDialog.js.map +1 -1
  5. package/dist/components/AboutDialog/AboutDialog.module.css.cjs +1 -1
  6. package/dist/components/AboutDialog/AboutDialog.module.css.cjs.map +1 -1
  7. package/dist/components/AboutDialog/AboutDialog.module.css.js +3 -3
  8. package/dist/components/AboutDialog/AboutDialog.module.css.js.map +1 -1
  9. package/dist/components/AboutDialog/index.d.ts +1 -1
  10. package/dist/components/ActionRow/ActionRow.cjs.map +1 -1
  11. package/dist/components/ActionRow/ActionRow.d.ts +1 -1
  12. package/dist/components/ActionRow/ActionRow.js.map +1 -1
  13. package/dist/components/ActionRow/ActionRow.module.css.cjs +1 -1
  14. package/dist/components/ActionRow/ActionRow.module.css.cjs.map +1 -1
  15. package/dist/components/ActionRow/ActionRow.module.css.js +9 -9
  16. package/dist/components/ActionRow/ActionRow.module.css.js.map +1 -1
  17. package/dist/components/ActionRow/index.d.ts +1 -1
  18. package/dist/components/Avatar/Avatar.cjs.map +1 -1
  19. package/dist/components/Avatar/Avatar.d.ts +2 -2
  20. package/dist/components/Avatar/Avatar.js.map +1 -1
  21. package/dist/components/Avatar/Avatar.module.css.cjs +1 -1
  22. package/dist/components/Avatar/Avatar.module.css.cjs.map +1 -1
  23. package/dist/components/Avatar/Avatar.module.css.js +16 -16
  24. package/dist/components/Avatar/Avatar.module.css.js.map +1 -1
  25. package/dist/components/Avatar/index.d.ts +1 -1
  26. package/dist/components/AvatarRotator/AvatarRotator.cjs.map +1 -1
  27. package/dist/components/AvatarRotator/AvatarRotator.js.map +1 -1
  28. package/dist/components/AvatarRotator/index.d.ts +1 -1
  29. package/dist/components/Badge/Badge.cjs.map +1 -1
  30. package/dist/components/Badge/Badge.d.ts +1 -1
  31. package/dist/components/Badge/Badge.js.map +1 -1
  32. package/dist/components/Badge/Badge.module.css.cjs +1 -1
  33. package/dist/components/Badge/Badge.module.css.cjs.map +1 -1
  34. package/dist/components/Badge/Badge.module.css.js +9 -9
  35. package/dist/components/Badge/Badge.module.css.js.map +1 -1
  36. package/dist/components/Badge/index.d.ts +1 -1
  37. package/dist/components/Banner/Banner.cjs.map +1 -1
  38. package/dist/components/Banner/Banner.d.ts +1 -1
  39. package/dist/components/Banner/Banner.js.map +1 -1
  40. package/dist/components/Banner/Banner.module.css.cjs +1 -1
  41. package/dist/components/Banner/Banner.module.css.cjs.map +1 -1
  42. package/dist/components/Banner/Banner.module.css.js +5 -5
  43. package/dist/components/Banner/Banner.module.css.js.map +1 -1
  44. package/dist/components/Banner/index.d.ts +1 -1
  45. package/dist/components/Bin/Bin.cjs.map +1 -1
  46. package/dist/components/Bin/Bin.js.map +1 -1
  47. package/dist/components/Bin/index.d.ts +1 -1
  48. package/dist/components/Blockquote/Blockquote.cjs.map +1 -1
  49. package/dist/components/Blockquote/Blockquote.d.ts +1 -1
  50. package/dist/components/Blockquote/Blockquote.js.map +1 -1
  51. package/dist/components/Blockquote/Blockquote.module.css.cjs +1 -1
  52. package/dist/components/Blockquote/Blockquote.module.css.cjs.map +1 -1
  53. package/dist/components/Blockquote/Blockquote.module.css.js +11 -11
  54. package/dist/components/Blockquote/Blockquote.module.css.js.map +1 -1
  55. package/dist/components/Blockquote/index.d.ts +1 -1
  56. package/dist/components/BottomSheet/BottomSheet.cjs.map +1 -1
  57. package/dist/components/BottomSheet/BottomSheet.d.ts +1 -1
  58. package/dist/components/BottomSheet/BottomSheet.js.map +1 -1
  59. package/dist/components/BottomSheet/BottomSheet.module.css.cjs +1 -1
  60. package/dist/components/BottomSheet/BottomSheet.module.css.cjs.map +1 -1
  61. package/dist/components/BottomSheet/BottomSheet.module.css.js +3 -3
  62. package/dist/components/BottomSheet/BottomSheet.module.css.js.map +1 -1
  63. package/dist/components/BottomSheet/index.d.ts +1 -1
  64. package/dist/components/Box/Box.cjs.map +1 -1
  65. package/dist/components/Box/Box.d.ts +3 -3
  66. package/dist/components/Box/Box.js.map +1 -1
  67. package/dist/components/Box/index.d.ts +1 -1
  68. package/dist/components/BoxedList/BoxedList.cjs +1 -1
  69. package/dist/components/BoxedList/BoxedList.cjs.map +1 -1
  70. package/dist/components/BoxedList/BoxedList.d.ts +1 -1
  71. package/dist/components/BoxedList/BoxedList.js +0 -1
  72. package/dist/components/BoxedList/BoxedList.js.map +1 -1
  73. package/dist/components/BoxedList/BoxedList.module.css.cjs +1 -1
  74. package/dist/components/BoxedList/BoxedList.module.css.cjs.map +1 -1
  75. package/dist/components/BoxedList/BoxedList.module.css.js +5 -5
  76. package/dist/components/BoxedList/BoxedList.module.css.js.map +1 -1
  77. package/dist/components/BoxedList/index.d.ts +1 -1
  78. package/dist/components/BreakpointBin/BreakpointBin.cjs +1 -1
  79. package/dist/components/BreakpointBin/BreakpointBin.cjs.map +1 -1
  80. package/dist/components/BreakpointBin/BreakpointBin.d.ts +1 -1
  81. package/dist/components/BreakpointBin/BreakpointBin.js +1 -1
  82. package/dist/components/BreakpointBin/BreakpointBin.js.map +1 -1
  83. package/dist/components/BreakpointBin/index.d.ts +1 -1
  84. package/dist/components/Button/Button.cjs.map +1 -1
  85. package/dist/components/Button/Button.d.ts +3 -3
  86. package/dist/components/Button/Button.js.map +1 -1
  87. package/dist/components/Button/Button.module.css.cjs +1 -1
  88. package/dist/components/Button/Button.module.css.cjs.map +1 -1
  89. package/dist/components/Button/Button.module.css.js +11 -11
  90. package/dist/components/Button/Button.module.css.js.map +1 -1
  91. package/dist/components/Button/index.d.ts +1 -1
  92. package/dist/components/ButtonContent/ButtonContent.cjs.map +1 -1
  93. package/dist/components/ButtonContent/ButtonContent.d.ts +1 -1
  94. package/dist/components/ButtonContent/ButtonContent.js.map +1 -1
  95. package/dist/components/ButtonContent/index.d.ts +1 -1
  96. package/dist/components/ButtonRow/ButtonRow.cjs.map +1 -1
  97. package/dist/components/ButtonRow/ButtonRow.d.ts +1 -1
  98. package/dist/components/ButtonRow/ButtonRow.js.map +1 -1
  99. package/dist/components/ButtonRow/ButtonRow.module.css.cjs +1 -1
  100. package/dist/components/ButtonRow/ButtonRow.module.css.cjs.map +1 -1
  101. package/dist/components/ButtonRow/ButtonRow.module.css.js +7 -7
  102. package/dist/components/ButtonRow/ButtonRow.module.css.js.map +1 -1
  103. package/dist/components/ButtonRow/index.d.ts +1 -1
  104. package/dist/components/Card/Card.cjs.map +1 -1
  105. package/dist/components/Card/Card.d.ts +1 -1
  106. package/dist/components/Card/Card.js.map +1 -1
  107. package/dist/components/Card/Card.module.css.cjs +1 -1
  108. package/dist/components/Card/Card.module.css.cjs.map +1 -1
  109. package/dist/components/Card/Card.module.css.js +5 -5
  110. package/dist/components/Card/Card.module.css.js.map +1 -1
  111. package/dist/components/Card/index.d.ts +1 -1
  112. package/dist/components/Carousel/Carousel.cjs +1 -1
  113. package/dist/components/Carousel/Carousel.cjs.map +1 -1
  114. package/dist/components/Carousel/Carousel.d.ts +1 -1
  115. package/dist/components/Carousel/Carousel.js +7 -6
  116. package/dist/components/Carousel/Carousel.js.map +1 -1
  117. package/dist/components/Carousel/Carousel.module.css.cjs +1 -1
  118. package/dist/components/Carousel/Carousel.module.css.cjs.map +1 -1
  119. package/dist/components/Carousel/Carousel.module.css.js +10 -10
  120. package/dist/components/Carousel/Carousel.module.css.js.map +1 -1
  121. package/dist/components/Carousel/index.d.ts +1 -1
  122. package/dist/components/CheckRow/CheckRow.cjs.map +1 -1
  123. package/dist/components/CheckRow/CheckRow.d.ts +1 -1
  124. package/dist/components/CheckRow/CheckRow.js.map +1 -1
  125. package/dist/components/CheckRow/CheckRow.module.css.cjs +1 -1
  126. package/dist/components/CheckRow/CheckRow.module.css.cjs.map +1 -1
  127. package/dist/components/CheckRow/CheckRow.module.css.js +10 -10
  128. package/dist/components/CheckRow/CheckRow.module.css.js.map +1 -1
  129. package/dist/components/CheckRow/index.d.ts +1 -1
  130. package/dist/components/Checkbox/Checkbox.cjs.map +1 -1
  131. package/dist/components/Checkbox/Checkbox.d.ts +2 -2
  132. package/dist/components/Checkbox/Checkbox.js.map +1 -1
  133. package/dist/components/Checkbox/Checkbox.module.css.cjs +1 -1
  134. package/dist/components/Checkbox/Checkbox.module.css.cjs.map +1 -1
  135. package/dist/components/Checkbox/Checkbox.module.css.js +1 -1
  136. package/dist/components/Checkbox/Checkbox.module.css.js.map +1 -1
  137. package/dist/components/Checkbox/index.d.ts +1 -1
  138. package/dist/components/Chip/Chip.cjs.map +1 -1
  139. package/dist/components/Chip/Chip.d.ts +1 -1
  140. package/dist/components/Chip/Chip.js.map +1 -1
  141. package/dist/components/Chip/Chip.module.css.cjs +1 -1
  142. package/dist/components/Chip/Chip.module.css.cjs.map +1 -1
  143. package/dist/components/Chip/Chip.module.css.js +7 -7
  144. package/dist/components/Chip/Chip.module.css.js.map +1 -1
  145. package/dist/components/Chip/index.d.ts +1 -1
  146. package/dist/components/Clamp/Clamp.cjs.map +1 -1
  147. package/dist/components/Clamp/Clamp.js.map +1 -1
  148. package/dist/components/Clamp/index.d.ts +1 -1
  149. package/dist/components/ColorPicker/ColorPicker.cjs.map +1 -1
  150. package/dist/components/ColorPicker/ColorPicker.d.ts +6 -6
  151. package/dist/components/ColorPicker/ColorPicker.js.map +1 -1
  152. package/dist/components/ColorPicker/ColorPicker.module.css.cjs +1 -1
  153. package/dist/components/ColorPicker/ColorPicker.module.css.cjs.map +1 -1
  154. package/dist/components/ColorPicker/ColorPicker.module.css.js +4 -4
  155. package/dist/components/ColorPicker/ColorPicker.module.css.js.map +1 -1
  156. package/dist/components/ColorPicker/index.d.ts +1 -1
  157. package/dist/components/ColumnView/ColumnView.cjs +1 -1
  158. package/dist/components/ColumnView/ColumnView.cjs.map +1 -1
  159. package/dist/components/ColumnView/ColumnView.d.ts +3 -3
  160. package/dist/components/ColumnView/ColumnView.js +2 -5
  161. package/dist/components/ColumnView/ColumnView.js.map +1 -1
  162. package/dist/components/ColumnView/ColumnView.module.css.cjs +1 -1
  163. package/dist/components/ColumnView/ColumnView.module.css.cjs.map +1 -1
  164. package/dist/components/ColumnView/ColumnView.module.css.js +22 -22
  165. package/dist/components/ColumnView/ColumnView.module.css.js.map +1 -1
  166. package/dist/components/ColumnView/index.d.ts +1 -1
  167. package/dist/components/ComboRow/ComboRow.cjs +1 -1
  168. package/dist/components/ComboRow/ComboRow.cjs.map +1 -1
  169. package/dist/components/ComboRow/ComboRow.d.ts +1 -1
  170. package/dist/components/ComboRow/ComboRow.js +0 -2
  171. package/dist/components/ComboRow/ComboRow.js.map +1 -1
  172. package/dist/components/ComboRow/ComboRow.module.css.cjs +1 -1
  173. package/dist/components/ComboRow/ComboRow.module.css.cjs.map +1 -1
  174. package/dist/components/ComboRow/ComboRow.module.css.js +3 -3
  175. package/dist/components/ComboRow/ComboRow.module.css.js.map +1 -1
  176. package/dist/components/ComboRow/index.d.ts +1 -1
  177. package/dist/components/ContributionGraph/ContributionGraph.cjs +1 -1
  178. package/dist/components/ContributionGraph/ContributionGraph.cjs.map +1 -1
  179. package/dist/components/ContributionGraph/ContributionGraph.js +41 -41
  180. package/dist/components/ContributionGraph/ContributionGraph.js.map +1 -1
  181. package/dist/components/ContributionGraph/index.d.ts +1 -1
  182. package/dist/components/CountDownTimer/CountDownTimer.cjs.map +1 -1
  183. package/dist/components/CountDownTimer/CountDownTimer.d.ts +3 -3
  184. package/dist/components/CountDownTimer/CountDownTimer.js.map +1 -1
  185. package/dist/components/CountDownTimer/index.d.ts +1 -1
  186. package/dist/components/Dialog/Dialog.cjs.map +1 -1
  187. package/dist/components/Dialog/Dialog.d.ts +4 -4
  188. package/dist/components/Dialog/Dialog.js.map +1 -1
  189. package/dist/components/Dialog/Dialog.module.css.cjs +1 -1
  190. package/dist/components/Dialog/Dialog.module.css.cjs.map +1 -1
  191. package/dist/components/Dialog/Dialog.module.css.js +6 -6
  192. package/dist/components/Dialog/Dialog.module.css.js.map +1 -1
  193. package/dist/components/Dialog/dialogUtils.cjs.map +1 -1
  194. package/dist/components/Dialog/dialogUtils.js.map +1 -1
  195. package/dist/components/Dialog/index.d.ts +1 -1
  196. package/dist/components/Drawer/Drawer.cjs.map +1 -1
  197. package/dist/components/Drawer/Drawer.d.ts +3 -3
  198. package/dist/components/Drawer/Drawer.js.map +1 -1
  199. package/dist/components/Drawer/Drawer.module.css.cjs +1 -1
  200. package/dist/components/Drawer/Drawer.module.css.cjs.map +1 -1
  201. package/dist/components/Drawer/Drawer.module.css.js +4 -4
  202. package/dist/components/Drawer/Drawer.module.css.js.map +1 -1
  203. package/dist/components/Drawer/index.d.ts +1 -1
  204. package/dist/components/Dropdown/Dropdown.cjs.map +1 -1
  205. package/dist/components/Dropdown/Dropdown.d.ts +2 -2
  206. package/dist/components/Dropdown/Dropdown.js.map +1 -1
  207. package/dist/components/Dropdown/Dropdown.module.css.cjs +1 -1
  208. package/dist/components/Dropdown/Dropdown.module.css.cjs.map +1 -1
  209. package/dist/components/Dropdown/Dropdown.module.css.js +3 -3
  210. package/dist/components/Dropdown/Dropdown.module.css.js.map +1 -1
  211. package/dist/components/Dropdown/index.d.ts +1 -1
  212. package/dist/components/EntryRow/EntryRow.cjs.map +1 -1
  213. package/dist/components/EntryRow/EntryRow.js.map +1 -1
  214. package/dist/components/EntryRow/EntryRow.module.css.cjs +1 -1
  215. package/dist/components/EntryRow/EntryRow.module.css.cjs.map +1 -1
  216. package/dist/components/EntryRow/EntryRow.module.css.js +10 -10
  217. package/dist/components/EntryRow/EntryRow.module.css.js.map +1 -1
  218. package/dist/components/EntryRow/index.d.ts +1 -1
  219. package/dist/components/ExpanderRow/ExpanderRow.cjs.map +1 -1
  220. package/dist/components/ExpanderRow/ExpanderRow.js.map +1 -1
  221. package/dist/components/ExpanderRow/ExpanderRow.module.css.cjs +1 -1
  222. package/dist/components/ExpanderRow/ExpanderRow.module.css.cjs.map +1 -1
  223. package/dist/components/ExpanderRow/ExpanderRow.module.css.js +14 -14
  224. package/dist/components/ExpanderRow/ExpanderRow.module.css.js.map +1 -1
  225. package/dist/components/ExpanderRow/index.d.ts +1 -1
  226. package/dist/components/Footer/Footer.cjs.map +1 -1
  227. package/dist/components/Footer/Footer.js.map +1 -1
  228. package/dist/components/Footer/index.d.ts +1 -1
  229. package/dist/components/Frame/Frame.cjs.map +1 -1
  230. package/dist/components/Frame/Frame.js.map +1 -1
  231. package/dist/components/Frame/index.d.ts +1 -1
  232. package/dist/components/GnomeProvider/GnomeContext.cjs.map +1 -1
  233. package/dist/components/GnomeProvider/GnomeContext.d.ts +5 -5
  234. package/dist/components/GnomeProvider/GnomeContext.js.map +1 -1
  235. package/dist/components/GnomeProvider/GnomeProvider.cjs.map +1 -1
  236. package/dist/components/GnomeProvider/GnomeProvider.js.map +1 -1
  237. package/dist/components/HeaderBar/HeaderBar.cjs.map +1 -1
  238. package/dist/components/HeaderBar/HeaderBar.d.ts +1 -1
  239. package/dist/components/HeaderBar/HeaderBar.js.map +1 -1
  240. package/dist/components/HeaderBar/index.d.ts +1 -1
  241. package/dist/components/Icon/Icon.cjs.map +1 -1
  242. package/dist/components/Icon/Icon.d.ts +2 -2
  243. package/dist/components/Icon/Icon.js.map +1 -1
  244. package/dist/components/Icon/index.d.ts +1 -1
  245. package/dist/components/IconButton/IconButton.cjs.map +1 -1
  246. package/dist/components/IconButton/IconButton.d.ts +2 -2
  247. package/dist/components/IconButton/IconButton.js.map +1 -1
  248. package/dist/components/IconButton/index.d.ts +1 -1
  249. package/dist/components/InlineViewSwitcher/InlineViewSwitcher.cjs +1 -1
  250. package/dist/components/InlineViewSwitcher/InlineViewSwitcher.cjs.map +1 -1
  251. package/dist/components/InlineViewSwitcher/InlineViewSwitcher.d.ts +3 -3
  252. package/dist/components/InlineViewSwitcher/InlineViewSwitcher.js +8 -8
  253. package/dist/components/InlineViewSwitcher/InlineViewSwitcher.js.map +1 -1
  254. package/dist/components/InlineViewSwitcher/InlineViewSwitcher.module.css.cjs +1 -1
  255. package/dist/components/InlineViewSwitcher/InlineViewSwitcher.module.css.cjs.map +1 -1
  256. package/dist/components/InlineViewSwitcher/InlineViewSwitcher.module.css.js +10 -10
  257. package/dist/components/InlineViewSwitcher/InlineViewSwitcher.module.css.js.map +1 -1
  258. package/dist/components/InlineViewSwitcher/InlineViewSwitcherItem.cjs.map +1 -1
  259. package/dist/components/InlineViewSwitcher/InlineViewSwitcherItem.d.ts +1 -1
  260. package/dist/components/InlineViewSwitcher/InlineViewSwitcherItem.js.map +1 -1
  261. package/dist/components/InlineViewSwitcher/index.d.ts +2 -2
  262. package/dist/components/Link/Link.cjs.map +1 -1
  263. package/dist/components/Link/Link.js.map +1 -1
  264. package/dist/components/Link/Link.module.css.cjs +1 -1
  265. package/dist/components/Link/Link.module.css.cjs.map +1 -1
  266. package/dist/components/Link/Link.module.css.js +2 -2
  267. package/dist/components/Link/Link.module.css.js.map +1 -1
  268. package/dist/components/Link/index.d.ts +1 -1
  269. package/dist/components/LinkedGroup/LinkedGroup.cjs.map +1 -1
  270. package/dist/components/LinkedGroup/LinkedGroup.js.map +1 -1
  271. package/dist/components/LinkedGroup/LinkedGroup.module.css.cjs +1 -1
  272. package/dist/components/LinkedGroup/LinkedGroup.module.css.cjs.map +1 -1
  273. package/dist/components/LinkedGroup/LinkedGroup.module.css.js +2 -2
  274. package/dist/components/LinkedGroup/LinkedGroup.module.css.js.map +1 -1
  275. package/dist/components/LinkedGroup/index.d.ts +1 -1
  276. package/dist/components/NavigationSplitView/NavigationSplitView.cjs.map +1 -1
  277. package/dist/components/NavigationSplitView/NavigationSplitView.d.ts +1 -1
  278. package/dist/components/NavigationSplitView/NavigationSplitView.js.map +1 -1
  279. package/dist/components/NavigationSplitView/index.d.ts +1 -1
  280. package/dist/components/NavigationView/NavigationView.cjs.map +1 -1
  281. package/dist/components/NavigationView/NavigationView.d.ts +2 -2
  282. package/dist/components/NavigationView/NavigationView.js.map +1 -1
  283. package/dist/components/NavigationView/NavigationView.module.css.cjs +1 -1
  284. package/dist/components/NavigationView/NavigationView.module.css.cjs.map +1 -1
  285. package/dist/components/NavigationView/NavigationView.module.css.js +3 -3
  286. package/dist/components/NavigationView/NavigationView.module.css.js.map +1 -1
  287. package/dist/components/NavigationView/index.d.ts +2 -2
  288. package/dist/components/OverlaySplitView/OverlaySplitView.cjs.map +1 -1
  289. package/dist/components/OverlaySplitView/OverlaySplitView.d.ts +2 -2
  290. package/dist/components/OverlaySplitView/OverlaySplitView.js.map +1 -1
  291. package/dist/components/OverlaySplitView/OverlaySplitView.module.css.cjs +1 -1
  292. package/dist/components/OverlaySplitView/OverlaySplitView.module.css.cjs.map +1 -1
  293. package/dist/components/OverlaySplitView/OverlaySplitView.module.css.js +12 -12
  294. package/dist/components/OverlaySplitView/OverlaySplitView.module.css.js.map +1 -1
  295. package/dist/components/OverlaySplitView/index.d.ts +1 -1
  296. package/dist/components/PasswordEntryRow/PasswordEntryRow.cjs.map +1 -1
  297. package/dist/components/PasswordEntryRow/PasswordEntryRow.d.ts +1 -1
  298. package/dist/components/PasswordEntryRow/PasswordEntryRow.js.map +1 -1
  299. package/dist/components/PasswordEntryRow/PasswordEntryRow.module.css.cjs +1 -1
  300. package/dist/components/PasswordEntryRow/PasswordEntryRow.module.css.cjs.map +1 -1
  301. package/dist/components/PasswordEntryRow/PasswordEntryRow.module.css.js +1 -1
  302. package/dist/components/PasswordEntryRow/PasswordEntryRow.module.css.js.map +1 -1
  303. package/dist/components/PasswordEntryRow/index.d.ts +1 -1
  304. package/dist/components/PathBar/PathBar.cjs.map +1 -1
  305. package/dist/components/PathBar/PathBar.js.map +1 -1
  306. package/dist/components/PathBar/PathBar.module.css.cjs +1 -1
  307. package/dist/components/PathBar/PathBar.module.css.cjs.map +1 -1
  308. package/dist/components/PathBar/PathBar.module.css.js +7 -7
  309. package/dist/components/PathBar/PathBar.module.css.js.map +1 -1
  310. package/dist/components/PathBar/index.d.ts +1 -1
  311. package/dist/components/Popover/Popover.cjs.map +1 -1
  312. package/dist/components/Popover/Popover.d.ts +2 -2
  313. package/dist/components/Popover/Popover.js.map +1 -1
  314. package/dist/components/Popover/Popover.module.css.cjs +1 -1
  315. package/dist/components/Popover/Popover.module.css.cjs.map +1 -1
  316. package/dist/components/Popover/Popover.module.css.js +7 -7
  317. package/dist/components/Popover/Popover.module.css.js.map +1 -1
  318. package/dist/components/Popover/index.d.ts +1 -1
  319. package/dist/components/PreferencesDialog/PreferencesDialog.cjs +1 -1
  320. package/dist/components/PreferencesDialog/PreferencesDialog.cjs.map +1 -1
  321. package/dist/components/PreferencesDialog/PreferencesDialog.d.ts +1 -1
  322. package/dist/components/PreferencesDialog/PreferencesDialog.js +0 -1
  323. package/dist/components/PreferencesDialog/PreferencesDialog.js.map +1 -1
  324. package/dist/components/PreferencesDialog/PreferencesDialog.module.css.cjs +1 -1
  325. package/dist/components/PreferencesDialog/PreferencesDialog.module.css.cjs.map +1 -1
  326. package/dist/components/PreferencesDialog/PreferencesDialog.module.css.js +3 -3
  327. package/dist/components/PreferencesDialog/PreferencesDialog.module.css.js.map +1 -1
  328. package/dist/components/PreferencesDialog/index.d.ts +1 -1
  329. package/dist/components/PreferencesGroup/PreferencesGroup.cjs.map +1 -1
  330. package/dist/components/PreferencesGroup/PreferencesGroup.js.map +1 -1
  331. package/dist/components/PreferencesGroup/index.d.ts +1 -1
  332. package/dist/components/PreferencesPage/PreferencesPage.cjs.map +1 -1
  333. package/dist/components/PreferencesPage/PreferencesPage.js.map +1 -1
  334. package/dist/components/PreferencesPage/index.d.ts +1 -1
  335. package/dist/components/ProgressBar/ProgressBar.cjs.map +1 -1
  336. package/dist/components/ProgressBar/ProgressBar.d.ts +4 -4
  337. package/dist/components/ProgressBar/ProgressBar.js.map +1 -1
  338. package/dist/components/ProgressBar/ProgressBar.module.css.cjs +1 -1
  339. package/dist/components/ProgressBar/ProgressBar.module.css.cjs.map +1 -1
  340. package/dist/components/ProgressBar/ProgressBar.module.css.js +8 -8
  341. package/dist/components/ProgressBar/ProgressBar.module.css.js.map +1 -1
  342. package/dist/components/ProgressBar/index.d.ts +1 -1
  343. package/dist/components/RadioButton/RadioButton.cjs.map +1 -1
  344. package/dist/components/RadioButton/RadioButton.d.ts +2 -2
  345. package/dist/components/RadioButton/RadioButton.js.map +1 -1
  346. package/dist/components/RadioButton/RadioButton.module.css.cjs +1 -1
  347. package/dist/components/RadioButton/RadioButton.module.css.cjs.map +1 -1
  348. package/dist/components/RadioButton/RadioButton.module.css.js +1 -1
  349. package/dist/components/RadioButton/RadioButton.module.css.js.map +1 -1
  350. package/dist/components/RadioButton/index.d.ts +1 -1
  351. package/dist/components/SearchBar/SearchBar.cjs +1 -1
  352. package/dist/components/SearchBar/SearchBar.cjs.map +1 -1
  353. package/dist/components/SearchBar/SearchBar.d.ts +1 -1
  354. package/dist/components/SearchBar/SearchBar.js +1 -3
  355. package/dist/components/SearchBar/SearchBar.js.map +1 -1
  356. package/dist/components/SearchBar/SearchBar.module.css.cjs +1 -1
  357. package/dist/components/SearchBar/SearchBar.module.css.cjs.map +1 -1
  358. package/dist/components/SearchBar/SearchBar.module.css.js +13 -13
  359. package/dist/components/SearchBar/SearchBar.module.css.js.map +1 -1
  360. package/dist/components/SearchBar/index.d.ts +1 -1
  361. package/dist/components/SegmentedBar/SegmentedBar.cjs.map +1 -1
  362. package/dist/components/SegmentedBar/SegmentedBar.d.ts +1 -1
  363. package/dist/components/SegmentedBar/SegmentedBar.js.map +1 -1
  364. package/dist/components/SegmentedBar/SegmentedBar.module.css.cjs +1 -1
  365. package/dist/components/SegmentedBar/SegmentedBar.module.css.cjs.map +1 -1
  366. package/dist/components/SegmentedBar/SegmentedBar.module.css.js +12 -12
  367. package/dist/components/SegmentedBar/SegmentedBar.module.css.js.map +1 -1
  368. package/dist/components/SegmentedBar/index.d.ts +1 -1
  369. package/dist/components/Separator/Separator.cjs.map +1 -1
  370. package/dist/components/Separator/Separator.d.ts +1 -1
  371. package/dist/components/Separator/Separator.js.map +1 -1
  372. package/dist/components/Separator/index.d.ts +1 -1
  373. package/dist/components/ShortcutLabel/ShortcutLabel.cjs.map +1 -1
  374. package/dist/components/ShortcutLabel/ShortcutLabel.js.map +1 -1
  375. package/dist/components/ShortcutLabel/index.d.ts +1 -1
  376. package/dist/components/ShortcutsDialog/ShortcutsDialog.cjs +1 -1
  377. package/dist/components/ShortcutsDialog/ShortcutsDialog.cjs.map +1 -1
  378. package/dist/components/ShortcutsDialog/ShortcutsDialog.js +0 -1
  379. package/dist/components/ShortcutsDialog/ShortcutsDialog.js.map +1 -1
  380. package/dist/components/ShortcutsDialog/ShortcutsDialog.module.css.cjs +1 -1
  381. package/dist/components/ShortcutsDialog/ShortcutsDialog.module.css.cjs.map +1 -1
  382. package/dist/components/ShortcutsDialog/ShortcutsDialog.module.css.js +3 -3
  383. package/dist/components/ShortcutsDialog/ShortcutsDialog.module.css.js.map +1 -1
  384. package/dist/components/ShortcutsDialog/index.d.ts +1 -1
  385. package/dist/components/Sidebar/Sidebar.cjs.map +1 -1
  386. package/dist/components/Sidebar/Sidebar.d.ts +2 -2
  387. package/dist/components/Sidebar/Sidebar.js.map +1 -1
  388. package/dist/components/Sidebar/Sidebar.module.css.cjs +1 -1
  389. package/dist/components/Sidebar/Sidebar.module.css.cjs.map +1 -1
  390. package/dist/components/Sidebar/Sidebar.module.css.js +2 -2
  391. package/dist/components/Sidebar/Sidebar.module.css.js.map +1 -1
  392. package/dist/components/Sidebar/SidebarItem.cjs.map +1 -1
  393. package/dist/components/Sidebar/SidebarItem.d.ts +1 -1
  394. package/dist/components/Sidebar/SidebarItem.js.map +1 -1
  395. package/dist/components/Sidebar/SidebarSection.cjs +1 -1
  396. package/dist/components/Sidebar/SidebarSection.cjs.map +1 -1
  397. package/dist/components/Sidebar/SidebarSection.d.ts +1 -1
  398. package/dist/components/Sidebar/SidebarSection.js +0 -1
  399. package/dist/components/Sidebar/SidebarSection.js.map +1 -1
  400. package/dist/components/Sidebar/index.d.ts +4 -4
  401. package/dist/components/Sidebar.cjs +1 -1
  402. package/dist/components/Sidebar.js +3 -3
  403. package/dist/components/Skeleton/Skeleton.cjs.map +1 -1
  404. package/dist/components/Skeleton/Skeleton.d.ts +1 -1
  405. package/dist/components/Skeleton/Skeleton.js.map +1 -1
  406. package/dist/components/Skeleton/Skeleton.module.css.cjs +1 -1
  407. package/dist/components/Skeleton/Skeleton.module.css.cjs.map +1 -1
  408. package/dist/components/Skeleton/Skeleton.module.css.js +7 -7
  409. package/dist/components/Skeleton/Skeleton.module.css.js.map +1 -1
  410. package/dist/components/Skeleton/index.d.ts +1 -1
  411. package/dist/components/Slider/Slider.cjs.map +1 -1
  412. package/dist/components/Slider/Slider.d.ts +5 -5
  413. package/dist/components/Slider/Slider.js.map +1 -1
  414. package/dist/components/Slider/Slider.module.css.cjs +1 -1
  415. package/dist/components/Slider/Slider.module.css.cjs.map +1 -1
  416. package/dist/components/Slider/Slider.module.css.js +9 -9
  417. package/dist/components/Slider/Slider.module.css.js.map +1 -1
  418. package/dist/components/Slider/index.d.ts +1 -1
  419. package/dist/components/SpinButton/SpinButton.cjs.map +1 -1
  420. package/dist/components/SpinButton/SpinButton.d.ts +4 -4
  421. package/dist/components/SpinButton/SpinButton.js.map +1 -1
  422. package/dist/components/SpinButton/SpinButton.module.css.cjs +1 -1
  423. package/dist/components/SpinButton/SpinButton.module.css.cjs.map +1 -1
  424. package/dist/components/SpinButton/SpinButton.module.css.js +4 -4
  425. package/dist/components/SpinButton/SpinButton.module.css.js.map +1 -1
  426. package/dist/components/SpinButton/index.d.ts +1 -1
  427. package/dist/components/SpinRow/SpinRow.cjs.map +1 -1
  428. package/dist/components/SpinRow/SpinRow.d.ts +1 -1
  429. package/dist/components/SpinRow/SpinRow.js.map +1 -1
  430. package/dist/components/SpinRow/SpinRow.module.css.cjs +1 -1
  431. package/dist/components/SpinRow/SpinRow.module.css.cjs.map +1 -1
  432. package/dist/components/SpinRow/SpinRow.module.css.js +9 -9
  433. package/dist/components/SpinRow/SpinRow.module.css.js.map +1 -1
  434. package/dist/components/SpinRow/index.d.ts +1 -1
  435. package/dist/components/Spinner/Spinner.cjs.map +1 -1
  436. package/dist/components/Spinner/Spinner.d.ts +1 -1
  437. package/dist/components/Spinner/Spinner.js.map +1 -1
  438. package/dist/components/Spinner/Spinner.module.css.cjs +1 -1
  439. package/dist/components/Spinner/Spinner.module.css.cjs.map +1 -1
  440. package/dist/components/Spinner/Spinner.module.css.js +5 -5
  441. package/dist/components/Spinner/Spinner.module.css.js.map +1 -1
  442. package/dist/components/Spinner/index.d.ts +1 -1
  443. package/dist/components/SplitButton/SplitButton.cjs.map +1 -1
  444. package/dist/components/SplitButton/SplitButton.d.ts +2 -2
  445. package/dist/components/SplitButton/SplitButton.js.map +1 -1
  446. package/dist/components/SplitButton/SplitButton.module.css.cjs +1 -1
  447. package/dist/components/SplitButton/SplitButton.module.css.cjs.map +1 -1
  448. package/dist/components/SplitButton/SplitButton.module.css.js +10 -10
  449. package/dist/components/SplitButton/SplitButton.module.css.js.map +1 -1
  450. package/dist/components/SplitButton/index.d.ts +1 -1
  451. package/dist/components/StatusBadge/StatusBadge.cjs.map +1 -1
  452. package/dist/components/StatusBadge/StatusBadge.d.ts +1 -1
  453. package/dist/components/StatusBadge/StatusBadge.js.map +1 -1
  454. package/dist/components/StatusBadge/index.d.ts +1 -1
  455. package/dist/components/StatusPage/StatusPage.cjs.map +1 -1
  456. package/dist/components/StatusPage/StatusPage.d.ts +1 -1
  457. package/dist/components/StatusPage/StatusPage.js.map +1 -1
  458. package/dist/components/StatusPage/index.d.ts +1 -1
  459. package/dist/components/Switch/Switch.cjs.map +1 -1
  460. package/dist/components/Switch/Switch.d.ts +2 -2
  461. package/dist/components/Switch/Switch.js.map +1 -1
  462. package/dist/components/Switch/Switch.module.css.cjs +1 -1
  463. package/dist/components/Switch/Switch.module.css.cjs.map +1 -1
  464. package/dist/components/Switch/Switch.module.css.js +1 -1
  465. package/dist/components/Switch/Switch.module.css.js.map +1 -1
  466. package/dist/components/Switch/index.d.ts +1 -1
  467. package/dist/components/SwitchRow/SwitchRow.cjs.map +1 -1
  468. package/dist/components/SwitchRow/SwitchRow.d.ts +1 -1
  469. package/dist/components/SwitchRow/SwitchRow.js.map +1 -1
  470. package/dist/components/SwitchRow/SwitchRow.module.css.cjs +1 -1
  471. package/dist/components/SwitchRow/SwitchRow.module.css.cjs.map +1 -1
  472. package/dist/components/SwitchRow/SwitchRow.module.css.js +9 -9
  473. package/dist/components/SwitchRow/SwitchRow.module.css.js.map +1 -1
  474. package/dist/components/SwitchRow/index.d.ts +1 -1
  475. package/dist/components/Tabs/TabBar.cjs +1 -1
  476. package/dist/components/Tabs/TabBar.cjs.map +1 -1
  477. package/dist/components/Tabs/TabBar.d.ts +2 -2
  478. package/dist/components/Tabs/TabBar.js +8 -8
  479. package/dist/components/Tabs/TabBar.js.map +1 -1
  480. package/dist/components/Tabs/TabItem.cjs.map +1 -1
  481. package/dist/components/Tabs/TabItem.d.ts +1 -1
  482. package/dist/components/Tabs/TabItem.js.map +1 -1
  483. package/dist/components/Tabs/TabPanel.cjs +1 -1
  484. package/dist/components/Tabs/TabPanel.cjs.map +1 -1
  485. package/dist/components/Tabs/TabPanel.js +0 -1
  486. package/dist/components/Tabs/TabPanel.js.map +1 -1
  487. package/dist/components/Tabs/Tabs.module.css.cjs +1 -1
  488. package/dist/components/Tabs/Tabs.module.css.cjs.map +1 -1
  489. package/dist/components/Tabs/Tabs.module.css.js +10 -10
  490. package/dist/components/Tabs/Tabs.module.css.js.map +1 -1
  491. package/dist/components/Tabs/index.d.ts +3 -3
  492. package/dist/components/TerminalView/TerminalView.cjs +1 -1
  493. package/dist/components/TerminalView/TerminalView.cjs.map +1 -1
  494. package/dist/components/TerminalView/TerminalView.d.ts +1 -1
  495. package/dist/components/TerminalView/TerminalView.js +1 -1
  496. package/dist/components/TerminalView/TerminalView.js.map +1 -1
  497. package/dist/components/TerminalView/index.d.ts +1 -1
  498. package/dist/components/Text/Text.cjs.map +1 -1
  499. package/dist/components/Text/Text.d.ts +2 -2
  500. package/dist/components/Text/Text.js.map +1 -1
  501. package/dist/components/Text/index.d.ts +1 -1
  502. package/dist/components/TextField/TextField.cjs.map +1 -1
  503. package/dist/components/TextField/TextField.d.ts +1 -1
  504. package/dist/components/TextField/TextField.js.map +1 -1
  505. package/dist/components/TextField/TextField.module.css.cjs +1 -1
  506. package/dist/components/TextField/TextField.module.css.cjs.map +1 -1
  507. package/dist/components/TextField/TextField.module.css.js +7 -7
  508. package/dist/components/TextField/TextField.module.css.js.map +1 -1
  509. package/dist/components/TextField/index.d.ts +1 -1
  510. package/dist/components/Timeline/Timeline.cjs.map +1 -1
  511. package/dist/components/Timeline/Timeline.d.ts +2 -2
  512. package/dist/components/Timeline/Timeline.js.map +1 -1
  513. package/dist/components/Timeline/index.d.ts +1 -1
  514. package/dist/components/Toast/Toast.cjs +1 -1
  515. package/dist/components/Toast/Toast.cjs.map +1 -1
  516. package/dist/components/Toast/Toast.d.ts +1 -1
  517. package/dist/components/Toast/Toast.js +39 -35
  518. package/dist/components/Toast/Toast.js.map +1 -1
  519. package/dist/components/Toast/Toast.module.css.cjs +1 -1
  520. package/dist/components/Toast/Toast.module.css.cjs.map +1 -1
  521. package/dist/components/Toast/Toast.module.css.js +2 -2
  522. package/dist/components/Toast/Toast.module.css.js.map +1 -1
  523. package/dist/components/Toast/Toaster.cjs.map +1 -1
  524. package/dist/components/Toast/Toaster.d.ts +1 -1
  525. package/dist/components/Toast/Toaster.js.map +1 -1
  526. package/dist/components/Toast/index.d.ts +2 -2
  527. package/dist/components/ToggleGroup/ToggleGroup.cjs +1 -1
  528. package/dist/components/ToggleGroup/ToggleGroup.cjs.map +1 -1
  529. package/dist/components/ToggleGroup/ToggleGroup.d.ts +2 -2
  530. package/dist/components/ToggleGroup/ToggleGroup.js +8 -8
  531. package/dist/components/ToggleGroup/ToggleGroup.js.map +1 -1
  532. package/dist/components/ToggleGroup/ToggleGroup.module.css.cjs +1 -1
  533. package/dist/components/ToggleGroup/ToggleGroup.module.css.cjs.map +1 -1
  534. package/dist/components/ToggleGroup/ToggleGroup.module.css.js +6 -6
  535. package/dist/components/ToggleGroup/ToggleGroup.module.css.js.map +1 -1
  536. package/dist/components/ToggleGroup/ToggleGroupItem.cjs.map +1 -1
  537. package/dist/components/ToggleGroup/ToggleGroupItem.d.ts +1 -1
  538. package/dist/components/ToggleGroup/ToggleGroupItem.js.map +1 -1
  539. package/dist/components/ToggleGroup/index.d.ts +2 -2
  540. package/dist/components/Toolbar/Spacer.cjs.map +1 -1
  541. package/dist/components/Toolbar/Spacer.d.ts +1 -2
  542. package/dist/components/Toolbar/Spacer.js.map +1 -1
  543. package/dist/components/Toolbar/Toolbar.cjs.map +1 -1
  544. package/dist/components/Toolbar/Toolbar.js.map +1 -1
  545. package/dist/components/Toolbar/index.d.ts +3 -3
  546. package/dist/components/Toolbar.cjs +1 -1
  547. package/dist/components/Toolbar.js +3 -3
  548. package/dist/components/ToolbarView/ToolbarView.cjs.map +1 -1
  549. package/dist/components/ToolbarView/ToolbarView.js.map +1 -1
  550. package/dist/components/ToolbarView/index.d.ts +1 -1
  551. package/dist/components/Tooltip/Tooltip.cjs +1 -1
  552. package/dist/components/Tooltip/Tooltip.cjs.map +1 -1
  553. package/dist/components/Tooltip/Tooltip.d.ts +2 -2
  554. package/dist/components/Tooltip/Tooltip.js +4 -4
  555. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  556. package/dist/components/Tooltip/Tooltip.module.css.cjs +1 -1
  557. package/dist/components/Tooltip/Tooltip.module.css.cjs.map +1 -1
  558. package/dist/components/Tooltip/Tooltip.module.css.js +6 -6
  559. package/dist/components/Tooltip/Tooltip.module.css.js.map +1 -1
  560. package/dist/components/Tooltip/index.d.ts +1 -1
  561. package/dist/components/ViewSwitcher/ViewSwitcher.cjs +1 -1
  562. package/dist/components/ViewSwitcher/ViewSwitcher.cjs.map +1 -1
  563. package/dist/components/ViewSwitcher/ViewSwitcher.d.ts +2 -2
  564. package/dist/components/ViewSwitcher/ViewSwitcher.js +8 -8
  565. package/dist/components/ViewSwitcher/ViewSwitcher.js.map +1 -1
  566. package/dist/components/ViewSwitcher/ViewSwitcher.module.css.cjs +1 -1
  567. package/dist/components/ViewSwitcher/ViewSwitcher.module.css.cjs.map +1 -1
  568. package/dist/components/ViewSwitcher/ViewSwitcher.module.css.js +5 -5
  569. package/dist/components/ViewSwitcher/ViewSwitcher.module.css.js.map +1 -1
  570. package/dist/components/ViewSwitcher/ViewSwitcherItem.cjs.map +1 -1
  571. package/dist/components/ViewSwitcher/ViewSwitcherItem.d.ts +1 -1
  572. package/dist/components/ViewSwitcher/ViewSwitcherItem.js.map +1 -1
  573. package/dist/components/ViewSwitcher/index.d.ts +2 -2
  574. package/dist/components/ViewSwitcherBar/ViewSwitcherBar.cjs.map +1 -1
  575. package/dist/components/ViewSwitcherBar/ViewSwitcherBar.js.map +1 -1
  576. package/dist/components/ViewSwitcherBar/ViewSwitcherBar.module.css.cjs +1 -1
  577. package/dist/components/ViewSwitcherBar/ViewSwitcherBar.module.css.cjs.map +1 -1
  578. package/dist/components/ViewSwitcherBar/ViewSwitcherBar.module.css.js +1 -1
  579. package/dist/components/ViewSwitcherBar/ViewSwitcherBar.module.css.js.map +1 -1
  580. package/dist/components/ViewSwitcherBar/index.d.ts +1 -1
  581. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebar.cjs +1 -1
  582. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebar.cjs.map +1 -1
  583. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebar.d.ts +2 -2
  584. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebar.js +8 -8
  585. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebar.js.map +1 -1
  586. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebar.module.css.cjs +1 -1
  587. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebar.module.css.cjs.map +1 -1
  588. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebar.module.css.js +14 -14
  589. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebar.module.css.js.map +1 -1
  590. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebarItem.cjs.map +1 -1
  591. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebarItem.d.ts +1 -1
  592. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebarItem.js.map +1 -1
  593. package/dist/components/ViewSwitcherSidebar/index.d.ts +2 -2
  594. package/dist/components/WindowTitle/WindowTitle.cjs.map +1 -1
  595. package/dist/components/WindowTitle/WindowTitle.js.map +1 -1
  596. package/dist/components/WindowTitle/index.d.ts +1 -1
  597. package/dist/components/WrapBox/WrapBox.cjs.map +1 -1
  598. package/dist/components/WrapBox/WrapBox.d.ts +2 -2
  599. package/dist/components/WrapBox/WrapBox.js.map +1 -1
  600. package/dist/components/WrapBox/index.d.ts +1 -1
  601. package/dist/hooks/index.d.ts +3 -3
  602. package/dist/hooks/useBreakpoint.cjs +1 -1
  603. package/dist/hooks/useBreakpoint.cjs.map +1 -1
  604. package/dist/hooks/useBreakpoint.js +12 -12
  605. package/dist/hooks/useBreakpoint.js.map +1 -1
  606. package/dist/index.cjs +1 -1
  607. package/dist/index.d.ts +153 -153
  608. package/dist/index.js +5 -5
  609. package/dist/style.css +1 -1
  610. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"SwitchRow.js","names":[],"sources":["../../../src/components/SwitchRow/SwitchRow.tsx"],"sourcesContent":["import { useState, useId, type HTMLAttributes, type ReactNode } from \"react\";\nimport styles from \"./SwitchRow.module.css\";\n\nexport interface SwitchRowProps extends Omit<HTMLAttributes<HTMLButtonElement>, \"onChange\"> {\n /** Primary label. */\n title: string;\n /** Secondary line below the title. */\n subtitle?: string;\n /** Icon or image placed at the leading edge. */\n leading?: ReactNode;\n /** Controlled checked state. */\n checked?: boolean;\n /** Initial checked state when uncontrolled. Defaults to `false`. */\n defaultChecked?: boolean;\n /** Called when the checked state changes. */\n onCheckedChange?: (checked: boolean) => void;\n /** Disables the row. */\n disabled?: boolean;\n}\n\n/**\n * Activatable row with an integrated switch.\n *\n * The entire row is a button — clicking anywhere toggles the switch.\n * Mirrors `AdwSwitchRow`, which differs from `ActionRow + trailing Switch`\n * because the row itself is the interactive element.\n *\n * Supports both controlled (`checked`) and uncontrolled (`defaultChecked`) modes.\n *\n * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.SwitchRow.html\n */\nexport function SwitchRow({\n title,\n subtitle,\n leading,\n checked: controlledChecked,\n defaultChecked = false,\n onCheckedChange,\n disabled = false,\n className,\n onClick,\n ...props\n}: SwitchRowProps) {\n const isControlled = controlledChecked !== undefined;\n const [uncontrolledChecked, setUncontrolledChecked] = useState(defaultChecked);\n const checked = isControlled ? controlledChecked : uncontrolledChecked;\n\n const switchId = useId();\n\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n const next = !checked;\n if (!isControlled) setUncontrolledChecked(next);\n onCheckedChange?.(next);\n onClick?.(e);\n };\n\n return (\n <button\n role=\"switch\"\n aria-checked={checked}\n aria-labelledby={switchId}\n disabled={disabled}\n className={[styles.row, disabled ? styles.disabled : null, className]\n .filter(Boolean)\n .join(\" \")}\n onClick={handleClick}\n {...props}\n >\n {leading && <span className={styles.leading}>{leading}</span>}\n\n <span className={styles.content} id={switchId}>\n <span className={styles.title}>{title}</span>\n {subtitle && <span className={styles.subtitle}>{subtitle}</span>}\n </span>\n\n {/* Visual switch indicator — aria-hidden since the button carries the role */}\n <span className={styles.switchTrack} aria-hidden=\"true\">\n <span className={[styles.switchThumb, checked ? styles.switchThumbOn : null].filter(Boolean).join(\" \")} />\n </span>\n </button>\n );\n}\n"],"mappings":";;;;AA+BA,SAAgB,EAAU,EACxB,UACA,aACA,YACA,SAAS,GACT,oBAAiB,IACjB,oBACA,cAAW,IACX,cACA,YACA,GAAG,KACc;CACjB,IAAM,IAAe,MAAsB,KAAA,GACrC,CAAC,GAAqB,KAA0B,EAAS,EAAe,EACxE,IAAU,IAAe,IAAoB,GAE7C,IAAW,GAAO,EAElB,KAAe,MAA2C;EAC9D,IAAM,IAAO,CAAC;AAGd,EAFK,KAAc,EAAuB,EAAK,EAC/C,IAAkB,EAAK,EACvB,IAAU,EAAE;;AAGd,QACE,kBAAC,UAAD;EACE,MAAK;EACL,gBAAc;EACd,mBAAiB;EACP;EACV,WAAW;GAAC,EAAO;GAAK,IAAW,EAAO,WAAW;GAAM;GAAU,CAClE,OAAO,QAAQ,CACf,KAAK,IAAI;EACZ,SAAS;EACT,GAAI;YATN;GAWG,KAAW,kBAAC,QAAD;IAAM,WAAW,EAAO;cAAU;IAAe,CAAA;GAE7D,kBAAC,QAAD;IAAM,WAAW,EAAO;IAAS,IAAI;cAArC,CACE,kBAAC,QAAD;KAAM,WAAW,EAAO;eAAQ;KAAa,CAAA,EAC5C,KAAY,kBAAC,QAAD;KAAM,WAAW,EAAO;eAAW;KAAgB,CAAA,CAC3D;;GAGP,kBAAC,QAAD;IAAM,WAAW,EAAO;IAAa,eAAY;cAC/C,kBAAC,QAAD,EAAM,WAAW,CAAC,EAAO,aAAa,IAAU,EAAO,gBAAgB,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAK,IAAI,EAAI,CAAA;IACrG,CAAA;GACA"}
1
+ {"version":3,"file":"SwitchRow.js","names":[],"sources":["../../../src/components/SwitchRow/SwitchRow.tsx"],"sourcesContent":["import { type HTMLAttributes, type MouseEvent, type ReactNode, useId, useState } from 'react';\n\nimport styles from './SwitchRow.module.css';\n\nexport interface SwitchRowProps extends Omit<HTMLAttributes<HTMLButtonElement>, 'onChange'> {\n /** Primary label. */\n title: string;\n /** Secondary line below the title. */\n subtitle?: string;\n /** Icon or image placed at the leading edge. */\n leading?: ReactNode;\n /** Controlled checked state. */\n checked?: boolean;\n /** Initial checked state when uncontrolled. Defaults to `false`. */\n defaultChecked?: boolean;\n /** Called when the checked state changes. */\n onCheckedChange?: (checked: boolean) => void;\n /** Disables the row. */\n disabled?: boolean;\n}\n\n/**\n * Activatable row with an integrated switch.\n *\n * The entire row is a button — clicking anywhere toggles the switch.\n * Mirrors `AdwSwitchRow`, which differs from `ActionRow + trailing Switch`\n * because the row itself is the interactive element.\n *\n * Supports both controlled (`checked`) and uncontrolled (`defaultChecked`) modes.\n *\n * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.SwitchRow.html\n */\nexport function SwitchRow({\n title,\n subtitle,\n leading,\n checked: controlledChecked,\n defaultChecked = false,\n onCheckedChange,\n disabled = false,\n className,\n onClick,\n ...props\n}: SwitchRowProps) {\n const isControlled = controlledChecked !== undefined;\n const [uncontrolledChecked, setUncontrolledChecked] = useState(defaultChecked);\n const checked = isControlled ? controlledChecked : uncontrolledChecked;\n\n const switchId = useId();\n\n const handleClick = (e: MouseEvent<HTMLButtonElement>) => {\n const next = !checked;\n\n if (!isControlled) {\n setUncontrolledChecked(next);\n }\n\n onCheckedChange?.(next);\n onClick?.(e);\n };\n\n return (\n <button\n role=\"switch\"\n aria-checked={checked}\n aria-labelledby={switchId}\n disabled={disabled}\n className={[styles.row, disabled ? styles.disabled : null, className]\n .filter(Boolean)\n .join(' ')}\n onClick={handleClick}\n {...props}\n >\n {leading && <span className={styles.leading}>{leading}</span>}\n\n <span className={styles.content} id={switchId}>\n <span className={styles.title}>{title}</span>\n {subtitle && <span className={styles.subtitle}>{subtitle}</span>}\n </span>\n\n {/* Visual switch indicator — aria-hidden since the button carries the role */}\n <span className={styles.switchTrack} aria-hidden=\"true\">\n <span\n className={[styles.switchThumb, checked ? styles.switchThumbOn : null]\n .filter(Boolean)\n .join(' ')}\n />\n </span>\n </button>\n );\n}\n"],"mappings":";;;;AAgCA,SAAgB,EAAU,EACxB,UACA,aACA,YACA,SAAS,GACT,oBAAiB,IACjB,oBACA,cAAW,IACX,cACA,YACA,GAAG,KACc;CACjB,IAAM,IAAe,MAAsB,KAAA,GACrC,CAAC,GAAqB,KAA0B,EAAS,EAAe,EACxE,IAAU,IAAe,IAAoB,GAE7C,IAAW,GAAO,EAElB,KAAe,MAAqC;EACxD,IAAM,IAAO,CAAC;AAOd,EALK,KACH,EAAuB,EAAK,EAG9B,IAAkB,EAAK,EACvB,IAAU,EAAE;;AAGd,QACE,kBAAC,UAAD;EACE,MAAK;EACL,gBAAc;EACd,mBAAiB;EACP;EACV,WAAW;GAAC,EAAO;GAAK,IAAW,EAAO,WAAW;GAAM;GAAU,CAClE,OAAO,QAAQ,CACf,KAAK,IAAI;EACZ,SAAS;EACT,GAAI;YATN;GAWG,KAAW,kBAAC,QAAD;IAAM,WAAW,EAAO;cAAU;IAAe,CAAA;GAE7D,kBAAC,QAAD;IAAM,WAAW,EAAO;IAAS,IAAI;cAArC,CACE,kBAAC,QAAD;KAAM,WAAW,EAAO;eAAQ;KAAa,CAAA,EAC5C,KAAY,kBAAC,QAAD;KAAM,WAAW,EAAO;eAAW;KAAgB,CAAA,CAC3D;;GAGP,kBAAC,QAAD;IAAM,WAAW,EAAO;IAAa,eAAY;cAC/C,kBAAC,QAAD,EACE,WAAW,CAAC,EAAO,aAAa,IAAU,EAAO,gBAAgB,KAAK,CACnE,OAAO,QAAQ,CACf,KAAK,IAAI,EACZ,CAAA;IACG,CAAA;GACA"}
@@ -1,2 +1,2 @@
1
- var e={row:`_row_jl3bc_3`,disabled:`_disabled_jl3bc_41`,leading:`_leading_jl3bc_49`,content:`_content_jl3bc_58`,title:`_title_jl3bc_66`,subtitle:`_subtitle_jl3bc_77`,switchTrack:`_switchTrack_jl3bc_91`,switchThumb:`_switchThumb_jl3bc_114`,switchThumbOn:`_switchThumbOn_jl3bc_126`};exports.default=e;
1
+ var e={row:`_row_t5458_3`,disabled:`_disabled_t5458_41`,leading:`_leading_t5458_49`,content:`_content_t5458_58`,title:`_title_t5458_66`,subtitle:`_subtitle_t5458_77`,switchTrack:`_switchTrack_t5458_91`,switchThumb:`_switchThumb_t5458_114`,switchThumbOn:`_switchThumbOn_t5458_126`};exports.default=e;
2
2
  //# sourceMappingURL=SwitchRow.module.css.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"SwitchRow.module.css.cjs","names":[],"sources":["../../../src/components/SwitchRow/SwitchRow.module.css"],"sourcesContent":["/* ─── Row button ────────────────────────────────────────────────────────────── */\n\n.row {\n display: flex;\n align-items: center;\n gap: var(--gnome-space-2, 12px);\n padding: var(--gnome-space-2, 12px) var(--gnome-space-4, 24px);\n min-height: 52px;\n width: 100%;\n\n appearance: none;\n -webkit-appearance: none;\n background: transparent;\n border: none;\n font: inherit;\n outline: none;\n cursor: pointer;\n text-align: start;\n color: var(--gnome-card-fg-color, rgba(0, 0, 0, 0.8));\n\n transition: background-color var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.row:hover {\n background-color: var(--gnome-hover-overlay);\n}\n\n.row:active {\n background-color: var(--gnome-active-overlay);\n}\n\n.row:focus-visible {\n box-shadow:\n inset 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-window-bg-color, #fafafa),\n inset 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/* ─── Leading icon/avatar ───────────────────────────────────────────────────── */\n\n.leading {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n color: var(--gnome-window-fg-color, rgba(0, 0, 0, 0.8));\n}\n\n/* ─── Text content ──────────────────────────────────────────────────────────── */\n\n.content {\n display: flex;\n flex-direction: column;\n flex: 1;\n min-width: 0;\n gap: 2px;\n}\n\n.title {\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-body, 1rem);\n font-weight: var(--gnome-font-weight-normal, 400);\n line-height: var(--gnome-line-height-body, 1.5);\n color: var(--gnome-card-fg-color, rgba(0, 0, 0, 0.8));\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.subtitle {\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-caption, 0.75rem);\n font-weight: var(--gnome-font-weight-normal, 400);\n line-height: var(--gnome-line-height-body, 1.5);\n color: var(--gnome-window-fg-color, rgba(0, 0, 0, 0.55));\n opacity: var(--gnome-opacity-dim, 0.55);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n/* ─── Switch track ──────────────────────────────────────────────────────────── */\n\n.switchTrack {\n position: relative;\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n width: 56px;\n height: 28px;\n border-radius: var(--gnome-radius-pill);\n background-color: var(--gnome-light-4, #c0bfbc);\n border: 1px solid var(--gnome-border-subtle, rgba(0, 0, 0, 0.12));\n transition:\n background-color var(--gnome-duration-fast) var(--gnome-easing-default),\n border-color var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n/* When checked, colour the track */\n.row[aria-checked=\"true\"] .switchTrack {\n background-color: var(--gnome-accent-bg-color, #3584e4);\n border-color: var(--gnome-accent-bg-color, #3584e4);\n}\n\n/* ─── Switch thumb ──────────────────────────────────────────────────────────── */\n\n.switchThumb {\n position: absolute;\n top: 3px;\n left: 3px;\n width: 20px;\n height: 20px;\n border-radius: var(--gnome-radius-pill);\n background-color: #ffffff;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);\n transition: transform var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.switchThumbOn {\n transform: translateX(28px);\n}\n\n/* ─── Dark mode ─────────────────────────────────────────────────────────────── */\n\n@media (prefers-color-scheme: dark) {\n .switchTrack {\n background-color: var(--gnome-dark-2, #5e5c64);\n }\n\n .switchThumb {\n background-color: var(--gnome-light-3, #deddda);\n }\n\n .row[aria-checked=\"true\"] .switchThumb {\n background-color: #ffffff;\n }\n}\n\n/* ─── High contrast ─────────────────────────────────────────────────────────── */\n\n@media (prefers-contrast: more) {\n .row:focus-visible {\n box-shadow:\n inset 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-window-bg-color, #fafafa),\n inset 0 0 0 calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 3px))\n var(--gnome-focus-ring-color, #3584e4),\n inset 0 0 0 calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 3px) + 1px)\n var(--gnome-window-bg-color, #fafafa);\n }\n\n .switchTrack {\n border-width: 2px;\n }\n\n .switchThumb {\n box-shadow: none;\n }\n}\n\n/* ─── Reduced motion ────────────────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .switchTrack,\n .switchThumb {\n transition: none;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"SwitchRow.module.css.cjs","names":[],"sources":["../../../src/components/SwitchRow/SwitchRow.module.css"],"sourcesContent":["/* ─── Row button ────────────────────────────────────────────────────────────── */\n\n.row {\n display: flex;\n align-items: center;\n gap: var(--gnome-space-2, 12px);\n padding: var(--gnome-space-2, 12px) var(--gnome-space-4, 24px);\n min-height: 52px;\n width: 100%;\n\n appearance: none;\n -webkit-appearance: none;\n background: transparent;\n border: none;\n font: inherit;\n outline: none;\n cursor: pointer;\n text-align: start;\n color: var(--gnome-card-fg-color, rgba(0, 0, 0, 0.8));\n\n transition: background-color var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.row:hover {\n background-color: var(--gnome-hover-overlay);\n}\n\n.row:active {\n background-color: var(--gnome-active-overlay);\n}\n\n.row:focus-visible {\n box-shadow:\n inset 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-window-bg-color, #fafafa),\n inset 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/* ─── Leading icon/avatar ───────────────────────────────────────────────────── */\n\n.leading {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n color: var(--gnome-window-fg-color, rgba(0, 0, 0, 0.8));\n}\n\n/* ─── Text content ──────────────────────────────────────────────────────────── */\n\n.content {\n display: flex;\n flex-direction: column;\n flex: 1;\n min-width: 0;\n gap: 2px;\n}\n\n.title {\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-body, 1rem);\n font-weight: var(--gnome-font-weight-normal, 400);\n line-height: var(--gnome-line-height-body, 1.5);\n color: var(--gnome-card-fg-color, rgba(0, 0, 0, 0.8));\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.subtitle {\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-caption, 0.75rem);\n font-weight: var(--gnome-font-weight-normal, 400);\n line-height: var(--gnome-line-height-body, 1.5);\n color: var(--gnome-window-fg-color, rgba(0, 0, 0, 0.55));\n opacity: var(--gnome-opacity-dim, 0.55);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n/* ─── Switch track ──────────────────────────────────────────────────────────── */\n\n.switchTrack {\n position: relative;\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n width: 56px;\n height: 28px;\n border-radius: var(--gnome-radius-pill);\n background-color: var(--gnome-light-4, #c0bfbc);\n border: 1px solid var(--gnome-border-subtle, rgba(0, 0, 0, 0.12));\n transition:\n background-color var(--gnome-duration-fast) var(--gnome-easing-default),\n border-color var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n/* When checked, colour the track */\n.row[aria-checked=\"true\"] .switchTrack {\n background-color: var(--gnome-accent-bg-color, #3584e4);\n border-color: var(--gnome-accent-bg-color, #3584e4);\n}\n\n/* ─── Switch thumb ──────────────────────────────────────────────────────────── */\n\n.switchThumb {\n position: absolute;\n top: 3px;\n left: 3px;\n width: 20px;\n height: 20px;\n border-radius: var(--gnome-radius-pill);\n background-color: #ffffff;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);\n transition: transform var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.switchThumbOn {\n transform: translateX(28px);\n}\n\n/* ─── Dark mode ─────────────────────────────────────────────────────────────── */\n\n@media (prefers-color-scheme: dark) {\n .switchTrack {\n background-color: var(--gnome-dark-2, #5e5c64);\n }\n\n .switchThumb {\n background-color: var(--gnome-light-3, #deddda);\n }\n\n .row[aria-checked=\"true\"] .switchThumb {\n background-color: #ffffff;\n }\n}\n\n/* ─── High contrast ─────────────────────────────────────────────────────────── */\n\n@media (prefers-contrast: more) {\n .row:focus-visible {\n box-shadow:\n inset 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-window-bg-color, #fafafa),\n inset 0 0 0 calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 3px))\n var(--gnome-focus-ring-color, #3584e4),\n inset 0 0 0\n calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 3px) + 1px)\n var(--gnome-window-bg-color, #fafafa);\n }\n\n .switchTrack {\n border-width: 2px;\n }\n\n .switchThumb {\n box-shadow: none;\n }\n}\n\n/* ─── Reduced motion ────────────────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .switchTrack,\n .switchThumb {\n transition: none;\n }\n}\n"],"mappings":""}
@@ -1,13 +1,13 @@
1
1
  var e = {
2
- row: "_row_jl3bc_3",
3
- disabled: "_disabled_jl3bc_41",
4
- leading: "_leading_jl3bc_49",
5
- content: "_content_jl3bc_58",
6
- title: "_title_jl3bc_66",
7
- subtitle: "_subtitle_jl3bc_77",
8
- switchTrack: "_switchTrack_jl3bc_91",
9
- switchThumb: "_switchThumb_jl3bc_114",
10
- switchThumbOn: "_switchThumbOn_jl3bc_126"
2
+ row: "_row_t5458_3",
3
+ disabled: "_disabled_t5458_41",
4
+ leading: "_leading_t5458_49",
5
+ content: "_content_t5458_58",
6
+ title: "_title_t5458_66",
7
+ subtitle: "_subtitle_t5458_77",
8
+ switchTrack: "_switchTrack_t5458_91",
9
+ switchThumb: "_switchThumb_t5458_114",
10
+ switchThumbOn: "_switchThumbOn_t5458_126"
11
11
  };
12
12
  //#endregion
13
13
  export { e as default };
@@ -1 +1 @@
1
- {"version":3,"file":"SwitchRow.module.css.js","names":[],"sources":["../../../src/components/SwitchRow/SwitchRow.module.css"],"sourcesContent":["/* ─── Row button ────────────────────────────────────────────────────────────── */\n\n.row {\n display: flex;\n align-items: center;\n gap: var(--gnome-space-2, 12px);\n padding: var(--gnome-space-2, 12px) var(--gnome-space-4, 24px);\n min-height: 52px;\n width: 100%;\n\n appearance: none;\n -webkit-appearance: none;\n background: transparent;\n border: none;\n font: inherit;\n outline: none;\n cursor: pointer;\n text-align: start;\n color: var(--gnome-card-fg-color, rgba(0, 0, 0, 0.8));\n\n transition: background-color var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.row:hover {\n background-color: var(--gnome-hover-overlay);\n}\n\n.row:active {\n background-color: var(--gnome-active-overlay);\n}\n\n.row:focus-visible {\n box-shadow:\n inset 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-window-bg-color, #fafafa),\n inset 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/* ─── Leading icon/avatar ───────────────────────────────────────────────────── */\n\n.leading {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n color: var(--gnome-window-fg-color, rgba(0, 0, 0, 0.8));\n}\n\n/* ─── Text content ──────────────────────────────────────────────────────────── */\n\n.content {\n display: flex;\n flex-direction: column;\n flex: 1;\n min-width: 0;\n gap: 2px;\n}\n\n.title {\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-body, 1rem);\n font-weight: var(--gnome-font-weight-normal, 400);\n line-height: var(--gnome-line-height-body, 1.5);\n color: var(--gnome-card-fg-color, rgba(0, 0, 0, 0.8));\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.subtitle {\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-caption, 0.75rem);\n font-weight: var(--gnome-font-weight-normal, 400);\n line-height: var(--gnome-line-height-body, 1.5);\n color: var(--gnome-window-fg-color, rgba(0, 0, 0, 0.55));\n opacity: var(--gnome-opacity-dim, 0.55);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n/* ─── Switch track ──────────────────────────────────────────────────────────── */\n\n.switchTrack {\n position: relative;\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n width: 56px;\n height: 28px;\n border-radius: var(--gnome-radius-pill);\n background-color: var(--gnome-light-4, #c0bfbc);\n border: 1px solid var(--gnome-border-subtle, rgba(0, 0, 0, 0.12));\n transition:\n background-color var(--gnome-duration-fast) var(--gnome-easing-default),\n border-color var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n/* When checked, colour the track */\n.row[aria-checked=\"true\"] .switchTrack {\n background-color: var(--gnome-accent-bg-color, #3584e4);\n border-color: var(--gnome-accent-bg-color, #3584e4);\n}\n\n/* ─── Switch thumb ──────────────────────────────────────────────────────────── */\n\n.switchThumb {\n position: absolute;\n top: 3px;\n left: 3px;\n width: 20px;\n height: 20px;\n border-radius: var(--gnome-radius-pill);\n background-color: #ffffff;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);\n transition: transform var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.switchThumbOn {\n transform: translateX(28px);\n}\n\n/* ─── Dark mode ─────────────────────────────────────────────────────────────── */\n\n@media (prefers-color-scheme: dark) {\n .switchTrack {\n background-color: var(--gnome-dark-2, #5e5c64);\n }\n\n .switchThumb {\n background-color: var(--gnome-light-3, #deddda);\n }\n\n .row[aria-checked=\"true\"] .switchThumb {\n background-color: #ffffff;\n }\n}\n\n/* ─── High contrast ─────────────────────────────────────────────────────────── */\n\n@media (prefers-contrast: more) {\n .row:focus-visible {\n box-shadow:\n inset 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-window-bg-color, #fafafa),\n inset 0 0 0 calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 3px))\n var(--gnome-focus-ring-color, #3584e4),\n inset 0 0 0 calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 3px) + 1px)\n var(--gnome-window-bg-color, #fafafa);\n }\n\n .switchTrack {\n border-width: 2px;\n }\n\n .switchThumb {\n box-shadow: none;\n }\n}\n\n/* ─── Reduced motion ────────────────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .switchTrack,\n .switchThumb {\n transition: none;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"SwitchRow.module.css.js","names":[],"sources":["../../../src/components/SwitchRow/SwitchRow.module.css"],"sourcesContent":["/* ─── Row button ────────────────────────────────────────────────────────────── */\n\n.row {\n display: flex;\n align-items: center;\n gap: var(--gnome-space-2, 12px);\n padding: var(--gnome-space-2, 12px) var(--gnome-space-4, 24px);\n min-height: 52px;\n width: 100%;\n\n appearance: none;\n -webkit-appearance: none;\n background: transparent;\n border: none;\n font: inherit;\n outline: none;\n cursor: pointer;\n text-align: start;\n color: var(--gnome-card-fg-color, rgba(0, 0, 0, 0.8));\n\n transition: background-color var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.row:hover {\n background-color: var(--gnome-hover-overlay);\n}\n\n.row:active {\n background-color: var(--gnome-active-overlay);\n}\n\n.row:focus-visible {\n box-shadow:\n inset 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-window-bg-color, #fafafa),\n inset 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/* ─── Leading icon/avatar ───────────────────────────────────────────────────── */\n\n.leading {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n color: var(--gnome-window-fg-color, rgba(0, 0, 0, 0.8));\n}\n\n/* ─── Text content ──────────────────────────────────────────────────────────── */\n\n.content {\n display: flex;\n flex-direction: column;\n flex: 1;\n min-width: 0;\n gap: 2px;\n}\n\n.title {\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-body, 1rem);\n font-weight: var(--gnome-font-weight-normal, 400);\n line-height: var(--gnome-line-height-body, 1.5);\n color: var(--gnome-card-fg-color, rgba(0, 0, 0, 0.8));\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.subtitle {\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-caption, 0.75rem);\n font-weight: var(--gnome-font-weight-normal, 400);\n line-height: var(--gnome-line-height-body, 1.5);\n color: var(--gnome-window-fg-color, rgba(0, 0, 0, 0.55));\n opacity: var(--gnome-opacity-dim, 0.55);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n/* ─── Switch track ──────────────────────────────────────────────────────────── */\n\n.switchTrack {\n position: relative;\n display: inline-flex;\n align-items: center;\n flex-shrink: 0;\n width: 56px;\n height: 28px;\n border-radius: var(--gnome-radius-pill);\n background-color: var(--gnome-light-4, #c0bfbc);\n border: 1px solid var(--gnome-border-subtle, rgba(0, 0, 0, 0.12));\n transition:\n background-color var(--gnome-duration-fast) var(--gnome-easing-default),\n border-color var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n/* When checked, colour the track */\n.row[aria-checked=\"true\"] .switchTrack {\n background-color: var(--gnome-accent-bg-color, #3584e4);\n border-color: var(--gnome-accent-bg-color, #3584e4);\n}\n\n/* ─── Switch thumb ──────────────────────────────────────────────────────────── */\n\n.switchThumb {\n position: absolute;\n top: 3px;\n left: 3px;\n width: 20px;\n height: 20px;\n border-radius: var(--gnome-radius-pill);\n background-color: #ffffff;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);\n transition: transform var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.switchThumbOn {\n transform: translateX(28px);\n}\n\n/* ─── Dark mode ─────────────────────────────────────────────────────────────── */\n\n@media (prefers-color-scheme: dark) {\n .switchTrack {\n background-color: var(--gnome-dark-2, #5e5c64);\n }\n\n .switchThumb {\n background-color: var(--gnome-light-3, #deddda);\n }\n\n .row[aria-checked=\"true\"] .switchThumb {\n background-color: #ffffff;\n }\n}\n\n/* ─── High contrast ─────────────────────────────────────────────────────────── */\n\n@media (prefers-contrast: more) {\n .row:focus-visible {\n box-shadow:\n inset 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-window-bg-color, #fafafa),\n inset 0 0 0 calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 3px))\n var(--gnome-focus-ring-color, #3584e4),\n inset 0 0 0\n calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 3px) + 1px)\n var(--gnome-window-bg-color, #fafafa);\n }\n\n .switchTrack {\n border-width: 2px;\n }\n\n .switchThumb {\n box-shadow: none;\n }\n}\n\n/* ─── Reduced motion ────────────────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .switchTrack,\n .switchThumb {\n transition: none;\n }\n}\n"],"mappings":""}
@@ -1,2 +1,2 @@
1
- export { SwitchRow } from './SwitchRow';
2
1
  export type { SwitchRowProps } from './SwitchRow';
2
+ export { SwitchRow } from './SwitchRow';
@@ -1,2 +1,2 @@
1
- const e=require(`./Tabs.module.css.cjs`);let t=require(`react`),n=require(`react/jsx-runtime`);function r({children:r,className:i,inline:a=!1,"aria-label":o=`Tabs`,...s}){let c=(0,t.useRef)(null);function l(e){let t=Array.from(c.current?.querySelectorAll(`[role=tab]:not(:disabled)`)??[]),n=t.findIndex(e=>e===document.activeElement);if(n===-1)return;let r=n;if(e.key===`ArrowRight`)r=(n+1)%t.length;else if(e.key===`ArrowLeft`)r=(n-1+t.length)%t.length;else if(e.key===`Home`)r=0;else if(e.key===`End`)r=t.length-1;else return;e.preventDefault(),t[r].focus()}return(0,n.jsx)(`div`,{className:[e.default.bar,a?e.default.inline:null,i].filter(Boolean).join(` `),...s,children:(0,n.jsx)(`div`,{ref:c,role:`tablist`,"aria-label":o,className:e.default.list,onKeyDown:l,children:r})})}exports.TabBar=r;
1
+ const e=require(`./Tabs.module.css.cjs`);let t=require(`react`),n=require(`react/jsx-runtime`);function r({children:r,className:i,inline:a=!1,"aria-label":o=`Tabs`,...s}){let c=(0,t.useRef)(null);function l(e){let t=Array.from(c.current?.querySelectorAll(`[role=tab]:not(:disabled)`)??[]),n=document.activeElement,r=n instanceof HTMLButtonElement?t.indexOf(n):-1;if(r===-1)return;let i=r;if(e.key===`ArrowRight`)i=(r+1)%t.length;else if(e.key===`ArrowLeft`)i=(r-1+t.length)%t.length;else if(e.key===`Home`)i=0;else if(e.key===`End`)i=t.length-1;else return;e.preventDefault(),t[i].focus()}return(0,n.jsx)(`div`,{className:[e.default.bar,a?e.default.inline:null,i].filter(Boolean).join(` `),...s,children:(0,n.jsx)(`div`,{ref:c,role:`tablist`,"aria-label":o,className:e.default.list,onKeyDown:l,children:r})})}exports.TabBar=r;
2
2
  //# sourceMappingURL=TabBar.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"TabBar.cjs","names":[],"sources":["../../../src/components/Tabs/TabBar.tsx"],"sourcesContent":["import {\n useRef,\n type HTMLAttributes,\n type KeyboardEvent,\n type ReactNode,\n} from \"react\";\nimport styles from \"./Tabs.module.css\";\n\nexport interface TabBarProps extends HTMLAttributes<HTMLDivElement> {\n children?: ReactNode;\n /** Accessible label for the tab list. */\n \"aria-label\"?: string;\n /**\n * Removes the header-bar background so the tab bar blends into any surface.\n * Use when placing the bar inside a card, content area, or custom container.\n * Mirrors the `.inline` style class.\n */\n inline?: boolean;\n}\n\n/**\n * Horizontal tab bar that holds `TabItem` elements.\n *\n * Manages roving-tabindex keyboard navigation (← → Home End).\n *\n * @see https://developer.gnome.org/hig/patterns/nav/tabs.html\n */\nexport function TabBar({\n children,\n className,\n inline = false,\n \"aria-label\": ariaLabel = \"Tabs\",\n ...props\n}: TabBarProps) {\n const listRef = useRef<HTMLDivElement>(null);\n\n function handleKeyDown(e: KeyboardEvent<HTMLDivElement>) {\n const tabs = Array.from(\n listRef.current?.querySelectorAll<HTMLButtonElement>(\n \"[role=tab]:not(:disabled)\",\n ) ?? [],\n );\n const idx = tabs.findIndex((t) => t === document.activeElement);\n if (idx === -1) return;\n\n let next = idx;\n if (e.key === \"ArrowRight\") next = (idx + 1) % tabs.length;\n else if (e.key === \"ArrowLeft\") next = (idx - 1 + tabs.length) % tabs.length;\n else if (e.key === \"Home\") next = 0;\n else if (e.key === \"End\") next = tabs.length - 1;\n else return;\n\n e.preventDefault();\n tabs[next].focus();\n }\n\n return (\n <div\n className={[styles.bar, inline ? styles.inline : null, className]\n .filter(Boolean)\n .join(\" \")}\n {...props}\n >\n <div\n ref={listRef}\n role=\"tablist\"\n aria-label={ariaLabel}\n className={styles.list}\n onKeyDown={handleKeyDown}\n >\n {children}\n </div>\n </div>\n );\n}\n"],"mappings":"+FA2BA,SAAgB,EAAO,CACrB,WACA,YACA,SAAS,GACT,aAAc,EAAY,OAC1B,GAAG,GACW,CACd,IAAM,GAAA,EAAA,EAAA,QAAiC,KAAK,CAE5C,SAAS,EAAc,EAAkC,CACvD,IAAM,EAAO,MAAM,KACjB,EAAQ,SAAS,iBACf,4BACD,EAAI,EAAE,CACR,CACK,EAAM,EAAK,UAAW,GAAM,IAAM,SAAS,cAAc,CAC/D,GAAI,IAAQ,GAAI,OAEhB,IAAI,EAAO,EACX,GAAI,EAAE,MAAQ,aAAc,GAAQ,EAAM,GAAK,EAAK,eAC3C,EAAE,MAAQ,YAAa,GAAQ,EAAM,EAAI,EAAK,QAAU,EAAK,eAC7D,EAAE,MAAQ,OAAQ,EAAO,UACzB,EAAE,MAAQ,MAAO,EAAO,EAAK,OAAS,OAC1C,OAEL,EAAE,gBAAgB,CAClB,EAAK,GAAM,OAAO,CAGpB,OACE,EAAA,EAAA,KAAC,MAAD,CACE,UAAW,CAAC,EAAA,QAAO,IAAK,EAAS,EAAA,QAAO,OAAS,KAAM,EAAU,CAC9D,OAAO,QAAQ,CACf,KAAK,IAAI,CACZ,GAAI,YAEJ,EAAA,EAAA,KAAC,MAAD,CACE,IAAK,EACL,KAAK,UACL,aAAY,EACZ,UAAW,EAAA,QAAO,KAClB,UAAW,EAEV,WACG,CAAA,CACF,CAAA"}
1
+ {"version":3,"file":"TabBar.cjs","names":[],"sources":["../../../src/components/Tabs/TabBar.tsx"],"sourcesContent":["import { type HTMLAttributes, type KeyboardEvent, type ReactNode, useRef } from 'react';\n\nimport styles from './Tabs.module.css';\n\nexport interface TabBarProps extends HTMLAttributes<HTMLDivElement> {\n children?: ReactNode;\n /** Accessible label for the tab list. */\n 'aria-label'?: string;\n /**\n * Removes the header-bar background so the tab bar blends into any surface.\n * Use when placing the bar inside a card, content area, or custom container.\n * Mirrors the `.inline` style class.\n */\n inline?: boolean;\n}\n\n/**\n * Horizontal tab bar that holds `TabItem` elements.\n *\n * Manages roving-tabindex keyboard navigation (← → Home End).\n *\n * @see https://developer.gnome.org/hig/patterns/nav/tabs.html\n */\nexport function TabBar({\n children,\n className,\n inline = false,\n 'aria-label': ariaLabel = 'Tabs',\n ...props\n}: TabBarProps) {\n const listRef = useRef<HTMLDivElement>(null);\n\n function handleKeyDown(e: KeyboardEvent<HTMLDivElement>) {\n const tabs = Array.from(\n listRef.current?.querySelectorAll<HTMLButtonElement>('[role=tab]:not(:disabled)') ?? [],\n );\n const activeElement = document.activeElement;\n const idx = activeElement instanceof HTMLButtonElement ? tabs.indexOf(activeElement) : -1;\n\n if (idx === -1) {\n return;\n }\n\n let next = idx;\n if (e.key === 'ArrowRight') {\n next = (idx + 1) % tabs.length;\n } else if (e.key === 'ArrowLeft') {\n next = (idx - 1 + tabs.length) % tabs.length;\n } else if (e.key === 'Home') {\n next = 0;\n } else if (e.key === 'End') {\n next = tabs.length - 1;\n } else {\n return;\n }\n\n e.preventDefault();\n tabs[next].focus();\n }\n\n return (\n <div\n className={[styles.bar, inline ? styles.inline : null, className].filter(Boolean).join(' ')}\n {...props}\n >\n <div\n ref={listRef}\n role=\"tablist\"\n aria-label={ariaLabel}\n className={styles.list}\n onKeyDown={handleKeyDown}\n >\n {children}\n </div>\n </div>\n );\n}\n"],"mappings":"+FAuBA,SAAgB,EAAO,CACrB,WACA,YACA,SAAS,GACT,aAAc,EAAY,OAC1B,GAAG,GACW,CACd,IAAM,GAAA,EAAA,EAAA,QAAiC,KAAK,CAE5C,SAAS,EAAc,EAAkC,CACvD,IAAM,EAAO,MAAM,KACjB,EAAQ,SAAS,iBAAoC,4BAA4B,EAAI,EAAE,CACxF,CACK,EAAgB,SAAS,cACzB,EAAM,aAAyB,kBAAoB,EAAK,QAAQ,EAAc,CAAG,GAEvF,GAAI,IAAQ,GACV,OAGF,IAAI,EAAO,EACX,GAAI,EAAE,MAAQ,aACZ,GAAQ,EAAM,GAAK,EAAK,eACf,EAAE,MAAQ,YACnB,GAAQ,EAAM,EAAI,EAAK,QAAU,EAAK,eAC7B,EAAE,MAAQ,OACnB,EAAO,UACE,EAAE,MAAQ,MACnB,EAAO,EAAK,OAAS,OAErB,OAGF,EAAE,gBAAgB,CAClB,EAAK,GAAM,OAAO,CAGpB,OACE,EAAA,EAAA,KAAC,MAAD,CACE,UAAW,CAAC,EAAA,QAAO,IAAK,EAAS,EAAA,QAAO,OAAS,KAAM,EAAU,CAAC,OAAO,QAAQ,CAAC,KAAK,IAAI,CAC3F,GAAI,YAEJ,EAAA,EAAA,KAAC,MAAD,CACE,IAAK,EACL,KAAK,UACL,aAAY,EACZ,UAAW,EAAA,QAAO,KAClB,UAAW,EAEV,WACG,CAAA,CACF,CAAA"}
@@ -2,7 +2,7 @@ import { HTMLAttributes, ReactNode } from 'react';
2
2
  export interface TabBarProps extends HTMLAttributes<HTMLDivElement> {
3
3
  children?: ReactNode;
4
4
  /** Accessible label for the tab list. */
5
- "aria-label"?: string;
5
+ 'aria-label'?: string;
6
6
  /**
7
7
  * Removes the header-bar background so the tab bar blends into any surface.
8
8
  * Use when placing the bar inside a card, content area, or custom container.
@@ -17,4 +17,4 @@ export interface TabBarProps extends HTMLAttributes<HTMLDivElement> {
17
17
  *
18
18
  * @see https://developer.gnome.org/hig/patterns/nav/tabs.html
19
19
  */
20
- export declare function TabBar({ children, className, inline, "aria-label": ariaLabel, ...props }: TabBarProps): import("react/jsx-runtime").JSX.Element;
20
+ export declare function TabBar({ children, className, inline, 'aria-label': ariaLabel, ...props }: TabBarProps): import("react/jsx-runtime").JSX.Element;
@@ -5,15 +5,15 @@ import { jsx as n } from "react/jsx-runtime";
5
5
  function r({ children: r, className: i, inline: a = !1, "aria-label": o = "Tabs", ...s }) {
6
6
  let c = t(null);
7
7
  function l(e) {
8
- let t = Array.from(c.current?.querySelectorAll("[role=tab]:not(:disabled)") ?? []), n = t.findIndex((e) => e === document.activeElement);
9
- if (n === -1) return;
10
- let r = n;
11
- if (e.key === "ArrowRight") r = (n + 1) % t.length;
12
- else if (e.key === "ArrowLeft") r = (n - 1 + t.length) % t.length;
13
- else if (e.key === "Home") r = 0;
14
- else if (e.key === "End") r = t.length - 1;
8
+ let t = Array.from(c.current?.querySelectorAll("[role=tab]:not(:disabled)") ?? []), n = document.activeElement, r = n instanceof HTMLButtonElement ? t.indexOf(n) : -1;
9
+ if (r === -1) return;
10
+ let i = r;
11
+ if (e.key === "ArrowRight") i = (r + 1) % t.length;
12
+ else if (e.key === "ArrowLeft") i = (r - 1 + t.length) % t.length;
13
+ else if (e.key === "Home") i = 0;
14
+ else if (e.key === "End") i = t.length - 1;
15
15
  else return;
16
- e.preventDefault(), t[r].focus();
16
+ e.preventDefault(), t[i].focus();
17
17
  }
18
18
  return /* @__PURE__ */ n("div", {
19
19
  className: [
@@ -1 +1 @@
1
- {"version":3,"file":"TabBar.js","names":[],"sources":["../../../src/components/Tabs/TabBar.tsx"],"sourcesContent":["import {\n useRef,\n type HTMLAttributes,\n type KeyboardEvent,\n type ReactNode,\n} from \"react\";\nimport styles from \"./Tabs.module.css\";\n\nexport interface TabBarProps extends HTMLAttributes<HTMLDivElement> {\n children?: ReactNode;\n /** Accessible label for the tab list. */\n \"aria-label\"?: string;\n /**\n * Removes the header-bar background so the tab bar blends into any surface.\n * Use when placing the bar inside a card, content area, or custom container.\n * Mirrors the `.inline` style class.\n */\n inline?: boolean;\n}\n\n/**\n * Horizontal tab bar that holds `TabItem` elements.\n *\n * Manages roving-tabindex keyboard navigation (← → Home End).\n *\n * @see https://developer.gnome.org/hig/patterns/nav/tabs.html\n */\nexport function TabBar({\n children,\n className,\n inline = false,\n \"aria-label\": ariaLabel = \"Tabs\",\n ...props\n}: TabBarProps) {\n const listRef = useRef<HTMLDivElement>(null);\n\n function handleKeyDown(e: KeyboardEvent<HTMLDivElement>) {\n const tabs = Array.from(\n listRef.current?.querySelectorAll<HTMLButtonElement>(\n \"[role=tab]:not(:disabled)\",\n ) ?? [],\n );\n const idx = tabs.findIndex((t) => t === document.activeElement);\n if (idx === -1) return;\n\n let next = idx;\n if (e.key === \"ArrowRight\") next = (idx + 1) % tabs.length;\n else if (e.key === \"ArrowLeft\") next = (idx - 1 + tabs.length) % tabs.length;\n else if (e.key === \"Home\") next = 0;\n else if (e.key === \"End\") next = tabs.length - 1;\n else return;\n\n e.preventDefault();\n tabs[next].focus();\n }\n\n return (\n <div\n className={[styles.bar, inline ? styles.inline : null, className]\n .filter(Boolean)\n .join(\" \")}\n {...props}\n >\n <div\n ref={listRef}\n role=\"tablist\"\n aria-label={ariaLabel}\n className={styles.list}\n onKeyDown={handleKeyDown}\n >\n {children}\n </div>\n </div>\n );\n}\n"],"mappings":";;;;AA2BA,SAAgB,EAAO,EACrB,aACA,cACA,YAAS,IACT,cAAc,IAAY,QAC1B,GAAG,KACW;CACd,IAAM,IAAU,EAAuB,KAAK;CAE5C,SAAS,EAAc,GAAkC;EACvD,IAAM,IAAO,MAAM,KACjB,EAAQ,SAAS,iBACf,4BACD,IAAI,EAAE,CACR,EACK,IAAM,EAAK,WAAW,MAAM,MAAM,SAAS,cAAc;AAC/D,MAAI,MAAQ,GAAI;EAEhB,IAAI,IAAO;AACX,MAAI,EAAE,QAAQ,aAAc,MAAQ,IAAM,KAAK,EAAK;WAC3C,EAAE,QAAQ,YAAa,MAAQ,IAAM,IAAI,EAAK,UAAU,EAAK;WAC7D,EAAE,QAAQ,OAAQ,KAAO;WACzB,EAAE,QAAQ,MAAO,KAAO,EAAK,SAAS;MAC1C;AAGL,EADA,EAAE,gBAAgB,EAClB,EAAK,GAAM,OAAO;;AAGpB,QACE,kBAAC,OAAD;EACE,WAAW;GAAC,EAAO;GAAK,IAAS,EAAO,SAAS;GAAM;GAAU,CAC9D,OAAO,QAAQ,CACf,KAAK,IAAI;EACZ,GAAI;YAEJ,kBAAC,OAAD;GACE,KAAK;GACL,MAAK;GACL,cAAY;GACZ,WAAW,EAAO;GAClB,WAAW;GAEV;GACG,CAAA;EACF,CAAA"}
1
+ {"version":3,"file":"TabBar.js","names":[],"sources":["../../../src/components/Tabs/TabBar.tsx"],"sourcesContent":["import { type HTMLAttributes, type KeyboardEvent, type ReactNode, useRef } from 'react';\n\nimport styles from './Tabs.module.css';\n\nexport interface TabBarProps extends HTMLAttributes<HTMLDivElement> {\n children?: ReactNode;\n /** Accessible label for the tab list. */\n 'aria-label'?: string;\n /**\n * Removes the header-bar background so the tab bar blends into any surface.\n * Use when placing the bar inside a card, content area, or custom container.\n * Mirrors the `.inline` style class.\n */\n inline?: boolean;\n}\n\n/**\n * Horizontal tab bar that holds `TabItem` elements.\n *\n * Manages roving-tabindex keyboard navigation (← → Home End).\n *\n * @see https://developer.gnome.org/hig/patterns/nav/tabs.html\n */\nexport function TabBar({\n children,\n className,\n inline = false,\n 'aria-label': ariaLabel = 'Tabs',\n ...props\n}: TabBarProps) {\n const listRef = useRef<HTMLDivElement>(null);\n\n function handleKeyDown(e: KeyboardEvent<HTMLDivElement>) {\n const tabs = Array.from(\n listRef.current?.querySelectorAll<HTMLButtonElement>('[role=tab]:not(:disabled)') ?? [],\n );\n const activeElement = document.activeElement;\n const idx = activeElement instanceof HTMLButtonElement ? tabs.indexOf(activeElement) : -1;\n\n if (idx === -1) {\n return;\n }\n\n let next = idx;\n if (e.key === 'ArrowRight') {\n next = (idx + 1) % tabs.length;\n } else if (e.key === 'ArrowLeft') {\n next = (idx - 1 + tabs.length) % tabs.length;\n } else if (e.key === 'Home') {\n next = 0;\n } else if (e.key === 'End') {\n next = tabs.length - 1;\n } else {\n return;\n }\n\n e.preventDefault();\n tabs[next].focus();\n }\n\n return (\n <div\n className={[styles.bar, inline ? styles.inline : null, className].filter(Boolean).join(' ')}\n {...props}\n >\n <div\n ref={listRef}\n role=\"tablist\"\n aria-label={ariaLabel}\n className={styles.list}\n onKeyDown={handleKeyDown}\n >\n {children}\n </div>\n </div>\n );\n}\n"],"mappings":";;;;AAuBA,SAAgB,EAAO,EACrB,aACA,cACA,YAAS,IACT,cAAc,IAAY,QAC1B,GAAG,KACW;CACd,IAAM,IAAU,EAAuB,KAAK;CAE5C,SAAS,EAAc,GAAkC;EACvD,IAAM,IAAO,MAAM,KACjB,EAAQ,SAAS,iBAAoC,4BAA4B,IAAI,EAAE,CACxF,EACK,IAAgB,SAAS,eACzB,IAAM,aAAyB,oBAAoB,EAAK,QAAQ,EAAc,GAAG;AAEvF,MAAI,MAAQ,GACV;EAGF,IAAI,IAAO;AACX,MAAI,EAAE,QAAQ,aACZ,MAAQ,IAAM,KAAK,EAAK;WACf,EAAE,QAAQ,YACnB,MAAQ,IAAM,IAAI,EAAK,UAAU,EAAK;WAC7B,EAAE,QAAQ,OACnB,KAAO;WACE,EAAE,QAAQ,MACnB,KAAO,EAAK,SAAS;MAErB;AAIF,EADA,EAAE,gBAAgB,EAClB,EAAK,GAAM,OAAO;;AAGpB,QACE,kBAAC,OAAD;EACE,WAAW;GAAC,EAAO;GAAK,IAAS,EAAO,SAAS;GAAM;GAAU,CAAC,OAAO,QAAQ,CAAC,KAAK,IAAI;EAC3F,GAAI;YAEJ,kBAAC,OAAD;GACE,KAAK;GACL,MAAK;GACL,cAAY;GACZ,WAAW,EAAO;GAClB,WAAW;GAEV;GACG,CAAA;EACF,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"TabItem.cjs","names":[],"sources":["../../../src/components/Tabs/TabItem.tsx"],"sourcesContent":["import { memo } from \"react\";\nimport type { ButtonHTMLAttributes, ReactNode } from \"react\";\nimport type { IconDefinition } from \"@gnome-ui/icons\";\nimport { Icon } from \"../Icon\";\nimport { Badge } from \"../Badge\";\nimport styles from \"./Tabs.module.css\";\n\nexport interface TabItemProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n /** Tab label. */\n label: string;\n /** Optional icon from `@gnome-ui/icons`. */\n icon?: IconDefinition;\n /** Marks this tab as the currently selected one. */\n active?: boolean;\n /**\n * id of the `TabPanel` this tab controls.\n * Sets `aria-controls` automatically.\n */\n panelId?: string;\n /**\n * When provided, a close (×) button is rendered at the trailing edge.\n * Called when the user clicks the close button.\n */\n onClose?: () => void;\n /** Accessible label for the close button. Defaults to `\"Close tab\"`. */\n closeLabel?: string;\n /** Optional count shown as a badge next to the label (e.g. unread messages). Values above 99 render as \"99+\". */\n count?: number;\n children?: ReactNode;\n}\n\n/**\n * Individual tab button inside a `TabBar`.\n */\nexport const TabItem = memo(function TabItem({\n label,\n icon,\n active = false,\n panelId,\n onClose,\n closeLabel = \"Close tab\",\n count,\n className,\n disabled,\n ...props\n}: TabItemProps) {\n return (\n <button\n role=\"tab\"\n type=\"button\"\n aria-selected={active}\n aria-controls={panelId}\n tabIndex={active ? 0 : -1}\n disabled={disabled}\n className={[\n styles.tab,\n active ? styles.active : null,\n onClose ? styles.closeable : null,\n className,\n ]\n .filter(Boolean)\n .join(\" \")}\n {...props}\n >\n {icon && (\n <span className={styles.tabIcon}>\n <Icon icon={icon} size=\"sm\" aria-hidden />\n </span>\n )}\n <span className={styles.tabLabel}>{label}</span>\n\n {count !== undefined && (\n <Badge className={styles.tabBadge}>\n {count > 99 ? \"99+\" : count}\n </Badge>\n )}\n\n {onClose && (\n <button\n type=\"button\"\n aria-label={closeLabel}\n className={styles.closeBtn}\n onClick={(e) => { e.stopPropagation(); onClose(); }}\n >\n ×\n </button>\n )}\n </button>\n );\n});\n"],"mappings":"6JAkCA,IAAa,GAAA,EAAA,EAAA,MAAe,SAAiB,CAC3C,QACA,OACA,SAAS,GACT,UACA,UACA,aAAa,YACb,QACA,YACA,WACA,GAAG,GACY,CACf,OACE,EAAA,EAAA,MAAC,SAAD,CACE,KAAK,MACL,KAAK,SACL,gBAAe,EACf,gBAAe,EACf,SAAU,EAAS,EAAI,GACb,WACV,UAAW,CACT,EAAA,QAAO,IACP,EAAS,EAAA,QAAO,OAAS,KACzB,EAAU,EAAA,QAAO,UAAY,KAC7B,EACD,CACE,OAAO,QAAQ,CACf,KAAK,IAAI,CACZ,GAAI,WAfN,CAiBG,IACC,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,EAAA,QAAO,kBACtB,EAAA,EAAA,KAAC,EAAA,KAAD,CAAY,OAAM,KAAK,KAAK,cAAA,GAAc,CAAA,CACrC,CAAA,EAET,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,EAAA,QAAO,kBAAW,EAAa,CAAA,CAE/C,IAAU,IAAA,KACT,EAAA,EAAA,KAAC,EAAA,MAAD,CAAO,UAAW,EAAA,QAAO,kBACtB,EAAQ,GAAK,MAAQ,EAChB,CAAA,CAGT,IACC,EAAA,EAAA,KAAC,SAAD,CACE,KAAK,SACL,aAAY,EACZ,UAAW,EAAA,QAAO,SAClB,QAAU,GAAM,CAAE,EAAE,iBAAiB,CAAE,GAAS,WACjD,IAEQ,CAAA,CAEJ,IAEX"}
1
+ {"version":3,"file":"TabItem.cjs","names":[],"sources":["../../../src/components/Tabs/TabItem.tsx"],"sourcesContent":["import type { IconDefinition } from '@gnome-ui/icons';\nimport type { ButtonHTMLAttributes, ReactNode } from 'react';\nimport { memo } from 'react';\n\nimport { Badge } from '../Badge';\nimport { Icon } from '../Icon';\n\nimport styles from './Tabs.module.css';\n\nexport interface TabItemProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n /** Tab label. */\n label: string;\n /** Optional icon from `@gnome-ui/icons`. */\n icon?: IconDefinition;\n /** Marks this tab as the currently selected one. */\n active?: boolean;\n /**\n * id of the `TabPanel` this tab controls.\n * Sets `aria-controls` automatically.\n */\n panelId?: string;\n /**\n * When provided, a close (×) button is rendered at the trailing edge.\n * Called when the user clicks the close button.\n */\n onClose?: () => void;\n /** Accessible label for the close button. Defaults to `\"Close tab\"`. */\n closeLabel?: string;\n /** Optional count shown as a badge next to the label (e.g. unread messages). Values above 99 render as \"99+\". */\n count?: number;\n children?: ReactNode;\n}\n\n/**\n * Individual tab button inside a `TabBar`.\n */\nexport const TabItem = memo(function TabItem({\n label,\n icon,\n active = false,\n panelId,\n onClose,\n closeLabel = 'Close tab',\n count,\n className,\n disabled,\n ...props\n}: TabItemProps) {\n return (\n <button\n role=\"tab\"\n type=\"button\"\n aria-selected={active}\n aria-controls={panelId}\n tabIndex={active ? 0 : -1}\n disabled={disabled}\n className={[\n styles.tab,\n active ? styles.active : null,\n onClose ? styles.closeable : null,\n className,\n ]\n .filter(Boolean)\n .join(' ')}\n {...props}\n >\n {icon && (\n <span className={styles.tabIcon}>\n <Icon icon={icon} size=\"sm\" aria-hidden />\n </span>\n )}\n <span className={styles.tabLabel}>{label}</span>\n\n {count !== undefined && (\n <Badge className={styles.tabBadge}>{count > 99 ? '99+' : count}</Badge>\n )}\n\n {onClose && (\n <button\n type=\"button\"\n aria-label={closeLabel}\n className={styles.closeBtn}\n onClick={(e) => {\n e.stopPropagation();\n onClose();\n }}\n >\n ×\n </button>\n )}\n </button>\n );\n});\n"],"mappings":"6JAoCA,IAAa,GAAA,EAAA,EAAA,MAAe,SAAiB,CAC3C,QACA,OACA,SAAS,GACT,UACA,UACA,aAAa,YACb,QACA,YACA,WACA,GAAG,GACY,CACf,OACE,EAAA,EAAA,MAAC,SAAD,CACE,KAAK,MACL,KAAK,SACL,gBAAe,EACf,gBAAe,EACf,SAAU,EAAS,EAAI,GACb,WACV,UAAW,CACT,EAAA,QAAO,IACP,EAAS,EAAA,QAAO,OAAS,KACzB,EAAU,EAAA,QAAO,UAAY,KAC7B,EACD,CACE,OAAO,QAAQ,CACf,KAAK,IAAI,CACZ,GAAI,WAfN,CAiBG,IACC,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,EAAA,QAAO,kBACtB,EAAA,EAAA,KAAC,EAAA,KAAD,CAAY,OAAM,KAAK,KAAK,cAAA,GAAc,CAAA,CACrC,CAAA,EAET,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,EAAA,QAAO,kBAAW,EAAa,CAAA,CAE/C,IAAU,IAAA,KACT,EAAA,EAAA,KAAC,EAAA,MAAD,CAAO,UAAW,EAAA,QAAO,kBAAW,EAAQ,GAAK,MAAQ,EAAc,CAAA,CAGxE,IACC,EAAA,EAAA,KAAC,SAAD,CACE,KAAK,SACL,aAAY,EACZ,UAAW,EAAA,QAAO,SAClB,QAAU,GAAM,CACd,EAAE,iBAAiB,CACnB,GAAS,WAEZ,IAEQ,CAAA,CAEJ,IAEX"}
@@ -1,5 +1,5 @@
1
- import { ButtonHTMLAttributes, ReactNode } from 'react';
2
1
  import { IconDefinition } from '@gnome-ui/icons';
2
+ import { ButtonHTMLAttributes, ReactNode } from 'react';
3
3
  export interface TabItemProps extends ButtonHTMLAttributes<HTMLButtonElement> {
4
4
  /** Tab label. */
5
5
  label: string;
@@ -1 +1 @@
1
- {"version":3,"file":"TabItem.js","names":[],"sources":["../../../src/components/Tabs/TabItem.tsx"],"sourcesContent":["import { memo } from \"react\";\nimport type { ButtonHTMLAttributes, ReactNode } from \"react\";\nimport type { IconDefinition } from \"@gnome-ui/icons\";\nimport { Icon } from \"../Icon\";\nimport { Badge } from \"../Badge\";\nimport styles from \"./Tabs.module.css\";\n\nexport interface TabItemProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n /** Tab label. */\n label: string;\n /** Optional icon from `@gnome-ui/icons`. */\n icon?: IconDefinition;\n /** Marks this tab as the currently selected one. */\n active?: boolean;\n /**\n * id of the `TabPanel` this tab controls.\n * Sets `aria-controls` automatically.\n */\n panelId?: string;\n /**\n * When provided, a close (×) button is rendered at the trailing edge.\n * Called when the user clicks the close button.\n */\n onClose?: () => void;\n /** Accessible label for the close button. Defaults to `\"Close tab\"`. */\n closeLabel?: string;\n /** Optional count shown as a badge next to the label (e.g. unread messages). Values above 99 render as \"99+\". */\n count?: number;\n children?: ReactNode;\n}\n\n/**\n * Individual tab button inside a `TabBar`.\n */\nexport const TabItem = memo(function TabItem({\n label,\n icon,\n active = false,\n panelId,\n onClose,\n closeLabel = \"Close tab\",\n count,\n className,\n disabled,\n ...props\n}: TabItemProps) {\n return (\n <button\n role=\"tab\"\n type=\"button\"\n aria-selected={active}\n aria-controls={panelId}\n tabIndex={active ? 0 : -1}\n disabled={disabled}\n className={[\n styles.tab,\n active ? styles.active : null,\n onClose ? styles.closeable : null,\n className,\n ]\n .filter(Boolean)\n .join(\" \")}\n {...props}\n >\n {icon && (\n <span className={styles.tabIcon}>\n <Icon icon={icon} size=\"sm\" aria-hidden />\n </span>\n )}\n <span className={styles.tabLabel}>{label}</span>\n\n {count !== undefined && (\n <Badge className={styles.tabBadge}>\n {count > 99 ? \"99+\" : count}\n </Badge>\n )}\n\n {onClose && (\n <button\n type=\"button\"\n aria-label={closeLabel}\n className={styles.closeBtn}\n onClick={(e) => { e.stopPropagation(); onClose(); }}\n >\n ×\n </button>\n )}\n </button>\n );\n});\n"],"mappings":";;;;;;AAkCA,IAAa,IAAU,EAAK,SAAiB,EAC3C,UACA,SACA,YAAS,IACT,YACA,YACA,gBAAa,aACb,UACA,cACA,aACA,GAAG,KACY;AACf,QACE,kBAAC,UAAD;EACE,MAAK;EACL,MAAK;EACL,iBAAe;EACf,iBAAe;EACf,UAAU,IAAS,IAAI;EACb;EACV,WAAW;GACT,EAAO;GACP,IAAS,EAAO,SAAS;GACzB,IAAU,EAAO,YAAY;GAC7B;GACD,CACE,OAAO,QAAQ,CACf,KAAK,IAAI;EACZ,GAAI;YAfN;GAiBG,KACC,kBAAC,QAAD;IAAM,WAAW,EAAO;cACtB,kBAAC,GAAD;KAAY;KAAM,MAAK;KAAK,eAAA;KAAc,CAAA;IACrC,CAAA;GAET,kBAAC,QAAD;IAAM,WAAW,EAAO;cAAW;IAAa,CAAA;GAE/C,MAAU,KAAA,KACT,kBAAC,GAAD;IAAO,WAAW,EAAO;cACtB,IAAQ,KAAK,QAAQ;IAChB,CAAA;GAGT,KACC,kBAAC,UAAD;IACE,MAAK;IACL,cAAY;IACZ,WAAW,EAAO;IAClB,UAAU,MAAM;AAAuB,KAArB,EAAE,iBAAiB,EAAE,GAAS;;cACjD;IAEQ,CAAA;GAEJ;;EAEX"}
1
+ {"version":3,"file":"TabItem.js","names":[],"sources":["../../../src/components/Tabs/TabItem.tsx"],"sourcesContent":["import type { IconDefinition } from '@gnome-ui/icons';\nimport type { ButtonHTMLAttributes, ReactNode } from 'react';\nimport { memo } from 'react';\n\nimport { Badge } from '../Badge';\nimport { Icon } from '../Icon';\n\nimport styles from './Tabs.module.css';\n\nexport interface TabItemProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n /** Tab label. */\n label: string;\n /** Optional icon from `@gnome-ui/icons`. */\n icon?: IconDefinition;\n /** Marks this tab as the currently selected one. */\n active?: boolean;\n /**\n * id of the `TabPanel` this tab controls.\n * Sets `aria-controls` automatically.\n */\n panelId?: string;\n /**\n * When provided, a close (×) button is rendered at the trailing edge.\n * Called when the user clicks the close button.\n */\n onClose?: () => void;\n /** Accessible label for the close button. Defaults to `\"Close tab\"`. */\n closeLabel?: string;\n /** Optional count shown as a badge next to the label (e.g. unread messages). Values above 99 render as \"99+\". */\n count?: number;\n children?: ReactNode;\n}\n\n/**\n * Individual tab button inside a `TabBar`.\n */\nexport const TabItem = memo(function TabItem({\n label,\n icon,\n active = false,\n panelId,\n onClose,\n closeLabel = 'Close tab',\n count,\n className,\n disabled,\n ...props\n}: TabItemProps) {\n return (\n <button\n role=\"tab\"\n type=\"button\"\n aria-selected={active}\n aria-controls={panelId}\n tabIndex={active ? 0 : -1}\n disabled={disabled}\n className={[\n styles.tab,\n active ? styles.active : null,\n onClose ? styles.closeable : null,\n className,\n ]\n .filter(Boolean)\n .join(' ')}\n {...props}\n >\n {icon && (\n <span className={styles.tabIcon}>\n <Icon icon={icon} size=\"sm\" aria-hidden />\n </span>\n )}\n <span className={styles.tabLabel}>{label}</span>\n\n {count !== undefined && (\n <Badge className={styles.tabBadge}>{count > 99 ? '99+' : count}</Badge>\n )}\n\n {onClose && (\n <button\n type=\"button\"\n aria-label={closeLabel}\n className={styles.closeBtn}\n onClick={(e) => {\n e.stopPropagation();\n onClose();\n }}\n >\n ×\n </button>\n )}\n </button>\n );\n});\n"],"mappings":";;;;;;AAoCA,IAAa,IAAU,EAAK,SAAiB,EAC3C,UACA,SACA,YAAS,IACT,YACA,YACA,gBAAa,aACb,UACA,cACA,aACA,GAAG,KACY;AACf,QACE,kBAAC,UAAD;EACE,MAAK;EACL,MAAK;EACL,iBAAe;EACf,iBAAe;EACf,UAAU,IAAS,IAAI;EACb;EACV,WAAW;GACT,EAAO;GACP,IAAS,EAAO,SAAS;GACzB,IAAU,EAAO,YAAY;GAC7B;GACD,CACE,OAAO,QAAQ,CACf,KAAK,IAAI;EACZ,GAAI;YAfN;GAiBG,KACC,kBAAC,QAAD;IAAM,WAAW,EAAO;cACtB,kBAAC,GAAD;KAAY;KAAM,MAAK;KAAK,eAAA;KAAc,CAAA;IACrC,CAAA;GAET,kBAAC,QAAD;IAAM,WAAW,EAAO;cAAW;IAAa,CAAA;GAE/C,MAAU,KAAA,KACT,kBAAC,GAAD;IAAO,WAAW,EAAO;cAAW,IAAQ,KAAK,QAAQ;IAAc,CAAA;GAGxE,KACC,kBAAC,UAAD;IACE,MAAK;IACL,cAAY;IACZ,WAAW,EAAO;IAClB,UAAU,MAAM;AAEd,KADA,EAAE,iBAAiB,EACnB,GAAS;;cAEZ;IAEQ,CAAA;GAEJ;;EAEX"}
@@ -1,2 +1,2 @@
1
- const e=require(`./Tabs.module.css.cjs`);let t=require(`react/jsx-runtime`);function n({id:n,active:r=!1,className:i,children:a,...o}){return(0,t.jsx)(`div`,{id:n,role:`tabpanel`,hidden:!r,tabIndex:0,className:[e.default.panel,i].filter(Boolean).join(` `),...o,children:a})}exports.TabPanel=n;
1
+ const e=require(`./Tabs.module.css.cjs`);let t=require(`react/jsx-runtime`);function n({id:n,active:r=!1,className:i,children:a,...o}){return(0,t.jsx)(`div`,{id:n,role:`tabpanel`,hidden:!r,className:[e.default.panel,i].filter(Boolean).join(` `),...o,children:a})}exports.TabPanel=n;
2
2
  //# sourceMappingURL=TabPanel.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"TabPanel.cjs","names":[],"sources":["../../../src/components/Tabs/TabPanel.tsx"],"sourcesContent":["import type { HTMLAttributes, ReactNode } from \"react\";\nimport styles from \"./Tabs.module.css\";\n\nexport interface TabPanelProps extends HTMLAttributes<HTMLDivElement> {\n /** Must match the `panelId` passed to the corresponding `TabItem`. */\n id: string;\n /** Controls whether this panel is rendered. */\n active?: boolean;\n children?: ReactNode;\n}\n\n/**\n * Content panel associated with a `TabItem`.\n * Hidden panels are kept in the DOM but visually hidden.\n */\nexport function TabPanel({\n id,\n active = false,\n className,\n children,\n ...props\n}: TabPanelProps) {\n return (\n <div\n id={id}\n role=\"tabpanel\"\n hidden={!active}\n tabIndex={0}\n className={[styles.panel, className].filter(Boolean).join(\" \")}\n {...props}\n >\n {children}\n </div>\n );\n}\n"],"mappings":"4EAeA,SAAgB,EAAS,CACvB,KACA,SAAS,GACT,YACA,WACA,GAAG,GACa,CAChB,OACE,EAAA,EAAA,KAAC,MAAD,CACM,KACJ,KAAK,WACL,OAAQ,CAAC,EACT,SAAU,EACV,UAAW,CAAC,EAAA,QAAO,MAAO,EAAU,CAAC,OAAO,QAAQ,CAAC,KAAK,IAAI,CAC9D,GAAI,EAEH,WACG,CAAA"}
1
+ {"version":3,"file":"TabPanel.cjs","names":[],"sources":["../../../src/components/Tabs/TabPanel.tsx"],"sourcesContent":["import type { HTMLAttributes, ReactNode } from 'react';\n\nimport styles from './Tabs.module.css';\n\nexport interface TabPanelProps extends HTMLAttributes<HTMLDivElement> {\n /** Must match the `panelId` passed to the corresponding `TabItem`. */\n id: string;\n /** Controls whether this panel is rendered. */\n active?: boolean;\n children?: ReactNode;\n}\n\n/**\n * Content panel associated with a `TabItem`.\n * Hidden panels are kept in the DOM but visually hidden.\n */\nexport function TabPanel({ id, active = false, className, children, ...props }: TabPanelProps) {\n return (\n <div\n id={id}\n role=\"tabpanel\"\n hidden={!active}\n className={[styles.panel, className].filter(Boolean).join(' ')}\n {...props}\n >\n {children}\n </div>\n );\n}\n"],"mappings":"4EAgBA,SAAgB,EAAS,CAAE,KAAI,SAAS,GAAO,YAAW,WAAU,GAAG,GAAwB,CAC7F,OACE,EAAA,EAAA,KAAC,MAAD,CACM,KACJ,KAAK,WACL,OAAQ,CAAC,EACT,UAAW,CAAC,EAAA,QAAO,MAAO,EAAU,CAAC,OAAO,QAAQ,CAAC,KAAK,IAAI,CAC9D,GAAI,EAEH,WACG,CAAA"}
@@ -6,7 +6,6 @@ function n({ id: n, active: r = !1, className: i, children: a, ...o }) {
6
6
  id: n,
7
7
  role: "tabpanel",
8
8
  hidden: !r,
9
- tabIndex: 0,
10
9
  className: [e.panel, i].filter(Boolean).join(" "),
11
10
  ...o,
12
11
  children: a
@@ -1 +1 @@
1
- {"version":3,"file":"TabPanel.js","names":[],"sources":["../../../src/components/Tabs/TabPanel.tsx"],"sourcesContent":["import type { HTMLAttributes, ReactNode } from \"react\";\nimport styles from \"./Tabs.module.css\";\n\nexport interface TabPanelProps extends HTMLAttributes<HTMLDivElement> {\n /** Must match the `panelId` passed to the corresponding `TabItem`. */\n id: string;\n /** Controls whether this panel is rendered. */\n active?: boolean;\n children?: ReactNode;\n}\n\n/**\n * Content panel associated with a `TabItem`.\n * Hidden panels are kept in the DOM but visually hidden.\n */\nexport function TabPanel({\n id,\n active = false,\n className,\n children,\n ...props\n}: TabPanelProps) {\n return (\n <div\n id={id}\n role=\"tabpanel\"\n hidden={!active}\n tabIndex={0}\n className={[styles.panel, className].filter(Boolean).join(\" \")}\n {...props}\n >\n {children}\n </div>\n );\n}\n"],"mappings":";;;AAeA,SAAgB,EAAS,EACvB,OACA,YAAS,IACT,cACA,aACA,GAAG,KACa;AAChB,QACE,kBAAC,OAAD;EACM;EACJ,MAAK;EACL,QAAQ,CAAC;EACT,UAAU;EACV,WAAW,CAAC,EAAO,OAAO,EAAU,CAAC,OAAO,QAAQ,CAAC,KAAK,IAAI;EAC9D,GAAI;EAEH;EACG,CAAA"}
1
+ {"version":3,"file":"TabPanel.js","names":[],"sources":["../../../src/components/Tabs/TabPanel.tsx"],"sourcesContent":["import type { HTMLAttributes, ReactNode } from 'react';\n\nimport styles from './Tabs.module.css';\n\nexport interface TabPanelProps extends HTMLAttributes<HTMLDivElement> {\n /** Must match the `panelId` passed to the corresponding `TabItem`. */\n id: string;\n /** Controls whether this panel is rendered. */\n active?: boolean;\n children?: ReactNode;\n}\n\n/**\n * Content panel associated with a `TabItem`.\n * Hidden panels are kept in the DOM but visually hidden.\n */\nexport function TabPanel({ id, active = false, className, children, ...props }: TabPanelProps) {\n return (\n <div\n id={id}\n role=\"tabpanel\"\n hidden={!active}\n className={[styles.panel, className].filter(Boolean).join(' ')}\n {...props}\n >\n {children}\n </div>\n );\n}\n"],"mappings":";;;AAgBA,SAAgB,EAAS,EAAE,OAAI,YAAS,IAAO,cAAW,aAAU,GAAG,KAAwB;AAC7F,QACE,kBAAC,OAAD;EACM;EACJ,MAAK;EACL,QAAQ,CAAC;EACT,WAAW,CAAC,EAAO,OAAO,EAAU,CAAC,OAAO,QAAQ,CAAC,KAAK,IAAI;EAC9D,GAAI;EAEH;EACG,CAAA"}
@@ -1,2 +1,2 @@
1
- var e={bar:`_bar_1qubq_3`,list:`_list_1qubq_10`,tab:`_tab_1qubq_26`,active:`_active_1qubq_81`,tabIcon:`_tabIcon_1qubq_102`,tabLabel:`_tabLabel_1qubq_110`,tabBadge:`_tabBadge_1qubq_119`,closeBtn:`_closeBtn_1qubq_126`,panel:`_panel_1qubq_163`,inline:`_inline_1qubq_173`};exports.default=e;
1
+ var e={bar:`_bar_1faeq_3`,list:`_list_1faeq_10`,tab:`_tab_1faeq_26`,active:`_active_1faeq_81`,tabIcon:`_tabIcon_1faeq_102`,tabLabel:`_tabLabel_1faeq_110`,tabBadge:`_tabBadge_1faeq_119`,closeBtn:`_closeBtn_1faeq_126`,panel:`_panel_1faeq_164`,inline:`_inline_1faeq_174`};exports.default=e;
2
2
  //# sourceMappingURL=Tabs.module.css.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Tabs.module.css.cjs","names":[],"sources":["../../../src/components/Tabs/Tabs.module.css"],"sourcesContent":["/* ─── Bar (outer wrapper) ──────────────────────────────────────────────────── */\n\n.bar {\n background-color: var(--gnome-headerbar-bg-color, #ebebeb);\n border-bottom: 1px solid var(--gnome-headerbar-border-color, rgba(0, 0, 0, 0.12));\n}\n\n/* ─── Tab list ─────────────────────────────────────────────────────────────── */\n\n.list {\n display: flex;\n align-items: stretch;\n overflow-x: auto;\n scrollbar-width: none;\n padding: 0 var(--gnome-space-1, 6px);\n gap: 2px;\n min-height: 40px;\n}\n\n.list::-webkit-scrollbar {\n display: none;\n}\n\n/* ─── Tab button ───────────────────────────────────────────────────────────── */\n\n.tab {\n appearance: none;\n -webkit-appearance: none;\n border: none;\n background: transparent;\n font: inherit;\n cursor: pointer;\n outline: none;\n\n position: relative;\n display: inline-flex;\n align-items: center;\n gap: var(--gnome-space-1, 6px);\n padding: 0 var(--gnome-space-2, 12px);\n min-width: 80px;\n max-width: 200px;\n white-space: nowrap;\n\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-body, 1rem);\n font-weight: var(--gnome-font-weight-normal, 400);\n color: var(--gnome-headerbar-fg-color, rgba(0, 0, 0, 0.8));\n opacity: 0.7;\n\n border-radius: var(--gnome-radius-md, 8px) var(--gnome-radius-md, 8px) 0 0;\n transition:\n background-color var(--gnome-duration-fast) var(--gnome-easing-default),\n opacity var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.tab::after {\n content: \"\";\n position: absolute;\n bottom: 0;\n left: var(--gnome-space-2, 12px);\n right: var(--gnome-space-2, 12px);\n height: 2px;\n border-radius: 1px 1px 0 0;\n background-color: var(--gnome-accent-bg-color, #3584e4);\n opacity: 0;\n transition: opacity var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.tab:hover {\n opacity: 1;\n background-color: var(--gnome-hover-overlay);\n}\n\n.tab:disabled {\n opacity: var(--gnome-opacity-disabled, 0.5);\n cursor: not-allowed;\n}\n\n/* ─── Active tab ───────────────────────────────────────────────────────────── */\n\n.active {\n opacity: 1;\n font-weight: var(--gnome-font-weight-semibold, 600);\n background-color: var(--gnome-active-overlay);\n}\n\n.active::after {\n opacity: 1;\n}\n\n/* ─── Focus ────────────────────────────────────────────────────────────────── */\n\n.tab:focus-visible {\n box-shadow:\n inset 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-headerbar-bg-color, #ebebeb),\n inset 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/* ─── Icon inside tab ──────────────────────────────────────────────────────── */\n\n.tabIcon {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n}\n\n/* ─── Label inside tab ─────────────────────────────────────────────────────── */\n\n.tabLabel {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n/* ─── Badge inside tab ─────────────────────────────────────────────────────── */\n\n.tabBadge {\n margin-inline-start: var(--gnome-space-1, 6px);\n flex-shrink: 0;\n}\n\n/* ─── Close button ─────────────────────────────────────────────────────────── */\n\n.closeBtn {\n appearance: none;\n -webkit-appearance: none;\n border: none;\n background: transparent;\n font: inherit;\n cursor: pointer;\n padding: 0;\n\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 18px;\n height: 18px;\n border-radius: var(--gnome-radius-sm, 4px);\n font-size: 1rem;\n line-height: 1;\n opacity: 0.5;\n margin-left: 2px;\n transition: opacity var(--gnome-duration-fast) var(--gnome-easing-default),\n background-color var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.closeBtn:hover {\n opacity: 1;\n background-color: var(--gnome-active-overlay);\n}\n\n.closeBtn:focus-visible {\n outline: 2px solid var(--gnome-focus-ring-color, #3584e4);\n outline-offset: 1px;\n opacity: 1;\n}\n\n/* ─── Panel ────────────────────────────────────────────────────────────────── */\n\n.panel {\n outline: none;\n}\n\n.panel:focus-visible {\n box-shadow: inset 0 0 0 2px var(--gnome-focus-ring-color, #3584e4);\n}\n\n/* ─── Inline variant ───────────────────────────────────────────────────────── */\n\n.inline {\n background-color: transparent;\n border-bottom-color: transparent;\n}\n\n.inline .tab:focus-visible {\n box-shadow:\n inset 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-window-bg-color, #fafafa),\n inset 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/* ─── High contrast ────────────────────────────────────────────────────────── */\n\n@media (prefers-contrast: more) {\n .bar {\n border-bottom-width: 2px;\n }\n\n .tab::after {\n height: 3px;\n }\n}\n\n/* ─── Reduced motion ───────────────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .tab,\n .tab::after,\n .closeBtn {\n transition: none;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"Tabs.module.css.cjs","names":[],"sources":["../../../src/components/Tabs/Tabs.module.css"],"sourcesContent":["/* ─── Bar (outer wrapper) ──────────────────────────────────────────────────── */\n\n.bar {\n background-color: var(--gnome-headerbar-bg-color, #ebebeb);\n border-bottom: 1px solid var(--gnome-headerbar-border-color, rgba(0, 0, 0, 0.12));\n}\n\n/* ─── Tab list ─────────────────────────────────────────────────────────────── */\n\n.list {\n display: flex;\n align-items: stretch;\n overflow-x: auto;\n scrollbar-width: none;\n padding: 0 var(--gnome-space-1, 6px);\n gap: 2px;\n min-height: 40px;\n}\n\n.list::-webkit-scrollbar {\n display: none;\n}\n\n/* ─── Tab button ───────────────────────────────────────────────────────────── */\n\n.tab {\n appearance: none;\n -webkit-appearance: none;\n border: none;\n background: transparent;\n font: inherit;\n cursor: pointer;\n outline: none;\n\n position: relative;\n display: inline-flex;\n align-items: center;\n gap: var(--gnome-space-1, 6px);\n padding: 0 var(--gnome-space-2, 12px);\n min-width: 80px;\n max-width: 200px;\n white-space: nowrap;\n\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-body, 1rem);\n font-weight: var(--gnome-font-weight-normal, 400);\n color: var(--gnome-headerbar-fg-color, rgba(0, 0, 0, 0.8));\n opacity: 0.7;\n\n border-radius: var(--gnome-radius-md, 8px) var(--gnome-radius-md, 8px) 0 0;\n transition:\n background-color var(--gnome-duration-fast) var(--gnome-easing-default),\n opacity var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.tab::after {\n content: \"\";\n position: absolute;\n bottom: 0;\n left: var(--gnome-space-2, 12px);\n right: var(--gnome-space-2, 12px);\n height: 2px;\n border-radius: 1px 1px 0 0;\n background-color: var(--gnome-accent-bg-color, #3584e4);\n opacity: 0;\n transition: opacity var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.tab:hover {\n opacity: 1;\n background-color: var(--gnome-hover-overlay);\n}\n\n.tab:disabled {\n opacity: var(--gnome-opacity-disabled, 0.5);\n cursor: not-allowed;\n}\n\n/* ─── Active tab ───────────────────────────────────────────────────────────── */\n\n.active {\n opacity: 1;\n font-weight: var(--gnome-font-weight-semibold, 600);\n background-color: var(--gnome-active-overlay);\n}\n\n.active::after {\n opacity: 1;\n}\n\n/* ─── Focus ────────────────────────────────────────────────────────────────── */\n\n.tab:focus-visible {\n box-shadow:\n inset 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-headerbar-bg-color, #ebebeb),\n inset 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/* ─── Icon inside tab ──────────────────────────────────────────────────────── */\n\n.tabIcon {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n}\n\n/* ─── Label inside tab ─────────────────────────────────────────────────────── */\n\n.tabLabel {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n/* ─── Badge inside tab ─────────────────────────────────────────────────────── */\n\n.tabBadge {\n margin-inline-start: var(--gnome-space-1, 6px);\n flex-shrink: 0;\n}\n\n/* ─── Close button ─────────────────────────────────────────────────────────── */\n\n.closeBtn {\n appearance: none;\n -webkit-appearance: none;\n border: none;\n background: transparent;\n font: inherit;\n cursor: pointer;\n padding: 0;\n\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 18px;\n height: 18px;\n border-radius: var(--gnome-radius-sm, 4px);\n font-size: 1rem;\n line-height: 1;\n opacity: 0.5;\n margin-left: 2px;\n transition:\n opacity var(--gnome-duration-fast) var(--gnome-easing-default),\n background-color var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.closeBtn:hover {\n opacity: 1;\n background-color: var(--gnome-active-overlay);\n}\n\n.closeBtn:focus-visible {\n outline: 2px solid var(--gnome-focus-ring-color, #3584e4);\n outline-offset: 1px;\n opacity: 1;\n}\n\n/* ─── Panel ────────────────────────────────────────────────────────────────── */\n\n.panel {\n outline: none;\n}\n\n.panel:focus-visible {\n box-shadow: inset 0 0 0 2px var(--gnome-focus-ring-color, #3584e4);\n}\n\n/* ─── Inline variant ───────────────────────────────────────────────────────── */\n\n.inline {\n background-color: transparent;\n border-bottom-color: transparent;\n}\n\n.inline .tab:focus-visible {\n box-shadow:\n inset 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-window-bg-color, #fafafa),\n inset 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/* ─── High contrast ────────────────────────────────────────────────────────── */\n\n@media (prefers-contrast: more) {\n .bar {\n border-bottom-width: 2px;\n }\n\n .tab::after {\n height: 3px;\n }\n}\n\n/* ─── Reduced motion ───────────────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .tab,\n .tab::after,\n .closeBtn {\n transition: none;\n }\n}\n"],"mappings":""}
@@ -1,14 +1,14 @@
1
1
  var e = {
2
- bar: "_bar_1qubq_3",
3
- list: "_list_1qubq_10",
4
- tab: "_tab_1qubq_26",
5
- active: "_active_1qubq_81",
6
- tabIcon: "_tabIcon_1qubq_102",
7
- tabLabel: "_tabLabel_1qubq_110",
8
- tabBadge: "_tabBadge_1qubq_119",
9
- closeBtn: "_closeBtn_1qubq_126",
10
- panel: "_panel_1qubq_163",
11
- inline: "_inline_1qubq_173"
2
+ bar: "_bar_1faeq_3",
3
+ list: "_list_1faeq_10",
4
+ tab: "_tab_1faeq_26",
5
+ active: "_active_1faeq_81",
6
+ tabIcon: "_tabIcon_1faeq_102",
7
+ tabLabel: "_tabLabel_1faeq_110",
8
+ tabBadge: "_tabBadge_1faeq_119",
9
+ closeBtn: "_closeBtn_1faeq_126",
10
+ panel: "_panel_1faeq_164",
11
+ inline: "_inline_1faeq_174"
12
12
  };
13
13
  //#endregion
14
14
  export { e as default };
@@ -1 +1 @@
1
- {"version":3,"file":"Tabs.module.css.js","names":[],"sources":["../../../src/components/Tabs/Tabs.module.css"],"sourcesContent":["/* ─── Bar (outer wrapper) ──────────────────────────────────────────────────── */\n\n.bar {\n background-color: var(--gnome-headerbar-bg-color, #ebebeb);\n border-bottom: 1px solid var(--gnome-headerbar-border-color, rgba(0, 0, 0, 0.12));\n}\n\n/* ─── Tab list ─────────────────────────────────────────────────────────────── */\n\n.list {\n display: flex;\n align-items: stretch;\n overflow-x: auto;\n scrollbar-width: none;\n padding: 0 var(--gnome-space-1, 6px);\n gap: 2px;\n min-height: 40px;\n}\n\n.list::-webkit-scrollbar {\n display: none;\n}\n\n/* ─── Tab button ───────────────────────────────────────────────────────────── */\n\n.tab {\n appearance: none;\n -webkit-appearance: none;\n border: none;\n background: transparent;\n font: inherit;\n cursor: pointer;\n outline: none;\n\n position: relative;\n display: inline-flex;\n align-items: center;\n gap: var(--gnome-space-1, 6px);\n padding: 0 var(--gnome-space-2, 12px);\n min-width: 80px;\n max-width: 200px;\n white-space: nowrap;\n\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-body, 1rem);\n font-weight: var(--gnome-font-weight-normal, 400);\n color: var(--gnome-headerbar-fg-color, rgba(0, 0, 0, 0.8));\n opacity: 0.7;\n\n border-radius: var(--gnome-radius-md, 8px) var(--gnome-radius-md, 8px) 0 0;\n transition:\n background-color var(--gnome-duration-fast) var(--gnome-easing-default),\n opacity var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.tab::after {\n content: \"\";\n position: absolute;\n bottom: 0;\n left: var(--gnome-space-2, 12px);\n right: var(--gnome-space-2, 12px);\n height: 2px;\n border-radius: 1px 1px 0 0;\n background-color: var(--gnome-accent-bg-color, #3584e4);\n opacity: 0;\n transition: opacity var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.tab:hover {\n opacity: 1;\n background-color: var(--gnome-hover-overlay);\n}\n\n.tab:disabled {\n opacity: var(--gnome-opacity-disabled, 0.5);\n cursor: not-allowed;\n}\n\n/* ─── Active tab ───────────────────────────────────────────────────────────── */\n\n.active {\n opacity: 1;\n font-weight: var(--gnome-font-weight-semibold, 600);\n background-color: var(--gnome-active-overlay);\n}\n\n.active::after {\n opacity: 1;\n}\n\n/* ─── Focus ────────────────────────────────────────────────────────────────── */\n\n.tab:focus-visible {\n box-shadow:\n inset 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-headerbar-bg-color, #ebebeb),\n inset 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/* ─── Icon inside tab ──────────────────────────────────────────────────────── */\n\n.tabIcon {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n}\n\n/* ─── Label inside tab ─────────────────────────────────────────────────────── */\n\n.tabLabel {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n/* ─── Badge inside tab ─────────────────────────────────────────────────────── */\n\n.tabBadge {\n margin-inline-start: var(--gnome-space-1, 6px);\n flex-shrink: 0;\n}\n\n/* ─── Close button ─────────────────────────────────────────────────────────── */\n\n.closeBtn {\n appearance: none;\n -webkit-appearance: none;\n border: none;\n background: transparent;\n font: inherit;\n cursor: pointer;\n padding: 0;\n\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 18px;\n height: 18px;\n border-radius: var(--gnome-radius-sm, 4px);\n font-size: 1rem;\n line-height: 1;\n opacity: 0.5;\n margin-left: 2px;\n transition: opacity var(--gnome-duration-fast) var(--gnome-easing-default),\n background-color var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.closeBtn:hover {\n opacity: 1;\n background-color: var(--gnome-active-overlay);\n}\n\n.closeBtn:focus-visible {\n outline: 2px solid var(--gnome-focus-ring-color, #3584e4);\n outline-offset: 1px;\n opacity: 1;\n}\n\n/* ─── Panel ────────────────────────────────────────────────────────────────── */\n\n.panel {\n outline: none;\n}\n\n.panel:focus-visible {\n box-shadow: inset 0 0 0 2px var(--gnome-focus-ring-color, #3584e4);\n}\n\n/* ─── Inline variant ───────────────────────────────────────────────────────── */\n\n.inline {\n background-color: transparent;\n border-bottom-color: transparent;\n}\n\n.inline .tab:focus-visible {\n box-shadow:\n inset 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-window-bg-color, #fafafa),\n inset 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/* ─── High contrast ────────────────────────────────────────────────────────── */\n\n@media (prefers-contrast: more) {\n .bar {\n border-bottom-width: 2px;\n }\n\n .tab::after {\n height: 3px;\n }\n}\n\n/* ─── Reduced motion ───────────────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .tab,\n .tab::after,\n .closeBtn {\n transition: none;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"Tabs.module.css.js","names":[],"sources":["../../../src/components/Tabs/Tabs.module.css"],"sourcesContent":["/* ─── Bar (outer wrapper) ──────────────────────────────────────────────────── */\n\n.bar {\n background-color: var(--gnome-headerbar-bg-color, #ebebeb);\n border-bottom: 1px solid var(--gnome-headerbar-border-color, rgba(0, 0, 0, 0.12));\n}\n\n/* ─── Tab list ─────────────────────────────────────────────────────────────── */\n\n.list {\n display: flex;\n align-items: stretch;\n overflow-x: auto;\n scrollbar-width: none;\n padding: 0 var(--gnome-space-1, 6px);\n gap: 2px;\n min-height: 40px;\n}\n\n.list::-webkit-scrollbar {\n display: none;\n}\n\n/* ─── Tab button ───────────────────────────────────────────────────────────── */\n\n.tab {\n appearance: none;\n -webkit-appearance: none;\n border: none;\n background: transparent;\n font: inherit;\n cursor: pointer;\n outline: none;\n\n position: relative;\n display: inline-flex;\n align-items: center;\n gap: var(--gnome-space-1, 6px);\n padding: 0 var(--gnome-space-2, 12px);\n min-width: 80px;\n max-width: 200px;\n white-space: nowrap;\n\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-body, 1rem);\n font-weight: var(--gnome-font-weight-normal, 400);\n color: var(--gnome-headerbar-fg-color, rgba(0, 0, 0, 0.8));\n opacity: 0.7;\n\n border-radius: var(--gnome-radius-md, 8px) var(--gnome-radius-md, 8px) 0 0;\n transition:\n background-color var(--gnome-duration-fast) var(--gnome-easing-default),\n opacity var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.tab::after {\n content: \"\";\n position: absolute;\n bottom: 0;\n left: var(--gnome-space-2, 12px);\n right: var(--gnome-space-2, 12px);\n height: 2px;\n border-radius: 1px 1px 0 0;\n background-color: var(--gnome-accent-bg-color, #3584e4);\n opacity: 0;\n transition: opacity var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.tab:hover {\n opacity: 1;\n background-color: var(--gnome-hover-overlay);\n}\n\n.tab:disabled {\n opacity: var(--gnome-opacity-disabled, 0.5);\n cursor: not-allowed;\n}\n\n/* ─── Active tab ───────────────────────────────────────────────────────────── */\n\n.active {\n opacity: 1;\n font-weight: var(--gnome-font-weight-semibold, 600);\n background-color: var(--gnome-active-overlay);\n}\n\n.active::after {\n opacity: 1;\n}\n\n/* ─── Focus ────────────────────────────────────────────────────────────────── */\n\n.tab:focus-visible {\n box-shadow:\n inset 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-headerbar-bg-color, #ebebeb),\n inset 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/* ─── Icon inside tab ──────────────────────────────────────────────────────── */\n\n.tabIcon {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n}\n\n/* ─── Label inside tab ─────────────────────────────────────────────────────── */\n\n.tabLabel {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n/* ─── Badge inside tab ─────────────────────────────────────────────────────── */\n\n.tabBadge {\n margin-inline-start: var(--gnome-space-1, 6px);\n flex-shrink: 0;\n}\n\n/* ─── Close button ─────────────────────────────────────────────────────────── */\n\n.closeBtn {\n appearance: none;\n -webkit-appearance: none;\n border: none;\n background: transparent;\n font: inherit;\n cursor: pointer;\n padding: 0;\n\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 18px;\n height: 18px;\n border-radius: var(--gnome-radius-sm, 4px);\n font-size: 1rem;\n line-height: 1;\n opacity: 0.5;\n margin-left: 2px;\n transition:\n opacity var(--gnome-duration-fast) var(--gnome-easing-default),\n background-color var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.closeBtn:hover {\n opacity: 1;\n background-color: var(--gnome-active-overlay);\n}\n\n.closeBtn:focus-visible {\n outline: 2px solid var(--gnome-focus-ring-color, #3584e4);\n outline-offset: 1px;\n opacity: 1;\n}\n\n/* ─── Panel ────────────────────────────────────────────────────────────────── */\n\n.panel {\n outline: none;\n}\n\n.panel:focus-visible {\n box-shadow: inset 0 0 0 2px var(--gnome-focus-ring-color, #3584e4);\n}\n\n/* ─── Inline variant ───────────────────────────────────────────────────────── */\n\n.inline {\n background-color: transparent;\n border-bottom-color: transparent;\n}\n\n.inline .tab:focus-visible {\n box-shadow:\n inset 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-window-bg-color, #fafafa),\n inset 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/* ─── High contrast ────────────────────────────────────────────────────────── */\n\n@media (prefers-contrast: more) {\n .bar {\n border-bottom-width: 2px;\n }\n\n .tab::after {\n height: 3px;\n }\n}\n\n/* ─── Reduced motion ───────────────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .tab,\n .tab::after,\n .closeBtn {\n transition: none;\n }\n}\n"],"mappings":""}
@@ -1,6 +1,6 @@
1
- export { TabBar } from './TabBar';
2
1
  export type { TabBarProps } from './TabBar';
3
- export { TabItem } from './TabItem';
2
+ export { TabBar } from './TabBar';
4
3
  export type { TabItemProps } from './TabItem';
5
- export { TabPanel } from './TabPanel';
4
+ export { TabItem } from './TabItem';
6
5
  export type { TabPanelProps } from './TabPanel';
6
+ export { TabPanel } from './TabPanel';
@@ -1,2 +1,2 @@
1
- const e=require(`./TerminalView.module.css.cjs`);let t=require(`react`),n=require(`react/jsx-runtime`);function r({lines:r,variant:i=`default`,maxLines:a=500,autoScroll:o=!0,className:s,...c}){let l=(0,t.useRef)(null),u=r.slice(-a);return(0,t.useEffect)(()=>{o&&l.current?.scrollIntoView({block:`nearest`})},[u.length,o]),(0,n.jsx)(`div`,{className:[e.default.terminal,e.default[i],s].filter(Boolean).join(` `),...c,children:(0,n.jsxs)(`pre`,{className:e.default.pre,children:[u.map((t,r)=>(0,n.jsx)(`div`,{className:e.default.line,children:t},r)),(0,n.jsx)(`div`,{ref:l})]})})}exports.TerminalView=r;
1
+ const e=require(`./TerminalView.module.css.cjs`);let t=require(`react`),n=require(`react/jsx-runtime`);function r({lines:r,variant:i=`default`,maxLines:a=500,autoScroll:o=!0,className:s,...c}){let l=(0,t.useRef)(null),u=r.slice(-a);return(0,t.useEffect)(()=>{o&&l.current?.scrollIntoView({block:`nearest`})},[o]),(0,n.jsx)(`div`,{className:[e.default.terminal,e.default[i],s].filter(Boolean).join(` `),...c,children:(0,n.jsxs)(`pre`,{className:e.default.pre,children:[u.map((t,r)=>(0,n.jsx)(`div`,{className:e.default.line,children:t},r)),(0,n.jsx)(`div`,{ref:l})]})})}exports.TerminalView=r;
2
2
  //# sourceMappingURL=TerminalView.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"TerminalView.cjs","names":[],"sources":["../../../src/components/TerminalView/TerminalView.tsx"],"sourcesContent":["import {\n useEffect,\n useRef,\n type HTMLAttributes,\n} from \"react\";\nimport styles from \"./TerminalView.module.css\";\n\nexport type TerminalVariant = \"default\" | \"success\" | \"warning\" | \"destructive\";\n\nexport interface TerminalViewProps extends HTMLAttributes<HTMLDivElement> {\n /** Lines of text to display. */\n lines: string[];\n /** Colorize text based on semantic meaning. Defaults to `\"default\"`. */\n variant?: TerminalVariant;\n /** Maximum number of lines to keep in the buffer. Defaults to `500`. */\n maxLines?: number;\n /** Automatically scroll to the latest line when content changes. Defaults to `true`. */\n autoScroll?: boolean;\n}\n\nexport function TerminalView({\n lines,\n variant = \"default\",\n maxLines = 500,\n autoScroll = true,\n className,\n ...props\n}: TerminalViewProps) {\n const bottomRef = useRef<HTMLDivElement>(null);\n const visibleLines = lines.slice(-maxLines);\n\n useEffect(() => {\n if (autoScroll) {\n bottomRef.current?.scrollIntoView({ block: \"nearest\" });\n }\n }, [visibleLines.length, autoScroll]);\n\n return (\n <div\n className={[styles.terminal, styles[variant], className]\n .filter(Boolean)\n .join(\" \")}\n {...props}\n >\n <pre className={styles.pre}>\n {visibleLines.map((line, i) => (\n <div key={i} className={styles.line}>\n {line}\n </div>\n ))}\n <div ref={bottomRef} />\n </pre>\n </div>\n );\n}\n"],"mappings":"uGAoBA,SAAgB,EAAa,CAC3B,QACA,UAAU,UACV,WAAW,IACX,aAAa,GACb,YACA,GAAG,GACiB,CACpB,IAAM,GAAA,EAAA,EAAA,QAAmC,KAAK,CACxC,EAAe,EAAM,MAAM,CAAC,EAAS,CAQ3C,OANA,EAAA,EAAA,eAAgB,CACV,GACF,EAAU,SAAS,eAAe,CAAE,MAAO,UAAW,CAAC,EAExD,CAAC,EAAa,OAAQ,EAAW,CAAC,EAGnC,EAAA,EAAA,KAAC,MAAD,CACE,UAAW,CAAC,EAAA,QAAO,SAAU,EAAA,QAAO,GAAU,EAAU,CACrD,OAAO,QAAQ,CACf,KAAK,IAAI,CACZ,GAAI,YAEJ,EAAA,EAAA,MAAC,MAAD,CAAK,UAAW,EAAA,QAAO,aAAvB,CACG,EAAa,KAAK,EAAM,KACvB,EAAA,EAAA,KAAC,MAAD,CAAa,UAAW,EAAA,QAAO,cAC5B,EACG,CAFI,EAEJ,CACN,EACF,EAAA,EAAA,KAAC,MAAD,CAAK,IAAK,EAAa,CAAA,CACnB,GACF,CAAA"}
1
+ {"version":3,"file":"TerminalView.cjs","names":[],"sources":["../../../src/components/TerminalView/TerminalView.tsx"],"sourcesContent":["import { type HTMLAttributes, useEffect, useRef } from 'react';\n\nimport styles from './TerminalView.module.css';\n\nexport type TerminalVariant = 'default' | 'success' | 'warning' | 'destructive';\n\nexport interface TerminalViewProps extends HTMLAttributes<HTMLDivElement> {\n /** Lines of text to display. */\n lines: string[];\n /** Colorize text based on semantic meaning. Defaults to `\"default\"`. */\n variant?: TerminalVariant;\n /** Maximum number of lines to keep in the buffer. Defaults to `500`. */\n maxLines?: number;\n /** Automatically scroll to the latest line when content changes. Defaults to `true`. */\n autoScroll?: boolean;\n}\n\nexport function TerminalView({\n lines,\n variant = 'default',\n maxLines = 500,\n autoScroll = true,\n className,\n ...props\n}: TerminalViewProps) {\n const bottomRef = useRef<HTMLDivElement>(null);\n const visibleLines = lines.slice(-maxLines);\n\n useEffect(() => {\n if (autoScroll) {\n bottomRef.current?.scrollIntoView({ block: 'nearest' });\n }\n }, [autoScroll]);\n\n return (\n <div\n className={[styles.terminal, styles[variant], className].filter(Boolean).join(' ')}\n {...props}\n >\n <pre className={styles.pre}>\n {visibleLines.map((line, i) => (\n <div key={i} className={styles.line}>\n {line}\n </div>\n ))}\n <div ref={bottomRef} />\n </pre>\n </div>\n );\n}\n"],"mappings":"uGAiBA,SAAgB,EAAa,CAC3B,QACA,UAAU,UACV,WAAW,IACX,aAAa,GACb,YACA,GAAG,GACiB,CACpB,IAAM,GAAA,EAAA,EAAA,QAAmC,KAAK,CACxC,EAAe,EAAM,MAAM,CAAC,EAAS,CAQ3C,OANA,EAAA,EAAA,eAAgB,CACV,GACF,EAAU,SAAS,eAAe,CAAE,MAAO,UAAW,CAAC,EAExD,CAAC,EAAW,CAAC,EAGd,EAAA,EAAA,KAAC,MAAD,CACE,UAAW,CAAC,EAAA,QAAO,SAAU,EAAA,QAAO,GAAU,EAAU,CAAC,OAAO,QAAQ,CAAC,KAAK,IAAI,CAClF,GAAI,YAEJ,EAAA,EAAA,MAAC,MAAD,CAAK,UAAW,EAAA,QAAO,aAAvB,CACG,EAAa,KAAK,EAAM,KACvB,EAAA,EAAA,KAAC,MAAD,CAAa,UAAW,EAAA,QAAO,cAC5B,EACG,CAFI,EAEJ,CACN,EACF,EAAA,EAAA,KAAC,MAAD,CAAK,IAAK,EAAa,CAAA,CACnB,GACF,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { HTMLAttributes } from 'react';
2
- export type TerminalVariant = "default" | "success" | "warning" | "destructive";
2
+ export type TerminalVariant = 'default' | 'success' | 'warning' | 'destructive';
3
3
  export interface TerminalViewProps extends HTMLAttributes<HTMLDivElement> {
4
4
  /** Lines of text to display. */
5
5
  lines: string[];
@@ -6,7 +6,7 @@ function a({ lines: a, variant: o = "default", maxLines: s = 500, autoScroll: c
6
6
  let d = n(null), f = a.slice(-s);
7
7
  return t(() => {
8
8
  c && d.current?.scrollIntoView({ block: "nearest" });
9
- }, [f.length, c]), /* @__PURE__ */ r("div", {
9
+ }, [c]), /* @__PURE__ */ r("div", {
10
10
  className: [
11
11
  e.terminal,
12
12
  e[o],
@@ -1 +1 @@
1
- {"version":3,"file":"TerminalView.js","names":[],"sources":["../../../src/components/TerminalView/TerminalView.tsx"],"sourcesContent":["import {\n useEffect,\n useRef,\n type HTMLAttributes,\n} from \"react\";\nimport styles from \"./TerminalView.module.css\";\n\nexport type TerminalVariant = \"default\" | \"success\" | \"warning\" | \"destructive\";\n\nexport interface TerminalViewProps extends HTMLAttributes<HTMLDivElement> {\n /** Lines of text to display. */\n lines: string[];\n /** Colorize text based on semantic meaning. Defaults to `\"default\"`. */\n variant?: TerminalVariant;\n /** Maximum number of lines to keep in the buffer. Defaults to `500`. */\n maxLines?: number;\n /** Automatically scroll to the latest line when content changes. Defaults to `true`. */\n autoScroll?: boolean;\n}\n\nexport function TerminalView({\n lines,\n variant = \"default\",\n maxLines = 500,\n autoScroll = true,\n className,\n ...props\n}: TerminalViewProps) {\n const bottomRef = useRef<HTMLDivElement>(null);\n const visibleLines = lines.slice(-maxLines);\n\n useEffect(() => {\n if (autoScroll) {\n bottomRef.current?.scrollIntoView({ block: \"nearest\" });\n }\n }, [visibleLines.length, autoScroll]);\n\n return (\n <div\n className={[styles.terminal, styles[variant], className]\n .filter(Boolean)\n .join(\" \")}\n {...props}\n >\n <pre className={styles.pre}>\n {visibleLines.map((line, i) => (\n <div key={i} className={styles.line}>\n {line}\n </div>\n ))}\n <div ref={bottomRef} />\n </pre>\n </div>\n );\n}\n"],"mappings":";;;;AAoBA,SAAgB,EAAa,EAC3B,UACA,aAAU,WACV,cAAW,KACX,gBAAa,IACb,cACA,GAAG,KACiB;CACpB,IAAM,IAAY,EAAuB,KAAK,EACxC,IAAe,EAAM,MAAM,CAAC,EAAS;AAQ3C,QANA,QAAgB;AACd,EAAI,KACF,EAAU,SAAS,eAAe,EAAE,OAAO,WAAW,CAAC;IAExD,CAAC,EAAa,QAAQ,EAAW,CAAC,EAGnC,kBAAC,OAAD;EACE,WAAW;GAAC,EAAO;GAAU,EAAO;GAAU;GAAU,CACrD,OAAO,QAAQ,CACf,KAAK,IAAI;EACZ,GAAI;YAEJ,kBAAC,OAAD;GAAK,WAAW,EAAO;aAAvB,CACG,EAAa,KAAK,GAAM,MACvB,kBAAC,OAAD;IAAa,WAAW,EAAO;cAC5B;IACG,EAFI,EAEJ,CACN,EACF,kBAAC,OAAD,EAAK,KAAK,GAAa,CAAA,CACnB;;EACF,CAAA"}
1
+ {"version":3,"file":"TerminalView.js","names":[],"sources":["../../../src/components/TerminalView/TerminalView.tsx"],"sourcesContent":["import { type HTMLAttributes, useEffect, useRef } from 'react';\n\nimport styles from './TerminalView.module.css';\n\nexport type TerminalVariant = 'default' | 'success' | 'warning' | 'destructive';\n\nexport interface TerminalViewProps extends HTMLAttributes<HTMLDivElement> {\n /** Lines of text to display. */\n lines: string[];\n /** Colorize text based on semantic meaning. Defaults to `\"default\"`. */\n variant?: TerminalVariant;\n /** Maximum number of lines to keep in the buffer. Defaults to `500`. */\n maxLines?: number;\n /** Automatically scroll to the latest line when content changes. Defaults to `true`. */\n autoScroll?: boolean;\n}\n\nexport function TerminalView({\n lines,\n variant = 'default',\n maxLines = 500,\n autoScroll = true,\n className,\n ...props\n}: TerminalViewProps) {\n const bottomRef = useRef<HTMLDivElement>(null);\n const visibleLines = lines.slice(-maxLines);\n\n useEffect(() => {\n if (autoScroll) {\n bottomRef.current?.scrollIntoView({ block: 'nearest' });\n }\n }, [autoScroll]);\n\n return (\n <div\n className={[styles.terminal, styles[variant], className].filter(Boolean).join(' ')}\n {...props}\n >\n <pre className={styles.pre}>\n {visibleLines.map((line, i) => (\n <div key={i} className={styles.line}>\n {line}\n </div>\n ))}\n <div ref={bottomRef} />\n </pre>\n </div>\n );\n}\n"],"mappings":";;;;AAiBA,SAAgB,EAAa,EAC3B,UACA,aAAU,WACV,cAAW,KACX,gBAAa,IACb,cACA,GAAG,KACiB;CACpB,IAAM,IAAY,EAAuB,KAAK,EACxC,IAAe,EAAM,MAAM,CAAC,EAAS;AAQ3C,QANA,QAAgB;AACd,EAAI,KACF,EAAU,SAAS,eAAe,EAAE,OAAO,WAAW,CAAC;IAExD,CAAC,EAAW,CAAC,EAGd,kBAAC,OAAD;EACE,WAAW;GAAC,EAAO;GAAU,EAAO;GAAU;GAAU,CAAC,OAAO,QAAQ,CAAC,KAAK,IAAI;EAClF,GAAI;YAEJ,kBAAC,OAAD;GAAK,WAAW,EAAO;aAAvB,CACG,EAAa,KAAK,GAAM,MACvB,kBAAC,OAAD;IAAa,WAAW,EAAO;cAC5B;IACG,EAFI,EAEJ,CACN,EACF,kBAAC,OAAD,EAAK,KAAK,GAAa,CAAA,CACnB;;EACF,CAAA"}
@@ -1,2 +1,2 @@
1
+ export type { TerminalVariant, TerminalViewProps } from './TerminalView';
1
2
  export { TerminalView } from './TerminalView';
2
- export type { TerminalViewProps, TerminalVariant } from './TerminalView';
@@ -1 +1 @@
1
- {"version":3,"file":"Text.cjs","names":[],"sources":["../../../src/components/Text/Text.tsx"],"sourcesContent":["import type { ElementType, HTMLAttributes, ReactNode } from \"react\";\nimport styles from \"./Text.module.css\";\n\nexport type TextVariant =\n | \"large-title\"\n | \"title-1\"\n | \"title-2\"\n | \"title-3\"\n | \"title-4\"\n | \"heading\"\n | \"body\"\n | \"document\"\n | \"caption\"\n | \"caption-heading\"\n | \"monospace\"\n | \"numeric\";\n\nexport type TextColor =\n | \"default\"\n | \"dim\"\n | \"accent\"\n | \"destructive\"\n | \"success\"\n | \"warning\"\n | \"error\";\n\n/** Default HTML element rendered for each variant */\nconst defaultElement: Record<TextVariant, ElementType> = {\n \"large-title\": \"h1\",\n \"title-1\": \"h1\",\n \"title-2\": \"h2\",\n \"title-3\": \"h3\",\n \"title-4\": \"h4\",\n heading: \"h3\",\n body: \"p\",\n document: \"p\",\n caption: \"span\",\n \"caption-heading\": \"span\",\n monospace: \"code\",\n numeric: \"span\",\n};\n\nexport interface TextProps extends HTMLAttributes<HTMLElement> {\n /** Typography style. Mirrors Adwaita / GNOME HIG text styles. */\n variant?: TextVariant;\n /** Semantic color. */\n color?: TextColor;\n /** Override the rendered HTML element. */\n as?: ElementType;\n children?: ReactNode;\n}\n\n/**\n * Text component following GNOME Human Interface Guidelines typography styles.\n *\n * Variants map directly to Adwaita style classes:\n * `large-title`, `title-1`–`title-4`, `heading`, `body`, `document`,\n * `caption`, `caption-heading`, `monospace`, `numeric`.\n *\n * @see https://developer.gnome.org/hig/guidelines/typography.html\n * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/style-classes.html\n */\nexport function Text({\n variant = \"body\",\n color = \"default\",\n as,\n className,\n children,\n ...props\n}: TextProps) {\n const Tag = as ?? defaultElement[variant];\n\n const classes = [\n styles.text,\n styles[variant],\n styles[`color-${color}`],\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <Tag className={classes} {...props}>\n {children}\n </Tag>\n );\n}\n"],"mappings":"4EA2BA,IAAM,EAAmD,CACvD,cAAe,KACf,UAAW,KACX,UAAW,KACX,UAAW,KACX,UAAW,KACX,QAAS,KACT,KAAM,IACN,SAAU,IACV,QAAS,OACT,kBAAmB,OACnB,UAAW,OACX,QAAS,OACV,CAsBD,SAAgB,EAAK,CACnB,UAAU,OACV,QAAQ,UACR,KACA,YACA,WACA,GAAG,GACS,CAYZ,OACE,EAAA,EAAA,KAZU,GAAM,EAAe,GAY/B,CAAK,UAVS,CACd,EAAA,QAAO,KACP,EAAA,QAAO,GACP,EAAA,QAAO,SAAS,KAChB,EACD,CACE,OAAO,QAAQ,CACf,KAAK,IAAI,CAGe,GAAI,EAC1B,WACG,CAAA"}
1
+ {"version":3,"file":"Text.cjs","names":[],"sources":["../../../src/components/Text/Text.tsx"],"sourcesContent":["import type { ElementType, HTMLAttributes, ReactNode } from 'react';\n\nimport styles from './Text.module.css';\n\nexport type TextVariant =\n | 'large-title'\n | 'title-1'\n | 'title-2'\n | 'title-3'\n | 'title-4'\n | 'heading'\n | 'body'\n | 'document'\n | 'caption'\n | 'caption-heading'\n | 'monospace'\n | 'numeric';\n\nexport type TextColor =\n | 'default'\n | 'dim'\n | 'accent'\n | 'destructive'\n | 'success'\n | 'warning'\n | 'error';\n\n/** Default HTML element rendered for each variant */\nconst defaultElement: Record<TextVariant, ElementType> = {\n 'large-title': 'h1',\n 'title-1': 'h1',\n 'title-2': 'h2',\n 'title-3': 'h3',\n 'title-4': 'h4',\n heading: 'h3',\n body: 'p',\n document: 'p',\n caption: 'span',\n 'caption-heading': 'span',\n monospace: 'code',\n numeric: 'span',\n};\n\nexport interface TextProps extends HTMLAttributes<HTMLElement> {\n /** Typography style. Mirrors Adwaita / GNOME HIG text styles. */\n variant?: TextVariant;\n /** Semantic color. */\n color?: TextColor;\n /** Override the rendered HTML element. */\n as?: ElementType;\n children?: ReactNode;\n}\n\n/**\n * Text component following GNOME Human Interface Guidelines typography styles.\n *\n * Variants map directly to Adwaita style classes:\n * `large-title`, `title-1`–`title-4`, `heading`, `body`, `document`,\n * `caption`, `caption-heading`, `monospace`, `numeric`.\n *\n * @see https://developer.gnome.org/hig/guidelines/typography.html\n * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/style-classes.html\n */\nexport function Text({\n variant = 'body',\n color = 'default',\n as,\n className,\n children,\n ...props\n}: TextProps) {\n const Tag = as ?? defaultElement[variant];\n\n const classes = [styles.text, styles[variant], styles[`color-${color}`], className]\n .filter(Boolean)\n .join(' ');\n\n return (\n <Tag className={classes} {...props}>\n {children}\n </Tag>\n );\n}\n"],"mappings":"4EA4BA,IAAM,EAAmD,CACvD,cAAe,KACf,UAAW,KACX,UAAW,KACX,UAAW,KACX,UAAW,KACX,QAAS,KACT,KAAM,IACN,SAAU,IACV,QAAS,OACT,kBAAmB,OACnB,UAAW,OACX,QAAS,OACV,CAsBD,SAAgB,EAAK,CACnB,UAAU,OACV,QAAQ,UACR,KACA,YACA,WACA,GAAG,GACS,CAOZ,OACE,EAAA,EAAA,KAPU,GAAM,EAAe,GAO/B,CAAK,UALS,CAAC,EAAA,QAAO,KAAM,EAAA,QAAO,GAAU,EAAA,QAAO,SAAS,KAAU,EAAU,CAChF,OAAO,QAAQ,CACf,KAAK,IAAI,CAGe,GAAI,EAC1B,WACG,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import { ElementType, HTMLAttributes, ReactNode } from 'react';
2
- export type TextVariant = "large-title" | "title-1" | "title-2" | "title-3" | "title-4" | "heading" | "body" | "document" | "caption" | "caption-heading" | "monospace" | "numeric";
3
- export type TextColor = "default" | "dim" | "accent" | "destructive" | "success" | "warning" | "error";
2
+ export type TextVariant = 'large-title' | 'title-1' | 'title-2' | 'title-3' | 'title-4' | 'heading' | 'body' | 'document' | 'caption' | 'caption-heading' | 'monospace' | 'numeric';
3
+ export type TextColor = 'default' | 'dim' | 'accent' | 'destructive' | 'success' | 'warning' | 'error';
4
4
  export interface TextProps extends HTMLAttributes<HTMLElement> {
5
5
  /** Typography style. Mirrors Adwaita / GNOME HIG text styles. */
6
6
  variant?: TextVariant;
@@ -1 +1 @@
1
- {"version":3,"file":"Text.js","names":[],"sources":["../../../src/components/Text/Text.tsx"],"sourcesContent":["import type { ElementType, HTMLAttributes, ReactNode } from \"react\";\nimport styles from \"./Text.module.css\";\n\nexport type TextVariant =\n | \"large-title\"\n | \"title-1\"\n | \"title-2\"\n | \"title-3\"\n | \"title-4\"\n | \"heading\"\n | \"body\"\n | \"document\"\n | \"caption\"\n | \"caption-heading\"\n | \"monospace\"\n | \"numeric\";\n\nexport type TextColor =\n | \"default\"\n | \"dim\"\n | \"accent\"\n | \"destructive\"\n | \"success\"\n | \"warning\"\n | \"error\";\n\n/** Default HTML element rendered for each variant */\nconst defaultElement: Record<TextVariant, ElementType> = {\n \"large-title\": \"h1\",\n \"title-1\": \"h1\",\n \"title-2\": \"h2\",\n \"title-3\": \"h3\",\n \"title-4\": \"h4\",\n heading: \"h3\",\n body: \"p\",\n document: \"p\",\n caption: \"span\",\n \"caption-heading\": \"span\",\n monospace: \"code\",\n numeric: \"span\",\n};\n\nexport interface TextProps extends HTMLAttributes<HTMLElement> {\n /** Typography style. Mirrors Adwaita / GNOME HIG text styles. */\n variant?: TextVariant;\n /** Semantic color. */\n color?: TextColor;\n /** Override the rendered HTML element. */\n as?: ElementType;\n children?: ReactNode;\n}\n\n/**\n * Text component following GNOME Human Interface Guidelines typography styles.\n *\n * Variants map directly to Adwaita style classes:\n * `large-title`, `title-1`–`title-4`, `heading`, `body`, `document`,\n * `caption`, `caption-heading`, `monospace`, `numeric`.\n *\n * @see https://developer.gnome.org/hig/guidelines/typography.html\n * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/style-classes.html\n */\nexport function Text({\n variant = \"body\",\n color = \"default\",\n as,\n className,\n children,\n ...props\n}: TextProps) {\n const Tag = as ?? defaultElement[variant];\n\n const classes = [\n styles.text,\n styles[variant],\n styles[`color-${color}`],\n className,\n ]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <Tag className={classes} {...props}>\n {children}\n </Tag>\n );\n}\n"],"mappings":";;;AA2BA,IAAM,IAAmD;CACvD,eAAe;CACf,WAAW;CACX,WAAW;CACX,WAAW;CACX,WAAW;CACX,SAAS;CACT,MAAM;CACN,UAAU;CACV,SAAS;CACT,mBAAmB;CACnB,WAAW;CACX,SAAS;CACV;AAsBD,SAAgB,EAAK,EACnB,aAAU,QACV,WAAQ,WACR,OACA,cACA,aACA,GAAG,KACS;AAYZ,QACE,kBAZU,KAAM,EAAe,IAY/B;EAAK,WAVS;GACd,EAAO;GACP,EAAO;GACP,EAAO,SAAS;GAChB;GACD,CACE,OAAO,QAAQ,CACf,KAAK,IAAI;EAGe,GAAI;EAC1B;EACG,CAAA"}
1
+ {"version":3,"file":"Text.js","names":[],"sources":["../../../src/components/Text/Text.tsx"],"sourcesContent":["import type { ElementType, HTMLAttributes, ReactNode } from 'react';\n\nimport styles from './Text.module.css';\n\nexport type TextVariant =\n | 'large-title'\n | 'title-1'\n | 'title-2'\n | 'title-3'\n | 'title-4'\n | 'heading'\n | 'body'\n | 'document'\n | 'caption'\n | 'caption-heading'\n | 'monospace'\n | 'numeric';\n\nexport type TextColor =\n | 'default'\n | 'dim'\n | 'accent'\n | 'destructive'\n | 'success'\n | 'warning'\n | 'error';\n\n/** Default HTML element rendered for each variant */\nconst defaultElement: Record<TextVariant, ElementType> = {\n 'large-title': 'h1',\n 'title-1': 'h1',\n 'title-2': 'h2',\n 'title-3': 'h3',\n 'title-4': 'h4',\n heading: 'h3',\n body: 'p',\n document: 'p',\n caption: 'span',\n 'caption-heading': 'span',\n monospace: 'code',\n numeric: 'span',\n};\n\nexport interface TextProps extends HTMLAttributes<HTMLElement> {\n /** Typography style. Mirrors Adwaita / GNOME HIG text styles. */\n variant?: TextVariant;\n /** Semantic color. */\n color?: TextColor;\n /** Override the rendered HTML element. */\n as?: ElementType;\n children?: ReactNode;\n}\n\n/**\n * Text component following GNOME Human Interface Guidelines typography styles.\n *\n * Variants map directly to Adwaita style classes:\n * `large-title`, `title-1`–`title-4`, `heading`, `body`, `document`,\n * `caption`, `caption-heading`, `monospace`, `numeric`.\n *\n * @see https://developer.gnome.org/hig/guidelines/typography.html\n * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/style-classes.html\n */\nexport function Text({\n variant = 'body',\n color = 'default',\n as,\n className,\n children,\n ...props\n}: TextProps) {\n const Tag = as ?? defaultElement[variant];\n\n const classes = [styles.text, styles[variant], styles[`color-${color}`], className]\n .filter(Boolean)\n .join(' ');\n\n return (\n <Tag className={classes} {...props}>\n {children}\n </Tag>\n );\n}\n"],"mappings":";;;AA4BA,IAAM,IAAmD;CACvD,eAAe;CACf,WAAW;CACX,WAAW;CACX,WAAW;CACX,WAAW;CACX,SAAS;CACT,MAAM;CACN,UAAU;CACV,SAAS;CACT,mBAAmB;CACnB,WAAW;CACX,SAAS;CACV;AAsBD,SAAgB,EAAK,EACnB,aAAU,QACV,WAAQ,WACR,OACA,cACA,aACA,GAAG,KACS;AAOZ,QACE,kBAPU,KAAM,EAAe,IAO/B;EAAK,WALS;GAAC,EAAO;GAAM,EAAO;GAAU,EAAO,SAAS;GAAU;GAAU,CAChF,OAAO,QAAQ,CACf,KAAK,IAAI;EAGe,GAAI;EAC1B;EACG,CAAA"}
@@ -1,2 +1,2 @@
1
+ export type { TextColor, TextProps, TextVariant } from './Text';
1
2
  export { Text } from './Text';
2
- export type { TextProps, TextVariant, TextColor } from './Text';
@@ -1 +1 @@
1
- {"version":3,"file":"TextField.cjs","names":[],"sources":["../../../src/components/TextField/TextField.tsx"],"sourcesContent":["import { useId, type InputHTMLAttributes } from \"react\";\nimport styles from \"./TextField.module.css\";\n\nexport interface TextFieldProps\n extends Omit<InputHTMLAttributes<HTMLInputElement>, \"id\"> {\n /** Visible label rendered above the input. */\n label?: string;\n /** Helper text rendered below the input. Hidden when `error` is set. */\n helperText?: string;\n /**\n * Error message rendered below the input in place of `helperText`.\n * Also applies the error visual state to the input border.\n */\n error?: string;\n /** Explicit id. Auto-generated when omitted. */\n id?: string;\n}\n\n/**\n * Single-line text input with label, helper text, and error state.\n *\n * Follows the Adwaita `GtkEntry` / `.entry` style class.\n *\n * @see https://developer.gnome.org/hig/patterns/controls/text-fields.html\n */\nexport function TextField({\n label,\n helperText,\n error,\n id: idProp,\n className,\n disabled,\n ...props\n}: TextFieldProps) {\n const autoId = useId();\n const id = idProp ?? autoId;\n const helpId = `${id}-help`;\n\n return (\n <div className={[styles.wrapper, disabled ? styles.disabled : null].filter(Boolean).join(\" \")}>\n {label && (\n <label htmlFor={id} className={styles.label}>\n {label}\n </label>\n )}\n\n <input\n id={id}\n disabled={disabled}\n aria-describedby={error || helperText ? helpId : undefined}\n aria-invalid={error ? true : undefined}\n className={[\n styles.input,\n error ? styles.errorInput : null,\n className,\n ]\n .filter(Boolean)\n .join(\" \")}\n {...props}\n />\n\n {(error || helperText) && (\n <span\n id={helpId}\n className={[styles.hint, error ? styles.errorHint : null]\n .filter(Boolean)\n .join(\" \")}\n >\n {error ?? helperText}\n </span>\n )}\n </div>\n );\n}\n"],"mappings":"oGAyBA,SAAgB,EAAU,CACxB,QACA,aACA,QACA,GAAI,EACJ,YACA,WACA,GAAG,GACc,CACjB,IAAM,GAAA,EAAA,EAAA,QAAgB,CAChB,EAAK,GAAU,EACf,EAAS,GAAG,EAAG,OAErB,OACE,EAAA,EAAA,MAAC,MAAD,CAAK,UAAW,CAAC,EAAA,QAAO,QAAS,EAAW,EAAA,QAAO,SAAW,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAK,IAAI,UAA7F,CACG,IACC,EAAA,EAAA,KAAC,QAAD,CAAO,QAAS,EAAI,UAAW,EAAA,QAAO,eACnC,EACK,CAAA,EAGV,EAAA,EAAA,KAAC,QAAD,CACM,KACM,WACV,mBAAkB,GAAS,EAAa,EAAS,IAAA,GACjD,eAAc,EAAQ,GAAO,IAAA,GAC7B,UAAW,CACT,EAAA,QAAO,MACP,EAAQ,EAAA,QAAO,WAAa,KAC5B,EACD,CACE,OAAO,QAAQ,CACf,KAAK,IAAI,CACZ,GAAI,EACJ,CAAA,EAEA,GAAS,KACT,EAAA,EAAA,KAAC,OAAD,CACE,GAAI,EACJ,UAAW,CAAC,EAAA,QAAO,KAAM,EAAQ,EAAA,QAAO,UAAY,KAAK,CACtD,OAAO,QAAQ,CACf,KAAK,IAAI,UAEX,GAAS,EACL,CAAA,CAEL"}
1
+ {"version":3,"file":"TextField.cjs","names":[],"sources":["../../../src/components/TextField/TextField.tsx"],"sourcesContent":["import { type InputHTMLAttributes, useId } from 'react';\n\nimport styles from './TextField.module.css';\n\nexport interface TextFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'id'> {\n /** Visible label rendered above the input. */\n label?: string;\n /** Helper text rendered below the input. Hidden when `error` is set. */\n helperText?: string;\n /**\n * Error message rendered below the input in place of `helperText`.\n * Also applies the error visual state to the input border.\n */\n error?: string;\n /** Explicit id. Auto-generated when omitted. */\n id?: string;\n}\n\n/**\n * Single-line text input with label, helper text, and error state.\n *\n * Follows the Adwaita `GtkEntry` / `.entry` style class.\n *\n * @see https://developer.gnome.org/hig/patterns/controls/text-fields.html\n */\nexport function TextField({\n label,\n helperText,\n error,\n id: idProp,\n className,\n disabled,\n ...props\n}: TextFieldProps) {\n const autoId = useId();\n const id = idProp ?? autoId;\n const helpId = `${id}-help`;\n\n return (\n <div className={[styles.wrapper, disabled ? styles.disabled : null].filter(Boolean).join(' ')}>\n {label && (\n <label htmlFor={id} className={styles.label}>\n {label}\n </label>\n )}\n\n <input\n id={id}\n disabled={disabled}\n aria-describedby={error || helperText ? helpId : undefined}\n aria-invalid={error ? true : undefined}\n className={[styles.input, error ? styles.errorInput : null, className]\n .filter(Boolean)\n .join(' ')}\n {...props}\n />\n\n {(error || helperText) && (\n <span\n id={helpId}\n className={[styles.hint, error ? styles.errorHint : null].filter(Boolean).join(' ')}\n >\n {error ?? helperText}\n </span>\n )}\n </div>\n );\n}\n"],"mappings":"oGAyBA,SAAgB,EAAU,CACxB,QACA,aACA,QACA,GAAI,EACJ,YACA,WACA,GAAG,GACc,CACjB,IAAM,GAAA,EAAA,EAAA,QAAgB,CAChB,EAAK,GAAU,EACf,EAAS,GAAG,EAAG,OAErB,OACE,EAAA,EAAA,MAAC,MAAD,CAAK,UAAW,CAAC,EAAA,QAAO,QAAS,EAAW,EAAA,QAAO,SAAW,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAK,IAAI,UAA7F,CACG,IACC,EAAA,EAAA,KAAC,QAAD,CAAO,QAAS,EAAI,UAAW,EAAA,QAAO,eACnC,EACK,CAAA,EAGV,EAAA,EAAA,KAAC,QAAD,CACM,KACM,WACV,mBAAkB,GAAS,EAAa,EAAS,IAAA,GACjD,eAAc,EAAQ,GAAO,IAAA,GAC7B,UAAW,CAAC,EAAA,QAAO,MAAO,EAAQ,EAAA,QAAO,WAAa,KAAM,EAAU,CACnE,OAAO,QAAQ,CACf,KAAK,IAAI,CACZ,GAAI,EACJ,CAAA,EAEA,GAAS,KACT,EAAA,EAAA,KAAC,OAAD,CACE,GAAI,EACJ,UAAW,CAAC,EAAA,QAAO,KAAM,EAAQ,EAAA,QAAO,UAAY,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAK,IAAI,UAElF,GAAS,EACL,CAAA,CAEL"}
@@ -1,5 +1,5 @@
1
1
  import { InputHTMLAttributes } from 'react';
2
- export interface TextFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement>, "id"> {
2
+ export interface TextFieldProps extends Omit<InputHTMLAttributes<HTMLInputElement>, 'id'> {
3
3
  /** Visible label rendered above the input. */
4
4
  label?: string;
5
5
  /** Helper text rendered below the input. Hidden when `error` is set. */