@gnome-ui/react 1.48.0 → 1.49.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (372) hide show
  1. package/README.md +2 -0
  2. package/dist/components/AboutDialog/AboutDialog.module.css.cjs +1 -1
  3. package/dist/components/AboutDialog/AboutDialog.module.css.cjs.map +1 -1
  4. package/dist/components/AboutDialog/AboutDialog.module.css.js +28 -28
  5. package/dist/components/AboutDialog/AboutDialog.module.css.js.map +1 -1
  6. package/dist/components/ActionRow/ActionRow.module.css.cjs +1 -1
  7. package/dist/components/ActionRow/ActionRow.module.css.cjs.map +1 -1
  8. package/dist/components/ActionRow/ActionRow.module.css.js +9 -9
  9. package/dist/components/ActionRow/ActionRow.module.css.js.map +1 -1
  10. package/dist/components/Avatar/Avatar.module.css.cjs +1 -1
  11. package/dist/components/Avatar/Avatar.module.css.cjs.map +1 -1
  12. package/dist/components/Avatar/Avatar.module.css.js +16 -16
  13. package/dist/components/Avatar/Avatar.module.css.js.map +1 -1
  14. package/dist/components/AvatarGroup/AvatarGroup.cjs +2 -0
  15. package/dist/components/AvatarGroup/AvatarGroup.cjs.map +1 -0
  16. package/dist/components/AvatarGroup/AvatarGroup.d.ts +16 -0
  17. package/dist/components/AvatarGroup/AvatarGroup.js +36 -0
  18. package/dist/components/AvatarGroup/AvatarGroup.js.map +1 -0
  19. package/dist/components/AvatarGroup/AvatarGroup.module.css.cjs +2 -0
  20. package/dist/components/AvatarGroup/AvatarGroup.module.css.cjs.map +1 -0
  21. package/dist/components/AvatarGroup/AvatarGroup.module.css.js +13 -0
  22. package/dist/components/AvatarGroup/AvatarGroup.module.css.js.map +1 -0
  23. package/dist/components/AvatarGroup/index.d.ts +2 -0
  24. package/dist/components/AvatarGroup.cjs +1 -0
  25. package/dist/components/AvatarGroup.d.ts +2 -0
  26. package/dist/components/AvatarGroup.js +2 -0
  27. package/dist/components/Badge/Badge.module.css.cjs +1 -1
  28. package/dist/components/Badge/Badge.module.css.cjs.map +1 -1
  29. package/dist/components/Badge/Badge.module.css.js +9 -9
  30. package/dist/components/Badge/Badge.module.css.js.map +1 -1
  31. package/dist/components/Banner/Banner.module.css.cjs +1 -1
  32. package/dist/components/Banner/Banner.module.css.cjs.map +1 -1
  33. package/dist/components/Banner/Banner.module.css.js +13 -13
  34. package/dist/components/Banner/Banner.module.css.js.map +1 -1
  35. package/dist/components/Blockquote/Blockquote.module.css.cjs +1 -1
  36. package/dist/components/Blockquote/Blockquote.module.css.cjs.map +1 -1
  37. package/dist/components/Blockquote/Blockquote.module.css.js +11 -11
  38. package/dist/components/Blockquote/Blockquote.module.css.js.map +1 -1
  39. package/dist/components/BottomSheet/BottomSheet.cjs +1 -1
  40. package/dist/components/BottomSheet/BottomSheet.cjs.map +1 -1
  41. package/dist/components/BottomSheet/BottomSheet.d.ts +3 -3
  42. package/dist/components/BottomSheet/BottomSheet.js +73 -32
  43. package/dist/components/BottomSheet/BottomSheet.js.map +1 -1
  44. package/dist/components/BottomSheet/BottomSheet.module.css.cjs +1 -1
  45. package/dist/components/BottomSheet/BottomSheet.module.css.cjs.map +1 -1
  46. package/dist/components/BottomSheet/BottomSheet.module.css.js +13 -8
  47. package/dist/components/BottomSheet/BottomSheet.module.css.js.map +1 -1
  48. package/dist/components/BoxedList/BoxedList.module.css.cjs +1 -1
  49. package/dist/components/BoxedList/BoxedList.module.css.cjs.map +1 -1
  50. package/dist/components/BoxedList/BoxedList.module.css.js +5 -5
  51. package/dist/components/BoxedList/BoxedList.module.css.js.map +1 -1
  52. package/dist/components/BreakpointBin/BreakpointBin.cjs +1 -1
  53. package/dist/components/BreakpointBin/BreakpointBin.cjs.map +1 -1
  54. package/dist/components/BreakpointBin/BreakpointBin.js +1 -1
  55. package/dist/components/BreakpointBin/BreakpointBin.js.map +1 -1
  56. package/dist/components/Button/Button.module.css.cjs +1 -1
  57. package/dist/components/Button/Button.module.css.cjs.map +1 -1
  58. package/dist/components/Button/Button.module.css.js +11 -11
  59. package/dist/components/Button/Button.module.css.js.map +1 -1
  60. package/dist/components/ButtonRow/ButtonRow.module.css.cjs +1 -1
  61. package/dist/components/ButtonRow/ButtonRow.module.css.cjs.map +1 -1
  62. package/dist/components/ButtonRow/ButtonRow.module.css.js +7 -7
  63. package/dist/components/ButtonRow/ButtonRow.module.css.js.map +1 -1
  64. package/dist/components/Card/Card.module.css.cjs +1 -1
  65. package/dist/components/Card/Card.module.css.cjs.map +1 -1
  66. package/dist/components/Card/Card.module.css.js +6 -6
  67. package/dist/components/Card/Card.module.css.js.map +1 -1
  68. package/dist/components/Carousel/Carousel.cjs +1 -1
  69. package/dist/components/Carousel/Carousel.cjs.map +1 -1
  70. package/dist/components/Carousel/Carousel.d.ts +9 -3
  71. package/dist/components/Carousel/Carousel.js +99 -42
  72. package/dist/components/Carousel/Carousel.js.map +1 -1
  73. package/dist/components/Carousel/Carousel.module.css.cjs +1 -1
  74. package/dist/components/Carousel/Carousel.module.css.cjs.map +1 -1
  75. package/dist/components/Carousel/Carousel.module.css.js +11 -10
  76. package/dist/components/Carousel/Carousel.module.css.js.map +1 -1
  77. package/dist/components/CheckRow/CheckRow.module.css.cjs +1 -1
  78. package/dist/components/CheckRow/CheckRow.module.css.cjs.map +1 -1
  79. package/dist/components/CheckRow/CheckRow.module.css.js +10 -10
  80. package/dist/components/CheckRow/CheckRow.module.css.js.map +1 -1
  81. package/dist/components/Checkbox/Checkbox.module.css.cjs +1 -1
  82. package/dist/components/Checkbox/Checkbox.module.css.cjs.map +1 -1
  83. package/dist/components/Checkbox/Checkbox.module.css.js +1 -1
  84. package/dist/components/Checkbox/Checkbox.module.css.js.map +1 -1
  85. package/dist/components/Chip/Chip.module.css.cjs +1 -1
  86. package/dist/components/Chip/Chip.module.css.cjs.map +1 -1
  87. package/dist/components/Chip/Chip.module.css.js +7 -7
  88. package/dist/components/Chip/Chip.module.css.js.map +1 -1
  89. package/dist/components/ColorPicker/ColorPicker.cjs +1 -1
  90. package/dist/components/ColorPicker/ColorPicker.cjs.map +1 -1
  91. package/dist/components/ColorPicker/ColorPicker.js +1 -1
  92. package/dist/components/ColorPicker/ColorPicker.js.map +1 -1
  93. package/dist/components/ColorPicker/ColorPicker.module.css.cjs +1 -1
  94. package/dist/components/ColorPicker/ColorPicker.module.css.cjs.map +1 -1
  95. package/dist/components/ColorPicker/ColorPicker.module.css.js +10 -10
  96. package/dist/components/ColorPicker/ColorPicker.module.css.js.map +1 -1
  97. package/dist/components/ColumnView/ColumnView.module.css.cjs +1 -1
  98. package/dist/components/ColumnView/ColumnView.module.css.cjs.map +1 -1
  99. package/dist/components/ColumnView/ColumnView.module.css.js +22 -22
  100. package/dist/components/ColumnView/ColumnView.module.css.js.map +1 -1
  101. package/dist/components/ComboRow/ComboRow.module.css.cjs +1 -1
  102. package/dist/components/ComboRow/ComboRow.module.css.cjs.map +1 -1
  103. package/dist/components/ComboRow/ComboRow.module.css.js +24 -24
  104. package/dist/components/ComboRow/ComboRow.module.css.js.map +1 -1
  105. package/dist/components/ContributionGraph/ContributionGraph.module.css.cjs +1 -1
  106. package/dist/components/ContributionGraph/ContributionGraph.module.css.cjs.map +1 -1
  107. package/dist/components/ContributionGraph/ContributionGraph.module.css.js +9 -9
  108. package/dist/components/ContributionGraph/ContributionGraph.module.css.js.map +1 -1
  109. package/dist/components/CountDownTimer/CountDownTimer.module.css.cjs +1 -1
  110. package/dist/components/CountDownTimer/CountDownTimer.module.css.cjs.map +1 -1
  111. package/dist/components/CountDownTimer/CountDownTimer.module.css.js +7 -7
  112. package/dist/components/CountDownTimer/CountDownTimer.module.css.js.map +1 -1
  113. package/dist/components/Dialog/Dialog.module.css.cjs +1 -1
  114. package/dist/components/Dialog/Dialog.module.css.cjs.map +1 -1
  115. package/dist/components/Dialog/Dialog.module.css.js +11 -11
  116. package/dist/components/Dialog/Dialog.module.css.js.map +1 -1
  117. package/dist/components/Dialog/dialogUtils.cjs +1 -1
  118. package/dist/components/Dialog/dialogUtils.cjs.map +1 -1
  119. package/dist/components/Dialog/dialogUtils.js +1 -1
  120. package/dist/components/Dialog/dialogUtils.js.map +1 -1
  121. package/dist/components/Drawer/Drawer.module.css.cjs +1 -1
  122. package/dist/components/Drawer/Drawer.module.css.cjs.map +1 -1
  123. package/dist/components/Drawer/Drawer.module.css.js +12 -12
  124. package/dist/components/Drawer/Drawer.module.css.js.map +1 -1
  125. package/dist/components/Dropdown/Dropdown.module.css.cjs +1 -1
  126. package/dist/components/Dropdown/Dropdown.module.css.cjs.map +1 -1
  127. package/dist/components/Dropdown/Dropdown.module.css.js +20 -20
  128. package/dist/components/Dropdown/Dropdown.module.css.js.map +1 -1
  129. package/dist/components/EntryRow/EntryRow.module.css.cjs +1 -1
  130. package/dist/components/EntryRow/EntryRow.module.css.cjs.map +1 -1
  131. package/dist/components/EntryRow/EntryRow.module.css.js +10 -10
  132. package/dist/components/EntryRow/EntryRow.module.css.js.map +1 -1
  133. package/dist/components/ExpanderRow/ExpanderRow.module.css.cjs +1 -1
  134. package/dist/components/ExpanderRow/ExpanderRow.module.css.cjs.map +1 -1
  135. package/dist/components/ExpanderRow/ExpanderRow.module.css.js +14 -14
  136. package/dist/components/ExpanderRow/ExpanderRow.module.css.js.map +1 -1
  137. package/dist/components/Footer/Footer.module.css.cjs +1 -1
  138. package/dist/components/Footer/Footer.module.css.cjs.map +1 -1
  139. package/dist/components/Footer/Footer.module.css.js +5 -5
  140. package/dist/components/Footer/Footer.module.css.js.map +1 -1
  141. package/dist/components/Frame/Frame.module.css.cjs +1 -1
  142. package/dist/components/Frame/Frame.module.css.cjs.map +1 -1
  143. package/dist/components/Frame/Frame.module.css.js +1 -1
  144. package/dist/components/Frame/Frame.module.css.js.map +1 -1
  145. package/dist/components/HeaderBar/HeaderBar.module.css.cjs +1 -1
  146. package/dist/components/HeaderBar/HeaderBar.module.css.cjs.map +1 -1
  147. package/dist/components/HeaderBar/HeaderBar.module.css.js +6 -6
  148. package/dist/components/HeaderBar/HeaderBar.module.css.js.map +1 -1
  149. package/dist/components/Icon/Icon.cjs +1 -1
  150. package/dist/components/Icon/Icon.cjs.map +1 -1
  151. package/dist/components/Icon/Icon.d.ts +8 -1
  152. package/dist/components/Icon/Icon.js +22 -20
  153. package/dist/components/Icon/Icon.js.map +1 -1
  154. package/dist/components/Icon/Icon.module.css.cjs +2 -0
  155. package/dist/components/Icon/Icon.module.css.cjs.map +1 -0
  156. package/dist/components/Icon/Icon.module.css.js +14 -0
  157. package/dist/components/Icon/Icon.module.css.js.map +1 -0
  158. package/dist/components/Icon/index.d.ts +1 -1
  159. package/dist/components/InlineViewSwitcher/InlineViewSwitcher.cjs +1 -1
  160. package/dist/components/InlineViewSwitcher/InlineViewSwitcher.cjs.map +1 -1
  161. package/dist/components/InlineViewSwitcher/InlineViewSwitcher.js +1 -1
  162. package/dist/components/InlineViewSwitcher/InlineViewSwitcher.js.map +1 -1
  163. package/dist/components/InlineViewSwitcher/InlineViewSwitcher.module.css.cjs +1 -1
  164. package/dist/components/InlineViewSwitcher/InlineViewSwitcher.module.css.cjs.map +1 -1
  165. package/dist/components/InlineViewSwitcher/InlineViewSwitcher.module.css.js +22 -22
  166. package/dist/components/InlineViewSwitcher/InlineViewSwitcher.module.css.js.map +1 -1
  167. package/dist/components/Link/Link.module.css.cjs +1 -1
  168. package/dist/components/Link/Link.module.css.cjs.map +1 -1
  169. package/dist/components/Link/Link.module.css.js +2 -2
  170. package/dist/components/Link/Link.module.css.js.map +1 -1
  171. package/dist/components/Modal/Modal.cjs +2 -0
  172. package/dist/components/Modal/Modal.cjs.map +1 -0
  173. package/dist/components/Modal/Modal.d.ts +40 -0
  174. package/dist/components/Modal/Modal.js +93 -0
  175. package/dist/components/Modal/Modal.js.map +1 -0
  176. package/dist/components/Modal/Modal.module.css.cjs +2 -0
  177. package/dist/components/Modal/Modal.module.css.cjs.map +1 -0
  178. package/dist/components/Modal/Modal.module.css.js +23 -0
  179. package/dist/components/Modal/Modal.module.css.js.map +1 -0
  180. package/dist/components/Modal/index.d.ts +2 -0
  181. package/dist/components/Modal.cjs +1 -0
  182. package/dist/components/Modal.d.ts +2 -0
  183. package/dist/components/Modal.js +2 -0
  184. package/dist/components/NavigationSplitView/NavigationSplitView.module.css.cjs +1 -1
  185. package/dist/components/NavigationSplitView/NavigationSplitView.module.css.cjs.map +1 -1
  186. package/dist/components/NavigationSplitView/NavigationSplitView.module.css.js +8 -8
  187. package/dist/components/NavigationSplitView/NavigationSplitView.module.css.js.map +1 -1
  188. package/dist/components/NavigationView/NavigationView.module.css.cjs +1 -1
  189. package/dist/components/NavigationView/NavigationView.module.css.cjs.map +1 -1
  190. package/dist/components/NavigationView/NavigationView.module.css.js +9 -9
  191. package/dist/components/NavigationView/NavigationView.module.css.js.map +1 -1
  192. package/dist/components/OverlaySplitView/OverlaySplitView.module.css.cjs +1 -1
  193. package/dist/components/OverlaySplitView/OverlaySplitView.module.css.cjs.map +1 -1
  194. package/dist/components/OverlaySplitView/OverlaySplitView.module.css.js +12 -12
  195. package/dist/components/OverlaySplitView/OverlaySplitView.module.css.js.map +1 -1
  196. package/dist/components/PasswordEntryRow/PasswordEntryRow.module.css.cjs +1 -1
  197. package/dist/components/PasswordEntryRow/PasswordEntryRow.module.css.cjs.map +1 -1
  198. package/dist/components/PasswordEntryRow/PasswordEntryRow.module.css.js +1 -1
  199. package/dist/components/PasswordEntryRow/PasswordEntryRow.module.css.js.map +1 -1
  200. package/dist/components/PathBar/PathBar.module.css.cjs +1 -1
  201. package/dist/components/PathBar/PathBar.module.css.cjs.map +1 -1
  202. package/dist/components/PathBar/PathBar.module.css.js +7 -7
  203. package/dist/components/PathBar/PathBar.module.css.js.map +1 -1
  204. package/dist/components/Popover/Popover.module.css.cjs +1 -1
  205. package/dist/components/Popover/Popover.module.css.cjs.map +1 -1
  206. package/dist/components/Popover/Popover.module.css.js +7 -7
  207. package/dist/components/Popover/Popover.module.css.js.map +1 -1
  208. package/dist/components/PreferencesDialog/PreferencesDialog.cjs +1 -1
  209. package/dist/components/PreferencesDialog/PreferencesDialog.cjs.map +1 -1
  210. package/dist/components/PreferencesDialog/PreferencesDialog.js +1 -1
  211. package/dist/components/PreferencesDialog/PreferencesDialog.js.map +1 -1
  212. package/dist/components/PreferencesDialog/PreferencesDialog.module.css.cjs +1 -1
  213. package/dist/components/PreferencesDialog/PreferencesDialog.module.css.cjs.map +1 -1
  214. package/dist/components/PreferencesDialog/PreferencesDialog.module.css.js +18 -18
  215. package/dist/components/PreferencesDialog/PreferencesDialog.module.css.js.map +1 -1
  216. package/dist/components/PreferencesGroup/PreferencesGroup.module.css.cjs +1 -1
  217. package/dist/components/PreferencesGroup/PreferencesGroup.module.css.cjs.map +1 -1
  218. package/dist/components/PreferencesGroup/PreferencesGroup.module.css.js +7 -7
  219. package/dist/components/PreferencesGroup/PreferencesGroup.module.css.js.map +1 -1
  220. package/dist/components/ProgressBar/ProgressBar.module.css.cjs +1 -1
  221. package/dist/components/ProgressBar/ProgressBar.module.css.cjs.map +1 -1
  222. package/dist/components/ProgressBar/ProgressBar.module.css.js +8 -8
  223. package/dist/components/ProgressBar/ProgressBar.module.css.js.map +1 -1
  224. package/dist/components/RadioButton/RadioButton.module.css.cjs +1 -1
  225. package/dist/components/RadioButton/RadioButton.module.css.cjs.map +1 -1
  226. package/dist/components/RadioButton/RadioButton.module.css.js +1 -1
  227. package/dist/components/RadioButton/RadioButton.module.css.js.map +1 -1
  228. package/dist/components/SearchBar/SearchBar.module.css.cjs +1 -1
  229. package/dist/components/SearchBar/SearchBar.module.css.cjs.map +1 -1
  230. package/dist/components/SearchBar/SearchBar.module.css.js +13 -13
  231. package/dist/components/SearchBar/SearchBar.module.css.js.map +1 -1
  232. package/dist/components/SegmentedBar/SegmentedBar.module.css.cjs +1 -1
  233. package/dist/components/SegmentedBar/SegmentedBar.module.css.cjs.map +1 -1
  234. package/dist/components/SegmentedBar/SegmentedBar.module.css.js +12 -12
  235. package/dist/components/SegmentedBar/SegmentedBar.module.css.js.map +1 -1
  236. package/dist/components/Separator/Separator.module.css.cjs +1 -1
  237. package/dist/components/Separator/Separator.module.css.cjs.map +1 -1
  238. package/dist/components/Separator/Separator.module.css.js +3 -3
  239. package/dist/components/Separator/Separator.module.css.js.map +1 -1
  240. package/dist/components/ShortcutLabel/ShortcutLabel.module.css.cjs +1 -1
  241. package/dist/components/ShortcutLabel/ShortcutLabel.module.css.cjs.map +1 -1
  242. package/dist/components/ShortcutLabel/ShortcutLabel.module.css.js +2 -2
  243. package/dist/components/ShortcutLabel/ShortcutLabel.module.css.js.map +1 -1
  244. package/dist/components/ShortcutsDialog/ShortcutsDialog.cjs +1 -1
  245. package/dist/components/ShortcutsDialog/ShortcutsDialog.cjs.map +1 -1
  246. package/dist/components/ShortcutsDialog/ShortcutsDialog.js +1 -1
  247. package/dist/components/ShortcutsDialog/ShortcutsDialog.js.map +1 -1
  248. package/dist/components/ShortcutsDialog/ShortcutsDialog.module.css.cjs +1 -1
  249. package/dist/components/ShortcutsDialog/ShortcutsDialog.module.css.cjs.map +1 -1
  250. package/dist/components/ShortcutsDialog/ShortcutsDialog.module.css.js +21 -21
  251. package/dist/components/ShortcutsDialog/ShortcutsDialog.module.css.js.map +1 -1
  252. package/dist/components/Sidebar/Sidebar.module.css.cjs +1 -1
  253. package/dist/components/Sidebar/Sidebar.module.css.cjs.map +1 -1
  254. package/dist/components/Sidebar/Sidebar.module.css.js +32 -32
  255. package/dist/components/Sidebar/Sidebar.module.css.js.map +1 -1
  256. package/dist/components/Skeleton/Skeleton.module.css.cjs +1 -1
  257. package/dist/components/Skeleton/Skeleton.module.css.cjs.map +1 -1
  258. package/dist/components/Skeleton/Skeleton.module.css.js +7 -7
  259. package/dist/components/Skeleton/Skeleton.module.css.js.map +1 -1
  260. package/dist/components/Slider/Slider.module.css.cjs +1 -1
  261. package/dist/components/Slider/Slider.module.css.cjs.map +1 -1
  262. package/dist/components/Slider/Slider.module.css.js +9 -9
  263. package/dist/components/Slider/Slider.module.css.js.map +1 -1
  264. package/dist/components/SpinButton/SpinButton.module.css.cjs +1 -1
  265. package/dist/components/SpinButton/SpinButton.module.css.cjs.map +1 -1
  266. package/dist/components/SpinButton/SpinButton.module.css.js +4 -4
  267. package/dist/components/SpinButton/SpinButton.module.css.js.map +1 -1
  268. package/dist/components/SpinRow/SpinRow.module.css.cjs +1 -1
  269. package/dist/components/SpinRow/SpinRow.module.css.cjs.map +1 -1
  270. package/dist/components/SpinRow/SpinRow.module.css.js +9 -9
  271. package/dist/components/SpinRow/SpinRow.module.css.js.map +1 -1
  272. package/dist/components/Spinner/Spinner.module.css.cjs +1 -1
  273. package/dist/components/Spinner/Spinner.module.css.cjs.map +1 -1
  274. package/dist/components/Spinner/Spinner.module.css.js +5 -5
  275. package/dist/components/Spinner/Spinner.module.css.js.map +1 -1
  276. package/dist/components/SplitButton/SplitButton.module.css.cjs +1 -1
  277. package/dist/components/SplitButton/SplitButton.module.css.cjs.map +1 -1
  278. package/dist/components/SplitButton/SplitButton.module.css.js +10 -10
  279. package/dist/components/SplitButton/SplitButton.module.css.js.map +1 -1
  280. package/dist/components/StatusBadge/StatusBadge.module.css.cjs +1 -1
  281. package/dist/components/StatusBadge/StatusBadge.module.css.cjs.map +1 -1
  282. package/dist/components/StatusBadge/StatusBadge.module.css.js +7 -7
  283. package/dist/components/StatusBadge/StatusBadge.module.css.js.map +1 -1
  284. package/dist/components/StatusPage/StatusPage.module.css.cjs +1 -1
  285. package/dist/components/StatusPage/StatusPage.module.css.cjs.map +1 -1
  286. package/dist/components/StatusPage/StatusPage.module.css.js +6 -6
  287. package/dist/components/StatusPage/StatusPage.module.css.js.map +1 -1
  288. package/dist/components/Switch/Switch.module.css.cjs +1 -1
  289. package/dist/components/Switch/Switch.module.css.cjs.map +1 -1
  290. package/dist/components/Switch/Switch.module.css.js +1 -1
  291. package/dist/components/Switch/Switch.module.css.js.map +1 -1
  292. package/dist/components/SwitchRow/SwitchRow.module.css.cjs +1 -1
  293. package/dist/components/SwitchRow/SwitchRow.module.css.cjs.map +1 -1
  294. package/dist/components/SwitchRow/SwitchRow.module.css.js +9 -9
  295. package/dist/components/SwitchRow/SwitchRow.module.css.js.map +1 -1
  296. package/dist/components/Tabs/TabBar.cjs +1 -1
  297. package/dist/components/Tabs/TabBar.cjs.map +1 -1
  298. package/dist/components/Tabs/TabBar.js +1 -1
  299. package/dist/components/Tabs/TabBar.js.map +1 -1
  300. package/dist/components/Tabs/Tabs.module.css.cjs +1 -1
  301. package/dist/components/Tabs/Tabs.module.css.cjs.map +1 -1
  302. package/dist/components/Tabs/Tabs.module.css.js +10 -10
  303. package/dist/components/Tabs/Tabs.module.css.js.map +1 -1
  304. package/dist/components/TerminalView/TerminalView.module.css.cjs +1 -1
  305. package/dist/components/TerminalView/TerminalView.module.css.cjs.map +1 -1
  306. package/dist/components/TerminalView/TerminalView.module.css.js +6 -6
  307. package/dist/components/TerminalView/TerminalView.module.css.js.map +1 -1
  308. package/dist/components/Text/Text.module.css.cjs +1 -1
  309. package/dist/components/Text/Text.module.css.cjs.map +1 -1
  310. package/dist/components/Text/Text.module.css.js +20 -20
  311. package/dist/components/Text/Text.module.css.js.map +1 -1
  312. package/dist/components/TextField/TextField.module.css.cjs +1 -1
  313. package/dist/components/TextField/TextField.module.css.cjs.map +1 -1
  314. package/dist/components/TextField/TextField.module.css.js +7 -7
  315. package/dist/components/TextField/TextField.module.css.js.map +1 -1
  316. package/dist/components/Timeline/Timeline.module.css.cjs +1 -1
  317. package/dist/components/Timeline/Timeline.module.css.cjs.map +1 -1
  318. package/dist/components/Timeline/Timeline.module.css.js +13 -13
  319. package/dist/components/Timeline/Timeline.module.css.js.map +1 -1
  320. package/dist/components/Toast/Toast.module.css.cjs +1 -1
  321. package/dist/components/Toast/Toast.module.css.cjs.map +1 -1
  322. package/dist/components/Toast/Toast.module.css.js +9 -9
  323. package/dist/components/Toast/Toast.module.css.js.map +1 -1
  324. package/dist/components/ToggleGroup/ToggleGroup.cjs +1 -1
  325. package/dist/components/ToggleGroup/ToggleGroup.cjs.map +1 -1
  326. package/dist/components/ToggleGroup/ToggleGroup.js +1 -1
  327. package/dist/components/ToggleGroup/ToggleGroup.js.map +1 -1
  328. package/dist/components/ToggleGroup/ToggleGroup.module.css.cjs +1 -1
  329. package/dist/components/ToggleGroup/ToggleGroup.module.css.cjs.map +1 -1
  330. package/dist/components/ToggleGroup/ToggleGroup.module.css.js +6 -6
  331. package/dist/components/ToggleGroup/ToggleGroup.module.css.js.map +1 -1
  332. package/dist/components/Toolbar/Toolbar.module.css.cjs +1 -1
  333. package/dist/components/Toolbar/Toolbar.module.css.cjs.map +1 -1
  334. package/dist/components/Toolbar/Toolbar.module.css.js +2 -2
  335. package/dist/components/Toolbar/Toolbar.module.css.js.map +1 -1
  336. package/dist/components/Tooltip/Tooltip.module.css.cjs +1 -1
  337. package/dist/components/Tooltip/Tooltip.module.css.cjs.map +1 -1
  338. package/dist/components/Tooltip/Tooltip.module.css.js +6 -6
  339. package/dist/components/Tooltip/Tooltip.module.css.js.map +1 -1
  340. package/dist/components/ViewSwitcher/ViewSwitcher.cjs +1 -1
  341. package/dist/components/ViewSwitcher/ViewSwitcher.cjs.map +1 -1
  342. package/dist/components/ViewSwitcher/ViewSwitcher.js +1 -1
  343. package/dist/components/ViewSwitcher/ViewSwitcher.js.map +1 -1
  344. package/dist/components/ViewSwitcher/ViewSwitcher.module.css.cjs +1 -1
  345. package/dist/components/ViewSwitcher/ViewSwitcher.module.css.cjs.map +1 -1
  346. package/dist/components/ViewSwitcher/ViewSwitcher.module.css.js +5 -5
  347. package/dist/components/ViewSwitcher/ViewSwitcher.module.css.js.map +1 -1
  348. package/dist/components/ViewSwitcherBar/ViewSwitcherBar.module.css.cjs +1 -1
  349. package/dist/components/ViewSwitcherBar/ViewSwitcherBar.module.css.cjs.map +1 -1
  350. package/dist/components/ViewSwitcherBar/ViewSwitcherBar.module.css.js +1 -1
  351. package/dist/components/ViewSwitcherBar/ViewSwitcherBar.module.css.js.map +1 -1
  352. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebar.cjs +1 -1
  353. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebar.cjs.map +1 -1
  354. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebar.js +1 -1
  355. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebar.js.map +1 -1
  356. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebar.module.css.cjs +1 -1
  357. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebar.module.css.cjs.map +1 -1
  358. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebar.module.css.js +14 -14
  359. package/dist/components/ViewSwitcherSidebar/ViewSwitcherSidebar.module.css.js.map +1 -1
  360. package/dist/components/WindowTitle/WindowTitle.module.css.cjs +1 -1
  361. package/dist/components/WindowTitle/WindowTitle.module.css.cjs.map +1 -1
  362. package/dist/components/WindowTitle/WindowTitle.module.css.js +3 -3
  363. package/dist/components/WindowTitle/WindowTitle.module.css.js.map +1 -1
  364. package/dist/components/WrapBox/WrapBox.module.css.cjs +1 -1
  365. package/dist/components/WrapBox/WrapBox.module.css.cjs.map +1 -1
  366. package/dist/components/WrapBox/WrapBox.module.css.js +2 -2
  367. package/dist/components/WrapBox/WrapBox.module.css.js.map +1 -1
  368. package/dist/index.cjs +1 -1
  369. package/dist/index.d.ts +5 -1
  370. package/dist/index.js +95 -93
  371. package/dist/style.css +1 -1
  372. package/package.json +11 -1
@@ -28,75 +28,132 @@ var s = ({ pages: t, currentPage: n, onPageSelected: r, className: i, ...a }) =>
28
28
  className: [e.line, i === n ? e.lineActive : null].filter(Boolean).join(" "),
29
29
  onClick: () => r?.(i)
30
30
  }, i))
31
- }), l = ({ children: s, orientation: c = "horizontal", spacing: l = 0, loop: u = !1, onPageChanged: d, page: f, className: p, ...m }) => {
32
- let h = i(null), g = t.count(s), [_, v] = a(0), y = f !== void 0, b = y ? f : _, x = n((e, t = "smooth") => {
33
- let n = h.current;
34
- n && (c === "horizontal" ? n.scrollTo({
35
- left: n.clientWidth * e,
31
+ }), l = ({ children: s, orientation: c = "horizontal", spacing: l = 0, loop: u = !1, visibleSlides: d = 1, onPageChanged: f, page: p, className: m, ...h }) => {
32
+ let g = i(null), _ = t.count(s), [v, y] = a(0), [b, x] = a(!1), S = p !== void 0, C = S ? p : v, w = i(!1), T = i(!1), E = i({
33
+ pos: 0,
34
+ scroll: 0,
35
+ time: 0
36
+ }), D = i(0), O = n(() => {
37
+ let e = g.current;
38
+ return e ? ((c === "horizontal" ? e.clientWidth : e.clientHeight) + l) / d : 1;
39
+ }, [
40
+ c,
41
+ l,
42
+ d
43
+ ]), k = n((e, t = "smooth") => {
44
+ let n = g.current;
45
+ if (!n) return;
46
+ let r = O() * e;
47
+ c === "horizontal" ? n.scrollTo({
48
+ left: r,
36
49
  behavior: t
37
50
  }) : n.scrollTo({
38
- top: n.clientHeight * e,
51
+ top: r,
39
52
  behavior: t
40
- }));
41
- }, [c]);
53
+ });
54
+ }, [c, O]);
42
55
  r(() => {
43
- y && x(f, "smooth");
56
+ S && k(p, "smooth");
44
57
  }, [
45
- f,
46
- x,
47
- y
58
+ p,
59
+ k,
60
+ S
48
61
  ]), r(() => {
49
- let e = h.current;
62
+ let e = g.current;
50
63
  if (!e) return;
51
64
  let t = () => {
52
- Array.from(e.children);
53
- let t = c === "horizontal" ? e.clientWidth : e.clientHeight, n = c === "horizontal" ? e.scrollLeft : e.scrollTop, r = Math.round(n / (t || 1)), i = Math.max(0, Math.min(r, g - 1));
54
- y || v(i), d?.(i);
65
+ if (w.current) return;
66
+ let t = O(), n = c === "horizontal" ? e.scrollLeft : e.scrollTop, r = Math.round(n / t), i = Math.max(0, Math.min(r, _ - 1));
67
+ S || y(i), f?.(i);
55
68
  };
56
69
  return e.addEventListener("scroll", t, { passive: !0 }), () => e.removeEventListener("scroll", t);
57
70
  }, [
58
71
  c,
59
- g,
60
- y,
61
- d
72
+ _,
73
+ S,
74
+ f,
75
+ O
62
76
  ]);
63
- let S = n((e) => {
77
+ let A = n((e) => {
64
78
  let t = c === "horizontal" ? e.key === "ArrowRight" : e.key === "ArrowDown", n = c === "horizontal" ? e.key === "ArrowLeft" : e.key === "ArrowUp";
65
- if (t) {
66
- e.preventDefault();
67
- let t = u ? (b + 1) % g : Math.min(b + 1, g - 1);
68
- x(t), y || v(t), d?.(t);
69
- } else if (n) {
70
- e.preventDefault();
71
- let t = u ? (b - 1 + g) % g : Math.max(b - 1, 0);
72
- x(t), y || v(t), d?.(t);
73
- }
79
+ if (!t && !n) return;
80
+ e.preventDefault();
81
+ let r = t ? u ? (C + 1) % _ : Math.min(C + 1, _ - 1) : u ? (C - 1 + _) % _ : Math.max(C - 1, 0);
82
+ k(r), S || y(r), f?.(r);
74
83
  }, [
75
- b,
76
- g,
84
+ C,
85
+ _,
77
86
  u,
78
87
  c,
79
- x,
80
- y,
81
- d
82
- ]), C = c === "horizontal";
88
+ k,
89
+ S,
90
+ f
91
+ ]), j = n((e) => {
92
+ if (e.pointerType === "mouse" && e.button !== 0) return;
93
+ let t = g.current;
94
+ t && (window.clearTimeout(D.current), t.style.scrollSnapType = "none", e.currentTarget.setPointerCapture(e.pointerId), w.current = !0, T.current = !1, x(!0), E.current = {
95
+ pos: c === "horizontal" ? e.clientX : e.clientY,
96
+ scroll: c === "horizontal" ? t.scrollLeft : t.scrollTop,
97
+ time: Date.now()
98
+ });
99
+ }, [c]), M = n((e) => {
100
+ if (!w.current) return;
101
+ let t = g.current;
102
+ if (!t) return;
103
+ let n = c === "horizontal" ? e.clientX : e.clientY, r = E.current.pos - n;
104
+ Math.abs(r) > 4 && (T.current = !0);
105
+ let i = c === "horizontal" ? t.scrollWidth - t.clientWidth : t.scrollHeight - t.clientHeight, a = E.current.scroll + r;
106
+ a < 0 ? a *= .3 : a > i && (a = i + (a - i) * .3), c === "horizontal" ? t.scrollLeft = a : t.scrollTop = a;
107
+ }, [c]), N = n((e) => {
108
+ if (!w.current) return;
109
+ w.current = !1, x(!1);
110
+ let t = g.current;
111
+ if (!T.current || !t) {
112
+ t?.style.removeProperty("scroll-snap-type");
113
+ return;
114
+ }
115
+ let n = e.type === "pointercancel", r = n ? E.current.pos : c === "horizontal" ? e.clientX : e.clientY, i = E.current.pos - r, a = Math.max(Date.now() - E.current.time, 1), o = n ? 0 : i / a, s = O(), l = c === "horizontal" ? t.scrollLeft : t.scrollTop, d;
116
+ d = Math.abs(o) > .3 ? o > 0 ? Math.ceil(l / s) : Math.floor(l / s) : Math.round(l / s), d = u ? (d % _ + _) % _ : Math.max(0, Math.min(d, _ - 1)), k(d), S || y(d), f?.(d), D.current = window.setTimeout(() => {
117
+ t.style.removeProperty("scroll-snap-type");
118
+ }, 350);
119
+ }, [
120
+ c,
121
+ O,
122
+ u,
123
+ _,
124
+ k,
125
+ S,
126
+ f
127
+ ]);
128
+ r(() => () => window.clearTimeout(D.current), []);
129
+ let P = n((e) => {
130
+ T.current &&= (e.preventDefault(), e.stopPropagation(), !1);
131
+ }, []), F = c === "horizontal", I = d === 1 ? void 0 : `calc((100% - ${l * (d - 1)}px) / ${d})`;
83
132
  return /* @__PURE__ */ o("div", {
84
- ref: h,
133
+ ref: g,
85
134
  role: "region",
86
135
  "aria-roledescription": "carousel",
136
+ tabIndex: 0,
87
137
  className: [
88
138
  e.carousel,
89
- C ? e.horizontal : e.vertical,
90
- p
139
+ F ? e.horizontal : e.vertical,
140
+ b ? e.dragging : null,
141
+ m
91
142
  ].filter(Boolean).join(" "),
92
- style: C ? { columnGap: l || void 0 } : { rowGap: l || void 0 },
93
- onKeyDown: S,
94
- ...m,
143
+ style: F ? { columnGap: l || void 0 } : { rowGap: l || void 0 },
144
+ onKeyDown: A,
145
+ onPointerDown: j,
146
+ onPointerMove: M,
147
+ onPointerUp: N,
148
+ onPointerCancel: N,
149
+ onClick: P,
150
+ ...h,
95
151
  children: t.map(s, (t, n) => /* @__PURE__ */ o("div", {
96
152
  className: e.slide,
97
153
  role: "group",
98
154
  "aria-roledescription": "slide",
99
- "aria-label": `${n + 1} of ${g}`,
155
+ "aria-label": `${n + 1} of ${_}`,
156
+ style: I ? { flex: `0 0 ${I}` } : void 0,
100
157
  children: t
101
158
  }, n))
102
159
  });
@@ -1 +1 @@
1
- {"version":3,"file":"Carousel.js","names":[],"sources":["../../../src/components/Carousel/Carousel.tsx"],"sourcesContent":["import {\n Children,\n type HTMLAttributes,\n type KeyboardEvent,\n type ReactNode,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from 'react';\n\nimport styles from './Carousel.module.css';\n\n// ─── CarouselIndicatorDots ────────────────────────────────────────────────────\n\nexport interface CarouselIndicatorDotsProps extends HTMLAttributes<HTMLDivElement> {\n /** Total number of pages. */\n pages: number;\n /** Zero-based index of the current page. */\n currentPage: number;\n /** Called when the user clicks a dot. */\n onPageSelected?: (index: number) => void;\n}\n\n/**\n * Dot-style page indicator for `Carousel`.\n * Mirrors `AdwCarouselIndicatorDots`.\n */\nexport const CarouselIndicatorDots = ({\n pages,\n currentPage,\n onPageSelected,\n className,\n ...props\n}: CarouselIndicatorDotsProps) => {\n return (\n <div\n className={[styles.indicatorDots, className].filter(Boolean).join(' ')}\n role=\"tablist\"\n aria-label=\"Carousel pages\"\n {...props}\n >\n {Array.from({ length: pages }, (_, i) => (\n <button\n key={i}\n type=\"button\"\n role=\"tab\"\n aria-selected={i === currentPage}\n aria-label={`Page ${i + 1}`}\n className={[styles.dot, i === currentPage ? styles.dotActive : null]\n .filter(Boolean)\n .join(' ')}\n onClick={() => onPageSelected?.(i)}\n />\n ))}\n </div>\n );\n};\n\n// ─── CarouselIndicatorLines ───────────────────────────────────────────────────\n\nexport interface CarouselIndicatorLinesProps extends HTMLAttributes<HTMLDivElement> {\n /** Total number of pages. */\n pages: number;\n /** Zero-based index of the current page. */\n currentPage: number;\n /** Called when the user clicks a line. */\n onPageSelected?: (index: number) => void;\n}\n\n/**\n * Line-style page indicator for `Carousel`.\n * Mirrors `AdwCarouselIndicatorLines`.\n */\nexport const CarouselIndicatorLines = ({\n pages,\n currentPage,\n onPageSelected,\n className,\n ...props\n}: CarouselIndicatorLinesProps) => {\n return (\n <div\n className={[styles.indicatorLines, className].filter(Boolean).join(' ')}\n role=\"tablist\"\n aria-label=\"Carousel pages\"\n {...props}\n >\n {Array.from({ length: pages }, (_, i) => (\n <button\n key={i}\n type=\"button\"\n role=\"tab\"\n aria-selected={i === currentPage}\n aria-label={`Page ${i + 1}`}\n className={[styles.line, i === currentPage ? styles.lineActive : null]\n .filter(Boolean)\n .join(' ')}\n onClick={() => onPageSelected?.(i)}\n />\n ))}\n </div>\n );\n};\n\n// ─── Carousel ─────────────────────────────────────────────────────────────────\n\nexport interface CarouselProps extends HTMLAttributes<HTMLDivElement> {\n children?: ReactNode;\n /**\n * Scroll orientation.\n * @default \"horizontal\"\n */\n orientation?: 'horizontal' | 'vertical';\n /**\n * Gap between pages in px.\n * @default 0\n */\n spacing?: number;\n /**\n * Allow infinite looping (wraps around on the last/first page).\n * @default false\n */\n loop?: boolean;\n /** Called whenever the visible page changes. */\n onPageChanged?: (index: number) => void;\n /**\n * Controlled current page index.\n * When omitted the carousel manages page state internally.\n */\n page?: number;\n}\n\n/**\n * Swipeable content carousel.\n *\n * Mirrors `AdwCarousel`. Uses CSS scroll-snapping for smooth, native-feeling\n * page transitions. Supports keyboard navigation (arrow keys) and touch/mouse\n * drag via the browser's native scroll handling.\n *\n * Pair with `CarouselIndicatorDots` or `CarouselIndicatorLines` for pagination UI.\n *\n * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.Carousel.html\n */\nexport const Carousel = ({\n children,\n orientation = 'horizontal',\n spacing = 0,\n loop = false,\n onPageChanged,\n page: controlledPage,\n className,\n ...props\n}: CarouselProps) => {\n const scrollRef = useRef<HTMLDivElement>(null);\n const pageCount = Children.count(children);\n const [internalPage, setInternalPage] = useState(0);\n const isControlled = controlledPage !== undefined;\n const currentPage = isControlled ? controlledPage : internalPage;\n\n const scrollToPage = useCallback(\n (index: number, behavior: ScrollBehavior = 'smooth') => {\n const el = scrollRef.current;\n\n if (!el) {\n return;\n }\n\n if (orientation === 'horizontal') {\n el.scrollTo({ left: el.clientWidth * index, behavior });\n } else {\n el.scrollTo({ top: el.clientHeight * index, behavior });\n }\n },\n [orientation],\n );\n\n // Scroll to the controlled page when it changes externally\n useEffect(() => {\n if (!isControlled) {\n return;\n }\n\n scrollToPage(controlledPage, 'smooth');\n }, [controlledPage, scrollToPage, isControlled]);\n\n // Detect page changes via IntersectionObserver on each child\n useEffect(() => {\n const el = scrollRef.current;\n\n if (!el) {\n return;\n }\n\n const handleScroll = () => {\n const pages = Array.from(el.children) as HTMLElement[];\n const size = orientation === 'horizontal' ? el.clientWidth : el.clientHeight;\n const scroll = orientation === 'horizontal' ? el.scrollLeft : el.scrollTop;\n const idx = Math.round(scroll / (size || 1));\n const clamped = Math.max(0, Math.min(idx, pageCount - 1));\n\n if (!isControlled) {\n setInternalPage(clamped);\n }\n\n onPageChanged?.(clamped);\n void pages; // suppress lint\n };\n\n el.addEventListener('scroll', handleScroll, { passive: true });\n\n return () => el.removeEventListener('scroll', handleScroll);\n }, [orientation, pageCount, isControlled, onPageChanged]);\n\n // Keyboard navigation\n const handleKeyDown = useCallback(\n (e: KeyboardEvent) => {\n const isForward =\n orientation === 'horizontal' ? e.key === 'ArrowRight' : e.key === 'ArrowDown';\n const isBack = orientation === 'horizontal' ? e.key === 'ArrowLeft' : e.key === 'ArrowUp';\n\n if (isForward) {\n e.preventDefault();\n const next = loop\n ? (currentPage + 1) % pageCount\n : Math.min(currentPage + 1, pageCount - 1);\n\n scrollToPage(next);\n if (!isControlled) {\n setInternalPage(next);\n }\n\n onPageChanged?.(next);\n } else if (isBack) {\n e.preventDefault();\n const prev = loop\n ? (currentPage - 1 + pageCount) % pageCount\n : Math.max(currentPage - 1, 0);\n\n scrollToPage(prev);\n if (!isControlled) {\n setInternalPage(prev);\n }\n\n onPageChanged?.(prev);\n }\n },\n [currentPage, pageCount, loop, orientation, scrollToPage, isControlled, onPageChanged],\n );\n\n const isHorizontal = orientation === 'horizontal';\n\n return (\n <div\n ref={scrollRef}\n role=\"region\"\n aria-roledescription=\"carousel\"\n className={[styles.carousel, isHorizontal ? styles.horizontal : styles.vertical, className]\n .filter(Boolean)\n .join(' ')}\n style={isHorizontal ? { columnGap: spacing || undefined } : { rowGap: spacing || undefined }}\n onKeyDown={handleKeyDown}\n {...props}\n >\n {Children.map(children, (child, i) => (\n <div\n key={i}\n className={styles.slide}\n role=\"group\"\n aria-roledescription=\"slide\"\n aria-label={`${i + 1} of ${pageCount}`}\n >\n {child}\n </div>\n ))}\n </div>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"Carousel.js","names":[],"sources":["../../../src/components/Carousel/Carousel.tsx"],"sourcesContent":["import {\n Children,\n type HTMLAttributes,\n type KeyboardEvent,\n type MouseEvent,\n type PointerEvent,\n type ReactNode,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from 'react';\n\nimport styles from './Carousel.module.css';\n\n// ─── CarouselIndicatorDots ────────────────────────────────────────────────────\n\nexport interface CarouselIndicatorDotsProps extends HTMLAttributes<HTMLDivElement> {\n /** Total number of pages. */\n pages: number;\n /** Zero-based index of the current page. */\n currentPage: number;\n /** Called when the user clicks a dot. */\n onPageSelected?: (index: number) => void;\n}\n\n/**\n * Dot-style page indicator for `Carousel`.\n * Mirrors `AdwCarouselIndicatorDots`.\n */\nexport const CarouselIndicatorDots = ({\n pages,\n currentPage,\n onPageSelected,\n className,\n ...props\n}: CarouselIndicatorDotsProps) => {\n return (\n <div\n className={[styles.indicatorDots, className].filter(Boolean).join(' ')}\n role=\"tablist\"\n aria-label=\"Carousel pages\"\n {...props}\n >\n {Array.from({ length: pages }, (_, i) => (\n <button\n key={i}\n type=\"button\"\n role=\"tab\"\n aria-selected={i === currentPage}\n aria-label={`Page ${i + 1}`}\n className={[styles.dot, i === currentPage ? styles.dotActive : null]\n .filter(Boolean)\n .join(' ')}\n onClick={() => onPageSelected?.(i)}\n />\n ))}\n </div>\n );\n};\n\n// ─── CarouselIndicatorLines ───────────────────────────────────────────────────\n\nexport interface CarouselIndicatorLinesProps extends HTMLAttributes<HTMLDivElement> {\n /** Total number of pages. */\n pages: number;\n /** Zero-based index of the current page. */\n currentPage: number;\n /** Called when the user clicks a line. */\n onPageSelected?: (index: number) => void;\n}\n\n/**\n * Line-style page indicator for `Carousel`.\n * Mirrors `AdwCarouselIndicatorLines`.\n */\nexport const CarouselIndicatorLines = ({\n pages,\n currentPage,\n onPageSelected,\n className,\n ...props\n}: CarouselIndicatorLinesProps) => {\n return (\n <div\n className={[styles.indicatorLines, className].filter(Boolean).join(' ')}\n role=\"tablist\"\n aria-label=\"Carousel pages\"\n {...props}\n >\n {Array.from({ length: pages }, (_, i) => (\n <button\n key={i}\n type=\"button\"\n role=\"tab\"\n aria-selected={i === currentPage}\n aria-label={`Page ${i + 1}`}\n className={[styles.line, i === currentPage ? styles.lineActive : null]\n .filter(Boolean)\n .join(' ')}\n onClick={() => onPageSelected?.(i)}\n />\n ))}\n </div>\n );\n};\n\n// ─── Carousel ─────────────────────────────────────────────────────────────────\n\nexport interface CarouselProps extends HTMLAttributes<HTMLDivElement> {\n children?: ReactNode;\n /**\n * Scroll orientation.\n * @default \"horizontal\"\n */\n orientation?: 'horizontal' | 'vertical';\n /**\n * Gap between pages in px.\n * @default 0\n */\n spacing?: number;\n /**\n * Allow infinite looping (wraps around on the last/first page).\n * @default false\n */\n loop?: boolean;\n /**\n * Number of slides visible at once. Supports fractional values (e.g. `1.5`)\n * to peek at the edge of the next slide.\n * @default 1\n */\n visibleSlides?: number;\n /** Called whenever the visible page changes. */\n onPageChanged?: (index: number) => void;\n /**\n * Controlled current page index.\n * When omitted the carousel manages page state internally.\n */\n page?: number;\n}\n\n/**\n * Swipeable content carousel.\n *\n * Mirrors `AdwCarousel`. Uses CSS scroll-snapping for smooth, native-feeling\n * page transitions. Supports keyboard navigation (arrow keys), touch/mouse drag,\n * and velocity-based flick gestures.\n *\n * Pair with `CarouselIndicatorDots` or `CarouselIndicatorLines` for pagination UI.\n *\n * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.Carousel.html\n */\nexport const Carousel = ({\n children,\n orientation = 'horizontal',\n spacing = 0,\n loop = false,\n visibleSlides = 1,\n onPageChanged,\n page: controlledPage,\n className,\n ...props\n}: CarouselProps) => {\n const scrollRef = useRef<HTMLDivElement>(null);\n const pageCount = Children.count(children);\n const [internalPage, setInternalPage] = useState(0);\n const [isDragging, setIsDragging] = useState(false);\n const isControlled = controlledPage !== undefined;\n const currentPage = isControlled ? controlledPage : internalPage;\n\n // Refs for drag state — avoids stale closures in pointer handlers\n const draggingRef = useRef(false);\n const hasDraggedRef = useRef(false);\n const dragStartRef = useRef({ pos: 0, scroll: 0, time: 0 });\n const snapRestoreTimerRef = useRef(0);\n\n // Scroll distance per page: (containerSize - spacing*(visibleSlides-1)) / visibleSlides + spacing\n // Simplifies to: (containerSize + spacing) / visibleSlides\n const getPageSize = useCallback(() => {\n const el = scrollRef.current;\n if (!el) {\n return 1;\n }\n const containerSize = orientation === 'horizontal' ? el.clientWidth : el.clientHeight;\n return (containerSize + spacing) / visibleSlides;\n }, [orientation, spacing, visibleSlides]);\n\n const scrollToPage = useCallback(\n (index: number, behavior: ScrollBehavior = 'smooth') => {\n const el = scrollRef.current;\n if (!el) {\n return;\n }\n const offset = getPageSize() * index;\n if (orientation === 'horizontal') {\n el.scrollTo({ left: offset, behavior });\n } else {\n el.scrollTo({ top: offset, behavior });\n }\n },\n [orientation, getPageSize],\n );\n\n // Scroll to the controlled page when it changes externally\n useEffect(() => {\n if (!isControlled) {\n return;\n }\n scrollToPage(controlledPage, 'smooth');\n }, [controlledPage, scrollToPage, isControlled]);\n\n // Detect page changes from native scroll (touch) — skipped during mouse drag\n useEffect(() => {\n const el = scrollRef.current;\n if (!el) {\n return;\n }\n\n const handleScroll = () => {\n if (draggingRef.current) {\n return;\n }\n const pageSize = getPageSize();\n const scroll = orientation === 'horizontal' ? el.scrollLeft : el.scrollTop;\n const idx = Math.round(scroll / pageSize);\n const clamped = Math.max(0, Math.min(idx, pageCount - 1));\n if (!isControlled) {\n setInternalPage(clamped);\n }\n onPageChanged?.(clamped);\n };\n\n el.addEventListener('scroll', handleScroll, { passive: true });\n return () => el.removeEventListener('scroll', handleScroll);\n }, [orientation, pageCount, isControlled, onPageChanged, getPageSize]);\n\n // ── Keyboard navigation ───────────────────────────────────────────────────\n\n const handleKeyDown = useCallback(\n (e: KeyboardEvent<HTMLDivElement>) => {\n const isForward =\n orientation === 'horizontal' ? e.key === 'ArrowRight' : e.key === 'ArrowDown';\n const isBack = orientation === 'horizontal' ? e.key === 'ArrowLeft' : e.key === 'ArrowUp';\n\n if (!isForward && !isBack) {\n return;\n }\n e.preventDefault();\n\n const next = isForward\n ? loop\n ? (currentPage + 1) % pageCount\n : Math.min(currentPage + 1, pageCount - 1)\n : loop\n ? (currentPage - 1 + pageCount) % pageCount\n : Math.max(currentPage - 1, 0);\n\n scrollToPage(next);\n if (!isControlled) {\n setInternalPage(next);\n }\n onPageChanged?.(next);\n },\n [currentPage, pageCount, loop, orientation, scrollToPage, isControlled, onPageChanged],\n );\n\n // ── Drag (mouse + touch + pen) ───────────────────────────────────────────\n\n const handlePointerDown = useCallback(\n (e: PointerEvent<HTMLDivElement>) => {\n // Ignore non-primary mouse buttons\n if (e.pointerType === 'mouse' && e.button !== 0) {\n return;\n }\n const el = scrollRef.current;\n if (!el) {\n return;\n }\n\n // Disable scroll-snap immediately via DOM — not via React state, which would\n // only apply after the next render, letting scroll-snap fight the first moves.\n window.clearTimeout(snapRestoreTimerRef.current);\n el.style.scrollSnapType = 'none';\n\n // Capture so pointermove/up fire even when the pointer leaves the element\n e.currentTarget.setPointerCapture(e.pointerId);\n draggingRef.current = true;\n hasDraggedRef.current = false;\n setIsDragging(true);\n dragStartRef.current = {\n pos: orientation === 'horizontal' ? e.clientX : e.clientY,\n scroll: orientation === 'horizontal' ? el.scrollLeft : el.scrollTop,\n time: Date.now(),\n };\n },\n [orientation],\n );\n\n const handlePointerMove = useCallback(\n (e: PointerEvent<HTMLDivElement>) => {\n if (!draggingRef.current) {\n return;\n }\n const el = scrollRef.current;\n if (!el) {\n return;\n }\n\n const pos = orientation === 'horizontal' ? e.clientX : e.clientY;\n const delta = dragStartRef.current.pos - pos;\n\n if (Math.abs(delta) > 4) {\n hasDraggedRef.current = true;\n }\n\n // Apply boundary resistance: dampen movement past first/last slide\n const maxScroll =\n orientation === 'horizontal'\n ? el.scrollWidth - el.clientWidth\n : el.scrollHeight - el.clientHeight;\n let newScroll = dragStartRef.current.scroll + delta;\n\n if (newScroll < 0) {\n newScroll *= 0.3;\n } else if (newScroll > maxScroll) {\n newScroll = maxScroll + (newScroll - maxScroll) * 0.3;\n }\n\n if (orientation === 'horizontal') {\n el.scrollLeft = newScroll;\n } else {\n el.scrollTop = newScroll;\n }\n },\n [orientation],\n );\n\n const handlePointerUp = useCallback(\n (e: PointerEvent<HTMLDivElement>) => {\n if (!draggingRef.current) {\n return;\n }\n\n draggingRef.current = false;\n setIsDragging(false);\n\n const el = scrollRef.current;\n\n if (!hasDraggedRef.current || !el) {\n // No real drag — restore snap immediately\n el?.style.removeProperty('scroll-snap-type');\n return;\n }\n\n const isCancel = e.type === 'pointercancel';\n const pos = isCancel\n ? dragStartRef.current.pos\n : orientation === 'horizontal'\n ? e.clientX\n : e.clientY;\n\n const delta = dragStartRef.current.pos - pos;\n const elapsed = Math.max(Date.now() - dragStartRef.current.time, 1);\n const velocity = isCancel ? 0 : delta / elapsed; // px/ms, positive = forward\n const pageSize = getPageSize();\n const scroll = orientation === 'horizontal' ? el.scrollLeft : el.scrollTop;\n\n let target: number;\n if (Math.abs(velocity) > 0.3) {\n // Flick gesture — advance in the swipe direction\n target = velocity > 0 ? Math.ceil(scroll / pageSize) : Math.floor(scroll / pageSize);\n } else {\n // Slow drag — snap to nearest page\n target = Math.round(scroll / pageSize);\n }\n\n if (loop) {\n target = ((target % pageCount) + pageCount) % pageCount;\n } else {\n target = Math.max(0, Math.min(target, pageCount - 1));\n }\n\n // Scroll to target while snap is still disabled, then re-enable once settled\n scrollToPage(target);\n if (!isControlled) {\n setInternalPage(target);\n }\n onPageChanged?.(target);\n\n // Re-enable snap after the smooth scroll animation completes (~300 ms)\n snapRestoreTimerRef.current = window.setTimeout(() => {\n el.style.removeProperty('scroll-snap-type');\n }, 350);\n },\n [orientation, getPageSize, loop, pageCount, scrollToPage, isControlled, onPageChanged],\n );\n\n // Clean up the snap-restore timer on unmount\n useEffect(() => {\n return () => window.clearTimeout(snapRestoreTimerRef.current);\n }, []);\n\n // Prevent click events that fire after a drag (e.g. links/buttons inside slides)\n const handleClick = useCallback((e: MouseEvent) => {\n if (hasDraggedRef.current) {\n e.preventDefault();\n e.stopPropagation();\n hasDraggedRef.current = false;\n }\n }, []);\n\n const isHorizontal = orientation === 'horizontal';\n\n // Slide width when showing more than one at a time\n const slideFlexBasis =\n visibleSlides !== 1\n ? `calc((100% - ${spacing * (visibleSlides - 1)}px) / ${visibleSlides})`\n : undefined;\n\n return (\n <div\n ref={scrollRef}\n role=\"region\"\n aria-roledescription=\"carousel\"\n tabIndex={0}\n className={[\n styles.carousel,\n isHorizontal ? styles.horizontal : styles.vertical,\n isDragging ? styles.dragging : null,\n className,\n ]\n .filter(Boolean)\n .join(' ')}\n style={isHorizontal ? { columnGap: spacing || undefined } : { rowGap: spacing || undefined }}\n onKeyDown={handleKeyDown}\n onPointerDown={handlePointerDown}\n onPointerMove={handlePointerMove}\n onPointerUp={handlePointerUp}\n onPointerCancel={handlePointerUp}\n onClick={handleClick}\n {...props}\n >\n {Children.map(children, (child, i) => (\n <div\n key={i}\n className={styles.slide}\n role=\"group\"\n aria-roledescription=\"slide\"\n aria-label={`${i + 1} of ${pageCount}`}\n style={slideFlexBasis ? { flex: `0 0 ${slideFlexBasis}` } : undefined}\n >\n {child}\n </div>\n ))}\n </div>\n );\n};\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- var e={carousel:`_carousel_1tci2_3`,horizontal:`_horizontal_1tci2_20`,vertical:`_vertical_1tci2_27`,slide:`_slide_1tci2_36`,indicatorDots:`_indicatorDots_1tci2_46`,dot:`_dot_1tci2_54`,dotActive:`_dotActive_1tci2_73`,indicatorLines:`_indicatorLines_1tci2_85`,line:`_line_1tci2_93`,lineActive:`_lineActive_1tci2_110`};exports.default=e;
1
+ var e={carousel:`_carousel_1yojd_3`,horizontal:`_horizontal_1yojd_25`,vertical:`_vertical_1yojd_34`,dragging:`_dragging_1yojd_44`,slide:`_slide_1yojd_53`,indicatorDots:`_indicatorDots_1yojd_62`,dot:`_dot_1yojd_70`,dotActive:`_dotActive_1yojd_89`,indicatorLines:`_indicatorLines_1yojd_101`,line:`_line_1yojd_109`,lineActive:`_lineActive_1yojd_126`};exports.default=e;
2
2
  //# sourceMappingURL=Carousel.module.css.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Carousel.module.css.cjs","names":[],"sources":["../../../src/components/Carousel/Carousel.module.css"],"sourcesContent":["/* ─── Carousel container ────────────────────────────────────────────────────── */\n\n.carousel {\n display: flex;\n overflow: hidden;\n scroll-snap-type: both mandatory;\n -webkit-overflow-scrolling: touch;\n outline: none;\n width: 100%;\n}\n\n.carousel:focus-visible {\n box-shadow:\n 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-window-bg-color, #fafafa),\n 0 0 0 calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 3px))\n var(--gnome-focus-ring-color, #3584e4);\n border-radius: var(--gnome-radius-md, 8px);\n}\n\n.horizontal {\n flex-direction: row;\n overflow-x: scroll;\n overflow-y: hidden;\n scroll-snap-type: x mandatory;\n}\n\n.vertical {\n flex-direction: column;\n overflow-y: scroll;\n overflow-x: hidden;\n scroll-snap-type: y mandatory;\n}\n\n/* ─── Slide ─────────────────────────────────────────────────────────────────── */\n\n.slide {\n flex: 0 0 100%;\n scroll-snap-align: start;\n scroll-snap-stop: always;\n min-width: 0;\n min-height: 0;\n}\n\n/* ─── Dot indicators ────────────────────────────────────────────────────────── */\n\n.indicatorDots {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n padding: var(--gnome-space-2, 12px) 0;\n}\n\n.dot {\n appearance: none;\n border: none;\n padding: 0;\n cursor: pointer;\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background-color: var(--gnome-window-fg-color, rgba(0, 0, 0, 0.8));\n opacity: 0.2;\n transition:\n opacity var(--gnome-duration-fast) var(--gnome-easing-default),\n transform var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.dot:hover {\n opacity: 0.5;\n}\n\n.dotActive {\n opacity: 1;\n transform: scale(1.15);\n}\n\n.dot:focus-visible {\n outline: 2px solid var(--gnome-focus-ring-color, #3584e4);\n outline-offset: 2px;\n}\n\n/* ─── Line indicators ───────────────────────────────────────────────────────── */\n\n.indicatorLines {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n padding: var(--gnome-space-2, 12px) 0;\n}\n\n.line {\n appearance: none;\n border: none;\n padding: 0;\n cursor: pointer;\n width: 24px;\n height: 3px;\n border-radius: 2px;\n background-color: var(--gnome-window-fg-color, rgba(0, 0, 0, 0.8));\n opacity: 0.2;\n transition: opacity var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.line:hover {\n opacity: 0.5;\n}\n\n.lineActive {\n opacity: 1;\n}\n\n.line:focus-visible {\n outline: 2px solid var(--gnome-focus-ring-color, #3584e4);\n outline-offset: 2px;\n}\n\n/* ─── Reduced motion ────────────────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .carousel {\n scroll-behavior: auto;\n }\n\n .dot,\n .line {\n transition: none;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"Carousel.module.css.cjs","names":[],"sources":["../../../src/components/Carousel/Carousel.module.css"],"sourcesContent":["/* ─── Carousel container ────────────────────────────────────────────────────── */\n\n.carousel {\n display: flex;\n overflow: hidden;\n overscroll-behavior: contain;\n outline: none;\n width: 100%;\n cursor: grab;\n scrollbar-width: none; /* Firefox */\n}\n\n.carousel::-webkit-scrollbar {\n display: none; /* Chrome / Safari / Edge */\n}\n\n.carousel:focus-visible {\n box-shadow:\n 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-window-bg-color, #fafafa),\n 0 0 0 calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 3px))\n var(--gnome-focus-ring-color, #3584e4);\n border-radius: var(--gnome-radius-md, 8px);\n}\n\n.horizontal {\n flex-direction: row;\n overflow: scroll hidden;\n scroll-snap-type: x mandatory;\n\n /* pan-y: browser handles vertical page scroll; we handle horizontal drag */\n touch-action: pan-y;\n}\n\n.vertical {\n flex-direction: column;\n overflow: hidden scroll;\n scroll-snap-type: y mandatory;\n\n /* pan-x: browser handles horizontal page scroll; we handle vertical drag */\n touch-action: pan-x;\n}\n\n/* Active mouse drag state */\n.dragging {\n cursor: grabbing;\n user-select: none;\n\n /* scroll-snap-type is disabled via inline style during drag */\n}\n\n/* ─── Slide ─────────────────────────────────────────────────────────────────── */\n\n.slide {\n flex: 0 0 100%;\n scroll-snap-align: start;\n min-width: 0;\n min-height: 0;\n}\n\n/* ─── Dot indicators ────────────────────────────────────────────────────────── */\n\n.indicatorDots {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n padding: var(--gnome-space-2, 12px) 0;\n}\n\n.dot {\n appearance: none;\n border: none;\n padding: 0;\n cursor: pointer;\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background-color: var(--gnome-window-fg-color, rgb(0 0 0 / 0.8));\n opacity: 0.2;\n transition:\n opacity var(--gnome-duration-fast) var(--gnome-easing-default),\n transform var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.dot:hover {\n opacity: 0.5;\n}\n\n.dotActive {\n opacity: 1;\n transform: scale(1.15);\n}\n\n.dot:focus-visible {\n outline: 2px solid var(--gnome-focus-ring-color, #3584e4);\n outline-offset: 2px;\n}\n\n/* ─── Line indicators ───────────────────────────────────────────────────────── */\n\n.indicatorLines {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n padding: var(--gnome-space-2, 12px) 0;\n}\n\n.line {\n appearance: none;\n border: none;\n padding: 0;\n cursor: pointer;\n width: 24px;\n height: 3px;\n border-radius: 2px;\n background-color: var(--gnome-window-fg-color, rgb(0 0 0 / 0.8));\n opacity: 0.2;\n transition: opacity var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.line:hover {\n opacity: 0.5;\n}\n\n.lineActive {\n opacity: 1;\n}\n\n.line:focus-visible {\n outline: 2px solid var(--gnome-focus-ring-color, #3584e4);\n outline-offset: 2px;\n}\n\n/* ─── Reduced motion ────────────────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .carousel {\n scroll-behavior: auto;\n }\n\n .dot,\n .line {\n transition: none;\n }\n}\n"],"mappings":""}
@@ -1,14 +1,15 @@
1
1
  var e = {
2
- carousel: "_carousel_1tci2_3",
3
- horizontal: "_horizontal_1tci2_20",
4
- vertical: "_vertical_1tci2_27",
5
- slide: "_slide_1tci2_36",
6
- indicatorDots: "_indicatorDots_1tci2_46",
7
- dot: "_dot_1tci2_54",
8
- dotActive: "_dotActive_1tci2_73",
9
- indicatorLines: "_indicatorLines_1tci2_85",
10
- line: "_line_1tci2_93",
11
- lineActive: "_lineActive_1tci2_110"
2
+ carousel: "_carousel_1yojd_3",
3
+ horizontal: "_horizontal_1yojd_25",
4
+ vertical: "_vertical_1yojd_34",
5
+ dragging: "_dragging_1yojd_44",
6
+ slide: "_slide_1yojd_53",
7
+ indicatorDots: "_indicatorDots_1yojd_62",
8
+ dot: "_dot_1yojd_70",
9
+ dotActive: "_dotActive_1yojd_89",
10
+ indicatorLines: "_indicatorLines_1yojd_101",
11
+ line: "_line_1yojd_109",
12
+ lineActive: "_lineActive_1yojd_126"
12
13
  };
13
14
  //#endregion
14
15
  export { e as default };
@@ -1 +1 @@
1
- {"version":3,"file":"Carousel.module.css.js","names":[],"sources":["../../../src/components/Carousel/Carousel.module.css"],"sourcesContent":["/* ─── Carousel container ────────────────────────────────────────────────────── */\n\n.carousel {\n display: flex;\n overflow: hidden;\n scroll-snap-type: both mandatory;\n -webkit-overflow-scrolling: touch;\n outline: none;\n width: 100%;\n}\n\n.carousel:focus-visible {\n box-shadow:\n 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-window-bg-color, #fafafa),\n 0 0 0 calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 3px))\n var(--gnome-focus-ring-color, #3584e4);\n border-radius: var(--gnome-radius-md, 8px);\n}\n\n.horizontal {\n flex-direction: row;\n overflow-x: scroll;\n overflow-y: hidden;\n scroll-snap-type: x mandatory;\n}\n\n.vertical {\n flex-direction: column;\n overflow-y: scroll;\n overflow-x: hidden;\n scroll-snap-type: y mandatory;\n}\n\n/* ─── Slide ─────────────────────────────────────────────────────────────────── */\n\n.slide {\n flex: 0 0 100%;\n scroll-snap-align: start;\n scroll-snap-stop: always;\n min-width: 0;\n min-height: 0;\n}\n\n/* ─── Dot indicators ────────────────────────────────────────────────────────── */\n\n.indicatorDots {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n padding: var(--gnome-space-2, 12px) 0;\n}\n\n.dot {\n appearance: none;\n border: none;\n padding: 0;\n cursor: pointer;\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background-color: var(--gnome-window-fg-color, rgba(0, 0, 0, 0.8));\n opacity: 0.2;\n transition:\n opacity var(--gnome-duration-fast) var(--gnome-easing-default),\n transform var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.dot:hover {\n opacity: 0.5;\n}\n\n.dotActive {\n opacity: 1;\n transform: scale(1.15);\n}\n\n.dot:focus-visible {\n outline: 2px solid var(--gnome-focus-ring-color, #3584e4);\n outline-offset: 2px;\n}\n\n/* ─── Line indicators ───────────────────────────────────────────────────────── */\n\n.indicatorLines {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n padding: var(--gnome-space-2, 12px) 0;\n}\n\n.line {\n appearance: none;\n border: none;\n padding: 0;\n cursor: pointer;\n width: 24px;\n height: 3px;\n border-radius: 2px;\n background-color: var(--gnome-window-fg-color, rgba(0, 0, 0, 0.8));\n opacity: 0.2;\n transition: opacity var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.line:hover {\n opacity: 0.5;\n}\n\n.lineActive {\n opacity: 1;\n}\n\n.line:focus-visible {\n outline: 2px solid var(--gnome-focus-ring-color, #3584e4);\n outline-offset: 2px;\n}\n\n/* ─── Reduced motion ────────────────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .carousel {\n scroll-behavior: auto;\n }\n\n .dot,\n .line {\n transition: none;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"Carousel.module.css.js","names":[],"sources":["../../../src/components/Carousel/Carousel.module.css"],"sourcesContent":["/* ─── Carousel container ────────────────────────────────────────────────────── */\n\n.carousel {\n display: flex;\n overflow: hidden;\n overscroll-behavior: contain;\n outline: none;\n width: 100%;\n cursor: grab;\n scrollbar-width: none; /* Firefox */\n}\n\n.carousel::-webkit-scrollbar {\n display: none; /* Chrome / Safari / Edge */\n}\n\n.carousel:focus-visible {\n box-shadow:\n 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-window-bg-color, #fafafa),\n 0 0 0 calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 3px))\n var(--gnome-focus-ring-color, #3584e4);\n border-radius: var(--gnome-radius-md, 8px);\n}\n\n.horizontal {\n flex-direction: row;\n overflow: scroll hidden;\n scroll-snap-type: x mandatory;\n\n /* pan-y: browser handles vertical page scroll; we handle horizontal drag */\n touch-action: pan-y;\n}\n\n.vertical {\n flex-direction: column;\n overflow: hidden scroll;\n scroll-snap-type: y mandatory;\n\n /* pan-x: browser handles horizontal page scroll; we handle vertical drag */\n touch-action: pan-x;\n}\n\n/* Active mouse drag state */\n.dragging {\n cursor: grabbing;\n user-select: none;\n\n /* scroll-snap-type is disabled via inline style during drag */\n}\n\n/* ─── Slide ─────────────────────────────────────────────────────────────────── */\n\n.slide {\n flex: 0 0 100%;\n scroll-snap-align: start;\n min-width: 0;\n min-height: 0;\n}\n\n/* ─── Dot indicators ────────────────────────────────────────────────────────── */\n\n.indicatorDots {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 6px;\n padding: var(--gnome-space-2, 12px) 0;\n}\n\n.dot {\n appearance: none;\n border: none;\n padding: 0;\n cursor: pointer;\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background-color: var(--gnome-window-fg-color, rgb(0 0 0 / 0.8));\n opacity: 0.2;\n transition:\n opacity var(--gnome-duration-fast) var(--gnome-easing-default),\n transform var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.dot:hover {\n opacity: 0.5;\n}\n\n.dotActive {\n opacity: 1;\n transform: scale(1.15);\n}\n\n.dot:focus-visible {\n outline: 2px solid var(--gnome-focus-ring-color, #3584e4);\n outline-offset: 2px;\n}\n\n/* ─── Line indicators ───────────────────────────────────────────────────────── */\n\n.indicatorLines {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 4px;\n padding: var(--gnome-space-2, 12px) 0;\n}\n\n.line {\n appearance: none;\n border: none;\n padding: 0;\n cursor: pointer;\n width: 24px;\n height: 3px;\n border-radius: 2px;\n background-color: var(--gnome-window-fg-color, rgb(0 0 0 / 0.8));\n opacity: 0.2;\n transition: opacity var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.line:hover {\n opacity: 0.5;\n}\n\n.lineActive {\n opacity: 1;\n}\n\n.line:focus-visible {\n outline: 2px solid var(--gnome-focus-ring-color, #3584e4);\n outline-offset: 2px;\n}\n\n/* ─── Reduced motion ────────────────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .carousel {\n scroll-behavior: auto;\n }\n\n .dot,\n .line {\n transition: none;\n }\n}\n"],"mappings":""}
@@ -1,2 +1,2 @@
1
- var e={row:`_row_1ckav_3`,disabled:`_disabled_1ckav_41`,checkboxWrap:`_checkboxWrap_1ckav_49`,checkbox:`_checkbox_1ckav_49`,checkboxChecked:`_checkboxChecked_1ckav_71`,checkmark:`_checkmark_1ckav_77`,leading:`_leading_1ckav_84`,content:`_content_1ckav_93`,title:`_title_1ckav_101`,subtitle:`_subtitle_1ckav_112`};exports.default=e;
1
+ var e={row:`_row_rq5l1_3`,disabled:`_disabled_rq5l1_38`,checkboxWrap:`_checkboxWrap_rq5l1_46`,checkbox:`_checkbox_rq5l1_46`,checkboxChecked:`_checkboxChecked_rq5l1_68`,checkmark:`_checkmark_rq5l1_74`,leading:`_leading_rq5l1_81`,content:`_content_rq5l1_90`,title:`_title_rq5l1_98`,subtitle:`_subtitle_rq5l1_109`};exports.default=e;
2
2
  //# sourceMappingURL=CheckRow.module.css.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"CheckRow.module.css.cjs","names":[],"sources":["../../../src/components/CheckRow/CheckRow.module.css"],"sourcesContent":["/* ─── Row button ────────────────────────────────────────────────────────────── */\n\n.row {\n display: flex;\n align-items: center;\n gap: var(--gnome-space-2, 12px);\n padding: var(--gnome-space-2, 12px) var(--gnome-space-4, 24px);\n min-height: 52px;\n width: 100%;\n\n appearance: none;\n -webkit-appearance: none;\n background: transparent;\n border: none;\n font: inherit;\n outline: none;\n cursor: pointer;\n text-align: start;\n color: var(--gnome-card-fg-color, rgba(0, 0, 0, 0.8));\n\n transition: background-color var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.row:hover {\n background-color: var(--gnome-hover-overlay);\n}\n\n.row:active {\n background-color: var(--gnome-active-overlay);\n}\n\n.row:focus-visible {\n box-shadow:\n inset 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-window-bg-color, #fafafa),\n inset 0 0 0 calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 3px))\n var(--gnome-focus-ring-color, #3584e4);\n}\n\n/* ─── Disabled ──────────────────────────────────────────────────────────────── */\n\n.disabled {\n opacity: var(--gnome-opacity-disabled, 0.5);\n cursor: not-allowed;\n pointer-events: none;\n}\n\n/* ─── Checkbox visual ───────────────────────────────────────────────────────── */\n\n.checkboxWrap {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n}\n\n.checkbox {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n border-radius: var(--gnome-radius-sm, 4px);\n border: 1.5px solid var(--gnome-border-subtle, rgba(0, 0, 0, 0.25));\n background-color: transparent;\n color: transparent;\n transition:\n background-color var(--gnome-duration-fast) var(--gnome-easing-default),\n border-color var(--gnome-duration-fast) var(--gnome-easing-default),\n color var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.checkboxChecked {\n background-color: var(--gnome-accent-bg-color, #3584e4);\n border-color: var(--gnome-accent-bg-color, #3584e4);\n color: #ffffff;\n}\n\n.checkmark {\n display: block;\n flex-shrink: 0;\n}\n\n/* ─── Leading icon/avatar ───────────────────────────────────────────────────── */\n\n.leading {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n color: var(--gnome-window-fg-color, rgba(0, 0, 0, 0.8));\n}\n\n/* ─── Text content ──────────────────────────────────────────────────────────── */\n\n.content {\n display: flex;\n flex-direction: column;\n flex: 1;\n min-width: 0;\n gap: 2px;\n}\n\n.title {\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-body, 1rem);\n font-weight: var(--gnome-font-weight-normal, 400);\n line-height: var(--gnome-line-height-body, 1.5);\n color: var(--gnome-card-fg-color, rgba(0, 0, 0, 0.8));\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.subtitle {\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-caption, 0.75rem);\n font-weight: var(--gnome-font-weight-normal, 400);\n line-height: var(--gnome-line-height-body, 1.5);\n color: var(--gnome-window-fg-color, rgba(0, 0, 0, 0.55));\n opacity: var(--gnome-opacity-dim, 0.55);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n/* ─── High contrast ─────────────────────────────────────────────────────────── */\n\n@media (prefers-contrast: more) {\n .row:focus-visible {\n box-shadow:\n inset 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-window-bg-color, #fafafa),\n inset 0 0 0 calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 3px))\n var(--gnome-focus-ring-color, #3584e4),\n inset 0 0 0\n calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 3px) + 1px)\n var(--gnome-window-bg-color, #fafafa);\n }\n\n .checkbox {\n border-width: 2px;\n }\n}\n\n/* ─── Reduced motion ────────────────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .checkbox {\n transition: none;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"CheckRow.module.css.cjs","names":[],"sources":["../../../src/components/CheckRow/CheckRow.module.css"],"sourcesContent":["/* ─── Row button ────────────────────────────────────────────────────────────── */\n\n.row {\n display: flex;\n align-items: center;\n gap: var(--gnome-space-2, 12px);\n padding: var(--gnome-space-2, 12px) var(--gnome-space-4, 24px);\n min-height: 52px;\n width: 100%;\n appearance: none;\n background: transparent;\n border: none;\n font: inherit;\n outline: none;\n cursor: pointer;\n text-align: start;\n color: var(--gnome-card-fg-color, rgb(0 0 0 / 0.8));\n transition: background-color var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.row:hover {\n background-color: var(--gnome-hover-overlay);\n}\n\n.row:active {\n background-color: var(--gnome-active-overlay);\n}\n\n.row:focus-visible {\n box-shadow:\n inset 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-window-bg-color, #fafafa),\n inset 0 0 0 calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 3px))\n var(--gnome-focus-ring-color, #3584e4);\n}\n\n/* ─── Disabled ──────────────────────────────────────────────────────────────── */\n\n.disabled {\n opacity: var(--gnome-opacity-disabled, 0.5);\n cursor: not-allowed;\n pointer-events: none;\n}\n\n/* ─── Checkbox visual ───────────────────────────────────────────────────────── */\n\n.checkboxWrap {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n}\n\n.checkbox {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n border-radius: var(--gnome-radius-sm, 4px);\n border: 1.5px solid var(--gnome-border-subtle, rgb(0 0 0 / 0.25));\n background-color: transparent;\n color: transparent;\n transition:\n background-color var(--gnome-duration-fast) var(--gnome-easing-default),\n border-color var(--gnome-duration-fast) var(--gnome-easing-default),\n color var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.checkboxChecked {\n background-color: var(--gnome-accent-bg-color, #3584e4);\n border-color: var(--gnome-accent-bg-color, #3584e4);\n color: #fff;\n}\n\n.checkmark {\n display: block;\n flex-shrink: 0;\n}\n\n/* ─── Leading icon/avatar ───────────────────────────────────────────────────── */\n\n.leading {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n color: var(--gnome-window-fg-color, rgb(0 0 0 / 0.8));\n}\n\n/* ─── Text content ──────────────────────────────────────────────────────────── */\n\n.content {\n display: flex;\n flex-direction: column;\n flex: 1;\n min-width: 0;\n gap: 2px;\n}\n\n.title {\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-body, 1rem);\n font-weight: var(--gnome-font-weight-normal, 400);\n line-height: var(--gnome-line-height-body, 1.5);\n color: var(--gnome-card-fg-color, rgb(0 0 0 / 0.8));\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.subtitle {\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-caption, 0.75rem);\n font-weight: var(--gnome-font-weight-normal, 400);\n line-height: var(--gnome-line-height-body, 1.5);\n color: var(--gnome-window-fg-color, rgb(0 0 0 / 0.55));\n opacity: var(--gnome-opacity-dim, 0.55);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n/* ─── High contrast ─────────────────────────────────────────────────────────── */\n\n@media (prefers-contrast: more) {\n .row:focus-visible {\n box-shadow:\n inset 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-window-bg-color, #fafafa),\n inset 0 0 0 calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 3px))\n var(--gnome-focus-ring-color, #3584e4),\n inset 0 0 0\n calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 3px) + 1px)\n var(--gnome-window-bg-color, #fafafa);\n }\n\n .checkbox {\n border-width: 2px;\n }\n}\n\n/* ─── Reduced motion ────────────────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .checkbox {\n transition: none;\n }\n}\n"],"mappings":""}
@@ -1,14 +1,14 @@
1
1
  var e = {
2
- row: "_row_1ckav_3",
3
- disabled: "_disabled_1ckav_41",
4
- checkboxWrap: "_checkboxWrap_1ckav_49",
5
- checkbox: "_checkbox_1ckav_49",
6
- checkboxChecked: "_checkboxChecked_1ckav_71",
7
- checkmark: "_checkmark_1ckav_77",
8
- leading: "_leading_1ckav_84",
9
- content: "_content_1ckav_93",
10
- title: "_title_1ckav_101",
11
- subtitle: "_subtitle_1ckav_112"
2
+ row: "_row_rq5l1_3",
3
+ disabled: "_disabled_rq5l1_38",
4
+ checkboxWrap: "_checkboxWrap_rq5l1_46",
5
+ checkbox: "_checkbox_rq5l1_46",
6
+ checkboxChecked: "_checkboxChecked_rq5l1_68",
7
+ checkmark: "_checkmark_rq5l1_74",
8
+ leading: "_leading_rq5l1_81",
9
+ content: "_content_rq5l1_90",
10
+ title: "_title_rq5l1_98",
11
+ subtitle: "_subtitle_rq5l1_109"
12
12
  };
13
13
  //#endregion
14
14
  export { e as default };
@@ -1 +1 @@
1
- {"version":3,"file":"CheckRow.module.css.js","names":[],"sources":["../../../src/components/CheckRow/CheckRow.module.css"],"sourcesContent":["/* ─── Row button ────────────────────────────────────────────────────────────── */\n\n.row {\n display: flex;\n align-items: center;\n gap: var(--gnome-space-2, 12px);\n padding: var(--gnome-space-2, 12px) var(--gnome-space-4, 24px);\n min-height: 52px;\n width: 100%;\n\n appearance: none;\n -webkit-appearance: none;\n background: transparent;\n border: none;\n font: inherit;\n outline: none;\n cursor: pointer;\n text-align: start;\n color: var(--gnome-card-fg-color, rgba(0, 0, 0, 0.8));\n\n transition: background-color var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.row:hover {\n background-color: var(--gnome-hover-overlay);\n}\n\n.row:active {\n background-color: var(--gnome-active-overlay);\n}\n\n.row:focus-visible {\n box-shadow:\n inset 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-window-bg-color, #fafafa),\n inset 0 0 0 calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 3px))\n var(--gnome-focus-ring-color, #3584e4);\n}\n\n/* ─── Disabled ──────────────────────────────────────────────────────────────── */\n\n.disabled {\n opacity: var(--gnome-opacity-disabled, 0.5);\n cursor: not-allowed;\n pointer-events: none;\n}\n\n/* ─── Checkbox visual ───────────────────────────────────────────────────────── */\n\n.checkboxWrap {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n}\n\n.checkbox {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n border-radius: var(--gnome-radius-sm, 4px);\n border: 1.5px solid var(--gnome-border-subtle, rgba(0, 0, 0, 0.25));\n background-color: transparent;\n color: transparent;\n transition:\n background-color var(--gnome-duration-fast) var(--gnome-easing-default),\n border-color var(--gnome-duration-fast) var(--gnome-easing-default),\n color var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.checkboxChecked {\n background-color: var(--gnome-accent-bg-color, #3584e4);\n border-color: var(--gnome-accent-bg-color, #3584e4);\n color: #ffffff;\n}\n\n.checkmark {\n display: block;\n flex-shrink: 0;\n}\n\n/* ─── Leading icon/avatar ───────────────────────────────────────────────────── */\n\n.leading {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n color: var(--gnome-window-fg-color, rgba(0, 0, 0, 0.8));\n}\n\n/* ─── Text content ──────────────────────────────────────────────────────────── */\n\n.content {\n display: flex;\n flex-direction: column;\n flex: 1;\n min-width: 0;\n gap: 2px;\n}\n\n.title {\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-body, 1rem);\n font-weight: var(--gnome-font-weight-normal, 400);\n line-height: var(--gnome-line-height-body, 1.5);\n color: var(--gnome-card-fg-color, rgba(0, 0, 0, 0.8));\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.subtitle {\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-caption, 0.75rem);\n font-weight: var(--gnome-font-weight-normal, 400);\n line-height: var(--gnome-line-height-body, 1.5);\n color: var(--gnome-window-fg-color, rgba(0, 0, 0, 0.55));\n opacity: var(--gnome-opacity-dim, 0.55);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n/* ─── High contrast ─────────────────────────────────────────────────────────── */\n\n@media (prefers-contrast: more) {\n .row:focus-visible {\n box-shadow:\n inset 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-window-bg-color, #fafafa),\n inset 0 0 0 calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 3px))\n var(--gnome-focus-ring-color, #3584e4),\n inset 0 0 0\n calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 3px) + 1px)\n var(--gnome-window-bg-color, #fafafa);\n }\n\n .checkbox {\n border-width: 2px;\n }\n}\n\n/* ─── Reduced motion ────────────────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .checkbox {\n transition: none;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"CheckRow.module.css.js","names":[],"sources":["../../../src/components/CheckRow/CheckRow.module.css"],"sourcesContent":["/* ─── Row button ────────────────────────────────────────────────────────────── */\n\n.row {\n display: flex;\n align-items: center;\n gap: var(--gnome-space-2, 12px);\n padding: var(--gnome-space-2, 12px) var(--gnome-space-4, 24px);\n min-height: 52px;\n width: 100%;\n appearance: none;\n background: transparent;\n border: none;\n font: inherit;\n outline: none;\n cursor: pointer;\n text-align: start;\n color: var(--gnome-card-fg-color, rgb(0 0 0 / 0.8));\n transition: background-color var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.row:hover {\n background-color: var(--gnome-hover-overlay);\n}\n\n.row:active {\n background-color: var(--gnome-active-overlay);\n}\n\n.row:focus-visible {\n box-shadow:\n inset 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-window-bg-color, #fafafa),\n inset 0 0 0 calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 3px))\n var(--gnome-focus-ring-color, #3584e4);\n}\n\n/* ─── Disabled ──────────────────────────────────────────────────────────────── */\n\n.disabled {\n opacity: var(--gnome-opacity-disabled, 0.5);\n cursor: not-allowed;\n pointer-events: none;\n}\n\n/* ─── Checkbox visual ───────────────────────────────────────────────────────── */\n\n.checkboxWrap {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n}\n\n.checkbox {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n border-radius: var(--gnome-radius-sm, 4px);\n border: 1.5px solid var(--gnome-border-subtle, rgb(0 0 0 / 0.25));\n background-color: transparent;\n color: transparent;\n transition:\n background-color var(--gnome-duration-fast) var(--gnome-easing-default),\n border-color var(--gnome-duration-fast) var(--gnome-easing-default),\n color var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.checkboxChecked {\n background-color: var(--gnome-accent-bg-color, #3584e4);\n border-color: var(--gnome-accent-bg-color, #3584e4);\n color: #fff;\n}\n\n.checkmark {\n display: block;\n flex-shrink: 0;\n}\n\n/* ─── Leading icon/avatar ───────────────────────────────────────────────────── */\n\n.leading {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n color: var(--gnome-window-fg-color, rgb(0 0 0 / 0.8));\n}\n\n/* ─── Text content ──────────────────────────────────────────────────────────── */\n\n.content {\n display: flex;\n flex-direction: column;\n flex: 1;\n min-width: 0;\n gap: 2px;\n}\n\n.title {\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-body, 1rem);\n font-weight: var(--gnome-font-weight-normal, 400);\n line-height: var(--gnome-line-height-body, 1.5);\n color: var(--gnome-card-fg-color, rgb(0 0 0 / 0.8));\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.subtitle {\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-caption, 0.75rem);\n font-weight: var(--gnome-font-weight-normal, 400);\n line-height: var(--gnome-line-height-body, 1.5);\n color: var(--gnome-window-fg-color, rgb(0 0 0 / 0.55));\n opacity: var(--gnome-opacity-dim, 0.55);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n/* ─── High contrast ─────────────────────────────────────────────────────────── */\n\n@media (prefers-contrast: more) {\n .row:focus-visible {\n box-shadow:\n inset 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-window-bg-color, #fafafa),\n inset 0 0 0 calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 3px))\n var(--gnome-focus-ring-color, #3584e4),\n inset 0 0 0\n calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 3px) + 1px)\n var(--gnome-window-bg-color, #fafafa);\n }\n\n .checkbox {\n border-width: 2px;\n }\n}\n\n/* ─── Reduced motion ────────────────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .checkbox {\n transition: none;\n }\n}\n"],"mappings":""}
@@ -1,2 +1,2 @@
1
- var e={checkbox:`_checkbox_15vcc_3`};exports.default=e;
1
+ var e={checkbox:`_checkbox_u344z_3`};exports.default=e;
2
2
  //# sourceMappingURL=Checkbox.module.css.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.module.css.cjs","names":[],"sources":["../../../src/components/Checkbox/Checkbox.module.css"],"sourcesContent":["/* ─── Reset & base ─────────────────────────────────────────────────────────── */\n\n.checkbox {\n appearance: none;\n -webkit-appearance: none;\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n cursor: pointer;\n\n width: 18px;\n height: 18px;\n border-radius: var(--gnome-radius-sm, 4px);\n\n background-color: var(--gnome-card-bg-color, #ffffff);\n border: 1.5px solid var(--gnome-light-4, #c0bfbc);\n\n transition:\n background-color var(--gnome-duration-fast) var(--gnome-easing-default),\n border-color var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n/* ─── Checkmark (checked) ──────────────────────────────────────────────────── */\n\n.checkbox::before {\n content: \"\";\n display: block;\n opacity: 0;\n transition: opacity var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.checkbox:checked {\n background-color: var(--gnome-accent-bg-color, #3584e4);\n border-color: var(--gnome-accent-bg-color, #3584e4);\n}\n\n.checkbox:checked::before {\n opacity: 1;\n /* SVG checkmark rendered via clip-path */\n width: 10px;\n height: 7px;\n background-color: #ffffff;\n clip-path: polygon(14% 44%, 0 58%, 36% 100%, 100% 12%, 84% 0%, 36% 68%);\n}\n\n/* ─── Indeterminate (mixed) ────────────────────────────────────────────────── */\n\n.checkbox:indeterminate {\n background-color: var(--gnome-accent-bg-color, #3584e4);\n border-color: var(--gnome-accent-bg-color, #3584e4);\n}\n\n.checkbox:indeterminate::before {\n opacity: 1;\n width: 10px;\n height: 2px;\n background-color: #ffffff;\n clip-path: none;\n border-radius: 1px;\n}\n\n/* ─── Focus ────────────────────────────────────────────────────────────────── */\n\n.checkbox:focus-visible {\n outline: none;\n box-shadow:\n 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-window-bg-color, #fafafa),\n 0 0 0 calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 3px))\n var(--gnome-focus-ring-color, #3584e4);\n}\n\n/* ─── Hover ────────────────────────────────────────────────────────────────── */\n\n.checkbox:not(:checked):not(:indeterminate):hover {\n border-color: var(--gnome-light-5, #9a9996);\n background-color: color-mix(in srgb, var(--gnome-card-bg-color, #ffffff) 94%, black 6%);\n}\n\n/* ─── Disabled ─────────────────────────────────────────────────────────────── */\n\n.checkbox:disabled {\n opacity: var(--gnome-opacity-disabled, 0.5);\n cursor: not-allowed;\n}\n\n/* ─── Dark mode ────────────────────────────────────────────────────────────── */\n\n@media (prefers-color-scheme: dark) {\n .checkbox {\n background-color: var(--gnome-card-bg-color, #383838);\n border-color: var(--gnome-dark-1, #77767b);\n }\n\n .checkbox:not(:checked):not(:indeterminate):hover {\n border-color: var(--gnome-light-4, #c0bfbc);\n background-color: color-mix(in srgb, var(--gnome-card-bg-color, #383838) 85%, white 15%);\n }\n}\n\n/* ─── High contrast ────────────────────────────────────────────────────────── */\n\n@media (prefers-contrast: more) {\n .checkbox {\n border-width: 2px;\n border-color: var(--gnome-window-fg-color, rgba(0, 0, 0, 0.8));\n }\n\n .checkbox:not(:checked):not(:indeterminate):hover {\n border-color: var(--gnome-window-fg-color, rgba(0, 0, 0, 0.8));\n background-color: var(--gnome-hover-overlay);\n }\n}\n\n/* ─── Reduced motion ───────────────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .checkbox,\n .checkbox::before {\n transition: none;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"Checkbox.module.css.cjs","names":[],"sources":["../../../src/components/Checkbox/Checkbox.module.css"],"sourcesContent":["/* ─── Reset & base ─────────────────────────────────────────────────────────── */\n\n.checkbox {\n appearance: none;\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n cursor: pointer;\n width: 18px;\n height: 18px;\n border-radius: var(--gnome-radius-sm, 4px);\n background-color: var(--gnome-card-bg-color, #fff);\n border: 1.5px solid var(--gnome-light-4, #c0bfbc);\n transition:\n background-color var(--gnome-duration-fast) var(--gnome-easing-default),\n border-color var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n/* ─── Checkmark (checked) ──────────────────────────────────────────────────── */\n\n.checkbox::before {\n content: \"\";\n display: block;\n opacity: 0;\n transition: opacity var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.checkbox:checked {\n background-color: var(--gnome-accent-bg-color, #3584e4);\n border-color: var(--gnome-accent-bg-color, #3584e4);\n}\n\n.checkbox:checked::before {\n opacity: 1;\n\n /* SVG checkmark rendered via clip-path */\n width: 10px;\n height: 7px;\n background-color: #fff;\n clip-path: polygon(14% 44%, 0 58%, 36% 100%, 100% 12%, 84% 0%, 36% 68%);\n}\n\n/* ─── Indeterminate (mixed) ────────────────────────────────────────────────── */\n\n.checkbox:indeterminate {\n background-color: var(--gnome-accent-bg-color, #3584e4);\n border-color: var(--gnome-accent-bg-color, #3584e4);\n}\n\n.checkbox:indeterminate::before {\n opacity: 1;\n width: 10px;\n height: 2px;\n background-color: #fff;\n clip-path: none;\n border-radius: 1px;\n}\n\n/* ─── Focus ────────────────────────────────────────────────────────────────── */\n\n.checkbox:focus-visible {\n outline: none;\n box-shadow:\n 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-window-bg-color, #fafafa),\n 0 0 0 calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 3px))\n var(--gnome-focus-ring-color, #3584e4);\n}\n\n/* ─── Hover ────────────────────────────────────────────────────────────────── */\n\n.checkbox:not(:checked, :indeterminate):hover {\n border-color: var(--gnome-light-5, #9a9996);\n background-color: color-mix(in srgb, var(--gnome-card-bg-color, #fff) 94%, black 6%);\n}\n\n/* ─── Disabled ─────────────────────────────────────────────────────────────── */\n\n.checkbox:disabled {\n opacity: var(--gnome-opacity-disabled, 0.5);\n cursor: not-allowed;\n}\n\n/* ─── Dark mode ────────────────────────────────────────────────────────────── */\n\n@media (prefers-color-scheme: dark) {\n .checkbox {\n background-color: var(--gnome-card-bg-color, #383838);\n border-color: var(--gnome-dark-1, #77767b);\n }\n\n .checkbox:not(:checked, :indeterminate):hover {\n border-color: var(--gnome-light-4, #c0bfbc);\n background-color: color-mix(in srgb, var(--gnome-card-bg-color, #383838) 85%, white 15%);\n }\n}\n\n/* ─── High contrast ────────────────────────────────────────────────────────── */\n\n@media (prefers-contrast: more) {\n .checkbox {\n border-width: 2px;\n border-color: var(--gnome-window-fg-color, rgb(0 0 0 / 0.8));\n }\n\n .checkbox:not(:checked, :indeterminate):hover {\n border-color: var(--gnome-window-fg-color, rgb(0 0 0 / 0.8));\n background-color: var(--gnome-hover-overlay);\n }\n}\n\n/* ─── Reduced motion ───────────────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .checkbox,\n .checkbox::before {\n transition: none;\n }\n}\n"],"mappings":""}
@@ -1,4 +1,4 @@
1
- var e = { checkbox: "_checkbox_15vcc_3" };
1
+ var e = { checkbox: "_checkbox_u344z_3" };
2
2
  //#endregion
3
3
  export { e as default };
4
4
 
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.module.css.js","names":[],"sources":["../../../src/components/Checkbox/Checkbox.module.css"],"sourcesContent":["/* ─── Reset & base ─────────────────────────────────────────────────────────── */\n\n.checkbox {\n appearance: none;\n -webkit-appearance: none;\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n cursor: pointer;\n\n width: 18px;\n height: 18px;\n border-radius: var(--gnome-radius-sm, 4px);\n\n background-color: var(--gnome-card-bg-color, #ffffff);\n border: 1.5px solid var(--gnome-light-4, #c0bfbc);\n\n transition:\n background-color var(--gnome-duration-fast) var(--gnome-easing-default),\n border-color var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n/* ─── Checkmark (checked) ──────────────────────────────────────────────────── */\n\n.checkbox::before {\n content: \"\";\n display: block;\n opacity: 0;\n transition: opacity var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.checkbox:checked {\n background-color: var(--gnome-accent-bg-color, #3584e4);\n border-color: var(--gnome-accent-bg-color, #3584e4);\n}\n\n.checkbox:checked::before {\n opacity: 1;\n /* SVG checkmark rendered via clip-path */\n width: 10px;\n height: 7px;\n background-color: #ffffff;\n clip-path: polygon(14% 44%, 0 58%, 36% 100%, 100% 12%, 84% 0%, 36% 68%);\n}\n\n/* ─── Indeterminate (mixed) ────────────────────────────────────────────────── */\n\n.checkbox:indeterminate {\n background-color: var(--gnome-accent-bg-color, #3584e4);\n border-color: var(--gnome-accent-bg-color, #3584e4);\n}\n\n.checkbox:indeterminate::before {\n opacity: 1;\n width: 10px;\n height: 2px;\n background-color: #ffffff;\n clip-path: none;\n border-radius: 1px;\n}\n\n/* ─── Focus ────────────────────────────────────────────────────────────────── */\n\n.checkbox:focus-visible {\n outline: none;\n box-shadow:\n 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-window-bg-color, #fafafa),\n 0 0 0 calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 3px))\n var(--gnome-focus-ring-color, #3584e4);\n}\n\n/* ─── Hover ────────────────────────────────────────────────────────────────── */\n\n.checkbox:not(:checked):not(:indeterminate):hover {\n border-color: var(--gnome-light-5, #9a9996);\n background-color: color-mix(in srgb, var(--gnome-card-bg-color, #ffffff) 94%, black 6%);\n}\n\n/* ─── Disabled ─────────────────────────────────────────────────────────────── */\n\n.checkbox:disabled {\n opacity: var(--gnome-opacity-disabled, 0.5);\n cursor: not-allowed;\n}\n\n/* ─── Dark mode ────────────────────────────────────────────────────────────── */\n\n@media (prefers-color-scheme: dark) {\n .checkbox {\n background-color: var(--gnome-card-bg-color, #383838);\n border-color: var(--gnome-dark-1, #77767b);\n }\n\n .checkbox:not(:checked):not(:indeterminate):hover {\n border-color: var(--gnome-light-4, #c0bfbc);\n background-color: color-mix(in srgb, var(--gnome-card-bg-color, #383838) 85%, white 15%);\n }\n}\n\n/* ─── High contrast ────────────────────────────────────────────────────────── */\n\n@media (prefers-contrast: more) {\n .checkbox {\n border-width: 2px;\n border-color: var(--gnome-window-fg-color, rgba(0, 0, 0, 0.8));\n }\n\n .checkbox:not(:checked):not(:indeterminate):hover {\n border-color: var(--gnome-window-fg-color, rgba(0, 0, 0, 0.8));\n background-color: var(--gnome-hover-overlay);\n }\n}\n\n/* ─── Reduced motion ───────────────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .checkbox,\n .checkbox::before {\n transition: none;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"Checkbox.module.css.js","names":[],"sources":["../../../src/components/Checkbox/Checkbox.module.css"],"sourcesContent":["/* ─── Reset & base ─────────────────────────────────────────────────────────── */\n\n.checkbox {\n appearance: none;\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n cursor: pointer;\n width: 18px;\n height: 18px;\n border-radius: var(--gnome-radius-sm, 4px);\n background-color: var(--gnome-card-bg-color, #fff);\n border: 1.5px solid var(--gnome-light-4, #c0bfbc);\n transition:\n background-color var(--gnome-duration-fast) var(--gnome-easing-default),\n border-color var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n/* ─── Checkmark (checked) ──────────────────────────────────────────────────── */\n\n.checkbox::before {\n content: \"\";\n display: block;\n opacity: 0;\n transition: opacity var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.checkbox:checked {\n background-color: var(--gnome-accent-bg-color, #3584e4);\n border-color: var(--gnome-accent-bg-color, #3584e4);\n}\n\n.checkbox:checked::before {\n opacity: 1;\n\n /* SVG checkmark rendered via clip-path */\n width: 10px;\n height: 7px;\n background-color: #fff;\n clip-path: polygon(14% 44%, 0 58%, 36% 100%, 100% 12%, 84% 0%, 36% 68%);\n}\n\n/* ─── Indeterminate (mixed) ────────────────────────────────────────────────── */\n\n.checkbox:indeterminate {\n background-color: var(--gnome-accent-bg-color, #3584e4);\n border-color: var(--gnome-accent-bg-color, #3584e4);\n}\n\n.checkbox:indeterminate::before {\n opacity: 1;\n width: 10px;\n height: 2px;\n background-color: #fff;\n clip-path: none;\n border-radius: 1px;\n}\n\n/* ─── Focus ────────────────────────────────────────────────────────────────── */\n\n.checkbox:focus-visible {\n outline: none;\n box-shadow:\n 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-window-bg-color, #fafafa),\n 0 0 0 calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 3px))\n var(--gnome-focus-ring-color, #3584e4);\n}\n\n/* ─── Hover ────────────────────────────────────────────────────────────────── */\n\n.checkbox:not(:checked, :indeterminate):hover {\n border-color: var(--gnome-light-5, #9a9996);\n background-color: color-mix(in srgb, var(--gnome-card-bg-color, #fff) 94%, black 6%);\n}\n\n/* ─── Disabled ─────────────────────────────────────────────────────────────── */\n\n.checkbox:disabled {\n opacity: var(--gnome-opacity-disabled, 0.5);\n cursor: not-allowed;\n}\n\n/* ─── Dark mode ────────────────────────────────────────────────────────────── */\n\n@media (prefers-color-scheme: dark) {\n .checkbox {\n background-color: var(--gnome-card-bg-color, #383838);\n border-color: var(--gnome-dark-1, #77767b);\n }\n\n .checkbox:not(:checked, :indeterminate):hover {\n border-color: var(--gnome-light-4, #c0bfbc);\n background-color: color-mix(in srgb, var(--gnome-card-bg-color, #383838) 85%, white 15%);\n }\n}\n\n/* ─── High contrast ────────────────────────────────────────────────────────── */\n\n@media (prefers-contrast: more) {\n .checkbox {\n border-width: 2px;\n border-color: var(--gnome-window-fg-color, rgb(0 0 0 / 0.8));\n }\n\n .checkbox:not(:checked, :indeterminate):hover {\n border-color: var(--gnome-window-fg-color, rgb(0 0 0 / 0.8));\n background-color: var(--gnome-hover-overlay);\n }\n}\n\n/* ─── Reduced motion ───────────────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .checkbox,\n .checkbox::before {\n transition: none;\n }\n}\n"],"mappings":""}
@@ -1,2 +1,2 @@
1
- var e={chip:`_chip_7pedl_3`,selectable:`_selectable_7pedl_31`,selected:`_selected_7pedl_55`,disabled:`_disabled_7pedl_68`,icon:`_icon_7pedl_76`,label:`_label_7pedl_85`,remove:`_remove_7pedl_91`};exports.default=e;
1
+ var e={chip:`_chip_3068g_3`,selectable:`_selectable_3068g_27`,selected:`_selected_3068g_51`,disabled:`_disabled_3068g_64`,icon:`_icon_3068g_72`,label:`_label_3068g_81`,remove:`_remove_3068g_87`};exports.default=e;
2
2
  //# sourceMappingURL=Chip.module.css.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Chip.module.css.cjs","names":[],"sources":["../../../src/components/Chip/Chip.module.css"],"sourcesContent":["/* ─── Base ──────────────────────────────────────────────────────────────────── */\n\n.chip {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n\n padding: 3px 10px;\n border-radius: var(--gnome-radius-pill);\n\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-caption, 0.875rem);\n font-weight: var(--gnome-font-weight-normal, 400);\n line-height: 1.4;\n color: var(--gnome-window-fg-color, rgba(0, 0, 0, 0.8));\n white-space: nowrap;\n\n background-color: var(--gnome-card-bg-color, #ffffff);\n border: 1px solid var(--gnome-light-3, #deddda);\n\n /* Not a button by default */\n appearance: none;\n -webkit-appearance: none;\n cursor: default;\n user-select: none;\n outline: none;\n}\n\n/* ─── Selectable (toggle button) ────────────────────────────────────────────── */\n\n.selectable {\n cursor: pointer;\n transition:\n background-color var(--gnome-duration-fast) var(--gnome-easing-default),\n border-color var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.selectable:hover:not(:disabled) {\n background-color: color-mix(in srgb, var(--gnome-card-bg-color, #ffffff) 85%, black);\n}\n\n.selectable:active:not(:disabled) {\n background-color: color-mix(in srgb, var(--gnome-card-bg-color, #ffffff) 70%, black);\n}\n\n.selectable:focus-visible {\n box-shadow:\n 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-window-bg-color, #fafafa),\n 0 0 0 calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 2px))\n var(--gnome-focus-ring-color, #3584e4);\n}\n\n/* ─── Selected state ────────────────────────────────────────────────────────── */\n\n.selected {\n background-color: color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 15%, transparent);\n border-color: color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 50%, transparent);\n color: var(--gnome-accent-color, #3584e4);\n font-weight: var(--gnome-font-weight-semibold, 600);\n}\n\n.selected.selectable:hover:not(:disabled) {\n background-color: color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 22%, transparent);\n}\n\n/* ─── Disabled ──────────────────────────────────────────────────────────────── */\n\n.disabled {\n opacity: var(--gnome-opacity-disabled, 0.5);\n cursor: not-allowed;\n pointer-events: none;\n}\n\n/* ─── Leading icon ──────────────────────────────────────────────────────────── */\n\n.icon {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n margin-inline-start: -2px;\n}\n\n/* ─── Label ─────────────────────────────────────────────────────────────────── */\n\n.label {\n /* nothing extra needed */\n}\n\n/* ─── Remove button ─────────────────────────────────────────────────────────── */\n\n.remove {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n\n appearance: none;\n -webkit-appearance: none;\n border: none;\n background: transparent;\n padding: 0;\n margin-inline-end: -4px;\n cursor: pointer;\n outline: none;\n\n color: inherit;\n opacity: 0.6;\n border-radius: var(--gnome-radius-pill);\n transition: opacity var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.remove:hover:not(:disabled) {\n opacity: 1;\n}\n\n.remove:focus-visible {\n opacity: 1;\n box-shadow:\n 0 0 0 2px var(--gnome-window-bg-color, #fafafa),\n 0 0 0 4px var(--gnome-focus-ring-color, #3584e4);\n}\n\n/* ─── Dark mode ─────────────────────────────────────────────────────────────── */\n\n@media (prefers-color-scheme: dark) {\n .chip {\n background-color: var(--gnome-card-bg-color, #383838);\n border-color: rgba(255, 255, 255, 0.12);\n }\n\n .selectable:hover:not(:disabled) {\n background-color: color-mix(in srgb, var(--gnome-card-bg-color, #383838) 85%, white);\n }\n\n .selectable:active:not(:disabled) {\n background-color: color-mix(in srgb, var(--gnome-card-bg-color, #383838) 70%, white);\n }\n\n .selected {\n background-color: color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 25%, transparent);\n border-color: color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 60%, transparent);\n color: var(--gnome-accent-color, #78aeed);\n }\n\n .selected.selectable:hover:not(:disabled) {\n background-color: color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 35%, transparent);\n }\n\n .selectable:focus-visible {\n box-shadow:\n 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-window-bg-color, #242424),\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\n/* ─── Reduced motion ────────────────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .selectable,\n .remove {\n transition: none;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"Chip.module.css.cjs","names":[],"sources":["../../../src/components/Chip/Chip.module.css"],"sourcesContent":["/* ─── Base ──────────────────────────────────────────────────────────────────── */\n\n.chip {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 3px 10px;\n border-radius: var(--gnome-radius-pill);\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-caption, 0.875rem);\n font-weight: var(--gnome-font-weight-normal, 400);\n line-height: 1.4;\n color: var(--gnome-window-fg-color, rgb(0 0 0 / 0.8));\n white-space: nowrap;\n background-color: var(--gnome-card-bg-color, #fff);\n border: 1px solid var(--gnome-light-3, #deddda);\n\n /* Not a button by default */\n appearance: none;\n cursor: default;\n user-select: none;\n outline: none;\n}\n\n/* ─── Selectable (toggle button) ────────────────────────────────────────────── */\n\n.selectable {\n cursor: pointer;\n transition:\n background-color var(--gnome-duration-fast) var(--gnome-easing-default),\n border-color var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.selectable:hover:not(:disabled) {\n background-color: color-mix(in srgb, var(--gnome-card-bg-color, #fff) 85%, black);\n}\n\n.selectable:active:not(:disabled) {\n background-color: color-mix(in srgb, var(--gnome-card-bg-color, #fff) 70%, black);\n}\n\n.selectable:focus-visible {\n box-shadow:\n 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-window-bg-color, #fafafa),\n 0 0 0 calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 2px))\n var(--gnome-focus-ring-color, #3584e4);\n}\n\n/* ─── Selected state ────────────────────────────────────────────────────────── */\n\n.selected {\n background-color: color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 15%, transparent);\n border-color: color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 50%, transparent);\n color: var(--gnome-accent-color, #3584e4);\n font-weight: var(--gnome-font-weight-semibold, 600);\n}\n\n.selected.selectable:hover:not(:disabled) {\n background-color: color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 22%, transparent);\n}\n\n/* ─── Disabled ──────────────────────────────────────────────────────────────── */\n\n.disabled {\n opacity: var(--gnome-opacity-disabled, 0.5);\n cursor: not-allowed;\n pointer-events: none;\n}\n\n/* ─── Leading icon ──────────────────────────────────────────────────────────── */\n\n.icon {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n margin-inline-start: -2px;\n}\n\n/* ─── Label ─────────────────────────────────────────────────────────────────── */\n\n.label {\n /* nothing extra needed */\n}\n\n/* ─── Remove button ─────────────────────────────────────────────────────────── */\n\n.remove {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n appearance: none;\n border: none;\n background: transparent;\n padding: 0;\n margin-inline-end: -4px;\n cursor: pointer;\n outline: none;\n color: inherit;\n opacity: 0.6;\n border-radius: var(--gnome-radius-pill);\n transition: opacity var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.remove:hover:not(:disabled) {\n opacity: 1;\n}\n\n.remove:focus-visible {\n opacity: 1;\n box-shadow:\n 0 0 0 2px var(--gnome-window-bg-color, #fafafa),\n 0 0 0 4px var(--gnome-focus-ring-color, #3584e4);\n}\n\n/* ─── Dark mode ─────────────────────────────────────────────────────────────── */\n\n@media (prefers-color-scheme: dark) {\n .chip {\n background-color: var(--gnome-card-bg-color, #383838);\n border-color: rgb(255 255 255 / 0.12);\n }\n\n .selectable:hover:not(:disabled) {\n background-color: color-mix(in srgb, var(--gnome-card-bg-color, #383838) 85%, white);\n }\n\n .selectable:active:not(:disabled) {\n background-color: color-mix(in srgb, var(--gnome-card-bg-color, #383838) 70%, white);\n }\n\n .selected {\n background-color: color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 25%, transparent);\n border-color: color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 60%, transparent);\n color: var(--gnome-accent-color, #78aeed);\n }\n\n .selected.selectable:hover:not(:disabled) {\n background-color: color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 35%, transparent);\n }\n\n .selectable:focus-visible {\n box-shadow:\n 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-window-bg-color, #242424),\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\n/* ─── Reduced motion ────────────────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .selectable,\n .remove {\n transition: none;\n }\n}\n"],"mappings":""}
@@ -1,11 +1,11 @@
1
1
  var e = {
2
- chip: "_chip_7pedl_3",
3
- selectable: "_selectable_7pedl_31",
4
- selected: "_selected_7pedl_55",
5
- disabled: "_disabled_7pedl_68",
6
- icon: "_icon_7pedl_76",
7
- label: "_label_7pedl_85",
8
- remove: "_remove_7pedl_91"
2
+ chip: "_chip_3068g_3",
3
+ selectable: "_selectable_3068g_27",
4
+ selected: "_selected_3068g_51",
5
+ disabled: "_disabled_3068g_64",
6
+ icon: "_icon_3068g_72",
7
+ label: "_label_3068g_81",
8
+ remove: "_remove_3068g_87"
9
9
  };
10
10
  //#endregion
11
11
  export { e as default };
@@ -1 +1 @@
1
- {"version":3,"file":"Chip.module.css.js","names":[],"sources":["../../../src/components/Chip/Chip.module.css"],"sourcesContent":["/* ─── Base ──────────────────────────────────────────────────────────────────── */\n\n.chip {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n\n padding: 3px 10px;\n border-radius: var(--gnome-radius-pill);\n\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-caption, 0.875rem);\n font-weight: var(--gnome-font-weight-normal, 400);\n line-height: 1.4;\n color: var(--gnome-window-fg-color, rgba(0, 0, 0, 0.8));\n white-space: nowrap;\n\n background-color: var(--gnome-card-bg-color, #ffffff);\n border: 1px solid var(--gnome-light-3, #deddda);\n\n /* Not a button by default */\n appearance: none;\n -webkit-appearance: none;\n cursor: default;\n user-select: none;\n outline: none;\n}\n\n/* ─── Selectable (toggle button) ────────────────────────────────────────────── */\n\n.selectable {\n cursor: pointer;\n transition:\n background-color var(--gnome-duration-fast) var(--gnome-easing-default),\n border-color var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.selectable:hover:not(:disabled) {\n background-color: color-mix(in srgb, var(--gnome-card-bg-color, #ffffff) 85%, black);\n}\n\n.selectable:active:not(:disabled) {\n background-color: color-mix(in srgb, var(--gnome-card-bg-color, #ffffff) 70%, black);\n}\n\n.selectable:focus-visible {\n box-shadow:\n 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-window-bg-color, #fafafa),\n 0 0 0 calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 2px))\n var(--gnome-focus-ring-color, #3584e4);\n}\n\n/* ─── Selected state ────────────────────────────────────────────────────────── */\n\n.selected {\n background-color: color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 15%, transparent);\n border-color: color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 50%, transparent);\n color: var(--gnome-accent-color, #3584e4);\n font-weight: var(--gnome-font-weight-semibold, 600);\n}\n\n.selected.selectable:hover:not(:disabled) {\n background-color: color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 22%, transparent);\n}\n\n/* ─── Disabled ──────────────────────────────────────────────────────────────── */\n\n.disabled {\n opacity: var(--gnome-opacity-disabled, 0.5);\n cursor: not-allowed;\n pointer-events: none;\n}\n\n/* ─── Leading icon ──────────────────────────────────────────────────────────── */\n\n.icon {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n margin-inline-start: -2px;\n}\n\n/* ─── Label ─────────────────────────────────────────────────────────────────── */\n\n.label {\n /* nothing extra needed */\n}\n\n/* ─── Remove button ─────────────────────────────────────────────────────────── */\n\n.remove {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n\n appearance: none;\n -webkit-appearance: none;\n border: none;\n background: transparent;\n padding: 0;\n margin-inline-end: -4px;\n cursor: pointer;\n outline: none;\n\n color: inherit;\n opacity: 0.6;\n border-radius: var(--gnome-radius-pill);\n transition: opacity var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.remove:hover:not(:disabled) {\n opacity: 1;\n}\n\n.remove:focus-visible {\n opacity: 1;\n box-shadow:\n 0 0 0 2px var(--gnome-window-bg-color, #fafafa),\n 0 0 0 4px var(--gnome-focus-ring-color, #3584e4);\n}\n\n/* ─── Dark mode ─────────────────────────────────────────────────────────────── */\n\n@media (prefers-color-scheme: dark) {\n .chip {\n background-color: var(--gnome-card-bg-color, #383838);\n border-color: rgba(255, 255, 255, 0.12);\n }\n\n .selectable:hover:not(:disabled) {\n background-color: color-mix(in srgb, var(--gnome-card-bg-color, #383838) 85%, white);\n }\n\n .selectable:active:not(:disabled) {\n background-color: color-mix(in srgb, var(--gnome-card-bg-color, #383838) 70%, white);\n }\n\n .selected {\n background-color: color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 25%, transparent);\n border-color: color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 60%, transparent);\n color: var(--gnome-accent-color, #78aeed);\n }\n\n .selected.selectable:hover:not(:disabled) {\n background-color: color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 35%, transparent);\n }\n\n .selectable:focus-visible {\n box-shadow:\n 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-window-bg-color, #242424),\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\n/* ─── Reduced motion ────────────────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .selectable,\n .remove {\n transition: none;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"Chip.module.css.js","names":[],"sources":["../../../src/components/Chip/Chip.module.css"],"sourcesContent":["/* ─── Base ──────────────────────────────────────────────────────────────────── */\n\n.chip {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n padding: 3px 10px;\n border-radius: var(--gnome-radius-pill);\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-caption, 0.875rem);\n font-weight: var(--gnome-font-weight-normal, 400);\n line-height: 1.4;\n color: var(--gnome-window-fg-color, rgb(0 0 0 / 0.8));\n white-space: nowrap;\n background-color: var(--gnome-card-bg-color, #fff);\n border: 1px solid var(--gnome-light-3, #deddda);\n\n /* Not a button by default */\n appearance: none;\n cursor: default;\n user-select: none;\n outline: none;\n}\n\n/* ─── Selectable (toggle button) ────────────────────────────────────────────── */\n\n.selectable {\n cursor: pointer;\n transition:\n background-color var(--gnome-duration-fast) var(--gnome-easing-default),\n border-color var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.selectable:hover:not(:disabled) {\n background-color: color-mix(in srgb, var(--gnome-card-bg-color, #fff) 85%, black);\n}\n\n.selectable:active:not(:disabled) {\n background-color: color-mix(in srgb, var(--gnome-card-bg-color, #fff) 70%, black);\n}\n\n.selectable:focus-visible {\n box-shadow:\n 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-window-bg-color, #fafafa),\n 0 0 0 calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 2px))\n var(--gnome-focus-ring-color, #3584e4);\n}\n\n/* ─── Selected state ────────────────────────────────────────────────────────── */\n\n.selected {\n background-color: color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 15%, transparent);\n border-color: color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 50%, transparent);\n color: var(--gnome-accent-color, #3584e4);\n font-weight: var(--gnome-font-weight-semibold, 600);\n}\n\n.selected.selectable:hover:not(:disabled) {\n background-color: color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 22%, transparent);\n}\n\n/* ─── Disabled ──────────────────────────────────────────────────────────────── */\n\n.disabled {\n opacity: var(--gnome-opacity-disabled, 0.5);\n cursor: not-allowed;\n pointer-events: none;\n}\n\n/* ─── Leading icon ──────────────────────────────────────────────────────────── */\n\n.icon {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n margin-inline-start: -2px;\n}\n\n/* ─── Label ─────────────────────────────────────────────────────────────────── */\n\n.label {\n /* nothing extra needed */\n}\n\n/* ─── Remove button ─────────────────────────────────────────────────────────── */\n\n.remove {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n appearance: none;\n border: none;\n background: transparent;\n padding: 0;\n margin-inline-end: -4px;\n cursor: pointer;\n outline: none;\n color: inherit;\n opacity: 0.6;\n border-radius: var(--gnome-radius-pill);\n transition: opacity var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.remove:hover:not(:disabled) {\n opacity: 1;\n}\n\n.remove:focus-visible {\n opacity: 1;\n box-shadow:\n 0 0 0 2px var(--gnome-window-bg-color, #fafafa),\n 0 0 0 4px var(--gnome-focus-ring-color, #3584e4);\n}\n\n/* ─── Dark mode ─────────────────────────────────────────────────────────────── */\n\n@media (prefers-color-scheme: dark) {\n .chip {\n background-color: var(--gnome-card-bg-color, #383838);\n border-color: rgb(255 255 255 / 0.12);\n }\n\n .selectable:hover:not(:disabled) {\n background-color: color-mix(in srgb, var(--gnome-card-bg-color, #383838) 85%, white);\n }\n\n .selectable:active:not(:disabled) {\n background-color: color-mix(in srgb, var(--gnome-card-bg-color, #383838) 70%, white);\n }\n\n .selected {\n background-color: color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 25%, transparent);\n border-color: color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 60%, transparent);\n color: var(--gnome-accent-color, #78aeed);\n }\n\n .selected.selectable:hover:not(:disabled) {\n background-color: color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 35%, transparent);\n }\n\n .selectable:focus-visible {\n box-shadow:\n 0 0 0 var(--gnome-focus-ring-offset, 2px) var(--gnome-window-bg-color, #242424),\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\n/* ─── Reduced motion ────────────────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .selectable,\n .remove {\n transition: none;\n }\n}\n"],"mappings":""}
@@ -1,2 +1,2 @@
1
- const e=require("./ColorPicker.module.css.cjs");let t=require("react"),n=require("react/jsx-runtime");var r=({color:t,selected:r=!1,size:i=`md`,onSelect:a,disabled:o=!1,className:s,style:c,"aria-label":l,...u})=>(0,n.jsx)(`button`,{type:`button`,role:`radio`,"aria-checked":r,"aria-label":l??t,disabled:o,className:[e.default.swatch,e.default[`swatch-${i}`],r?e.default.swatchSelected:null,s].filter(Boolean).join(` `),style:{"--swatch-color":t,...c},onClick:()=>a?.(t),...u,children:r&&(0,n.jsx)(`svg`,{className:e.default.checkmark,viewBox:`0 0 16 16`,fill:`none`,"aria-hidden":`true`,children:(0,n.jsx)(`path`,{d:`M3 8l3.5 3.5L13 5`,stroke:`white`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`})})}),i=[{value:`#3584e4`,label:`Blue`},{value:`#2ec27e`,label:`Green`},{value:`#f6d32d`,label:`Yellow`},{value:`#ff7800`,label:`Orange`},{value:`#e01b24`,label:`Red`},{value:`#9141ac`,label:`Purple`},{value:`#986a44`,label:`Brown`},{value:`#2190a4`,label:`Teal`},{value:`#5e5c64`,label:`Slate`}],a=({value:a,onChange:o,colors:s=i,allowCustom:c=!1,size:l=`md`,className:u,style:d,"aria-label":f,...p})=>{let m=(0,t.useRef)(null),h=s.findIndex(e=>e.value===a),g=h>=0?h:0;function _(e){let t=Array.from(e.currentTarget.querySelectorAll(`[role="radio"]:not([disabled])`)),n=document.activeElement,r=t.indexOf(n);if(r===-1)return;let i=-1;if(e.key===`ArrowRight`||e.key===`ArrowDown`?(e.preventDefault(),i=(r+1)%t.length):(e.key===`ArrowLeft`||e.key===`ArrowUp`)&&(e.preventDefault(),i=(r-1+t.length)%t.length),i>=0){t[i].focus();let e=t[i].dataset.color;e&&o?.(e)}}let v=a!==void 0&&!s.some(e=>e.value===a);return(0,n.jsxs)(`div`,{role:`radiogroup`,"aria-label":f??`Color`,className:[e.default.picker,u].filter(Boolean).join(` `),style:d,onKeyDown:_,...p,children:[s.map((e,t)=>(0,n.jsx)(r,{color:e.value,size:l,selected:e.value===a,onSelect:o,"aria-label":e.label??e.value,tabIndex:t===g&&!v?0:-1,"data-color":e.value},e.value)),c&&(0,n.jsxs)(n.Fragment,{children:[v&&a&&(0,n.jsx)(r,{color:a,size:l,selected:!0,onSelect:()=>m.current?.click(),"aria-label":`Custom color`,tabIndex:0,"data-color":a}),(0,n.jsx)(`button`,{type:`button`,"aria-label":`Choose custom color`,className:[e.default.swatch,e.default[`swatch-${l}`],e.default.customButton].filter(Boolean).join(` `),tabIndex:-1,onClick:()=>m.current?.click(),children:(0,n.jsx)(`svg`,{viewBox:`0 0 16 16`,className:e.default.plusIcon,"aria-hidden":`true`,children:(0,n.jsx)(`path`,{d:`M8 3v10M3 8h10`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`})})}),(0,n.jsx)(`input`,{ref:m,type:`color`,value:v&&a?a:`#000000`,className:e.default.nativeInput,"aria-hidden":`true`,tabIndex:-1,onChange:e=>o?.(e.target.value)})]})]})};exports.ColorPicker=a,exports.ColorSwatch=r,exports.GNOME_PALETTE=i;
1
+ const e=require("./ColorPicker.module.css.cjs");let t=require("react"),n=require("react/jsx-runtime");var r=({color:t,selected:r=!1,size:i=`md`,onSelect:a,disabled:o=!1,className:s,style:c,"aria-label":l,...u})=>(0,n.jsx)(`button`,{type:`button`,role:`radio`,"aria-checked":r,"aria-label":l??t,disabled:o,className:[e.default.swatch,e.default[`swatch-${i}`],r?e.default.swatchSelected:null,s].filter(Boolean).join(` `),style:{"--swatch-color":t,...c},onClick:()=>a?.(t),...u,children:r&&(0,n.jsx)(`svg`,{className:e.default.checkmark,viewBox:`0 0 16 16`,fill:`none`,"aria-hidden":`true`,children:(0,n.jsx)(`path`,{d:`M3 8l3.5 3.5L13 5`,stroke:`white`,strokeWidth:`2`,strokeLinecap:`round`,strokeLinejoin:`round`})})}),i=[{value:`#3584e4`,label:`Blue`},{value:`#2ec27e`,label:`Green`},{value:`#f6d32d`,label:`Yellow`},{value:`#ff7800`,label:`Orange`},{value:`#e01b24`,label:`Red`},{value:`#9141ac`,label:`Purple`},{value:`#986a44`,label:`Brown`},{value:`#2190a4`,label:`Teal`},{value:`#5e5c64`,label:`Slate`}],a=({value:a,onChange:o,colors:s=i,allowCustom:c=!1,size:l=`md`,className:u,style:d,"aria-label":f,...p})=>{let m=(0,t.useRef)(null),h=s.findIndex(e=>e.value===a),g=h>=0?h:0;function _(e){let t=Array.from(e.currentTarget.querySelectorAll(`[role="radio"]:not([disabled])`)),n=document.activeElement,r=t.indexOf(n);if(r===-1)return;let i=-1;if(e.key===`ArrowRight`||e.key===`ArrowDown`?(e.preventDefault(),i=(r+1)%t.length):(e.key===`ArrowLeft`||e.key===`ArrowUp`)&&(e.preventDefault(),i=(r-1+t.length)%t.length),i>=0){t[i].focus();let{color:e}=t[i].dataset;e&&o?.(e)}}let v=a!==void 0&&!s.some(e=>e.value===a);return(0,n.jsxs)(`div`,{role:`radiogroup`,"aria-label":f??`Color`,className:[e.default.picker,u].filter(Boolean).join(` `),style:d,onKeyDown:_,...p,children:[s.map((e,t)=>(0,n.jsx)(r,{color:e.value,size:l,selected:e.value===a,onSelect:o,"aria-label":e.label??e.value,tabIndex:t===g&&!v?0:-1,"data-color":e.value},e.value)),c&&(0,n.jsxs)(n.Fragment,{children:[v&&a&&(0,n.jsx)(r,{color:a,size:l,selected:!0,onSelect:()=>m.current?.click(),"aria-label":`Custom color`,tabIndex:0,"data-color":a}),(0,n.jsx)(`button`,{type:`button`,"aria-label":`Choose custom color`,className:[e.default.swatch,e.default[`swatch-${l}`],e.default.customButton].filter(Boolean).join(` `),tabIndex:-1,onClick:()=>m.current?.click(),children:(0,n.jsx)(`svg`,{viewBox:`0 0 16 16`,className:e.default.plusIcon,"aria-hidden":`true`,children:(0,n.jsx)(`path`,{d:`M8 3v10M3 8h10`,stroke:`currentColor`,strokeWidth:`2`,strokeLinecap:`round`})})}),(0,n.jsx)(`input`,{ref:m,type:`color`,value:v&&a?a:`#000000`,className:e.default.nativeInput,"aria-hidden":`true`,tabIndex:-1,onChange:e=>o?.(e.target.value)})]})]})};exports.ColorPicker=a,exports.ColorSwatch=r,exports.GNOME_PALETTE=i;
2
2
  //# sourceMappingURL=ColorPicker.cjs.map