@gnome-ui/react 1.45.1 → 1.46.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (576) hide show
  1. package/dist/components/AboutDialog/AboutDialog.cjs +1 -1
  2. package/dist/components/AboutDialog/AboutDialog.cjs.map +1 -1
  3. package/dist/components/AboutDialog/AboutDialog.d.ts +1 -1
  4. package/dist/components/AboutDialog/AboutDialog.js +106 -108
  5. package/dist/components/AboutDialog/AboutDialog.js.map +1 -1
  6. package/dist/components/AboutDialog/AboutDialog.module.css.cjs +1 -1
  7. package/dist/components/AboutDialog/AboutDialog.module.css.js +28 -29
  8. package/dist/components/AboutDialog.cjs +1 -1
  9. package/dist/components/ActionRow/ActionRow.cjs +1 -1
  10. package/dist/components/ActionRow/ActionRow.cjs.map +1 -1
  11. package/dist/components/ActionRow/ActionRow.d.ts +1 -1
  12. package/dist/components/ActionRow/ActionRow.js +2 -2
  13. package/dist/components/ActionRow/ActionRow.js.map +1 -1
  14. package/dist/components/ActionRow.cjs +1 -1
  15. package/dist/components/Avatar/Avatar.cjs +1 -1
  16. package/dist/components/Avatar/Avatar.cjs.map +1 -1
  17. package/dist/components/Avatar/Avatar.d.ts +1 -1
  18. package/dist/components/Avatar/Avatar.js +2 -2
  19. package/dist/components/Avatar/Avatar.js.map +1 -1
  20. package/dist/components/Avatar.cjs +1 -1
  21. package/dist/components/AvatarRotator/AvatarRotator.cjs +1 -1
  22. package/dist/components/AvatarRotator/AvatarRotator.cjs.map +1 -1
  23. package/dist/components/AvatarRotator/AvatarRotator.d.ts +1 -1
  24. package/dist/components/AvatarRotator/AvatarRotator.js +2 -2
  25. package/dist/components/AvatarRotator/AvatarRotator.js.map +1 -1
  26. package/dist/components/AvatarRotator.cjs +1 -1
  27. package/dist/components/Badge/Badge.cjs +1 -1
  28. package/dist/components/Badge/Badge.cjs.map +1 -1
  29. package/dist/components/Badge/Badge.d.ts +1 -1
  30. package/dist/components/Badge/Badge.js +2 -2
  31. package/dist/components/Badge/Badge.js.map +1 -1
  32. package/dist/components/Badge.cjs +1 -1
  33. package/dist/components/Banner/Banner.cjs +1 -1
  34. package/dist/components/Banner/Banner.cjs.map +1 -1
  35. package/dist/components/Banner/Banner.d.ts +1 -1
  36. package/dist/components/Banner/Banner.js +34 -36
  37. package/dist/components/Banner/Banner.js.map +1 -1
  38. package/dist/components/Banner/Banner.module.css.cjs +1 -1
  39. package/dist/components/Banner/Banner.module.css.js +11 -12
  40. package/dist/components/Banner.cjs +1 -1
  41. package/dist/components/Bin/Bin.cjs +1 -1
  42. package/dist/components/Bin/Bin.cjs.map +1 -1
  43. package/dist/components/Bin/Bin.d.ts +1 -1
  44. package/dist/components/Bin/Bin.js +4 -6
  45. package/dist/components/Bin/Bin.js.map +1 -1
  46. package/dist/components/Bin.cjs +1 -1
  47. package/dist/components/Blockquote/Blockquote.cjs +1 -1
  48. package/dist/components/Blockquote/Blockquote.cjs.map +1 -1
  49. package/dist/components/Blockquote/Blockquote.d.ts +1 -1
  50. package/dist/components/Blockquote/Blockquote.js +24 -26
  51. package/dist/components/Blockquote/Blockquote.js.map +1 -1
  52. package/dist/components/Blockquote.cjs +1 -1
  53. package/dist/components/BottomSheet/BottomSheet.cjs +1 -1
  54. package/dist/components/BottomSheet/BottomSheet.cjs.map +1 -1
  55. package/dist/components/BottomSheet/BottomSheet.d.ts +1 -1
  56. package/dist/components/BottomSheet/BottomSheet.js +37 -38
  57. package/dist/components/BottomSheet/BottomSheet.js.map +1 -1
  58. package/dist/components/BottomSheet/BottomSheet.module.css.cjs +1 -1
  59. package/dist/components/BottomSheet/BottomSheet.module.css.js +8 -9
  60. package/dist/components/BottomSheet.cjs +1 -1
  61. package/dist/components/Box/Box.cjs +1 -1
  62. package/dist/components/Box/Box.cjs.map +1 -1
  63. package/dist/components/Box/Box.d.ts +1 -1
  64. package/dist/components/Box/Box.js +2 -2
  65. package/dist/components/Box/Box.js.map +1 -1
  66. package/dist/components/Box.cjs +1 -1
  67. package/dist/components/BoxedList/BoxedList.cjs +1 -1
  68. package/dist/components/BoxedList/BoxedList.cjs.map +1 -1
  69. package/dist/components/BoxedList/BoxedList.d.ts +1 -1
  70. package/dist/components/BoxedList/BoxedList.js +2 -2
  71. package/dist/components/BoxedList/BoxedList.js.map +1 -1
  72. package/dist/components/BoxedList.cjs +1 -1
  73. package/dist/components/BreakpointBin/BreakpointBin.cjs +1 -1
  74. package/dist/components/BreakpointBin/BreakpointBin.cjs.map +1 -1
  75. package/dist/components/BreakpointBin/BreakpointBin.d.ts +1 -1
  76. package/dist/components/BreakpointBin/BreakpointBin.js +2 -2
  77. package/dist/components/BreakpointBin/BreakpointBin.js.map +1 -1
  78. package/dist/components/BreakpointBin.cjs +1 -1
  79. package/dist/components/Button/Button.cjs +1 -1
  80. package/dist/components/Button/Button.cjs.map +1 -1
  81. package/dist/components/Button/Button.js.map +1 -1
  82. package/dist/components/Button.cjs +1 -1
  83. package/dist/components/ButtonContent/ButtonContent.cjs +1 -1
  84. package/dist/components/ButtonContent/ButtonContent.cjs.map +1 -1
  85. package/dist/components/ButtonContent/ButtonContent.d.ts +1 -1
  86. package/dist/components/ButtonContent/ButtonContent.js +24 -26
  87. package/dist/components/ButtonContent/ButtonContent.js.map +1 -1
  88. package/dist/components/ButtonContent.cjs +1 -1
  89. package/dist/components/ButtonRow/ButtonRow.cjs +1 -1
  90. package/dist/components/ButtonRow/ButtonRow.cjs.map +1 -1
  91. package/dist/components/ButtonRow/ButtonRow.d.ts +1 -1
  92. package/dist/components/ButtonRow/ButtonRow.js +22 -24
  93. package/dist/components/ButtonRow/ButtonRow.js.map +1 -1
  94. package/dist/components/ButtonRow.cjs +1 -1
  95. package/dist/components/Card/Card.cjs +1 -1
  96. package/dist/components/Card/Card.cjs.map +1 -1
  97. package/dist/components/Card/Card.d.ts +1 -1
  98. package/dist/components/Card/Card.js +10 -12
  99. package/dist/components/Card/Card.js.map +1 -1
  100. package/dist/components/Card/Card.module.css.cjs +1 -1
  101. package/dist/components/Card/Card.module.css.js +4 -5
  102. package/dist/components/Card.cjs +1 -1
  103. package/dist/components/Carousel/Carousel.cjs +1 -1
  104. package/dist/components/Carousel/Carousel.cjs.map +1 -1
  105. package/dist/components/Carousel/Carousel.d.ts +3 -3
  106. package/dist/components/Carousel/Carousel.js +28 -34
  107. package/dist/components/Carousel/Carousel.js.map +1 -1
  108. package/dist/components/Carousel.cjs +1 -1
  109. package/dist/components/CheckRow/CheckRow.cjs +1 -1
  110. package/dist/components/CheckRow/CheckRow.cjs.map +1 -1
  111. package/dist/components/CheckRow/CheckRow.d.ts +1 -1
  112. package/dist/components/CheckRow/CheckRow.js +7 -7
  113. package/dist/components/CheckRow/CheckRow.js.map +1 -1
  114. package/dist/components/CheckRow.cjs +1 -1
  115. package/dist/components/Checkbox/Checkbox.cjs +1 -1
  116. package/dist/components/Checkbox/Checkbox.cjs.map +1 -1
  117. package/dist/components/Checkbox/Checkbox.d.ts +1 -1
  118. package/dist/components/Checkbox/Checkbox.js +2 -2
  119. package/dist/components/Checkbox/Checkbox.js.map +1 -1
  120. package/dist/components/Checkbox.cjs +1 -1
  121. package/dist/components/Chip/Chip.cjs +1 -1
  122. package/dist/components/Chip/Chip.cjs.map +1 -1
  123. package/dist/components/Chip/Chip.d.ts +1 -1
  124. package/dist/components/Chip/Chip.js +2 -2
  125. package/dist/components/Chip/Chip.js.map +1 -1
  126. package/dist/components/Chip.cjs +1 -1
  127. package/dist/components/Clamp/Clamp.cjs +1 -1
  128. package/dist/components/Clamp/Clamp.cjs.map +1 -1
  129. package/dist/components/Clamp/Clamp.d.ts +1 -1
  130. package/dist/components/Clamp/Clamp.js +9 -11
  131. package/dist/components/Clamp/Clamp.js.map +1 -1
  132. package/dist/components/Clamp.cjs +1 -1
  133. package/dist/components/ColorPicker/ColorPicker.cjs +1 -1
  134. package/dist/components/ColorPicker/ColorPicker.cjs.map +1 -1
  135. package/dist/components/ColorPicker/ColorPicker.d.ts +2 -2
  136. package/dist/components/ColorPicker/ColorPicker.js +33 -37
  137. package/dist/components/ColorPicker/ColorPicker.js.map +1 -1
  138. package/dist/components/ColorPicker/ColorPicker.module.css.cjs +1 -1
  139. package/dist/components/ColorPicker/ColorPicker.module.css.js +9 -10
  140. package/dist/components/ColorPicker.cjs +1 -1
  141. package/dist/components/ColumnView/ColumnView.cjs +1 -1
  142. package/dist/components/ColumnView/ColumnView.cjs.map +1 -1
  143. package/dist/components/ColumnView/ColumnView.d.ts +1 -1
  144. package/dist/components/ColumnView/ColumnView.js +24 -28
  145. package/dist/components/ColumnView/ColumnView.js.map +1 -1
  146. package/dist/components/ColumnView.cjs +1 -1
  147. package/dist/components/ComboRow/ComboRow.cjs +1 -1
  148. package/dist/components/ComboRow/ComboRow.cjs.map +1 -1
  149. package/dist/components/ComboRow/ComboRow.d.ts +1 -1
  150. package/dist/components/ComboRow/ComboRow.js +2 -2
  151. package/dist/components/ComboRow/ComboRow.js.map +1 -1
  152. package/dist/components/ComboRow/ComboRow.module.css.cjs +1 -1
  153. package/dist/components/ComboRow/ComboRow.module.css.js +24 -25
  154. package/dist/components/ComboRow.cjs +1 -1
  155. package/dist/components/ContributionGraph/ContributionGraph.cjs +1 -1
  156. package/dist/components/ContributionGraph/ContributionGraph.cjs.map +1 -1
  157. package/dist/components/ContributionGraph/ContributionGraph.d.ts +1 -1
  158. package/dist/components/ContributionGraph/ContributionGraph.js +2 -2
  159. package/dist/components/ContributionGraph/ContributionGraph.js.map +1 -1
  160. package/dist/components/ContributionGraph.cjs +1 -1
  161. package/dist/components/CountDownTimer/CountDownTimer.cjs +1 -1
  162. package/dist/components/CountDownTimer/CountDownTimer.cjs.map +1 -1
  163. package/dist/components/CountDownTimer/CountDownTimer.d.ts +1 -1
  164. package/dist/components/CountDownTimer/CountDownTimer.js +2 -2
  165. package/dist/components/CountDownTimer/CountDownTimer.js.map +1 -1
  166. package/dist/components/CountDownTimer.cjs +1 -1
  167. package/dist/components/Dialog/Dialog.cjs +1 -1
  168. package/dist/components/Dialog/Dialog.cjs.map +1 -1
  169. package/dist/components/Dialog/Dialog.d.ts +1 -1
  170. package/dist/components/Dialog/Dialog.js +51 -52
  171. package/dist/components/Dialog/Dialog.js.map +1 -1
  172. package/dist/components/Dialog/Dialog.module.css.cjs +1 -1
  173. package/dist/components/Dialog/Dialog.module.css.js +8 -9
  174. package/dist/components/Dialog/dialogUtils.cjs +1 -1
  175. package/dist/components/Dialog/dialogUtils.cjs.map +1 -1
  176. package/dist/components/Dialog/dialogUtils.d.ts +6 -0
  177. package/dist/components/Dialog/dialogUtils.js +11 -2
  178. package/dist/components/Dialog/dialogUtils.js.map +1 -1
  179. package/dist/components/Dialog.cjs +1 -1
  180. package/dist/components/Drawer/Drawer.cjs +1 -1
  181. package/dist/components/Drawer/Drawer.cjs.map +1 -1
  182. package/dist/components/Drawer/Drawer.d.ts +1 -1
  183. package/dist/components/Drawer/Drawer.js +2 -2
  184. package/dist/components/Drawer/Drawer.js.map +1 -1
  185. package/dist/components/Drawer/Drawer.module.css.cjs +1 -1
  186. package/dist/components/Drawer/Drawer.module.css.js +11 -12
  187. package/dist/components/Drawer.cjs +1 -1
  188. package/dist/components/Dropdown/Dropdown.cjs +1 -1
  189. package/dist/components/Dropdown/Dropdown.cjs.map +1 -1
  190. package/dist/components/Dropdown/Dropdown.d.ts +1 -1
  191. package/dist/components/Dropdown/Dropdown.js +89 -85
  192. package/dist/components/Dropdown/Dropdown.js.map +1 -1
  193. package/dist/components/Dropdown/Dropdown.module.css.cjs +1 -1
  194. package/dist/components/Dropdown/Dropdown.module.css.js +20 -21
  195. package/dist/components/Dropdown.cjs +1 -1
  196. package/dist/components/EntryRow/EntryRow.cjs +1 -1
  197. package/dist/components/EntryRow/EntryRow.cjs.map +1 -1
  198. package/dist/components/EntryRow/EntryRow.d.ts +1 -1
  199. package/dist/components/EntryRow/EntryRow.js +2 -2
  200. package/dist/components/EntryRow/EntryRow.js.map +1 -1
  201. package/dist/components/EntryRow.cjs +1 -1
  202. package/dist/components/ExpanderRow/ExpanderRow.cjs +1 -1
  203. package/dist/components/ExpanderRow/ExpanderRow.cjs.map +1 -1
  204. package/dist/components/ExpanderRow/ExpanderRow.d.ts +1 -1
  205. package/dist/components/ExpanderRow/ExpanderRow.js +2 -2
  206. package/dist/components/ExpanderRow/ExpanderRow.js.map +1 -1
  207. package/dist/components/ExpanderRow.cjs +1 -1
  208. package/dist/components/Footer/Footer.cjs +1 -1
  209. package/dist/components/Footer/Footer.cjs.map +1 -1
  210. package/dist/components/Footer/Footer.d.ts +1 -1
  211. package/dist/components/Footer/Footer.js +22 -24
  212. package/dist/components/Footer/Footer.js.map +1 -1
  213. package/dist/components/Footer.cjs +1 -1
  214. package/dist/components/Frame/Frame.cjs +1 -1
  215. package/dist/components/Frame/Frame.cjs.map +1 -1
  216. package/dist/components/Frame/Frame.d.ts +1 -1
  217. package/dist/components/Frame/Frame.js +5 -7
  218. package/dist/components/Frame/Frame.js.map +1 -1
  219. package/dist/components/Frame.cjs +1 -1
  220. package/dist/components/GnomeProvider/GnomeContext.cjs +1 -1
  221. package/dist/components/GnomeProvider/GnomeContext.cjs.map +1 -1
  222. package/dist/components/GnomeProvider/GnomeContext.js.map +1 -1
  223. package/dist/components/GnomeProvider/GnomeProvider.cjs +1 -1
  224. package/dist/components/GnomeProvider/GnomeProvider.cjs.map +1 -1
  225. package/dist/components/GnomeProvider/GnomeProvider.d.ts +1 -1
  226. package/dist/components/GnomeProvider/GnomeProvider.js +2 -2
  227. package/dist/components/GnomeProvider/GnomeProvider.js.map +1 -1
  228. package/dist/components/HeaderBar/HeaderBar.cjs +1 -1
  229. package/dist/components/HeaderBar/HeaderBar.cjs.map +1 -1
  230. package/dist/components/HeaderBar/HeaderBar.d.ts +1 -1
  231. package/dist/components/HeaderBar/HeaderBar.js +26 -28
  232. package/dist/components/HeaderBar/HeaderBar.js.map +1 -1
  233. package/dist/components/HeaderBar.cjs +1 -1
  234. package/dist/components/Icon/Icon.cjs +1 -1
  235. package/dist/components/Icon/Icon.cjs.map +1 -1
  236. package/dist/components/Icon/Icon.d.ts +1 -1
  237. package/dist/components/Icon/Icon.js +2 -2
  238. package/dist/components/Icon/Icon.js.map +1 -1
  239. package/dist/components/Icon.cjs +1 -1
  240. package/dist/components/IconButton/IconButton.cjs +1 -1
  241. package/dist/components/IconButton/IconButton.cjs.map +1 -1
  242. package/dist/components/IconButton/IconButton.js +4 -4
  243. package/dist/components/IconButton/IconButton.js.map +1 -1
  244. package/dist/components/IconButton.cjs +1 -1
  245. package/dist/components/InlineViewSwitcher/InlineViewSwitcher.cjs +1 -1
  246. package/dist/components/InlineViewSwitcher/InlineViewSwitcher.cjs.map +1 -1
  247. package/dist/components/InlineViewSwitcher/InlineViewSwitcher.d.ts +1 -1
  248. package/dist/components/InlineViewSwitcher/InlineViewSwitcher.js +2 -2
  249. package/dist/components/InlineViewSwitcher/InlineViewSwitcher.js.map +1 -1
  250. package/dist/components/InlineViewSwitcher/InlineViewSwitcherItem.cjs +1 -1
  251. package/dist/components/InlineViewSwitcher/InlineViewSwitcherItem.cjs.map +1 -1
  252. package/dist/components/InlineViewSwitcher/InlineViewSwitcherItem.d.ts +1 -1
  253. package/dist/components/InlineViewSwitcher/InlineViewSwitcherItem.js +2 -2
  254. package/dist/components/InlineViewSwitcher/InlineViewSwitcherItem.js.map +1 -1
  255. package/dist/components/InlineViewSwitcher.cjs +1 -1
  256. package/dist/components/Link/Link.cjs +1 -1
  257. package/dist/components/Link/Link.cjs.map +1 -1
  258. package/dist/components/Link/Link.d.ts +1 -1
  259. package/dist/components/Link/Link.js +2 -2
  260. package/dist/components/Link/Link.js.map +1 -1
  261. package/dist/components/Link.cjs +1 -1
  262. package/dist/components/LinkedGroup/LinkedGroup.cjs +1 -1
  263. package/dist/components/LinkedGroup/LinkedGroup.cjs.map +1 -1
  264. package/dist/components/LinkedGroup/LinkedGroup.d.ts +1 -1
  265. package/dist/components/LinkedGroup/LinkedGroup.js +9 -11
  266. package/dist/components/LinkedGroup/LinkedGroup.js.map +1 -1
  267. package/dist/components/LinkedGroup.cjs +1 -1
  268. package/dist/components/NavigationSplitView/NavigationSplitView.cjs +1 -1
  269. package/dist/components/NavigationSplitView/NavigationSplitView.cjs.map +1 -1
  270. package/dist/components/NavigationSplitView/NavigationSplitView.d.ts +1 -1
  271. package/dist/components/NavigationSplitView/NavigationSplitView.js +2 -2
  272. package/dist/components/NavigationSplitView/NavigationSplitView.js.map +1 -1
  273. package/dist/components/NavigationSplitView.cjs +1 -1
  274. package/dist/components/NavigationView/NavigationView.cjs +1 -1
  275. package/dist/components/NavigationView/NavigationView.cjs.map +1 -1
  276. package/dist/components/NavigationView/NavigationView.d.ts +2 -2
  277. package/dist/components/NavigationView/NavigationView.js +3 -4
  278. package/dist/components/NavigationView/NavigationView.js.map +1 -1
  279. package/dist/components/NavigationView/NavigationView.module.css.cjs +1 -1
  280. package/dist/components/NavigationView/NavigationView.module.css.js +9 -10
  281. package/dist/components/NavigationView.cjs +1 -1
  282. package/dist/components/OverlaySplitView/OverlaySplitView.cjs +1 -1
  283. package/dist/components/OverlaySplitView/OverlaySplitView.cjs.map +1 -1
  284. package/dist/components/OverlaySplitView/OverlaySplitView.d.ts +1 -1
  285. package/dist/components/OverlaySplitView/OverlaySplitView.js +2 -2
  286. package/dist/components/OverlaySplitView/OverlaySplitView.js.map +1 -1
  287. package/dist/components/OverlaySplitView.cjs +1 -1
  288. package/dist/components/PasswordEntryRow/PasswordEntryRow.cjs +1 -1
  289. package/dist/components/PasswordEntryRow/PasswordEntryRow.cjs.map +1 -1
  290. package/dist/components/PasswordEntryRow/PasswordEntryRow.d.ts +1 -1
  291. package/dist/components/PasswordEntryRow/PasswordEntryRow.js +11 -10
  292. package/dist/components/PasswordEntryRow/PasswordEntryRow.js.map +1 -1
  293. package/dist/components/PasswordEntryRow.cjs +1 -1
  294. package/dist/components/PathBar/PathBar.cjs +1 -1
  295. package/dist/components/PathBar/PathBar.cjs.map +1 -1
  296. package/dist/components/PathBar/PathBar.d.ts +1 -1
  297. package/dist/components/PathBar/PathBar.js +48 -50
  298. package/dist/components/PathBar/PathBar.js.map +1 -1
  299. package/dist/components/PathBar.cjs +1 -1
  300. package/dist/components/Popover/Popover.cjs +1 -1
  301. package/dist/components/Popover/Popover.cjs.map +1 -1
  302. package/dist/components/Popover/Popover.d.ts +1 -1
  303. package/dist/components/Popover/Popover.js +5 -5
  304. package/dist/components/Popover/Popover.js.map +1 -1
  305. package/dist/components/Popover.cjs +1 -1
  306. package/dist/components/PreferencesDialog/PreferencesDialog.cjs +1 -1
  307. package/dist/components/PreferencesDialog/PreferencesDialog.cjs.map +1 -1
  308. package/dist/components/PreferencesDialog/PreferencesDialog.d.ts +1 -1
  309. package/dist/components/PreferencesDialog/PreferencesDialog.js +2 -2
  310. package/dist/components/PreferencesDialog/PreferencesDialog.js.map +1 -1
  311. package/dist/components/PreferencesDialog/PreferencesDialog.module.css.cjs +1 -1
  312. package/dist/components/PreferencesDialog/PreferencesDialog.module.css.js +18 -19
  313. package/dist/components/PreferencesDialog.cjs +1 -1
  314. package/dist/components/PreferencesGroup/PreferencesGroup.cjs +1 -1
  315. package/dist/components/PreferencesGroup/PreferencesGroup.cjs.map +1 -1
  316. package/dist/components/PreferencesGroup/PreferencesGroup.d.ts +1 -1
  317. package/dist/components/PreferencesGroup/PreferencesGroup.js +2 -2
  318. package/dist/components/PreferencesGroup/PreferencesGroup.js.map +1 -1
  319. package/dist/components/PreferencesGroup.cjs +1 -1
  320. package/dist/components/PreferencesPage/PreferencesPage.cjs +1 -1
  321. package/dist/components/PreferencesPage/PreferencesPage.cjs.map +1 -1
  322. package/dist/components/PreferencesPage/PreferencesPage.d.ts +1 -1
  323. package/dist/components/PreferencesPage/PreferencesPage.js +9 -11
  324. package/dist/components/PreferencesPage/PreferencesPage.js.map +1 -1
  325. package/dist/components/PreferencesPage.cjs +1 -1
  326. package/dist/components/ProgressBar/ProgressBar.cjs +1 -1
  327. package/dist/components/ProgressBar/ProgressBar.cjs.map +1 -1
  328. package/dist/components/ProgressBar/ProgressBar.d.ts +1 -1
  329. package/dist/components/ProgressBar/ProgressBar.js +2 -2
  330. package/dist/components/ProgressBar/ProgressBar.js.map +1 -1
  331. package/dist/components/ProgressBar.cjs +1 -1
  332. package/dist/components/RadioButton/RadioButton.cjs +1 -1
  333. package/dist/components/RadioButton/RadioButton.cjs.map +1 -1
  334. package/dist/components/RadioButton/RadioButton.d.ts +1 -1
  335. package/dist/components/RadioButton/RadioButton.js +5 -7
  336. package/dist/components/RadioButton/RadioButton.js.map +1 -1
  337. package/dist/components/RadioButton.cjs +1 -1
  338. package/dist/components/SearchBar/SearchBar.cjs +1 -1
  339. package/dist/components/SearchBar/SearchBar.cjs.map +1 -1
  340. package/dist/components/SearchBar/SearchBar.d.ts +1 -1
  341. package/dist/components/SearchBar/SearchBar.js +2 -2
  342. package/dist/components/SearchBar/SearchBar.js.map +1 -1
  343. package/dist/components/SearchBar.cjs +1 -1
  344. package/dist/components/SegmentedBar/SegmentedBar.cjs +1 -1
  345. package/dist/components/SegmentedBar/SegmentedBar.cjs.map +1 -1
  346. package/dist/components/SegmentedBar/SegmentedBar.js.map +1 -1
  347. package/dist/components/SegmentedBar.cjs +1 -1
  348. package/dist/components/Separator/Separator.cjs +1 -1
  349. package/dist/components/Separator/Separator.cjs.map +1 -1
  350. package/dist/components/Separator/Separator.d.ts +1 -1
  351. package/dist/components/Separator/Separator.js +2 -2
  352. package/dist/components/Separator/Separator.js.map +1 -1
  353. package/dist/components/Separator.cjs +1 -1
  354. package/dist/components/ShortcutLabel/ShortcutLabel.cjs +1 -1
  355. package/dist/components/ShortcutLabel/ShortcutLabel.cjs.map +1 -1
  356. package/dist/components/ShortcutLabel/ShortcutLabel.d.ts +1 -1
  357. package/dist/components/ShortcutLabel/ShortcutLabel.js +2 -3
  358. package/dist/components/ShortcutLabel/ShortcutLabel.js.map +1 -1
  359. package/dist/components/ShortcutLabel.cjs +1 -1
  360. package/dist/components/ShortcutsDialog/ShortcutsDialog.cjs +1 -1
  361. package/dist/components/ShortcutsDialog/ShortcutsDialog.cjs.map +1 -1
  362. package/dist/components/ShortcutsDialog/ShortcutsDialog.d.ts +1 -1
  363. package/dist/components/ShortcutsDialog/ShortcutsDialog.js +75 -76
  364. package/dist/components/ShortcutsDialog/ShortcutsDialog.js.map +1 -1
  365. package/dist/components/ShortcutsDialog/ShortcutsDialog.module.css.cjs +1 -1
  366. package/dist/components/ShortcutsDialog/ShortcutsDialog.module.css.js +21 -22
  367. package/dist/components/ShortcutsDialog.cjs +1 -1
  368. package/dist/components/Sidebar/Sidebar.cjs +1 -1
  369. package/dist/components/Sidebar/Sidebar.cjs.map +1 -1
  370. package/dist/components/Sidebar/Sidebar.d.ts +1 -1
  371. package/dist/components/Sidebar/Sidebar.js +2 -3
  372. package/dist/components/Sidebar/Sidebar.js.map +1 -1
  373. package/dist/components/Sidebar/Sidebar.module.css.cjs +1 -1
  374. package/dist/components/Sidebar/Sidebar.module.css.js +33 -34
  375. package/dist/components/Sidebar/SidebarItem.cjs +1 -1
  376. package/dist/components/Sidebar/SidebarItem.cjs.map +1 -1
  377. package/dist/components/Sidebar/SidebarItem.d.ts +1 -1
  378. package/dist/components/Sidebar/SidebarItem.js +16 -16
  379. package/dist/components/Sidebar/SidebarItem.js.map +1 -1
  380. package/dist/components/Sidebar/SidebarSection.cjs +1 -1
  381. package/dist/components/Sidebar/SidebarSection.cjs.map +1 -1
  382. package/dist/components/Sidebar/SidebarSection.js.map +1 -1
  383. package/dist/components/Sidebar.cjs +1 -1
  384. package/dist/components/Skeleton/Skeleton.cjs +1 -1
  385. package/dist/components/Skeleton/Skeleton.cjs.map +1 -1
  386. package/dist/components/Skeleton/Skeleton.d.ts +1 -1
  387. package/dist/components/Skeleton/Skeleton.js +9 -10
  388. package/dist/components/Skeleton/Skeleton.js.map +1 -1
  389. package/dist/components/Skeleton.cjs +1 -1
  390. package/dist/components/Slider/Slider.cjs +1 -1
  391. package/dist/components/Slider/Slider.cjs.map +1 -1
  392. package/dist/components/Slider/Slider.d.ts +1 -1
  393. package/dist/components/Slider/Slider.js +2 -2
  394. package/dist/components/Slider/Slider.js.map +1 -1
  395. package/dist/components/Slider.cjs +1 -1
  396. package/dist/components/SpinButton/SpinButton.cjs +1 -1
  397. package/dist/components/SpinButton/SpinButton.cjs.map +1 -1
  398. package/dist/components/SpinButton/SpinButton.d.ts +1 -1
  399. package/dist/components/SpinButton/SpinButton.js +2 -2
  400. package/dist/components/SpinButton/SpinButton.js.map +1 -1
  401. package/dist/components/SpinButton.cjs +1 -1
  402. package/dist/components/SpinRow/SpinRow.cjs +1 -1
  403. package/dist/components/SpinRow/SpinRow.cjs.map +1 -1
  404. package/dist/components/SpinRow/SpinRow.d.ts +1 -1
  405. package/dist/components/SpinRow/SpinRow.js +2 -2
  406. package/dist/components/SpinRow/SpinRow.js.map +1 -1
  407. package/dist/components/SpinRow.cjs +1 -1
  408. package/dist/components/Spinner/Spinner.cjs +1 -1
  409. package/dist/components/Spinner/Spinner.cjs.map +1 -1
  410. package/dist/components/Spinner/Spinner.d.ts +1 -1
  411. package/dist/components/Spinner/Spinner.js +2 -2
  412. package/dist/components/Spinner/Spinner.js.map +1 -1
  413. package/dist/components/Spinner.cjs +1 -1
  414. package/dist/components/SplitButton/SplitButton.cjs +1 -1
  415. package/dist/components/SplitButton/SplitButton.cjs.map +1 -1
  416. package/dist/components/SplitButton/SplitButton.d.ts +1 -1
  417. package/dist/components/SplitButton/SplitButton.js +2 -2
  418. package/dist/components/SplitButton/SplitButton.js.map +1 -1
  419. package/dist/components/SplitButton.cjs +1 -1
  420. package/dist/components/StatusBadge/StatusBadge.cjs +1 -1
  421. package/dist/components/StatusBadge/StatusBadge.cjs.map +1 -1
  422. package/dist/components/StatusBadge/StatusBadge.d.ts +1 -1
  423. package/dist/components/StatusBadge/StatusBadge.js +9 -11
  424. package/dist/components/StatusBadge/StatusBadge.js.map +1 -1
  425. package/dist/components/StatusBadge.cjs +1 -1
  426. package/dist/components/StatusPage/StatusPage.cjs +1 -1
  427. package/dist/components/StatusPage/StatusPage.cjs.map +1 -1
  428. package/dist/components/StatusPage/StatusPage.d.ts +1 -1
  429. package/dist/components/StatusPage/StatusPage.js +2 -2
  430. package/dist/components/StatusPage/StatusPage.js.map +1 -1
  431. package/dist/components/StatusPage.cjs +1 -1
  432. package/dist/components/Switch/Switch.cjs +1 -1
  433. package/dist/components/Switch/Switch.cjs.map +1 -1
  434. package/dist/components/Switch/Switch.d.ts +1 -1
  435. package/dist/components/Switch/Switch.js +6 -8
  436. package/dist/components/Switch/Switch.js.map +1 -1
  437. package/dist/components/Switch.cjs +1 -1
  438. package/dist/components/SwitchRow/SwitchRow.cjs +1 -1
  439. package/dist/components/SwitchRow/SwitchRow.cjs.map +1 -1
  440. package/dist/components/SwitchRow/SwitchRow.d.ts +1 -1
  441. package/dist/components/SwitchRow/SwitchRow.js +7 -7
  442. package/dist/components/SwitchRow/SwitchRow.js.map +1 -1
  443. package/dist/components/SwitchRow.cjs +1 -1
  444. package/dist/components/Tabs/TabBar.cjs +1 -1
  445. package/dist/components/Tabs/TabBar.cjs.map +1 -1
  446. package/dist/components/Tabs/TabBar.d.ts +1 -1
  447. package/dist/components/Tabs/TabBar.js +2 -2
  448. package/dist/components/Tabs/TabBar.js.map +1 -1
  449. package/dist/components/Tabs/TabItem.cjs +1 -1
  450. package/dist/components/Tabs/TabItem.cjs.map +1 -1
  451. package/dist/components/Tabs/TabItem.js.map +1 -1
  452. package/dist/components/Tabs/TabPanel.cjs +1 -1
  453. package/dist/components/Tabs/TabPanel.cjs.map +1 -1
  454. package/dist/components/Tabs/TabPanel.d.ts +1 -1
  455. package/dist/components/Tabs/TabPanel.js +8 -10
  456. package/dist/components/Tabs/TabPanel.js.map +1 -1
  457. package/dist/components/Tabs.cjs +1 -1
  458. package/dist/components/TerminalView/TerminalView.cjs +1 -1
  459. package/dist/components/TerminalView/TerminalView.cjs.map +1 -1
  460. package/dist/components/TerminalView/TerminalView.d.ts +1 -1
  461. package/dist/components/TerminalView/TerminalView.js +2 -2
  462. package/dist/components/TerminalView/TerminalView.js.map +1 -1
  463. package/dist/components/TerminalView.cjs +1 -1
  464. package/dist/components/Text/Text.cjs +1 -1
  465. package/dist/components/Text/Text.cjs.map +1 -1
  466. package/dist/components/Text/Text.d.ts +1 -1
  467. package/dist/components/Text/Text.js +10 -13
  468. package/dist/components/Text/Text.js.map +1 -1
  469. package/dist/components/Text/Text.module.css.cjs +1 -1
  470. package/dist/components/Text/Text.module.css.js +9 -10
  471. package/dist/components/Text.cjs +1 -1
  472. package/dist/components/TextField/TextField.cjs +1 -1
  473. package/dist/components/TextField/TextField.cjs.map +1 -1
  474. package/dist/components/TextField/TextField.d.ts +1 -1
  475. package/dist/components/TextField/TextField.js +2 -2
  476. package/dist/components/TextField/TextField.js.map +1 -1
  477. package/dist/components/TextField.cjs +1 -1
  478. package/dist/components/Timeline/Timeline.cjs +1 -1
  479. package/dist/components/Timeline/Timeline.cjs.map +1 -1
  480. package/dist/components/Timeline/Timeline.d.ts +1 -1
  481. package/dist/components/Timeline/Timeline.js +2 -2
  482. package/dist/components/Timeline/Timeline.js.map +1 -1
  483. package/dist/components/Timeline.cjs +1 -1
  484. package/dist/components/Toast/Toast.cjs +1 -1
  485. package/dist/components/Toast/Toast.cjs.map +1 -1
  486. package/dist/components/Toast/Toast.d.ts +1 -1
  487. package/dist/components/Toast/Toast.js +2 -2
  488. package/dist/components/Toast/Toast.js.map +1 -1
  489. package/dist/components/Toast/Toast.module.css.cjs +1 -1
  490. package/dist/components/Toast/Toast.module.css.js +10 -11
  491. package/dist/components/Toast/Toaster.cjs +1 -1
  492. package/dist/components/Toast/Toaster.cjs.map +1 -1
  493. package/dist/components/Toast/Toaster.d.ts +1 -1
  494. package/dist/components/Toast/Toaster.js +2 -2
  495. package/dist/components/Toast/Toaster.js.map +1 -1
  496. package/dist/components/Toast.cjs +1 -1
  497. package/dist/components/ToggleGroup/ToggleGroup.cjs +1 -1
  498. package/dist/components/ToggleGroup/ToggleGroup.cjs.map +1 -1
  499. package/dist/components/ToggleGroup/ToggleGroup.d.ts +1 -1
  500. package/dist/components/ToggleGroup/ToggleGroup.js +2 -2
  501. package/dist/components/ToggleGroup/ToggleGroup.js.map +1 -1
  502. package/dist/components/ToggleGroup/ToggleGroupItem.cjs +1 -1
  503. package/dist/components/ToggleGroup/ToggleGroupItem.cjs.map +1 -1
  504. package/dist/components/ToggleGroup/ToggleGroupItem.d.ts +1 -1
  505. package/dist/components/ToggleGroup/ToggleGroupItem.js +2 -2
  506. package/dist/components/ToggleGroup/ToggleGroupItem.js.map +1 -1
  507. package/dist/components/ToggleGroup.cjs +1 -1
  508. package/dist/components/Toolbar/Spacer.cjs +1 -1
  509. package/dist/components/Toolbar/Spacer.cjs.map +1 -1
  510. package/dist/components/Toolbar/Spacer.d.ts +1 -1
  511. package/dist/components/Toolbar/Spacer.js +5 -7
  512. package/dist/components/Toolbar/Spacer.js.map +1 -1
  513. package/dist/components/Toolbar/Toolbar.cjs +1 -1
  514. package/dist/components/Toolbar/Toolbar.cjs.map +1 -1
  515. package/dist/components/Toolbar/Toolbar.d.ts +1 -1
  516. package/dist/components/Toolbar/Toolbar.js +5 -7
  517. package/dist/components/Toolbar/Toolbar.js.map +1 -1
  518. package/dist/components/Toolbar.cjs +1 -1
  519. package/dist/components/ToolbarView/ToolbarView.cjs +1 -1
  520. package/dist/components/ToolbarView/ToolbarView.cjs.map +1 -1
  521. package/dist/components/ToolbarView/ToolbarView.d.ts +1 -1
  522. package/dist/components/ToolbarView/ToolbarView.js +18 -20
  523. package/dist/components/ToolbarView/ToolbarView.js.map +1 -1
  524. package/dist/components/ToolbarView.cjs +1 -1
  525. package/dist/components/Tooltip/Tooltip.cjs +1 -1
  526. package/dist/components/Tooltip/Tooltip.cjs.map +1 -1
  527. package/dist/components/Tooltip/Tooltip.d.ts +1 -1
  528. package/dist/components/Tooltip/Tooltip.js +2 -2
  529. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  530. package/dist/components/Tooltip.cjs +1 -1
  531. package/dist/components/ViewSwitcher/ViewSwitcher.cjs +1 -1
  532. package/dist/components/ViewSwitcher/ViewSwitcher.cjs.map +1 -1
  533. package/dist/components/ViewSwitcher/ViewSwitcher.d.ts +1 -1
  534. package/dist/components/ViewSwitcher/ViewSwitcher.js +2 -2
  535. package/dist/components/ViewSwitcher/ViewSwitcher.js.map +1 -1
  536. package/dist/components/ViewSwitcher/ViewSwitcherItem.cjs +1 -1
  537. package/dist/components/ViewSwitcher/ViewSwitcherItem.cjs.map +1 -1
  538. package/dist/components/ViewSwitcher/ViewSwitcherItem.d.ts +1 -1
  539. package/dist/components/ViewSwitcher/ViewSwitcherItem.js +24 -26
  540. package/dist/components/ViewSwitcher/ViewSwitcherItem.js.map +1 -1
  541. package/dist/components/ViewSwitcher.cjs +1 -1
  542. package/dist/components/ViewSwitcherBar/ViewSwitcherBar.cjs +1 -1
  543. package/dist/components/ViewSwitcherBar/ViewSwitcherBar.cjs.map +1 -1
  544. package/dist/components/ViewSwitcherBar/ViewSwitcherBar.d.ts +1 -1
  545. package/dist/components/ViewSwitcherBar/ViewSwitcherBar.js +7 -9
  546. package/dist/components/ViewSwitcherBar/ViewSwitcherBar.js.map +1 -1
  547. package/dist/components/ViewSwitcherBar.cjs +1 -1
  548. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebar.cjs +1 -1
  549. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebar.cjs.map +1 -1
  550. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebar.d.ts +1 -1
  551. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebar.js +2 -2
  552. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebar.js.map +1 -1
  553. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebarItem.cjs +1 -1
  554. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebarItem.cjs.map +1 -1
  555. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebarItem.d.ts +1 -1
  556. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebarItem.js +2 -2
  557. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebarItem.js.map +1 -1
  558. package/dist/components/ViewSwitcherSidebar.cjs +1 -1
  559. package/dist/components/WindowTitle/WindowTitle.cjs +1 -1
  560. package/dist/components/WindowTitle/WindowTitle.cjs.map +1 -1
  561. package/dist/components/WindowTitle/WindowTitle.d.ts +1 -1
  562. package/dist/components/WindowTitle/WindowTitle.js +11 -13
  563. package/dist/components/WindowTitle/WindowTitle.js.map +1 -1
  564. package/dist/components/WindowTitle.cjs +1 -1
  565. package/dist/components/WrapBox/WrapBox.cjs +1 -1
  566. package/dist/components/WrapBox/WrapBox.cjs.map +1 -1
  567. package/dist/components/WrapBox/WrapBox.d.ts +1 -1
  568. package/dist/components/WrapBox/WrapBox.js +5 -5
  569. package/dist/components/WrapBox/WrapBox.js.map +1 -1
  570. package/dist/components/WrapBox.cjs +1 -1
  571. package/dist/hooks/useBreakpoint.cjs +1 -1
  572. package/dist/hooks/useBreakpoint.cjs.map +1 -1
  573. package/dist/hooks/useBreakpoint.js.map +1 -1
  574. package/dist/hooks.cjs +1 -1
  575. package/dist/index.cjs +1 -1
  576. package/package.json +2 -2
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./Text/Text.cjs`);exports.Text=e.Text;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./Text/Text.cjs");exports.Text=e.Text;
@@ -1,2 +1,2 @@
1
- const e=require(`./TextField.module.css.cjs`);let t=require(`react`),n=require(`react/jsx-runtime`);function r({label:r,helperText:i,error:a,id:o,className:s,disabled:c,...l}){let u=(0,t.useId)(),d=o??u,f=`${d}-help`;return(0,n.jsxs)(`div`,{className:[e.default.wrapper,c?e.default.disabled:null].filter(Boolean).join(` `),children:[r&&(0,n.jsx)(`label`,{htmlFor:d,className:e.default.label,children:r}),(0,n.jsx)(`input`,{id:d,disabled:c,"aria-describedby":a||i?f:void 0,"aria-invalid":a?!0:void 0,className:[e.default.input,a?e.default.errorInput:null,s].filter(Boolean).join(` `),...l}),(a||i)&&(0,n.jsx)(`span`,{id:f,className:[e.default.hint,a?e.default.errorHint:null].filter(Boolean).join(` `),children:a??i})]})}exports.TextField=r;
1
+ const e=require("./TextField.module.css.cjs");let t=require("react"),n=require("react/jsx-runtime");var r=({label:r,helperText:i,error:a,id:o,className:s,disabled:c,...l})=>{let u=(0,t.useId)(),d=o??u,f=`${d}-help`;return(0,n.jsxs)(`div`,{className:[e.default.wrapper,c?e.default.disabled:null].filter(Boolean).join(` `),children:[r&&(0,n.jsx)(`label`,{htmlFor:d,className:e.default.label,children:r}),(0,n.jsx)(`input`,{id:d,disabled:c,"aria-describedby":a||i?f:void 0,"aria-invalid":a?!0:void 0,className:[e.default.input,a?e.default.errorInput:null,s].filter(Boolean).join(` `),...l}),(a||i)&&(0,n.jsx)(`span`,{id:f,className:[e.default.hint,a?e.default.errorHint:null].filter(Boolean).join(` `),children:a??i})]})};exports.TextField=r;
2
2
  //# sourceMappingURL=TextField.cjs.map
@@ -1 +1 @@
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
+ {"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 const 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,IAAa,GAAa,CACxB,QACA,aACA,QACA,GAAI,EACJ,YACA,WACA,GAAG,KACiB,CACpB,IAAM,GAAA,EAAA,EAAA,OAAe,EACf,EAAK,GAAU,EACf,EAAS,GAAG,EAAG,OAErB,OACE,EAAA,EAAA,MAAC,MAAD,CAAK,UAAW,CAAC,EAAA,QAAO,QAAS,EAAW,EAAA,QAAO,SAAW,IAAI,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,WAA5F,CACG,IACC,EAAA,EAAA,KAAC,QAAD,CAAO,QAAS,EAAI,UAAW,EAAA,QAAO,eACnC,CACI,CAAA,GAGT,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,CAAS,EAClE,OAAO,OAAO,EACd,KAAK,GAAG,EACX,GAAI,CACL,CAAA,GAEC,GAAS,KACT,EAAA,EAAA,KAAC,OAAD,CACE,GAAI,EACJ,UAAW,CAAC,EAAA,QAAO,KAAM,EAAQ,EAAA,QAAO,UAAY,IAAI,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,WAEjF,GAAS,CACN,CAAA,CAEL,GAET"}
@@ -19,4 +19,4 @@ export interface TextFieldProps extends Omit<InputHTMLAttributes<HTMLInputElemen
19
19
  *
20
20
  * @see https://developer.gnome.org/hig/patterns/controls/text-fields.html
21
21
  */
22
- export declare function TextField({ label, helperText, error, id: idProp, className, disabled, ...props }: TextFieldProps): import("react/jsx-runtime").JSX.Element;
22
+ export declare const TextField: ({ label, helperText, error, id: idProp, className, disabled, ...props }: TextFieldProps) => import("react/jsx-runtime").JSX.Element;
@@ -2,7 +2,7 @@ import e from "./TextField.module.css.js";
2
2
  import { useId as t } from "react";
3
3
  import { jsx as n, jsxs as r } from "react/jsx-runtime";
4
4
  //#region src/components/TextField/TextField.tsx
5
- function i({ label: i, helperText: a, error: o, id: s, className: c, disabled: l, ...u }) {
5
+ var i = ({ label: i, helperText: a, error: o, id: s, className: c, disabled: l, ...u }) => {
6
6
  let d = t(), f = s ?? d, p = `${f}-help`;
7
7
  return /* @__PURE__ */ r("div", {
8
8
  className: [e.wrapper, l ? e.disabled : null].filter(Boolean).join(" "),
@@ -31,7 +31,7 @@ function i({ label: i, helperText: a, error: o, id: s, className: c, disabled: l
31
31
  })
32
32
  ]
33
33
  });
34
- }
34
+ };
35
35
  //#endregion
36
36
  export { i as TextField };
37
37
 
@@ -1 +1 @@
1
- {"version":3,"file":"TextField.js","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":";;;;AAyBA,SAAgB,EAAU,EACxB,UACA,eACA,UACA,IAAI,GACJ,cACA,aACA,GAAG,KACc;CACjB,IAAM,IAAS,GAAO,EAChB,IAAK,KAAU,GACf,IAAS,GAAG,EAAG;AAErB,QACE,kBAAC,OAAD;EAAK,WAAW,CAAC,EAAO,SAAS,IAAW,EAAO,WAAW,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAK,IAAI;YAA7F;GACG,KACC,kBAAC,SAAD;IAAO,SAAS;IAAI,WAAW,EAAO;cACnC;IACK,CAAA;GAGV,kBAAC,SAAD;IACM;IACM;IACV,oBAAkB,KAAS,IAAa,IAAS,KAAA;IACjD,gBAAc,IAAQ,KAAO,KAAA;IAC7B,WAAW;KAAC,EAAO;KAAO,IAAQ,EAAO,aAAa;KAAM;KAAU,CACnE,OAAO,QAAQ,CACf,KAAK,IAAI;IACZ,GAAI;IACJ,CAAA;IAEA,KAAS,MACT,kBAAC,QAAD;IACE,IAAI;IACJ,WAAW,CAAC,EAAO,MAAM,IAAQ,EAAO,YAAY,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAK,IAAI;cAElF,KAAS;IACL,CAAA;GAEL"}
1
+ {"version":3,"file":"TextField.js","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 const 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":";;;;AAyBA,IAAa,KAAa,EACxB,UACA,eACA,UACA,IAAI,GACJ,cACA,aACA,GAAG,QACiB;CACpB,IAAM,IAAS,EAAM,GACf,IAAK,KAAU,GACf,IAAS,GAAG,EAAG;CAErB,OACE,kBAAC,OAAD;EAAK,WAAW,CAAC,EAAO,SAAS,IAAW,EAAO,WAAW,IAAI,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;YAA5F;GACG,KACC,kBAAC,SAAD;IAAO,SAAS;IAAI,WAAW,EAAO;cACnC;GACI,CAAA;GAGT,kBAAC,SAAD;IACM;IACM;IACV,oBAAkB,KAAS,IAAa,IAAS,KAAA;IACjD,gBAAc,IAAQ,KAAO,KAAA;IAC7B,WAAW;KAAC,EAAO;KAAO,IAAQ,EAAO,aAAa;KAAM;IAAS,EAClE,OAAO,OAAO,EACd,KAAK,GAAG;IACX,GAAI;GACL,CAAA;IAEC,KAAS,MACT,kBAAC,QAAD;IACE,IAAI;IACJ,WAAW,CAAC,EAAO,MAAM,IAAQ,EAAO,YAAY,IAAI,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;cAEjF,KAAS;GACN,CAAA;EAEL;;AAET"}
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./TextField/TextField.cjs`);exports.TextField=e.TextField;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./TextField/TextField.cjs");exports.TextField=e.TextField;
@@ -1,2 +1,2 @@
1
- const e=require(`./Timeline.module.css.cjs`);let t=require(`react/jsx-runtime`);function n({items:n,orientation:r=`vertical`,variant:i=`default`,className:a,...o}){let s=r===`horizontal`,c=i!==`none`;return(0,t.jsx)(`div`,{role:`list`,className:[e.default.root,s?e.default.horizontal:e.default.vertical,a].filter(Boolean).join(` `),...o,children:n.map((r,a)=>{let o=a===0,l=a===n.length-1,u=[e.default.line,i===`dotted`?e.default.lineDotted:null].filter(Boolean).join(` `),d=(0,t.jsx)(`div`,{className:[e.default.node,r.icon?e.default.nodeWithIcon:e.default.nodeDot].filter(Boolean).join(` `),children:r.icon&&(0,t.jsx)(`span`,{className:e.default.iconWrap,"aria-hidden":`true`,children:r.icon})});return(0,t.jsxs)(`div`,{role:`listitem`,className:e.default.item,children:[(0,t.jsx)(`div`,{className:e.default.leading,children:r.leading}),s?(0,t.jsxs)(`div`,{className:e.default.nodeTrack,children:[(0,t.jsx)(`div`,{className:[e.default.line,i===`dotted`?e.default.lineDotted:null,o||!c?e.default.lineInvisible:null].filter(Boolean).join(` `),"aria-hidden":`true`}),d,(0,t.jsx)(`div`,{className:[e.default.line,i===`dotted`?e.default.lineDotted:null,l||!c?e.default.lineInvisible:null].filter(Boolean).join(` `),"aria-hidden":`true`})]}):(0,t.jsxs)(`div`,{className:e.default.nodeTrack,children:[d,!l&&c&&(0,t.jsx)(`div`,{className:u,"aria-hidden":`true`})]}),(0,t.jsx)(`div`,{className:e.default.content,children:r.content})]},a)})})}exports.Timeline=n;
1
+ const e=require("./Timeline.module.css.cjs");let t=require("react/jsx-runtime");var n=({items:n,orientation:r=`vertical`,variant:i=`default`,className:a,...o})=>{let s=r===`horizontal`,c=i!==`none`;return(0,t.jsx)(`div`,{role:`list`,className:[e.default.root,s?e.default.horizontal:e.default.vertical,a].filter(Boolean).join(` `),...o,children:n.map((r,a)=>{let o=a===0,l=a===n.length-1,u=[e.default.line,i===`dotted`?e.default.lineDotted:null].filter(Boolean).join(` `),d=(0,t.jsx)(`div`,{className:[e.default.node,r.icon?e.default.nodeWithIcon:e.default.nodeDot].filter(Boolean).join(` `),children:r.icon&&(0,t.jsx)(`span`,{className:e.default.iconWrap,"aria-hidden":`true`,children:r.icon})});return(0,t.jsxs)(`div`,{role:`listitem`,className:e.default.item,children:[(0,t.jsx)(`div`,{className:e.default.leading,children:r.leading}),s?(0,t.jsxs)(`div`,{className:e.default.nodeTrack,children:[(0,t.jsx)(`div`,{className:[e.default.line,i===`dotted`?e.default.lineDotted:null,o||!c?e.default.lineInvisible:null].filter(Boolean).join(` `),"aria-hidden":`true`}),d,(0,t.jsx)(`div`,{className:[e.default.line,i===`dotted`?e.default.lineDotted:null,l||!c?e.default.lineInvisible:null].filter(Boolean).join(` `),"aria-hidden":`true`})]}):(0,t.jsxs)(`div`,{className:e.default.nodeTrack,children:[d,!l&&c&&(0,t.jsx)(`div`,{className:u,"aria-hidden":`true`})]}),(0,t.jsx)(`div`,{className:e.default.content,children:r.content})]},a)})})};exports.Timeline=n;
2
2
  //# sourceMappingURL=Timeline.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Timeline.cjs","names":[],"sources":["../../../src/components/Timeline/Timeline.tsx"],"sourcesContent":["import type { HTMLAttributes, ReactNode } from 'react';\n\nimport styles from './Timeline.module.css';\n\n// ─── Types ────────────────────────────────────────────────────────────────────\n\nexport type TimelineOrientation = 'vertical' | 'horizontal';\nexport type TimelineVariant = 'default' | 'dotted' | 'none';\n\nexport interface TimelineItem {\n /** Icon rendered inside the timeline node. */\n icon?: ReactNode;\n /**\n * Content at the leading edge of the node.\n * - **Vertical:** rendered to the left of the connector track.\n * - **Horizontal:** rendered above the node.\n *\n * Typical use: timestamp, badge, short label.\n */\n leading?: ReactNode;\n /** Main event content rendered adjacent to the node (title, description…). */\n content: ReactNode;\n}\n\nexport interface TimelineProps extends HTMLAttributes<HTMLDivElement> {\n /** Ordered list of timeline events. */\n items: TimelineItem[];\n /**\n * Axis direction of the connector line.\n * - `\"vertical\"` — events stack top-to-bottom (default).\n * - `\"horizontal\"` — events flow left-to-right (stepper / progress pattern).\n */\n orientation?: TimelineOrientation;\n /**\n * Visual style of the connector between nodes.\n * - `\"default\"` — solid thin line.\n * - `\"dotted\"` — dotted line; useful for future or pending events.\n * - `\"none\"` — no connector; each node stands alone.\n */\n variant?: TimelineVariant;\n}\n\n// ─── Component ────────────────────────────────────────────────────────────────\n\n/**\n * Ordered sequence of events connected by a visual timeline.\n *\n * Supports two orientations — vertical (activity feed, history log) and\n * horizontal (stepper, progress indicator) — and three connector styles.\n *\n * ```tsx\n * <Timeline\n * items={[\n * {\n * leading: <Text variant=\"caption\" color=\"dim\">10:32</Text>,\n * icon: <Icon icon={Check} />,\n * content: <Text variant=\"body\">Approved</Text>,\n * },\n * ]}\n * />\n *\n * <Timeline orientation=\"horizontal\" variant=\"dotted\" items={steps} />\n * ```\n */\nexport function Timeline({\n items,\n orientation = 'vertical',\n variant = 'default',\n className,\n ...props\n}: TimelineProps) {\n const horizontal = orientation === 'horizontal';\n const showLine = variant !== 'none';\n\n return (\n <div\n role=\"list\"\n className={[styles.root, horizontal ? styles.horizontal : styles.vertical, className]\n .filter(Boolean)\n .join(' ')}\n {...props}\n >\n {items.map((item, i) => {\n const isFirst = i === 0;\n const isLast = i === items.length - 1;\n\n const lineClass = [styles.line, variant === 'dotted' ? styles.lineDotted : null]\n .filter(Boolean)\n .join(' ');\n\n const node = (\n <div\n className={[styles.node, item.icon ? styles.nodeWithIcon : styles.nodeDot]\n .filter(Boolean)\n .join(' ')}\n >\n {item.icon && (\n <span className={styles.iconWrap} aria-hidden=\"true\">\n {item.icon}\n </span>\n )}\n </div>\n );\n\n return (\n <div key={i} role=\"listitem\" className={styles.item}>\n {/* ── Leading (timestamp / label) ── */}\n {/* Always rendered — even when empty — so every item has the same\n 3 children (leading · nodeTrack · content) that map to the\n subgrid columns (vertical) or rows (horizontal). */}\n <div className={styles.leading}>{item.leading}</div>\n\n {/* ── Node track ── */}\n {horizontal ? (\n /*\n * Always render both half-lines so the node stays centered in\n * the item regardless of its position. Edge lines are hidden\n * with visibility:hidden (take space, invisible).\n */\n <div className={styles.nodeTrack}>\n <div\n className={[\n styles.line,\n variant === 'dotted' ? styles.lineDotted : null,\n isFirst || !showLine ? styles.lineInvisible : null,\n ]\n .filter(Boolean)\n .join(' ')}\n aria-hidden=\"true\"\n />\n {node}\n <div\n className={[\n styles.line,\n variant === 'dotted' ? styles.lineDotted : null,\n isLast || !showLine ? styles.lineInvisible : null,\n ]\n .filter(Boolean)\n .join(' ')}\n aria-hidden=\"true\"\n />\n </div>\n ) : (\n <div className={styles.nodeTrack}>\n {node}\n {!isLast && showLine && <div className={lineClass} aria-hidden=\"true\" />}\n </div>\n )}\n\n {/* ── Content ── */}\n <div className={styles.content}>{item.content}</div>\n </div>\n );\n })}\n </div>\n );\n}\n"],"mappings":"gFAgEA,SAAgB,EAAS,CACvB,QACA,cAAc,WACd,UAAU,UACV,YACA,GAAG,GACa,CAChB,IAAM,EAAa,IAAgB,aAC7B,EAAW,IAAY,OAE7B,OACE,EAAA,EAAA,KAAC,MAAD,CACE,KAAK,OACL,UAAW,CAAC,EAAA,QAAO,KAAM,EAAa,EAAA,QAAO,WAAa,EAAA,QAAO,SAAU,EAAU,CAClF,OAAO,QAAQ,CACf,KAAK,IAAI,CACZ,GAAI,WAEH,EAAM,KAAK,EAAM,IAAM,CACtB,IAAM,EAAU,IAAM,EAChB,EAAS,IAAM,EAAM,OAAS,EAE9B,EAAY,CAAC,EAAA,QAAO,KAAM,IAAY,SAAW,EAAA,QAAO,WAAa,KAAK,CAC7E,OAAO,QAAQ,CACf,KAAK,IAAI,CAEN,GACJ,EAAA,EAAA,KAAC,MAAD,CACE,UAAW,CAAC,EAAA,QAAO,KAAM,EAAK,KAAO,EAAA,QAAO,aAAe,EAAA,QAAO,QAAQ,CACvE,OAAO,QAAQ,CACf,KAAK,IAAI,UAEX,EAAK,OACJ,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,EAAA,QAAO,SAAU,cAAY,gBAC3C,EAAK,KACD,CAAA,CAEL,CAAA,CAGR,OACE,EAAA,EAAA,MAAC,MAAD,CAAa,KAAK,WAAW,UAAW,EAAA,QAAO,cAA/C,EAKE,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,EAAA,QAAO,iBAAU,EAAK,QAAc,CAAA,CAGnD,GAMC,EAAA,EAAA,MAAC,MAAD,CAAK,UAAW,EAAA,QAAO,mBAAvB,EACE,EAAA,EAAA,KAAC,MAAD,CACE,UAAW,CACT,EAAA,QAAO,KACP,IAAY,SAAW,EAAA,QAAO,WAAa,KAC3C,GAAW,CAAC,EAAW,EAAA,QAAO,cAAgB,KAC/C,CACE,OAAO,QAAQ,CACf,KAAK,IAAI,CACZ,cAAY,OACZ,CAAA,CACD,GACD,EAAA,EAAA,KAAC,MAAD,CACE,UAAW,CACT,EAAA,QAAO,KACP,IAAY,SAAW,EAAA,QAAO,WAAa,KAC3C,GAAU,CAAC,EAAW,EAAA,QAAO,cAAgB,KAC9C,CACE,OAAO,QAAQ,CACf,KAAK,IAAI,CACZ,cAAY,OACZ,CAAA,CACE,IAEN,EAAA,EAAA,MAAC,MAAD,CAAK,UAAW,EAAA,QAAO,mBAAvB,CACG,EACA,CAAC,GAAU,IAAY,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,EAAW,cAAY,OAAS,CAAA,CACpE,IAIR,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,EAAA,QAAO,iBAAU,EAAK,QAAc,CAAA,CAChD,EA9CI,EA8CJ,EAER,CACE,CAAA"}
1
+ {"version":3,"file":"Timeline.cjs","names":[],"sources":["../../../src/components/Timeline/Timeline.tsx"],"sourcesContent":["import type { HTMLAttributes, ReactNode } from 'react';\n\nimport styles from './Timeline.module.css';\n\n// ─── Types ────────────────────────────────────────────────────────────────────\n\nexport type TimelineOrientation = 'vertical' | 'horizontal';\nexport type TimelineVariant = 'default' | 'dotted' | 'none';\n\nexport interface TimelineItem {\n /** Icon rendered inside the timeline node. */\n icon?: ReactNode;\n /**\n * Content at the leading edge of the node.\n * - **Vertical:** rendered to the left of the connector track.\n * - **Horizontal:** rendered above the node.\n *\n * Typical use: timestamp, badge, short label.\n */\n leading?: ReactNode;\n /** Main event content rendered adjacent to the node (title, description…). */\n content: ReactNode;\n}\n\nexport interface TimelineProps extends HTMLAttributes<HTMLDivElement> {\n /** Ordered list of timeline events. */\n items: TimelineItem[];\n /**\n * Axis direction of the connector line.\n * - `\"vertical\"` — events stack top-to-bottom (default).\n * - `\"horizontal\"` — events flow left-to-right (stepper / progress pattern).\n */\n orientation?: TimelineOrientation;\n /**\n * Visual style of the connector between nodes.\n * - `\"default\"` — solid thin line.\n * - `\"dotted\"` — dotted line; useful for future or pending events.\n * - `\"none\"` — no connector; each node stands alone.\n */\n variant?: TimelineVariant;\n}\n\n// ─── Component ────────────────────────────────────────────────────────────────\n\n/**\n * Ordered sequence of events connected by a visual timeline.\n *\n * Supports two orientations — vertical (activity feed, history log) and\n * horizontal (stepper, progress indicator) — and three connector styles.\n *\n * ```tsx\n * <Timeline\n * items={[\n * {\n * leading: <Text variant=\"caption\" color=\"dim\">10:32</Text>,\n * icon: <Icon icon={Check} />,\n * content: <Text variant=\"body\">Approved</Text>,\n * },\n * ]}\n * />\n *\n * <Timeline orientation=\"horizontal\" variant=\"dotted\" items={steps} />\n * ```\n */\nexport const Timeline = ({\n items,\n orientation = 'vertical',\n variant = 'default',\n className,\n ...props\n}: TimelineProps) => {\n const horizontal = orientation === 'horizontal';\n const showLine = variant !== 'none';\n\n return (\n <div\n role=\"list\"\n className={[styles.root, horizontal ? styles.horizontal : styles.vertical, className]\n .filter(Boolean)\n .join(' ')}\n {...props}\n >\n {items.map((item, i) => {\n const isFirst = i === 0;\n const isLast = i === items.length - 1;\n\n const lineClass = [styles.line, variant === 'dotted' ? styles.lineDotted : null]\n .filter(Boolean)\n .join(' ');\n\n const node = (\n <div\n className={[styles.node, item.icon ? styles.nodeWithIcon : styles.nodeDot]\n .filter(Boolean)\n .join(' ')}\n >\n {item.icon && (\n <span className={styles.iconWrap} aria-hidden=\"true\">\n {item.icon}\n </span>\n )}\n </div>\n );\n\n return (\n <div key={i} role=\"listitem\" className={styles.item}>\n {/* ── Leading (timestamp / label) ── */}\n {/* Always rendered — even when empty — so every item has the same\n 3 children (leading · nodeTrack · content) that map to the\n subgrid columns (vertical) or rows (horizontal). */}\n <div className={styles.leading}>{item.leading}</div>\n\n {/* ── Node track ── */}\n {horizontal ? (\n /*\n * Always render both half-lines so the node stays centered in\n * the item regardless of its position. Edge lines are hidden\n * with visibility:hidden (take space, invisible).\n */\n <div className={styles.nodeTrack}>\n <div\n className={[\n styles.line,\n variant === 'dotted' ? styles.lineDotted : null,\n isFirst || !showLine ? styles.lineInvisible : null,\n ]\n .filter(Boolean)\n .join(' ')}\n aria-hidden=\"true\"\n />\n {node}\n <div\n className={[\n styles.line,\n variant === 'dotted' ? styles.lineDotted : null,\n isLast || !showLine ? styles.lineInvisible : null,\n ]\n .filter(Boolean)\n .join(' ')}\n aria-hidden=\"true\"\n />\n </div>\n ) : (\n <div className={styles.nodeTrack}>\n {node}\n {!isLast && showLine && <div className={lineClass} aria-hidden=\"true\" />}\n </div>\n )}\n\n {/* ── Content ── */}\n <div className={styles.content}>{item.content}</div>\n </div>\n );\n })}\n </div>\n );\n};\n"],"mappings":"gFAgEA,IAAa,GAAY,CACvB,QACA,cAAc,WACd,UAAU,UACV,YACA,GAAG,KACgB,CACnB,IAAM,EAAa,IAAgB,aAC7B,EAAW,IAAY,OAE7B,OACE,EAAA,EAAA,KAAC,MAAD,CACE,KAAK,OACL,UAAW,CAAC,EAAA,QAAO,KAAM,EAAa,EAAA,QAAO,WAAa,EAAA,QAAO,SAAU,CAAS,EACjF,OAAO,OAAO,EACd,KAAK,GAAG,EACX,GAAI,WAEH,EAAM,KAAK,EAAM,IAAM,CACtB,IAAM,EAAU,IAAM,EAChB,EAAS,IAAM,EAAM,OAAS,EAE9B,EAAY,CAAC,EAAA,QAAO,KAAM,IAAY,SAAW,EAAA,QAAO,WAAa,IAAI,EAC5E,OAAO,OAAO,EACd,KAAK,GAAG,EAEL,GACJ,EAAA,EAAA,KAAC,MAAD,CACE,UAAW,CAAC,EAAA,QAAO,KAAM,EAAK,KAAO,EAAA,QAAO,aAAe,EAAA,QAAO,OAAO,EACtE,OAAO,OAAO,EACd,KAAK,GAAG,WAEV,EAAK,OACJ,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,EAAA,QAAO,SAAU,cAAY,gBAC3C,EAAK,IACF,CAAA,CAEL,CAAA,EAGP,OACE,EAAA,EAAA,MAAC,MAAD,CAAa,KAAK,WAAW,UAAW,EAAA,QAAO,cAA/C,EAKE,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,EAAA,QAAO,iBAAU,EAAK,OAAa,CAAA,EAGlD,GAMC,EAAA,EAAA,MAAC,MAAD,CAAK,UAAW,EAAA,QAAO,mBAAvB,EACE,EAAA,EAAA,KAAC,MAAD,CACE,UAAW,CACT,EAAA,QAAO,KACP,IAAY,SAAW,EAAA,QAAO,WAAa,KAC3C,GAAW,CAAC,EAAW,EAAA,QAAO,cAAgB,IAChD,EACG,OAAO,OAAO,EACd,KAAK,GAAG,EACX,cAAY,MACb,CAAA,EACA,GACD,EAAA,EAAA,KAAC,MAAD,CACE,UAAW,CACT,EAAA,QAAO,KACP,IAAY,SAAW,EAAA,QAAO,WAAa,KAC3C,GAAU,CAAC,EAAW,EAAA,QAAO,cAAgB,IAC/C,EACG,OAAO,OAAO,EACd,KAAK,GAAG,EACX,cAAY,MACb,CAAA,CACE,KAEL,EAAA,EAAA,MAAC,MAAD,CAAK,UAAW,EAAA,QAAO,mBAAvB,CACG,EACA,CAAC,GAAU,IAAY,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,EAAW,cAAY,MAAQ,CAAA,CACpE,KAIP,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,EAAA,QAAO,iBAAU,EAAK,OAAa,CAAA,CAChD,GA9CK,CA8CL,CAET,CAAC,CACE,CAAA,CAET"}
@@ -52,4 +52,4 @@ export interface TimelineProps extends HTMLAttributes<HTMLDivElement> {
52
52
  * <Timeline orientation="horizontal" variant="dotted" items={steps} />
53
53
  * ```
54
54
  */
55
- export declare function Timeline({ items, orientation, variant, className, ...props }: TimelineProps): import("react/jsx-runtime").JSX.Element;
55
+ export declare const Timeline: ({ items, orientation, variant, className, ...props }: TimelineProps) => import("react/jsx-runtime").JSX.Element;
@@ -1,7 +1,7 @@
1
1
  import e from "./Timeline.module.css.js";
2
2
  import { jsx as t, jsxs as n } from "react/jsx-runtime";
3
3
  //#region src/components/Timeline/Timeline.tsx
4
- function r({ items: r, orientation: i = "vertical", variant: a = "default", className: o, ...s }) {
4
+ var r = ({ items: r, orientation: i = "vertical", variant: a = "default", className: o, ...s }) => {
5
5
  let c = i === "horizontal", l = a !== "none";
6
6
  return /* @__PURE__ */ t("div", {
7
7
  role: "list",
@@ -64,7 +64,7 @@ function r({ items: r, orientation: i = "vertical", variant: a = "default", clas
64
64
  }, o);
65
65
  })
66
66
  });
67
- }
67
+ };
68
68
  //#endregion
69
69
  export { r as Timeline };
70
70
 
@@ -1 +1 @@
1
- {"version":3,"file":"Timeline.js","names":[],"sources":["../../../src/components/Timeline/Timeline.tsx"],"sourcesContent":["import type { HTMLAttributes, ReactNode } from 'react';\n\nimport styles from './Timeline.module.css';\n\n// ─── Types ────────────────────────────────────────────────────────────────────\n\nexport type TimelineOrientation = 'vertical' | 'horizontal';\nexport type TimelineVariant = 'default' | 'dotted' | 'none';\n\nexport interface TimelineItem {\n /** Icon rendered inside the timeline node. */\n icon?: ReactNode;\n /**\n * Content at the leading edge of the node.\n * - **Vertical:** rendered to the left of the connector track.\n * - **Horizontal:** rendered above the node.\n *\n * Typical use: timestamp, badge, short label.\n */\n leading?: ReactNode;\n /** Main event content rendered adjacent to the node (title, description…). */\n content: ReactNode;\n}\n\nexport interface TimelineProps extends HTMLAttributes<HTMLDivElement> {\n /** Ordered list of timeline events. */\n items: TimelineItem[];\n /**\n * Axis direction of the connector line.\n * - `\"vertical\"` — events stack top-to-bottom (default).\n * - `\"horizontal\"` — events flow left-to-right (stepper / progress pattern).\n */\n orientation?: TimelineOrientation;\n /**\n * Visual style of the connector between nodes.\n * - `\"default\"` — solid thin line.\n * - `\"dotted\"` — dotted line; useful for future or pending events.\n * - `\"none\"` — no connector; each node stands alone.\n */\n variant?: TimelineVariant;\n}\n\n// ─── Component ────────────────────────────────────────────────────────────────\n\n/**\n * Ordered sequence of events connected by a visual timeline.\n *\n * Supports two orientations — vertical (activity feed, history log) and\n * horizontal (stepper, progress indicator) — and three connector styles.\n *\n * ```tsx\n * <Timeline\n * items={[\n * {\n * leading: <Text variant=\"caption\" color=\"dim\">10:32</Text>,\n * icon: <Icon icon={Check} />,\n * content: <Text variant=\"body\">Approved</Text>,\n * },\n * ]}\n * />\n *\n * <Timeline orientation=\"horizontal\" variant=\"dotted\" items={steps} />\n * ```\n */\nexport function Timeline({\n items,\n orientation = 'vertical',\n variant = 'default',\n className,\n ...props\n}: TimelineProps) {\n const horizontal = orientation === 'horizontal';\n const showLine = variant !== 'none';\n\n return (\n <div\n role=\"list\"\n className={[styles.root, horizontal ? styles.horizontal : styles.vertical, className]\n .filter(Boolean)\n .join(' ')}\n {...props}\n >\n {items.map((item, i) => {\n const isFirst = i === 0;\n const isLast = i === items.length - 1;\n\n const lineClass = [styles.line, variant === 'dotted' ? styles.lineDotted : null]\n .filter(Boolean)\n .join(' ');\n\n const node = (\n <div\n className={[styles.node, item.icon ? styles.nodeWithIcon : styles.nodeDot]\n .filter(Boolean)\n .join(' ')}\n >\n {item.icon && (\n <span className={styles.iconWrap} aria-hidden=\"true\">\n {item.icon}\n </span>\n )}\n </div>\n );\n\n return (\n <div key={i} role=\"listitem\" className={styles.item}>\n {/* ── Leading (timestamp / label) ── */}\n {/* Always rendered — even when empty — so every item has the same\n 3 children (leading · nodeTrack · content) that map to the\n subgrid columns (vertical) or rows (horizontal). */}\n <div className={styles.leading}>{item.leading}</div>\n\n {/* ── Node track ── */}\n {horizontal ? (\n /*\n * Always render both half-lines so the node stays centered in\n * the item regardless of its position. Edge lines are hidden\n * with visibility:hidden (take space, invisible).\n */\n <div className={styles.nodeTrack}>\n <div\n className={[\n styles.line,\n variant === 'dotted' ? styles.lineDotted : null,\n isFirst || !showLine ? styles.lineInvisible : null,\n ]\n .filter(Boolean)\n .join(' ')}\n aria-hidden=\"true\"\n />\n {node}\n <div\n className={[\n styles.line,\n variant === 'dotted' ? styles.lineDotted : null,\n isLast || !showLine ? styles.lineInvisible : null,\n ]\n .filter(Boolean)\n .join(' ')}\n aria-hidden=\"true\"\n />\n </div>\n ) : (\n <div className={styles.nodeTrack}>\n {node}\n {!isLast && showLine && <div className={lineClass} aria-hidden=\"true\" />}\n </div>\n )}\n\n {/* ── Content ── */}\n <div className={styles.content}>{item.content}</div>\n </div>\n );\n })}\n </div>\n );\n}\n"],"mappings":";;;AAgEA,SAAgB,EAAS,EACvB,UACA,iBAAc,YACd,aAAU,WACV,cACA,GAAG,KACa;CAChB,IAAM,IAAa,MAAgB,cAC7B,IAAW,MAAY;AAE7B,QACE,kBAAC,OAAD;EACE,MAAK;EACL,WAAW;GAAC,EAAO;GAAM,IAAa,EAAO,aAAa,EAAO;GAAU;GAAU,CAClF,OAAO,QAAQ,CACf,KAAK,IAAI;EACZ,GAAI;YAEH,EAAM,KAAK,GAAM,MAAM;GACtB,IAAM,IAAU,MAAM,GAChB,IAAS,MAAM,EAAM,SAAS,GAE9B,IAAY,CAAC,EAAO,MAAM,MAAY,WAAW,EAAO,aAAa,KAAK,CAC7E,OAAO,QAAQ,CACf,KAAK,IAAI,EAEN,IACJ,kBAAC,OAAD;IACE,WAAW,CAAC,EAAO,MAAM,EAAK,OAAO,EAAO,eAAe,EAAO,QAAQ,CACvE,OAAO,QAAQ,CACf,KAAK,IAAI;cAEX,EAAK,QACJ,kBAAC,QAAD;KAAM,WAAW,EAAO;KAAU,eAAY;eAC3C,EAAK;KACD,CAAA;IAEL,CAAA;AAGR,UACE,kBAAC,OAAD;IAAa,MAAK;IAAW,WAAW,EAAO;cAA/C;KAKE,kBAAC,OAAD;MAAK,WAAW,EAAO;gBAAU,EAAK;MAAc,CAAA;KAGnD,IAMC,kBAAC,OAAD;MAAK,WAAW,EAAO;gBAAvB;OACE,kBAAC,OAAD;QACE,WAAW;SACT,EAAO;SACP,MAAY,WAAW,EAAO,aAAa;SAC3C,KAAW,CAAC,IAAW,EAAO,gBAAgB;SAC/C,CACE,OAAO,QAAQ,CACf,KAAK,IAAI;QACZ,eAAY;QACZ,CAAA;OACD;OACD,kBAAC,OAAD;QACE,WAAW;SACT,EAAO;SACP,MAAY,WAAW,EAAO,aAAa;SAC3C,KAAU,CAAC,IAAW,EAAO,gBAAgB;SAC9C,CACE,OAAO,QAAQ,CACf,KAAK,IAAI;QACZ,eAAY;QACZ,CAAA;OACE;UAEN,kBAAC,OAAD;MAAK,WAAW,EAAO;gBAAvB,CACG,GACA,CAAC,KAAU,KAAY,kBAAC,OAAD;OAAK,WAAW;OAAW,eAAY;OAAS,CAAA,CACpE;;KAIR,kBAAC,OAAD;MAAK,WAAW,EAAO;gBAAU,EAAK;MAAc,CAAA;KAChD;MA9CI,EA8CJ;IAER;EACE,CAAA"}
1
+ {"version":3,"file":"Timeline.js","names":[],"sources":["../../../src/components/Timeline/Timeline.tsx"],"sourcesContent":["import type { HTMLAttributes, ReactNode } from 'react';\n\nimport styles from './Timeline.module.css';\n\n// ─── Types ────────────────────────────────────────────────────────────────────\n\nexport type TimelineOrientation = 'vertical' | 'horizontal';\nexport type TimelineVariant = 'default' | 'dotted' | 'none';\n\nexport interface TimelineItem {\n /** Icon rendered inside the timeline node. */\n icon?: ReactNode;\n /**\n * Content at the leading edge of the node.\n * - **Vertical:** rendered to the left of the connector track.\n * - **Horizontal:** rendered above the node.\n *\n * Typical use: timestamp, badge, short label.\n */\n leading?: ReactNode;\n /** Main event content rendered adjacent to the node (title, description…). */\n content: ReactNode;\n}\n\nexport interface TimelineProps extends HTMLAttributes<HTMLDivElement> {\n /** Ordered list of timeline events. */\n items: TimelineItem[];\n /**\n * Axis direction of the connector line.\n * - `\"vertical\"` — events stack top-to-bottom (default).\n * - `\"horizontal\"` — events flow left-to-right (stepper / progress pattern).\n */\n orientation?: TimelineOrientation;\n /**\n * Visual style of the connector between nodes.\n * - `\"default\"` — solid thin line.\n * - `\"dotted\"` — dotted line; useful for future or pending events.\n * - `\"none\"` — no connector; each node stands alone.\n */\n variant?: TimelineVariant;\n}\n\n// ─── Component ────────────────────────────────────────────────────────────────\n\n/**\n * Ordered sequence of events connected by a visual timeline.\n *\n * Supports two orientations — vertical (activity feed, history log) and\n * horizontal (stepper, progress indicator) — and three connector styles.\n *\n * ```tsx\n * <Timeline\n * items={[\n * {\n * leading: <Text variant=\"caption\" color=\"dim\">10:32</Text>,\n * icon: <Icon icon={Check} />,\n * content: <Text variant=\"body\">Approved</Text>,\n * },\n * ]}\n * />\n *\n * <Timeline orientation=\"horizontal\" variant=\"dotted\" items={steps} />\n * ```\n */\nexport const Timeline = ({\n items,\n orientation = 'vertical',\n variant = 'default',\n className,\n ...props\n}: TimelineProps) => {\n const horizontal = orientation === 'horizontal';\n const showLine = variant !== 'none';\n\n return (\n <div\n role=\"list\"\n className={[styles.root, horizontal ? styles.horizontal : styles.vertical, className]\n .filter(Boolean)\n .join(' ')}\n {...props}\n >\n {items.map((item, i) => {\n const isFirst = i === 0;\n const isLast = i === items.length - 1;\n\n const lineClass = [styles.line, variant === 'dotted' ? styles.lineDotted : null]\n .filter(Boolean)\n .join(' ');\n\n const node = (\n <div\n className={[styles.node, item.icon ? styles.nodeWithIcon : styles.nodeDot]\n .filter(Boolean)\n .join(' ')}\n >\n {item.icon && (\n <span className={styles.iconWrap} aria-hidden=\"true\">\n {item.icon}\n </span>\n )}\n </div>\n );\n\n return (\n <div key={i} role=\"listitem\" className={styles.item}>\n {/* ── Leading (timestamp / label) ── */}\n {/* Always rendered — even when empty — so every item has the same\n 3 children (leading · nodeTrack · content) that map to the\n subgrid columns (vertical) or rows (horizontal). */}\n <div className={styles.leading}>{item.leading}</div>\n\n {/* ── Node track ── */}\n {horizontal ? (\n /*\n * Always render both half-lines so the node stays centered in\n * the item regardless of its position. Edge lines are hidden\n * with visibility:hidden (take space, invisible).\n */\n <div className={styles.nodeTrack}>\n <div\n className={[\n styles.line,\n variant === 'dotted' ? styles.lineDotted : null,\n isFirst || !showLine ? styles.lineInvisible : null,\n ]\n .filter(Boolean)\n .join(' ')}\n aria-hidden=\"true\"\n />\n {node}\n <div\n className={[\n styles.line,\n variant === 'dotted' ? styles.lineDotted : null,\n isLast || !showLine ? styles.lineInvisible : null,\n ]\n .filter(Boolean)\n .join(' ')}\n aria-hidden=\"true\"\n />\n </div>\n ) : (\n <div className={styles.nodeTrack}>\n {node}\n {!isLast && showLine && <div className={lineClass} aria-hidden=\"true\" />}\n </div>\n )}\n\n {/* ── Content ── */}\n <div className={styles.content}>{item.content}</div>\n </div>\n );\n })}\n </div>\n );\n};\n"],"mappings":";;;AAgEA,IAAa,KAAY,EACvB,UACA,iBAAc,YACd,aAAU,WACV,cACA,GAAG,QACgB;CACnB,IAAM,IAAa,MAAgB,cAC7B,IAAW,MAAY;CAE7B,OACE,kBAAC,OAAD;EACE,MAAK;EACL,WAAW;GAAC,EAAO;GAAM,IAAa,EAAO,aAAa,EAAO;GAAU;EAAS,EACjF,OAAO,OAAO,EACd,KAAK,GAAG;EACX,GAAI;YAEH,EAAM,KAAK,GAAM,MAAM;GACtB,IAAM,IAAU,MAAM,GAChB,IAAS,MAAM,EAAM,SAAS,GAE9B,IAAY,CAAC,EAAO,MAAM,MAAY,WAAW,EAAO,aAAa,IAAI,EAC5E,OAAO,OAAO,EACd,KAAK,GAAG,GAEL,IACJ,kBAAC,OAAD;IACE,WAAW,CAAC,EAAO,MAAM,EAAK,OAAO,EAAO,eAAe,EAAO,OAAO,EACtE,OAAO,OAAO,EACd,KAAK,GAAG;cAEV,EAAK,QACJ,kBAAC,QAAD;KAAM,WAAW,EAAO;KAAU,eAAY;eAC3C,EAAK;IACF,CAAA;GAEL,CAAA;GAGP,OACE,kBAAC,OAAD;IAAa,MAAK;IAAW,WAAW,EAAO;cAA/C;KAKE,kBAAC,OAAD;MAAK,WAAW,EAAO;gBAAU,EAAK;KAAa,CAAA;KAGlD,IAMC,kBAAC,OAAD;MAAK,WAAW,EAAO;gBAAvB;OACE,kBAAC,OAAD;QACE,WAAW;SACT,EAAO;SACP,MAAY,WAAW,EAAO,aAAa;SAC3C,KAAW,CAAC,IAAW,EAAO,gBAAgB;QAChD,EACG,OAAO,OAAO,EACd,KAAK,GAAG;QACX,eAAY;OACb,CAAA;OACA;OACD,kBAAC,OAAD;QACE,WAAW;SACT,EAAO;SACP,MAAY,WAAW,EAAO,aAAa;SAC3C,KAAU,CAAC,IAAW,EAAO,gBAAgB;QAC/C,EACG,OAAO,OAAO,EACd,KAAK,GAAG;QACX,eAAY;OACb,CAAA;MACE;UAEL,kBAAC,OAAD;MAAK,WAAW,EAAO;gBAAvB,CACG,GACA,CAAC,KAAU,KAAY,kBAAC,OAAD;OAAK,WAAW;OAAW,eAAY;MAAQ,CAAA,CACpE;;KAIP,kBAAC,OAAD;MAAK,WAAW,EAAO;gBAAU,EAAK;KAAa,CAAA;IAChD;MA9CK,CA8CL;EAET,CAAC;CACE,CAAA;AAET"}
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./Timeline/Timeline.cjs`);exports.Timeline=e.Timeline;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./Timeline/Timeline.cjs");exports.Timeline=e.Timeline;
@@ -1,2 +1,2 @@
1
- const e=require(`../Icon/Icon.cjs`),t=require(`./Toast.module.css.cjs`);let n=require(`react`),r=require(`react/jsx-runtime`),i=require(`@gnome-ui/icons`);function a({title:a,duration:o=3e3,onDismiss:s,actionLabel:c,onAction:l,dismissible:u=!1,className:d,...f}){let p=(0,n.useRef)(null),m=(0,n.useRef)(o),h=(0,n.useRef)(0),g=(0,n.useCallback)(()=>{p.current&&=(clearTimeout(p.current),null)},[]),_=(0,n.useCallback)(e=>{e<=0||!s||(g(),h.current=Date.now(),p.current=setTimeout(()=>s(),e))},[s,g]);(0,n.useEffect)(()=>(o>0&&(m.current=o,_(o)),g),[o,_,g]);let v=()=>{if(p.current){let e=Date.now()-h.current;m.current=Math.max(0,m.current-e),g()}},y=()=>{_(m.current)},b=()=>{g(),l?.(),s?.()};return(0,r.jsxs)(`div`,{role:`status`,"aria-live":`polite`,"aria-atomic":`true`,className:[t.default.toast,d].filter(Boolean).join(` `),onMouseEnter:v,onMouseLeave:y,onFocus:v,onBlur:y,...f,children:[(0,r.jsx)(`span`,{className:t.default.title,children:a}),(c||u)&&(0,r.jsxs)(`span`,{className:t.default.actions,children:[c&&(0,r.jsx)(`button`,{type:`button`,className:t.default.actionBtn,onClick:b,children:c}),u&&(0,r.jsx)(`button`,{type:`button`,className:t.default.dismissBtn,"aria-label":`Dismiss`,onClick:()=>{g(),s?.()},children:(0,r.jsx)(e.Icon,{icon:i.Close,size:`md`,"aria-hidden":!0})})]})]})}exports.Toast=a;
1
+ const e=require("../Icon/Icon.cjs"),t=require("./Toast.module.css.cjs");let n=require("react"),r=require("react/jsx-runtime"),i=require("@gnome-ui/icons");var a=({title:a,duration:o=3e3,onDismiss:s,actionLabel:c,onAction:l,dismissible:u=!1,className:d,...f})=>{let p=(0,n.useRef)(null),m=(0,n.useRef)(o),h=(0,n.useRef)(0),g=(0,n.useCallback)(()=>{p.current&&=(clearTimeout(p.current),null)},[]),_=(0,n.useCallback)(e=>{e<=0||!s||(g(),h.current=Date.now(),p.current=setTimeout(()=>s(),e))},[s,g]);(0,n.useEffect)(()=>(o>0&&(m.current=o,_(o)),g),[o,_,g]);let v=()=>{if(p.current){let e=Date.now()-h.current;m.current=Math.max(0,m.current-e),g()}},y=()=>{_(m.current)},b=()=>{g(),l?.(),s?.()};return(0,r.jsxs)(`div`,{role:`status`,"aria-live":`polite`,"aria-atomic":`true`,className:[t.default.toast,d].filter(Boolean).join(` `),onMouseEnter:v,onMouseLeave:y,onFocus:v,onBlur:y,...f,children:[(0,r.jsx)(`span`,{className:t.default.title,children:a}),(c||u)&&(0,r.jsxs)(`span`,{className:t.default.actions,children:[c&&(0,r.jsx)(`button`,{type:`button`,className:t.default.actionBtn,onClick:b,children:c}),u&&(0,r.jsx)(`button`,{type:`button`,className:t.default.dismissBtn,"aria-label":`Dismiss`,onClick:()=>{g(),s?.()},children:(0,r.jsx)(e.Icon,{icon:i.Close,size:`md`,"aria-hidden":!0})})]})]})};exports.Toast=a;
2
2
  //# sourceMappingURL=Toast.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Toast.cjs","names":[],"sources":["../../../src/components/Toast/Toast.tsx"],"sourcesContent":["import { Close } from '@gnome-ui/icons';\nimport { type HTMLAttributes, type ReactNode, useCallback, useEffect, useRef } from 'react';\n\nimport { Icon } from '../Icon';\n\nimport styles from './Toast.module.css';\n\nexport interface ToastProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {\n /** The notification message. Keep it short — one sentence. */\n title: ReactNode;\n /**\n * Auto-dismiss timeout in milliseconds.\n * - Set to `0` to disable auto-dismiss (user must click action or dismiss).\n * - Defaults to `3000`.\n */\n duration?: number;\n /** Called when the toast should be removed — after timeout or user action. */\n onDismiss?: () => void;\n /** Label for the optional action button. */\n actionLabel?: string;\n /** Called when the user clicks the action button. */\n onAction?: () => void;\n /** Whether to show a manual dismiss (×) button. */\n dismissible?: boolean;\n}\n\n/**\n * Non-blocking temporary notification following the Adwaita `AdwToast` pattern.\n *\n * - Auto-dismisses after `duration` ms (default 3 s). Set `duration={0}` to disable.\n * - Timer pauses while the toast is hovered or focused.\n * - Use inside `<Toaster>` for correct positioning and stacking.\n *\n * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.Toast.html\n */\nexport function Toast({\n title,\n duration = 3000,\n onDismiss,\n actionLabel,\n onAction,\n dismissible = false,\n className,\n ...props\n}: ToastProps) {\n const timerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const remainingRef = useRef(duration);\n const startedAtRef = useRef<number>(0);\n\n const clearTimer = useCallback(() => {\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n timerRef.current = null;\n }\n }, []);\n\n const startTimer = useCallback(\n (ms: number) => {\n if (ms <= 0 || !onDismiss) {\n return;\n }\n\n clearTimer();\n startedAtRef.current = Date.now();\n timerRef.current = setTimeout(() => onDismiss(), ms);\n },\n [onDismiss, clearTimer],\n );\n\n // Start auto-dismiss on mount\n useEffect(() => {\n if (duration > 0) {\n remainingRef.current = duration;\n startTimer(duration);\n }\n\n return clearTimer;\n }, [duration, startTimer, clearTimer]);\n\n // Pause timer on hover/focus\n const handleMouseEnter = () => {\n if (timerRef.current) {\n const elapsed = Date.now() - startedAtRef.current;\n\n remainingRef.current = Math.max(0, remainingRef.current - elapsed);\n clearTimer();\n }\n };\n\n const handleMouseLeave = () => {\n startTimer(remainingRef.current);\n };\n\n const handleAction = () => {\n clearTimer();\n onAction?.();\n onDismiss?.();\n };\n\n return (\n <div\n role=\"status\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n className={[styles.toast, className].filter(Boolean).join(' ')}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n onFocus={handleMouseEnter}\n onBlur={handleMouseLeave}\n {...props}\n >\n <span className={styles.title}>{title}</span>\n\n {(actionLabel || dismissible) && (\n <span className={styles.actions}>\n {actionLabel && (\n <button type=\"button\" className={styles.actionBtn} onClick={handleAction}>\n {actionLabel}\n </button>\n )}\n {dismissible && (\n <button\n type=\"button\"\n className={styles.dismissBtn}\n aria-label=\"Dismiss\"\n onClick={() => {\n clearTimer();\n onDismiss?.();\n }}\n >\n <Icon icon={Close} size=\"md\" aria-hidden />\n </button>\n )}\n </span>\n )}\n </div>\n );\n}\n"],"mappings":"2JAmCA,SAAgB,EAAM,CACpB,QACA,WAAW,IACX,YACA,cACA,WACA,cAAc,GACd,YACA,GAAG,GACU,CACb,IAAM,GAAA,EAAA,EAAA,QAAwD,KAAK,CAC7D,GAAA,EAAA,EAAA,QAAsB,EAAS,CAC/B,GAAA,EAAA,EAAA,QAA8B,EAAE,CAEhC,GAAA,EAAA,EAAA,iBAA+B,CACnC,AAEE,EAAS,WADT,aAAa,EAAS,QAAQ,CACX,OAEpB,EAAE,CAAC,CAEA,GAAA,EAAA,EAAA,aACH,GAAe,CACV,GAAM,GAAK,CAAC,IAIhB,GAAY,CACZ,EAAa,QAAU,KAAK,KAAK,CACjC,EAAS,QAAU,eAAiB,GAAW,CAAE,EAAG,GAEtD,CAAC,EAAW,EAAW,CACxB,EAGD,EAAA,EAAA,gBACM,EAAW,IACb,EAAa,QAAU,EACvB,EAAW,EAAS,EAGf,GACN,CAAC,EAAU,EAAY,EAAW,CAAC,CAGtC,IAAM,MAAyB,CAC7B,GAAI,EAAS,QAAS,CACpB,IAAM,EAAU,KAAK,KAAK,CAAG,EAAa,QAE1C,EAAa,QAAU,KAAK,IAAI,EAAG,EAAa,QAAU,EAAQ,CAClE,GAAY,GAIV,MAAyB,CAC7B,EAAW,EAAa,QAAQ,EAG5B,MAAqB,CACzB,GAAY,CACZ,KAAY,CACZ,KAAa,EAGf,OACE,EAAA,EAAA,MAAC,MAAD,CACE,KAAK,SACL,YAAU,SACV,cAAY,OACZ,UAAW,CAAC,EAAA,QAAO,MAAO,EAAU,CAAC,OAAO,QAAQ,CAAC,KAAK,IAAI,CAC9D,aAAc,EACd,aAAc,EACd,QAAS,EACT,OAAQ,EACR,GAAI,WATN,EAWE,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,EAAA,QAAO,eAAQ,EAAa,CAAA,EAE3C,GAAe,KACf,EAAA,EAAA,MAAC,OAAD,CAAM,UAAW,EAAA,QAAO,iBAAxB,CACG,IACC,EAAA,EAAA,KAAC,SAAD,CAAQ,KAAK,SAAS,UAAW,EAAA,QAAO,UAAW,QAAS,WACzD,EACM,CAAA,CAEV,IACC,EAAA,EAAA,KAAC,SAAD,CACE,KAAK,SACL,UAAW,EAAA,QAAO,WAClB,aAAW,UACX,YAAe,CACb,GAAY,CACZ,KAAa,YAGf,EAAA,EAAA,KAAC,EAAA,KAAD,CAAM,KAAM,EAAA,MAAO,KAAK,KAAK,cAAA,GAAc,CAAA,CACpC,CAAA,CAEN,GAEL"}
1
+ {"version":3,"file":"Toast.cjs","names":[],"sources":["../../../src/components/Toast/Toast.tsx"],"sourcesContent":["import { Close } from '@gnome-ui/icons';\nimport { type HTMLAttributes, type ReactNode, useCallback, useEffect, useRef } from 'react';\n\nimport { Icon } from '../Icon';\n\nimport styles from './Toast.module.css';\n\nexport interface ToastProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {\n /** The notification message. Keep it short — one sentence. */\n title: ReactNode;\n /**\n * Auto-dismiss timeout in milliseconds.\n * - Set to `0` to disable auto-dismiss (user must click action or dismiss).\n * - Defaults to `3000`.\n */\n duration?: number;\n /** Called when the toast should be removed — after timeout or user action. */\n onDismiss?: () => void;\n /** Label for the optional action button. */\n actionLabel?: string;\n /** Called when the user clicks the action button. */\n onAction?: () => void;\n /** Whether to show a manual dismiss (×) button. */\n dismissible?: boolean;\n}\n\n/**\n * Non-blocking temporary notification following the Adwaita `AdwToast` pattern.\n *\n * - Auto-dismisses after `duration` ms (default 3 s). Set `duration={0}` to disable.\n * - Timer pauses while the toast is hovered or focused.\n * - Use inside `<Toaster>` for correct positioning and stacking.\n *\n * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.Toast.html\n */\nexport const Toast = ({\n title,\n duration = 3000,\n onDismiss,\n actionLabel,\n onAction,\n dismissible = false,\n className,\n ...props\n}: ToastProps) => {\n const timerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const remainingRef = useRef(duration);\n const startedAtRef = useRef<number>(0);\n\n const clearTimer = useCallback(() => {\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n timerRef.current = null;\n }\n }, []);\n\n const startTimer = useCallback(\n (ms: number) => {\n if (ms <= 0 || !onDismiss) {\n return;\n }\n\n clearTimer();\n startedAtRef.current = Date.now();\n timerRef.current = setTimeout(() => onDismiss(), ms);\n },\n [onDismiss, clearTimer],\n );\n\n // Start auto-dismiss on mount\n useEffect(() => {\n if (duration > 0) {\n remainingRef.current = duration;\n startTimer(duration);\n }\n\n return clearTimer;\n }, [duration, startTimer, clearTimer]);\n\n // Pause timer on hover/focus\n const handleMouseEnter = () => {\n if (timerRef.current) {\n const elapsed = Date.now() - startedAtRef.current;\n\n remainingRef.current = Math.max(0, remainingRef.current - elapsed);\n clearTimer();\n }\n };\n\n const handleMouseLeave = () => {\n startTimer(remainingRef.current);\n };\n\n const handleAction = () => {\n clearTimer();\n onAction?.();\n onDismiss?.();\n };\n\n return (\n <div\n role=\"status\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n className={[styles.toast, className].filter(Boolean).join(' ')}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n onFocus={handleMouseEnter}\n onBlur={handleMouseLeave}\n {...props}\n >\n <span className={styles.title}>{title}</span>\n\n {(actionLabel || dismissible) && (\n <span className={styles.actions}>\n {actionLabel && (\n <button type=\"button\" className={styles.actionBtn} onClick={handleAction}>\n {actionLabel}\n </button>\n )}\n {dismissible && (\n <button\n type=\"button\"\n className={styles.dismissBtn}\n aria-label=\"Dismiss\"\n onClick={() => {\n clearTimer();\n onDismiss?.();\n }}\n >\n <Icon icon={Close} size=\"md\" aria-hidden />\n </button>\n )}\n </span>\n )}\n </div>\n );\n};\n"],"mappings":"2JAmCA,IAAa,GAAS,CACpB,QACA,WAAW,IACX,YACA,cACA,WACA,cAAc,GACd,YACA,GAAG,KACa,CAChB,IAAM,GAAA,EAAA,EAAA,QAAwD,IAAI,EAC5D,GAAA,EAAA,EAAA,QAAsB,CAAQ,EAC9B,GAAA,EAAA,EAAA,QAA8B,CAAC,EAE/B,GAAA,EAAA,EAAA,iBAA+B,CACnC,AAEE,EAAS,WADT,aAAa,EAAS,OAAO,EACV,KAEvB,EAAG,CAAC,CAAC,EAEC,GAAA,EAAA,EAAA,aACH,GAAe,CACV,GAAM,GAAK,CAAC,IAIhB,EAAW,EACX,EAAa,QAAU,KAAK,IAAI,EAChC,EAAS,QAAU,eAAiB,EAAU,EAAG,CAAE,EACrD,EACA,CAAC,EAAW,CAAU,CACxB,GAGA,EAAA,EAAA,gBACM,EAAW,IACb,EAAa,QAAU,EACvB,EAAW,CAAQ,GAGd,GACN,CAAC,EAAU,EAAY,CAAU,CAAC,EAGrC,IAAM,MAAyB,CAC7B,GAAI,EAAS,QAAS,CACpB,IAAM,EAAU,KAAK,IAAI,EAAI,EAAa,QAE1C,EAAa,QAAU,KAAK,IAAI,EAAG,EAAa,QAAU,CAAO,EACjE,EAAW,CACb,CACF,EAEM,MAAyB,CAC7B,EAAW,EAAa,OAAO,CACjC,EAEM,MAAqB,CACzB,EAAW,EACX,IAAW,EACX,IAAY,CACd,EAEA,OACE,EAAA,EAAA,MAAC,MAAD,CACE,KAAK,SACL,YAAU,SACV,cAAY,OACZ,UAAW,CAAC,EAAA,QAAO,MAAO,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,EAC7D,aAAc,EACd,aAAc,EACd,QAAS,EACT,OAAQ,EACR,GAAI,WATN,EAWE,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,EAAA,QAAO,eAAQ,CAAY,CAAA,GAE1C,GAAe,KACf,EAAA,EAAA,MAAC,OAAD,CAAM,UAAW,EAAA,QAAO,iBAAxB,CACG,IACC,EAAA,EAAA,KAAC,SAAD,CAAQ,KAAK,SAAS,UAAW,EAAA,QAAO,UAAW,QAAS,WACzD,CACK,CAAA,EAET,IACC,EAAA,EAAA,KAAC,SAAD,CACE,KAAK,SACL,UAAW,EAAA,QAAO,WAClB,aAAW,UACX,YAAe,CACb,EAAW,EACX,IAAY,CACd,YAEA,EAAA,EAAA,KAAC,EAAA,KAAD,CAAM,KAAM,EAAA,MAAO,KAAK,KAAK,cAAA,EAAa,CAAA,CACpC,CAAA,CAEN,GAEL,GAET"}
@@ -26,4 +26,4 @@ export interface ToastProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'
26
26
  *
27
27
  * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.Toast.html
28
28
  */
29
- export declare function Toast({ title, duration, onDismiss, actionLabel, onAction, dismissible, className, ...props }: ToastProps): import("react/jsx-runtime").JSX.Element;
29
+ export declare const Toast: ({ title, duration, onDismiss, actionLabel, onAction, dismissible, className, ...props }: ToastProps) => import("react/jsx-runtime").JSX.Element;
@@ -4,7 +4,7 @@ import { useCallback as n, useEffect as r, useRef as i } from "react";
4
4
  import { jsx as a, jsxs as o } from "react/jsx-runtime";
5
5
  import { Close as s } from "@gnome-ui/icons";
6
6
  //#region src/components/Toast/Toast.tsx
7
- function c({ title: c, duration: l = 3e3, onDismiss: u, actionLabel: d, onAction: f, dismissible: p = !1, className: m, ...h }) {
7
+ var c = ({ title: c, duration: l = 3e3, onDismiss: u, actionLabel: d, onAction: f, dismissible: p = !1, className: m, ...h }) => {
8
8
  let g = i(null), _ = i(l), v = i(0), y = n(() => {
9
9
  g.current &&= (clearTimeout(g.current), null);
10
10
  }, []), b = n((e) => {
@@ -60,7 +60,7 @@ function c({ title: c, duration: l = 3e3, onDismiss: u, actionLabel: d, onAction
60
60
  })]
61
61
  })]
62
62
  });
63
- }
63
+ };
64
64
  //#endregion
65
65
  export { c as Toast };
66
66
 
@@ -1 +1 @@
1
- {"version":3,"file":"Toast.js","names":[],"sources":["../../../src/components/Toast/Toast.tsx"],"sourcesContent":["import { Close } from '@gnome-ui/icons';\nimport { type HTMLAttributes, type ReactNode, useCallback, useEffect, useRef } from 'react';\n\nimport { Icon } from '../Icon';\n\nimport styles from './Toast.module.css';\n\nexport interface ToastProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {\n /** The notification message. Keep it short — one sentence. */\n title: ReactNode;\n /**\n * Auto-dismiss timeout in milliseconds.\n * - Set to `0` to disable auto-dismiss (user must click action or dismiss).\n * - Defaults to `3000`.\n */\n duration?: number;\n /** Called when the toast should be removed — after timeout or user action. */\n onDismiss?: () => void;\n /** Label for the optional action button. */\n actionLabel?: string;\n /** Called when the user clicks the action button. */\n onAction?: () => void;\n /** Whether to show a manual dismiss (×) button. */\n dismissible?: boolean;\n}\n\n/**\n * Non-blocking temporary notification following the Adwaita `AdwToast` pattern.\n *\n * - Auto-dismisses after `duration` ms (default 3 s). Set `duration={0}` to disable.\n * - Timer pauses while the toast is hovered or focused.\n * - Use inside `<Toaster>` for correct positioning and stacking.\n *\n * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.Toast.html\n */\nexport function Toast({\n title,\n duration = 3000,\n onDismiss,\n actionLabel,\n onAction,\n dismissible = false,\n className,\n ...props\n}: ToastProps) {\n const timerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const remainingRef = useRef(duration);\n const startedAtRef = useRef<number>(0);\n\n const clearTimer = useCallback(() => {\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n timerRef.current = null;\n }\n }, []);\n\n const startTimer = useCallback(\n (ms: number) => {\n if (ms <= 0 || !onDismiss) {\n return;\n }\n\n clearTimer();\n startedAtRef.current = Date.now();\n timerRef.current = setTimeout(() => onDismiss(), ms);\n },\n [onDismiss, clearTimer],\n );\n\n // Start auto-dismiss on mount\n useEffect(() => {\n if (duration > 0) {\n remainingRef.current = duration;\n startTimer(duration);\n }\n\n return clearTimer;\n }, [duration, startTimer, clearTimer]);\n\n // Pause timer on hover/focus\n const handleMouseEnter = () => {\n if (timerRef.current) {\n const elapsed = Date.now() - startedAtRef.current;\n\n remainingRef.current = Math.max(0, remainingRef.current - elapsed);\n clearTimer();\n }\n };\n\n const handleMouseLeave = () => {\n startTimer(remainingRef.current);\n };\n\n const handleAction = () => {\n clearTimer();\n onAction?.();\n onDismiss?.();\n };\n\n return (\n <div\n role=\"status\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n className={[styles.toast, className].filter(Boolean).join(' ')}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n onFocus={handleMouseEnter}\n onBlur={handleMouseLeave}\n {...props}\n >\n <span className={styles.title}>{title}</span>\n\n {(actionLabel || dismissible) && (\n <span className={styles.actions}>\n {actionLabel && (\n <button type=\"button\" className={styles.actionBtn} onClick={handleAction}>\n {actionLabel}\n </button>\n )}\n {dismissible && (\n <button\n type=\"button\"\n className={styles.dismissBtn}\n aria-label=\"Dismiss\"\n onClick={() => {\n clearTimer();\n onDismiss?.();\n }}\n >\n <Icon icon={Close} size=\"md\" aria-hidden />\n </button>\n )}\n </span>\n )}\n </div>\n );\n}\n"],"mappings":";;;;;;AAmCA,SAAgB,EAAM,EACpB,UACA,cAAW,KACX,cACA,gBACA,aACA,iBAAc,IACd,cACA,GAAG,KACU;CACb,IAAM,IAAW,EAA6C,KAAK,EAC7D,IAAe,EAAO,EAAS,EAC/B,IAAe,EAAe,EAAE,EAEhC,IAAa,QAAkB;AACnC,EAEE,EAAS,aADT,aAAa,EAAS,QAAQ,EACX;IAEpB,EAAE,CAAC,EAEA,IAAa,GAChB,MAAe;AACV,OAAM,KAAK,CAAC,MAIhB,GAAY,EACZ,EAAa,UAAU,KAAK,KAAK,EACjC,EAAS,UAAU,iBAAiB,GAAW,EAAE,EAAG;IAEtD,CAAC,GAAW,EAAW,CACxB;AAGD,UACM,IAAW,MACb,EAAa,UAAU,GACvB,EAAW,EAAS,GAGf,IACN;EAAC;EAAU;EAAY;EAAW,CAAC;CAGtC,IAAM,UAAyB;AAC7B,MAAI,EAAS,SAAS;GACpB,IAAM,IAAU,KAAK,KAAK,GAAG,EAAa;AAG1C,GADA,EAAa,UAAU,KAAK,IAAI,GAAG,EAAa,UAAU,EAAQ,EAClE,GAAY;;IAIV,UAAyB;AAC7B,IAAW,EAAa,QAAQ;IAG5B,UAAqB;AAGzB,EAFA,GAAY,EACZ,KAAY,EACZ,KAAa;;AAGf,QACE,kBAAC,OAAD;EACE,MAAK;EACL,aAAU;EACV,eAAY;EACZ,WAAW,CAAC,EAAO,OAAO,EAAU,CAAC,OAAO,QAAQ,CAAC,KAAK,IAAI;EAC9D,cAAc;EACd,cAAc;EACd,SAAS;EACT,QAAQ;EACR,GAAI;YATN,CAWE,kBAAC,QAAD;GAAM,WAAW,EAAO;aAAQ;GAAa,CAAA,GAE3C,KAAe,MACf,kBAAC,QAAD;GAAM,WAAW,EAAO;aAAxB,CACG,KACC,kBAAC,UAAD;IAAQ,MAAK;IAAS,WAAW,EAAO;IAAW,SAAS;cACzD;IACM,CAAA,EAEV,KACC,kBAAC,UAAD;IACE,MAAK;IACL,WAAW,EAAO;IAClB,cAAW;IACX,eAAe;AAEb,KADA,GAAY,EACZ,KAAa;;cAGf,kBAAC,GAAD;KAAM,MAAM;KAAO,MAAK;KAAK,eAAA;KAAc,CAAA;IACpC,CAAA,CAEN;KAEL"}
1
+ {"version":3,"file":"Toast.js","names":[],"sources":["../../../src/components/Toast/Toast.tsx"],"sourcesContent":["import { Close } from '@gnome-ui/icons';\nimport { type HTMLAttributes, type ReactNode, useCallback, useEffect, useRef } from 'react';\n\nimport { Icon } from '../Icon';\n\nimport styles from './Toast.module.css';\n\nexport interface ToastProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {\n /** The notification message. Keep it short — one sentence. */\n title: ReactNode;\n /**\n * Auto-dismiss timeout in milliseconds.\n * - Set to `0` to disable auto-dismiss (user must click action or dismiss).\n * - Defaults to `3000`.\n */\n duration?: number;\n /** Called when the toast should be removed — after timeout or user action. */\n onDismiss?: () => void;\n /** Label for the optional action button. */\n actionLabel?: string;\n /** Called when the user clicks the action button. */\n onAction?: () => void;\n /** Whether to show a manual dismiss (×) button. */\n dismissible?: boolean;\n}\n\n/**\n * Non-blocking temporary notification following the Adwaita `AdwToast` pattern.\n *\n * - Auto-dismisses after `duration` ms (default 3 s). Set `duration={0}` to disable.\n * - Timer pauses while the toast is hovered or focused.\n * - Use inside `<Toaster>` for correct positioning and stacking.\n *\n * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.Toast.html\n */\nexport const Toast = ({\n title,\n duration = 3000,\n onDismiss,\n actionLabel,\n onAction,\n dismissible = false,\n className,\n ...props\n}: ToastProps) => {\n const timerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const remainingRef = useRef(duration);\n const startedAtRef = useRef<number>(0);\n\n const clearTimer = useCallback(() => {\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n timerRef.current = null;\n }\n }, []);\n\n const startTimer = useCallback(\n (ms: number) => {\n if (ms <= 0 || !onDismiss) {\n return;\n }\n\n clearTimer();\n startedAtRef.current = Date.now();\n timerRef.current = setTimeout(() => onDismiss(), ms);\n },\n [onDismiss, clearTimer],\n );\n\n // Start auto-dismiss on mount\n useEffect(() => {\n if (duration > 0) {\n remainingRef.current = duration;\n startTimer(duration);\n }\n\n return clearTimer;\n }, [duration, startTimer, clearTimer]);\n\n // Pause timer on hover/focus\n const handleMouseEnter = () => {\n if (timerRef.current) {\n const elapsed = Date.now() - startedAtRef.current;\n\n remainingRef.current = Math.max(0, remainingRef.current - elapsed);\n clearTimer();\n }\n };\n\n const handleMouseLeave = () => {\n startTimer(remainingRef.current);\n };\n\n const handleAction = () => {\n clearTimer();\n onAction?.();\n onDismiss?.();\n };\n\n return (\n <div\n role=\"status\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n className={[styles.toast, className].filter(Boolean).join(' ')}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n onFocus={handleMouseEnter}\n onBlur={handleMouseLeave}\n {...props}\n >\n <span className={styles.title}>{title}</span>\n\n {(actionLabel || dismissible) && (\n <span className={styles.actions}>\n {actionLabel && (\n <button type=\"button\" className={styles.actionBtn} onClick={handleAction}>\n {actionLabel}\n </button>\n )}\n {dismissible && (\n <button\n type=\"button\"\n className={styles.dismissBtn}\n aria-label=\"Dismiss\"\n onClick={() => {\n clearTimer();\n onDismiss?.();\n }}\n >\n <Icon icon={Close} size=\"md\" aria-hidden />\n </button>\n )}\n </span>\n )}\n </div>\n );\n};\n"],"mappings":";;;;;;AAmCA,IAAa,KAAS,EACpB,UACA,cAAW,KACX,cACA,gBACA,aACA,iBAAc,IACd,cACA,GAAG,QACa;CAChB,IAAM,IAAW,EAA6C,IAAI,GAC5D,IAAe,EAAO,CAAQ,GAC9B,IAAe,EAAe,CAAC,GAE/B,IAAa,QAAkB;EACnC,AAEE,EAAS,aADT,aAAa,EAAS,OAAO,GACV;CAEvB,GAAG,CAAC,CAAC,GAEC,IAAa,GAChB,MAAe;EACV,KAAM,KAAK,CAAC,MAIhB,EAAW,GACX,EAAa,UAAU,KAAK,IAAI,GAChC,EAAS,UAAU,iBAAiB,EAAU,GAAG,CAAE;CACrD,GACA,CAAC,GAAW,CAAU,CACxB;CAGA,SACM,IAAW,MACb,EAAa,UAAU,GACvB,EAAW,CAAQ,IAGd,IACN;EAAC;EAAU;EAAY;CAAU,CAAC;CAGrC,IAAM,UAAyB;EAC7B,IAAI,EAAS,SAAS;GACpB,IAAM,IAAU,KAAK,IAAI,IAAI,EAAa;GAG1C,AADA,EAAa,UAAU,KAAK,IAAI,GAAG,EAAa,UAAU,CAAO,GACjE,EAAW;EACb;CACF,GAEM,UAAyB;EAC7B,EAAW,EAAa,OAAO;CACjC,GAEM,UAAqB;EAGzB,AAFA,EAAW,GACX,IAAW,GACX,IAAY;CACd;CAEA,OACE,kBAAC,OAAD;EACE,MAAK;EACL,aAAU;EACV,eAAY;EACZ,WAAW,CAAC,EAAO,OAAO,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;EAC7D,cAAc;EACd,cAAc;EACd,SAAS;EACT,QAAQ;EACR,GAAI;YATN,CAWE,kBAAC,QAAD;GAAM,WAAW,EAAO;aAAQ;EAAY,CAAA,IAE1C,KAAe,MACf,kBAAC,QAAD;GAAM,WAAW,EAAO;aAAxB,CACG,KACC,kBAAC,UAAD;IAAQ,MAAK;IAAS,WAAW,EAAO;IAAW,SAAS;cACzD;GACK,CAAA,GAET,KACC,kBAAC,UAAD;IACE,MAAK;IACL,WAAW,EAAO;IAClB,cAAW;IACX,eAAe;KAEb,AADA,EAAW,GACX,IAAY;IACd;cAEA,kBAAC,GAAD;KAAM,MAAM;KAAO,MAAK;KAAK,eAAA;IAAa,CAAA;GACpC,CAAA,CAEN;IAEL;;AAET"}
@@ -1,2 +1,2 @@
1
- var e=`_toaster_1poqp_3`,t=`_toasterBottom_1poqp_18`,n=`_toasterTop_1poqp_22`,r=`_toast_1poqp_3`,i=`_title_1poqp_69`,a=`_actions_1poqp_76`,o=`_actionBtn_1poqp_85`,s=`_dismissBtn_1poqp_118`,c={toaster:e,toasterBottom:t,toasterTop:n,toast:r,"toast-in":`_toast-in_1poqp_1`,title:i,actions:a,actionBtn:o,dismissBtn:s};exports.default=c;
1
+ var e={toaster:`_toaster_1poqp_3`,toasterBottom:`_toasterBottom_1poqp_18`,toasterTop:`_toasterTop_1poqp_22`,toast:`_toast_1poqp_3`,"toast-in":`_toast-in_1poqp_1`,title:`_title_1poqp_69`,actions:`_actions_1poqp_76`,actionBtn:`_actionBtn_1poqp_85`,dismissBtn:`_dismissBtn_1poqp_118`};exports.default=e;
2
2
  //# sourceMappingURL=Toast.module.css.cjs.map
@@ -1,16 +1,15 @@
1
- //#region src/components/Toast/Toast.module.css
2
- var e = "_toaster_1poqp_3", t = "_toasterBottom_1poqp_18", n = "_toasterTop_1poqp_22", r = "_toast_1poqp_3", i = "_title_1poqp_69", a = "_actions_1poqp_76", o = "_actionBtn_1poqp_85", s = "_dismissBtn_1poqp_118", c = {
3
- toaster: e,
4
- toasterBottom: t,
5
- toasterTop: n,
6
- toast: r,
1
+ var e = {
2
+ toaster: "_toaster_1poqp_3",
3
+ toasterBottom: "_toasterBottom_1poqp_18",
4
+ toasterTop: "_toasterTop_1poqp_22",
5
+ toast: "_toast_1poqp_3",
7
6
  "toast-in": "_toast-in_1poqp_1",
8
- title: i,
9
- actions: a,
10
- actionBtn: o,
11
- dismissBtn: s
7
+ title: "_title_1poqp_69",
8
+ actions: "_actions_1poqp_76",
9
+ actionBtn: "_actionBtn_1poqp_85",
10
+ dismissBtn: "_dismissBtn_1poqp_118"
12
11
  };
13
12
  //#endregion
14
- export { c as default };
13
+ export { e as default };
15
14
 
16
15
  //# sourceMappingURL=Toast.module.css.js.map
@@ -1,2 +1,2 @@
1
- const e=require(`./Toast.module.css.cjs`);let t=require(`react-dom`),n=require(`react/jsx-runtime`);function r({position:r=`bottom`,children:i,container:a,className:o,...s}){let c=(0,n.jsx)(`div`,{"aria-label":`Notifications`,className:[e.default.toaster,r===`top`?e.default.toasterTop:e.default.toasterBottom,o].filter(Boolean).join(` `),...s,children:i});return typeof document>`u`?c:(0,t.createPortal)(c,a??document.body)}exports.Toaster=r;
1
+ const e=require("./Toast.module.css.cjs");let t=require("react-dom"),n=require("react/jsx-runtime");var r=({position:r=`bottom`,children:i,container:a,className:o,...s})=>{let c=(0,n.jsx)(`div`,{"aria-label":`Notifications`,className:[e.default.toaster,r===`top`?e.default.toasterTop:e.default.toasterBottom,o].filter(Boolean).join(` `),...s,children:i});return typeof document>`u`?c:(0,t.createPortal)(c,a??document.body)};exports.Toaster=r;
2
2
  //# sourceMappingURL=Toaster.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Toaster.cjs","names":[],"sources":["../../../src/components/Toast/Toaster.tsx"],"sourcesContent":["import type { HTMLAttributes, ReactNode } from 'react';\n\nimport { createPortal } from 'react-dom';\n\nimport styles from './Toast.module.css';\n\nexport interface ToasterProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * Where to render the toast stack.\n * - `bottom` (default) — bottom-center, following the GNOME HIG.\n * - `top` — top-center.\n */\n position?: 'bottom' | 'top';\n /** `<Toast>` elements to display. */\n children?: ReactNode;\n /**\n * DOM node to render the portal into.\n * Defaults to `document.body`.\n */\n container?: Element | DocumentFragment;\n}\n\n/**\n * Fixed-position overlay that stacks `<Toast>` notifications.\n *\n * Renders into a portal (default: `document.body`) so it sits above all\n * other content regardless of where you place it in the React tree.\n *\n * @example\n * <Toaster>\n * {toasts.map(t => (\n * <Toast key={t.id} title={t.message} onDismiss={() => remove(t.id)} />\n * ))}\n * </Toaster>\n */\nexport function Toaster({\n position = 'bottom',\n children,\n container,\n className,\n ...props\n}: ToasterProps) {\n const node = (\n <div\n aria-label=\"Notifications\"\n className={[\n styles.toaster,\n position === 'top' ? styles.toasterTop : styles.toasterBottom,\n className,\n ]\n .filter(Boolean)\n .join(' ')}\n {...props}\n >\n {children}\n </div>\n );\n\n // During SSR document is not available — render inline\n if (typeof document === 'undefined') {\n return node;\n }\n\n return createPortal(node, container ?? document.body);\n}\n"],"mappings":"oGAmCA,SAAgB,EAAQ,CACtB,WAAW,SACX,WACA,YACA,YACA,GAAG,GACY,CACf,IAAM,GACJ,EAAA,EAAA,KAAC,MAAD,CACE,aAAW,gBACX,UAAW,CACT,EAAA,QAAO,QACP,IAAa,MAAQ,EAAA,QAAO,WAAa,EAAA,QAAO,cAChD,EACD,CACE,OAAO,QAAQ,CACf,KAAK,IAAI,CACZ,GAAI,EAEH,WACG,CAAA,CAQR,OAJI,OAAO,SAAa,IACf,GAGT,EAAA,EAAA,cAAoB,EAAM,GAAa,SAAS,KAAK"}
1
+ {"version":3,"file":"Toaster.cjs","names":[],"sources":["../../../src/components/Toast/Toaster.tsx"],"sourcesContent":["import type { HTMLAttributes, ReactNode } from 'react';\n\nimport { createPortal } from 'react-dom';\n\nimport styles from './Toast.module.css';\n\nexport interface ToasterProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * Where to render the toast stack.\n * - `bottom` (default) — bottom-center, following the GNOME HIG.\n * - `top` — top-center.\n */\n position?: 'bottom' | 'top';\n /** `<Toast>` elements to display. */\n children?: ReactNode;\n /**\n * DOM node to render the portal into.\n * Defaults to `document.body`.\n */\n container?: Element | DocumentFragment;\n}\n\n/**\n * Fixed-position overlay that stacks `<Toast>` notifications.\n *\n * Renders into a portal (default: `document.body`) so it sits above all\n * other content regardless of where you place it in the React tree.\n *\n * @example\n * <Toaster>\n * {toasts.map(t => (\n * <Toast key={t.id} title={t.message} onDismiss={() => remove(t.id)} />\n * ))}\n * </Toaster>\n */\nexport const Toaster = ({\n position = 'bottom',\n children,\n container,\n className,\n ...props\n}: ToasterProps) => {\n const node = (\n <div\n aria-label=\"Notifications\"\n className={[\n styles.toaster,\n position === 'top' ? styles.toasterTop : styles.toasterBottom,\n className,\n ]\n .filter(Boolean)\n .join(' ')}\n {...props}\n >\n {children}\n </div>\n );\n\n // During SSR document is not available — render inline\n if (typeof document === 'undefined') {\n return node;\n }\n\n return createPortal(node, container ?? document.body);\n};\n"],"mappings":"oGAmCA,IAAa,GAAW,CACtB,WAAW,SACX,WACA,YACA,YACA,GAAG,KACe,CAClB,IAAM,GACJ,EAAA,EAAA,KAAC,MAAD,CACE,aAAW,gBACX,UAAW,CACT,EAAA,QAAO,QACP,IAAa,MAAQ,EAAA,QAAO,WAAa,EAAA,QAAO,cAChD,CACF,EACG,OAAO,OAAO,EACd,KAAK,GAAG,EACX,GAAI,EAEH,UACE,CAAA,EAQP,OAJI,OAAO,SAAa,IACf,GAGT,EAAA,EAAA,cAAoB,EAAM,GAAa,SAAS,IAAI,CACtD"}
@@ -27,4 +27,4 @@ export interface ToasterProps extends HTMLAttributes<HTMLDivElement> {
27
27
  * ))}
28
28
  * </Toaster>
29
29
  */
30
- export declare function Toaster({ position, children, container, className, ...props }: ToasterProps): import("react/jsx-runtime").JSX.Element;
30
+ export declare const Toaster: ({ position, children, container, className, ...props }: ToasterProps) => import("react/jsx-runtime").JSX.Element;
@@ -2,7 +2,7 @@ import e from "./Toast.module.css.js";
2
2
  import { createPortal as t } from "react-dom";
3
3
  import { jsx as n } from "react/jsx-runtime";
4
4
  //#region src/components/Toast/Toaster.tsx
5
- function r({ position: r = "bottom", children: i, container: a, className: o, ...s }) {
5
+ var r = ({ position: r = "bottom", children: i, container: a, className: o, ...s }) => {
6
6
  let c = /* @__PURE__ */ n("div", {
7
7
  "aria-label": "Notifications",
8
8
  className: [
@@ -14,7 +14,7 @@ function r({ position: r = "bottom", children: i, container: a, className: o, ..
14
14
  children: i
15
15
  });
16
16
  return typeof document > "u" ? c : t(c, a ?? document.body);
17
- }
17
+ };
18
18
  //#endregion
19
19
  export { r as Toaster };
20
20
 
@@ -1 +1 @@
1
- {"version":3,"file":"Toaster.js","names":[],"sources":["../../../src/components/Toast/Toaster.tsx"],"sourcesContent":["import type { HTMLAttributes, ReactNode } from 'react';\n\nimport { createPortal } from 'react-dom';\n\nimport styles from './Toast.module.css';\n\nexport interface ToasterProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * Where to render the toast stack.\n * - `bottom` (default) — bottom-center, following the GNOME HIG.\n * - `top` — top-center.\n */\n position?: 'bottom' | 'top';\n /** `<Toast>` elements to display. */\n children?: ReactNode;\n /**\n * DOM node to render the portal into.\n * Defaults to `document.body`.\n */\n container?: Element | DocumentFragment;\n}\n\n/**\n * Fixed-position overlay that stacks `<Toast>` notifications.\n *\n * Renders into a portal (default: `document.body`) so it sits above all\n * other content regardless of where you place it in the React tree.\n *\n * @example\n * <Toaster>\n * {toasts.map(t => (\n * <Toast key={t.id} title={t.message} onDismiss={() => remove(t.id)} />\n * ))}\n * </Toaster>\n */\nexport function Toaster({\n position = 'bottom',\n children,\n container,\n className,\n ...props\n}: ToasterProps) {\n const node = (\n <div\n aria-label=\"Notifications\"\n className={[\n styles.toaster,\n position === 'top' ? styles.toasterTop : styles.toasterBottom,\n className,\n ]\n .filter(Boolean)\n .join(' ')}\n {...props}\n >\n {children}\n </div>\n );\n\n // During SSR document is not available — render inline\n if (typeof document === 'undefined') {\n return node;\n }\n\n return createPortal(node, container ?? document.body);\n}\n"],"mappings":";;;;AAmCA,SAAgB,EAAQ,EACtB,cAAW,UACX,aACA,cACA,cACA,GAAG,KACY;CACf,IAAM,IACJ,kBAAC,OAAD;EACE,cAAW;EACX,WAAW;GACT,EAAO;GACP,MAAa,QAAQ,EAAO,aAAa,EAAO;GAChD;GACD,CACE,OAAO,QAAQ,CACf,KAAK,IAAI;EACZ,GAAI;EAEH;EACG,CAAA;AAQR,QAJI,OAAO,WAAa,MACf,IAGF,EAAa,GAAM,KAAa,SAAS,KAAK"}
1
+ {"version":3,"file":"Toaster.js","names":[],"sources":["../../../src/components/Toast/Toaster.tsx"],"sourcesContent":["import type { HTMLAttributes, ReactNode } from 'react';\n\nimport { createPortal } from 'react-dom';\n\nimport styles from './Toast.module.css';\n\nexport interface ToasterProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * Where to render the toast stack.\n * - `bottom` (default) — bottom-center, following the GNOME HIG.\n * - `top` — top-center.\n */\n position?: 'bottom' | 'top';\n /** `<Toast>` elements to display. */\n children?: ReactNode;\n /**\n * DOM node to render the portal into.\n * Defaults to `document.body`.\n */\n container?: Element | DocumentFragment;\n}\n\n/**\n * Fixed-position overlay that stacks `<Toast>` notifications.\n *\n * Renders into a portal (default: `document.body`) so it sits above all\n * other content regardless of where you place it in the React tree.\n *\n * @example\n * <Toaster>\n * {toasts.map(t => (\n * <Toast key={t.id} title={t.message} onDismiss={() => remove(t.id)} />\n * ))}\n * </Toaster>\n */\nexport const Toaster = ({\n position = 'bottom',\n children,\n container,\n className,\n ...props\n}: ToasterProps) => {\n const node = (\n <div\n aria-label=\"Notifications\"\n className={[\n styles.toaster,\n position === 'top' ? styles.toasterTop : styles.toasterBottom,\n className,\n ]\n .filter(Boolean)\n .join(' ')}\n {...props}\n >\n {children}\n </div>\n );\n\n // During SSR document is not available — render inline\n if (typeof document === 'undefined') {\n return node;\n }\n\n return createPortal(node, container ?? document.body);\n};\n"],"mappings":";;;;AAmCA,IAAa,KAAW,EACtB,cAAW,UACX,aACA,cACA,cACA,GAAG,QACe;CAClB,IAAM,IACJ,kBAAC,OAAD;EACE,cAAW;EACX,WAAW;GACT,EAAO;GACP,MAAa,QAAQ,EAAO,aAAa,EAAO;GAChD;EACF,EACG,OAAO,OAAO,EACd,KAAK,GAAG;EACX,GAAI;EAEH;CACE,CAAA;CAQP,OAJI,OAAO,WAAa,MACf,IAGF,EAAa,GAAM,KAAa,SAAS,IAAI;AACtD"}
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./Toast/Toast.cjs`),t=require(`./Toast/Toaster.cjs`);exports.Toast=e.Toast,exports.Toaster=t.Toaster;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./Toast/Toast.cjs"),t=require("./Toast/Toaster.cjs");exports.Toast=e.Toast,exports.Toaster=t.Toaster;
@@ -1,2 +1,2 @@
1
- const e=require(`./ToggleGroup.module.css.cjs`);let t=require(`react`),n=require(`react/jsx-runtime`);var r=(0,t.createContext)(null);function i(){let e=(0,t.useContext)(r);if(!e)throw Error(`ToggleGroupItem must be used inside ToggleGroup`);return e}function a({value:i,onValueChange:a,"aria-label":o=`Options`,children:s,className:c,...l}){let u=(0,t.useRef)(null);function d(e){let t=Array.from(u.current?.querySelectorAll(`[role=radio]:not(:disabled)`)??[]),n=document.activeElement,r=n instanceof HTMLButtonElement?t.indexOf(n):-1;if(r===-1)return;let i=r;if(e.key===`ArrowRight`||e.key===`ArrowDown`)i=(r+1)%t.length;else if(e.key===`ArrowLeft`||e.key===`ArrowUp`)i=(r-1+t.length)%t.length;else if(e.key===`Home`)i=0;else if(e.key===`End`)i=t.length-1;else return;e.preventDefault(),t[i].focus(),t[i].click()}return(0,n.jsx)(r.Provider,{value:{value:i,onValueChange:a},children:(0,n.jsx)(`div`,{ref:u,role:`radiogroup`,"aria-label":o,onKeyDown:d,className:[e.default.group,c].filter(Boolean).join(` `),...l,children:s})})}exports.ToggleGroup=a,exports.useToggleGroup=i;
1
+ const e=require("./ToggleGroup.module.css.cjs");let t=require("react"),n=require("react/jsx-runtime");var r=(0,t.createContext)(null);function i(){let e=(0,t.useContext)(r);if(!e)throw Error(`ToggleGroupItem must be used inside ToggleGroup`);return e}var a=({value:i,onValueChange:a,"aria-label":o=`Options`,children:s,className:c,...l})=>{let u=(0,t.useRef)(null);function d(e){let t=Array.from(u.current?.querySelectorAll(`[role=radio]:not(:disabled)`)??[]),n=document.activeElement,r=n instanceof HTMLButtonElement?t.indexOf(n):-1;if(r===-1)return;let i=r;if(e.key===`ArrowRight`||e.key===`ArrowDown`)i=(r+1)%t.length;else if(e.key===`ArrowLeft`||e.key===`ArrowUp`)i=(r-1+t.length)%t.length;else if(e.key===`Home`)i=0;else if(e.key===`End`)i=t.length-1;else return;e.preventDefault(),t[i].focus(),t[i].click()}return(0,n.jsx)(r.Provider,{value:{value:i,onValueChange:a},children:(0,n.jsx)(`div`,{ref:u,role:`radiogroup`,"aria-label":o,onKeyDown:d,className:[e.default.group,c].filter(Boolean).join(` `),...l,children:s})})};exports.ToggleGroup=a,exports.useToggleGroup=i;
2
2
  //# sourceMappingURL=ToggleGroup.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToggleGroup.cjs","names":[],"sources":["../../../src/components/ToggleGroup/ToggleGroup.tsx"],"sourcesContent":["import {\n createContext,\n type HTMLAttributes,\n type KeyboardEvent,\n type ReactNode,\n useContext,\n useRef,\n} from 'react';\n\nimport styles from './ToggleGroup.module.css';\n\n// ─── Context ──────────────────────────────────────────────────────────────────\n\ninterface ToggleGroupContextValue {\n value: string;\n onValueChange: (value: string) => void;\n}\n\nconst ToggleGroupContext = createContext<ToggleGroupContextValue | null>(null);\n\n// eslint-disable-next-line react-refresh/only-export-components\nexport function useToggleGroup() {\n const ctx = useContext(ToggleGroupContext);\n\n if (!ctx) {\n throw new Error('ToggleGroupItem must be used inside ToggleGroup');\n }\n\n return ctx;\n}\n\n// ─── ToggleGroup ──────────────────────────────────────────────────────────────\n\nexport interface ToggleGroupProps extends HTMLAttributes<HTMLDivElement> {\n /** Name of the currently active toggle. */\n value: string;\n /** Called with the new value when a toggle is selected. */\n onValueChange: (value: string) => void;\n /** Accessible label for the group. */\n 'aria-label'?: string;\n children?: ReactNode;\n}\n\n/**\n * Mutually-exclusive group of toggle buttons for in-place option selection.\n *\n * Mirrors `AdwToggleGroup` (libadwaita 1.7 / GNOME 48).\n *\n * Use for formatting controls, view-mode selectors, and toolbar options —\n * wherever a `ViewSwitcher` would be too heavy or is not placed in a HeaderBar.\n *\n * Compose with `ToggleGroupItem`. Keyboard: ← / → cycle, Home / End jump.\n *\n * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.ToggleGroup.html\n */\nexport function ToggleGroup({\n value,\n onValueChange,\n 'aria-label': ariaLabel = 'Options',\n children,\n className,\n ...props\n}: ToggleGroupProps) {\n const groupRef = useRef<HTMLDivElement>(null);\n\n function handleKeyDown(e: KeyboardEvent<HTMLDivElement>) {\n const items = Array.from(\n groupRef.current?.querySelectorAll<HTMLButtonElement>('[role=radio]:not(:disabled)') ?? [],\n );\n const activeElement = document.activeElement;\n const idx = activeElement instanceof HTMLButtonElement ? items.indexOf(activeElement) : -1;\n\n if (idx === -1) {\n return;\n }\n\n let next = idx;\n if (e.key === 'ArrowRight' || e.key === 'ArrowDown') {\n next = (idx + 1) % items.length;\n } else if (e.key === 'ArrowLeft' || e.key === 'ArrowUp') {\n next = (idx - 1 + items.length) % items.length;\n } else if (e.key === 'Home') {\n next = 0;\n } else if (e.key === 'End') {\n next = items.length - 1;\n } else {\n return;\n }\n\n e.preventDefault();\n items[next].focus();\n items[next].click();\n }\n\n return (\n <ToggleGroupContext.Provider value={{ value, onValueChange }}>\n <div\n ref={groupRef}\n role=\"radiogroup\"\n aria-label={ariaLabel}\n onKeyDown={handleKeyDown}\n className={[styles.group, className].filter(Boolean).join(' ')}\n {...props}\n >\n {children}\n </div>\n </ToggleGroupContext.Provider>\n );\n}\n"],"mappings":"sGAkBA,IAAM,GAAA,EAAA,EAAA,eAAmE,KAAK,CAG9E,SAAgB,GAAiB,CAC/B,IAAM,GAAA,EAAA,EAAA,YAAiB,EAAmB,CAE1C,GAAI,CAAC,EACH,MAAU,MAAM,kDAAkD,CAGpE,OAAO,EA2BT,SAAgB,EAAY,CAC1B,QACA,gBACA,aAAc,EAAY,UAC1B,WACA,YACA,GAAG,GACgB,CACnB,IAAM,GAAA,EAAA,EAAA,QAAkC,KAAK,CAE7C,SAAS,EAAc,EAAkC,CACvD,IAAM,EAAQ,MAAM,KAClB,EAAS,SAAS,iBAAoC,8BAA8B,EAAI,EAAE,CAC3F,CACK,EAAgB,SAAS,cACzB,EAAM,aAAyB,kBAAoB,EAAM,QAAQ,EAAc,CAAG,GAExF,GAAI,IAAQ,GACV,OAGF,IAAI,EAAO,EACX,GAAI,EAAE,MAAQ,cAAgB,EAAE,MAAQ,YACtC,GAAQ,EAAM,GAAK,EAAM,eAChB,EAAE,MAAQ,aAAe,EAAE,MAAQ,UAC5C,GAAQ,EAAM,EAAI,EAAM,QAAU,EAAM,eAC/B,EAAE,MAAQ,OACnB,EAAO,UACE,EAAE,MAAQ,MACnB,EAAO,EAAM,OAAS,OAEtB,OAGF,EAAE,gBAAgB,CAClB,EAAM,GAAM,OAAO,CACnB,EAAM,GAAM,OAAO,CAGrB,OACE,EAAA,EAAA,KAAC,EAAmB,SAApB,CAA6B,MAAO,CAAE,QAAO,gBAAe,WAC1D,EAAA,EAAA,KAAC,MAAD,CACE,IAAK,EACL,KAAK,aACL,aAAY,EACZ,UAAW,EACX,UAAW,CAAC,EAAA,QAAO,MAAO,EAAU,CAAC,OAAO,QAAQ,CAAC,KAAK,IAAI,CAC9D,GAAI,EAEH,WACG,CAAA,CACsB,CAAA"}
1
+ {"version":3,"file":"ToggleGroup.cjs","names":[],"sources":["../../../src/components/ToggleGroup/ToggleGroup.tsx"],"sourcesContent":["import {\n createContext,\n type HTMLAttributes,\n type KeyboardEvent,\n type ReactNode,\n useContext,\n useRef,\n} from 'react';\n\nimport styles from './ToggleGroup.module.css';\n\n// ─── Context ──────────────────────────────────────────────────────────────────\n\ninterface ToggleGroupContextValue {\n value: string;\n onValueChange: (value: string) => void;\n}\n\nconst ToggleGroupContext = createContext<ToggleGroupContextValue | null>(null);\n\n// eslint-disable-next-line react-refresh/only-export-components\nexport function useToggleGroup() {\n const ctx = useContext(ToggleGroupContext);\n\n if (!ctx) {\n throw new Error('ToggleGroupItem must be used inside ToggleGroup');\n }\n\n return ctx;\n}\n\n// ─── ToggleGroup ──────────────────────────────────────────────────────────────\n\nexport interface ToggleGroupProps extends HTMLAttributes<HTMLDivElement> {\n /** Name of the currently active toggle. */\n value: string;\n /** Called with the new value when a toggle is selected. */\n onValueChange: (value: string) => void;\n /** Accessible label for the group. */\n 'aria-label'?: string;\n children?: ReactNode;\n}\n\n/**\n * Mutually-exclusive group of toggle buttons for in-place option selection.\n *\n * Mirrors `AdwToggleGroup` (libadwaita 1.7 / GNOME 48).\n *\n * Use for formatting controls, view-mode selectors, and toolbar options —\n * wherever a `ViewSwitcher` would be too heavy or is not placed in a HeaderBar.\n *\n * Compose with `ToggleGroupItem`. Keyboard: ← / → cycle, Home / End jump.\n *\n * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.ToggleGroup.html\n */\nexport const ToggleGroup = ({\n value,\n onValueChange,\n 'aria-label': ariaLabel = 'Options',\n children,\n className,\n ...props\n}: ToggleGroupProps) => {\n const groupRef = useRef<HTMLDivElement>(null);\n\n function handleKeyDown(e: KeyboardEvent<HTMLDivElement>) {\n const items = Array.from(\n groupRef.current?.querySelectorAll<HTMLButtonElement>('[role=radio]:not(:disabled)') ?? [],\n );\n const activeElement = document.activeElement;\n const idx = activeElement instanceof HTMLButtonElement ? items.indexOf(activeElement) : -1;\n\n if (idx === -1) {\n return;\n }\n\n let next = idx;\n if (e.key === 'ArrowRight' || e.key === 'ArrowDown') {\n next = (idx + 1) % items.length;\n } else if (e.key === 'ArrowLeft' || e.key === 'ArrowUp') {\n next = (idx - 1 + items.length) % items.length;\n } else if (e.key === 'Home') {\n next = 0;\n } else if (e.key === 'End') {\n next = items.length - 1;\n } else {\n return;\n }\n\n e.preventDefault();\n items[next].focus();\n items[next].click();\n }\n\n return (\n <ToggleGroupContext.Provider value={{ value, onValueChange }}>\n <div\n ref={groupRef}\n role=\"radiogroup\"\n aria-label={ariaLabel}\n onKeyDown={handleKeyDown}\n className={[styles.group, className].filter(Boolean).join(' ')}\n {...props}\n >\n {children}\n </div>\n </ToggleGroupContext.Provider>\n );\n};\n"],"mappings":"sGAkBA,IAAM,GAAA,EAAA,EAAA,eAAmE,IAAI,EAG7E,SAAgB,GAAiB,CAC/B,IAAM,GAAA,EAAA,EAAA,YAAiB,CAAkB,EAEzC,GAAI,CAAC,EACH,MAAU,MAAM,iDAAiD,EAGnE,OAAO,CACT,CA0BA,IAAa,GAAe,CAC1B,QACA,gBACA,aAAc,EAAY,UAC1B,WACA,YACA,GAAG,KACmB,CACtB,IAAM,GAAA,EAAA,EAAA,QAAkC,IAAI,EAE5C,SAAS,EAAc,EAAkC,CACvD,IAAM,EAAQ,MAAM,KAClB,EAAS,SAAS,iBAAoC,6BAA6B,GAAK,CAAC,CAC3F,EACM,EAAgB,SAAS,cACzB,EAAM,aAAyB,kBAAoB,EAAM,QAAQ,CAAa,EAAI,GAExF,GAAI,IAAQ,GACV,OAGF,IAAI,EAAO,EACX,GAAI,EAAE,MAAQ,cAAgB,EAAE,MAAQ,YACtC,GAAQ,EAAM,GAAK,EAAM,YACpB,GAAI,EAAE,MAAQ,aAAe,EAAE,MAAQ,UAC5C,GAAQ,EAAM,EAAI,EAAM,QAAU,EAAM,YACnC,GAAI,EAAE,MAAQ,OACnB,EAAO,OACF,GAAI,EAAE,MAAQ,MACnB,EAAO,EAAM,OAAS,OAEtB,OAGF,EAAE,eAAe,EACjB,EAAM,GAAM,MAAM,EAClB,EAAM,GAAM,MAAM,CACpB,CAEA,OACE,EAAA,EAAA,KAAC,EAAmB,SAApB,CAA6B,MAAO,CAAE,QAAO,eAAc,YACzD,EAAA,EAAA,KAAC,MAAD,CACE,IAAK,EACL,KAAK,aACL,aAAY,EACZ,UAAW,EACX,UAAW,CAAC,EAAA,QAAO,MAAO,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,EAC7D,GAAI,EAEH,UACE,CAAA,CACsB,CAAA,CAEjC"}
@@ -25,5 +25,5 @@ export interface ToggleGroupProps extends HTMLAttributes<HTMLDivElement> {
25
25
  *
26
26
  * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.ToggleGroup.html
27
27
  */
28
- export declare function ToggleGroup({ value, onValueChange, 'aria-label': ariaLabel, children, className, ...props }: ToggleGroupProps): import("react/jsx-runtime").JSX.Element;
28
+ export declare const ToggleGroup: ({ value, onValueChange, "aria-label": ariaLabel, children, className, ...props }: ToggleGroupProps) => import("react/jsx-runtime").JSX.Element;
29
29
  export {};
@@ -8,7 +8,7 @@ function o() {
8
8
  if (!e) throw Error("ToggleGroupItem must be used inside ToggleGroup");
9
9
  return e;
10
10
  }
11
- function s({ value: t, onValueChange: n, "aria-label": o = "Options", children: s, className: c, ...l }) {
11
+ var s = ({ value: t, onValueChange: n, "aria-label": o = "Options", children: s, className: c, ...l }) => {
12
12
  let u = r(null);
13
13
  function d(e) {
14
14
  let t = Array.from(u.current?.querySelectorAll("[role=radio]:not(:disabled)") ?? []), n = document.activeElement, r = n instanceof HTMLButtonElement ? t.indexOf(n) : -1;
@@ -36,7 +36,7 @@ function s({ value: t, onValueChange: n, "aria-label": o = "Options", children:
36
36
  children: s
37
37
  })
38
38
  });
39
- }
39
+ };
40
40
  //#endregion
41
41
  export { s as ToggleGroup, o as useToggleGroup };
42
42
 
@@ -1 +1 @@
1
- {"version":3,"file":"ToggleGroup.js","names":[],"sources":["../../../src/components/ToggleGroup/ToggleGroup.tsx"],"sourcesContent":["import {\n createContext,\n type HTMLAttributes,\n type KeyboardEvent,\n type ReactNode,\n useContext,\n useRef,\n} from 'react';\n\nimport styles from './ToggleGroup.module.css';\n\n// ─── Context ──────────────────────────────────────────────────────────────────\n\ninterface ToggleGroupContextValue {\n value: string;\n onValueChange: (value: string) => void;\n}\n\nconst ToggleGroupContext = createContext<ToggleGroupContextValue | null>(null);\n\n// eslint-disable-next-line react-refresh/only-export-components\nexport function useToggleGroup() {\n const ctx = useContext(ToggleGroupContext);\n\n if (!ctx) {\n throw new Error('ToggleGroupItem must be used inside ToggleGroup');\n }\n\n return ctx;\n}\n\n// ─── ToggleGroup ──────────────────────────────────────────────────────────────\n\nexport interface ToggleGroupProps extends HTMLAttributes<HTMLDivElement> {\n /** Name of the currently active toggle. */\n value: string;\n /** Called with the new value when a toggle is selected. */\n onValueChange: (value: string) => void;\n /** Accessible label for the group. */\n 'aria-label'?: string;\n children?: ReactNode;\n}\n\n/**\n * Mutually-exclusive group of toggle buttons for in-place option selection.\n *\n * Mirrors `AdwToggleGroup` (libadwaita 1.7 / GNOME 48).\n *\n * Use for formatting controls, view-mode selectors, and toolbar options —\n * wherever a `ViewSwitcher` would be too heavy or is not placed in a HeaderBar.\n *\n * Compose with `ToggleGroupItem`. Keyboard: ← / → cycle, Home / End jump.\n *\n * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.ToggleGroup.html\n */\nexport function ToggleGroup({\n value,\n onValueChange,\n 'aria-label': ariaLabel = 'Options',\n children,\n className,\n ...props\n}: ToggleGroupProps) {\n const groupRef = useRef<HTMLDivElement>(null);\n\n function handleKeyDown(e: KeyboardEvent<HTMLDivElement>) {\n const items = Array.from(\n groupRef.current?.querySelectorAll<HTMLButtonElement>('[role=radio]:not(:disabled)') ?? [],\n );\n const activeElement = document.activeElement;\n const idx = activeElement instanceof HTMLButtonElement ? items.indexOf(activeElement) : -1;\n\n if (idx === -1) {\n return;\n }\n\n let next = idx;\n if (e.key === 'ArrowRight' || e.key === 'ArrowDown') {\n next = (idx + 1) % items.length;\n } else if (e.key === 'ArrowLeft' || e.key === 'ArrowUp') {\n next = (idx - 1 + items.length) % items.length;\n } else if (e.key === 'Home') {\n next = 0;\n } else if (e.key === 'End') {\n next = items.length - 1;\n } else {\n return;\n }\n\n e.preventDefault();\n items[next].focus();\n items[next].click();\n }\n\n return (\n <ToggleGroupContext.Provider value={{ value, onValueChange }}>\n <div\n ref={groupRef}\n role=\"radiogroup\"\n aria-label={ariaLabel}\n onKeyDown={handleKeyDown}\n className={[styles.group, className].filter(Boolean).join(' ')}\n {...props}\n >\n {children}\n </div>\n </ToggleGroupContext.Provider>\n );\n}\n"],"mappings":";;;;AAkBA,IAAM,IAAqB,EAA8C,KAAK;AAG9E,SAAgB,IAAiB;CAC/B,IAAM,IAAM,EAAW,EAAmB;AAE1C,KAAI,CAAC,EACH,OAAU,MAAM,kDAAkD;AAGpE,QAAO;;AA2BT,SAAgB,EAAY,EAC1B,UACA,kBACA,cAAc,IAAY,WAC1B,aACA,cACA,GAAG,KACgB;CACnB,IAAM,IAAW,EAAuB,KAAK;CAE7C,SAAS,EAAc,GAAkC;EACvD,IAAM,IAAQ,MAAM,KAClB,EAAS,SAAS,iBAAoC,8BAA8B,IAAI,EAAE,CAC3F,EACK,IAAgB,SAAS,eACzB,IAAM,aAAyB,oBAAoB,EAAM,QAAQ,EAAc,GAAG;AAExF,MAAI,MAAQ,GACV;EAGF,IAAI,IAAO;AACX,MAAI,EAAE,QAAQ,gBAAgB,EAAE,QAAQ,YACtC,MAAQ,IAAM,KAAK,EAAM;WAChB,EAAE,QAAQ,eAAe,EAAE,QAAQ,UAC5C,MAAQ,IAAM,IAAI,EAAM,UAAU,EAAM;WAC/B,EAAE,QAAQ,OACnB,KAAO;WACE,EAAE,QAAQ,MACnB,KAAO,EAAM,SAAS;MAEtB;AAKF,EAFA,EAAE,gBAAgB,EAClB,EAAM,GAAM,OAAO,EACnB,EAAM,GAAM,OAAO;;AAGrB,QACE,kBAAC,EAAmB,UAApB;EAA6B,OAAO;GAAE;GAAO;GAAe;YAC1D,kBAAC,OAAD;GACE,KAAK;GACL,MAAK;GACL,cAAY;GACZ,WAAW;GACX,WAAW,CAAC,EAAO,OAAO,EAAU,CAAC,OAAO,QAAQ,CAAC,KAAK,IAAI;GAC9D,GAAI;GAEH;GACG,CAAA;EACsB,CAAA"}
1
+ {"version":3,"file":"ToggleGroup.js","names":[],"sources":["../../../src/components/ToggleGroup/ToggleGroup.tsx"],"sourcesContent":["import {\n createContext,\n type HTMLAttributes,\n type KeyboardEvent,\n type ReactNode,\n useContext,\n useRef,\n} from 'react';\n\nimport styles from './ToggleGroup.module.css';\n\n// ─── Context ──────────────────────────────────────────────────────────────────\n\ninterface ToggleGroupContextValue {\n value: string;\n onValueChange: (value: string) => void;\n}\n\nconst ToggleGroupContext = createContext<ToggleGroupContextValue | null>(null);\n\n// eslint-disable-next-line react-refresh/only-export-components\nexport function useToggleGroup() {\n const ctx = useContext(ToggleGroupContext);\n\n if (!ctx) {\n throw new Error('ToggleGroupItem must be used inside ToggleGroup');\n }\n\n return ctx;\n}\n\n// ─── ToggleGroup ──────────────────────────────────────────────────────────────\n\nexport interface ToggleGroupProps extends HTMLAttributes<HTMLDivElement> {\n /** Name of the currently active toggle. */\n value: string;\n /** Called with the new value when a toggle is selected. */\n onValueChange: (value: string) => void;\n /** Accessible label for the group. */\n 'aria-label'?: string;\n children?: ReactNode;\n}\n\n/**\n * Mutually-exclusive group of toggle buttons for in-place option selection.\n *\n * Mirrors `AdwToggleGroup` (libadwaita 1.7 / GNOME 48).\n *\n * Use for formatting controls, view-mode selectors, and toolbar options —\n * wherever a `ViewSwitcher` would be too heavy or is not placed in a HeaderBar.\n *\n * Compose with `ToggleGroupItem`. Keyboard: ← / → cycle, Home / End jump.\n *\n * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.ToggleGroup.html\n */\nexport const ToggleGroup = ({\n value,\n onValueChange,\n 'aria-label': ariaLabel = 'Options',\n children,\n className,\n ...props\n}: ToggleGroupProps) => {\n const groupRef = useRef<HTMLDivElement>(null);\n\n function handleKeyDown(e: KeyboardEvent<HTMLDivElement>) {\n const items = Array.from(\n groupRef.current?.querySelectorAll<HTMLButtonElement>('[role=radio]:not(:disabled)') ?? [],\n );\n const activeElement = document.activeElement;\n const idx = activeElement instanceof HTMLButtonElement ? items.indexOf(activeElement) : -1;\n\n if (idx === -1) {\n return;\n }\n\n let next = idx;\n if (e.key === 'ArrowRight' || e.key === 'ArrowDown') {\n next = (idx + 1) % items.length;\n } else if (e.key === 'ArrowLeft' || e.key === 'ArrowUp') {\n next = (idx - 1 + items.length) % items.length;\n } else if (e.key === 'Home') {\n next = 0;\n } else if (e.key === 'End') {\n next = items.length - 1;\n } else {\n return;\n }\n\n e.preventDefault();\n items[next].focus();\n items[next].click();\n }\n\n return (\n <ToggleGroupContext.Provider value={{ value, onValueChange }}>\n <div\n ref={groupRef}\n role=\"radiogroup\"\n aria-label={ariaLabel}\n onKeyDown={handleKeyDown}\n className={[styles.group, className].filter(Boolean).join(' ')}\n {...props}\n >\n {children}\n </div>\n </ToggleGroupContext.Provider>\n );\n};\n"],"mappings":";;;;AAkBA,IAAM,IAAqB,EAA8C,IAAI;AAG7E,SAAgB,IAAiB;CAC/B,IAAM,IAAM,EAAW,CAAkB;CAEzC,IAAI,CAAC,GACH,MAAU,MAAM,iDAAiD;CAGnE,OAAO;AACT;AA0BA,IAAa,KAAe,EAC1B,UACA,kBACA,cAAc,IAAY,WAC1B,aACA,cACA,GAAG,QACmB;CACtB,IAAM,IAAW,EAAuB,IAAI;CAE5C,SAAS,EAAc,GAAkC;EACvD,IAAM,IAAQ,MAAM,KAClB,EAAS,SAAS,iBAAoC,6BAA6B,KAAK,CAAC,CAC3F,GACM,IAAgB,SAAS,eACzB,IAAM,aAAyB,oBAAoB,EAAM,QAAQ,CAAa,IAAI;EAExF,IAAI,MAAQ,IACV;EAGF,IAAI,IAAO;EACX,IAAI,EAAE,QAAQ,gBAAgB,EAAE,QAAQ,aACtC,KAAQ,IAAM,KAAK,EAAM;OACpB,IAAI,EAAE,QAAQ,eAAe,EAAE,QAAQ,WAC5C,KAAQ,IAAM,IAAI,EAAM,UAAU,EAAM;OACnC,IAAI,EAAE,QAAQ,QACnB,IAAO;OACF,IAAI,EAAE,QAAQ,OACnB,IAAO,EAAM,SAAS;OAEtB;EAKF,AAFA,EAAE,eAAe,GACjB,EAAM,GAAM,MAAM,GAClB,EAAM,GAAM,MAAM;CACpB;CAEA,OACE,kBAAC,EAAmB,UAApB;EAA6B,OAAO;GAAE;GAAO;EAAc;YACzD,kBAAC,OAAD;GACE,KAAK;GACL,MAAK;GACL,cAAY;GACZ,WAAW;GACX,WAAW,CAAC,EAAO,OAAO,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;GAC7D,GAAI;GAEH;EACE,CAAA;CACsB,CAAA;AAEjC"}
@@ -1,2 +1,2 @@
1
- const e=require(`../Icon/Icon.cjs`),t=require(`./ToggleGroup.module.css.cjs`),n=require(`./ToggleGroup.cjs`);let r=require(`react/jsx-runtime`);function i({name:i,label:a,icon:o,disabled:s,className:c,...l}){let{value:u,onValueChange:d}=n.useToggleGroup(),f=u===i,p=o&&!a;return(0,r.jsxs)(`button`,{type:`button`,role:`radio`,"aria-checked":f,tabIndex:f?0:-1,disabled:s,onClick:()=>d(i),className:[t.default.item,f?t.default.active:null,p?t.default.iconOnly:null,c].filter(Boolean).join(` `),...l,children:[o&&(0,r.jsx)(`span`,{className:t.default.itemIcon,children:(0,r.jsx)(e.Icon,{icon:o,size:`md`,"aria-hidden":!0})}),a&&(0,r.jsx)(`span`,{className:t.default.itemLabel,children:a})]})}exports.ToggleGroupItem=i;
1
+ const e=require("../Icon/Icon.cjs"),t=require("./ToggleGroup.module.css.cjs"),n=require("./ToggleGroup.cjs");let r=require("react/jsx-runtime");var i=({name:i,label:a,icon:o,disabled:s,className:c,...l})=>{let{value:u,onValueChange:d}=n.useToggleGroup(),f=u===i,p=o&&!a;return(0,r.jsxs)(`button`,{type:`button`,role:`radio`,"aria-checked":f,tabIndex:f?0:-1,disabled:s,onClick:()=>d(i),className:[t.default.item,f?t.default.active:null,p?t.default.iconOnly:null,c].filter(Boolean).join(` `),...l,children:[o&&(0,r.jsx)(`span`,{className:t.default.itemIcon,children:(0,r.jsx)(e.Icon,{icon:o,size:`md`,"aria-hidden":!0})}),a&&(0,r.jsx)(`span`,{className:t.default.itemLabel,children:a})]})};exports.ToggleGroupItem=i;
2
2
  //# sourceMappingURL=ToggleGroupItem.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToggleGroupItem.cjs","names":[],"sources":["../../../src/components/ToggleGroup/ToggleGroupItem.tsx"],"sourcesContent":["import type { IconDefinition } from '@gnome-ui/icons';\nimport type { ButtonHTMLAttributes } from 'react';\n\nimport { Icon } from '../Icon';\n\nimport { useToggleGroup } from './ToggleGroup';\nimport styles from './ToggleGroup.module.css';\n\nexport interface ToggleGroupItemProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n /** String identifier — used as the group's `value` when this item is selected. */\n name: string;\n /** Visible label. Omit for icon-only items (provide `aria-label` instead). */\n label?: string;\n /** Icon from `@gnome-ui/icons`. */\n icon?: IconDefinition;\n}\n\n/**\n * Individual toggle inside a `ToggleGroup`.\n *\n * Can be icon-only, label-only, or icon + label. For icon-only items always\n * provide an `aria-label` so screen readers can identify the option.\n */\nexport function ToggleGroupItem({\n name,\n label,\n icon,\n disabled,\n className,\n ...props\n}: ToggleGroupItemProps) {\n const { value, onValueChange } = useToggleGroup();\n const active = value === name;\n const iconOnly = icon && !label;\n\n return (\n <button\n type=\"button\"\n role=\"radio\"\n aria-checked={active}\n tabIndex={active ? 0 : -1}\n disabled={disabled}\n onClick={() => onValueChange(name)}\n className={[\n styles.item,\n active ? styles.active : null,\n iconOnly ? styles.iconOnly : null,\n className,\n ]\n .filter(Boolean)\n .join(' ')}\n {...props}\n >\n {icon && (\n <span className={styles.itemIcon}>\n <Icon icon={icon} size=\"md\" aria-hidden />\n </span>\n )}\n {label && <span className={styles.itemLabel}>{label}</span>}\n </button>\n );\n}\n"],"mappings":"gJAuBA,SAAgB,EAAgB,CAC9B,OACA,QACA,OACA,WACA,YACA,GAAG,GACoB,CACvB,GAAM,CAAE,QAAO,iBAAkB,EAAA,gBAAgB,CAC3C,EAAS,IAAU,EACnB,EAAW,GAAQ,CAAC,EAE1B,OACE,EAAA,EAAA,MAAC,SAAD,CACE,KAAK,SACL,KAAK,QACL,eAAc,EACd,SAAU,EAAS,EAAI,GACb,WACV,YAAe,EAAc,EAAK,CAClC,UAAW,CACT,EAAA,QAAO,KACP,EAAS,EAAA,QAAO,OAAS,KACzB,EAAW,EAAA,QAAO,SAAW,KAC7B,EACD,CACE,OAAO,QAAQ,CACf,KAAK,IAAI,CACZ,GAAI,WAfN,CAiBG,IACC,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,EAAA,QAAO,mBACtB,EAAA,EAAA,KAAC,EAAA,KAAD,CAAY,OAAM,KAAK,KAAK,cAAA,GAAc,CAAA,CACrC,CAAA,CAER,IAAS,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,EAAA,QAAO,mBAAY,EAAa,CAAA,CACpD"}
1
+ {"version":3,"file":"ToggleGroupItem.cjs","names":[],"sources":["../../../src/components/ToggleGroup/ToggleGroupItem.tsx"],"sourcesContent":["import type { IconDefinition } from '@gnome-ui/icons';\nimport type { ButtonHTMLAttributes } from 'react';\n\nimport { Icon } from '../Icon';\n\nimport { useToggleGroup } from './ToggleGroup';\nimport styles from './ToggleGroup.module.css';\n\nexport interface ToggleGroupItemProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n /** String identifier — used as the group's `value` when this item is selected. */\n name: string;\n /** Visible label. Omit for icon-only items (provide `aria-label` instead). */\n label?: string;\n /** Icon from `@gnome-ui/icons`. */\n icon?: IconDefinition;\n}\n\n/**\n * Individual toggle inside a `ToggleGroup`.\n *\n * Can be icon-only, label-only, or icon + label. For icon-only items always\n * provide an `aria-label` so screen readers can identify the option.\n */\nexport const ToggleGroupItem = ({\n name,\n label,\n icon,\n disabled,\n className,\n ...props\n}: ToggleGroupItemProps) => {\n const { value, onValueChange } = useToggleGroup();\n const active = value === name;\n const iconOnly = icon && !label;\n\n return (\n <button\n type=\"button\"\n role=\"radio\"\n aria-checked={active}\n tabIndex={active ? 0 : -1}\n disabled={disabled}\n onClick={() => onValueChange(name)}\n className={[\n styles.item,\n active ? styles.active : null,\n iconOnly ? styles.iconOnly : null,\n className,\n ]\n .filter(Boolean)\n .join(' ')}\n {...props}\n >\n {icon && (\n <span className={styles.itemIcon}>\n <Icon icon={icon} size=\"md\" aria-hidden />\n </span>\n )}\n {label && <span className={styles.itemLabel}>{label}</span>}\n </button>\n );\n};\n"],"mappings":"gJAuBA,IAAa,GAAmB,CAC9B,OACA,QACA,OACA,WACA,YACA,GAAG,KACuB,CAC1B,GAAM,CAAE,QAAO,iBAAkB,EAAA,eAAe,EAC1C,EAAS,IAAU,EACnB,EAAW,GAAQ,CAAC,EAE1B,OACE,EAAA,EAAA,MAAC,SAAD,CACE,KAAK,SACL,KAAK,QACL,eAAc,EACd,SAAU,EAAS,EAAI,GACb,WACV,YAAe,EAAc,CAAI,EACjC,UAAW,CACT,EAAA,QAAO,KACP,EAAS,EAAA,QAAO,OAAS,KACzB,EAAW,EAAA,QAAO,SAAW,KAC7B,CACF,EACG,OAAO,OAAO,EACd,KAAK,GAAG,EACX,GAAI,WAfN,CAiBG,IACC,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,EAAA,QAAO,mBACtB,EAAA,EAAA,KAAC,EAAA,KAAD,CAAY,OAAM,KAAK,KAAK,cAAA,EAAa,CAAA,CACrC,CAAA,EAEP,IAAS,EAAA,EAAA,KAAC,OAAD,CAAM,UAAW,EAAA,QAAO,mBAAY,CAAY,CAAA,CACpD,GAEZ"}
@@ -14,4 +14,4 @@ export interface ToggleGroupItemProps extends ButtonHTMLAttributes<HTMLButtonEle
14
14
  * Can be icon-only, label-only, or icon + label. For icon-only items always
15
15
  * provide an `aria-label` so screen readers can identify the option.
16
16
  */
17
- export declare function ToggleGroupItem({ name, label, icon, disabled, className, ...props }: ToggleGroupItemProps): import("react/jsx-runtime").JSX.Element;
17
+ export declare const ToggleGroupItem: ({ name, label, icon, disabled, className, ...props }: ToggleGroupItemProps) => import("react/jsx-runtime").JSX.Element;
@@ -3,7 +3,7 @@ import t from "./ToggleGroup.module.css.js";
3
3
  import { useToggleGroup as n } from "./ToggleGroup.js";
4
4
  import { jsx as r, jsxs as i } from "react/jsx-runtime";
5
5
  //#region src/components/ToggleGroup/ToggleGroupItem.tsx
6
- function a({ name: a, label: o, icon: s, disabled: c, className: l, ...u }) {
6
+ var a = ({ name: a, label: o, icon: s, disabled: c, className: l, ...u }) => {
7
7
  let { value: d, onValueChange: f } = n(), p = d === a, m = s && !o;
8
8
  return /* @__PURE__ */ i("button", {
9
9
  type: "button",
@@ -31,7 +31,7 @@ function a({ name: a, label: o, icon: s, disabled: c, className: l, ...u }) {
31
31
  children: o
32
32
  })]
33
33
  });
34
- }
34
+ };
35
35
  //#endregion
36
36
  export { a as ToggleGroupItem };
37
37
 
@@ -1 +1 @@
1
- {"version":3,"file":"ToggleGroupItem.js","names":[],"sources":["../../../src/components/ToggleGroup/ToggleGroupItem.tsx"],"sourcesContent":["import type { IconDefinition } from '@gnome-ui/icons';\nimport type { ButtonHTMLAttributes } from 'react';\n\nimport { Icon } from '../Icon';\n\nimport { useToggleGroup } from './ToggleGroup';\nimport styles from './ToggleGroup.module.css';\n\nexport interface ToggleGroupItemProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n /** String identifier — used as the group's `value` when this item is selected. */\n name: string;\n /** Visible label. Omit for icon-only items (provide `aria-label` instead). */\n label?: string;\n /** Icon from `@gnome-ui/icons`. */\n icon?: IconDefinition;\n}\n\n/**\n * Individual toggle inside a `ToggleGroup`.\n *\n * Can be icon-only, label-only, or icon + label. For icon-only items always\n * provide an `aria-label` so screen readers can identify the option.\n */\nexport function ToggleGroupItem({\n name,\n label,\n icon,\n disabled,\n className,\n ...props\n}: ToggleGroupItemProps) {\n const { value, onValueChange } = useToggleGroup();\n const active = value === name;\n const iconOnly = icon && !label;\n\n return (\n <button\n type=\"button\"\n role=\"radio\"\n aria-checked={active}\n tabIndex={active ? 0 : -1}\n disabled={disabled}\n onClick={() => onValueChange(name)}\n className={[\n styles.item,\n active ? styles.active : null,\n iconOnly ? styles.iconOnly : null,\n className,\n ]\n .filter(Boolean)\n .join(' ')}\n {...props}\n >\n {icon && (\n <span className={styles.itemIcon}>\n <Icon icon={icon} size=\"md\" aria-hidden />\n </span>\n )}\n {label && <span className={styles.itemLabel}>{label}</span>}\n </button>\n );\n}\n"],"mappings":";;;;;AAuBA,SAAgB,EAAgB,EAC9B,SACA,UACA,SACA,aACA,cACA,GAAG,KACoB;CACvB,IAAM,EAAE,UAAO,qBAAkB,GAAgB,EAC3C,IAAS,MAAU,GACnB,IAAW,KAAQ,CAAC;AAE1B,QACE,kBAAC,UAAD;EACE,MAAK;EACL,MAAK;EACL,gBAAc;EACd,UAAU,IAAS,IAAI;EACb;EACV,eAAe,EAAc,EAAK;EAClC,WAAW;GACT,EAAO;GACP,IAAS,EAAO,SAAS;GACzB,IAAW,EAAO,WAAW;GAC7B;GACD,CACE,OAAO,QAAQ,CACf,KAAK,IAAI;EACZ,GAAI;YAfN,CAiBG,KACC,kBAAC,QAAD;GAAM,WAAW,EAAO;aACtB,kBAAC,GAAD;IAAY;IAAM,MAAK;IAAK,eAAA;IAAc,CAAA;GACrC,CAAA,EAER,KAAS,kBAAC,QAAD;GAAM,WAAW,EAAO;aAAY;GAAa,CAAA,CACpD"}
1
+ {"version":3,"file":"ToggleGroupItem.js","names":[],"sources":["../../../src/components/ToggleGroup/ToggleGroupItem.tsx"],"sourcesContent":["import type { IconDefinition } from '@gnome-ui/icons';\nimport type { ButtonHTMLAttributes } from 'react';\n\nimport { Icon } from '../Icon';\n\nimport { useToggleGroup } from './ToggleGroup';\nimport styles from './ToggleGroup.module.css';\n\nexport interface ToggleGroupItemProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n /** String identifier — used as the group's `value` when this item is selected. */\n name: string;\n /** Visible label. Omit for icon-only items (provide `aria-label` instead). */\n label?: string;\n /** Icon from `@gnome-ui/icons`. */\n icon?: IconDefinition;\n}\n\n/**\n * Individual toggle inside a `ToggleGroup`.\n *\n * Can be icon-only, label-only, or icon + label. For icon-only items always\n * provide an `aria-label` so screen readers can identify the option.\n */\nexport const ToggleGroupItem = ({\n name,\n label,\n icon,\n disabled,\n className,\n ...props\n}: ToggleGroupItemProps) => {\n const { value, onValueChange } = useToggleGroup();\n const active = value === name;\n const iconOnly = icon && !label;\n\n return (\n <button\n type=\"button\"\n role=\"radio\"\n aria-checked={active}\n tabIndex={active ? 0 : -1}\n disabled={disabled}\n onClick={() => onValueChange(name)}\n className={[\n styles.item,\n active ? styles.active : null,\n iconOnly ? styles.iconOnly : null,\n className,\n ]\n .filter(Boolean)\n .join(' ')}\n {...props}\n >\n {icon && (\n <span className={styles.itemIcon}>\n <Icon icon={icon} size=\"md\" aria-hidden />\n </span>\n )}\n {label && <span className={styles.itemLabel}>{label}</span>}\n </button>\n );\n};\n"],"mappings":";;;;;AAuBA,IAAa,KAAmB,EAC9B,SACA,UACA,SACA,aACA,cACA,GAAG,QACuB;CAC1B,IAAM,EAAE,UAAO,qBAAkB,EAAe,GAC1C,IAAS,MAAU,GACnB,IAAW,KAAQ,CAAC;CAE1B,OACE,kBAAC,UAAD;EACE,MAAK;EACL,MAAK;EACL,gBAAc;EACd,UAAU,IAAS,IAAI;EACb;EACV,eAAe,EAAc,CAAI;EACjC,WAAW;GACT,EAAO;GACP,IAAS,EAAO,SAAS;GACzB,IAAW,EAAO,WAAW;GAC7B;EACF,EACG,OAAO,OAAO,EACd,KAAK,GAAG;EACX,GAAI;YAfN,CAiBG,KACC,kBAAC,QAAD;GAAM,WAAW,EAAO;aACtB,kBAAC,GAAD;IAAY;IAAM,MAAK;IAAK,eAAA;GAAa,CAAA;EACrC,CAAA,GAEP,KAAS,kBAAC,QAAD;GAAM,WAAW,EAAO;aAAY;EAAY,CAAA,CACpD;;AAEZ"}
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./ToggleGroup/ToggleGroup.cjs`),t=require(`./ToggleGroup/ToggleGroupItem.cjs`);exports.ToggleGroup=e.ToggleGroup,exports.ToggleGroupItem=t.ToggleGroupItem;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./ToggleGroup/ToggleGroup.cjs"),t=require("./ToggleGroup/ToggleGroupItem.cjs");exports.ToggleGroup=e.ToggleGroup,exports.ToggleGroupItem=t.ToggleGroupItem;