@gnome-ui/react 1.44.0 → 1.45.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (624) hide show
  1. package/README.md +7 -1
  2. package/dist/components/AboutDialog/AboutDialog.cjs +1 -1
  3. package/dist/components/AboutDialog/AboutDialog.cjs.map +1 -1
  4. package/dist/components/AboutDialog/AboutDialog.js +1 -1
  5. package/dist/components/AboutDialog/AboutDialog.js.map +1 -1
  6. package/dist/components/AboutDialog/AboutDialog.module.css.cjs +1 -1
  7. package/dist/components/AboutDialog/AboutDialog.module.css.cjs.map +1 -1
  8. package/dist/components/AboutDialog/AboutDialog.module.css.js +3 -3
  9. package/dist/components/AboutDialog/AboutDialog.module.css.js.map +1 -1
  10. package/dist/components/AboutDialog/index.d.ts +1 -1
  11. package/dist/components/ActionRow/ActionRow.cjs.map +1 -1
  12. package/dist/components/ActionRow/ActionRow.d.ts +1 -1
  13. package/dist/components/ActionRow/ActionRow.js.map +1 -1
  14. package/dist/components/ActionRow/ActionRow.module.css.cjs +1 -1
  15. package/dist/components/ActionRow/ActionRow.module.css.cjs.map +1 -1
  16. package/dist/components/ActionRow/ActionRow.module.css.js +9 -9
  17. package/dist/components/ActionRow/ActionRow.module.css.js.map +1 -1
  18. package/dist/components/ActionRow/index.d.ts +1 -1
  19. package/dist/components/Avatar/Avatar.cjs.map +1 -1
  20. package/dist/components/Avatar/Avatar.d.ts +2 -2
  21. package/dist/components/Avatar/Avatar.js.map +1 -1
  22. package/dist/components/Avatar/Avatar.module.css.cjs +1 -1
  23. package/dist/components/Avatar/Avatar.module.css.cjs.map +1 -1
  24. package/dist/components/Avatar/Avatar.module.css.js +16 -16
  25. package/dist/components/Avatar/Avatar.module.css.js.map +1 -1
  26. package/dist/components/Avatar/index.d.ts +1 -1
  27. package/dist/components/AvatarRotator/AvatarRotator.cjs.map +1 -1
  28. package/dist/components/AvatarRotator/AvatarRotator.js.map +1 -1
  29. package/dist/components/AvatarRotator/index.d.ts +1 -1
  30. package/dist/components/Badge/Badge.cjs.map +1 -1
  31. package/dist/components/Badge/Badge.d.ts +1 -1
  32. package/dist/components/Badge/Badge.js.map +1 -1
  33. package/dist/components/Badge/Badge.module.css.cjs +1 -1
  34. package/dist/components/Badge/Badge.module.css.cjs.map +1 -1
  35. package/dist/components/Badge/Badge.module.css.js +9 -9
  36. package/dist/components/Badge/Badge.module.css.js.map +1 -1
  37. package/dist/components/Badge/index.d.ts +1 -1
  38. package/dist/components/Banner/Banner.cjs.map +1 -1
  39. package/dist/components/Banner/Banner.d.ts +1 -1
  40. package/dist/components/Banner/Banner.js.map +1 -1
  41. package/dist/components/Banner/Banner.module.css.cjs +1 -1
  42. package/dist/components/Banner/Banner.module.css.cjs.map +1 -1
  43. package/dist/components/Banner/Banner.module.css.js +5 -5
  44. package/dist/components/Banner/Banner.module.css.js.map +1 -1
  45. package/dist/components/Banner/index.d.ts +1 -1
  46. package/dist/components/Bin/Bin.cjs.map +1 -1
  47. package/dist/components/Bin/Bin.js.map +1 -1
  48. package/dist/components/Bin/index.d.ts +1 -1
  49. package/dist/components/Blockquote/Blockquote.cjs.map +1 -1
  50. package/dist/components/Blockquote/Blockquote.d.ts +1 -1
  51. package/dist/components/Blockquote/Blockquote.js.map +1 -1
  52. package/dist/components/Blockquote/Blockquote.module.css.cjs +1 -1
  53. package/dist/components/Blockquote/Blockquote.module.css.cjs.map +1 -1
  54. package/dist/components/Blockquote/Blockquote.module.css.js +11 -11
  55. package/dist/components/Blockquote/Blockquote.module.css.js.map +1 -1
  56. package/dist/components/Blockquote/index.d.ts +1 -1
  57. package/dist/components/BottomSheet/BottomSheet.cjs.map +1 -1
  58. package/dist/components/BottomSheet/BottomSheet.d.ts +1 -1
  59. package/dist/components/BottomSheet/BottomSheet.js.map +1 -1
  60. package/dist/components/BottomSheet/BottomSheet.module.css.cjs +1 -1
  61. package/dist/components/BottomSheet/BottomSheet.module.css.cjs.map +1 -1
  62. package/dist/components/BottomSheet/BottomSheet.module.css.js +3 -3
  63. package/dist/components/BottomSheet/BottomSheet.module.css.js.map +1 -1
  64. package/dist/components/BottomSheet/index.d.ts +1 -1
  65. package/dist/components/Box/Box.cjs.map +1 -1
  66. package/dist/components/Box/Box.d.ts +3 -3
  67. package/dist/components/Box/Box.js.map +1 -1
  68. package/dist/components/Box/index.d.ts +1 -1
  69. package/dist/components/BoxedList/BoxedList.cjs +1 -1
  70. package/dist/components/BoxedList/BoxedList.cjs.map +1 -1
  71. package/dist/components/BoxedList/BoxedList.d.ts +1 -1
  72. package/dist/components/BoxedList/BoxedList.js +0 -1
  73. package/dist/components/BoxedList/BoxedList.js.map +1 -1
  74. package/dist/components/BoxedList/BoxedList.module.css.cjs +1 -1
  75. package/dist/components/BoxedList/BoxedList.module.css.cjs.map +1 -1
  76. package/dist/components/BoxedList/BoxedList.module.css.js +5 -5
  77. package/dist/components/BoxedList/BoxedList.module.css.js.map +1 -1
  78. package/dist/components/BoxedList/index.d.ts +1 -1
  79. package/dist/components/BreakpointBin/BreakpointBin.cjs +1 -1
  80. package/dist/components/BreakpointBin/BreakpointBin.cjs.map +1 -1
  81. package/dist/components/BreakpointBin/BreakpointBin.d.ts +1 -1
  82. package/dist/components/BreakpointBin/BreakpointBin.js +1 -1
  83. package/dist/components/BreakpointBin/BreakpointBin.js.map +1 -1
  84. package/dist/components/BreakpointBin/index.d.ts +1 -1
  85. package/dist/components/Button/Button.cjs.map +1 -1
  86. package/dist/components/Button/Button.d.ts +3 -3
  87. package/dist/components/Button/Button.js.map +1 -1
  88. package/dist/components/Button/Button.module.css.cjs +1 -1
  89. package/dist/components/Button/Button.module.css.cjs.map +1 -1
  90. package/dist/components/Button/Button.module.css.js +11 -11
  91. package/dist/components/Button/Button.module.css.js.map +1 -1
  92. package/dist/components/Button/index.d.ts +1 -1
  93. package/dist/components/ButtonContent/ButtonContent.cjs.map +1 -1
  94. package/dist/components/ButtonContent/ButtonContent.d.ts +1 -1
  95. package/dist/components/ButtonContent/ButtonContent.js.map +1 -1
  96. package/dist/components/ButtonContent/index.d.ts +1 -1
  97. package/dist/components/ButtonRow/ButtonRow.cjs.map +1 -1
  98. package/dist/components/ButtonRow/ButtonRow.d.ts +1 -1
  99. package/dist/components/ButtonRow/ButtonRow.js.map +1 -1
  100. package/dist/components/ButtonRow/ButtonRow.module.css.cjs +1 -1
  101. package/dist/components/ButtonRow/ButtonRow.module.css.cjs.map +1 -1
  102. package/dist/components/ButtonRow/ButtonRow.module.css.js +7 -7
  103. package/dist/components/ButtonRow/ButtonRow.module.css.js.map +1 -1
  104. package/dist/components/ButtonRow/index.d.ts +1 -1
  105. package/dist/components/Card/Card.cjs.map +1 -1
  106. package/dist/components/Card/Card.d.ts +1 -1
  107. package/dist/components/Card/Card.js.map +1 -1
  108. package/dist/components/Card/Card.module.css.cjs +1 -1
  109. package/dist/components/Card/Card.module.css.cjs.map +1 -1
  110. package/dist/components/Card/Card.module.css.js +5 -5
  111. package/dist/components/Card/Card.module.css.js.map +1 -1
  112. package/dist/components/Card/index.d.ts +1 -1
  113. package/dist/components/Carousel/Carousel.cjs +1 -1
  114. package/dist/components/Carousel/Carousel.cjs.map +1 -1
  115. package/dist/components/Carousel/Carousel.d.ts +1 -1
  116. package/dist/components/Carousel/Carousel.js +7 -6
  117. package/dist/components/Carousel/Carousel.js.map +1 -1
  118. package/dist/components/Carousel/Carousel.module.css.cjs +1 -1
  119. package/dist/components/Carousel/Carousel.module.css.cjs.map +1 -1
  120. package/dist/components/Carousel/Carousel.module.css.js +10 -10
  121. package/dist/components/Carousel/Carousel.module.css.js.map +1 -1
  122. package/dist/components/Carousel/index.d.ts +1 -1
  123. package/dist/components/CheckRow/CheckRow.cjs.map +1 -1
  124. package/dist/components/CheckRow/CheckRow.d.ts +1 -1
  125. package/dist/components/CheckRow/CheckRow.js.map +1 -1
  126. package/dist/components/CheckRow/CheckRow.module.css.cjs +1 -1
  127. package/dist/components/CheckRow/CheckRow.module.css.cjs.map +1 -1
  128. package/dist/components/CheckRow/CheckRow.module.css.js +10 -10
  129. package/dist/components/CheckRow/CheckRow.module.css.js.map +1 -1
  130. package/dist/components/CheckRow/index.d.ts +1 -1
  131. package/dist/components/Checkbox/Checkbox.cjs.map +1 -1
  132. package/dist/components/Checkbox/Checkbox.d.ts +2 -2
  133. package/dist/components/Checkbox/Checkbox.js.map +1 -1
  134. package/dist/components/Checkbox/Checkbox.module.css.cjs +1 -1
  135. package/dist/components/Checkbox/Checkbox.module.css.cjs.map +1 -1
  136. package/dist/components/Checkbox/Checkbox.module.css.js +1 -1
  137. package/dist/components/Checkbox/Checkbox.module.css.js.map +1 -1
  138. package/dist/components/Checkbox/index.d.ts +1 -1
  139. package/dist/components/Chip/Chip.cjs.map +1 -1
  140. package/dist/components/Chip/Chip.d.ts +1 -1
  141. package/dist/components/Chip/Chip.js.map +1 -1
  142. package/dist/components/Chip/Chip.module.css.cjs +1 -1
  143. package/dist/components/Chip/Chip.module.css.cjs.map +1 -1
  144. package/dist/components/Chip/Chip.module.css.js +7 -7
  145. package/dist/components/Chip/Chip.module.css.js.map +1 -1
  146. package/dist/components/Chip/index.d.ts +1 -1
  147. package/dist/components/Clamp/Clamp.cjs.map +1 -1
  148. package/dist/components/Clamp/Clamp.js.map +1 -1
  149. package/dist/components/Clamp/index.d.ts +1 -1
  150. package/dist/components/ColorPicker/ColorPicker.cjs.map +1 -1
  151. package/dist/components/ColorPicker/ColorPicker.d.ts +6 -6
  152. package/dist/components/ColorPicker/ColorPicker.js.map +1 -1
  153. package/dist/components/ColorPicker/ColorPicker.module.css.cjs +1 -1
  154. package/dist/components/ColorPicker/ColorPicker.module.css.cjs.map +1 -1
  155. package/dist/components/ColorPicker/ColorPicker.module.css.js +4 -4
  156. package/dist/components/ColorPicker/ColorPicker.module.css.js.map +1 -1
  157. package/dist/components/ColorPicker/index.d.ts +1 -1
  158. package/dist/components/ColumnView/ColumnView.cjs +1 -1
  159. package/dist/components/ColumnView/ColumnView.cjs.map +1 -1
  160. package/dist/components/ColumnView/ColumnView.d.ts +3 -3
  161. package/dist/components/ColumnView/ColumnView.js +2 -5
  162. package/dist/components/ColumnView/ColumnView.js.map +1 -1
  163. package/dist/components/ColumnView/ColumnView.module.css.cjs +1 -1
  164. package/dist/components/ColumnView/ColumnView.module.css.cjs.map +1 -1
  165. package/dist/components/ColumnView/ColumnView.module.css.js +22 -22
  166. package/dist/components/ColumnView/ColumnView.module.css.js.map +1 -1
  167. package/dist/components/ColumnView/index.d.ts +1 -1
  168. package/dist/components/ComboRow/ComboRow.cjs +1 -1
  169. package/dist/components/ComboRow/ComboRow.cjs.map +1 -1
  170. package/dist/components/ComboRow/ComboRow.d.ts +1 -1
  171. package/dist/components/ComboRow/ComboRow.js +0 -2
  172. package/dist/components/ComboRow/ComboRow.js.map +1 -1
  173. package/dist/components/ComboRow/ComboRow.module.css.cjs +1 -1
  174. package/dist/components/ComboRow/ComboRow.module.css.cjs.map +1 -1
  175. package/dist/components/ComboRow/ComboRow.module.css.js +3 -3
  176. package/dist/components/ComboRow/ComboRow.module.css.js.map +1 -1
  177. package/dist/components/ComboRow/index.d.ts +1 -1
  178. package/dist/components/ContributionGraph/ContributionGraph.cjs +1 -1
  179. package/dist/components/ContributionGraph/ContributionGraph.cjs.map +1 -1
  180. package/dist/components/ContributionGraph/ContributionGraph.js +41 -41
  181. package/dist/components/ContributionGraph/ContributionGraph.js.map +1 -1
  182. package/dist/components/ContributionGraph/index.d.ts +1 -1
  183. package/dist/components/CountDownTimer/CountDownTimer.cjs.map +1 -1
  184. package/dist/components/CountDownTimer/CountDownTimer.d.ts +3 -3
  185. package/dist/components/CountDownTimer/CountDownTimer.js.map +1 -1
  186. package/dist/components/CountDownTimer/index.d.ts +1 -1
  187. package/dist/components/Dialog/Dialog.cjs.map +1 -1
  188. package/dist/components/Dialog/Dialog.d.ts +4 -4
  189. package/dist/components/Dialog/Dialog.js.map +1 -1
  190. package/dist/components/Dialog/Dialog.module.css.cjs +1 -1
  191. package/dist/components/Dialog/Dialog.module.css.cjs.map +1 -1
  192. package/dist/components/Dialog/Dialog.module.css.js +6 -6
  193. package/dist/components/Dialog/Dialog.module.css.js.map +1 -1
  194. package/dist/components/Dialog/dialogUtils.cjs.map +1 -1
  195. package/dist/components/Dialog/dialogUtils.js.map +1 -1
  196. package/dist/components/Dialog/index.d.ts +1 -1
  197. package/dist/components/Drawer/Drawer.cjs +1 -1
  198. package/dist/components/Drawer/Drawer.cjs.map +1 -1
  199. package/dist/components/Drawer/Drawer.d.ts +3 -3
  200. package/dist/components/Drawer/Drawer.js +49 -38
  201. package/dist/components/Drawer/Drawer.js.map +1 -1
  202. package/dist/components/Drawer/Drawer.module.css.cjs +1 -1
  203. package/dist/components/Drawer/Drawer.module.css.cjs.map +1 -1
  204. package/dist/components/Drawer/Drawer.module.css.js +7 -6
  205. package/dist/components/Drawer/Drawer.module.css.js.map +1 -1
  206. package/dist/components/Drawer/index.d.ts +1 -1
  207. package/dist/components/Dropdown/Dropdown.cjs.map +1 -1
  208. package/dist/components/Dropdown/Dropdown.d.ts +2 -2
  209. package/dist/components/Dropdown/Dropdown.js.map +1 -1
  210. package/dist/components/Dropdown/Dropdown.module.css.cjs +1 -1
  211. package/dist/components/Dropdown/Dropdown.module.css.cjs.map +1 -1
  212. package/dist/components/Dropdown/Dropdown.module.css.js +3 -3
  213. package/dist/components/Dropdown/Dropdown.module.css.js.map +1 -1
  214. package/dist/components/Dropdown/index.d.ts +1 -1
  215. package/dist/components/EntryRow/EntryRow.cjs.map +1 -1
  216. package/dist/components/EntryRow/EntryRow.js.map +1 -1
  217. package/dist/components/EntryRow/EntryRow.module.css.cjs +1 -1
  218. package/dist/components/EntryRow/EntryRow.module.css.cjs.map +1 -1
  219. package/dist/components/EntryRow/EntryRow.module.css.js +10 -10
  220. package/dist/components/EntryRow/EntryRow.module.css.js.map +1 -1
  221. package/dist/components/EntryRow/index.d.ts +1 -1
  222. package/dist/components/ExpanderRow/ExpanderRow.cjs.map +1 -1
  223. package/dist/components/ExpanderRow/ExpanderRow.js.map +1 -1
  224. package/dist/components/ExpanderRow/ExpanderRow.module.css.cjs +1 -1
  225. package/dist/components/ExpanderRow/ExpanderRow.module.css.cjs.map +1 -1
  226. package/dist/components/ExpanderRow/ExpanderRow.module.css.js +14 -14
  227. package/dist/components/ExpanderRow/ExpanderRow.module.css.js.map +1 -1
  228. package/dist/components/ExpanderRow/index.d.ts +1 -1
  229. package/dist/components/Footer/Footer.cjs.map +1 -1
  230. package/dist/components/Footer/Footer.js.map +1 -1
  231. package/dist/components/Footer/index.d.ts +1 -1
  232. package/dist/components/Frame/Frame.cjs.map +1 -1
  233. package/dist/components/Frame/Frame.js.map +1 -1
  234. package/dist/components/Frame/index.d.ts +1 -1
  235. package/dist/components/GnomeProvider/GnomeContext.cjs.map +1 -1
  236. package/dist/components/GnomeProvider/GnomeContext.d.ts +5 -5
  237. package/dist/components/GnomeProvider/GnomeContext.js.map +1 -1
  238. package/dist/components/GnomeProvider/GnomeProvider.cjs.map +1 -1
  239. package/dist/components/GnomeProvider/GnomeProvider.js.map +1 -1
  240. package/dist/components/HeaderBar/HeaderBar.cjs.map +1 -1
  241. package/dist/components/HeaderBar/HeaderBar.d.ts +1 -1
  242. package/dist/components/HeaderBar/HeaderBar.js.map +1 -1
  243. package/dist/components/HeaderBar/index.d.ts +1 -1
  244. package/dist/components/Icon/Icon.cjs.map +1 -1
  245. package/dist/components/Icon/Icon.d.ts +2 -2
  246. package/dist/components/Icon/Icon.js.map +1 -1
  247. package/dist/components/Icon/index.d.ts +1 -1
  248. package/dist/components/IconButton/IconButton.cjs.map +1 -1
  249. package/dist/components/IconButton/IconButton.d.ts +2 -2
  250. package/dist/components/IconButton/IconButton.js.map +1 -1
  251. package/dist/components/IconButton/index.d.ts +1 -1
  252. package/dist/components/InlineViewSwitcher/InlineViewSwitcher.cjs +1 -1
  253. package/dist/components/InlineViewSwitcher/InlineViewSwitcher.cjs.map +1 -1
  254. package/dist/components/InlineViewSwitcher/InlineViewSwitcher.d.ts +3 -3
  255. package/dist/components/InlineViewSwitcher/InlineViewSwitcher.js +8 -8
  256. package/dist/components/InlineViewSwitcher/InlineViewSwitcher.js.map +1 -1
  257. package/dist/components/InlineViewSwitcher/InlineViewSwitcher.module.css.cjs +1 -1
  258. package/dist/components/InlineViewSwitcher/InlineViewSwitcher.module.css.cjs.map +1 -1
  259. package/dist/components/InlineViewSwitcher/InlineViewSwitcher.module.css.js +10 -10
  260. package/dist/components/InlineViewSwitcher/InlineViewSwitcher.module.css.js.map +1 -1
  261. package/dist/components/InlineViewSwitcher/InlineViewSwitcherItem.cjs.map +1 -1
  262. package/dist/components/InlineViewSwitcher/InlineViewSwitcherItem.d.ts +1 -1
  263. package/dist/components/InlineViewSwitcher/InlineViewSwitcherItem.js.map +1 -1
  264. package/dist/components/InlineViewSwitcher/index.d.ts +2 -2
  265. package/dist/components/Link/Link.cjs.map +1 -1
  266. package/dist/components/Link/Link.js.map +1 -1
  267. package/dist/components/Link/Link.module.css.cjs +1 -1
  268. package/dist/components/Link/Link.module.css.cjs.map +1 -1
  269. package/dist/components/Link/Link.module.css.js +2 -2
  270. package/dist/components/Link/Link.module.css.js.map +1 -1
  271. package/dist/components/Link/index.d.ts +1 -1
  272. package/dist/components/LinkedGroup/LinkedGroup.cjs.map +1 -1
  273. package/dist/components/LinkedGroup/LinkedGroup.js.map +1 -1
  274. package/dist/components/LinkedGroup/LinkedGroup.module.css.cjs +1 -1
  275. package/dist/components/LinkedGroup/LinkedGroup.module.css.cjs.map +1 -1
  276. package/dist/components/LinkedGroup/LinkedGroup.module.css.js +2 -2
  277. package/dist/components/LinkedGroup/LinkedGroup.module.css.js.map +1 -1
  278. package/dist/components/LinkedGroup/index.d.ts +1 -1
  279. package/dist/components/NavigationSplitView/NavigationSplitView.cjs.map +1 -1
  280. package/dist/components/NavigationSplitView/NavigationSplitView.d.ts +1 -1
  281. package/dist/components/NavigationSplitView/NavigationSplitView.js.map +1 -1
  282. package/dist/components/NavigationSplitView/index.d.ts +1 -1
  283. package/dist/components/NavigationView/NavigationView.cjs.map +1 -1
  284. package/dist/components/NavigationView/NavigationView.d.ts +2 -2
  285. package/dist/components/NavigationView/NavigationView.js.map +1 -1
  286. package/dist/components/NavigationView/NavigationView.module.css.cjs +1 -1
  287. package/dist/components/NavigationView/NavigationView.module.css.cjs.map +1 -1
  288. package/dist/components/NavigationView/NavigationView.module.css.js +3 -3
  289. package/dist/components/NavigationView/NavigationView.module.css.js.map +1 -1
  290. package/dist/components/NavigationView/index.d.ts +2 -2
  291. package/dist/components/OverlaySplitView/OverlaySplitView.cjs.map +1 -1
  292. package/dist/components/OverlaySplitView/OverlaySplitView.d.ts +2 -2
  293. package/dist/components/OverlaySplitView/OverlaySplitView.js.map +1 -1
  294. package/dist/components/OverlaySplitView/OverlaySplitView.module.css.cjs +1 -1
  295. package/dist/components/OverlaySplitView/OverlaySplitView.module.css.cjs.map +1 -1
  296. package/dist/components/OverlaySplitView/OverlaySplitView.module.css.js +12 -12
  297. package/dist/components/OverlaySplitView/OverlaySplitView.module.css.js.map +1 -1
  298. package/dist/components/OverlaySplitView/index.d.ts +1 -1
  299. package/dist/components/PasswordEntryRow/PasswordEntryRow.cjs.map +1 -1
  300. package/dist/components/PasswordEntryRow/PasswordEntryRow.d.ts +1 -1
  301. package/dist/components/PasswordEntryRow/PasswordEntryRow.js.map +1 -1
  302. package/dist/components/PasswordEntryRow/PasswordEntryRow.module.css.cjs +1 -1
  303. package/dist/components/PasswordEntryRow/PasswordEntryRow.module.css.cjs.map +1 -1
  304. package/dist/components/PasswordEntryRow/PasswordEntryRow.module.css.js +1 -1
  305. package/dist/components/PasswordEntryRow/PasswordEntryRow.module.css.js.map +1 -1
  306. package/dist/components/PasswordEntryRow/index.d.ts +1 -1
  307. package/dist/components/PathBar/PathBar.cjs.map +1 -1
  308. package/dist/components/PathBar/PathBar.js.map +1 -1
  309. package/dist/components/PathBar/PathBar.module.css.cjs +1 -1
  310. package/dist/components/PathBar/PathBar.module.css.cjs.map +1 -1
  311. package/dist/components/PathBar/PathBar.module.css.js +7 -7
  312. package/dist/components/PathBar/PathBar.module.css.js.map +1 -1
  313. package/dist/components/PathBar/index.d.ts +1 -1
  314. package/dist/components/Popover/Popover.cjs.map +1 -1
  315. package/dist/components/Popover/Popover.d.ts +2 -2
  316. package/dist/components/Popover/Popover.js.map +1 -1
  317. package/dist/components/Popover/Popover.module.css.cjs +1 -1
  318. package/dist/components/Popover/Popover.module.css.cjs.map +1 -1
  319. package/dist/components/Popover/Popover.module.css.js +7 -7
  320. package/dist/components/Popover/Popover.module.css.js.map +1 -1
  321. package/dist/components/Popover/index.d.ts +1 -1
  322. package/dist/components/PreferencesDialog/PreferencesDialog.cjs +1 -1
  323. package/dist/components/PreferencesDialog/PreferencesDialog.cjs.map +1 -1
  324. package/dist/components/PreferencesDialog/PreferencesDialog.d.ts +1 -1
  325. package/dist/components/PreferencesDialog/PreferencesDialog.js +0 -1
  326. package/dist/components/PreferencesDialog/PreferencesDialog.js.map +1 -1
  327. package/dist/components/PreferencesDialog/PreferencesDialog.module.css.cjs +1 -1
  328. package/dist/components/PreferencesDialog/PreferencesDialog.module.css.cjs.map +1 -1
  329. package/dist/components/PreferencesDialog/PreferencesDialog.module.css.js +3 -3
  330. package/dist/components/PreferencesDialog/PreferencesDialog.module.css.js.map +1 -1
  331. package/dist/components/PreferencesDialog/index.d.ts +1 -1
  332. package/dist/components/PreferencesGroup/PreferencesGroup.cjs.map +1 -1
  333. package/dist/components/PreferencesGroup/PreferencesGroup.js.map +1 -1
  334. package/dist/components/PreferencesGroup/index.d.ts +1 -1
  335. package/dist/components/PreferencesPage/PreferencesPage.cjs.map +1 -1
  336. package/dist/components/PreferencesPage/PreferencesPage.js.map +1 -1
  337. package/dist/components/PreferencesPage/index.d.ts +1 -1
  338. package/dist/components/ProgressBar/ProgressBar.cjs.map +1 -1
  339. package/dist/components/ProgressBar/ProgressBar.d.ts +4 -4
  340. package/dist/components/ProgressBar/ProgressBar.js.map +1 -1
  341. package/dist/components/ProgressBar/ProgressBar.module.css.cjs +1 -1
  342. package/dist/components/ProgressBar/ProgressBar.module.css.cjs.map +1 -1
  343. package/dist/components/ProgressBar/ProgressBar.module.css.js +8 -8
  344. package/dist/components/ProgressBar/ProgressBar.module.css.js.map +1 -1
  345. package/dist/components/ProgressBar/index.d.ts +1 -1
  346. package/dist/components/RadioButton/RadioButton.cjs.map +1 -1
  347. package/dist/components/RadioButton/RadioButton.d.ts +2 -2
  348. package/dist/components/RadioButton/RadioButton.js.map +1 -1
  349. package/dist/components/RadioButton/RadioButton.module.css.cjs +1 -1
  350. package/dist/components/RadioButton/RadioButton.module.css.cjs.map +1 -1
  351. package/dist/components/RadioButton/RadioButton.module.css.js +1 -1
  352. package/dist/components/RadioButton/RadioButton.module.css.js.map +1 -1
  353. package/dist/components/RadioButton/index.d.ts +1 -1
  354. package/dist/components/SearchBar/SearchBar.cjs +1 -1
  355. package/dist/components/SearchBar/SearchBar.cjs.map +1 -1
  356. package/dist/components/SearchBar/SearchBar.d.ts +1 -1
  357. package/dist/components/SearchBar/SearchBar.js +1 -3
  358. package/dist/components/SearchBar/SearchBar.js.map +1 -1
  359. package/dist/components/SearchBar/SearchBar.module.css.cjs +1 -1
  360. package/dist/components/SearchBar/SearchBar.module.css.cjs.map +1 -1
  361. package/dist/components/SearchBar/SearchBar.module.css.js +13 -13
  362. package/dist/components/SearchBar/SearchBar.module.css.js.map +1 -1
  363. package/dist/components/SearchBar/index.d.ts +1 -1
  364. package/dist/components/SegmentedBar/SegmentedBar.cjs +2 -0
  365. package/dist/components/SegmentedBar/SegmentedBar.cjs.map +1 -0
  366. package/dist/components/SegmentedBar/SegmentedBar.d.ts +42 -0
  367. package/dist/components/SegmentedBar/SegmentedBar.js +40 -0
  368. package/dist/components/SegmentedBar/SegmentedBar.js.map +1 -0
  369. package/dist/components/SegmentedBar/SegmentedBar.module.css.cjs +2 -0
  370. package/dist/components/SegmentedBar/SegmentedBar.module.css.cjs.map +1 -0
  371. package/dist/components/SegmentedBar/SegmentedBar.module.css.js +18 -0
  372. package/dist/components/SegmentedBar/SegmentedBar.module.css.js.map +1 -0
  373. package/dist/components/SegmentedBar/index.d.ts +2 -0
  374. package/dist/components/SegmentedBar.cjs +1 -0
  375. package/dist/components/SegmentedBar.d.ts +2 -0
  376. package/dist/components/SegmentedBar.js +2 -0
  377. package/dist/components/Separator/Separator.cjs.map +1 -1
  378. package/dist/components/Separator/Separator.d.ts +1 -1
  379. package/dist/components/Separator/Separator.js.map +1 -1
  380. package/dist/components/Separator/index.d.ts +1 -1
  381. package/dist/components/ShortcutLabel/ShortcutLabel.cjs.map +1 -1
  382. package/dist/components/ShortcutLabel/ShortcutLabel.js.map +1 -1
  383. package/dist/components/ShortcutLabel/index.d.ts +1 -1
  384. package/dist/components/ShortcutsDialog/ShortcutsDialog.cjs +1 -1
  385. package/dist/components/ShortcutsDialog/ShortcutsDialog.cjs.map +1 -1
  386. package/dist/components/ShortcutsDialog/ShortcutsDialog.js +0 -1
  387. package/dist/components/ShortcutsDialog/ShortcutsDialog.js.map +1 -1
  388. package/dist/components/ShortcutsDialog/ShortcutsDialog.module.css.cjs +1 -1
  389. package/dist/components/ShortcutsDialog/ShortcutsDialog.module.css.cjs.map +1 -1
  390. package/dist/components/ShortcutsDialog/ShortcutsDialog.module.css.js +3 -3
  391. package/dist/components/ShortcutsDialog/ShortcutsDialog.module.css.js.map +1 -1
  392. package/dist/components/ShortcutsDialog/index.d.ts +1 -1
  393. package/dist/components/Sidebar/Sidebar.cjs.map +1 -1
  394. package/dist/components/Sidebar/Sidebar.d.ts +2 -2
  395. package/dist/components/Sidebar/Sidebar.js.map +1 -1
  396. package/dist/components/Sidebar/Sidebar.module.css.cjs +1 -1
  397. package/dist/components/Sidebar/Sidebar.module.css.cjs.map +1 -1
  398. package/dist/components/Sidebar/Sidebar.module.css.js +2 -2
  399. package/dist/components/Sidebar/Sidebar.module.css.js.map +1 -1
  400. package/dist/components/Sidebar/SidebarItem.cjs.map +1 -1
  401. package/dist/components/Sidebar/SidebarItem.d.ts +1 -1
  402. package/dist/components/Sidebar/SidebarItem.js.map +1 -1
  403. package/dist/components/Sidebar/SidebarSection.cjs +1 -1
  404. package/dist/components/Sidebar/SidebarSection.cjs.map +1 -1
  405. package/dist/components/Sidebar/SidebarSection.d.ts +1 -1
  406. package/dist/components/Sidebar/SidebarSection.js +0 -1
  407. package/dist/components/Sidebar/SidebarSection.js.map +1 -1
  408. package/dist/components/Sidebar/index.d.ts +4 -4
  409. package/dist/components/Sidebar.cjs +1 -1
  410. package/dist/components/Sidebar.js +3 -3
  411. package/dist/components/Skeleton/Skeleton.cjs.map +1 -1
  412. package/dist/components/Skeleton/Skeleton.d.ts +1 -1
  413. package/dist/components/Skeleton/Skeleton.js.map +1 -1
  414. package/dist/components/Skeleton/Skeleton.module.css.cjs +1 -1
  415. package/dist/components/Skeleton/Skeleton.module.css.cjs.map +1 -1
  416. package/dist/components/Skeleton/Skeleton.module.css.js +7 -7
  417. package/dist/components/Skeleton/Skeleton.module.css.js.map +1 -1
  418. package/dist/components/Skeleton/index.d.ts +1 -1
  419. package/dist/components/Slider/Slider.cjs.map +1 -1
  420. package/dist/components/Slider/Slider.d.ts +5 -5
  421. package/dist/components/Slider/Slider.js.map +1 -1
  422. package/dist/components/Slider/Slider.module.css.cjs +1 -1
  423. package/dist/components/Slider/Slider.module.css.cjs.map +1 -1
  424. package/dist/components/Slider/Slider.module.css.js +9 -9
  425. package/dist/components/Slider/Slider.module.css.js.map +1 -1
  426. package/dist/components/Slider/index.d.ts +1 -1
  427. package/dist/components/SpinButton/SpinButton.cjs.map +1 -1
  428. package/dist/components/SpinButton/SpinButton.d.ts +4 -4
  429. package/dist/components/SpinButton/SpinButton.js.map +1 -1
  430. package/dist/components/SpinButton/SpinButton.module.css.cjs +1 -1
  431. package/dist/components/SpinButton/SpinButton.module.css.cjs.map +1 -1
  432. package/dist/components/SpinButton/SpinButton.module.css.js +4 -4
  433. package/dist/components/SpinButton/SpinButton.module.css.js.map +1 -1
  434. package/dist/components/SpinButton/index.d.ts +1 -1
  435. package/dist/components/SpinRow/SpinRow.cjs.map +1 -1
  436. package/dist/components/SpinRow/SpinRow.d.ts +1 -1
  437. package/dist/components/SpinRow/SpinRow.js.map +1 -1
  438. package/dist/components/SpinRow/SpinRow.module.css.cjs +1 -1
  439. package/dist/components/SpinRow/SpinRow.module.css.cjs.map +1 -1
  440. package/dist/components/SpinRow/SpinRow.module.css.js +9 -9
  441. package/dist/components/SpinRow/SpinRow.module.css.js.map +1 -1
  442. package/dist/components/SpinRow/index.d.ts +1 -1
  443. package/dist/components/Spinner/Spinner.cjs.map +1 -1
  444. package/dist/components/Spinner/Spinner.d.ts +1 -1
  445. package/dist/components/Spinner/Spinner.js.map +1 -1
  446. package/dist/components/Spinner/Spinner.module.css.cjs +1 -1
  447. package/dist/components/Spinner/Spinner.module.css.cjs.map +1 -1
  448. package/dist/components/Spinner/Spinner.module.css.js +5 -5
  449. package/dist/components/Spinner/Spinner.module.css.js.map +1 -1
  450. package/dist/components/Spinner/index.d.ts +1 -1
  451. package/dist/components/SplitButton/SplitButton.cjs.map +1 -1
  452. package/dist/components/SplitButton/SplitButton.d.ts +2 -2
  453. package/dist/components/SplitButton/SplitButton.js.map +1 -1
  454. package/dist/components/SplitButton/SplitButton.module.css.cjs +1 -1
  455. package/dist/components/SplitButton/SplitButton.module.css.cjs.map +1 -1
  456. package/dist/components/SplitButton/SplitButton.module.css.js +10 -10
  457. package/dist/components/SplitButton/SplitButton.module.css.js.map +1 -1
  458. package/dist/components/SplitButton/index.d.ts +1 -1
  459. package/dist/components/StatusBadge/StatusBadge.cjs.map +1 -1
  460. package/dist/components/StatusBadge/StatusBadge.d.ts +1 -1
  461. package/dist/components/StatusBadge/StatusBadge.js.map +1 -1
  462. package/dist/components/StatusBadge/StatusBadge.module.css.cjs +1 -1
  463. package/dist/components/StatusBadge/StatusBadge.module.css.cjs.map +1 -1
  464. package/dist/components/StatusBadge/StatusBadge.module.css.js +7 -7
  465. package/dist/components/StatusBadge/StatusBadge.module.css.js.map +1 -1
  466. package/dist/components/StatusBadge/index.d.ts +1 -1
  467. package/dist/components/StatusPage/StatusPage.cjs.map +1 -1
  468. package/dist/components/StatusPage/StatusPage.d.ts +1 -1
  469. package/dist/components/StatusPage/StatusPage.js.map +1 -1
  470. package/dist/components/StatusPage/index.d.ts +1 -1
  471. package/dist/components/Switch/Switch.cjs.map +1 -1
  472. package/dist/components/Switch/Switch.d.ts +2 -2
  473. package/dist/components/Switch/Switch.js.map +1 -1
  474. package/dist/components/Switch/Switch.module.css.cjs +1 -1
  475. package/dist/components/Switch/Switch.module.css.cjs.map +1 -1
  476. package/dist/components/Switch/Switch.module.css.js +1 -1
  477. package/dist/components/Switch/Switch.module.css.js.map +1 -1
  478. package/dist/components/Switch/index.d.ts +1 -1
  479. package/dist/components/SwitchRow/SwitchRow.cjs.map +1 -1
  480. package/dist/components/SwitchRow/SwitchRow.d.ts +1 -1
  481. package/dist/components/SwitchRow/SwitchRow.js.map +1 -1
  482. package/dist/components/SwitchRow/SwitchRow.module.css.cjs +1 -1
  483. package/dist/components/SwitchRow/SwitchRow.module.css.cjs.map +1 -1
  484. package/dist/components/SwitchRow/SwitchRow.module.css.js +9 -9
  485. package/dist/components/SwitchRow/SwitchRow.module.css.js.map +1 -1
  486. package/dist/components/SwitchRow/index.d.ts +1 -1
  487. package/dist/components/Tabs/TabBar.cjs +1 -1
  488. package/dist/components/Tabs/TabBar.cjs.map +1 -1
  489. package/dist/components/Tabs/TabBar.d.ts +2 -2
  490. package/dist/components/Tabs/TabBar.js +8 -8
  491. package/dist/components/Tabs/TabBar.js.map +1 -1
  492. package/dist/components/Tabs/TabItem.cjs +1 -1
  493. package/dist/components/Tabs/TabItem.cjs.map +1 -1
  494. package/dist/components/Tabs/TabItem.d.ts +4 -2
  495. package/dist/components/Tabs/TabItem.js +34 -32
  496. package/dist/components/Tabs/TabItem.js.map +1 -1
  497. package/dist/components/Tabs/TabPanel.cjs +1 -1
  498. package/dist/components/Tabs/TabPanel.cjs.map +1 -1
  499. package/dist/components/Tabs/TabPanel.js +0 -1
  500. package/dist/components/Tabs/TabPanel.js.map +1 -1
  501. package/dist/components/Tabs/Tabs.module.css.cjs +1 -1
  502. package/dist/components/Tabs/Tabs.module.css.cjs.map +1 -1
  503. package/dist/components/Tabs/Tabs.module.css.js +10 -9
  504. package/dist/components/Tabs/Tabs.module.css.js.map +1 -1
  505. package/dist/components/Tabs/index.d.ts +3 -3
  506. package/dist/components/TerminalView/TerminalView.cjs +1 -1
  507. package/dist/components/TerminalView/TerminalView.cjs.map +1 -1
  508. package/dist/components/TerminalView/TerminalView.d.ts +1 -1
  509. package/dist/components/TerminalView/TerminalView.js +1 -1
  510. package/dist/components/TerminalView/TerminalView.js.map +1 -1
  511. package/dist/components/TerminalView/index.d.ts +1 -1
  512. package/dist/components/Text/Text.cjs.map +1 -1
  513. package/dist/components/Text/Text.d.ts +2 -2
  514. package/dist/components/Text/Text.js.map +1 -1
  515. package/dist/components/Text/index.d.ts +1 -1
  516. package/dist/components/TextField/TextField.cjs.map +1 -1
  517. package/dist/components/TextField/TextField.d.ts +1 -1
  518. package/dist/components/TextField/TextField.js.map +1 -1
  519. package/dist/components/TextField/TextField.module.css.cjs +1 -1
  520. package/dist/components/TextField/TextField.module.css.cjs.map +1 -1
  521. package/dist/components/TextField/TextField.module.css.js +7 -7
  522. package/dist/components/TextField/TextField.module.css.js.map +1 -1
  523. package/dist/components/TextField/index.d.ts +1 -1
  524. package/dist/components/Timeline/Timeline.cjs.map +1 -1
  525. package/dist/components/Timeline/Timeline.d.ts +2 -2
  526. package/dist/components/Timeline/Timeline.js.map +1 -1
  527. package/dist/components/Timeline/index.d.ts +1 -1
  528. package/dist/components/Toast/Toast.cjs +1 -1
  529. package/dist/components/Toast/Toast.cjs.map +1 -1
  530. package/dist/components/Toast/Toast.d.ts +1 -1
  531. package/dist/components/Toast/Toast.js +39 -35
  532. package/dist/components/Toast/Toast.js.map +1 -1
  533. package/dist/components/Toast/Toast.module.css.cjs +1 -1
  534. package/dist/components/Toast/Toast.module.css.cjs.map +1 -1
  535. package/dist/components/Toast/Toast.module.css.js +2 -2
  536. package/dist/components/Toast/Toast.module.css.js.map +1 -1
  537. package/dist/components/Toast/Toaster.cjs.map +1 -1
  538. package/dist/components/Toast/Toaster.d.ts +1 -1
  539. package/dist/components/Toast/Toaster.js.map +1 -1
  540. package/dist/components/Toast/index.d.ts +2 -2
  541. package/dist/components/ToggleGroup/ToggleGroup.cjs +1 -1
  542. package/dist/components/ToggleGroup/ToggleGroup.cjs.map +1 -1
  543. package/dist/components/ToggleGroup/ToggleGroup.d.ts +2 -2
  544. package/dist/components/ToggleGroup/ToggleGroup.js +8 -8
  545. package/dist/components/ToggleGroup/ToggleGroup.js.map +1 -1
  546. package/dist/components/ToggleGroup/ToggleGroup.module.css.cjs +1 -1
  547. package/dist/components/ToggleGroup/ToggleGroup.module.css.cjs.map +1 -1
  548. package/dist/components/ToggleGroup/ToggleGroup.module.css.js +6 -6
  549. package/dist/components/ToggleGroup/ToggleGroup.module.css.js.map +1 -1
  550. package/dist/components/ToggleGroup/ToggleGroupItem.cjs.map +1 -1
  551. package/dist/components/ToggleGroup/ToggleGroupItem.d.ts +1 -1
  552. package/dist/components/ToggleGroup/ToggleGroupItem.js.map +1 -1
  553. package/dist/components/ToggleGroup/index.d.ts +2 -2
  554. package/dist/components/Toolbar/Spacer.cjs.map +1 -1
  555. package/dist/components/Toolbar/Spacer.d.ts +1 -2
  556. package/dist/components/Toolbar/Spacer.js.map +1 -1
  557. package/dist/components/Toolbar/Toolbar.cjs.map +1 -1
  558. package/dist/components/Toolbar/Toolbar.js.map +1 -1
  559. package/dist/components/Toolbar/index.d.ts +3 -3
  560. package/dist/components/Toolbar.cjs +1 -1
  561. package/dist/components/Toolbar.js +3 -3
  562. package/dist/components/ToolbarView/ToolbarView.cjs.map +1 -1
  563. package/dist/components/ToolbarView/ToolbarView.js.map +1 -1
  564. package/dist/components/ToolbarView/index.d.ts +1 -1
  565. package/dist/components/Tooltip/Tooltip.cjs +1 -1
  566. package/dist/components/Tooltip/Tooltip.cjs.map +1 -1
  567. package/dist/components/Tooltip/Tooltip.d.ts +2 -2
  568. package/dist/components/Tooltip/Tooltip.js +4 -4
  569. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  570. package/dist/components/Tooltip/Tooltip.module.css.cjs +1 -1
  571. package/dist/components/Tooltip/Tooltip.module.css.cjs.map +1 -1
  572. package/dist/components/Tooltip/Tooltip.module.css.js +6 -6
  573. package/dist/components/Tooltip/Tooltip.module.css.js.map +1 -1
  574. package/dist/components/Tooltip/index.d.ts +1 -1
  575. package/dist/components/ViewSwitcher/ViewSwitcher.cjs +1 -1
  576. package/dist/components/ViewSwitcher/ViewSwitcher.cjs.map +1 -1
  577. package/dist/components/ViewSwitcher/ViewSwitcher.d.ts +2 -2
  578. package/dist/components/ViewSwitcher/ViewSwitcher.js +8 -8
  579. package/dist/components/ViewSwitcher/ViewSwitcher.js.map +1 -1
  580. package/dist/components/ViewSwitcher/ViewSwitcher.module.css.cjs +1 -1
  581. package/dist/components/ViewSwitcher/ViewSwitcher.module.css.cjs.map +1 -1
  582. package/dist/components/ViewSwitcher/ViewSwitcher.module.css.js +5 -5
  583. package/dist/components/ViewSwitcher/ViewSwitcher.module.css.js.map +1 -1
  584. package/dist/components/ViewSwitcher/ViewSwitcherItem.cjs.map +1 -1
  585. package/dist/components/ViewSwitcher/ViewSwitcherItem.d.ts +1 -1
  586. package/dist/components/ViewSwitcher/ViewSwitcherItem.js.map +1 -1
  587. package/dist/components/ViewSwitcher/index.d.ts +2 -2
  588. package/dist/components/ViewSwitcherBar/ViewSwitcherBar.cjs.map +1 -1
  589. package/dist/components/ViewSwitcherBar/ViewSwitcherBar.js.map +1 -1
  590. package/dist/components/ViewSwitcherBar/ViewSwitcherBar.module.css.cjs +1 -1
  591. package/dist/components/ViewSwitcherBar/ViewSwitcherBar.module.css.cjs.map +1 -1
  592. package/dist/components/ViewSwitcherBar/ViewSwitcherBar.module.css.js +1 -1
  593. package/dist/components/ViewSwitcherBar/ViewSwitcherBar.module.css.js.map +1 -1
  594. package/dist/components/ViewSwitcherBar/index.d.ts +1 -1
  595. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebar.cjs +1 -1
  596. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebar.cjs.map +1 -1
  597. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebar.d.ts +2 -2
  598. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebar.js +8 -8
  599. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebar.js.map +1 -1
  600. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebar.module.css.cjs +1 -1
  601. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebar.module.css.cjs.map +1 -1
  602. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebar.module.css.js +14 -14
  603. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebar.module.css.js.map +1 -1
  604. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebarItem.cjs.map +1 -1
  605. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebarItem.d.ts +1 -1
  606. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebarItem.js.map +1 -1
  607. package/dist/components/ViewSwitcherSidebar/index.d.ts +2 -2
  608. package/dist/components/WindowTitle/WindowTitle.cjs.map +1 -1
  609. package/dist/components/WindowTitle/WindowTitle.js.map +1 -1
  610. package/dist/components/WindowTitle/index.d.ts +1 -1
  611. package/dist/components/WrapBox/WrapBox.cjs.map +1 -1
  612. package/dist/components/WrapBox/WrapBox.d.ts +2 -2
  613. package/dist/components/WrapBox/WrapBox.js.map +1 -1
  614. package/dist/components/WrapBox/index.d.ts +1 -1
  615. package/dist/hooks/index.d.ts +3 -3
  616. package/dist/hooks/useBreakpoint.cjs +1 -1
  617. package/dist/hooks/useBreakpoint.cjs.map +1 -1
  618. package/dist/hooks/useBreakpoint.js +12 -12
  619. package/dist/hooks/useBreakpoint.js.map +1 -1
  620. package/dist/index.cjs +1 -1
  621. package/dist/index.d.ts +153 -151
  622. package/dist/index.js +35 -34
  623. package/dist/style.css +1 -1
  624. package/package.json +6 -1
@@ -1,2 +1,2 @@
1
- export { TextField } from './TextField';
2
1
  export type { TextFieldProps } from './TextField';
2
+ export { TextField } from './TextField';
@@ -1 +1 @@
1
- {"version":3,"file":"Timeline.cjs","names":[],"sources":["../../../src/components/Timeline/Timeline.tsx"],"sourcesContent":["import type { HTMLAttributes, ReactNode } from \"react\";\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={[\n styles.root,\n horizontal ? styles.horizontal : styles.vertical,\n className,\n ]\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 = [\n styles.line,\n variant === \"dotted\" ? styles.lineDotted : null,\n ]\n .filter(Boolean)\n .join(\" \");\n\n const node = (\n <div\n className={[\n styles.node,\n item.icon ? styles.nodeWithIcon : styles.nodeDot,\n ]\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 ].filter(Boolean).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 ].filter(Boolean).join(\" \")}\n aria-hidden=\"true\"\n />\n </div>\n ) : (\n <div className={styles.nodeTrack}>\n {node}\n {!isLast && showLine && (\n <div className={lineClass} aria-hidden=\"true\" />\n )}\n </div>\n )}\n\n {/* ── Content ── */}\n <div className={styles.content}>{item.content}</div>\n </div>\n );\n })}\n </div>\n );\n}\n"],"mappings":"gFA+DA,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,CACT,EAAA,QAAO,KACP,EAAa,EAAA,QAAO,WAAa,EAAA,QAAO,SACxC,EACD,CACE,OAAO,QAAQ,CACf,KAAK,IAAI,CACZ,GAAI,WAEH,EAAM,KAAK,EAAM,IAAM,CACtB,IAAM,EAAU,IAAM,EAChB,EAAS,IAAM,EAAM,OAAS,EAE9B,EAAY,CAChB,EAAA,QAAO,KACP,IAAY,SAAW,EAAA,QAAO,WAAa,KAC5C,CACE,OAAO,QAAQ,CACf,KAAK,IAAI,CAEN,GACJ,EAAA,EAAA,KAAC,MAAD,CACE,UAAW,CACT,EAAA,QAAO,KACP,EAAK,KAAO,EAAA,QAAO,aAAe,EAAA,QAAO,QAC1C,CACE,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,KAC1C,GAAW,CAAC,EAAY,EAAA,QAAO,cAAgB,KACjD,CAAC,OAAO,QAAQ,CAAC,KAAK,IAAI,CAC3B,cAAY,OACZ,CAAA,CACD,GACD,EAAA,EAAA,KAAC,MAAD,CACE,UAAW,CACT,EAAA,QAAO,KACP,IAAY,SAAW,EAAA,QAAO,WAAa,KAC1C,GAAU,CAAC,EAAY,EAAA,QAAO,cAAgB,KAChD,CAAC,OAAO,QAAQ,CAAC,KAAK,IAAI,CAC3B,cAAY,OACZ,CAAA,CACE,IAEN,EAAA,EAAA,MAAC,MAAD,CAAK,UAAW,EAAA,QAAO,mBAAvB,CACG,EACA,CAAC,GAAU,IACV,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,EAAW,cAAY,OAAS,CAAA,CAE9C,IAIR,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,EAAA,QAAO,iBAAU,EAAK,QAAc,CAAA,CAChD,EA5CI,EA4CJ,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 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,6 +1,6 @@
1
1
  import { HTMLAttributes, ReactNode } from 'react';
2
- export type TimelineOrientation = "vertical" | "horizontal";
3
- export type TimelineVariant = "default" | "dotted" | "none";
2
+ export type TimelineOrientation = 'vertical' | 'horizontal';
3
+ export type TimelineVariant = 'default' | 'dotted' | 'none';
4
4
  export interface TimelineItem {
5
5
  /** Icon rendered inside the timeline node. */
6
6
  icon?: ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"Timeline.js","names":[],"sources":["../../../src/components/Timeline/Timeline.tsx"],"sourcesContent":["import type { HTMLAttributes, ReactNode } from \"react\";\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={[\n styles.root,\n horizontal ? styles.horizontal : styles.vertical,\n className,\n ]\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 = [\n styles.line,\n variant === \"dotted\" ? styles.lineDotted : null,\n ]\n .filter(Boolean)\n .join(\" \");\n\n const node = (\n <div\n className={[\n styles.node,\n item.icon ? styles.nodeWithIcon : styles.nodeDot,\n ]\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 ].filter(Boolean).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 ].filter(Boolean).join(\" \")}\n aria-hidden=\"true\"\n />\n </div>\n ) : (\n <div className={styles.nodeTrack}>\n {node}\n {!isLast && showLine && (\n <div className={lineClass} aria-hidden=\"true\" />\n )}\n </div>\n )}\n\n {/* ── Content ── */}\n <div className={styles.content}>{item.content}</div>\n </div>\n );\n })}\n </div>\n );\n}\n"],"mappings":";;;AA+DA,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;GACT,EAAO;GACP,IAAa,EAAO,aAAa,EAAO;GACxC;GACD,CACE,OAAO,QAAQ,CACf,KAAK,IAAI;EACZ,GAAI;YAEH,EAAM,KAAK,GAAM,MAAM;GACtB,IAAM,IAAU,MAAM,GAChB,IAAS,MAAM,EAAM,SAAS,GAE9B,IAAY,CAChB,EAAO,MACP,MAAY,WAAW,EAAO,aAAa,KAC5C,CACE,OAAO,QAAQ,CACf,KAAK,IAAI,EAEN,IACJ,kBAAC,OAAD;IACE,WAAW,CACT,EAAO,MACP,EAAK,OAAO,EAAO,eAAe,EAAO,QAC1C,CACE,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;SAC1C,KAAW,CAAC,IAAY,EAAO,gBAAgB;SACjD,CAAC,OAAO,QAAQ,CAAC,KAAK,IAAI;QAC3B,eAAY;QACZ,CAAA;OACD;OACD,kBAAC,OAAD;QACE,WAAW;SACT,EAAO;SACP,MAAY,WAAW,EAAO,aAAa;SAC1C,KAAU,CAAC,IAAY,EAAO,gBAAgB;SAChD,CAAC,OAAO,QAAQ,CAAC,KAAK,IAAI;QAC3B,eAAY;QACZ,CAAA;OACE;UAEN,kBAAC,OAAD;MAAK,WAAW,EAAO;gBAAvB,CACG,GACA,CAAC,KAAU,KACV,kBAAC,OAAD;OAAK,WAAW;OAAW,eAAY;OAAS,CAAA,CAE9C;;KAIR,kBAAC,OAAD;MAAK,WAAW,EAAO;gBAAU,EAAK;MAAc,CAAA;KAChD;MA5CI,EA4CJ;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 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,2 +1,2 @@
1
+ export type { TimelineItem, TimelineOrientation, TimelineProps, TimelineVariant } from './Timeline';
1
2
  export { Timeline } from './Timeline';
2
- export type { TimelineProps, TimelineItem, TimelineOrientation, TimelineVariant } from './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=()=>{p.current&&=(clearTimeout(p.current),null)},_=e=>{e<=0||!s||(g(),h.current=Date.now(),p.current=setTimeout(()=>s(),e))};(0,n.useEffect)(()=>(o>0&&(m.current=o,_(o)),g),[o]);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`);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;
2
2
  //# sourceMappingURL=Toast.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Toast.cjs","names":[],"sources":["../../../src/components/Toast/Toast.tsx"],"sourcesContent":["import {\n useEffect,\n useRef,\n type HTMLAttributes,\n type ReactNode,\n} from \"react\";\nimport { Close } from \"@gnome-ui/icons\";\nimport { Icon } from \"../Icon\";\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 = () => {\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n timerRef.current = null;\n }\n };\n\n const startTimer = (ms: number) => {\n if (ms <= 0 || !onDismiss) return;\n clearTimer();\n startedAtRef.current = Date.now();\n timerRef.current = setTimeout(() => onDismiss(), ms);\n };\n\n // Start auto-dismiss on mount\n useEffect(() => {\n if (duration > 0) {\n remainingRef.current = duration;\n startTimer(duration);\n }\n return clearTimer;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [duration]);\n\n // Pause timer on hover/focus\n const handleMouseEnter = () => {\n if (timerRef.current) {\n const elapsed = Date.now() - startedAtRef.current;\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\n type=\"button\"\n className={styles.actionBtn}\n onClick={handleAction}\n >\n {actionLabel}\n </button>\n )}\n {dismissible && (\n <button\n type=\"button\"\n className={styles.dismissBtn}\n aria-label=\"Dismiss\"\n onClick={() => { clearTimer(); onDismiss?.(); }}\n >\n <Icon icon={Close} size=\"md\" aria-hidden />\n </button>\n )}\n </span>\n )}\n </div>\n );\n}\n"],"mappings":"2JAsCA,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,MAAmB,CACvB,AAEE,EAAS,WADT,aAAa,EAAS,QAAQ,CACX,OAIjB,EAAc,GAAe,CAC7B,GAAM,GAAK,CAAC,IAChB,GAAY,CACZ,EAAa,QAAU,KAAK,KAAK,CACjC,EAAS,QAAU,eAAiB,GAAW,CAAE,EAAG,IAItD,EAAA,EAAA,gBACM,EAAW,IACb,EAAa,QAAU,EACvB,EAAW,EAAS,EAEf,GAEN,CAAC,EAAS,CAAC,CAGd,IAAM,MAAyB,CAC7B,GAAI,EAAS,QAAS,CACpB,IAAM,EAAU,KAAK,KAAK,CAAG,EAAa,QAC1C,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,CACE,KAAK,SACL,UAAW,EAAA,QAAO,UAClB,QAAS,WAER,EACM,CAAA,CAEV,IACC,EAAA,EAAA,KAAC,SAAD,CACE,KAAK,SACL,UAAW,EAAA,QAAO,WAClB,aAAW,UACX,YAAe,CAAE,GAAY,CAAE,KAAa,YAE5C,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 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,5 +1,5 @@
1
1
  import { HTMLAttributes, ReactNode } from 'react';
2
- export interface ToastProps extends Omit<HTMLAttributes<HTMLDivElement>, "title"> {
2
+ export interface ToastProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {
3
3
  /** The notification message. Keep it short — one sentence. */
4
4
  title: ReactNode;
5
5
  /**
@@ -1,55 +1,59 @@
1
1
  import { Icon as e } from "../Icon/Icon.js";
2
2
  import t from "./Toast.module.css.js";
3
- import { useEffect as n, useRef as r } from "react";
4
- import { jsx as i, jsxs as a } from "react/jsx-runtime";
5
- import { Close as o } from "@gnome-ui/icons";
3
+ import { useCallback as n, useEffect as r, useRef as i } from "react";
4
+ import { jsx as a, jsxs as o } from "react/jsx-runtime";
5
+ import { Close as s } from "@gnome-ui/icons";
6
6
  //#region src/components/Toast/Toast.tsx
7
- function s({ title: s, duration: c = 3e3, onDismiss: l, actionLabel: u, onAction: d, dismissible: f = !1, className: p, ...m }) {
8
- let h = r(null), g = r(c), _ = r(0), v = () => {
9
- h.current &&= (clearTimeout(h.current), null);
10
- }, y = (e) => {
11
- e <= 0 || !l || (v(), _.current = Date.now(), h.current = setTimeout(() => l(), e));
12
- };
13
- n(() => (c > 0 && (g.current = c, y(c)), v), [c]);
14
- let b = () => {
15
- if (h.current) {
16
- let e = Date.now() - _.current;
17
- g.current = Math.max(0, g.current - e), v();
7
+ function c({ title: c, duration: l = 3e3, onDismiss: u, actionLabel: d, onAction: f, dismissible: p = !1, className: m, ...h }) {
8
+ let g = i(null), _ = i(l), v = i(0), y = n(() => {
9
+ g.current &&= (clearTimeout(g.current), null);
10
+ }, []), b = n((e) => {
11
+ e <= 0 || !u || (y(), v.current = Date.now(), g.current = setTimeout(() => u(), e));
12
+ }, [u, y]);
13
+ r(() => (l > 0 && (_.current = l, b(l)), y), [
14
+ l,
15
+ b,
16
+ y
17
+ ]);
18
+ let x = () => {
19
+ if (g.current) {
20
+ let e = Date.now() - v.current;
21
+ _.current = Math.max(0, _.current - e), y();
18
22
  }
19
- }, x = () => {
20
- y(g.current);
21
23
  }, S = () => {
22
- v(), d?.(), l?.();
24
+ b(_.current);
25
+ }, C = () => {
26
+ y(), f?.(), u?.();
23
27
  };
24
- return /* @__PURE__ */ a("div", {
28
+ return /* @__PURE__ */ o("div", {
25
29
  role: "status",
26
30
  "aria-live": "polite",
27
31
  "aria-atomic": "true",
28
- className: [t.toast, p].filter(Boolean).join(" "),
29
- onMouseEnter: b,
30
- onMouseLeave: x,
31
- onFocus: b,
32
- onBlur: x,
33
- ...m,
34
- children: [/* @__PURE__ */ i("span", {
32
+ className: [t.toast, m].filter(Boolean).join(" "),
33
+ onMouseEnter: x,
34
+ onMouseLeave: S,
35
+ onFocus: x,
36
+ onBlur: S,
37
+ ...h,
38
+ children: [/* @__PURE__ */ a("span", {
35
39
  className: t.title,
36
- children: s
37
- }), (u || f) && /* @__PURE__ */ a("span", {
40
+ children: c
41
+ }), (d || p) && /* @__PURE__ */ o("span", {
38
42
  className: t.actions,
39
- children: [u && /* @__PURE__ */ i("button", {
43
+ children: [d && /* @__PURE__ */ a("button", {
40
44
  type: "button",
41
45
  className: t.actionBtn,
42
- onClick: S,
43
- children: u
44
- }), f && /* @__PURE__ */ i("button", {
46
+ onClick: C,
47
+ children: d
48
+ }), p && /* @__PURE__ */ a("button", {
45
49
  type: "button",
46
50
  className: t.dismissBtn,
47
51
  "aria-label": "Dismiss",
48
52
  onClick: () => {
49
- v(), l?.();
53
+ y(), u?.();
50
54
  },
51
- children: /* @__PURE__ */ i(e, {
52
- icon: o,
55
+ children: /* @__PURE__ */ a(e, {
56
+ icon: s,
53
57
  size: "md",
54
58
  "aria-hidden": !0
55
59
  })
@@ -58,6 +62,6 @@ function s({ title: s, duration: c = 3e3, onDismiss: l, actionLabel: u, onAction
58
62
  });
59
63
  }
60
64
  //#endregion
61
- export { s as Toast };
65
+ export { c as Toast };
62
66
 
63
67
  //# sourceMappingURL=Toast.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Toast.js","names":[],"sources":["../../../src/components/Toast/Toast.tsx"],"sourcesContent":["import {\n useEffect,\n useRef,\n type HTMLAttributes,\n type ReactNode,\n} from \"react\";\nimport { Close } from \"@gnome-ui/icons\";\nimport { Icon } from \"../Icon\";\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 = () => {\n if (timerRef.current) {\n clearTimeout(timerRef.current);\n timerRef.current = null;\n }\n };\n\n const startTimer = (ms: number) => {\n if (ms <= 0 || !onDismiss) return;\n clearTimer();\n startedAtRef.current = Date.now();\n timerRef.current = setTimeout(() => onDismiss(), ms);\n };\n\n // Start auto-dismiss on mount\n useEffect(() => {\n if (duration > 0) {\n remainingRef.current = duration;\n startTimer(duration);\n }\n return clearTimer;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [duration]);\n\n // Pause timer on hover/focus\n const handleMouseEnter = () => {\n if (timerRef.current) {\n const elapsed = Date.now() - startedAtRef.current;\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\n type=\"button\"\n className={styles.actionBtn}\n onClick={handleAction}\n >\n {actionLabel}\n </button>\n )}\n {dismissible && (\n <button\n type=\"button\"\n className={styles.dismissBtn}\n aria-label=\"Dismiss\"\n onClick={() => { clearTimer(); onDismiss?.(); }}\n >\n <Icon icon={Close} size=\"md\" aria-hidden />\n </button>\n )}\n </span>\n )}\n </div>\n );\n}\n"],"mappings":";;;;;;AAsCA,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,UAAmB;AACvB,EAEE,EAAS,aADT,aAAa,EAAS,QAAQ,EACX;IAIjB,KAAc,MAAe;AAC7B,OAAM,KAAK,CAAC,MAChB,GAAY,EACZ,EAAa,UAAU,KAAK,KAAK,EACjC,EAAS,UAAU,iBAAiB,GAAW,EAAE,EAAG;;AAItD,UACM,IAAW,MACb,EAAa,UAAU,GACvB,EAAW,EAAS,GAEf,IAEN,CAAC,EAAS,CAAC;CAGd,IAAM,UAAyB;AAC7B,MAAI,EAAS,SAAS;GACpB,IAAM,IAAU,KAAK,KAAK,GAAG,EAAa;AAE1C,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;IACE,MAAK;IACL,WAAW,EAAO;IAClB,SAAS;cAER;IACM,CAAA,EAEV,KACC,kBAAC,UAAD;IACE,MAAK;IACL,WAAW,EAAO;IAClB,cAAW;IACX,eAAe;AAAgB,KAAd,GAAY,EAAE,KAAa;;cAE5C,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 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,2 +1,2 @@
1
- var e=`_toaster_1tgvb_3`,t=`_toasterBottom_1tgvb_18`,n=`_toasterTop_1tgvb_22`,r=`_toast_1tgvb_3`,i=`_title_1tgvb_69`,a=`_actions_1tgvb_76`,o=`_actionBtn_1tgvb_85`,s=`_dismissBtn_1tgvb_118`,c={toaster:e,toasterBottom:t,toasterTop:n,toast:r,"toast-in":`_toast-in_1tgvb_1`,title:i,actions:a,actionBtn:o,dismissBtn:s};exports.default=c;
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;
2
2
  //# sourceMappingURL=Toast.module.css.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Toast.module.css.cjs","names":[],"sources":["../../../src/components/Toast/Toast.module.css"],"sourcesContent":["/* ─── Toaster (portal container) ────────────────────────────────────────────── */\n\n.toaster {\n position: fixed;\n left: 50%;\n transform: translateX(-50%);\n z-index: 9999;\n\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--gnome-space-1, 6px);\n\n /* Don't intercept pointer events in empty space */\n pointer-events: none;\n}\n\n.toasterBottom {\n bottom: var(--gnome-space-4, 24px);\n}\n\n.toasterTop {\n top: var(--gnome-space-4, 24px);\n}\n\n/* ─── Toast card ─────────────────────────────────────────────────────────────── */\n\n.toast {\n pointer-events: auto;\n\n display: flex;\n align-items: center;\n gap: var(--gnome-space-2, 12px);\n\n padding: 10px var(--gnome-space-2, 12px) 10px var(--gnome-space-3, 16px);\n min-height: 44px;\n max-width: 480px;\n min-width: 240px;\n\n background-color: var(--gnome-card-bg-color, #ffffff);\n color: var(--gnome-window-fg-color, rgba(0, 0, 0, 0.8));\n\n border-radius: var(--gnome-radius-lg, 12px);\n box-shadow:\n 0 2px 8px rgba(0, 0, 0, 0.15),\n 0 0 0 1px rgba(0, 0, 0, 0.08);\n\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-body, 1rem);\n line-height: var(--gnome-line-height-body, 1.5);\n\n /* Slide in from bottom */\n animation: toast-in var(--gnome-duration-normal, 200ms) var(--gnome-easing-default, ease) both;\n}\n\n@keyframes toast-in {\n from {\n opacity: 0;\n transform: translateY(12px) scale(0.96);\n }\n to {\n opacity: 1;\n transform: translateY(0) scale(1);\n }\n}\n\n/* ─── Title ──────────────────────────────────────────────────────────────────── */\n\n.title {\n flex: 1;\n min-width: 0;\n}\n\n/* ─── Actions ────────────────────────────────────────────────────────────────── */\n\n.actions {\n display: flex;\n align-items: center;\n gap: var(--gnome-space-1, 6px);\n flex-shrink: 0;\n}\n\n/* ─── Action button ──────────────────────────────────────────────────────────── */\n\n.actionBtn {\n appearance: none;\n border: none;\n background: transparent;\n font: inherit;\n font-weight: var(--gnome-font-weight-semibold, 600);\n color: var(--gnome-accent-color, #3584e4);\n cursor: pointer;\n padding: 4px var(--gnome-space-1, 6px);\n border-radius: var(--gnome-radius-sm, 6px);\n\n transition: background-color var(--gnome-duration-fast, 100ms) var(--gnome-easing-default, ease);\n}\n\n.actionBtn:hover {\n background-color: color-mix(in srgb, var(--gnome-accent-color, #3584e4) 10%, transparent);\n}\n\n.actionBtn:active {\n background-color: color-mix(in srgb, var(--gnome-accent-color, #3584e4) 18%, transparent);\n}\n\n.actionBtn:focus {\n outline: none;\n}\n\n.actionBtn:focus-visible {\n outline: var(--gnome-focus-ring-width, 3px) solid var(--gnome-focus-ring-color, #3584e4);\n outline-offset: var(--gnome-focus-ring-offset, 2px);\n}\n\n/* ─── Dismiss button ─────────────────────────────────────────────────────────── */\n\n.dismissBtn {\n appearance: none;\n border: none;\n background: transparent;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n padding: 0;\n border-radius: var(--gnome-radius-sm, 6px);\n color: var(--gnome-window-fg-color, rgba(0, 0, 0, 0.8));\n opacity: 0.55;\n\n transition:\n opacity var(--gnome-duration-fast, 100ms) var(--gnome-easing-default, ease),\n background-color var(--gnome-duration-fast, 100ms) var(--gnome-easing-default, ease);\n}\n\n.dismissBtn:hover {\n opacity: 1;\n background-color: color-mix(in srgb, currentColor 10%, transparent);\n}\n\n.dismissBtn:active {\n background-color: color-mix(in srgb, currentColor 18%, transparent);\n}\n\n.dismissBtn:focus {\n outline: none;\n}\n\n.dismissBtn:focus-visible {\n opacity: 1;\n outline: var(--gnome-focus-ring-width, 3px) solid var(--gnome-focus-ring-color, #3584e4);\n outline-offset: var(--gnome-focus-ring-offset, 2px);\n}\n\n/* ─── Dark mode ──────────────────────────────────────────────────────────────── */\n\n@media (prefers-color-scheme: dark) {\n .toast {\n background-color: var(--gnome-card-bg-color, #383838);\n box-shadow:\n 0 2px 12px rgba(0, 0, 0, 0.4),\n 0 0 0 1px rgba(255, 255, 255, 0.08);\n }\n}\n\n/* ─── Reduced motion ─────────────────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .toast {\n animation: none;\n }\n\n .actionBtn,\n .dismissBtn {\n transition: none;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"Toast.module.css.cjs","names":[],"sources":["../../../src/components/Toast/Toast.module.css"],"sourcesContent":["/* ─── Toaster (portal container) ────────────────────────────────────────────── */\n\n.toaster {\n position: fixed;\n left: 50%;\n transform: translateX(-50%);\n z-index: 9999;\n\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--gnome-space-1, 6px);\n\n /* Don't intercept pointer events in empty space */\n pointer-events: none;\n}\n\n.toasterBottom {\n bottom: var(--gnome-space-4, 24px);\n}\n\n.toasterTop {\n top: var(--gnome-space-4, 24px);\n}\n\n/* ─── Toast card ─────────────────────────────────────────────────────────────── */\n\n.toast {\n pointer-events: auto;\n\n display: flex;\n align-items: center;\n gap: var(--gnome-space-2, 12px);\n\n padding: 10px var(--gnome-space-2, 12px) 10px var(--gnome-space-3, 16px);\n min-height: 44px;\n max-width: 480px;\n min-width: 240px;\n\n background-color: var(--gnome-card-bg-color, #ffffff);\n color: var(--gnome-window-fg-color, rgba(0, 0, 0, 0.8));\n\n border-radius: var(--gnome-radius-lg, 12px);\n box-shadow:\n 0 2px 8px rgba(0, 0, 0, 0.15),\n 0 0 0 1px rgba(0, 0, 0, 0.08);\n\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-body, 1rem);\n line-height: var(--gnome-line-height-body, 1.5);\n\n /* Slide in from bottom */\n animation: toast-in var(--gnome-duration-normal, 200ms) var(--gnome-easing-default, ease) both;\n}\n\n@keyframes toast-in {\n from {\n opacity: 0;\n transform: translateY(12px) scale(0.96);\n }\n to {\n opacity: 1;\n transform: translateY(0) scale(1);\n }\n}\n\n/* ─── Title ──────────────────────────────────────────────────────────────────── */\n\n.title {\n flex: 1;\n min-width: 0;\n}\n\n/* ─── Actions ────────────────────────────────────────────────────────────────── */\n\n.actions {\n display: flex;\n align-items: center;\n gap: var(--gnome-space-1, 6px);\n flex-shrink: 0;\n}\n\n/* ─── Action button ──────────────────────────────────────────────────────────── */\n\n.actionBtn {\n appearance: none;\n border: none;\n background: transparent;\n font: inherit;\n font-weight: var(--gnome-font-weight-semibold, 600);\n color: var(--gnome-accent-color, #3584e4);\n cursor: pointer;\n padding: 4px var(--gnome-space-1, 6px);\n border-radius: var(--gnome-radius-sm, 6px);\n\n transition: background-color var(--gnome-duration-fast, 100ms) var(--gnome-easing-default, ease);\n}\n\n.actionBtn:hover {\n background-color: color-mix(in srgb, var(--gnome-accent-color, #3584e4) 10%, transparent);\n}\n\n.actionBtn:active {\n background-color: color-mix(in srgb, var(--gnome-accent-color, #3584e4) 18%, transparent);\n}\n\n.actionBtn:focus {\n outline: none;\n}\n\n.actionBtn:focus-visible {\n outline: var(--gnome-focus-ring-width, 3px) solid var(--gnome-focus-ring-color, #3584e4);\n outline-offset: var(--gnome-focus-ring-offset, 2px);\n}\n\n/* ─── Dismiss button ─────────────────────────────────────────────────────────── */\n\n.dismissBtn {\n appearance: none;\n border: none;\n background: transparent;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n padding: 0;\n border-radius: var(--gnome-radius-sm, 6px);\n color: var(--gnome-window-fg-color, rgba(0, 0, 0, 0.8));\n opacity: 0.55;\n\n transition:\n opacity var(--gnome-duration-fast, 100ms) var(--gnome-easing-default, ease),\n background-color var(--gnome-duration-fast, 100ms) var(--gnome-easing-default, ease);\n}\n\n.dismissBtn:hover {\n opacity: 1;\n background-color: color-mix(in srgb, currentColor 10%, transparent);\n}\n\n.dismissBtn:active {\n background-color: color-mix(in srgb, currentColor 18%, transparent);\n}\n\n.dismissBtn:focus {\n outline: none;\n}\n\n.dismissBtn:focus-visible {\n opacity: 1;\n outline: var(--gnome-focus-ring-width, 3px) solid var(--gnome-focus-ring-color, #3584e4);\n outline-offset: var(--gnome-focus-ring-offset, 2px);\n}\n\n/* ─── Dark mode ──────────────────────────────────────────────────────────────── */\n\n@media (prefers-color-scheme: dark) {\n .toast {\n background-color: var(--gnome-card-bg-color, #383838);\n box-shadow:\n 0 2px 12px rgba(0, 0, 0, 0.4),\n 0 0 0 1px rgba(255, 255, 255, 0.08);\n }\n}\n\n/* ─── Reduced motion ─────────────────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .toast {\n animation: none;\n }\n\n .actionBtn,\n .dismissBtn {\n transition: none;\n }\n}\n"],"mappings":""}
@@ -1,10 +1,10 @@
1
1
  //#region src/components/Toast/Toast.module.css
2
- var e = "_toaster_1tgvb_3", t = "_toasterBottom_1tgvb_18", n = "_toasterTop_1tgvb_22", r = "_toast_1tgvb_3", i = "_title_1tgvb_69", a = "_actions_1tgvb_76", o = "_actionBtn_1tgvb_85", s = "_dismissBtn_1tgvb_118", c = {
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
3
  toaster: e,
4
4
  toasterBottom: t,
5
5
  toasterTop: n,
6
6
  toast: r,
7
- "toast-in": "_toast-in_1tgvb_1",
7
+ "toast-in": "_toast-in_1poqp_1",
8
8
  title: i,
9
9
  actions: a,
10
10
  actionBtn: o,
@@ -1 +1 @@
1
- {"version":3,"file":"Toast.module.css.js","names":[],"sources":["../../../src/components/Toast/Toast.module.css"],"sourcesContent":["/* ─── Toaster (portal container) ────────────────────────────────────────────── */\n\n.toaster {\n position: fixed;\n left: 50%;\n transform: translateX(-50%);\n z-index: 9999;\n\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--gnome-space-1, 6px);\n\n /* Don't intercept pointer events in empty space */\n pointer-events: none;\n}\n\n.toasterBottom {\n bottom: var(--gnome-space-4, 24px);\n}\n\n.toasterTop {\n top: var(--gnome-space-4, 24px);\n}\n\n/* ─── Toast card ─────────────────────────────────────────────────────────────── */\n\n.toast {\n pointer-events: auto;\n\n display: flex;\n align-items: center;\n gap: var(--gnome-space-2, 12px);\n\n padding: 10px var(--gnome-space-2, 12px) 10px var(--gnome-space-3, 16px);\n min-height: 44px;\n max-width: 480px;\n min-width: 240px;\n\n background-color: var(--gnome-card-bg-color, #ffffff);\n color: var(--gnome-window-fg-color, rgba(0, 0, 0, 0.8));\n\n border-radius: var(--gnome-radius-lg, 12px);\n box-shadow:\n 0 2px 8px rgba(0, 0, 0, 0.15),\n 0 0 0 1px rgba(0, 0, 0, 0.08);\n\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-body, 1rem);\n line-height: var(--gnome-line-height-body, 1.5);\n\n /* Slide in from bottom */\n animation: toast-in var(--gnome-duration-normal, 200ms) var(--gnome-easing-default, ease) both;\n}\n\n@keyframes toast-in {\n from {\n opacity: 0;\n transform: translateY(12px) scale(0.96);\n }\n to {\n opacity: 1;\n transform: translateY(0) scale(1);\n }\n}\n\n/* ─── Title ──────────────────────────────────────────────────────────────────── */\n\n.title {\n flex: 1;\n min-width: 0;\n}\n\n/* ─── Actions ────────────────────────────────────────────────────────────────── */\n\n.actions {\n display: flex;\n align-items: center;\n gap: var(--gnome-space-1, 6px);\n flex-shrink: 0;\n}\n\n/* ─── Action button ──────────────────────────────────────────────────────────── */\n\n.actionBtn {\n appearance: none;\n border: none;\n background: transparent;\n font: inherit;\n font-weight: var(--gnome-font-weight-semibold, 600);\n color: var(--gnome-accent-color, #3584e4);\n cursor: pointer;\n padding: 4px var(--gnome-space-1, 6px);\n border-radius: var(--gnome-radius-sm, 6px);\n\n transition: background-color var(--gnome-duration-fast, 100ms) var(--gnome-easing-default, ease);\n}\n\n.actionBtn:hover {\n background-color: color-mix(in srgb, var(--gnome-accent-color, #3584e4) 10%, transparent);\n}\n\n.actionBtn:active {\n background-color: color-mix(in srgb, var(--gnome-accent-color, #3584e4) 18%, transparent);\n}\n\n.actionBtn:focus {\n outline: none;\n}\n\n.actionBtn:focus-visible {\n outline: var(--gnome-focus-ring-width, 3px) solid var(--gnome-focus-ring-color, #3584e4);\n outline-offset: var(--gnome-focus-ring-offset, 2px);\n}\n\n/* ─── Dismiss button ─────────────────────────────────────────────────────────── */\n\n.dismissBtn {\n appearance: none;\n border: none;\n background: transparent;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n padding: 0;\n border-radius: var(--gnome-radius-sm, 6px);\n color: var(--gnome-window-fg-color, rgba(0, 0, 0, 0.8));\n opacity: 0.55;\n\n transition:\n opacity var(--gnome-duration-fast, 100ms) var(--gnome-easing-default, ease),\n background-color var(--gnome-duration-fast, 100ms) var(--gnome-easing-default, ease);\n}\n\n.dismissBtn:hover {\n opacity: 1;\n background-color: color-mix(in srgb, currentColor 10%, transparent);\n}\n\n.dismissBtn:active {\n background-color: color-mix(in srgb, currentColor 18%, transparent);\n}\n\n.dismissBtn:focus {\n outline: none;\n}\n\n.dismissBtn:focus-visible {\n opacity: 1;\n outline: var(--gnome-focus-ring-width, 3px) solid var(--gnome-focus-ring-color, #3584e4);\n outline-offset: var(--gnome-focus-ring-offset, 2px);\n}\n\n/* ─── Dark mode ──────────────────────────────────────────────────────────────── */\n\n@media (prefers-color-scheme: dark) {\n .toast {\n background-color: var(--gnome-card-bg-color, #383838);\n box-shadow:\n 0 2px 12px rgba(0, 0, 0, 0.4),\n 0 0 0 1px rgba(255, 255, 255, 0.08);\n }\n}\n\n/* ─── Reduced motion ─────────────────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .toast {\n animation: none;\n }\n\n .actionBtn,\n .dismissBtn {\n transition: none;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"Toast.module.css.js","names":[],"sources":["../../../src/components/Toast/Toast.module.css"],"sourcesContent":["/* ─── Toaster (portal container) ────────────────────────────────────────────── */\n\n.toaster {\n position: fixed;\n left: 50%;\n transform: translateX(-50%);\n z-index: 9999;\n\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--gnome-space-1, 6px);\n\n /* Don't intercept pointer events in empty space */\n pointer-events: none;\n}\n\n.toasterBottom {\n bottom: var(--gnome-space-4, 24px);\n}\n\n.toasterTop {\n top: var(--gnome-space-4, 24px);\n}\n\n/* ─── Toast card ─────────────────────────────────────────────────────────────── */\n\n.toast {\n pointer-events: auto;\n\n display: flex;\n align-items: center;\n gap: var(--gnome-space-2, 12px);\n\n padding: 10px var(--gnome-space-2, 12px) 10px var(--gnome-space-3, 16px);\n min-height: 44px;\n max-width: 480px;\n min-width: 240px;\n\n background-color: var(--gnome-card-bg-color, #ffffff);\n color: var(--gnome-window-fg-color, rgba(0, 0, 0, 0.8));\n\n border-radius: var(--gnome-radius-lg, 12px);\n box-shadow:\n 0 2px 8px rgba(0, 0, 0, 0.15),\n 0 0 0 1px rgba(0, 0, 0, 0.08);\n\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-body, 1rem);\n line-height: var(--gnome-line-height-body, 1.5);\n\n /* Slide in from bottom */\n animation: toast-in var(--gnome-duration-normal, 200ms) var(--gnome-easing-default, ease) both;\n}\n\n@keyframes toast-in {\n from {\n opacity: 0;\n transform: translateY(12px) scale(0.96);\n }\n to {\n opacity: 1;\n transform: translateY(0) scale(1);\n }\n}\n\n/* ─── Title ──────────────────────────────────────────────────────────────────── */\n\n.title {\n flex: 1;\n min-width: 0;\n}\n\n/* ─── Actions ────────────────────────────────────────────────────────────────── */\n\n.actions {\n display: flex;\n align-items: center;\n gap: var(--gnome-space-1, 6px);\n flex-shrink: 0;\n}\n\n/* ─── Action button ──────────────────────────────────────────────────────────── */\n\n.actionBtn {\n appearance: none;\n border: none;\n background: transparent;\n font: inherit;\n font-weight: var(--gnome-font-weight-semibold, 600);\n color: var(--gnome-accent-color, #3584e4);\n cursor: pointer;\n padding: 4px var(--gnome-space-1, 6px);\n border-radius: var(--gnome-radius-sm, 6px);\n\n transition: background-color var(--gnome-duration-fast, 100ms) var(--gnome-easing-default, ease);\n}\n\n.actionBtn:hover {\n background-color: color-mix(in srgb, var(--gnome-accent-color, #3584e4) 10%, transparent);\n}\n\n.actionBtn:active {\n background-color: color-mix(in srgb, var(--gnome-accent-color, #3584e4) 18%, transparent);\n}\n\n.actionBtn:focus {\n outline: none;\n}\n\n.actionBtn:focus-visible {\n outline: var(--gnome-focus-ring-width, 3px) solid var(--gnome-focus-ring-color, #3584e4);\n outline-offset: var(--gnome-focus-ring-offset, 2px);\n}\n\n/* ─── Dismiss button ─────────────────────────────────────────────────────────── */\n\n.dismissBtn {\n appearance: none;\n border: none;\n background: transparent;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n padding: 0;\n border-radius: var(--gnome-radius-sm, 6px);\n color: var(--gnome-window-fg-color, rgba(0, 0, 0, 0.8));\n opacity: 0.55;\n\n transition:\n opacity var(--gnome-duration-fast, 100ms) var(--gnome-easing-default, ease),\n background-color var(--gnome-duration-fast, 100ms) var(--gnome-easing-default, ease);\n}\n\n.dismissBtn:hover {\n opacity: 1;\n background-color: color-mix(in srgb, currentColor 10%, transparent);\n}\n\n.dismissBtn:active {\n background-color: color-mix(in srgb, currentColor 18%, transparent);\n}\n\n.dismissBtn:focus {\n outline: none;\n}\n\n.dismissBtn:focus-visible {\n opacity: 1;\n outline: var(--gnome-focus-ring-width, 3px) solid var(--gnome-focus-ring-color, #3584e4);\n outline-offset: var(--gnome-focus-ring-offset, 2px);\n}\n\n/* ─── Dark mode ──────────────────────────────────────────────────────────────── */\n\n@media (prefers-color-scheme: dark) {\n .toast {\n background-color: var(--gnome-card-bg-color, #383838);\n box-shadow:\n 0 2px 12px rgba(0, 0, 0, 0.4),\n 0 0 0 1px rgba(255, 255, 255, 0.08);\n }\n}\n\n/* ─── Reduced motion ─────────────────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .toast {\n animation: none;\n }\n\n .actionBtn,\n .dismissBtn {\n transition: none;\n }\n}\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"Toaster.cjs","names":[],"sources":["../../../src/components/Toast/Toaster.tsx"],"sourcesContent":["import { createPortal } from \"react-dom\";\nimport type { HTMLAttributes, ReactNode } from \"react\";\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\") return node;\n\n return createPortal(node, container ?? document.body);\n}\n"],"mappings":"oGAiCA,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,CAMR,OAFI,OAAO,SAAa,IAAoB,GAE5C,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 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"}
@@ -5,7 +5,7 @@ export interface ToasterProps extends HTMLAttributes<HTMLDivElement> {
5
5
  * - `bottom` (default) — bottom-center, following the GNOME HIG.
6
6
  * - `top` — top-center.
7
7
  */
8
- position?: "bottom" | "top";
8
+ position?: 'bottom' | 'top';
9
9
  /** `<Toast>` elements to display. */
10
10
  children?: ReactNode;
11
11
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Toaster.js","names":[],"sources":["../../../src/components/Toast/Toaster.tsx"],"sourcesContent":["import { createPortal } from \"react-dom\";\nimport type { HTMLAttributes, ReactNode } from \"react\";\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\") return node;\n\n return createPortal(node, container ?? document.body);\n}\n"],"mappings":";;;;AAiCA,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;AAMR,QAFI,OAAO,WAAa,MAAoB,IAErC,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 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,4 +1,4 @@
1
- export { Toast } from './Toast';
2
1
  export type { ToastProps } from './Toast';
3
- export { Toaster } from './Toaster';
2
+ export { Toast } from './Toast';
4
3
  export type { ToasterProps } from './Toaster';
4
+ export { Toaster } from './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=t.findIndex(e=>e===document.activeElement);if(n===-1)return;let r=n;if(e.key===`ArrowRight`||e.key===`ArrowDown`)r=(n+1)%t.length;else if(e.key===`ArrowLeft`||e.key===`ArrowUp`)r=(n-1+t.length)%t.length;else if(e.key===`Home`)r=0;else if(e.key===`End`)r=t.length-1;else return;e.preventDefault(),t[r].focus(),t[r].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}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;
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 useContext,\n useRef,\n type HTMLAttributes,\n type KeyboardEvent,\n type ReactNode,\n} from \"react\";\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\nexport function useToggleGroup() {\n const ctx = useContext(ToggleGroupContext);\n if (!ctx) throw new Error(\"ToggleGroupItem must be used inside ToggleGroup\");\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>(\n \"[role=radio]:not(:disabled)\",\n ) ?? [],\n );\n const idx = items.findIndex((el) => el === document.activeElement);\n if (idx === -1) return;\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\") next = 0;\n else if (e.key === \"End\") next = items.length - 1;\n else return;\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":"sGAiBA,IAAM,GAAA,EAAA,EAAA,eAAmE,KAAK,CAE9E,SAAgB,GAAiB,CAC/B,IAAM,GAAA,EAAA,EAAA,YAAiB,EAAmB,CAC1C,GAAI,CAAC,EAAK,MAAU,MAAM,kDAAkD,CAC5E,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,iBAChB,8BACD,EAAI,EAAE,CACR,CACK,EAAM,EAAM,UAAW,GAAO,IAAO,SAAS,cAAc,CAClE,GAAI,IAAQ,GAAI,OAEhB,IAAI,EAAO,EACX,GAAI,EAAE,MAAQ,cAAgB,EAAE,MAAQ,YACtC,GAAQ,EAAM,GAAK,EAAM,eAClB,EAAE,MAAQ,aAAe,EAAE,MAAQ,UAC1C,GAAQ,EAAM,EAAI,EAAM,QAAU,EAAM,eACjC,EAAE,MAAQ,OAAQ,EAAO,UACzB,EAAE,MAAQ,MAAO,EAAO,EAAM,OAAS,OAC3C,OAEL,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 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"}
@@ -10,7 +10,7 @@ export interface ToggleGroupProps extends HTMLAttributes<HTMLDivElement> {
10
10
  /** Called with the new value when a toggle is selected. */
11
11
  onValueChange: (value: string) => void;
12
12
  /** Accessible label for the group. */
13
- "aria-label"?: string;
13
+ 'aria-label'?: string;
14
14
  children?: ReactNode;
15
15
  }
16
16
  /**
@@ -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 function ToggleGroup({ value, onValueChange, 'aria-label': ariaLabel, children, className, ...props }: ToggleGroupProps): import("react/jsx-runtime").JSX.Element;
29
29
  export {};
@@ -11,15 +11,15 @@ function o() {
11
11
  function 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
- let t = Array.from(u.current?.querySelectorAll("[role=radio]:not(:disabled)") ?? []), n = t.findIndex((e) => e === document.activeElement);
15
- if (n === -1) return;
16
- let r = n;
17
- if (e.key === "ArrowRight" || e.key === "ArrowDown") r = (n + 1) % t.length;
18
- else if (e.key === "ArrowLeft" || e.key === "ArrowUp") r = (n - 1 + t.length) % t.length;
19
- else if (e.key === "Home") r = 0;
20
- else if (e.key === "End") r = t.length - 1;
14
+ let t = Array.from(u.current?.querySelectorAll("[role=radio]:not(:disabled)") ?? []), n = document.activeElement, r = n instanceof HTMLButtonElement ? t.indexOf(n) : -1;
15
+ if (r === -1) return;
16
+ let i = r;
17
+ if (e.key === "ArrowRight" || e.key === "ArrowDown") i = (r + 1) % t.length;
18
+ else if (e.key === "ArrowLeft" || e.key === "ArrowUp") i = (r - 1 + t.length) % t.length;
19
+ else if (e.key === "Home") i = 0;
20
+ else if (e.key === "End") i = t.length - 1;
21
21
  else return;
22
- e.preventDefault(), t[r].focus(), t[r].click();
22
+ e.preventDefault(), t[i].focus(), t[i].click();
23
23
  }
24
24
  return /* @__PURE__ */ i(a.Provider, {
25
25
  value: {
@@ -1 +1 @@
1
- {"version":3,"file":"ToggleGroup.js","names":[],"sources":["../../../src/components/ToggleGroup/ToggleGroup.tsx"],"sourcesContent":["import {\n createContext,\n useContext,\n useRef,\n type HTMLAttributes,\n type KeyboardEvent,\n type ReactNode,\n} from \"react\";\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\nexport function useToggleGroup() {\n const ctx = useContext(ToggleGroupContext);\n if (!ctx) throw new Error(\"ToggleGroupItem must be used inside ToggleGroup\");\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>(\n \"[role=radio]:not(:disabled)\",\n ) ?? [],\n );\n const idx = items.findIndex((el) => el === document.activeElement);\n if (idx === -1) return;\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\") next = 0;\n else if (e.key === \"End\") next = items.length - 1;\n else return;\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":";;;;AAiBA,IAAM,IAAqB,EAA8C,KAAK;AAE9E,SAAgB,IAAiB;CAC/B,IAAM,IAAM,EAAW,EAAmB;AAC1C,KAAI,CAAC,EAAK,OAAU,MAAM,kDAAkD;AAC5E,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,iBAChB,8BACD,IAAI,EAAE,CACR,EACK,IAAM,EAAM,WAAW,MAAO,MAAO,SAAS,cAAc;AAClE,MAAI,MAAQ,GAAI;EAEhB,IAAI,IAAO;AACX,MAAI,EAAE,QAAQ,gBAAgB,EAAE,QAAQ,YACtC,MAAQ,IAAM,KAAK,EAAM;WAClB,EAAE,QAAQ,eAAe,EAAE,QAAQ,UAC1C,MAAQ,IAAM,IAAI,EAAM,UAAU,EAAM;WACjC,EAAE,QAAQ,OAAQ,KAAO;WACzB,EAAE,QAAQ,MAAO,KAAO,EAAM,SAAS;MAC3C;AAIL,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 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,2 +1,2 @@
1
- var e={group:`_group_1fa3l_3`,item:`_item_1fa3l_18`,iconOnly:`_iconOnly_1fa3l_48`,active:`_active_1fa3l_53`,itemIcon:`_itemIcon_1fa3l_86`,itemLabel:`_itemLabel_1fa3l_92`};exports.default=e;
1
+ var e={group:`_group_1g5d7_3`,item:`_item_1g5d7_18`,iconOnly:`_iconOnly_1g5d7_48`,active:`_active_1g5d7_53`,itemIcon:`_itemIcon_1g5d7_87`,itemLabel:`_itemLabel_1g5d7_93`};exports.default=e;
2
2
  //# sourceMappingURL=ToggleGroup.module.css.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToggleGroup.module.css.cjs","names":[],"sources":["../../../src/components/ToggleGroup/ToggleGroup.module.css"],"sourcesContent":["/* ─── Container ─────────────────────────────────────────────────────────────── */\n\n.group {\n display: inline-flex;\n align-items: stretch;\n gap: 0;\n\n background-color: var(--gnome-card-bg-color, #ffffff);\n border: 1px solid var(--gnome-light-3, #deddda);\n border-radius: var(--gnome-radius-md);\n box-shadow: var(--gnome-shadow-sm);\n padding: 2px;\n gap: 2px;\n}\n\n/* ─── Item ──────────────────────────────────────────────────────────────────── */\n\n.item {\n appearance: none;\n -webkit-appearance: none;\n border: none;\n background: transparent;\n font: inherit;\n cursor: pointer;\n outline: none;\n\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--gnome-space-1, 6px);\n\n padding: 4px var(--gnome-space-2, 12px);\n border-radius: calc(var(--gnome-radius-md) - 2px);\n min-height: 28px;\n\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-body, 1rem);\n font-weight: var(--gnome-font-weight-normal, 400);\n color: var(--gnome-window-fg-color, rgba(0, 0, 0, 0.8));\n white-space: nowrap;\n\n transition:\n background-color var(--gnome-duration-fast) var(--gnome-easing-default),\n box-shadow var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n/* Icon-only: square aspect ratio */\n.iconOnly {\n padding: 4px;\n min-width: 28px;\n}\n\n.item:hover:not(:disabled):not(.active) {\n background-color: rgba(0, 0, 0, 0.06);\n}\n\n.item:active:not(:disabled):not(.active) {\n background-color: rgba(0, 0, 0, 0.12);\n}\n\n.item:disabled {\n opacity: var(--gnome-opacity-disabled, 0.5);\n cursor: not-allowed;\n}\n\n/* ─── Focus ─────────────────────────────────────────────────────────────────── */\n\n.item:focus-visible {\n box-shadow:\n 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-card-bg-color, #ffffff),\n 0 0 0 calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 2px))\n var(--gnome-focus-ring-color, #3584e4);\n}\n\n/* ─── Active ────────────────────────────────────────────────────────────────── */\n\n.active {\n background-color: color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 15%, transparent);\n color: var(--gnome-accent-color, #3584e4);\n font-weight: var(--gnome-font-weight-semibold, 600);\n box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 40%, transparent);\n}\n\n/* ─── Icon ──────────────────────────────────────────────────────────────────── */\n\n.itemIcon {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n}\n\n.itemLabel {\n line-height: 1;\n}\n\n/* ─── Dark mode ─────────────────────────────────────────────────────────────── */\n\n@media (prefers-color-scheme: dark) {\n .group {\n background-color: var(--gnome-card-bg-color, #383838);\n border-color: rgba(255, 255, 255, 0.12);\n box-shadow: none;\n }\n\n .item:hover:not(:disabled):not(.active) {\n background-color: rgba(255, 255, 255, 0.08);\n }\n\n .item:active:not(:disabled):not(.active) {\n background-color: rgba(255, 255, 255, 0.14);\n }\n\n .item:focus-visible {\n box-shadow:\n 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-card-bg-color, #383838),\n 0 0 0 calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 2px))\n var(--gnome-focus-ring-color, #78aeed);\n }\n\n .active {\n background-color: color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 25%, transparent);\n color: var(--gnome-accent-color, #78aeed);\n box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 50%, transparent);\n }\n}\n\n/* ─── Reduced motion ────────────────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .item {\n transition: none;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"ToggleGroup.module.css.cjs","names":[],"sources":["../../../src/components/ToggleGroup/ToggleGroup.module.css"],"sourcesContent":["/* ─── Container ─────────────────────────────────────────────────────────────── */\n\n.group {\n display: inline-flex;\n align-items: stretch;\n gap: 0;\n\n background-color: var(--gnome-card-bg-color, #ffffff);\n border: 1px solid var(--gnome-light-3, #deddda);\n border-radius: var(--gnome-radius-md);\n box-shadow: var(--gnome-shadow-sm);\n padding: 2px;\n gap: 2px;\n}\n\n/* ─── Item ──────────────────────────────────────────────────────────────────── */\n\n.item {\n appearance: none;\n -webkit-appearance: none;\n border: none;\n background: transparent;\n font: inherit;\n cursor: pointer;\n outline: none;\n\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: var(--gnome-space-1, 6px);\n\n padding: 4px var(--gnome-space-2, 12px);\n border-radius: calc(var(--gnome-radius-md) - 2px);\n min-height: 28px;\n\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-body, 1rem);\n font-weight: var(--gnome-font-weight-normal, 400);\n color: var(--gnome-window-fg-color, rgba(0, 0, 0, 0.8));\n white-space: nowrap;\n\n transition:\n background-color var(--gnome-duration-fast) var(--gnome-easing-default),\n box-shadow var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n/* Icon-only: square aspect ratio */\n.iconOnly {\n padding: 4px;\n min-width: 28px;\n}\n\n.item:hover:not(:disabled):not(.active) {\n background-color: rgba(0, 0, 0, 0.06);\n}\n\n.item:active:not(:disabled):not(.active) {\n background-color: rgba(0, 0, 0, 0.12);\n}\n\n.item:disabled {\n opacity: var(--gnome-opacity-disabled, 0.5);\n cursor: not-allowed;\n}\n\n/* ─── Focus ─────────────────────────────────────────────────────────────────── */\n\n.item:focus-visible {\n box-shadow:\n 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-card-bg-color, #ffffff),\n 0 0 0 calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 2px))\n var(--gnome-focus-ring-color, #3584e4);\n}\n\n/* ─── Active ────────────────────────────────────────────────────────────────── */\n\n.active {\n background-color: color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 15%, transparent);\n color: var(--gnome-accent-color, #3584e4);\n font-weight: var(--gnome-font-weight-semibold, 600);\n box-shadow: inset 0 0 0 1px\n color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 40%, transparent);\n}\n\n/* ─── Icon ──────────────────────────────────────────────────────────────────── */\n\n.itemIcon {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n}\n\n.itemLabel {\n line-height: 1;\n}\n\n/* ─── Dark mode ─────────────────────────────────────────────────────────────── */\n\n@media (prefers-color-scheme: dark) {\n .group {\n background-color: var(--gnome-card-bg-color, #383838);\n border-color: rgba(255, 255, 255, 0.12);\n box-shadow: none;\n }\n\n .item:hover:not(:disabled):not(.active) {\n background-color: rgba(255, 255, 255, 0.08);\n }\n\n .item:active:not(:disabled):not(.active) {\n background-color: rgba(255, 255, 255, 0.14);\n }\n\n .item:focus-visible {\n box-shadow:\n 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-card-bg-color, #383838),\n 0 0 0 calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 2px))\n var(--gnome-focus-ring-color, #78aeed);\n }\n\n .active {\n background-color: color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 25%, transparent);\n color: var(--gnome-accent-color, #78aeed);\n box-shadow: inset 0 0 0 1px\n color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 50%, transparent);\n }\n}\n\n/* ─── Reduced motion ────────────────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .item {\n transition: none;\n }\n}\n"],"mappings":""}
@@ -1,10 +1,10 @@
1
1
  var e = {
2
- group: "_group_1fa3l_3",
3
- item: "_item_1fa3l_18",
4
- iconOnly: "_iconOnly_1fa3l_48",
5
- active: "_active_1fa3l_53",
6
- itemIcon: "_itemIcon_1fa3l_86",
7
- itemLabel: "_itemLabel_1fa3l_92"
2
+ group: "_group_1g5d7_3",
3
+ item: "_item_1g5d7_18",
4
+ iconOnly: "_iconOnly_1g5d7_48",
5
+ active: "_active_1g5d7_53",
6
+ itemIcon: "_itemIcon_1g5d7_87",
7
+ itemLabel: "_itemLabel_1g5d7_93"
8
8
  };
9
9
  //#endregion
10
10
  export { e as default };