@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
@@ -1 +1 @@
1
- {"version":3,"file":"Banner.module.css.cjs","names":[],"sources":["../../../src/components/Banner/Banner.module.css"],"sourcesContent":["/* ─── Base ─────────────────────────────────────────────────────────────────── */\n\n.banner {\n display: flex;\n align-items: center;\n gap: var(--gnome-space-2, 12px);\n padding: 10px var(--gnome-space-4, 24px);\n min-height: 44px;\n width: 100%;\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-body, 1rem);\n line-height: var(--gnome-line-height-body, 1.5);\n}\n\n/* ─── Message ──────────────────────────────────────────────────────────────── */\n\n.message {\n flex: 1;\n min-width: 0;\n}\n\n/* ─── Actions (action button + dismiss) ────────────────────────────────────── */\n\n.actions {\n display: flex;\n align-items: center;\n gap: var(--gnome-space-1, 6px);\n flex-shrink: 0;\n}\n\n/* ─── Action button ────────────────────────────────────────────────────────── */\n\n.actionBtn {\n appearance: none;\n border: none;\n background: transparent;\n font: inherit;\n font-weight: var(--gnome-font-weight-semibold, 600);\n cursor: pointer;\n padding: 4px var(--gnome-space-2, 12px);\n border-radius: var(--gnome-radius-md, 8px);\n transition: background-color var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.actionBtn:focus-visible {\n outline: none;\n box-shadow:\n 0 0 0 var(--gnome-focus-ring-offset, 2px) transparent,\n 0 0 0 calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 3px))\n currentColor;\n}\n\n/* ─── Dismiss button ───────────────────────────────────────────────────────── */\n\n.dismissBtn {\n appearance: none;\n border: none;\n background: transparent;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 4px;\n border-radius: var(--gnome-radius-md, 8px);\n opacity: 0.6;\n transition:\n opacity var(--gnome-duration-fast) var(--gnome-easing-default),\n background-color var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.dismissBtn:hover {\n opacity: 1;\n}\n.dismissBtn:active {\n opacity: 0.8;\n}\n\n.dismissBtn:focus-visible {\n outline: none;\n opacity: 1;\n box-shadow:\n 0 0 0 var(--gnome-focus-ring-offset, 2px) transparent,\n 0 0 0 calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 3px))\n currentColor;\n}\n\n/* ─── Variant: info ────────────────────────────────────────────────────────── */\n\n.info {\n background-color: var(--gnome-accent-bg-color, #3584e4);\n color: var(--gnome-accent-fg-color, #ffffff);\n}\n\n.actionBtn-info:hover {\n background-color: rgba(255, 255, 255, 0.15);\n}\n.actionBtn-info:active {\n background-color: rgba(255, 255, 255, 0.25);\n}\n\n/* ─── Variant: warning ─────────────────────────────────────────────────────── */\n\n.warning {\n background-color: var(--gnome-warning-bg-color, #f6d32d);\n color: var(--gnome-warning-fg-color, rgba(0, 0, 0, 0.8));\n}\n\n.actionBtn-warning:hover {\n background-color: rgba(0, 0, 0, 0.08);\n}\n.actionBtn-warning:active {\n background-color: rgba(0, 0, 0, 0.14);\n}\n\n/* ─── Variant: error ───────────────────────────────────────────────────────── */\n\n.error {\n background-color: var(--gnome-error-bg-color, #e01b24);\n color: var(--gnome-error-fg-color, #ffffff);\n}\n\n.actionBtn-error:hover {\n background-color: rgba(255, 255, 255, 0.15);\n}\n.actionBtn-error:active {\n background-color: rgba(255, 255, 255, 0.25);\n}\n\n/* ─── Variant: success ─────────────────────────────────────────────────────── */\n\n.success {\n background-color: var(--gnome-success-bg-color, #2ec27e);\n color: var(--gnome-success-fg-color, #ffffff);\n}\n\n.actionBtn-success:hover {\n background-color: rgba(255, 255, 255, 0.15);\n}\n.actionBtn-success:active {\n background-color: rgba(255, 255, 255, 0.25);\n}\n"],"mappings":""}
1
+ {"version":3,"file":"Banner.module.css.cjs","names":[],"sources":["../../../src/components/Banner/Banner.module.css"],"sourcesContent":["/* ─── Base ─────────────────────────────────────────────────────────────────── */\n\n.banner {\n display: flex;\n align-items: center;\n gap: var(--gnome-space-2, 12px);\n padding: 10px var(--gnome-space-4, 24px);\n min-height: 44px;\n width: 100%;\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-body, 1rem);\n line-height: var(--gnome-line-height-body, 1.5);\n}\n\n/* ─── Message ──────────────────────────────────────────────────────────────── */\n\n.message {\n flex: 1;\n min-width: 0;\n}\n\n/* ─── Actions (action button + dismiss) ────────────────────────────────────── */\n\n.actions {\n display: flex;\n align-items: center;\n gap: var(--gnome-space-1, 6px);\n flex-shrink: 0;\n}\n\n/* ─── Action button ────────────────────────────────────────────────────────── */\n\n.actionBtn {\n appearance: none;\n border: none;\n background: transparent;\n font: inherit;\n font-weight: var(--gnome-font-weight-semibold, 600);\n cursor: pointer;\n padding: 4px var(--gnome-space-2, 12px);\n border-radius: var(--gnome-radius-md, 8px);\n transition: background-color var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.actionBtn:focus-visible {\n outline: none;\n box-shadow:\n 0 0 0 var(--gnome-focus-ring-offset, 2px) transparent,\n 0 0 0 calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 3px))\n currentcolor;\n}\n\n/* ─── Dismiss button ───────────────────────────────────────────────────────── */\n\n.dismissBtn {\n appearance: none;\n border: none;\n background: transparent;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 4px;\n border-radius: var(--gnome-radius-md, 8px);\n opacity: 0.6;\n transition:\n opacity var(--gnome-duration-fast) var(--gnome-easing-default),\n background-color var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.dismissBtn:hover {\n opacity: 1;\n}\n\n.dismissBtn:active {\n opacity: 0.8;\n}\n\n.dismissBtn:focus-visible {\n outline: none;\n opacity: 1;\n box-shadow:\n 0 0 0 var(--gnome-focus-ring-offset, 2px) transparent,\n 0 0 0 calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 3px))\n currentcolor;\n}\n\n/* ─── Variant: info ────────────────────────────────────────────────────────── */\n\n.info {\n background-color: var(--gnome-accent-bg-color, #3584e4);\n color: var(--gnome-accent-fg-color, #fff);\n}\n\n.actionBtn-info:hover {\n background-color: rgb(255 255 255 / 0.15);\n}\n\n.actionBtn-info:active {\n background-color: rgb(255 255 255 / 0.25);\n}\n\n/* ─── Variant: warning ─────────────────────────────────────────────────────── */\n\n.warning {\n background-color: var(--gnome-warning-bg-color, #f6d32d);\n color: var(--gnome-warning-fg-color, rgb(0 0 0 / 0.8));\n}\n\n.actionBtn-warning:hover {\n background-color: rgb(0 0 0 / 0.08);\n}\n\n.actionBtn-warning:active {\n background-color: rgb(0 0 0 / 0.14);\n}\n\n/* ─── Variant: error ───────────────────────────────────────────────────────── */\n\n.error {\n background-color: var(--gnome-error-bg-color, #e01b24);\n color: var(--gnome-error-fg-color, #fff);\n}\n\n.actionBtn-error:hover {\n background-color: rgb(255 255 255 / 0.15);\n}\n\n.actionBtn-error:active {\n background-color: rgb(255 255 255 / 0.25);\n}\n\n/* ─── Variant: success ─────────────────────────────────────────────────────── */\n\n.success {\n background-color: var(--gnome-success-bg-color, #2ec27e);\n color: var(--gnome-success-fg-color, #fff);\n}\n\n.actionBtn-success:hover {\n background-color: rgb(255 255 255 / 0.15);\n}\n\n.actionBtn-success:active {\n background-color: rgb(255 255 255 / 0.25);\n}\n"],"mappings":""}
@@ -1,17 +1,17 @@
1
1
  var e = {
2
- banner: "_banner_1w4m1_3",
3
- message: "_message_1w4m1_17",
4
- actions: "_actions_1w4m1_24",
5
- actionBtn: "_actionBtn_1w4m1_33",
6
- dismissBtn: "_dismissBtn_1w4m1_55",
7
- info: "_info_1w4m1_89",
8
- "actionBtn-info": "_actionBtn-info_1w4m1_94",
9
- warning: "_warning_1w4m1_103",
10
- "actionBtn-warning": "_actionBtn-warning_1w4m1_108",
11
- error: "_error_1w4m1_117",
12
- "actionBtn-error": "_actionBtn-error_1w4m1_122",
13
- success: "_success_1w4m1_131",
14
- "actionBtn-success": "_actionBtn-success_1w4m1_136"
2
+ banner: "_banner_1ks4d_3",
3
+ message: "_message_1ks4d_17",
4
+ actions: "_actions_1ks4d_24",
5
+ actionBtn: "_actionBtn_1ks4d_33",
6
+ dismissBtn: "_dismissBtn_1ks4d_55",
7
+ info: "_info_1ks4d_90",
8
+ "actionBtn-info": "_actionBtn-info_1ks4d_95",
9
+ warning: "_warning_1ks4d_105",
10
+ "actionBtn-warning": "_actionBtn-warning_1ks4d_110",
11
+ error: "_error_1ks4d_120",
12
+ "actionBtn-error": "_actionBtn-error_1ks4d_125",
13
+ success: "_success_1ks4d_135",
14
+ "actionBtn-success": "_actionBtn-success_1ks4d_140"
15
15
  };
16
16
  //#endregion
17
17
  export { e as default };
@@ -1 +1 @@
1
- {"version":3,"file":"Banner.module.css.js","names":[],"sources":["../../../src/components/Banner/Banner.module.css"],"sourcesContent":["/* ─── Base ─────────────────────────────────────────────────────────────────── */\n\n.banner {\n display: flex;\n align-items: center;\n gap: var(--gnome-space-2, 12px);\n padding: 10px var(--gnome-space-4, 24px);\n min-height: 44px;\n width: 100%;\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-body, 1rem);\n line-height: var(--gnome-line-height-body, 1.5);\n}\n\n/* ─── Message ──────────────────────────────────────────────────────────────── */\n\n.message {\n flex: 1;\n min-width: 0;\n}\n\n/* ─── Actions (action button + dismiss) ────────────────────────────────────── */\n\n.actions {\n display: flex;\n align-items: center;\n gap: var(--gnome-space-1, 6px);\n flex-shrink: 0;\n}\n\n/* ─── Action button ────────────────────────────────────────────────────────── */\n\n.actionBtn {\n appearance: none;\n border: none;\n background: transparent;\n font: inherit;\n font-weight: var(--gnome-font-weight-semibold, 600);\n cursor: pointer;\n padding: 4px var(--gnome-space-2, 12px);\n border-radius: var(--gnome-radius-md, 8px);\n transition: background-color var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.actionBtn:focus-visible {\n outline: none;\n box-shadow:\n 0 0 0 var(--gnome-focus-ring-offset, 2px) transparent,\n 0 0 0 calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 3px))\n currentColor;\n}\n\n/* ─── Dismiss button ───────────────────────────────────────────────────────── */\n\n.dismissBtn {\n appearance: none;\n border: none;\n background: transparent;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 4px;\n border-radius: var(--gnome-radius-md, 8px);\n opacity: 0.6;\n transition:\n opacity var(--gnome-duration-fast) var(--gnome-easing-default),\n background-color var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.dismissBtn:hover {\n opacity: 1;\n}\n.dismissBtn:active {\n opacity: 0.8;\n}\n\n.dismissBtn:focus-visible {\n outline: none;\n opacity: 1;\n box-shadow:\n 0 0 0 var(--gnome-focus-ring-offset, 2px) transparent,\n 0 0 0 calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 3px))\n currentColor;\n}\n\n/* ─── Variant: info ────────────────────────────────────────────────────────── */\n\n.info {\n background-color: var(--gnome-accent-bg-color, #3584e4);\n color: var(--gnome-accent-fg-color, #ffffff);\n}\n\n.actionBtn-info:hover {\n background-color: rgba(255, 255, 255, 0.15);\n}\n.actionBtn-info:active {\n background-color: rgba(255, 255, 255, 0.25);\n}\n\n/* ─── Variant: warning ─────────────────────────────────────────────────────── */\n\n.warning {\n background-color: var(--gnome-warning-bg-color, #f6d32d);\n color: var(--gnome-warning-fg-color, rgba(0, 0, 0, 0.8));\n}\n\n.actionBtn-warning:hover {\n background-color: rgba(0, 0, 0, 0.08);\n}\n.actionBtn-warning:active {\n background-color: rgba(0, 0, 0, 0.14);\n}\n\n/* ─── Variant: error ───────────────────────────────────────────────────────── */\n\n.error {\n background-color: var(--gnome-error-bg-color, #e01b24);\n color: var(--gnome-error-fg-color, #ffffff);\n}\n\n.actionBtn-error:hover {\n background-color: rgba(255, 255, 255, 0.15);\n}\n.actionBtn-error:active {\n background-color: rgba(255, 255, 255, 0.25);\n}\n\n/* ─── Variant: success ─────────────────────────────────────────────────────── */\n\n.success {\n background-color: var(--gnome-success-bg-color, #2ec27e);\n color: var(--gnome-success-fg-color, #ffffff);\n}\n\n.actionBtn-success:hover {\n background-color: rgba(255, 255, 255, 0.15);\n}\n.actionBtn-success:active {\n background-color: rgba(255, 255, 255, 0.25);\n}\n"],"mappings":""}
1
+ {"version":3,"file":"Banner.module.css.js","names":[],"sources":["../../../src/components/Banner/Banner.module.css"],"sourcesContent":["/* ─── Base ─────────────────────────────────────────────────────────────────── */\n\n.banner {\n display: flex;\n align-items: center;\n gap: var(--gnome-space-2, 12px);\n padding: 10px var(--gnome-space-4, 24px);\n min-height: 44px;\n width: 100%;\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-body, 1rem);\n line-height: var(--gnome-line-height-body, 1.5);\n}\n\n/* ─── Message ──────────────────────────────────────────────────────────────── */\n\n.message {\n flex: 1;\n min-width: 0;\n}\n\n/* ─── Actions (action button + dismiss) ────────────────────────────────────── */\n\n.actions {\n display: flex;\n align-items: center;\n gap: var(--gnome-space-1, 6px);\n flex-shrink: 0;\n}\n\n/* ─── Action button ────────────────────────────────────────────────────────── */\n\n.actionBtn {\n appearance: none;\n border: none;\n background: transparent;\n font: inherit;\n font-weight: var(--gnome-font-weight-semibold, 600);\n cursor: pointer;\n padding: 4px var(--gnome-space-2, 12px);\n border-radius: var(--gnome-radius-md, 8px);\n transition: background-color var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.actionBtn:focus-visible {\n outline: none;\n box-shadow:\n 0 0 0 var(--gnome-focus-ring-offset, 2px) transparent,\n 0 0 0 calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 3px))\n currentcolor;\n}\n\n/* ─── Dismiss button ───────────────────────────────────────────────────────── */\n\n.dismissBtn {\n appearance: none;\n border: none;\n background: transparent;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 4px;\n border-radius: var(--gnome-radius-md, 8px);\n opacity: 0.6;\n transition:\n opacity var(--gnome-duration-fast) var(--gnome-easing-default),\n background-color var(--gnome-duration-fast) var(--gnome-easing-default);\n}\n\n.dismissBtn:hover {\n opacity: 1;\n}\n\n.dismissBtn:active {\n opacity: 0.8;\n}\n\n.dismissBtn:focus-visible {\n outline: none;\n opacity: 1;\n box-shadow:\n 0 0 0 var(--gnome-focus-ring-offset, 2px) transparent,\n 0 0 0 calc(var(--gnome-focus-ring-offset, 2px) + var(--gnome-focus-ring-width, 3px))\n currentcolor;\n}\n\n/* ─── Variant: info ────────────────────────────────────────────────────────── */\n\n.info {\n background-color: var(--gnome-accent-bg-color, #3584e4);\n color: var(--gnome-accent-fg-color, #fff);\n}\n\n.actionBtn-info:hover {\n background-color: rgb(255 255 255 / 0.15);\n}\n\n.actionBtn-info:active {\n background-color: rgb(255 255 255 / 0.25);\n}\n\n/* ─── Variant: warning ─────────────────────────────────────────────────────── */\n\n.warning {\n background-color: var(--gnome-warning-bg-color, #f6d32d);\n color: var(--gnome-warning-fg-color, rgb(0 0 0 / 0.8));\n}\n\n.actionBtn-warning:hover {\n background-color: rgb(0 0 0 / 0.08);\n}\n\n.actionBtn-warning:active {\n background-color: rgb(0 0 0 / 0.14);\n}\n\n/* ─── Variant: error ───────────────────────────────────────────────────────── */\n\n.error {\n background-color: var(--gnome-error-bg-color, #e01b24);\n color: var(--gnome-error-fg-color, #fff);\n}\n\n.actionBtn-error:hover {\n background-color: rgb(255 255 255 / 0.15);\n}\n\n.actionBtn-error:active {\n background-color: rgb(255 255 255 / 0.25);\n}\n\n/* ─── Variant: success ─────────────────────────────────────────────────────── */\n\n.success {\n background-color: var(--gnome-success-bg-color, #2ec27e);\n color: var(--gnome-success-fg-color, #fff);\n}\n\n.actionBtn-success:hover {\n background-color: rgb(255 255 255 / 0.15);\n}\n\n.actionBtn-success:active {\n background-color: rgb(255 255 255 / 0.25);\n}\n"],"mappings":""}
@@ -1,2 +1,2 @@
1
- var e={blockquote:`_blockquote_mmiw1_3`,body:`_body_mmiw1_15`,icon:`_icon_mmiw1_21`,content:`_content_mmiw1_28`,footer:`_footer_mmiw1_36`,cite:`_cite_mmiw1_42`,default:`_default_mmiw1_48`,info:`_info_mmiw1_52`,warning:`_warning_mmiw1_57`,error:`_error_mmiw1_62`,success:`_success_mmiw1_67`};exports.default=e;
1
+ var e={blockquote:`_blockquote_1lpyh_3`,body:`_body_1lpyh_15`,icon:`_icon_1lpyh_21`,content:`_content_1lpyh_28`,footer:`_footer_1lpyh_36`,cite:`_cite_1lpyh_42`,default:`_default_1lpyh_48`,info:`_info_1lpyh_52`,warning:`_warning_1lpyh_57`,error:`_error_1lpyh_62`,success:`_success_1lpyh_67`};exports.default=e;
2
2
  //# sourceMappingURL=Blockquote.module.css.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Blockquote.module.css.cjs","names":[],"sources":["../../../src/components/Blockquote/Blockquote.module.css"],"sourcesContent":["/* ─── Base ────────────────────────────────────────────────────────────────── */\n\n.blockquote {\n margin: 0;\n padding: var(--gnome-space-2, 12px) var(--gnome-space-3, 18px);\n border-left: var(--gnome-blockquote-border-width, 3px) solid;\n border-radius: 0 var(--gnome-radius-sm, 4px) var(--gnome-radius-sm, 4px) 0;\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-body, 1rem);\n line-height: var(--gnome-line-height-body, 1.5);\n}\n\n/* ─── Body (icon + text) ──────────────────────────────────────────────────── */\n\n.body {\n display: flex;\n align-items: flex-start;\n gap: var(--gnome-space-2, 12px);\n}\n\n.icon {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n margin-top: 2px; /* optical alignment with first text baseline */\n}\n\n.content {\n margin: 0;\n flex: 1;\n min-width: 0;\n}\n\n/* ─── Attribution ─────────────────────────────────────────────────────────── */\n\n.footer {\n margin-top: var(--gnome-space-1, 6px);\n font-size: var(--gnome-font-size-caption, 0.75rem);\n opacity: var(--gnome-opacity-dim, 0.55);\n}\n\n.cite {\n font-style: normal;\n}\n\n/* ─── Variants ────────────────────────────────────────────────────────────── */\n\n.default {\n border-color: var(--gnome-border-subtle, rgba(0, 0, 0, 0.15));\n}\n\n.info {\n border-color: var(--gnome-accent-bg-color, #3584e4);\n background-color: color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 8%, transparent);\n}\n\n.warning {\n border-color: var(--gnome-warning-bg-color, #f6d32d);\n background-color: color-mix(in srgb, var(--gnome-warning-bg-color, #f6d32d) 14%, transparent);\n}\n\n.error {\n border-color: var(--gnome-error-bg-color, #e01b24);\n background-color: color-mix(in srgb, var(--gnome-error-bg-color, #e01b24) 8%, transparent);\n}\n\n.success {\n border-color: var(--gnome-success-bg-color, #2ec27e);\n background-color: color-mix(in srgb, var(--gnome-success-bg-color, #2ec27e) 8%, transparent);\n}\n"],"mappings":""}
1
+ {"version":3,"file":"Blockquote.module.css.cjs","names":[],"sources":["../../../src/components/Blockquote/Blockquote.module.css"],"sourcesContent":["/* ─── Base ────────────────────────────────────────────────────────────────── */\n\n.blockquote {\n margin: 0;\n padding: var(--gnome-space-2, 12px) var(--gnome-space-3, 18px);\n border-left: var(--gnome-blockquote-border-width, 3px) solid;\n border-radius: 0 var(--gnome-radius-sm, 4px) var(--gnome-radius-sm, 4px) 0;\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-body, 1rem);\n line-height: var(--gnome-line-height-body, 1.5);\n}\n\n/* ─── Body (icon + text) ──────────────────────────────────────────────────── */\n\n.body {\n display: flex;\n align-items: flex-start;\n gap: var(--gnome-space-2, 12px);\n}\n\n.icon {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n margin-top: 2px; /* optical alignment with first text baseline */\n}\n\n.content {\n margin: 0;\n flex: 1;\n min-width: 0;\n}\n\n/* ─── Attribution ─────────────────────────────────────────────────────────── */\n\n.footer {\n margin-top: var(--gnome-space-1, 6px);\n font-size: var(--gnome-font-size-caption, 0.75rem);\n opacity: var(--gnome-opacity-dim, 0.55);\n}\n\n.cite {\n font-style: normal;\n}\n\n/* ─── Variants ────────────────────────────────────────────────────────────── */\n\n.default {\n border-color: var(--gnome-border-subtle, rgb(0 0 0 / 0.15));\n}\n\n.info {\n border-color: var(--gnome-accent-bg-color, #3584e4);\n background-color: color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 8%, transparent);\n}\n\n.warning {\n border-color: var(--gnome-warning-bg-color, #f6d32d);\n background-color: color-mix(in srgb, var(--gnome-warning-bg-color, #f6d32d) 14%, transparent);\n}\n\n.error {\n border-color: var(--gnome-error-bg-color, #e01b24);\n background-color: color-mix(in srgb, var(--gnome-error-bg-color, #e01b24) 8%, transparent);\n}\n\n.success {\n border-color: var(--gnome-success-bg-color, #2ec27e);\n background-color: color-mix(in srgb, var(--gnome-success-bg-color, #2ec27e) 8%, transparent);\n}\n"],"mappings":""}
@@ -1,15 +1,15 @@
1
1
  var e = {
2
- blockquote: "_blockquote_mmiw1_3",
3
- body: "_body_mmiw1_15",
4
- icon: "_icon_mmiw1_21",
5
- content: "_content_mmiw1_28",
6
- footer: "_footer_mmiw1_36",
7
- cite: "_cite_mmiw1_42",
8
- default: "_default_mmiw1_48",
9
- info: "_info_mmiw1_52",
10
- warning: "_warning_mmiw1_57",
11
- error: "_error_mmiw1_62",
12
- success: "_success_mmiw1_67"
2
+ blockquote: "_blockquote_1lpyh_3",
3
+ body: "_body_1lpyh_15",
4
+ icon: "_icon_1lpyh_21",
5
+ content: "_content_1lpyh_28",
6
+ footer: "_footer_1lpyh_36",
7
+ cite: "_cite_1lpyh_42",
8
+ default: "_default_1lpyh_48",
9
+ info: "_info_1lpyh_52",
10
+ warning: "_warning_1lpyh_57",
11
+ error: "_error_1lpyh_62",
12
+ success: "_success_1lpyh_67"
13
13
  };
14
14
  //#endregion
15
15
  export { e as default };
@@ -1 +1 @@
1
- {"version":3,"file":"Blockquote.module.css.js","names":[],"sources":["../../../src/components/Blockquote/Blockquote.module.css"],"sourcesContent":["/* ─── Base ────────────────────────────────────────────────────────────────── */\n\n.blockquote {\n margin: 0;\n padding: var(--gnome-space-2, 12px) var(--gnome-space-3, 18px);\n border-left: var(--gnome-blockquote-border-width, 3px) solid;\n border-radius: 0 var(--gnome-radius-sm, 4px) var(--gnome-radius-sm, 4px) 0;\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-body, 1rem);\n line-height: var(--gnome-line-height-body, 1.5);\n}\n\n/* ─── Body (icon + text) ──────────────────────────────────────────────────── */\n\n.body {\n display: flex;\n align-items: flex-start;\n gap: var(--gnome-space-2, 12px);\n}\n\n.icon {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n margin-top: 2px; /* optical alignment with first text baseline */\n}\n\n.content {\n margin: 0;\n flex: 1;\n min-width: 0;\n}\n\n/* ─── Attribution ─────────────────────────────────────────────────────────── */\n\n.footer {\n margin-top: var(--gnome-space-1, 6px);\n font-size: var(--gnome-font-size-caption, 0.75rem);\n opacity: var(--gnome-opacity-dim, 0.55);\n}\n\n.cite {\n font-style: normal;\n}\n\n/* ─── Variants ────────────────────────────────────────────────────────────── */\n\n.default {\n border-color: var(--gnome-border-subtle, rgba(0, 0, 0, 0.15));\n}\n\n.info {\n border-color: var(--gnome-accent-bg-color, #3584e4);\n background-color: color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 8%, transparent);\n}\n\n.warning {\n border-color: var(--gnome-warning-bg-color, #f6d32d);\n background-color: color-mix(in srgb, var(--gnome-warning-bg-color, #f6d32d) 14%, transparent);\n}\n\n.error {\n border-color: var(--gnome-error-bg-color, #e01b24);\n background-color: color-mix(in srgb, var(--gnome-error-bg-color, #e01b24) 8%, transparent);\n}\n\n.success {\n border-color: var(--gnome-success-bg-color, #2ec27e);\n background-color: color-mix(in srgb, var(--gnome-success-bg-color, #2ec27e) 8%, transparent);\n}\n"],"mappings":""}
1
+ {"version":3,"file":"Blockquote.module.css.js","names":[],"sources":["../../../src/components/Blockquote/Blockquote.module.css"],"sourcesContent":["/* ─── Base ────────────────────────────────────────────────────────────────── */\n\n.blockquote {\n margin: 0;\n padding: var(--gnome-space-2, 12px) var(--gnome-space-3, 18px);\n border-left: var(--gnome-blockquote-border-width, 3px) solid;\n border-radius: 0 var(--gnome-radius-sm, 4px) var(--gnome-radius-sm, 4px) 0;\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-body, 1rem);\n line-height: var(--gnome-line-height-body, 1.5);\n}\n\n/* ─── Body (icon + text) ──────────────────────────────────────────────────── */\n\n.body {\n display: flex;\n align-items: flex-start;\n gap: var(--gnome-space-2, 12px);\n}\n\n.icon {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n margin-top: 2px; /* optical alignment with first text baseline */\n}\n\n.content {\n margin: 0;\n flex: 1;\n min-width: 0;\n}\n\n/* ─── Attribution ─────────────────────────────────────────────────────────── */\n\n.footer {\n margin-top: var(--gnome-space-1, 6px);\n font-size: var(--gnome-font-size-caption, 0.75rem);\n opacity: var(--gnome-opacity-dim, 0.55);\n}\n\n.cite {\n font-style: normal;\n}\n\n/* ─── Variants ────────────────────────────────────────────────────────────── */\n\n.default {\n border-color: var(--gnome-border-subtle, rgb(0 0 0 / 0.15));\n}\n\n.info {\n border-color: var(--gnome-accent-bg-color, #3584e4);\n background-color: color-mix(in srgb, var(--gnome-accent-bg-color, #3584e4) 8%, transparent);\n}\n\n.warning {\n border-color: var(--gnome-warning-bg-color, #f6d32d);\n background-color: color-mix(in srgb, var(--gnome-warning-bg-color, #f6d32d) 14%, transparent);\n}\n\n.error {\n border-color: var(--gnome-error-bg-color, #e01b24);\n background-color: color-mix(in srgb, var(--gnome-error-bg-color, #e01b24) 8%, transparent);\n}\n\n.success {\n border-color: var(--gnome-success-bg-color, #2ec27e);\n background-color: color-mix(in srgb, var(--gnome-success-bg-color, #2ec27e) 8%, transparent);\n}\n"],"mappings":""}
@@ -1,2 +1,2 @@
1
- const e=require("../Dialog/dialogUtils.cjs"),t=require("./BottomSheet.module.css.cjs");let n=require("react"),r=require("react-dom"),i=require("react/jsx-runtime");var a=`button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])`,o=({open:o,title:s,children:c,onClose:l,closeOnBackdrop:u=!0,className:d,...f})=>{let p=(0,n.useRef)(null),m=(0,n.useId)(),h=(0,n.useRef)(null);e.useBodyScrollLock(o),(0,n.useEffect)(()=>{o?(h.current=document.activeElement,(p.current?.querySelector(a))?.focus()):h.current?.focus()},[o]);let g=(0,n.useCallback)(e=>{if(e.key===`Escape`){e.preventDefault(),l?.();return}if(e.key!==`Tab`)return;let t=Array.from(p.current?.querySelectorAll(a)??[]);if(t.length===0)return;let n=t[0],r=t[t.length-1];e.shiftKey?document.activeElement===n&&(e.preventDefault(),r.focus()):document.activeElement===r&&(e.preventDefault(),n.focus())},[l]);if(!o)return null;let _=(0,i.jsx)(`div`,{className:t.default.backdrop,onClick:u?l:void 0,children:(0,i.jsxs)(`div`,{ref:p,role:`dialog`,"aria-modal":`true`,"aria-labelledby":s?m:void 0,className:[t.default.sheet,d].filter(Boolean).join(` `),onKeyDown:g,onClick:e=>e.stopPropagation(),...f,children:[(0,i.jsx)(`div`,{className:t.default.handle,"aria-hidden":`true`,children:(0,i.jsx)(`div`,{className:t.default.handleBar})}),s&&(0,i.jsx)(`div`,{id:m,className:t.default.title,children:s}),c&&(0,i.jsx)(`div`,{className:t.default.content,children:c})]})});return typeof document>`u`?_:(0,r.createPortal)(_,document.body)};exports.BottomSheet=o;
1
+ const e=require("../Dialog/dialogUtils.cjs"),t=require("./BottomSheet.module.css.cjs");let n=require("react"),r=require("react-dom"),i=require("react/jsx-runtime");var a=`button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex="-1"])`,o=150,s=200,c=({open:c,title:l,children:u,onClose:d,closeOnBackdrop:f=!0,className:p,...m})=>{let h=(0,n.useRef)(null),g=(0,n.useRef)(null),_=(0,n.useId)(),v=(0,n.useRef)(null),[y,b]=(0,n.useState)(c),[x,S]=(0,n.useState)(c),[C,w]=(0,n.useState)(!1),T=(0,n.useRef)(c),E=(0,n.useRef)(!1),D=(0,n.useRef)(!1),O=(0,n.useRef)(0),k=(0,n.useRef)(0);e.useBodyScrollLock(c),(0,n.useEffect)(()=>{let e=T.current;T.current=c,c?(b(!0),S(!0),w(!1)):e&&!E.current?(S(!1),typeof window<`u`&&typeof window.matchMedia==`function`&&window.matchMedia(`(prefers-reduced-motion: reduce)`).matches?b(!1):w(!0)):e&&E.current&&(E.current=!1,S(!1),b(!1))},[c]),(0,n.useEffect)(()=>{c?(v.current=document.activeElement,(h.current?.querySelector(a))?.focus()):v.current?.focus()},[c]);let A=(0,n.useCallback)(e=>{if(e.key===`Escape`){e.preventDefault(),d?.();return}if(e.key!==`Tab`)return;let t=Array.from(h.current?.querySelectorAll(a)??[]);if(t.length===0)return;let[n]=t,r=t[t.length-1];e.shiftKey?document.activeElement===n&&(e.preventDefault(),r.focus()):document.activeElement===r&&(e.preventDefault(),n.focus())},[d]);(0,n.useEffect)(()=>{if(!C)return;let e=window.setTimeout(()=>{b(!1),w(!1)},s);return()=>window.clearTimeout(e)},[C]);let j=(0,n.useCallback)(e=>{D.current=!0,O.current=e.clientY,k.current=0,e.currentTarget.setPointerCapture(e.pointerId),h.current&&(h.current.style.animation=`none`,h.current.classList.add(t.default.dragging)),S(!1)},[]),M=(0,n.useCallback)(e=>{if(!D.current)return;let t=Math.max(0,e.clientY-O.current);k.current=t,h.current&&(h.current.style.transform=`translateY(${t}px)`)},[]),N=(0,n.useCallback)(()=>{if(!D.current)return;D.current=!1;let e=k.current;if(k.current=0,h.current?.classList.remove(t.default.dragging),e>=o){E.current=!0;let e=typeof window<`u`&&typeof window.matchMedia==`function`&&window.matchMedia(`(prefers-reduced-motion: reduce)`).matches,t=h.current,n=g.current;!e&&t&&n?(t.style.transition=`transform ${s}ms ease`,t.style.transform=`translateY(100%)`,n.style.transition=`opacity ${s}ms ease`,n.style.opacity=`0`,setTimeout(()=>{t.style.transition=``,t.style.transform=``,n.style.transition=``,n.style.opacity=``,d?.()},s)):d?.()}else h.current&&(h.current.style.animation=``,h.current.style.transform=``)},[d]);if(!y)return null;let P=(0,i.jsx)(`div`,{ref:g,className:[t.default.backdrop,C?t.default.closing:null].filter(Boolean).join(` `),onClick:f?d:void 0,children:(0,i.jsxs)(`div`,{ref:h,role:`dialog`,"aria-modal":`true`,"aria-labelledby":l?_:void 0,className:[t.default.sheet,x?t.default.entering:null,C?t.default.closing:null,p].filter(Boolean).join(` `),onAnimationEnd:e=>{e.target===e.currentTarget&&x&&S(!1)},onKeyDown:A,onClick:e=>e.stopPropagation(),...m,children:[(0,i.jsx)(`div`,{className:t.default.handle,"aria-hidden":`true`,onPointerDown:j,onPointerMove:M,onPointerUp:N,onPointerCancel:N,children:(0,i.jsx)(`div`,{className:t.default.handleBar})}),l&&(0,i.jsx)(`div`,{id:_,className:t.default.title,children:l}),u&&(0,i.jsx)(`div`,{className:t.default.content,children:u})]})});return typeof document>`u`?P:(0,r.createPortal)(P,document.body)};exports.BottomSheet=c;
2
2
  //# sourceMappingURL=BottomSheet.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"BottomSheet.cjs","names":[],"sources":["../../../src/components/BottomSheet/BottomSheet.tsx"],"sourcesContent":["import {\n type HTMLAttributes,\n type KeyboardEvent,\n type ReactNode,\n useCallback,\n useEffect,\n useId,\n useRef,\n} from 'react';\n\nimport { createPortal } from 'react-dom';\n\nimport { useBodyScrollLock } from '../Dialog/dialogUtils';\n\nimport styles from './BottomSheet.module.css';\n\nconst FOCUSABLE =\n 'button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])';\n\nexport interface BottomSheetProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {\n /** Whether the sheet is visible. */\n open: boolean;\n /**\n * Optional heading shown in the drag handle area.\n */\n title?: ReactNode;\n children?: ReactNode;\n /** Called when the user dismisses the sheet (Escape or backdrop click). */\n onClose?: () => void;\n /**\n * Whether clicking the backdrop closes the sheet.\n * Defaults to `true`.\n */\n closeOnBackdrop?: boolean;\n}\n\n/**\n * Slide-up panel that overlays content from the bottom edge.\n *\n * Mirrors `AdwBottomSheet` (libadwaita 1.6+). Renders into a portal on\n * `document.body`. Traps focus, closes on Escape or backdrop click.\n * The handle bar is decorative — drag-to-close is not implemented.\n *\n * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.BottomSheet.html\n */\nexport const BottomSheet = ({\n open,\n title,\n children,\n onClose,\n closeOnBackdrop = true,\n className,\n ...props\n}: BottomSheetProps) => {\n const sheetRef = useRef<HTMLDivElement>(null);\n const titleId = useId();\n const previouslyFocused = useRef<Element | null>(null);\n\n useBodyScrollLock(open);\n\n // Save / restore focus\n useEffect(() => {\n if (open) {\n previouslyFocused.current = document.activeElement;\n const el = sheetRef.current?.querySelector<HTMLElement>(FOCUSABLE);\n\n el?.focus();\n } else {\n (previouslyFocused.current as HTMLElement | null)?.focus();\n }\n }, [open]);\n\n // Focus trap + Escape\n const handleKeyDown = useCallback(\n (e: KeyboardEvent<HTMLDivElement>) => {\n if (e.key === 'Escape') {\n e.preventDefault();\n onClose?.();\n\n return;\n }\n\n if (e.key !== 'Tab') {\n return;\n }\n\n const focusable = Array.from(\n sheetRef.current?.querySelectorAll<HTMLElement>(FOCUSABLE) ?? [],\n );\n\n if (focusable.length === 0) {\n return;\n }\n\n const first = focusable[0];\n const last = focusable[focusable.length - 1];\n\n if (e.shiftKey) {\n if (document.activeElement === first) {\n e.preventDefault();\n last.focus();\n }\n } else {\n if (document.activeElement === last) {\n e.preventDefault();\n first.focus();\n }\n }\n },\n [onClose],\n );\n\n if (!open) {\n return null;\n }\n\n const node = (\n <div className={styles.backdrop} onClick={closeOnBackdrop ? onClose : undefined}>\n <div\n ref={sheetRef}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={title ? titleId : undefined}\n className={[styles.sheet, className].filter(Boolean).join(' ')}\n onKeyDown={handleKeyDown}\n onClick={(e) => e.stopPropagation()}\n {...props}\n >\n {/* Handle bar */}\n <div className={styles.handle} aria-hidden=\"true\">\n <div className={styles.handleBar} />\n </div>\n\n {/* Optional title */}\n {title && (\n <div id={titleId} className={styles.title}>\n {title}\n </div>\n )}\n\n {/* Content */}\n {children && <div className={styles.content}>{children}</div>}\n </div>\n </div>\n );\n\n if (typeof document === 'undefined') {\n return node;\n }\n\n return createPortal(node, document.body);\n};\n"],"mappings":"oKAgBA,IAAM,EACJ,2IA4BW,GAAe,CAC1B,OACA,QACA,WACA,UACA,kBAAkB,GAClB,YACA,GAAG,KACmB,CACtB,IAAM,GAAA,EAAA,EAAA,QAAkC,IAAI,EACtC,GAAA,EAAA,EAAA,OAAgB,EAChB,GAAA,EAAA,EAAA,QAA2C,IAAI,EAErD,EAAA,kBAAkB,CAAI,GAGtB,EAAA,EAAA,eAAgB,CACV,GACF,EAAkB,QAAU,SAAS,eAC1B,EAAS,SAAS,cAA2B,CAAS,IAE7D,MAAM,GAEV,EAAmB,SAAgC,MAAM,CAE7D,EAAG,CAAC,CAAI,CAAC,EAGT,IAAM,GAAA,EAAA,EAAA,aACH,GAAqC,CACpC,GAAI,EAAE,MAAQ,SAAU,CACtB,EAAE,eAAe,EACjB,IAAU,EAEV,MACF,CAEA,GAAI,EAAE,MAAQ,MACZ,OAGF,IAAM,EAAY,MAAM,KACtB,EAAS,SAAS,iBAA8B,CAAS,GAAK,CAAC,CACjE,EAEA,GAAI,EAAU,SAAW,EACvB,OAGF,IAAM,EAAQ,EAAU,GAClB,EAAO,EAAU,EAAU,OAAS,GAEtC,EAAE,SACA,SAAS,gBAAkB,IAC7B,EAAE,eAAe,EACjB,EAAK,MAAM,GAGT,SAAS,gBAAkB,IAC7B,EAAE,eAAe,EACjB,EAAM,MAAM,EAGlB,EACA,CAAC,CAAO,CACV,EAEA,GAAI,CAAC,EACH,OAAO,KAGT,IAAM,GACJ,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,EAAA,QAAO,SAAU,QAAS,EAAkB,EAAU,IAAA,aACpE,EAAA,EAAA,MAAC,MAAD,CACE,IAAK,EACL,KAAK,SACL,aAAW,OACX,kBAAiB,EAAQ,EAAU,IAAA,GACnC,UAAW,CAAC,EAAA,QAAO,MAAO,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,EAC7D,UAAW,EACX,QAAU,GAAM,EAAE,gBAAgB,EAClC,GAAI,WARN,EAWE,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,EAAA,QAAO,OAAQ,cAAY,iBACzC,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,EAAA,QAAO,SAAY,CAAA,CAChC,CAAA,EAGJ,IACC,EAAA,EAAA,KAAC,MAAD,CAAK,GAAI,EAAS,UAAW,EAAA,QAAO,eACjC,CACE,CAAA,EAIN,IAAY,EAAA,EAAA,KAAC,MAAD,CAAK,UAAW,EAAA,QAAO,QAAU,UAAc,CAAA,CACzD,GACF,CAAA,EAOP,OAJI,OAAO,SAAa,IACf,GAGT,EAAA,EAAA,cAAoB,EAAM,SAAS,IAAI,CACzC"}
1
+ {"version":3,"file":"BottomSheet.cjs","names":[],"sources":["../../../src/components/BottomSheet/BottomSheet.tsx"],"sourcesContent":["import {\n type HTMLAttributes,\n type KeyboardEvent,\n type PointerEvent,\n type ReactNode,\n useCallback,\n useEffect,\n useId,\n useRef,\n useState,\n} from 'react';\n\nimport { createPortal } from 'react-dom';\n\nimport { useBodyScrollLock } from '../Dialog/dialogUtils';\n\nimport styles from './BottomSheet.module.css';\n\nconst FOCUSABLE =\n 'button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])';\n\nconst DRAG_CLOSE_THRESHOLD = 150;\nconst CLOSE_ANIM_DURATION = 200;\n\nexport interface BottomSheetProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {\n /** Whether the sheet is visible. */\n open: boolean;\n /**\n * Optional heading shown in the drag handle area.\n */\n title?: ReactNode;\n children?: ReactNode;\n /** Called when the user dismisses the sheet (Escape, backdrop click, or drag down). */\n onClose?: () => void;\n /**\n * Whether clicking the backdrop closes the sheet.\n * Defaults to `true`.\n */\n closeOnBackdrop?: boolean;\n}\n\n/**\n * Slide-up panel that overlays content from the bottom edge.\n *\n * Mirrors `AdwBottomSheet` (libadwaita 1.6+). Renders into a portal on\n * `document.body`. Traps focus, closes on Escape, backdrop click, or by\n * dragging the handle bar downward past 150 px. Plays slide-out animation on close.\n *\n * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.BottomSheet.html\n */\nexport const BottomSheet = ({\n open,\n title,\n children,\n onClose,\n closeOnBackdrop = true,\n className,\n ...props\n}: BottomSheetProps) => {\n const sheetRef = useRef<HTMLDivElement>(null);\n const backdropRef = useRef<HTMLDivElement>(null);\n const titleId = useId();\n const previouslyFocused = useRef<Element | null>(null);\n\n // Animation state\n const [isVisible, setIsVisible] = useState(open);\n const [isEntering, setIsEntering] = useState(open);\n const [isClosing, setIsClosing] = useState(false);\n const prevOpen = useRef(open);\n const dragClosing = useRef(false);\n\n // Drag state (refs avoid re-renders during drag)\n const isDragging = useRef(false);\n const dragStartY = useRef(0);\n const sheetDragY = useRef(0);\n\n useBodyScrollLock(open);\n\n // Track open → closed transitions\n useEffect(() => {\n const wasOpen = prevOpen.current;\n prevOpen.current = open;\n\n if (open) {\n setIsVisible(true);\n setIsEntering(true);\n setIsClosing(false);\n } else if (wasOpen && !dragClosing.current) {\n setIsEntering(false);\n\n const reducedMotion =\n typeof window !== 'undefined' &&\n typeof window.matchMedia === 'function' &&\n window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n\n if (reducedMotion) {\n setIsVisible(false);\n } else {\n setIsClosing(true);\n }\n } else if (wasOpen && dragClosing.current) {\n dragClosing.current = false;\n setIsEntering(false);\n setIsVisible(false);\n }\n }, [open]);\n\n // Save / restore focus\n useEffect(() => {\n if (open) {\n previouslyFocused.current = document.activeElement;\n const el = sheetRef.current?.querySelector<HTMLElement>(FOCUSABLE);\n\n el?.focus();\n } else {\n (previouslyFocused.current as HTMLElement | null)?.focus();\n }\n }, [open]);\n\n // Focus trap + Escape\n const handleKeyDown = useCallback(\n (e: KeyboardEvent<HTMLDivElement>) => {\n if (e.key === 'Escape') {\n e.preventDefault();\n onClose?.();\n\n return;\n }\n\n if (e.key !== 'Tab') {\n return;\n }\n\n const focusable = Array.from(\n sheetRef.current?.querySelectorAll<HTMLElement>(FOCUSABLE) ?? [],\n );\n\n if (focusable.length === 0) {\n return;\n }\n\n const [first] = focusable;\n const last = focusable[focusable.length - 1];\n\n if (e.shiftKey) {\n if (document.activeElement === first) {\n e.preventDefault();\n last.focus();\n }\n } else {\n if (document.activeElement === last) {\n e.preventDefault();\n first.focus();\n }\n }\n },\n [onClose],\n );\n\n // Unmount after exit animation duration elapses\n useEffect(() => {\n if (!isClosing) {\n return;\n }\n\n const id = window.setTimeout(() => {\n setIsVisible(false);\n setIsClosing(false);\n }, CLOSE_ANIM_DURATION);\n\n return () => window.clearTimeout(id);\n }, [isClosing]);\n\n // ─── Drag-to-dismiss ─────────────────────────────────────────────────────────\n\n const handlePointerDown = useCallback((e: PointerEvent<HTMLDivElement>) => {\n isDragging.current = true;\n dragStartY.current = e.clientY;\n sheetDragY.current = 0;\n e.currentTarget.setPointerCapture(e.pointerId);\n\n if (sheetRef.current) {\n // Cancel any active entry animation immediately so inline style.transform\n // takes effect. CSS animations sit above the author cascade layer and would\n // otherwise override the inline transform set during drag.\n sheetRef.current.style.animation = 'none';\n sheetRef.current.classList.add(styles.dragging);\n }\n\n setIsEntering(false);\n }, []);\n\n const handlePointerMove = useCallback((e: PointerEvent<HTMLDivElement>) => {\n if (!isDragging.current) {\n return;\n }\n\n const delta = Math.max(0, e.clientY - dragStartY.current);\n\n sheetDragY.current = delta;\n\n if (sheetRef.current) {\n sheetRef.current.style.transform = `translateY(${delta}px)`;\n }\n }, []);\n\n const handlePointerUp = useCallback(() => {\n if (!isDragging.current) {\n return;\n }\n isDragging.current = false;\n\n const delta = sheetDragY.current;\n\n sheetDragY.current = 0;\n sheetRef.current?.classList.remove(styles.dragging);\n\n if (delta >= DRAG_CLOSE_THRESHOLD) {\n dragClosing.current = true;\n\n const reducedMotion =\n typeof window !== 'undefined' &&\n typeof window.matchMedia === 'function' &&\n window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n\n const sheet = sheetRef.current;\n const backdrop = backdropRef.current;\n\n if (!reducedMotion && sheet && backdrop) {\n sheet.style.transition = `transform ${CLOSE_ANIM_DURATION}ms ease`;\n sheet.style.transform = 'translateY(100%)';\n backdrop.style.transition = `opacity ${CLOSE_ANIM_DURATION}ms ease`;\n backdrop.style.opacity = '0';\n\n setTimeout(() => {\n sheet.style.transition = '';\n sheet.style.transform = '';\n backdrop.style.transition = '';\n backdrop.style.opacity = '';\n onClose?.();\n }, CLOSE_ANIM_DURATION);\n } else {\n onClose?.();\n }\n } else if (sheetRef.current) {\n // Snap back — restore animation override and clear transform so CSS transition animates to 0\n sheetRef.current.style.animation = '';\n sheetRef.current.style.transform = '';\n }\n }, [onClose]);\n\n if (!isVisible) {\n return null;\n }\n\n const node = (\n <div\n ref={backdropRef}\n className={[styles.backdrop, isClosing ? styles.closing : null].filter(Boolean).join(' ')}\n onClick={closeOnBackdrop ? onClose : undefined}\n >\n <div\n ref={sheetRef}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={title ? titleId : undefined}\n className={[\n styles.sheet,\n isEntering ? styles.entering : null,\n isClosing ? styles.closing : null,\n className,\n ]\n .filter(Boolean)\n .join(' ')}\n onAnimationEnd={(e) => {\n if (e.target === e.currentTarget && isEntering) {\n setIsEntering(false);\n }\n }}\n onKeyDown={handleKeyDown}\n onClick={(e) => e.stopPropagation()}\n {...props}\n >\n {/* Handle bar — drag downward to dismiss */}\n <div\n className={styles.handle}\n aria-hidden=\"true\"\n onPointerDown={handlePointerDown}\n onPointerMove={handlePointerMove}\n onPointerUp={handlePointerUp}\n onPointerCancel={handlePointerUp}\n >\n <div className={styles.handleBar} />\n </div>\n\n {/* Optional title */}\n {title && (\n <div id={titleId} className={styles.title}>\n {title}\n </div>\n )}\n\n {/* Content */}\n {children && <div className={styles.content}>{children}</div>}\n </div>\n </div>\n );\n\n if (typeof document === 'undefined') {\n return node;\n }\n\n return createPortal(node, document.body);\n};\n"],"mappings":"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"}
@@ -7,7 +7,7 @@ export interface BottomSheetProps extends Omit<HTMLAttributes<HTMLDivElement>, '
7
7
  */
8
8
  title?: ReactNode;
9
9
  children?: ReactNode;
10
- /** Called when the user dismisses the sheet (Escape or backdrop click). */
10
+ /** Called when the user dismisses the sheet (Escape, backdrop click, or drag down). */
11
11
  onClose?: () => void;
12
12
  /**
13
13
  * Whether clicking the backdrop closes the sheet.
@@ -19,8 +19,8 @@ export interface BottomSheetProps extends Omit<HTMLAttributes<HTMLDivElement>, '
19
19
  * Slide-up panel that overlays content from the bottom edge.
20
20
  *
21
21
  * Mirrors `AdwBottomSheet` (libadwaita 1.6+). Renders into a portal on
22
- * `document.body`. Traps focus, closes on Escape or backdrop click.
23
- * The handle bar is decorative drag-to-close is not implemented.
22
+ * `document.body`. Traps focus, closes on Escape, backdrop click, or by
23
+ * dragging the handle bar downward past 150 px. Plays slide-out animation on close.
24
24
  *
25
25
  * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.BottomSheet.html
26
26
  */
@@ -1,59 +1,100 @@
1
1
  import { useBodyScrollLock as e } from "../Dialog/dialogUtils.js";
2
2
  import t from "./BottomSheet.module.css.js";
3
- import { useCallback as n, useEffect as r, useId as i, useRef as a } from "react";
4
- import { createPortal as o } from "react-dom";
5
- import { jsx as s, jsxs as c } from "react/jsx-runtime";
3
+ import { useCallback as n, useEffect as r, useId as i, useRef as a, useState as o } from "react";
4
+ import { createPortal as s } from "react-dom";
5
+ import { jsx as c, jsxs as l } from "react/jsx-runtime";
6
6
  //#region src/components/BottomSheet/BottomSheet.tsx
7
- var l = "button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])", u = ({ open: u, title: d, children: f, onClose: p, closeOnBackdrop: m = !0, className: h, ...g }) => {
8
- let _ = a(null), v = i(), y = a(null);
9
- e(u), r(() => {
10
- u ? (y.current = document.activeElement, (_.current?.querySelector(l))?.focus()) : y.current?.focus();
11
- }, [u]);
12
- let b = n((e) => {
7
+ var u = "button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])", d = 150, f = 200, p = ({ open: p, title: m, children: h, onClose: g, closeOnBackdrop: _ = !0, className: v, ...y }) => {
8
+ let b = a(null), x = a(null), S = i(), C = a(null), [w, T] = o(p), [E, D] = o(p), [O, k] = o(!1), A = a(p), j = a(!1), M = a(!1), N = a(0), P = a(0);
9
+ e(p), r(() => {
10
+ let e = A.current;
11
+ A.current = p, p ? (T(!0), D(!0), k(!1)) : e && !j.current ? (D(!1), typeof window < "u" && typeof window.matchMedia == "function" && window.matchMedia("(prefers-reduced-motion: reduce)").matches ? T(!1) : k(!0)) : e && j.current && (j.current = !1, D(!1), T(!1));
12
+ }, [p]), r(() => {
13
+ p ? (C.current = document.activeElement, (b.current?.querySelector(u))?.focus()) : C.current?.focus();
14
+ }, [p]);
15
+ let F = n((e) => {
13
16
  if (e.key === "Escape") {
14
- e.preventDefault(), p?.();
17
+ e.preventDefault(), g?.();
15
18
  return;
16
19
  }
17
20
  if (e.key !== "Tab") return;
18
- let t = Array.from(_.current?.querySelectorAll(l) ?? []);
21
+ let t = Array.from(b.current?.querySelectorAll(u) ?? []);
19
22
  if (t.length === 0) return;
20
- let n = t[0], r = t[t.length - 1];
23
+ let [n] = t, r = t[t.length - 1];
21
24
  e.shiftKey ? document.activeElement === n && (e.preventDefault(), r.focus()) : document.activeElement === r && (e.preventDefault(), n.focus());
22
- }, [p]);
23
- if (!u) return null;
24
- let x = /* @__PURE__ */ s("div", {
25
- className: t.backdrop,
26
- onClick: m ? p : void 0,
27
- children: /* @__PURE__ */ c("div", {
28
- ref: _,
25
+ }, [g]);
26
+ r(() => {
27
+ if (!O) return;
28
+ let e = window.setTimeout(() => {
29
+ T(!1), k(!1);
30
+ }, f);
31
+ return () => window.clearTimeout(e);
32
+ }, [O]);
33
+ let I = n((e) => {
34
+ M.current = !0, N.current = e.clientY, P.current = 0, e.currentTarget.setPointerCapture(e.pointerId), b.current && (b.current.style.animation = "none", b.current.classList.add(t.dragging)), D(!1);
35
+ }, []), L = n((e) => {
36
+ if (!M.current) return;
37
+ let t = Math.max(0, e.clientY - N.current);
38
+ P.current = t, b.current && (b.current.style.transform = `translateY(${t}px)`);
39
+ }, []), R = n(() => {
40
+ if (!M.current) return;
41
+ M.current = !1;
42
+ let e = P.current;
43
+ if (P.current = 0, b.current?.classList.remove(t.dragging), e >= d) {
44
+ j.current = !0;
45
+ let e = typeof window < "u" && typeof window.matchMedia == "function" && window.matchMedia("(prefers-reduced-motion: reduce)").matches, t = b.current, n = x.current;
46
+ !e && t && n ? (t.style.transition = `transform ${f}ms ease`, t.style.transform = "translateY(100%)", n.style.transition = `opacity ${f}ms ease`, n.style.opacity = "0", setTimeout(() => {
47
+ t.style.transition = "", t.style.transform = "", n.style.transition = "", n.style.opacity = "", g?.();
48
+ }, f)) : g?.();
49
+ } else b.current && (b.current.style.animation = "", b.current.style.transform = "");
50
+ }, [g]);
51
+ if (!w) return null;
52
+ let z = /* @__PURE__ */ c("div", {
53
+ ref: x,
54
+ className: [t.backdrop, O ? t.closing : null].filter(Boolean).join(" "),
55
+ onClick: _ ? g : void 0,
56
+ children: /* @__PURE__ */ l("div", {
57
+ ref: b,
29
58
  role: "dialog",
30
59
  "aria-modal": "true",
31
- "aria-labelledby": d ? v : void 0,
32
- className: [t.sheet, h].filter(Boolean).join(" "),
33
- onKeyDown: b,
60
+ "aria-labelledby": m ? S : void 0,
61
+ className: [
62
+ t.sheet,
63
+ E ? t.entering : null,
64
+ O ? t.closing : null,
65
+ v
66
+ ].filter(Boolean).join(" "),
67
+ onAnimationEnd: (e) => {
68
+ e.target === e.currentTarget && E && D(!1);
69
+ },
70
+ onKeyDown: F,
34
71
  onClick: (e) => e.stopPropagation(),
35
- ...g,
72
+ ...y,
36
73
  children: [
37
- /* @__PURE__ */ s("div", {
74
+ /* @__PURE__ */ c("div", {
38
75
  className: t.handle,
39
76
  "aria-hidden": "true",
40
- children: /* @__PURE__ */ s("div", { className: t.handleBar })
77
+ onPointerDown: I,
78
+ onPointerMove: L,
79
+ onPointerUp: R,
80
+ onPointerCancel: R,
81
+ children: /* @__PURE__ */ c("div", { className: t.handleBar })
41
82
  }),
42
- d && /* @__PURE__ */ s("div", {
43
- id: v,
83
+ m && /* @__PURE__ */ c("div", {
84
+ id: S,
44
85
  className: t.title,
45
- children: d
86
+ children: m
46
87
  }),
47
- f && /* @__PURE__ */ s("div", {
88
+ h && /* @__PURE__ */ c("div", {
48
89
  className: t.content,
49
- children: f
90
+ children: h
50
91
  })
51
92
  ]
52
93
  })
53
94
  });
54
- return typeof document > "u" ? x : o(x, document.body);
95
+ return typeof document > "u" ? z : s(z, document.body);
55
96
  };
56
97
  //#endregion
57
- export { u as BottomSheet };
98
+ export { p as BottomSheet };
58
99
 
59
100
  //# sourceMappingURL=BottomSheet.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BottomSheet.js","names":[],"sources":["../../../src/components/BottomSheet/BottomSheet.tsx"],"sourcesContent":["import {\n type HTMLAttributes,\n type KeyboardEvent,\n type ReactNode,\n useCallback,\n useEffect,\n useId,\n useRef,\n} from 'react';\n\nimport { createPortal } from 'react-dom';\n\nimport { useBodyScrollLock } from '../Dialog/dialogUtils';\n\nimport styles from './BottomSheet.module.css';\n\nconst FOCUSABLE =\n 'button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])';\n\nexport interface BottomSheetProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {\n /** Whether the sheet is visible. */\n open: boolean;\n /**\n * Optional heading shown in the drag handle area.\n */\n title?: ReactNode;\n children?: ReactNode;\n /** Called when the user dismisses the sheet (Escape or backdrop click). */\n onClose?: () => void;\n /**\n * Whether clicking the backdrop closes the sheet.\n * Defaults to `true`.\n */\n closeOnBackdrop?: boolean;\n}\n\n/**\n * Slide-up panel that overlays content from the bottom edge.\n *\n * Mirrors `AdwBottomSheet` (libadwaita 1.6+). Renders into a portal on\n * `document.body`. Traps focus, closes on Escape or backdrop click.\n * The handle bar is decorative — drag-to-close is not implemented.\n *\n * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.BottomSheet.html\n */\nexport const BottomSheet = ({\n open,\n title,\n children,\n onClose,\n closeOnBackdrop = true,\n className,\n ...props\n}: BottomSheetProps) => {\n const sheetRef = useRef<HTMLDivElement>(null);\n const titleId = useId();\n const previouslyFocused = useRef<Element | null>(null);\n\n useBodyScrollLock(open);\n\n // Save / restore focus\n useEffect(() => {\n if (open) {\n previouslyFocused.current = document.activeElement;\n const el = sheetRef.current?.querySelector<HTMLElement>(FOCUSABLE);\n\n el?.focus();\n } else {\n (previouslyFocused.current as HTMLElement | null)?.focus();\n }\n }, [open]);\n\n // Focus trap + Escape\n const handleKeyDown = useCallback(\n (e: KeyboardEvent<HTMLDivElement>) => {\n if (e.key === 'Escape') {\n e.preventDefault();\n onClose?.();\n\n return;\n }\n\n if (e.key !== 'Tab') {\n return;\n }\n\n const focusable = Array.from(\n sheetRef.current?.querySelectorAll<HTMLElement>(FOCUSABLE) ?? [],\n );\n\n if (focusable.length === 0) {\n return;\n }\n\n const first = focusable[0];\n const last = focusable[focusable.length - 1];\n\n if (e.shiftKey) {\n if (document.activeElement === first) {\n e.preventDefault();\n last.focus();\n }\n } else {\n if (document.activeElement === last) {\n e.preventDefault();\n first.focus();\n }\n }\n },\n [onClose],\n );\n\n if (!open) {\n return null;\n }\n\n const node = (\n <div className={styles.backdrop} onClick={closeOnBackdrop ? onClose : undefined}>\n <div\n ref={sheetRef}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={title ? titleId : undefined}\n className={[styles.sheet, className].filter(Boolean).join(' ')}\n onKeyDown={handleKeyDown}\n onClick={(e) => e.stopPropagation()}\n {...props}\n >\n {/* Handle bar */}\n <div className={styles.handle} aria-hidden=\"true\">\n <div className={styles.handleBar} />\n </div>\n\n {/* Optional title */}\n {title && (\n <div id={titleId} className={styles.title}>\n {title}\n </div>\n )}\n\n {/* Content */}\n {children && <div className={styles.content}>{children}</div>}\n </div>\n </div>\n );\n\n if (typeof document === 'undefined') {\n return node;\n }\n\n return createPortal(node, document.body);\n};\n"],"mappings":";;;;;;AAgBA,IAAM,IACJ,8IA4BW,KAAe,EAC1B,SACA,UACA,aACA,YACA,qBAAkB,IAClB,cACA,GAAG,QACmB;CACtB,IAAM,IAAW,EAAuB,IAAI,GACtC,IAAU,EAAM,GAChB,IAAoB,EAAuB,IAAI;CAKrD,AAHA,EAAkB,CAAI,GAGtB,QAAgB;EACd,AAAI,KACF,EAAkB,UAAU,SAAS,gBAC1B,EAAS,SAAS,cAA2B,CAAS,IAE7D,MAAM,KAEV,EAAmB,SAAgC,MAAM;CAE7D,GAAG,CAAC,CAAI,CAAC;CAGT,IAAM,IAAgB,GACnB,MAAqC;EACpC,IAAI,EAAE,QAAQ,UAAU;GAEtB,AADA,EAAE,eAAe,GACjB,IAAU;GAEV;EACF;EAEA,IAAI,EAAE,QAAQ,OACZ;EAGF,IAAM,IAAY,MAAM,KACtB,EAAS,SAAS,iBAA8B,CAAS,KAAK,CAAC,CACjE;EAEA,IAAI,EAAU,WAAW,GACvB;EAGF,IAAM,IAAQ,EAAU,IAClB,IAAO,EAAU,EAAU,SAAS;EAE1C,AAAI,EAAE,WACA,SAAS,kBAAkB,MAC7B,EAAE,eAAe,GACjB,EAAK,MAAM,KAGT,SAAS,kBAAkB,MAC7B,EAAE,eAAe,GACjB,EAAM,MAAM;CAGlB,GACA,CAAC,CAAO,CACV;CAEA,IAAI,CAAC,GACH,OAAO;CAGT,IAAM,IACJ,kBAAC,OAAD;EAAK,WAAW,EAAO;EAAU,SAAS,IAAkB,IAAU,KAAA;YACpE,kBAAC,OAAD;GACE,KAAK;GACL,MAAK;GACL,cAAW;GACX,mBAAiB,IAAQ,IAAU,KAAA;GACnC,WAAW,CAAC,EAAO,OAAO,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG;GAC7D,WAAW;GACX,UAAU,MAAM,EAAE,gBAAgB;GAClC,GAAI;aARN;IAWE,kBAAC,OAAD;KAAK,WAAW,EAAO;KAAQ,eAAY;eACzC,kBAAC,OAAD,EAAK,WAAW,EAAO,UAAY,CAAA;IAChC,CAAA;IAGJ,KACC,kBAAC,OAAD;KAAK,IAAI;KAAS,WAAW,EAAO;eACjC;IACE,CAAA;IAIN,KAAY,kBAAC,OAAD;KAAK,WAAW,EAAO;KAAU;IAAc,CAAA;GACzD;;CACF,CAAA;CAOP,OAJI,OAAO,WAAa,MACf,IAGF,EAAa,GAAM,SAAS,IAAI;AACzC"}
1
+ {"version":3,"file":"BottomSheet.js","names":[],"sources":["../../../src/components/BottomSheet/BottomSheet.tsx"],"sourcesContent":["import {\n type HTMLAttributes,\n type KeyboardEvent,\n type PointerEvent,\n type ReactNode,\n useCallback,\n useEffect,\n useId,\n useRef,\n useState,\n} from 'react';\n\nimport { createPortal } from 'react-dom';\n\nimport { useBodyScrollLock } from '../Dialog/dialogUtils';\n\nimport styles from './BottomSheet.module.css';\n\nconst FOCUSABLE =\n 'button:not([disabled]), [href], input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])';\n\nconst DRAG_CLOSE_THRESHOLD = 150;\nconst CLOSE_ANIM_DURATION = 200;\n\nexport interface BottomSheetProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'> {\n /** Whether the sheet is visible. */\n open: boolean;\n /**\n * Optional heading shown in the drag handle area.\n */\n title?: ReactNode;\n children?: ReactNode;\n /** Called when the user dismisses the sheet (Escape, backdrop click, or drag down). */\n onClose?: () => void;\n /**\n * Whether clicking the backdrop closes the sheet.\n * Defaults to `true`.\n */\n closeOnBackdrop?: boolean;\n}\n\n/**\n * Slide-up panel that overlays content from the bottom edge.\n *\n * Mirrors `AdwBottomSheet` (libadwaita 1.6+). Renders into a portal on\n * `document.body`. Traps focus, closes on Escape, backdrop click, or by\n * dragging the handle bar downward past 150 px. Plays slide-out animation on close.\n *\n * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.BottomSheet.html\n */\nexport const BottomSheet = ({\n open,\n title,\n children,\n onClose,\n closeOnBackdrop = true,\n className,\n ...props\n}: BottomSheetProps) => {\n const sheetRef = useRef<HTMLDivElement>(null);\n const backdropRef = useRef<HTMLDivElement>(null);\n const titleId = useId();\n const previouslyFocused = useRef<Element | null>(null);\n\n // Animation state\n const [isVisible, setIsVisible] = useState(open);\n const [isEntering, setIsEntering] = useState(open);\n const [isClosing, setIsClosing] = useState(false);\n const prevOpen = useRef(open);\n const dragClosing = useRef(false);\n\n // Drag state (refs avoid re-renders during drag)\n const isDragging = useRef(false);\n const dragStartY = useRef(0);\n const sheetDragY = useRef(0);\n\n useBodyScrollLock(open);\n\n // Track open → closed transitions\n useEffect(() => {\n const wasOpen = prevOpen.current;\n prevOpen.current = open;\n\n if (open) {\n setIsVisible(true);\n setIsEntering(true);\n setIsClosing(false);\n } else if (wasOpen && !dragClosing.current) {\n setIsEntering(false);\n\n const reducedMotion =\n typeof window !== 'undefined' &&\n typeof window.matchMedia === 'function' &&\n window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n\n if (reducedMotion) {\n setIsVisible(false);\n } else {\n setIsClosing(true);\n }\n } else if (wasOpen && dragClosing.current) {\n dragClosing.current = false;\n setIsEntering(false);\n setIsVisible(false);\n }\n }, [open]);\n\n // Save / restore focus\n useEffect(() => {\n if (open) {\n previouslyFocused.current = document.activeElement;\n const el = sheetRef.current?.querySelector<HTMLElement>(FOCUSABLE);\n\n el?.focus();\n } else {\n (previouslyFocused.current as HTMLElement | null)?.focus();\n }\n }, [open]);\n\n // Focus trap + Escape\n const handleKeyDown = useCallback(\n (e: KeyboardEvent<HTMLDivElement>) => {\n if (e.key === 'Escape') {\n e.preventDefault();\n onClose?.();\n\n return;\n }\n\n if (e.key !== 'Tab') {\n return;\n }\n\n const focusable = Array.from(\n sheetRef.current?.querySelectorAll<HTMLElement>(FOCUSABLE) ?? [],\n );\n\n if (focusable.length === 0) {\n return;\n }\n\n const [first] = focusable;\n const last = focusable[focusable.length - 1];\n\n if (e.shiftKey) {\n if (document.activeElement === first) {\n e.preventDefault();\n last.focus();\n }\n } else {\n if (document.activeElement === last) {\n e.preventDefault();\n first.focus();\n }\n }\n },\n [onClose],\n );\n\n // Unmount after exit animation duration elapses\n useEffect(() => {\n if (!isClosing) {\n return;\n }\n\n const id = window.setTimeout(() => {\n setIsVisible(false);\n setIsClosing(false);\n }, CLOSE_ANIM_DURATION);\n\n return () => window.clearTimeout(id);\n }, [isClosing]);\n\n // ─── Drag-to-dismiss ─────────────────────────────────────────────────────────\n\n const handlePointerDown = useCallback((e: PointerEvent<HTMLDivElement>) => {\n isDragging.current = true;\n dragStartY.current = e.clientY;\n sheetDragY.current = 0;\n e.currentTarget.setPointerCapture(e.pointerId);\n\n if (sheetRef.current) {\n // Cancel any active entry animation immediately so inline style.transform\n // takes effect. CSS animations sit above the author cascade layer and would\n // otherwise override the inline transform set during drag.\n sheetRef.current.style.animation = 'none';\n sheetRef.current.classList.add(styles.dragging);\n }\n\n setIsEntering(false);\n }, []);\n\n const handlePointerMove = useCallback((e: PointerEvent<HTMLDivElement>) => {\n if (!isDragging.current) {\n return;\n }\n\n const delta = Math.max(0, e.clientY - dragStartY.current);\n\n sheetDragY.current = delta;\n\n if (sheetRef.current) {\n sheetRef.current.style.transform = `translateY(${delta}px)`;\n }\n }, []);\n\n const handlePointerUp = useCallback(() => {\n if (!isDragging.current) {\n return;\n }\n isDragging.current = false;\n\n const delta = sheetDragY.current;\n\n sheetDragY.current = 0;\n sheetRef.current?.classList.remove(styles.dragging);\n\n if (delta >= DRAG_CLOSE_THRESHOLD) {\n dragClosing.current = true;\n\n const reducedMotion =\n typeof window !== 'undefined' &&\n typeof window.matchMedia === 'function' &&\n window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n\n const sheet = sheetRef.current;\n const backdrop = backdropRef.current;\n\n if (!reducedMotion && sheet && backdrop) {\n sheet.style.transition = `transform ${CLOSE_ANIM_DURATION}ms ease`;\n sheet.style.transform = 'translateY(100%)';\n backdrop.style.transition = `opacity ${CLOSE_ANIM_DURATION}ms ease`;\n backdrop.style.opacity = '0';\n\n setTimeout(() => {\n sheet.style.transition = '';\n sheet.style.transform = '';\n backdrop.style.transition = '';\n backdrop.style.opacity = '';\n onClose?.();\n }, CLOSE_ANIM_DURATION);\n } else {\n onClose?.();\n }\n } else if (sheetRef.current) {\n // Snap back — restore animation override and clear transform so CSS transition animates to 0\n sheetRef.current.style.animation = '';\n sheetRef.current.style.transform = '';\n }\n }, [onClose]);\n\n if (!isVisible) {\n return null;\n }\n\n const node = (\n <div\n ref={backdropRef}\n className={[styles.backdrop, isClosing ? styles.closing : null].filter(Boolean).join(' ')}\n onClick={closeOnBackdrop ? onClose : undefined}\n >\n <div\n ref={sheetRef}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={title ? titleId : undefined}\n className={[\n styles.sheet,\n isEntering ? styles.entering : null,\n isClosing ? styles.closing : null,\n className,\n ]\n .filter(Boolean)\n .join(' ')}\n onAnimationEnd={(e) => {\n if (e.target === e.currentTarget && isEntering) {\n setIsEntering(false);\n }\n }}\n onKeyDown={handleKeyDown}\n onClick={(e) => e.stopPropagation()}\n {...props}\n >\n {/* Handle bar — drag downward to dismiss */}\n <div\n className={styles.handle}\n aria-hidden=\"true\"\n onPointerDown={handlePointerDown}\n onPointerMove={handlePointerMove}\n onPointerUp={handlePointerUp}\n onPointerCancel={handlePointerUp}\n >\n <div className={styles.handleBar} />\n </div>\n\n {/* Optional title */}\n {title && (\n <div id={titleId} className={styles.title}>\n {title}\n </div>\n )}\n\n {/* Content */}\n {children && <div className={styles.content}>{children}</div>}\n </div>\n </div>\n );\n\n if (typeof document === 'undefined') {\n return node;\n }\n\n return createPortal(node, document.body);\n};\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- var e={backdrop:`_backdrop_1a57s_3`,"backdrop-in":`_backdrop-in_1a57s_1`,sheet:`_sheet_1a57s_30`,"sheet-in":`_sheet-in_1a57s_1`,handle:`_handle_1a57s_57`,handleBar:`_handleBar_1a57s_64`,title:`_title_1a57s_74`,content:`_content_1a57s_87`};exports.default=e;
1
+ var e={backdrop:`_backdrop_1v9gq_3`,"backdrop-in":`_backdrop-in_1v9gq_1`,closing:`_closing_1v9gq_15`,"backdrop-out":`_backdrop-out_1v9gq_1`,sheet:`_sheet_1v9gq_41`,entering:`_entering_1v9gq_57`,"sheet-in":`_sheet-in_1v9gq_1`,"sheet-out":`_sheet-out_1v9gq_1`,dragging:`_dragging_1v9gq_66`,handle:`_handle_1v9gq_92`,handleBar:`_handleBar_1v9gq_107`,title:`_title_1v9gq_118`,content:`_content_1v9gq_130`};exports.default=e;
2
2
  //# sourceMappingURL=BottomSheet.module.css.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"BottomSheet.module.css.cjs","names":[],"sources":["../../../src/components/BottomSheet/BottomSheet.module.css"],"sourcesContent":["/* ─── Backdrop ──────────────────────────────────────────────────────────────── */\n\n.backdrop {\n position: fixed;\n inset: 0;\n z-index: 10000;\n\n display: flex;\n align-items: flex-end;\n justify-content: center;\n\n background-color: rgba(0, 0, 0, 0.5);\n backdrop-filter: blur(4px);\n -webkit-backdrop-filter: blur(4px);\n\n animation: backdrop-in var(--gnome-duration-normal, 200ms) var(--gnome-easing-default, ease) both;\n}\n\n@keyframes backdrop-in {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n/* ─── Sheet ─────────────────────────────────────────────────────────────────── */\n\n.sheet {\n width: min(560px, 100vw);\n max-height: 90dvh;\n overflow-y: auto;\n\n background-color: var(--gnome-dialog-bg-color, var(--gnome-window-bg-color, #fafafa));\n color: var(--gnome-window-fg-color, rgba(0, 0, 0, 0.8));\n\n border-radius: var(--gnome-radius-xl, 16px) var(--gnome-radius-xl, 16px) 0 0;\n box-shadow:\n 0 -4px 24px rgba(0, 0, 0, 0.18),\n 0 0 0 1px rgba(0, 0, 0, 0.06);\n\n animation: sheet-in var(--gnome-duration-normal, 200ms) var(--gnome-easing-default, ease) both;\n}\n\n@keyframes sheet-in {\n from {\n transform: translateY(100%);\n }\n to {\n transform: translateY(0);\n }\n}\n\n/* ─── Handle bar ────────────────────────────────────────────────────────────── */\n\n.handle {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--gnome-space-2, 12px) 0 var(--gnome-space-1, 6px);\n}\n\n.handleBar {\n width: 36px;\n height: 4px;\n border-radius: 2px;\n background-color: var(--gnome-window-fg-color, rgba(0, 0, 0, 0.8));\n opacity: 0.2;\n}\n\n/* ─── Title ─────────────────────────────────────────────────────────────────── */\n\n.title {\n padding: 0 var(--gnome-space-4, 24px) var(--gnome-space-2, 12px);\n\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-title-4, 1.125rem);\n font-weight: var(--gnome-font-weight-bold, 700);\n line-height: var(--gnome-line-height-title, 1.3);\n color: var(--gnome-window-fg-color, rgba(0, 0, 0, 0.8));\n text-align: center;\n}\n\n/* ─── Content ───────────────────────────────────────────────────────────────── */\n\n.content {\n padding: 0 var(--gnome-space-4, 24px) var(--gnome-space-4, 24px);\n}\n\n/* ─── Dark mode ─────────────────────────────────────────────────────────────── */\n\n@media (prefers-color-scheme: dark) {\n .backdrop {\n background-color: rgba(0, 0, 0, 0.65);\n }\n\n .sheet {\n background-color: var(--gnome-dialog-bg-color, var(--gnome-window-bg-color, #242424));\n box-shadow:\n 0 -4px 24px rgba(0, 0, 0, 0.45),\n 0 0 0 1px rgba(255, 255, 255, 0.06);\n }\n}\n\n/* ─── Reduced motion ────────────────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .backdrop,\n .sheet {\n animation: none;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"BottomSheet.module.css.cjs","names":[],"sources":["../../../src/components/BottomSheet/BottomSheet.module.css"],"sourcesContent":["/* ─── Backdrop ──────────────────────────────────────────────────────────────── */\n\n.backdrop {\n position: fixed;\n inset: 0;\n z-index: 10000;\n display: flex;\n align-items: flex-end;\n justify-content: center;\n background-color: rgb(0 0 0 / 0.5);\n backdrop-filter: blur(4px);\n animation: backdrop-in var(--gnome-duration-normal, 200ms) var(--gnome-easing-default, ease) both;\n}\n\n.backdrop.closing {\n animation: backdrop-out var(--gnome-duration-normal, 200ms) var(--gnome-easing-default, ease) both;\n}\n\n@keyframes backdrop-in {\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n}\n\n@keyframes backdrop-out {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n }\n}\n\n/* ─── Sheet ─────────────────────────────────────────────────────────────────── */\n\n.sheet {\n width: min(560px, 100vw);\n max-height: 90dvh;\n overflow-y: auto;\n background-color: var(--gnome-dialog-bg-color, var(--gnome-window-bg-color, #fafafa));\n color: var(--gnome-window-fg-color, rgb(0 0 0 / 0.8));\n border-radius: var(--gnome-radius-xl, 16px) var(--gnome-radius-xl, 16px) 0 0;\n box-shadow:\n 0 -4px 24px rgb(0 0 0 / 0.18),\n 0 0 0 1px rgb(0 0 0 / 0.06);\n\n /* Snap-back transition after releasing a partial drag */\n transition: transform 200ms var(--gnome-easing-default, ease);\n will-change: transform;\n}\n\n.sheet.entering {\n animation: sheet-in var(--gnome-duration-normal, 200ms) var(--gnome-easing-default, ease) both;\n}\n\n.sheet.closing {\n animation: sheet-out var(--gnome-duration-normal, 200ms) var(--gnome-easing-default, ease) both;\n}\n\n/* Disable transition while actively dragging so the sheet follows the pointer instantly */\n.sheet.dragging {\n transition: none;\n}\n\n@keyframes sheet-in {\n from {\n transform: translateY(100%);\n }\n\n to {\n transform: translateY(0);\n }\n}\n\n@keyframes sheet-out {\n from {\n transform: translateY(0);\n }\n\n to {\n transform: translateY(100%);\n }\n}\n\n/* ─── Handle bar ────────────────────────────────────────────────────────────── */\n\n.handle {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--gnome-space-2, 12px) 0 var(--gnome-space-1, 6px);\n cursor: grab;\n\n /* Prevents the browser from hijacking the pointer for scroll while dragging */\n touch-action: none;\n}\n\n.handle:active {\n cursor: grabbing;\n}\n\n.handleBar {\n width: 36px;\n height: 4px;\n border-radius: 2px;\n background-color: var(--gnome-window-fg-color, rgb(0 0 0 / 0.8));\n opacity: 0.2;\n pointer-events: none;\n}\n\n/* ─── Title ─────────────────────────────────────────────────────────────────── */\n\n.title {\n padding: 0 var(--gnome-space-4, 24px) var(--gnome-space-2, 12px);\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-title-4, 1.125rem);\n font-weight: var(--gnome-font-weight-bold, 700);\n line-height: var(--gnome-line-height-title, 1.3);\n color: var(--gnome-window-fg-color, rgb(0 0 0 / 0.8));\n text-align: center;\n}\n\n/* ─── Content ───────────────────────────────────────────────────────────────── */\n\n.content {\n padding: 0 var(--gnome-space-4, 24px) var(--gnome-space-4, 24px);\n}\n\n/* ─── Dark mode ─────────────────────────────────────────────────────────────── */\n\n@media (prefers-color-scheme: dark) {\n .backdrop {\n background-color: rgb(0 0 0 / 0.65);\n }\n\n .sheet {\n background-color: var(--gnome-dialog-bg-color, var(--gnome-window-bg-color, #242424));\n box-shadow:\n 0 -4px 24px rgb(0 0 0 / 0.45),\n 0 0 0 1px rgb(255 255 255 / 0.06);\n }\n}\n\n/* ─── Reduced motion ────────────────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .backdrop,\n .sheet,\n .backdrop.closing,\n .sheet.entering,\n .sheet.closing,\n .sheet.dragging {\n animation: none;\n transition: none;\n }\n}\n"],"mappings":""}
@@ -1,12 +1,17 @@
1
1
  var e = {
2
- backdrop: "_backdrop_1a57s_3",
3
- "backdrop-in": "_backdrop-in_1a57s_1",
4
- sheet: "_sheet_1a57s_30",
5
- "sheet-in": "_sheet-in_1a57s_1",
6
- handle: "_handle_1a57s_57",
7
- handleBar: "_handleBar_1a57s_64",
8
- title: "_title_1a57s_74",
9
- content: "_content_1a57s_87"
2
+ backdrop: "_backdrop_1v9gq_3",
3
+ "backdrop-in": "_backdrop-in_1v9gq_1",
4
+ closing: "_closing_1v9gq_15",
5
+ "backdrop-out": "_backdrop-out_1v9gq_1",
6
+ sheet: "_sheet_1v9gq_41",
7
+ entering: "_entering_1v9gq_57",
8
+ "sheet-in": "_sheet-in_1v9gq_1",
9
+ "sheet-out": "_sheet-out_1v9gq_1",
10
+ dragging: "_dragging_1v9gq_66",
11
+ handle: "_handle_1v9gq_92",
12
+ handleBar: "_handleBar_1v9gq_107",
13
+ title: "_title_1v9gq_118",
14
+ content: "_content_1v9gq_130"
10
15
  };
11
16
  //#endregion
12
17
  export { e as default };
@@ -1 +1 @@
1
- {"version":3,"file":"BottomSheet.module.css.js","names":[],"sources":["../../../src/components/BottomSheet/BottomSheet.module.css"],"sourcesContent":["/* ─── Backdrop ──────────────────────────────────────────────────────────────── */\n\n.backdrop {\n position: fixed;\n inset: 0;\n z-index: 10000;\n\n display: flex;\n align-items: flex-end;\n justify-content: center;\n\n background-color: rgba(0, 0, 0, 0.5);\n backdrop-filter: blur(4px);\n -webkit-backdrop-filter: blur(4px);\n\n animation: backdrop-in var(--gnome-duration-normal, 200ms) var(--gnome-easing-default, ease) both;\n}\n\n@keyframes backdrop-in {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n/* ─── Sheet ─────────────────────────────────────────────────────────────────── */\n\n.sheet {\n width: min(560px, 100vw);\n max-height: 90dvh;\n overflow-y: auto;\n\n background-color: var(--gnome-dialog-bg-color, var(--gnome-window-bg-color, #fafafa));\n color: var(--gnome-window-fg-color, rgba(0, 0, 0, 0.8));\n\n border-radius: var(--gnome-radius-xl, 16px) var(--gnome-radius-xl, 16px) 0 0;\n box-shadow:\n 0 -4px 24px rgba(0, 0, 0, 0.18),\n 0 0 0 1px rgba(0, 0, 0, 0.06);\n\n animation: sheet-in var(--gnome-duration-normal, 200ms) var(--gnome-easing-default, ease) both;\n}\n\n@keyframes sheet-in {\n from {\n transform: translateY(100%);\n }\n to {\n transform: translateY(0);\n }\n}\n\n/* ─── Handle bar ────────────────────────────────────────────────────────────── */\n\n.handle {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--gnome-space-2, 12px) 0 var(--gnome-space-1, 6px);\n}\n\n.handleBar {\n width: 36px;\n height: 4px;\n border-radius: 2px;\n background-color: var(--gnome-window-fg-color, rgba(0, 0, 0, 0.8));\n opacity: 0.2;\n}\n\n/* ─── Title ─────────────────────────────────────────────────────────────────── */\n\n.title {\n padding: 0 var(--gnome-space-4, 24px) var(--gnome-space-2, 12px);\n\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-title-4, 1.125rem);\n font-weight: var(--gnome-font-weight-bold, 700);\n line-height: var(--gnome-line-height-title, 1.3);\n color: var(--gnome-window-fg-color, rgba(0, 0, 0, 0.8));\n text-align: center;\n}\n\n/* ─── Content ───────────────────────────────────────────────────────────────── */\n\n.content {\n padding: 0 var(--gnome-space-4, 24px) var(--gnome-space-4, 24px);\n}\n\n/* ─── Dark mode ─────────────────────────────────────────────────────────────── */\n\n@media (prefers-color-scheme: dark) {\n .backdrop {\n background-color: rgba(0, 0, 0, 0.65);\n }\n\n .sheet {\n background-color: var(--gnome-dialog-bg-color, var(--gnome-window-bg-color, #242424));\n box-shadow:\n 0 -4px 24px rgba(0, 0, 0, 0.45),\n 0 0 0 1px rgba(255, 255, 255, 0.06);\n }\n}\n\n/* ─── Reduced motion ────────────────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .backdrop,\n .sheet {\n animation: none;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"BottomSheet.module.css.js","names":[],"sources":["../../../src/components/BottomSheet/BottomSheet.module.css"],"sourcesContent":["/* ─── Backdrop ──────────────────────────────────────────────────────────────── */\n\n.backdrop {\n position: fixed;\n inset: 0;\n z-index: 10000;\n display: flex;\n align-items: flex-end;\n justify-content: center;\n background-color: rgb(0 0 0 / 0.5);\n backdrop-filter: blur(4px);\n animation: backdrop-in var(--gnome-duration-normal, 200ms) var(--gnome-easing-default, ease) both;\n}\n\n.backdrop.closing {\n animation: backdrop-out var(--gnome-duration-normal, 200ms) var(--gnome-easing-default, ease) both;\n}\n\n@keyframes backdrop-in {\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n}\n\n@keyframes backdrop-out {\n from {\n opacity: 1;\n }\n\n to {\n opacity: 0;\n }\n}\n\n/* ─── Sheet ─────────────────────────────────────────────────────────────────── */\n\n.sheet {\n width: min(560px, 100vw);\n max-height: 90dvh;\n overflow-y: auto;\n background-color: var(--gnome-dialog-bg-color, var(--gnome-window-bg-color, #fafafa));\n color: var(--gnome-window-fg-color, rgb(0 0 0 / 0.8));\n border-radius: var(--gnome-radius-xl, 16px) var(--gnome-radius-xl, 16px) 0 0;\n box-shadow:\n 0 -4px 24px rgb(0 0 0 / 0.18),\n 0 0 0 1px rgb(0 0 0 / 0.06);\n\n /* Snap-back transition after releasing a partial drag */\n transition: transform 200ms var(--gnome-easing-default, ease);\n will-change: transform;\n}\n\n.sheet.entering {\n animation: sheet-in var(--gnome-duration-normal, 200ms) var(--gnome-easing-default, ease) both;\n}\n\n.sheet.closing {\n animation: sheet-out var(--gnome-duration-normal, 200ms) var(--gnome-easing-default, ease) both;\n}\n\n/* Disable transition while actively dragging so the sheet follows the pointer instantly */\n.sheet.dragging {\n transition: none;\n}\n\n@keyframes sheet-in {\n from {\n transform: translateY(100%);\n }\n\n to {\n transform: translateY(0);\n }\n}\n\n@keyframes sheet-out {\n from {\n transform: translateY(0);\n }\n\n to {\n transform: translateY(100%);\n }\n}\n\n/* ─── Handle bar ────────────────────────────────────────────────────────────── */\n\n.handle {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--gnome-space-2, 12px) 0 var(--gnome-space-1, 6px);\n cursor: grab;\n\n /* Prevents the browser from hijacking the pointer for scroll while dragging */\n touch-action: none;\n}\n\n.handle:active {\n cursor: grabbing;\n}\n\n.handleBar {\n width: 36px;\n height: 4px;\n border-radius: 2px;\n background-color: var(--gnome-window-fg-color, rgb(0 0 0 / 0.8));\n opacity: 0.2;\n pointer-events: none;\n}\n\n/* ─── Title ─────────────────────────────────────────────────────────────────── */\n\n.title {\n padding: 0 var(--gnome-space-4, 24px) var(--gnome-space-2, 12px);\n font-family: var(--gnome-font-family);\n font-size: var(--gnome-font-size-title-4, 1.125rem);\n font-weight: var(--gnome-font-weight-bold, 700);\n line-height: var(--gnome-line-height-title, 1.3);\n color: var(--gnome-window-fg-color, rgb(0 0 0 / 0.8));\n text-align: center;\n}\n\n/* ─── Content ───────────────────────────────────────────────────────────────── */\n\n.content {\n padding: 0 var(--gnome-space-4, 24px) var(--gnome-space-4, 24px);\n}\n\n/* ─── Dark mode ─────────────────────────────────────────────────────────────── */\n\n@media (prefers-color-scheme: dark) {\n .backdrop {\n background-color: rgb(0 0 0 / 0.65);\n }\n\n .sheet {\n background-color: var(--gnome-dialog-bg-color, var(--gnome-window-bg-color, #242424));\n box-shadow:\n 0 -4px 24px rgb(0 0 0 / 0.45),\n 0 0 0 1px rgb(255 255 255 / 0.06);\n }\n}\n\n/* ─── Reduced motion ────────────────────────────────────────────────────────── */\n\n@media (prefers-reduced-motion: reduce) {\n .backdrop,\n .sheet,\n .backdrop.closing,\n .sheet.entering,\n .sheet.closing,\n .sheet.dragging {\n animation: none;\n transition: none;\n }\n}\n"],"mappings":""}
@@ -1,2 +1,2 @@
1
- var e={list:`_list_ltjeu_3`,item:`_item_ltjeu_16`,separate:`_separate_ltjeu_36`,separateItem:`_separateItem_ltjeu_46`,divider:`_divider_ltjeu_68`};exports.default=e;
1
+ var e={list:`_list_fbr65_3`,item:`_item_fbr65_15`,separate:`_separate_fbr65_35`,separateItem:`_separateItem_fbr65_45`,divider:`_divider_fbr65_67`};exports.default=e;
2
2
  //# sourceMappingURL=BoxedList.module.css.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"BoxedList.module.css.cjs","names":[],"sources":["../../../src/components/BoxedList/BoxedList.module.css"],"sourcesContent":["/* ─── Container ────────────────────────────────────────────────────────────── */\n\n.list {\n list-style: none;\n margin: 0;\n padding: 0;\n\n background-color: var(--gnome-card-bg-color, #ffffff);\n color: var(--gnome-card-fg-color, rgba(0, 0, 0, 0.8));\n border: 1px solid var(--gnome-divider-color);\n border-radius: var(--gnome-radius-lg);\n}\n\n/* ─── Row wrapper ──────────────────────────────────────────────────────────── */\n\n.item {\n position: relative;\n display: flex;\n flex-direction: column;\n}\n\n.item:first-child > * {\n border-radius: var(--gnome-radius-lg) var(--gnome-radius-lg) 0 0;\n}\n\n.item:last-child > * {\n border-radius: 0 0 var(--gnome-radius-lg) var(--gnome-radius-lg);\n}\n\n.item:only-child > * {\n border-radius: var(--gnome-radius-lg);\n}\n\n/* ─── Separate variant ─────────────────────────────────────────────────────── */\n\n.separate {\n background: none;\n border: none;\n border-radius: 0;\n display: flex;\n flex-direction: column;\n gap: var(--gnome-space-2, 12px);\n overflow: visible;\n}\n\n.separateItem {\n background-color: var(--gnome-card-bg-color, #ffffff);\n border: 1px solid var(--gnome-divider-color);\n border-radius: var(--gnome-radius-lg);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n\n@media (prefers-color-scheme: dark) {\n .separateItem {\n background-color: var(--gnome-card-bg-color, #2d2d2d);\n }\n}\n\n/* ─── High contrast ────────────────────────────────────────────────────────── */\n\n@media (prefers-contrast: more) {\n .list {\n border-width: 2px;\n }\n\n .divider {\n height: 2px;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"BoxedList.module.css.cjs","names":[],"sources":["../../../src/components/BoxedList/BoxedList.module.css"],"sourcesContent":["/* ─── Container ────────────────────────────────────────────────────────────── */\n\n.list {\n list-style: none;\n margin: 0;\n padding: 0;\n background-color: var(--gnome-card-bg-color, #fff);\n color: var(--gnome-card-fg-color, rgb(0 0 0 / 0.8));\n border: 1px solid var(--gnome-divider-color);\n border-radius: var(--gnome-radius-lg);\n}\n\n/* ─── Row wrapper ──────────────────────────────────────────────────────────── */\n\n.item {\n position: relative;\n display: flex;\n flex-direction: column;\n}\n\n.item:first-child > * {\n border-radius: var(--gnome-radius-lg) var(--gnome-radius-lg) 0 0;\n}\n\n.item:last-child > * {\n border-radius: 0 0 var(--gnome-radius-lg) var(--gnome-radius-lg);\n}\n\n.item:only-child > * {\n border-radius: var(--gnome-radius-lg);\n}\n\n/* ─── Separate variant ─────────────────────────────────────────────────────── */\n\n.separate {\n background: none;\n border: none;\n border-radius: 0;\n display: flex;\n flex-direction: column;\n gap: var(--gnome-space-2, 12px);\n overflow: visible;\n}\n\n.separateItem {\n background-color: var(--gnome-card-bg-color, #fff);\n border: 1px solid var(--gnome-divider-color);\n border-radius: var(--gnome-radius-lg);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n\n@media (prefers-color-scheme: dark) {\n .separateItem {\n background-color: var(--gnome-card-bg-color, #2d2d2d);\n }\n}\n\n/* ─── High contrast ────────────────────────────────────────────────────────── */\n\n@media (prefers-contrast: more) {\n .list {\n border-width: 2px;\n }\n\n .divider {\n height: 2px;\n }\n}\n"],"mappings":""}
@@ -1,9 +1,9 @@
1
1
  var e = {
2
- list: "_list_ltjeu_3",
3
- item: "_item_ltjeu_16",
4
- separate: "_separate_ltjeu_36",
5
- separateItem: "_separateItem_ltjeu_46",
6
- divider: "_divider_ltjeu_68"
2
+ list: "_list_fbr65_3",
3
+ item: "_item_fbr65_15",
4
+ separate: "_separate_fbr65_35",
5
+ separateItem: "_separateItem_fbr65_45",
6
+ divider: "_divider_fbr65_67"
7
7
  };
8
8
  //#endregion
9
9
  export { e as default };
@@ -1 +1 @@
1
- {"version":3,"file":"BoxedList.module.css.js","names":[],"sources":["../../../src/components/BoxedList/BoxedList.module.css"],"sourcesContent":["/* ─── Container ────────────────────────────────────────────────────────────── */\n\n.list {\n list-style: none;\n margin: 0;\n padding: 0;\n\n background-color: var(--gnome-card-bg-color, #ffffff);\n color: var(--gnome-card-fg-color, rgba(0, 0, 0, 0.8));\n border: 1px solid var(--gnome-divider-color);\n border-radius: var(--gnome-radius-lg);\n}\n\n/* ─── Row wrapper ──────────────────────────────────────────────────────────── */\n\n.item {\n position: relative;\n display: flex;\n flex-direction: column;\n}\n\n.item:first-child > * {\n border-radius: var(--gnome-radius-lg) var(--gnome-radius-lg) 0 0;\n}\n\n.item:last-child > * {\n border-radius: 0 0 var(--gnome-radius-lg) var(--gnome-radius-lg);\n}\n\n.item:only-child > * {\n border-radius: var(--gnome-radius-lg);\n}\n\n/* ─── Separate variant ─────────────────────────────────────────────────────── */\n\n.separate {\n background: none;\n border: none;\n border-radius: 0;\n display: flex;\n flex-direction: column;\n gap: var(--gnome-space-2, 12px);\n overflow: visible;\n}\n\n.separateItem {\n background-color: var(--gnome-card-bg-color, #ffffff);\n border: 1px solid var(--gnome-divider-color);\n border-radius: var(--gnome-radius-lg);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n\n@media (prefers-color-scheme: dark) {\n .separateItem {\n background-color: var(--gnome-card-bg-color, #2d2d2d);\n }\n}\n\n/* ─── High contrast ────────────────────────────────────────────────────────── */\n\n@media (prefers-contrast: more) {\n .list {\n border-width: 2px;\n }\n\n .divider {\n height: 2px;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"BoxedList.module.css.js","names":[],"sources":["../../../src/components/BoxedList/BoxedList.module.css"],"sourcesContent":["/* ─── Container ────────────────────────────────────────────────────────────── */\n\n.list {\n list-style: none;\n margin: 0;\n padding: 0;\n background-color: var(--gnome-card-bg-color, #fff);\n color: var(--gnome-card-fg-color, rgb(0 0 0 / 0.8));\n border: 1px solid var(--gnome-divider-color);\n border-radius: var(--gnome-radius-lg);\n}\n\n/* ─── Row wrapper ──────────────────────────────────────────────────────────── */\n\n.item {\n position: relative;\n display: flex;\n flex-direction: column;\n}\n\n.item:first-child > * {\n border-radius: var(--gnome-radius-lg) var(--gnome-radius-lg) 0 0;\n}\n\n.item:last-child > * {\n border-radius: 0 0 var(--gnome-radius-lg) var(--gnome-radius-lg);\n}\n\n.item:only-child > * {\n border-radius: var(--gnome-radius-lg);\n}\n\n/* ─── Separate variant ─────────────────────────────────────────────────────── */\n\n.separate {\n background: none;\n border: none;\n border-radius: 0;\n display: flex;\n flex-direction: column;\n gap: var(--gnome-space-2, 12px);\n overflow: visible;\n}\n\n.separateItem {\n background-color: var(--gnome-card-bg-color, #fff);\n border: 1px solid var(--gnome-divider-color);\n border-radius: var(--gnome-radius-lg);\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n\n@media (prefers-color-scheme: dark) {\n .separateItem {\n background-color: var(--gnome-card-bg-color, #2d2d2d);\n }\n}\n\n/* ─── High contrast ────────────────────────────────────────────────────────── */\n\n@media (prefers-contrast: more) {\n .list {\n border-width: 2px;\n }\n\n .divider {\n height: 2px;\n }\n}\n"],"mappings":""}
@@ -1,2 +1,2 @@
1
- let e=require("react"),t=require("react/jsx-runtime");var n=({breakpoints:n,children:r,className:i,style:a,...o})=>{let s=(0,e.useRef)(null),[c,l]=(0,e.useState)({activeBreakpoint:null,width:0});return(0,e.useEffect)(()=>{let e=s.current;if(!e)return;let t=[...n].sort((e,t)=>e.maxWidth-t.maxWidth),r=e=>({activeBreakpoint:(t.find(t=>e<=t.maxWidth)??null)?.name??null,width:e});l(r(e.offsetWidth));let i=new ResizeObserver(e=>{let t=e[0];t&&l(r(t.contentBoxSize?.[0]?.inlineSize??t.contentRect.width))});return i.observe(e),()=>i.disconnect()},[n]),(0,t.jsx)(`div`,{ref:s,className:i,style:{minWidth:0,...a},"data-breakpoint":c.activeBreakpoint??void 0,...o,children:r(c)})};exports.BreakpointBin=n;
1
+ let e=require("react"),t=require("react/jsx-runtime");var n=({breakpoints:n,children:r,className:i,style:a,...o})=>{let s=(0,e.useRef)(null),[c,l]=(0,e.useState)({activeBreakpoint:null,width:0});return(0,e.useEffect)(()=>{let e=s.current;if(!e)return;let t=[...n].sort((e,t)=>e.maxWidth-t.maxWidth),r=e=>({activeBreakpoint:(t.find(t=>e<=t.maxWidth)??null)?.name??null,width:e});l(r(e.offsetWidth));let i=new ResizeObserver(e=>{let[t]=e;t&&l(r(t.contentBoxSize?.[0]?.inlineSize??t.contentRect.width))});return i.observe(e),()=>i.disconnect()},[n]),(0,t.jsx)(`div`,{ref:s,className:i,style:{minWidth:0,...a},"data-breakpoint":c.activeBreakpoint??void 0,...o,children:r(c)})};exports.BreakpointBin=n;
2
2
  //# sourceMappingURL=BreakpointBin.cjs.map