@pathscale/ui 1.2.5 → 1.2.7

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 (385) hide show
  1. package/LICENSE +22 -22
  2. package/README.md +59 -59
  3. package/dist/components/_shared/index.js +2 -3
  4. package/dist/components/_shared/overlayPosition.js +5 -5
  5. package/dist/components/accordion/Accordion.css +158 -158
  6. package/dist/components/accordion/Accordion.js +44 -44
  7. package/dist/components/accordion/index.js +2 -9
  8. package/dist/components/alert/Alert.css +116 -116
  9. package/dist/components/alert/Alert.js +30 -30
  10. package/dist/components/alert/index.js +2 -8
  11. package/dist/components/auth-card/AuthCard.js +20 -20
  12. package/dist/components/auth-card/index.js +2 -3
  13. package/dist/components/auth-error-message/AuthErrorMessage.js +12 -12
  14. package/dist/components/auth-error-message/index.js +2 -3
  15. package/dist/components/auth-field-group/AuthFieldGroup.js +11 -11
  16. package/dist/components/auth-field-group/index.js +2 -3
  17. package/dist/components/auth-footer-links/AuthFooterLinks.js +20 -20
  18. package/dist/components/auth-footer-links/index.js +2 -3
  19. package/dist/components/auth-form/AuthForm.js +11 -11
  20. package/dist/components/auth-form/index.js +2 -3
  21. package/dist/components/auth-powered-by/AuthPoweredBy.js +15 -26
  22. package/dist/components/auth-powered-by/index.js +2 -3
  23. package/dist/components/auth-submit-button/AuthSubmitButton.js +10 -10
  24. package/dist/components/auth-submit-button/index.js +2 -3
  25. package/dist/components/auth-success-message/AuthSuccessMessage.js +9 -9
  26. package/dist/components/auth-success-message/index.js +2 -3
  27. package/dist/components/avatar/Avatar.css +124 -124
  28. package/dist/components/avatar/Avatar.js +27 -27
  29. package/dist/components/avatar/AvatarGroup.js +11 -11
  30. package/dist/components/avatar/index.js +2 -6
  31. package/dist/components/badge/Badge.css +164 -164
  32. package/dist/components/badge/Badge.js +19 -19
  33. package/dist/components/badge/index.js +6 -9
  34. package/dist/components/breadcrumbs/Breadcrumbs.css +63 -63
  35. package/dist/components/breadcrumbs/Breadcrumbs.js +25 -25
  36. package/dist/components/breadcrumbs/index.js +2 -5
  37. package/dist/components/button/Button.css +194 -194
  38. package/dist/components/button/Button.js +22 -22
  39. package/dist/components/button/index.js +2 -3
  40. package/dist/components/button-group/ButtonGroup.css +117 -117
  41. package/dist/components/button-group/ButtonGroup.js +14 -14
  42. package/dist/components/button-group/context.js +2 -2
  43. package/dist/components/button-group/index.js +2 -6
  44. package/dist/components/calendar/Calendar.css +258 -258
  45. package/dist/components/calendar/Calendar.js +85 -85
  46. package/dist/components/calendar/index.js +2 -3
  47. package/dist/components/card/Card.css +110 -110
  48. package/dist/components/card/Card.js +21 -21
  49. package/dist/components/card/index.js +2 -8
  50. package/dist/components/chatbubble/ChatBubble.css +164 -164
  51. package/dist/components/chatbubble/ChatBubble.js +19 -19
  52. package/dist/components/chatbubble/ChatBubbleAvatar.js +8 -8
  53. package/dist/components/chatbubble/ChatBubbleFooter.js +11 -11
  54. package/dist/components/chatbubble/ChatBubbleHeader.js +8 -8
  55. package/dist/components/chatbubble/ChatBubbleMessage.js +12 -12
  56. package/dist/components/chatbubble/ChatBubbleTime.js +11 -11
  57. package/dist/components/chatbubble/index.js +2 -3
  58. package/dist/components/checkbox/Checkbox.css +183 -183
  59. package/dist/components/checkbox/Checkbox.js +29 -29
  60. package/dist/components/checkbox/index.js +2 -3
  61. package/dist/components/checkbox-group/CheckboxGroup.css +10 -10
  62. package/dist/components/checkbox-group/CheckboxGroup.js +16 -16
  63. package/dist/components/checkbox-group/context.js +2 -2
  64. package/dist/components/checkbox-group/index.js +3 -4
  65. package/dist/components/chip/Chip.css +197 -197
  66. package/dist/components/chip/Chip.js +32 -32
  67. package/dist/components/chip/index.js +5 -7
  68. package/dist/components/close-button/CloseButton.css +81 -81
  69. package/dist/components/close-button/CloseButton.js +22 -22
  70. package/dist/components/close-button/index.js +2 -3
  71. package/dist/components/color-area/ColorArea.css +54 -54
  72. package/dist/components/color-area/ColorArea.js +13 -13
  73. package/dist/components/color-area/index.js +2 -2
  74. package/dist/components/color-field/ColorField.css +88 -88
  75. package/dist/components/color-field/ColorField.js +23 -23
  76. package/dist/components/color-field/index.js +2 -2
  77. package/dist/components/color-picker/ColorPicker.css +28 -28
  78. package/dist/components/color-picker/ColorPicker.js +44 -44
  79. package/dist/components/color-picker/index.js +2 -8
  80. package/dist/components/color-slider/ColorSlider.css +57 -57
  81. package/dist/components/color-slider/ColorSlider.js +21 -21
  82. package/dist/components/color-slider/index.js +2 -2
  83. package/dist/components/color-swatch/ColorSwatch.css +84 -84
  84. package/dist/components/color-swatch/ColorSwatch.js +14 -14
  85. package/dist/components/color-swatch/index.js +2 -2
  86. package/dist/components/color-swatch-picker/ColorSwatchPicker.css +12 -12
  87. package/dist/components/color-swatch-picker/ColorSwatchPicker.js +14 -14
  88. package/dist/components/color-swatch-picker/index.js +2 -5
  89. package/dist/components/color-wheel-flower/ColorWheelFlower.css +147 -147
  90. package/dist/components/color-wheel-flower/ColorWheelFlower.js +83 -83
  91. package/dist/components/color-wheel-flower/colorWheelFlowerContext.js +3 -3
  92. package/dist/components/color-wheel-flower/index.js +3 -6
  93. package/dist/components/combo-box/ComboBox.css +344 -344
  94. package/dist/components/combo-box/ComboBox.js +90 -90
  95. package/dist/components/combo-box/index.js +2 -10
  96. package/dist/components/date-field/DateField.css +215 -215
  97. package/dist/components/date-field/DateField.js +41 -41
  98. package/dist/components/date-field/index.js +2 -11
  99. package/dist/components/date-picker/DatePicker.css +143 -143
  100. package/dist/components/date-picker/DatePicker.js +40 -40
  101. package/dist/components/date-picker/index.js +2 -3
  102. package/dist/components/date-range-picker/DateRangePicker.css +149 -149
  103. package/dist/components/date-range-picker/DateRangePicker.js +55 -55
  104. package/dist/components/date-range-picker/index.js +2 -3
  105. package/dist/components/description/Description.css +10 -10
  106. package/dist/components/description/Description.js +9 -9
  107. package/dist/components/description/index.js +2 -5
  108. package/dist/components/disclosure/Disclosure.css +84 -84
  109. package/dist/components/disclosure/Disclosure.js +40 -40
  110. package/dist/components/disclosure/index.js +3 -9
  111. package/dist/components/disclosure-group/DisclosureGroup.css +9 -9
  112. package/dist/components/disclosure-group/DisclosureGroup.js +13 -13
  113. package/dist/components/disclosure-group/index.js +4 -6
  114. package/dist/components/disclosure-group/useDisclosureGroupNavigation.js +4 -4
  115. package/dist/components/drawer/Drawer.context.js +3 -3
  116. package/dist/components/drawer/Drawer.css +463 -463
  117. package/dist/components/drawer/Drawer.js +107 -107
  118. package/dist/components/drawer/index.js +2 -15
  119. package/dist/components/dropdown/Dropdown.css +211 -211
  120. package/dist/components/dropdown/Dropdown.js +66 -66
  121. package/dist/components/dropdown/index.js +2 -4
  122. package/dist/components/empty-state/EmptyState.css +39 -39
  123. package/dist/components/empty-state/EmptyState.js +25 -25
  124. package/dist/components/empty-state/index.js +2 -8
  125. package/dist/components/error-message/ErrorMessage.css +20 -20
  126. package/dist/components/error-message/ErrorMessage.js +12 -12
  127. package/dist/components/error-message/index.js +2 -5
  128. package/dist/components/field-error/FieldError.css +27 -27
  129. package/dist/components/field-error/FieldError.js +14 -14
  130. package/dist/components/field-error/index.js +2 -5
  131. package/dist/components/fieldset/Fieldset.css +30 -30
  132. package/dist/components/fieldset/Fieldset.js +21 -21
  133. package/dist/components/fieldset/index.js +2 -8
  134. package/dist/components/flex/Flex.css +5 -5
  135. package/dist/components/flex/Flex.js +14 -14
  136. package/dist/components/flex/index.js +2 -3
  137. package/dist/components/floating-dock/FloatingDock.css +208 -208
  138. package/dist/components/floating-dock/FloatingDock.js +76 -76
  139. package/dist/components/floating-dock/index.js +2 -3
  140. package/dist/components/footer/Footer.js +11 -11
  141. package/dist/components/footer/FooterTitle.js +9 -9
  142. package/dist/components/footer/footer.css +51 -51
  143. package/dist/components/footer/index.js +2 -3
  144. package/dist/components/form/FieldErrorMessage.js +8 -8
  145. package/dist/components/form/Form.css +5 -5
  146. package/dist/components/form/Form.js +21 -21
  147. package/dist/components/form/FormField.js +19 -19
  148. package/dist/components/form/FormSubmitButton.js +11 -11
  149. package/dist/components/form/index.js +5 -12
  150. package/dist/components/glass-panel/GlassPanel.css +359 -359
  151. package/dist/components/glass-panel/GlassPanel.js +29 -29
  152. package/dist/components/glass-panel/index.js +2 -3
  153. package/dist/components/glow-card/GlowCard.css +100 -100
  154. package/dist/components/glow-card/GlowCard.js +10 -10
  155. package/dist/components/glow-card/index.js +2 -3
  156. package/dist/components/grid/Grid.css +5 -5
  157. package/dist/components/grid/Grid.js +15 -15
  158. package/dist/components/grid/index.js +2 -3
  159. package/dist/components/header/Header.css +13 -13
  160. package/dist/components/header/Header.js +12 -12
  161. package/dist/components/header/index.js +2 -5
  162. package/dist/components/icon/Icon.css +10 -10
  163. package/dist/components/icon/Icon.js +8 -8
  164. package/dist/components/icon/index.js +2 -3
  165. package/dist/components/immersive-landing/ImmersiveLanding.css +565 -565
  166. package/dist/components/immersive-landing/ImmersiveLanding.js +44 -44
  167. package/dist/components/immersive-landing/ImmersiveLandingArrows.js +17 -17
  168. package/dist/components/immersive-landing/ImmersiveLandingContext.js +3 -3
  169. package/dist/components/immersive-landing/ImmersiveLandingNavigation.js +36 -36
  170. package/dist/components/immersive-landing/ImmersiveLandingPage.js +15 -15
  171. package/dist/components/immersive-landing/components/CookieConsent.js +71 -71
  172. package/dist/components/immersive-landing/components/FirefoxPWABanner.js +42 -42
  173. package/dist/components/immersive-landing/components/PWAInstallPrompt.js +40 -40
  174. package/dist/components/immersive-landing/index.js +7 -14
  175. package/dist/components/immersive-landing/useImmersiveLanding.js +7 -7
  176. package/dist/components/input/Input.css +155 -155
  177. package/dist/components/input/Input.js +48 -48
  178. package/dist/components/input/index.js +2 -2
  179. package/dist/components/input-group/InputGroup.css +172 -172
  180. package/dist/components/input-group/InputGroup.js +33 -33
  181. package/dist/components/input-group/index.js +2 -9
  182. package/dist/components/input-otp/InputOTP.css +170 -170
  183. package/dist/components/input-otp/InputOTP.js +48 -48
  184. package/dist/components/input-otp/index.js +2 -11
  185. package/dist/components/join/Join.js +14 -14
  186. package/dist/components/join/index.js +2 -3
  187. package/dist/components/kbd/Kbd.css +60 -60
  188. package/dist/components/kbd/Kbd.js +20 -20
  189. package/dist/components/kbd/index.js +2 -8
  190. package/dist/components/label/Label.css +30 -30
  191. package/dist/components/label/Label.js +9 -9
  192. package/dist/components/label/index.js +2 -5
  193. package/dist/components/language-switcher/LanguageSwitcher.css +56 -56
  194. package/dist/components/language-switcher/LanguageSwitcher.js +26 -26
  195. package/dist/components/language-switcher/createI18n.js +8 -8
  196. package/dist/components/language-switcher/index.js +3 -8
  197. package/dist/components/link/Link.css +131 -131
  198. package/dist/components/link/Link.js +22 -22
  199. package/dist/components/link/index.js +2 -5
  200. package/dist/components/list-box/ListBox.css +148 -148
  201. package/dist/components/list-box/ListBox.js +17 -17
  202. package/dist/components/list-box/ListBoxItem.js +32 -32
  203. package/dist/components/list-box/ListBoxSection.js +13 -13
  204. package/dist/components/list-box/context.js +2 -2
  205. package/dist/components/list-box/index.js +9 -15
  206. package/dist/components/live-chat/LiveChat.css +324 -324
  207. package/dist/components/live-chat/LiveChatBubble.js +27 -27
  208. package/dist/components/live-chat/LiveChatPanel.js +62 -62
  209. package/dist/components/live-chat/index.js +3 -5
  210. package/dist/components/menu/Menu.css +199 -199
  211. package/dist/components/menu/Menu.js +25 -30
  212. package/dist/components/menu/MenuItem.js +38 -38
  213. package/dist/components/menu/MenuSection.js +13 -13
  214. package/dist/components/menu/context.js +2 -2
  215. package/dist/components/menu/index.js +3 -12
  216. package/dist/components/meter/Meter.css +89 -89
  217. package/dist/components/meter/Meter.js +31 -31
  218. package/dist/components/meter/index.js +2 -8
  219. package/dist/components/modal/Modal.css +320 -320
  220. package/dist/components/modal/Modal.js +80 -80
  221. package/dist/components/modal/index.js +2 -13
  222. package/dist/components/navbar/Navbar.css +110 -110
  223. package/dist/components/navbar/Navbar.js +18 -18
  224. package/dist/components/navbar/NavbarRow.js +10 -10
  225. package/dist/components/navbar/NavbarSection.js +9 -9
  226. package/dist/components/navbar/NavbarStack.js +10 -10
  227. package/dist/components/navbar/index.js +2 -3
  228. package/dist/components/noise-background/NoiseBackground.css +66 -66
  229. package/dist/components/noise-background/NoiseBackground.js +35 -35
  230. package/dist/components/noise-background/index.js +2 -3
  231. package/dist/components/number-field/NumberField.css +198 -198
  232. package/dist/components/number-field/NumberField.js +42 -42
  233. package/dist/components/number-field/index.js +2 -9
  234. package/dist/components/pagination/Pagination.css +121 -121
  235. package/dist/components/pagination/Pagination.js +34 -34
  236. package/dist/components/pagination/index.js +2 -3
  237. package/dist/components/password-field/PasswordField.js +15 -15
  238. package/dist/components/password-field/index.js +2 -3
  239. package/dist/components/password-requirements/PasswordRequirements.js +24 -24
  240. package/dist/components/password-requirements/index.js +2 -3
  241. package/dist/components/password-rules/index.js +2 -4
  242. package/dist/components/popover/Popover.css +117 -117
  243. package/dist/components/popover/Popover.js +50 -50
  244. package/dist/components/popover/index.js +3 -9
  245. package/dist/components/progress-bar/ProgressBar.css +104 -104
  246. package/dist/components/progress-bar/ProgressBar.js +27 -27
  247. package/dist/components/progress-bar/index.js +2 -3
  248. package/dist/components/progress-circle/ProgressCircle.css +82 -82
  249. package/dist/components/progress-circle/ProgressCircle.js +32 -32
  250. package/dist/components/progress-circle/index.js +2 -3
  251. package/dist/components/radio/Radio.css +129 -129
  252. package/dist/components/radio/Radio.js +27 -27
  253. package/dist/components/radio/index.js +2 -3
  254. package/dist/components/radio-group/RadioGroup.css +58 -58
  255. package/dist/components/radio-group/RadioGroup.js +33 -33
  256. package/dist/components/radio-group/context.js +2 -2
  257. package/dist/components/radio-group/index.js +3 -4
  258. package/dist/components/range-calendar/RangeCalendar.css +51 -51
  259. package/dist/components/range-calendar/RangeCalendar.js +15 -15
  260. package/dist/components/range-calendar/index.js +2 -3
  261. package/dist/components/scroll-shadow/ScrollShadow.css +93 -93
  262. package/dist/components/scroll-shadow/ScrollShadow.js +19 -19
  263. package/dist/components/scroll-shadow/index.js +2 -3
  264. package/dist/components/scroll-shadow/useScrollShadow.js +3 -3
  265. package/dist/components/search-field/SearchField.css +183 -183
  266. package/dist/components/search-field/SearchField.js +38 -38
  267. package/dist/components/search-field/index.js +2 -9
  268. package/dist/components/select/Select.css +284 -284
  269. package/dist/components/select/Select.js +129 -129
  270. package/dist/components/select/index.js +2 -3
  271. package/dist/components/separator/Separator.css +35 -35
  272. package/dist/components/separator/Separator.js +11 -11
  273. package/dist/components/separator/index.js +2 -4
  274. package/dist/components/size-picker/SizePicker.js +17 -17
  275. package/dist/components/size-picker/index.js +3 -6
  276. package/dist/components/size-picker/sizeStore.js +3 -3
  277. package/dist/components/skeleton/Skeleton.css +95 -95
  278. package/dist/components/skeleton/Skeleton.js +8 -8
  279. package/dist/components/skeleton/index.js +2 -3
  280. package/dist/components/slider/Slider.css +122 -122
  281. package/dist/components/slider/Slider.js +26 -26
  282. package/dist/components/slider/index.js +2 -3
  283. package/dist/components/spinner/Spinner.css +131 -131
  284. package/dist/components/spinner/Spinner.js +19 -19
  285. package/dist/components/spinner/index.js +2 -5
  286. package/dist/components/surface/Surface.css +37 -37
  287. package/dist/components/surface/Surface.js +9 -9
  288. package/dist/components/surface/index.js +2 -4
  289. package/dist/components/table/ExpandToggle.js +14 -14
  290. package/dist/components/table/InlineConfirm.js +11 -11
  291. package/dist/components/table/MobileListView.js +24 -24
  292. package/dist/components/table/SortIcon.js +13 -13
  293. package/dist/components/table/Table.css +426 -426
  294. package/dist/components/table/Table.js +80 -80
  295. package/dist/components/table/VirtualSpacerRow.js +8 -8
  296. package/dist/components/table/index.js +8 -38
  297. package/dist/components/tabs/Tabs.css +203 -203
  298. package/dist/components/tabs/Tabs.js +59 -59
  299. package/dist/components/tabs/index.js +2 -4
  300. package/dist/components/tag/Tag.css +121 -121
  301. package/dist/components/tag/Tag.js +40 -40
  302. package/dist/components/tag/index.js +2 -6
  303. package/dist/components/tag-group/TagGroup.css +22 -22
  304. package/dist/components/tag-group/TagGroup.js +20 -20
  305. package/dist/components/tag-group/context.js +2 -2
  306. package/dist/components/tag-group/index.js +2 -6
  307. package/dist/components/text/Text.css +66 -66
  308. package/dist/components/text/Text.js +9 -9
  309. package/dist/components/text/index.js +2 -5
  310. package/dist/components/text-area/TextArea.css +95 -95
  311. package/dist/components/text-area/TextArea.js +10 -10
  312. package/dist/components/text-area/index.js +2 -5
  313. package/dist/components/text-field/TextField.css +33 -33
  314. package/dist/components/text-field/TextField.js +15 -15
  315. package/dist/components/text-field/index.js +2 -7
  316. package/dist/components/textarea/Textarea.js +11 -13
  317. package/dist/components/textarea/index.js +2 -6
  318. package/dist/components/theme-color-picker/ThemeColorPicker.js +49 -49
  319. package/dist/components/theme-color-picker/hueShift.js +3 -3
  320. package/dist/components/theme-color-picker/index.js +3 -7
  321. package/dist/components/time-field/TimeField.css +215 -215
  322. package/dist/components/time-field/TimeField.js +41 -41
  323. package/dist/components/time-field/index.js +2 -11
  324. package/dist/components/toast/Toast.css +344 -344
  325. package/dist/components/toast/Toast.js +98 -98
  326. package/dist/components/toast/index.js +2 -19
  327. package/dist/components/toggle/Toggle.css +237 -237
  328. package/dist/components/toggle/Toggle.js +31 -31
  329. package/dist/components/toggle/index.js +2 -3
  330. package/dist/components/toolbar/Toolbar.css +55 -55
  331. package/dist/components/toolbar/Toolbar.js +10 -10
  332. package/dist/components/toolbar/index.js +2 -5
  333. package/dist/components/tooltip/Tooltip.css +153 -153
  334. package/dist/components/tooltip/Tooltip.js +36 -36
  335. package/dist/components/tooltip/index.js +2 -7
  336. package/dist/components/utils.js +6 -7
  337. package/dist/components/video-preview/VideoPreview.js +15 -15
  338. package/dist/components/video-preview/index.js +2 -3
  339. package/dist/hooks/date/useCalendarNavigation.js +18 -18
  340. package/dist/hooks/date/useCalendarState.js +19 -19
  341. package/dist/hooks/date/useDateSelection.js +7 -7
  342. package/dist/hooks/date/usePickerOpenState.js +8 -8
  343. package/dist/hooks/date/useRangeSelection.js +16 -16
  344. package/dist/hooks/form/FormContext.js +3 -3
  345. package/dist/hooks/form/createForm.js +4 -4
  346. package/dist/hooks/form/index.js +5 -10
  347. package/dist/hooks/form/useFieldNew.js +10 -10
  348. package/dist/hooks/layout/index.js +2 -3
  349. package/dist/hooks/layout/useDesktop.js +4 -4
  350. package/dist/hooks/table/index.js +9 -18
  351. package/dist/hooks/table/useAnchoredOverlayPosition.js +4 -4
  352. package/dist/hooks/table/useTableExpansion.js +4 -4
  353. package/dist/hooks/table/useTableFiltering.js +8 -8
  354. package/dist/hooks/table/useTableModel.js +10 -10
  355. package/dist/hooks/table/useTablePagination.js +4 -4
  356. package/dist/hooks/table/useTableSelection.js +4 -4
  357. package/dist/hooks/table/useTableSorting.js +6 -6
  358. package/dist/index.css +74 -74
  359. package/dist/index.js +108 -398
  360. package/dist/lib/refs/index.js +2 -3
  361. package/dist/lib/refs/mergeRefs.js +2 -2
  362. package/dist/lib/style/index.js +2 -4
  363. package/dist/lib/tag/createIsButton.js +4 -4
  364. package/dist/lib/tag/createTagName.js +2 -2
  365. package/dist/lib/tag/index.js +3 -7
  366. package/dist/motion/engine.js +4 -4
  367. package/dist/motion/index.js +11 -39
  368. package/dist/motion/popmotion.js +2 -2
  369. package/dist/motion/presets.js +4 -4
  370. package/dist/motion/route.js +7 -7
  371. package/dist/motion/solid/AnimatedCollapse.js +27 -27
  372. package/dist/motion/solid/MotionDiv.js +13 -13
  373. package/dist/motion/solid/Presence.js +9 -9
  374. package/dist/motion/solid/index.js +4 -10
  375. package/dist/motion/system.js +9 -9
  376. package/dist/primitives/streaming/index.js +3 -5
  377. package/dist/primitives/streaming/useStreamingBuffer.js +2 -2
  378. package/dist/primitives/streaming/useStreamingSubscription.js +7 -7
  379. package/dist/primitives/virtualizer/index.js +2 -3
  380. package/dist/primitives/virtualizer/useVirtualRows.js +7 -7
  381. package/dist/purge-manifest.json +15599 -15825
  382. package/dist/styles/base/index.css +43 -43
  383. package/dist/styles/themes/dark.css +141 -141
  384. package/dist/styles/themes/light.css +143 -143
  385. package/package.json +41 -34
@@ -1,463 +1,463 @@
1
- @layer components {
2
- .drawer {
3
- position: relative;
4
- }
5
-
6
- /* -------------------------------------------------------------------------------------------------
7
- * Trigger
8
- * -----------------------------------------------------------------------------------------------*/
9
- .drawer__trigger {
10
- display: inline-flex;
11
- align-items: center;
12
- cursor: pointer;
13
- border: none;
14
- background: none;
15
- padding: 0;
16
- font: inherit;
17
- color: inherit;
18
- -webkit-tap-highlight-color: transparent;
19
- }
20
-
21
- .drawer__trigger:focus-visible {
22
- outline: 2px solid var(--color-accent);
23
- outline-offset: 2px;
24
- border-radius: var(--radius-field, 0.375rem);
25
- }
26
-
27
- /* -------------------------------------------------------------------------------------------------
28
- * Backdrop
29
- * -----------------------------------------------------------------------------------------------*/
30
- .drawer__backdrop {
31
- position: fixed;
32
- inset: 0;
33
- z-index: 50;
34
- width: 100%;
35
- height: 100vh;
36
- height: 100dvh;
37
- opacity: 1;
38
- transition: opacity 250ms cubic-bezier(0.32, 0.72, 0, 1);
39
- }
40
-
41
- .drawer__backdrop--entering {
42
- opacity: 0;
43
- }
44
-
45
- .drawer__backdrop--exiting {
46
- opacity: 0;
47
- transition-duration: 200ms;
48
- }
49
-
50
- .drawer__backdrop[data-entering="true"] {
51
- opacity: 0;
52
- }
53
-
54
- .drawer__backdrop[data-exiting="true"] {
55
- opacity: 0;
56
- transition-duration: 200ms;
57
- }
58
-
59
- .drawer__backdrop--opaque {
60
- background-color: oklch(0% 0 0 / 40%);
61
- }
62
-
63
- .drawer__backdrop--blur {
64
- background-color: oklch(0% 0 0 / 40%);
65
- backdrop-filter: blur(12px);
66
- }
67
-
68
- .drawer__backdrop--transparent {
69
- background-color: transparent;
70
- }
71
-
72
- @media (prefers-reduced-motion: reduce) {
73
- .drawer__backdrop {
74
- transition: none;
75
- }
76
- }
77
-
78
- /* -------------------------------------------------------------------------------------------------
79
- * Content — positioning wrapper
80
- * -----------------------------------------------------------------------------------------------*/
81
- .drawer__content {
82
- pointer-events: none;
83
- position: fixed;
84
- inset: 0;
85
- z-index: 50;
86
- display: flex;
87
- width: 100%;
88
- min-width: 0;
89
- height: 100vh;
90
- height: 100dvh;
91
- }
92
-
93
- .drawer__content--scroll-inside .drawer__dialog {
94
- overflow: hidden;
95
- }
96
-
97
- .drawer__content--scroll-inside .drawer__body {
98
- overflow-y: auto;
99
- }
100
-
101
- .drawer__content--scroll-outside {
102
- overflow-y: auto;
103
- }
104
-
105
- .drawer__content--scroll-outside .drawer__dialog {
106
- margin-block: auto;
107
- }
108
-
109
- .drawer__content--entering[data-placement="left"] .drawer__dialog,
110
- .drawer__content--exiting[data-placement="left"] .drawer__dialog {
111
- translate: -100% 0;
112
- }
113
-
114
- .drawer__content--entering[data-placement="right"] .drawer__dialog,
115
- .drawer__content--exiting[data-placement="right"] .drawer__dialog {
116
- translate: 100% 0;
117
- }
118
-
119
- .drawer__content--entering[data-placement="top"] .drawer__dialog,
120
- .drawer__content--exiting[data-placement="top"] .drawer__dialog {
121
- translate: 0 -100%;
122
- }
123
-
124
- .drawer__content--entering[data-placement="bottom"] .drawer__dialog,
125
- .drawer__content--exiting[data-placement="bottom"] .drawer__dialog {
126
- translate: 0 100%;
127
- }
128
-
129
- .drawer__content--bottom {
130
- align-items: flex-end;
131
- }
132
-
133
- .drawer__content--top {
134
- align-items: flex-start;
135
- }
136
-
137
- .drawer__content--left {
138
- justify-content: flex-start;
139
- }
140
-
141
- .drawer__content--right {
142
- justify-content: flex-end;
143
- }
144
-
145
- /* -------------------------------------------------------------------------------------------------
146
- * Dialog — the drawer panel
147
- * -----------------------------------------------------------------------------------------------*/
148
- .drawer__dialog {
149
- position: relative;
150
- display: flex;
151
- flex-direction: column;
152
- background-color: var(--color-base-100);
153
- color: var(--color-base-content);
154
- padding: 1.5rem;
155
- pointer-events: auto;
156
- outline: none;
157
- box-shadow:
158
- 0 10px 15px -3px oklch(0% 0 0 / 0.1),
159
- 0 4px 6px -4px oklch(0% 0 0 / 0.1);
160
-
161
- --drawer-enter-duration: 250ms;
162
- --drawer-exit-duration: 200ms;
163
- --drawer-ease: cubic-bezier(0.32, 0.72, 0, 1);
164
-
165
- will-change: translate;
166
- transition: translate var(--drawer-enter-duration) var(--drawer-ease);
167
- }
168
-
169
- .drawer__dialog--axis-side {
170
- height: 100%;
171
- border-radius: 0;
172
- }
173
-
174
- .drawer__dialog--axis-edge {
175
- width: 100%;
176
- }
177
-
178
- .drawer__dialog--side-sm {
179
- width: 18rem;
180
- max-width: 85vw;
181
- }
182
-
183
- .drawer__dialog--side-md {
184
- width: 20rem;
185
- max-width: 85vw;
186
- }
187
-
188
- .drawer__dialog--side-lg {
189
- width: 24rem;
190
- max-width: 90vw;
191
- }
192
-
193
- .drawer__dialog--side-full {
194
- width: 100vw;
195
- max-width: 100vw;
196
- }
197
-
198
- .drawer__dialog--edge-sm {
199
- max-height: min(40vh, 24rem);
200
- }
201
-
202
- .drawer__dialog--edge-md {
203
- max-height: min(60vh, 36rem);
204
- }
205
-
206
- .drawer__dialog--edge-lg {
207
- max-height: 85vh;
208
- }
209
-
210
- .drawer__dialog--edge-full {
211
- max-height: 100vh;
212
- border-radius: 0;
213
- }
214
-
215
- .drawer__dialog--entering,
216
- .drawer__dialog--exiting {
217
- transition-duration: var(--drawer-exit-duration);
218
- }
219
-
220
- [data-exiting="true"] .drawer__dialog {
221
- transition-duration: var(--drawer-exit-duration);
222
- }
223
-
224
- /* Bottom/top: full width, auto height */
225
- .drawer__dialog[data-placement="bottom"] {
226
- width: 100%;
227
- max-height: 85vh;
228
- border-radius: 1rem 1rem 0 0;
229
- }
230
-
231
- .drawer__dialog[data-placement="top"] {
232
- width: 100%;
233
- max-height: 85vh;
234
- border-radius: 0 0 1rem 1rem;
235
- }
236
-
237
- /* Left/right: fixed width, full height */
238
- .drawer__dialog[data-placement="left"],
239
- .drawer__dialog[data-placement="right"] {
240
- height: 100%;
241
- width: 20rem;
242
- max-width: 85vw;
243
- border-radius: 0;
244
- }
245
-
246
- @media (min-width: 640px) {
247
- .drawer__dialog[data-placement="left"],
248
- .drawer__dialog[data-placement="right"] {
249
- width: 24rem;
250
- }
251
- }
252
-
253
- /* -------------------------------------------------------------------------------------------------
254
- * Dialog — semantic prop: custom size (width / maxWidth)
255
- * -----------------------------------------------------------------------------------------------*/
256
- .drawer__dialog--custom-size {
257
- width: var(--drawer-dialog-width, 20rem);
258
- max-width: var(--drawer-dialog-max-width, 85vw);
259
- }
260
-
261
- @media (min-width: 640px) {
262
- .drawer__dialog--custom-size {
263
- width: var(--drawer-dialog-width, 24rem);
264
- }
265
- }
266
-
267
- /* -------------------------------------------------------------------------------------------------
268
- * Dialog — semantic prop: custom padding
269
- * -----------------------------------------------------------------------------------------------*/
270
- .drawer__dialog--custom-padding {
271
- padding: var(--drawer-dialog-padding);
272
- }
273
-
274
- /* -------------------------------------------------------------------------------------------------
275
- * Dialog — semantic prop: side (border indicator, parametric width & color)
276
- * -----------------------------------------------------------------------------------------------*/
277
- .drawer__dialog--side-left {
278
- border-right-width: var(--drawer-dialog-border-width, 1px);
279
- border-right-style: solid;
280
- border-right-color: var(--drawer-dialog-border-color, color-mix(in oklab, var(--color-base-content) 10%, transparent));
281
- }
282
-
283
- .drawer__dialog--side-right {
284
- border-left-width: var(--drawer-dialog-border-width, 1px);
285
- border-left-style: solid;
286
- border-left-color: var(--drawer-dialog-border-color, color-mix(in oklab, var(--color-base-content) 10%, transparent));
287
- }
288
-
289
- /* -------------------------------------------------------------------------------------------------
290
- * Dialog — semantic prop: bg (any CSS color via custom property)
291
- * -----------------------------------------------------------------------------------------------*/
292
- .drawer__dialog--custom-bg {
293
- background-color: var(--drawer-dialog-bg, var(--color-base-100));
294
- }
295
- /* Slide transitions — open state */
296
- .drawer__content--left .drawer__dialog,
297
- .drawer__content--right .drawer__dialog,
298
- .drawer__content--top .drawer__dialog,
299
- .drawer__content--bottom .drawer__dialog {
300
- translate: 0 0;
301
- }
302
-
303
- /* Entering/exiting slide transforms (legacy data-attrs support) */
304
- .drawer__content--left[data-entering="true"] .drawer__dialog,
305
- .drawer__content--left[data-exiting="true"] .drawer__dialog {
306
- translate: -100% 0;
307
- }
308
-
309
- .drawer__content--right[data-entering="true"] .drawer__dialog,
310
- .drawer__content--right[data-exiting="true"] .drawer__dialog {
311
- translate: 100% 0;
312
- }
313
-
314
- .drawer__content--top[data-entering="true"] .drawer__dialog,
315
- .drawer__content--top[data-exiting="true"] .drawer__dialog {
316
- translate: 0 -100%;
317
- }
318
-
319
- .drawer__content--bottom[data-entering="true"] .drawer__dialog,
320
- .drawer__content--bottom[data-exiting="true"] .drawer__dialog {
321
- translate: 0 100%;
322
- }
323
-
324
- @media (prefers-reduced-motion: reduce) {
325
- .drawer__dialog {
326
- transition: none;
327
- }
328
- }
329
-
330
- /* -------------------------------------------------------------------------------------------------
331
- * Header
332
- * -----------------------------------------------------------------------------------------------*/
333
- .drawer__header {
334
- display: flex;
335
- flex-direction: column;
336
- gap: 0.75rem;
337
- margin-bottom: 0;
338
- }
339
-
340
- /* -------------------------------------------------------------------------------------------------
341
- * Heading
342
- * -----------------------------------------------------------------------------------------------*/
343
- .drawer__heading {
344
- font-size: 1rem;
345
- font-weight: 500;
346
- line-height: 1.5;
347
- color: var(--color-base-content);
348
- margin: 0;
349
- }
350
-
351
- /* -------------------------------------------------------------------------------------------------
352
- * Body
353
- * -----------------------------------------------------------------------------------------------*/
354
- .drawer__body {
355
- min-height: 0;
356
- flex: 1;
357
- font-size: 0.875rem;
358
- line-height: 1.43;
359
- color: color-mix(in oklab, var(--color-base-content) 62%, transparent);
360
- overflow-y: auto;
361
- overscroll-behavior: contain;
362
- -webkit-overflow-scrolling: touch;
363
- }
364
-
365
- /* -------------------------------------------------------------------------------------------------
366
- * Footer
367
- * -----------------------------------------------------------------------------------------------*/
368
- .drawer__footer {
369
- display: flex;
370
- flex-direction: row;
371
- align-items: center;
372
- justify-content: flex-end;
373
- gap: 0.5rem;
374
- margin-top: 0;
375
- }
376
-
377
- /* -------------------------------------------------------------------------------------------------
378
- * Handle
379
- * -----------------------------------------------------------------------------------------------*/
380
- .drawer__handle {
381
- display: flex;
382
- align-items: center;
383
- justify-content: center;
384
- padding-bottom: 0.5rem;
385
- }
386
-
387
- .drawer__handle-bar,
388
- .drawer__handle > [data-slot="drawer-handle-bar"] {
389
- height: 0.25rem;
390
- width: 2.25rem;
391
- border-radius: 9999px;
392
- background-color: color-mix(in oklab, var(--color-base-content) 25%, transparent);
393
- }
394
-
395
- /* -------------------------------------------------------------------------------------------------
396
- * Close Trigger
397
- * -----------------------------------------------------------------------------------------------*/
398
- .drawer__close-trigger {
399
- position: absolute;
400
- top: 1rem;
401
- right: 1rem;
402
- display: inline-flex;
403
- align-items: center;
404
- justify-content: center;
405
- width: 2rem;
406
- height: 2rem;
407
- border: none;
408
- background: none;
409
- border-radius: var(--radius-field, 0.375rem);
410
- cursor: pointer;
411
- color: color-mix(in oklab, var(--color-base-content) 50%, transparent);
412
- transition: color 150ms ease, background-color 150ms ease;
413
- padding: 0;
414
- }
415
-
416
- .drawer__close-trigger:hover {
417
- color: var(--color-base-content);
418
- background-color: color-mix(in oklab, var(--color-base-content) 8%, transparent);
419
- }
420
-
421
- .drawer__close-trigger:focus-visible {
422
- outline: 2px solid var(--color-accent);
423
- outline-offset: 2px;
424
- }
425
-
426
- .drawer__close-icon {
427
- display: inline-flex;
428
- align-items: center;
429
- justify-content: center;
430
- width: 1rem;
431
- height: 1rem;
432
- pointer-events: none;
433
- }
434
-
435
- .drawer__close-icon > * {
436
- width: 100%;
437
- height: 100%;
438
- pointer-events: none;
439
- }
440
-
441
- /* -------------------------------------------------------------------------------------------------
442
- * Element spacing
443
- * -----------------------------------------------------------------------------------------------*/
444
- .drawer__header + .drawer__body {
445
- margin-top: 0.5rem;
446
- }
447
-
448
- .drawer__header + .drawer__footer {
449
- margin-top: 1.25rem;
450
- }
451
-
452
- .drawer__body + .drawer__footer {
453
- margin-top: 1.25rem;
454
- }
455
-
456
- .drawer__handle + .drawer__header {
457
- margin-top: 0;
458
- }
459
-
460
- .drawer__handle + .drawer__body {
461
- margin-top: 0;
462
- }
463
- }
1
+ @layer components {
2
+ .drawer {
3
+ position: relative;
4
+ }
5
+
6
+ /* -------------------------------------------------------------------------------------------------
7
+ * Trigger
8
+ * -----------------------------------------------------------------------------------------------*/
9
+ .drawer__trigger {
10
+ display: inline-flex;
11
+ align-items: center;
12
+ cursor: pointer;
13
+ border: none;
14
+ background: none;
15
+ padding: 0;
16
+ font: inherit;
17
+ color: inherit;
18
+ -webkit-tap-highlight-color: transparent;
19
+ }
20
+
21
+ .drawer__trigger:focus-visible {
22
+ outline: 2px solid var(--color-accent);
23
+ outline-offset: 2px;
24
+ border-radius: var(--radius-field, 0.375rem);
25
+ }
26
+
27
+ /* -------------------------------------------------------------------------------------------------
28
+ * Backdrop
29
+ * -----------------------------------------------------------------------------------------------*/
30
+ .drawer__backdrop {
31
+ position: fixed;
32
+ inset: 0;
33
+ z-index: 50;
34
+ width: 100%;
35
+ height: 100vh;
36
+ height: 100dvh;
37
+ opacity: 1;
38
+ transition: opacity 250ms cubic-bezier(0.32, 0.72, 0, 1);
39
+ }
40
+
41
+ .drawer__backdrop--entering {
42
+ opacity: 0;
43
+ }
44
+
45
+ .drawer__backdrop--exiting {
46
+ opacity: 0;
47
+ transition-duration: 200ms;
48
+ }
49
+
50
+ .drawer__backdrop[data-entering="true"] {
51
+ opacity: 0;
52
+ }
53
+
54
+ .drawer__backdrop[data-exiting="true"] {
55
+ opacity: 0;
56
+ transition-duration: 200ms;
57
+ }
58
+
59
+ .drawer__backdrop--opaque {
60
+ background-color: oklch(0% 0 0 / 40%);
61
+ }
62
+
63
+ .drawer__backdrop--blur {
64
+ background-color: oklch(0% 0 0 / 40%);
65
+ backdrop-filter: blur(12px);
66
+ }
67
+
68
+ .drawer__backdrop--transparent {
69
+ background-color: transparent;
70
+ }
71
+
72
+ @media (prefers-reduced-motion: reduce) {
73
+ .drawer__backdrop {
74
+ transition: none;
75
+ }
76
+ }
77
+
78
+ /* -------------------------------------------------------------------------------------------------
79
+ * Content — positioning wrapper
80
+ * -----------------------------------------------------------------------------------------------*/
81
+ .drawer__content {
82
+ pointer-events: none;
83
+ position: fixed;
84
+ inset: 0;
85
+ z-index: 50;
86
+ display: flex;
87
+ width: 100%;
88
+ min-width: 0;
89
+ height: 100vh;
90
+ height: 100dvh;
91
+ }
92
+
93
+ .drawer__content--scroll-inside .drawer__dialog {
94
+ overflow: hidden;
95
+ }
96
+
97
+ .drawer__content--scroll-inside .drawer__body {
98
+ overflow-y: auto;
99
+ }
100
+
101
+ .drawer__content--scroll-outside {
102
+ overflow-y: auto;
103
+ }
104
+
105
+ .drawer__content--scroll-outside .drawer__dialog {
106
+ margin-block: auto;
107
+ }
108
+
109
+ .drawer__content--entering[data-placement="left"] .drawer__dialog,
110
+ .drawer__content--exiting[data-placement="left"] .drawer__dialog {
111
+ translate: -100% 0;
112
+ }
113
+
114
+ .drawer__content--entering[data-placement="right"] .drawer__dialog,
115
+ .drawer__content--exiting[data-placement="right"] .drawer__dialog {
116
+ translate: 100% 0;
117
+ }
118
+
119
+ .drawer__content--entering[data-placement="top"] .drawer__dialog,
120
+ .drawer__content--exiting[data-placement="top"] .drawer__dialog {
121
+ translate: 0 -100%;
122
+ }
123
+
124
+ .drawer__content--entering[data-placement="bottom"] .drawer__dialog,
125
+ .drawer__content--exiting[data-placement="bottom"] .drawer__dialog {
126
+ translate: 0 100%;
127
+ }
128
+
129
+ .drawer__content--bottom {
130
+ align-items: flex-end;
131
+ }
132
+
133
+ .drawer__content--top {
134
+ align-items: flex-start;
135
+ }
136
+
137
+ .drawer__content--left {
138
+ justify-content: flex-start;
139
+ }
140
+
141
+ .drawer__content--right {
142
+ justify-content: flex-end;
143
+ }
144
+
145
+ /* -------------------------------------------------------------------------------------------------
146
+ * Dialog — the drawer panel
147
+ * -----------------------------------------------------------------------------------------------*/
148
+ .drawer__dialog {
149
+ position: relative;
150
+ display: flex;
151
+ flex-direction: column;
152
+ background-color: var(--color-base-100);
153
+ color: var(--color-base-content);
154
+ padding: 1.5rem;
155
+ pointer-events: auto;
156
+ outline: none;
157
+ box-shadow:
158
+ 0 10px 15px -3px oklch(0% 0 0 / 0.1),
159
+ 0 4px 6px -4px oklch(0% 0 0 / 0.1);
160
+
161
+ --drawer-enter-duration: 250ms;
162
+ --drawer-exit-duration: 200ms;
163
+ --drawer-ease: cubic-bezier(0.32, 0.72, 0, 1);
164
+
165
+ will-change: translate;
166
+ transition: translate var(--drawer-enter-duration) var(--drawer-ease);
167
+ }
168
+
169
+ .drawer__dialog--axis-side {
170
+ height: 100%;
171
+ border-radius: 0;
172
+ }
173
+
174
+ .drawer__dialog--axis-edge {
175
+ width: 100%;
176
+ }
177
+
178
+ .drawer__dialog--side-sm {
179
+ width: 18rem;
180
+ max-width: 85vw;
181
+ }
182
+
183
+ .drawer__dialog--side-md {
184
+ width: 20rem;
185
+ max-width: 85vw;
186
+ }
187
+
188
+ .drawer__dialog--side-lg {
189
+ width: 24rem;
190
+ max-width: 90vw;
191
+ }
192
+
193
+ .drawer__dialog--side-full {
194
+ width: 100vw;
195
+ max-width: 100vw;
196
+ }
197
+
198
+ .drawer__dialog--edge-sm {
199
+ max-height: min(40vh, 24rem);
200
+ }
201
+
202
+ .drawer__dialog--edge-md {
203
+ max-height: min(60vh, 36rem);
204
+ }
205
+
206
+ .drawer__dialog--edge-lg {
207
+ max-height: 85vh;
208
+ }
209
+
210
+ .drawer__dialog--edge-full {
211
+ max-height: 100vh;
212
+ border-radius: 0;
213
+ }
214
+
215
+ .drawer__dialog--entering,
216
+ .drawer__dialog--exiting {
217
+ transition-duration: var(--drawer-exit-duration);
218
+ }
219
+
220
+ [data-exiting="true"] .drawer__dialog {
221
+ transition-duration: var(--drawer-exit-duration);
222
+ }
223
+
224
+ /* Bottom/top: full width, auto height */
225
+ .drawer__dialog[data-placement="bottom"] {
226
+ width: 100%;
227
+ max-height: 85vh;
228
+ border-radius: 1rem 1rem 0 0;
229
+ }
230
+
231
+ .drawer__dialog[data-placement="top"] {
232
+ width: 100%;
233
+ max-height: 85vh;
234
+ border-radius: 0 0 1rem 1rem;
235
+ }
236
+
237
+ /* Left/right: fixed width, full height */
238
+ .drawer__dialog[data-placement="left"],
239
+ .drawer__dialog[data-placement="right"] {
240
+ height: 100%;
241
+ width: 20rem;
242
+ max-width: 85vw;
243
+ border-radius: 0;
244
+ }
245
+
246
+ @media (min-width: 640px) {
247
+ .drawer__dialog[data-placement="left"],
248
+ .drawer__dialog[data-placement="right"] {
249
+ width: 24rem;
250
+ }
251
+ }
252
+
253
+ /* -------------------------------------------------------------------------------------------------
254
+ * Dialog — semantic prop: custom size (width / maxWidth)
255
+ * -----------------------------------------------------------------------------------------------*/
256
+ .drawer__dialog--custom-size {
257
+ width: var(--drawer-dialog-width, 20rem);
258
+ max-width: var(--drawer-dialog-max-width, 85vw);
259
+ }
260
+
261
+ @media (min-width: 640px) {
262
+ .drawer__dialog--custom-size {
263
+ width: var(--drawer-dialog-width, 24rem);
264
+ }
265
+ }
266
+
267
+ /* -------------------------------------------------------------------------------------------------
268
+ * Dialog — semantic prop: custom padding
269
+ * -----------------------------------------------------------------------------------------------*/
270
+ .drawer__dialog--custom-padding {
271
+ padding: var(--drawer-dialog-padding);
272
+ }
273
+
274
+ /* -------------------------------------------------------------------------------------------------
275
+ * Dialog — semantic prop: side (border indicator, parametric width & color)
276
+ * -----------------------------------------------------------------------------------------------*/
277
+ .drawer__dialog--side-left {
278
+ border-right-width: var(--drawer-dialog-border-width, 1px);
279
+ border-right-style: solid;
280
+ border-right-color: var(--drawer-dialog-border-color, color-mix(in oklab, var(--color-base-content) 10%, transparent));
281
+ }
282
+
283
+ .drawer__dialog--side-right {
284
+ border-left-width: var(--drawer-dialog-border-width, 1px);
285
+ border-left-style: solid;
286
+ border-left-color: var(--drawer-dialog-border-color, color-mix(in oklab, var(--color-base-content) 10%, transparent));
287
+ }
288
+
289
+ /* -------------------------------------------------------------------------------------------------
290
+ * Dialog — semantic prop: bg (any CSS color via custom property)
291
+ * -----------------------------------------------------------------------------------------------*/
292
+ .drawer__dialog--custom-bg {
293
+ background-color: var(--drawer-dialog-bg, var(--color-base-100));
294
+ }
295
+ /* Slide transitions — open state */
296
+ .drawer__content--left .drawer__dialog,
297
+ .drawer__content--right .drawer__dialog,
298
+ .drawer__content--top .drawer__dialog,
299
+ .drawer__content--bottom .drawer__dialog {
300
+ translate: 0 0;
301
+ }
302
+
303
+ /* Entering/exiting slide transforms (legacy data-attrs support) */
304
+ .drawer__content--left[data-entering="true"] .drawer__dialog,
305
+ .drawer__content--left[data-exiting="true"] .drawer__dialog {
306
+ translate: -100% 0;
307
+ }
308
+
309
+ .drawer__content--right[data-entering="true"] .drawer__dialog,
310
+ .drawer__content--right[data-exiting="true"] .drawer__dialog {
311
+ translate: 100% 0;
312
+ }
313
+
314
+ .drawer__content--top[data-entering="true"] .drawer__dialog,
315
+ .drawer__content--top[data-exiting="true"] .drawer__dialog {
316
+ translate: 0 -100%;
317
+ }
318
+
319
+ .drawer__content--bottom[data-entering="true"] .drawer__dialog,
320
+ .drawer__content--bottom[data-exiting="true"] .drawer__dialog {
321
+ translate: 0 100%;
322
+ }
323
+
324
+ @media (prefers-reduced-motion: reduce) {
325
+ .drawer__dialog {
326
+ transition: none;
327
+ }
328
+ }
329
+
330
+ /* -------------------------------------------------------------------------------------------------
331
+ * Header
332
+ * -----------------------------------------------------------------------------------------------*/
333
+ .drawer__header {
334
+ display: flex;
335
+ flex-direction: column;
336
+ gap: 0.75rem;
337
+ margin-bottom: 0;
338
+ }
339
+
340
+ /* -------------------------------------------------------------------------------------------------
341
+ * Heading
342
+ * -----------------------------------------------------------------------------------------------*/
343
+ .drawer__heading {
344
+ font-size: 1rem;
345
+ font-weight: 500;
346
+ line-height: 1.5;
347
+ color: var(--color-base-content);
348
+ margin: 0;
349
+ }
350
+
351
+ /* -------------------------------------------------------------------------------------------------
352
+ * Body
353
+ * -----------------------------------------------------------------------------------------------*/
354
+ .drawer__body {
355
+ min-height: 0;
356
+ flex: 1;
357
+ font-size: 0.875rem;
358
+ line-height: 1.43;
359
+ color: color-mix(in oklab, var(--color-base-content) 62%, transparent);
360
+ overflow-y: auto;
361
+ overscroll-behavior: contain;
362
+ -webkit-overflow-scrolling: touch;
363
+ }
364
+
365
+ /* -------------------------------------------------------------------------------------------------
366
+ * Footer
367
+ * -----------------------------------------------------------------------------------------------*/
368
+ .drawer__footer {
369
+ display: flex;
370
+ flex-direction: row;
371
+ align-items: center;
372
+ justify-content: flex-end;
373
+ gap: 0.5rem;
374
+ margin-top: 0;
375
+ }
376
+
377
+ /* -------------------------------------------------------------------------------------------------
378
+ * Handle
379
+ * -----------------------------------------------------------------------------------------------*/
380
+ .drawer__handle {
381
+ display: flex;
382
+ align-items: center;
383
+ justify-content: center;
384
+ padding-bottom: 0.5rem;
385
+ }
386
+
387
+ .drawer__handle-bar,
388
+ .drawer__handle > [data-slot="drawer-handle-bar"] {
389
+ height: 0.25rem;
390
+ width: 2.25rem;
391
+ border-radius: 9999px;
392
+ background-color: color-mix(in oklab, var(--color-base-content) 25%, transparent);
393
+ }
394
+
395
+ /* -------------------------------------------------------------------------------------------------
396
+ * Close Trigger
397
+ * -----------------------------------------------------------------------------------------------*/
398
+ .drawer__close-trigger {
399
+ position: absolute;
400
+ top: 1rem;
401
+ right: 1rem;
402
+ display: inline-flex;
403
+ align-items: center;
404
+ justify-content: center;
405
+ width: 2rem;
406
+ height: 2rem;
407
+ border: none;
408
+ background: none;
409
+ border-radius: var(--radius-field, 0.375rem);
410
+ cursor: pointer;
411
+ color: color-mix(in oklab, var(--color-base-content) 50%, transparent);
412
+ transition: color 150ms ease, background-color 150ms ease;
413
+ padding: 0;
414
+ }
415
+
416
+ .drawer__close-trigger:hover {
417
+ color: var(--color-base-content);
418
+ background-color: color-mix(in oklab, var(--color-base-content) 8%, transparent);
419
+ }
420
+
421
+ .drawer__close-trigger:focus-visible {
422
+ outline: 2px solid var(--color-accent);
423
+ outline-offset: 2px;
424
+ }
425
+
426
+ .drawer__close-icon {
427
+ display: inline-flex;
428
+ align-items: center;
429
+ justify-content: center;
430
+ width: 1rem;
431
+ height: 1rem;
432
+ pointer-events: none;
433
+ }
434
+
435
+ .drawer__close-icon > * {
436
+ width: 100%;
437
+ height: 100%;
438
+ pointer-events: none;
439
+ }
440
+
441
+ /* -------------------------------------------------------------------------------------------------
442
+ * Element spacing
443
+ * -----------------------------------------------------------------------------------------------*/
444
+ .drawer__header + .drawer__body {
445
+ margin-top: 0.5rem;
446
+ }
447
+
448
+ .drawer__header + .drawer__footer {
449
+ margin-top: 1.25rem;
450
+ }
451
+
452
+ .drawer__body + .drawer__footer {
453
+ margin-top: 1.25rem;
454
+ }
455
+
456
+ .drawer__handle + .drawer__header {
457
+ margin-top: 0;
458
+ }
459
+
460
+ .drawer__handle + .drawer__body {
461
+ margin-top: 0;
462
+ }
463
+ }