@windmorph/react 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (761) hide show
  1. package/LICENSE +21 -0
  2. package/NOTICE +23 -0
  3. package/README.md +149 -2
  4. package/dist/cli.d.ts +1 -0
  5. package/dist/cli.js +112 -0
  6. package/dist/cli.js.map +1 -0
  7. package/dist/components/app-bar/AppBarItems.js +23 -0
  8. package/dist/components/app-bar/AppBarItems.js.map +1 -0
  9. package/dist/components/app-bar/TopAppBar.d.ts +89 -0
  10. package/dist/components/app-bar/TopAppBar.js +103 -0
  11. package/dist/components/app-bar/TopAppBar.js.map +1 -0
  12. package/dist/components/app-bar/app-bar-styles.d.ts +280 -0
  13. package/dist/components/app-bar/app-bar-styles.js +142 -0
  14. package/dist/components/app-bar/app-bar-styles.js.map +1 -0
  15. package/dist/components/app-bar/app-bar-tokens.d.ts +7 -0
  16. package/dist/components/app-bar/app-bar-tokens.js +64 -0
  17. package/dist/components/app-bar/app-bar-tokens.js.map +1 -0
  18. package/dist/components/app-bar/use-app-bar-scroll.d.ts +6 -0
  19. package/dist/components/app-bar/use-app-bar-scroll.js +139 -0
  20. package/dist/components/app-bar/use-app-bar-scroll.js.map +1 -0
  21. package/dist/components/autocomplete/Autocomplete.d.ts +142 -0
  22. package/dist/components/autocomplete/Autocomplete.js +284 -0
  23. package/dist/components/autocomplete/Autocomplete.js.map +1 -0
  24. package/dist/components/badge/Badge.d.ts +71 -0
  25. package/dist/components/badge/Badge.js +72 -0
  26. package/dist/components/badge/Badge.js.map +1 -0
  27. package/dist/components/badge/badge-styles.d.ts +100 -0
  28. package/dist/components/badge/badge-styles.js +43 -0
  29. package/dist/components/badge/badge-styles.js.map +1 -0
  30. package/dist/components/badge/badge-tokens.d.ts +7 -0
  31. package/dist/components/badge/badge-tokens.js +40 -0
  32. package/dist/components/badge/badge-tokens.js.map +1 -0
  33. package/dist/components/button/Button.d.ts +91 -0
  34. package/dist/components/button/Button.js +96 -0
  35. package/dist/components/button/Button.js.map +1 -0
  36. package/dist/components/button/ButtonContext.d.ts +30 -0
  37. package/dist/components/button/ButtonContext.js +18 -0
  38. package/dist/components/button/ButtonContext.js.map +1 -0
  39. package/dist/components/button/DensityZeroButtons.js +25 -0
  40. package/dist/components/button/DensityZeroButtons.js.map +1 -0
  41. package/dist/components/button/button-pending.d.ts +10 -0
  42. package/dist/components/button/button-pending.js +166 -0
  43. package/dist/components/button/button-pending.js.map +1 -0
  44. package/dist/components/button/button-styles.d.ts +216 -0
  45. package/dist/components/button/button-styles.js +199 -0
  46. package/dist/components/button/button-styles.js.map +1 -0
  47. package/dist/components/button/button-tokens.d.ts +10 -0
  48. package/dist/components/button/button-tokens.js +257 -0
  49. package/dist/components/button/button-tokens.js.map +1 -0
  50. package/dist/components/button/connected-shapes.js +152 -0
  51. package/dist/components/button/connected-shapes.js.map +1 -0
  52. package/dist/components/card/Card.d.ts +60 -0
  53. package/dist/components/card/Card.js +69 -0
  54. package/dist/components/card/Card.js.map +1 -0
  55. package/dist/components/card/card-styles.d.ts +42 -0
  56. package/dist/components/card/card-styles.js +64 -0
  57. package/dist/components/card/card-styles.js.map +1 -0
  58. package/dist/components/card/card-tokens.d.ts +7 -0
  59. package/dist/components/card/card-tokens.js +84 -0
  60. package/dist/components/card/card-tokens.js.map +1 -0
  61. package/dist/components/carousel/Carousel.d.ts +124 -0
  62. package/dist/components/carousel/Carousel.js +387 -0
  63. package/dist/components/carousel/Carousel.js.map +1 -0
  64. package/dist/components/carousel/carousel-keylines.js +486 -0
  65. package/dist/components/carousel/carousel-keylines.js.map +1 -0
  66. package/dist/components/carousel/carousel-press-area.js +35 -0
  67. package/dist/components/carousel/carousel-press-area.js.map +1 -0
  68. package/dist/components/carousel/carousel-styles.d.ts +188 -0
  69. package/dist/components/carousel/carousel-styles.js +116 -0
  70. package/dist/components/carousel/carousel-styles.js.map +1 -0
  71. package/dist/components/carousel/carousel-tokens.d.ts +7 -0
  72. package/dist/components/carousel/carousel-tokens.js +18 -0
  73. package/dist/components/carousel/carousel-tokens.js.map +1 -0
  74. package/dist/components/checkbox/Checkbox.d.ts +78 -0
  75. package/dist/components/checkbox/Checkbox.js +77 -0
  76. package/dist/components/checkbox/Checkbox.js.map +1 -0
  77. package/dist/components/checkbox/checkbox-box.js +34 -0
  78. package/dist/components/checkbox/checkbox-box.js.map +1 -0
  79. package/dist/components/checkbox/checkbox-styles.d.ts +100 -0
  80. package/dist/components/checkbox/checkbox-styles.js +54 -0
  81. package/dist/components/checkbox/checkbox-styles.js.map +1 -0
  82. package/dist/components/checkbox/checkbox-tokens.d.ts +7 -0
  83. package/dist/components/checkbox/checkbox-tokens.js +41 -0
  84. package/dist/components/checkbox/checkbox-tokens.js.map +1 -0
  85. package/dist/components/chip/Chip.d.ts +171 -0
  86. package/dist/components/chip/Chip.js +348 -0
  87. package/dist/components/chip/Chip.js.map +1 -0
  88. package/dist/components/chip/ChipSet.d.ts +70 -0
  89. package/dist/components/chip/ChipSet.js +198 -0
  90. package/dist/components/chip/ChipSet.js.map +1 -0
  91. package/dist/components/chip/chip-styles.d.ts +263 -0
  92. package/dist/components/chip/chip-styles.js +360 -0
  93. package/dist/components/chip/chip-styles.js.map +1 -0
  94. package/dist/components/chip/chip-tokens.d.ts +13 -0
  95. package/dist/components/chip/chip-tokens.js +185 -0
  96. package/dist/components/chip/chip-tokens.js.map +1 -0
  97. package/dist/components/date-picker/CalendarGrid.js +94 -0
  98. package/dist/components/date-picker/CalendarGrid.js.map +1 -0
  99. package/dist/components/date-picker/CompactDateDialog.js +63 -0
  100. package/dist/components/date-picker/CompactDateDialog.js.map +1 -0
  101. package/dist/components/date-picker/DateField.d.ts +161 -0
  102. package/dist/components/date-picker/DateField.js +393 -0
  103. package/dist/components/date-picker/DateField.js.map +1 -0
  104. package/dist/components/date-picker/DateInput.d.ts +20 -0
  105. package/dist/components/date-picker/DateInput.js +99 -0
  106. package/dist/components/date-picker/DateInput.js.map +1 -0
  107. package/dist/components/date-picker/DatePicker.d.ts +165 -0
  108. package/dist/components/date-picker/DatePicker.js +492 -0
  109. package/dist/components/date-picker/DatePicker.js.map +1 -0
  110. package/dist/components/date-picker/PickerDialog.d.ts +121 -0
  111. package/dist/components/date-picker/PickerDialog.js +161 -0
  112. package/dist/components/date-picker/PickerDialog.js.map +1 -0
  113. package/dist/components/date-picker/calendar-parts.js +141 -0
  114. package/dist/components/date-picker/calendar-parts.js.map +1 -0
  115. package/dist/components/date-picker/date-format.js +72 -0
  116. package/dist/components/date-picker/date-format.js.map +1 -0
  117. package/dist/components/date-picker/date-picker-styles.d.ts +247 -0
  118. package/dist/components/date-picker/date-picker-styles.js +163 -0
  119. package/dist/components/date-picker/date-picker-styles.js.map +1 -0
  120. package/dist/components/date-picker/date-picker-tokens.d.ts +7 -0
  121. package/dist/components/date-picker/date-picker-tokens.js +104 -0
  122. package/dist/components/date-picker/date-picker-tokens.js.map +1 -0
  123. package/dist/components/date-picker/picker-dialog-context.js +8 -0
  124. package/dist/components/date-picker/picker-dialog-context.js.map +1 -0
  125. package/dist/components/date-picker/picker-dialog-styles.d.ts +95 -0
  126. package/dist/components/date-picker/picker-dialog-styles.js +57 -0
  127. package/dist/components/date-picker/picker-dialog-styles.js.map +1 -0
  128. package/dist/components/date-picker/picker-icons.js +24 -0
  129. package/dist/components/date-picker/picker-icons.js.map +1 -0
  130. package/dist/components/date-picker/use-media-query.js +21 -0
  131. package/dist/components/date-picker/use-media-query.js.map +1 -0
  132. package/dist/components/date-picker/use-size-transform.js +62 -0
  133. package/dist/components/date-picker/use-size-transform.js.map +1 -0
  134. package/dist/components/date-picker/use-view-exit.js +68 -0
  135. package/dist/components/date-picker/use-view-exit.js.map +1 -0
  136. package/dist/components/dialog/Dialog.d.ts +267 -0
  137. package/dist/components/dialog/Dialog.js +521 -0
  138. package/dist/components/dialog/Dialog.js.map +1 -0
  139. package/dist/components/dialog/dialog-styles.d.ts +335 -0
  140. package/dist/components/dialog/dialog-styles.js +377 -0
  141. package/dist/components/dialog/dialog-styles.js.map +1 -0
  142. package/dist/components/dialog/dialog-tokens.d.ts +7 -0
  143. package/dist/components/dialog/dialog-tokens.js +57 -0
  144. package/dist/components/dialog/dialog-tokens.js.map +1 -0
  145. package/dist/components/divider/Divider.d.ts +59 -0
  146. package/dist/components/divider/Divider.js +53 -0
  147. package/dist/components/divider/Divider.js.map +1 -0
  148. package/dist/components/divider/divider-styles.d.ts +90 -0
  149. package/dist/components/divider/divider-styles.js +66 -0
  150. package/dist/components/divider/divider-styles.js.map +1 -0
  151. package/dist/components/divider/divider-tokens.d.ts +7 -0
  152. package/dist/components/divider/divider-tokens.js +16 -0
  153. package/dist/components/divider/divider-tokens.js.map +1 -0
  154. package/dist/components/fab/Fab.d.ts +130 -0
  155. package/dist/components/fab/Fab.js +137 -0
  156. package/dist/components/fab/Fab.js.map +1 -0
  157. package/dist/components/fab/FabTooltip.js +36 -0
  158. package/dist/components/fab/FabTooltip.js.map +1 -0
  159. package/dist/components/fab/fab-styles.d.ts +286 -0
  160. package/dist/components/fab/fab-styles.js +131 -0
  161. package/dist/components/fab/fab-styles.js.map +1 -0
  162. package/dist/components/fab/fab-tokens.d.ts +12 -0
  163. package/dist/components/fab/fab-tokens.js +105 -0
  164. package/dist/components/fab/fab-tokens.js.map +1 -0
  165. package/dist/components/fab-menu/FabMenu.d.ts +156 -0
  166. package/dist/components/fab-menu/FabMenu.js +291 -0
  167. package/dist/components/fab-menu/FabMenu.js.map +1 -0
  168. package/dist/components/fab-menu/fab-menu-stagger.js +51 -0
  169. package/dist/components/fab-menu/fab-menu-stagger.js.map +1 -0
  170. package/dist/components/fab-menu/fab-menu-styles.d.ts +166 -0
  171. package/dist/components/fab-menu/fab-menu-styles.js +107 -0
  172. package/dist/components/fab-menu/fab-menu-styles.js.map +1 -0
  173. package/dist/components/fab-menu/fab-menu-tokens.d.ts +7 -0
  174. package/dist/components/fab-menu/fab-menu-tokens.js +120 -0
  175. package/dist/components/fab-menu/fab-menu-tokens.js.map +1 -0
  176. package/dist/components/icon-button/IconButton.d.ts +125 -0
  177. package/dist/components/icon-button/IconButton.js +112 -0
  178. package/dist/components/icon-button/IconButton.js.map +1 -0
  179. package/dist/components/icon-button/icon-button-styles.d.ts +217 -0
  180. package/dist/components/icon-button/icon-button-styles.js +244 -0
  181. package/dist/components/icon-button/icon-button-styles.js.map +1 -0
  182. package/dist/components/icon-button/icon-button-tokens.d.ts +11 -0
  183. package/dist/components/icon-button/icon-button-tokens.js +215 -0
  184. package/dist/components/icon-button/icon-button-tokens.js.map +1 -0
  185. package/dist/components/list/List.d.ts +265 -0
  186. package/dist/components/list/List.js +1386 -0
  187. package/dist/components/list/List.js.map +1 -0
  188. package/dist/components/list/ListMedia.d.ts +88 -0
  189. package/dist/components/list/ListMedia.js +132 -0
  190. package/dist/components/list/ListMedia.js.map +1 -0
  191. package/dist/components/list/list-styles.d.ts +375 -0
  192. package/dist/components/list/list-styles.js +220 -0
  193. package/dist/components/list/list-styles.js.map +1 -0
  194. package/dist/components/list/list-tokens.d.ts +7 -0
  195. package/dist/components/list/list-tokens.js +92 -0
  196. package/dist/components/list/list-tokens.js.map +1 -0
  197. package/dist/components/loading-indicator/LoadingIndicator.d.ts +65 -0
  198. package/dist/components/loading-indicator/LoadingIndicator.js +92 -0
  199. package/dist/components/loading-indicator/LoadingIndicator.js.map +1 -0
  200. package/dist/components/loading-indicator/lazy-loading-indicator.js +25 -0
  201. package/dist/components/loading-indicator/lazy-loading-indicator.js.map +1 -0
  202. package/dist/components/loading-indicator/loading-indicator-frames.js +149 -0
  203. package/dist/components/loading-indicator/loading-indicator-frames.js.map +1 -0
  204. package/dist/components/loading-indicator/loading-indicator-styles.d.ts +36 -0
  205. package/dist/components/loading-indicator/loading-indicator-styles.js +22 -0
  206. package/dist/components/loading-indicator/loading-indicator-styles.js.map +1 -0
  207. package/dist/components/loading-indicator/loading-indicator-tokens.d.ts +7 -0
  208. package/dist/components/loading-indicator/loading-indicator-tokens.js +44 -0
  209. package/dist/components/loading-indicator/loading-indicator-tokens.js.map +1 -0
  210. package/dist/components/menu/Menu.d.ts +215 -0
  211. package/dist/components/menu/Menu.js +715 -0
  212. package/dist/components/menu/Menu.js.map +1 -0
  213. package/dist/components/menu/menu-styles.d.ts +354 -0
  214. package/dist/components/menu/menu-styles.js +219 -0
  215. package/dist/components/menu/menu-styles.js.map +1 -0
  216. package/dist/components/menu/menu-tokens.d.ts +7 -0
  217. package/dist/components/menu/menu-tokens.js +93 -0
  218. package/dist/components/menu/menu-tokens.js.map +1 -0
  219. package/dist/components/menu/menu-trigger.d.ts +51 -0
  220. package/dist/components/menu/menu-trigger.js +100 -0
  221. package/dist/components/menu/menu-trigger.js.map +1 -0
  222. package/dist/components/menu/use-reveal-entering.js +42 -0
  223. package/dist/components/menu/use-reveal-entering.js.map +1 -0
  224. package/dist/components/navigation/NavItem.d.ts +54 -0
  225. package/dist/components/navigation/NavItem.js +182 -0
  226. package/dist/components/navigation/NavItem.js.map +1 -0
  227. package/dist/components/navigation/NavigationBar.d.ts +64 -0
  228. package/dist/components/navigation/NavigationBar.js +121 -0
  229. package/dist/components/navigation/NavigationBar.js.map +1 -0
  230. package/dist/components/navigation/NavigationRail.d.ts +91 -0
  231. package/dist/components/navigation/NavigationRail.js +285 -0
  232. package/dist/components/navigation/NavigationRail.js.map +1 -0
  233. package/dist/components/navigation/nav-item-styles.d.ts +190 -0
  234. package/dist/components/navigation/nav-item-styles.js +123 -0
  235. package/dist/components/navigation/nav-item-styles.js.map +1 -0
  236. package/dist/components/navigation/navigation-styles.d.ts +239 -0
  237. package/dist/components/navigation/navigation-styles.js +134 -0
  238. package/dist/components/navigation/navigation-styles.js.map +1 -0
  239. package/dist/components/navigation/navigation-tokens.d.ts +9 -0
  240. package/dist/components/navigation/navigation-tokens.js +114 -0
  241. package/dist/components/navigation/navigation-tokens.js.map +1 -0
  242. package/dist/components/navigation/use-hide-on-scroll.js +115 -0
  243. package/dist/components/navigation/use-hide-on-scroll.js.map +1 -0
  244. package/dist/components/navigation/use-item-arrow-keys.js +37 -0
  245. package/dist/components/navigation/use-item-arrow-keys.js.map +1 -0
  246. package/dist/components/navigation/use-rail-item-morph.js +61 -0
  247. package/dist/components/navigation/use-rail-item-morph.js.map +1 -0
  248. package/dist/components/progress/ProgressIndicator.d.ts +95 -0
  249. package/dist/components/progress/ProgressIndicator.js +426 -0
  250. package/dist/components/progress/ProgressIndicator.js.map +1 -0
  251. package/dist/components/progress/progress-geometry.js +285 -0
  252. package/dist/components/progress/progress-geometry.js.map +1 -0
  253. package/dist/components/progress/progress-styles.d.ts +81 -0
  254. package/dist/components/progress/progress-styles.js +43 -0
  255. package/dist/components/progress/progress-styles.js.map +1 -0
  256. package/dist/components/progress/progress-tokens.d.ts +7 -0
  257. package/dist/components/progress/progress-tokens.js +39 -0
  258. package/dist/components/progress/progress-tokens.js.map +1 -0
  259. package/dist/components/pull-to-refresh/PullToRefresh.d.ts +94 -0
  260. package/dist/components/pull-to-refresh/PullToRefresh.js +395 -0
  261. package/dist/components/pull-to-refresh/PullToRefresh.js.map +1 -0
  262. package/dist/components/pull-to-refresh/pull-to-refresh-math.js +37 -0
  263. package/dist/components/pull-to-refresh/pull-to-refresh-math.js.map +1 -0
  264. package/dist/components/pull-to-refresh/pull-to-refresh-styles.d.ts +53 -0
  265. package/dist/components/pull-to-refresh/pull-to-refresh-styles.js +14 -0
  266. package/dist/components/pull-to-refresh/pull-to-refresh-styles.js.map +1 -0
  267. package/dist/components/radio/RadioGroup.d.ts +121 -0
  268. package/dist/components/radio/RadioGroup.js +163 -0
  269. package/dist/components/radio/RadioGroup.js.map +1 -0
  270. package/dist/components/radio/radio-ring.js +21 -0
  271. package/dist/components/radio/radio-ring.js.map +1 -0
  272. package/dist/components/radio/radio-styles.d.ts +155 -0
  273. package/dist/components/radio/radio-styles.js +60 -0
  274. package/dist/components/radio/radio-styles.js.map +1 -0
  275. package/dist/components/radio/radio-tokens.d.ts +7 -0
  276. package/dist/components/radio/radio-tokens.js +31 -0
  277. package/dist/components/radio/radio-tokens.js.map +1 -0
  278. package/dist/components/search/SearchAppBar.d.ts +45 -0
  279. package/dist/components/search/SearchAppBar.js +61 -0
  280. package/dist/components/search/SearchAppBar.js.map +1 -0
  281. package/dist/components/search/SearchBar.d.ts +147 -0
  282. package/dist/components/search/SearchBar.js +412 -0
  283. package/dist/components/search/SearchBar.js.map +1 -0
  284. package/dist/components/search/search-styles.d.ts +243 -0
  285. package/dist/components/search/search-styles.js +143 -0
  286. package/dist/components/search/search-styles.js.map +1 -0
  287. package/dist/components/search/search-tokens.d.ts +9 -0
  288. package/dist/components/search/search-tokens.js +70 -0
  289. package/dist/components/search/search-tokens.js.map +1 -0
  290. package/dist/components/select/Select.d.ts +187 -0
  291. package/dist/components/select/Select.js +319 -0
  292. package/dist/components/select/Select.js.map +1 -0
  293. package/dist/components/select/field-shell.d.ts +29 -0
  294. package/dist/components/select/field-shell.js +135 -0
  295. package/dist/components/select/field-shell.js.map +1 -0
  296. package/dist/components/select/option-list.d.ts +81 -0
  297. package/dist/components/select/option-list.js +291 -0
  298. package/dist/components/select/option-list.js.map +1 -0
  299. package/dist/components/select/search-list.js +135 -0
  300. package/dist/components/select/search-list.js.map +1 -0
  301. package/dist/components/select/selection-cap.js +30 -0
  302. package/dist/components/select/selection-cap.js.map +1 -0
  303. package/dist/components/sheet/BottomSheet.d.ts +154 -0
  304. package/dist/components/sheet/BottomSheet.js +442 -0
  305. package/dist/components/sheet/BottomSheet.js.map +1 -0
  306. package/dist/components/sheet/SheetTrigger.d.ts +25 -0
  307. package/dist/components/sheet/SheetTrigger.js +46 -0
  308. package/dist/components/sheet/SheetTrigger.js.map +1 -0
  309. package/dist/components/sheet/SideSheet.d.ts +139 -0
  310. package/dist/components/sheet/SideSheet.js +289 -0
  311. package/dist/components/sheet/SideSheet.js.map +1 -0
  312. package/dist/components/sheet/bottom-sheet-gesture.js +30 -0
  313. package/dist/components/sheet/bottom-sheet-gesture.js.map +1 -0
  314. package/dist/components/sheet/lazy-bottom-sheet.js +33 -0
  315. package/dist/components/sheet/lazy-bottom-sheet.js.map +1 -0
  316. package/dist/components/sheet/sheet-gesture.js +48 -0
  317. package/dist/components/sheet/sheet-gesture.js.map +1 -0
  318. package/dist/components/sheet/sheet-icons.js +31 -0
  319. package/dist/components/sheet/sheet-icons.js.map +1 -0
  320. package/dist/components/sheet/sheet-settle.js +58 -0
  321. package/dist/components/sheet/sheet-settle.js.map +1 -0
  322. package/dist/components/sheet/sheet-styles.d.ts +312 -0
  323. package/dist/components/sheet/sheet-styles.js +229 -0
  324. package/dist/components/sheet/sheet-styles.js.map +1 -0
  325. package/dist/components/sheet/sheet-tokens.d.ts +12 -0
  326. package/dist/components/sheet/sheet-tokens.js +115 -0
  327. package/dist/components/sheet/sheet-tokens.js.map +1 -0
  328. package/dist/components/sheet/side-swipe-gesture.js +22 -0
  329. package/dist/components/sheet/side-swipe-gesture.js.map +1 -0
  330. package/dist/components/sheet/use-peek-inert.js +32 -0
  331. package/dist/components/sheet/use-peek-inert.js.map +1 -0
  332. package/dist/components/sheet/use-side-swipe.js +174 -0
  333. package/dist/components/sheet/use-side-swipe.js.map +1 -0
  334. package/dist/components/slider/Slider.d.ts +129 -0
  335. package/dist/components/slider/Slider.js +295 -0
  336. package/dist/components/slider/Slider.js.map +1 -0
  337. package/dist/components/slider/slider-geometry.js +138 -0
  338. package/dist/components/slider/slider-geometry.js.map +1 -0
  339. package/dist/components/slider/slider-styles.d.ts +133 -0
  340. package/dist/components/slider/slider-styles.js +97 -0
  341. package/dist/components/slider/slider-styles.js.map +1 -0
  342. package/dist/components/slider/slider-tokens.d.ts +7 -0
  343. package/dist/components/slider/slider-tokens.js +66 -0
  344. package/dist/components/slider/slider-tokens.js.map +1 -0
  345. package/dist/components/slider/use-touch-track.js +138 -0
  346. package/dist/components/slider/use-touch-track.js.map +1 -0
  347. package/dist/components/snackbar/Snackbar.d.ts +96 -0
  348. package/dist/components/snackbar/Snackbar.js +253 -0
  349. package/dist/components/snackbar/Snackbar.js.map +1 -0
  350. package/dist/components/snackbar/snackbar-state.d.ts +58 -0
  351. package/dist/components/snackbar/snackbar-state.js +73 -0
  352. package/dist/components/snackbar/snackbar-state.js.map +1 -0
  353. package/dist/components/snackbar/snackbar-styles.d.ts +109 -0
  354. package/dist/components/snackbar/snackbar-styles.js +67 -0
  355. package/dist/components/snackbar/snackbar-styles.js.map +1 -0
  356. package/dist/components/snackbar/snackbar-tokens.d.ts +7 -0
  357. package/dist/components/snackbar/snackbar-tokens.js +54 -0
  358. package/dist/components/snackbar/snackbar-tokens.js.map +1 -0
  359. package/dist/components/split-button/SplitButton.d.ts +109 -0
  360. package/dist/components/split-button/SplitButton.js +195 -0
  361. package/dist/components/split-button/SplitButton.js.map +1 -0
  362. package/dist/components/split-button/split-button-styles.d.ts +214 -0
  363. package/dist/components/split-button/split-button-styles.js +164 -0
  364. package/dist/components/split-button/split-button-styles.js.map +1 -0
  365. package/dist/components/split-button/split-button-tokens.d.ts +7 -0
  366. package/dist/components/split-button/split-button-tokens.js +36 -0
  367. package/dist/components/split-button/split-button-tokens.js.map +1 -0
  368. package/dist/components/switch/Switch.d.ts +82 -0
  369. package/dist/components/switch/Switch.js +165 -0
  370. package/dist/components/switch/Switch.js.map +1 -0
  371. package/dist/components/switch/switch-styles.d.ts +96 -0
  372. package/dist/components/switch/switch-styles.js +68 -0
  373. package/dist/components/switch/switch-styles.js.map +1 -0
  374. package/dist/components/switch/switch-thumb.js +41 -0
  375. package/dist/components/switch/switch-thumb.js.map +1 -0
  376. package/dist/components/switch/switch-tokens.d.ts +7 -0
  377. package/dist/components/switch/switch-tokens.js +78 -0
  378. package/dist/components/switch/switch-tokens.js.map +1 -0
  379. package/dist/components/tabs/Tabs.d.ts +120 -0
  380. package/dist/components/tabs/Tabs.js +346 -0
  381. package/dist/components/tabs/Tabs.js.map +1 -0
  382. package/dist/components/tabs/tabs-styles.d.ts +198 -0
  383. package/dist/components/tabs/tabs-styles.js +99 -0
  384. package/dist/components/tabs/tabs-styles.js.map +1 -0
  385. package/dist/components/tabs/tabs-tokens.d.ts +7 -0
  386. package/dist/components/tabs/tabs-tokens.js +121 -0
  387. package/dist/components/tabs/tabs-tokens.js.map +1 -0
  388. package/dist/components/text-field/TextField.d.ts +175 -0
  389. package/dist/components/text-field/TextField.js +250 -0
  390. package/dist/components/text-field/TextField.js.map +1 -0
  391. package/dist/components/text-field/text-field-styles.d.ts +252 -0
  392. package/dist/components/text-field/text-field-styles.js +209 -0
  393. package/dist/components/text-field/text-field-styles.js.map +1 -0
  394. package/dist/components/text-field/text-field-tokens.d.ts +7 -0
  395. package/dist/components/text-field/text-field-tokens.js +177 -0
  396. package/dist/components/text-field/text-field-tokens.js.map +1 -0
  397. package/dist/components/time-picker/TimePicker.d.ts +142 -0
  398. package/dist/components/time-picker/TimePicker.js +700 -0
  399. package/dist/components/time-picker/TimePicker.js.map +1 -0
  400. package/dist/components/time-picker/time-picker-styles.d.ts +175 -0
  401. package/dist/components/time-picker/time-picker-styles.js +112 -0
  402. package/dist/components/time-picker/time-picker-styles.js.map +1 -0
  403. package/dist/components/time-picker/time-picker-tokens.d.ts +7 -0
  404. package/dist/components/time-picker/time-picker-tokens.js +86 -0
  405. package/dist/components/time-picker/time-picker-tokens.js.map +1 -0
  406. package/dist/components/toolbar/Toolbar.d.ts +209 -0
  407. package/dist/components/toolbar/Toolbar.js +282 -0
  408. package/dist/components/toolbar/Toolbar.js.map +1 -0
  409. package/dist/components/toolbar/toolbar-styles.d.ts +403 -0
  410. package/dist/components/toolbar/toolbar-styles.js +253 -0
  411. package/dist/components/toolbar/toolbar-styles.js.map +1 -0
  412. package/dist/components/toolbar/toolbar-tokens.d.ts +27 -0
  413. package/dist/components/toolbar/toolbar-tokens.js +117 -0
  414. package/dist/components/toolbar/toolbar-tokens.js.map +1 -0
  415. package/dist/components/toolbar/use-toolbar-scroll-expansion.d.ts +56 -0
  416. package/dist/components/toolbar/use-toolbar-scroll-expansion.js +86 -0
  417. package/dist/components/toolbar/use-toolbar-scroll-expansion.js.map +1 -0
  418. package/dist/components/tooltip/Tooltip.d.ts +131 -0
  419. package/dist/components/tooltip/Tooltip.js +388 -0
  420. package/dist/components/tooltip/Tooltip.js.map +1 -0
  421. package/dist/components/tooltip/lazy-tooltip.js +35 -0
  422. package/dist/components/tooltip/lazy-tooltip.js.map +1 -0
  423. package/dist/components/tooltip/tooltip-placement.d.ts +16 -0
  424. package/dist/components/tooltip/tooltip-placement.js +14 -0
  425. package/dist/components/tooltip/tooltip-placement.js.map +1 -0
  426. package/dist/components/tooltip/tooltip-styles.d.ts +142 -0
  427. package/dist/components/tooltip/tooltip-styles.js +81 -0
  428. package/dist/components/tooltip/tooltip-styles.js.map +1 -0
  429. package/dist/components/tooltip/tooltip-tokens.d.ts +9 -0
  430. package/dist/components/tooltip/tooltip-tokens.js +72 -0
  431. package/dist/components/tooltip/tooltip-tokens.js.map +1 -0
  432. package/dist/components/tooltip/tooltip-trigger.d.ts +42 -0
  433. package/dist/components/tooltip/tooltip-trigger.js +115 -0
  434. package/dist/components/tooltip/tooltip-trigger.js.map +1 -0
  435. package/dist/composites/button-group/ButtonGroup.d.ts +116 -0
  436. package/dist/composites/button-group/ButtonGroup.js +270 -0
  437. package/dist/composites/button-group/ButtonGroup.js.map +1 -0
  438. package/dist/composites/button-group/button-group-styles.d.ts +73 -0
  439. package/dist/composites/button-group/button-group-styles.js +87 -0
  440. package/dist/composites/button-group/button-group-styles.js.map +1 -0
  441. package/dist/composites/button-group/lazy-overflow-menu.js +43 -0
  442. package/dist/composites/button-group/lazy-overflow-menu.js.map +1 -0
  443. package/dist/composites/button-group/overflow-menu-list.js +26 -0
  444. package/dist/composites/button-group/overflow-menu-list.js.map +1 -0
  445. package/dist/composites/button-group/use-overflow.js +75 -0
  446. package/dist/composites/button-group/use-overflow.js.map +1 -0
  447. package/dist/composites/button-group/use-press-expansion.js +155 -0
  448. package/dist/composites/button-group/use-press-expansion.js.map +1 -0
  449. package/dist/index.d.ts +142 -0
  450. package/dist/index.js +136 -0
  451. package/dist/motion/get-m3-spring.d.ts +6 -0
  452. package/dist/motion/get-m3-spring.js +10 -0
  453. package/dist/motion/get-m3-spring.js.map +1 -0
  454. package/dist/motion/reduced-motion.js +19 -0
  455. package/dist/motion/reduced-motion.js.map +1 -0
  456. package/dist/motion/use-m3-spring.d.ts +13 -0
  457. package/dist/motion/use-m3-spring.js +22 -0
  458. package/dist/motion/use-m3-spring.js.map +1 -0
  459. package/dist/next/NextRouterProvider.d.ts +13 -0
  460. package/dist/next/NextRouterProvider.js +26 -0
  461. package/dist/next/NextRouterProvider.js.map +1 -0
  462. package/dist/next/get-theme-from-cookies.d.ts +32 -0
  463. package/dist/next/get-theme-from-cookies.js +27 -0
  464. package/dist/next/get-theme-from-cookies.js.map +1 -0
  465. package/dist/next/navigation-guard.d.ts +30 -0
  466. package/dist/next/navigation-guard.js +68 -0
  467. package/dist/next/navigation-guard.js.map +1 -0
  468. package/dist/next.d.ts +5 -0
  469. package/dist/next.js +5 -0
  470. package/dist/primitives/ButtonBase.d.ts +115 -0
  471. package/dist/primitives/ButtonBase.js +231 -0
  472. package/dist/primitives/ButtonBase.js.map +1 -0
  473. package/dist/primitives/DomDirectionLocale.d.ts +18 -0
  474. package/dist/primitives/DomDirectionLocale.js +28 -0
  475. package/dist/primitives/DomDirectionLocale.js.map +1 -0
  476. package/dist/primitives/Field.d.ts +50 -0
  477. package/dist/primitives/Field.js +74 -0
  478. package/dist/primitives/Field.js.map +1 -0
  479. package/dist/primitives/IconFaces.js +23 -0
  480. package/dist/primitives/IconFaces.js.map +1 -0
  481. package/dist/primitives/Overlay.d.ts +39 -0
  482. package/dist/primitives/Overlay.js +86 -0
  483. package/dist/primitives/Overlay.js.map +1 -0
  484. package/dist/primitives/SelectionControl.d.ts +55 -0
  485. package/dist/primitives/SelectionControl.js +58 -0
  486. package/dist/primitives/SelectionControl.js.map +1 -0
  487. package/dist/primitives/Surface.d.ts +123 -0
  488. package/dist/primitives/Surface.js +68 -0
  489. package/dist/primitives/Surface.js.map +1 -0
  490. package/dist/primitives/ToolbarContext.js +12 -0
  491. package/dist/primitives/ToolbarContext.js.map +1 -0
  492. package/dist/primitives/TouchTarget.d.ts +14 -0
  493. package/dist/primitives/TouchTarget.js +20 -0
  494. package/dist/primitives/TouchTarget.js.map +1 -0
  495. package/dist/primitives/TriggerContext.d.ts +34 -0
  496. package/dist/primitives/TriggerContext.js +24 -0
  497. package/dist/primitives/TriggerContext.js.map +1 -0
  498. package/dist/primitives/hidden-input-focus.js +27 -0
  499. package/dist/primitives/hidden-input-focus.js.map +1 -0
  500. package/dist/primitives/icon-faces-styles.d.ts +9 -0
  501. package/dist/primitives/icon-faces-styles.js +45 -0
  502. package/dist/primitives/icon-faces-styles.js.map +1 -0
  503. package/dist/primitives/locale-with-direction.d.ts +9 -0
  504. package/dist/primitives/locale-with-direction.js +17 -0
  505. package/dist/primitives/locale-with-direction.js.map +1 -0
  506. package/dist/primitives/morph-path.d.ts +25 -0
  507. package/dist/primitives/morph-path.js +38 -0
  508. package/dist/primitives/morph-path.js.map +1 -0
  509. package/dist/primitives/selection-control-styles.d.ts +54 -0
  510. package/dist/primitives/selection-control-styles.js +44 -0
  511. package/dist/primitives/selection-control-styles.js.map +1 -0
  512. package/dist/primitives/use-m3-interaction.d.ts +51 -0
  513. package/dist/primitives/use-m3-interaction.js +149 -0
  514. package/dist/primitives/use-m3-interaction.js.map +1 -0
  515. package/dist/primitives/use-m3-morph.d.ts +18 -0
  516. package/dist/primitives/use-m3-morph.js +36 -0
  517. package/dist/primitives/use-m3-morph.js.map +1 -0
  518. package/dist/primitives/use-presence.d.ts +19 -0
  519. package/dist/primitives/use-presence.js +37 -0
  520. package/dist/primitives/use-presence.js.map +1 -0
  521. package/dist/primitives.d.ts +36 -0
  522. package/dist/primitives.js +34 -0
  523. package/dist/shapes/corner-rounding.d.ts +13 -0
  524. package/dist/shapes/corner-rounding.js +18 -0
  525. package/dist/shapes/corner-rounding.js.map +1 -0
  526. package/dist/shapes/cubic.d.ts +52 -0
  527. package/dist/shapes/cubic.js +189 -0
  528. package/dist/shapes/cubic.js.map +1 -0
  529. package/dist/shapes/feature-mapping.js +80 -0
  530. package/dist/shapes/feature-mapping.js.map +1 -0
  531. package/dist/shapes/features.d.ts +23 -0
  532. package/dist/shapes/features.js +82 -0
  533. package/dist/shapes/features.js.map +1 -0
  534. package/dist/shapes/float-mapping.js +65 -0
  535. package/dist/shapes/float-mapping.js.map +1 -0
  536. package/dist/shapes/generated/material-shape-path-record.d.ts +11 -0
  537. package/dist/shapes/generated/material-shape-path-record.js +48 -0
  538. package/dist/shapes/generated/material-shape-path-record.js.map +1 -0
  539. package/dist/shapes/generated/material-shape-paths.d.ts +78 -0
  540. package/dist/shapes/generated/material-shape-paths.js +218 -0
  541. package/dist/shapes/generated/material-shape-paths.js.map +1 -0
  542. package/dist/shapes/mask.d.ts +14 -0
  543. package/dist/shapes/mask.js +24 -0
  544. package/dist/shapes/mask.js.map +1 -0
  545. package/dist/shapes/material-shapes.d.ts +11 -0
  546. package/dist/shapes/material-shapes.js +250 -0
  547. package/dist/shapes/material-shapes.js.map +1 -0
  548. package/dist/shapes/morph.d.ts +25 -0
  549. package/dist/shapes/morph.js +97 -0
  550. package/dist/shapes/morph.js.map +1 -0
  551. package/dist/shapes/path.d.ts +33 -0
  552. package/dist/shapes/path.js +47 -0
  553. package/dist/shapes/path.js.map +1 -0
  554. package/dist/shapes/point.d.ts +28 -0
  555. package/dist/shapes/point.js +103 -0
  556. package/dist/shapes/point.js.map +1 -0
  557. package/dist/shapes/polygon-measure.js +140 -0
  558. package/dist/shapes/polygon-measure.js.map +1 -0
  559. package/dist/shapes/rounded-polygon.d.ts +44 -0
  560. package/dist/shapes/rounded-polygon.js +278 -0
  561. package/dist/shapes/rounded-polygon.js.map +1 -0
  562. package/dist/shapes/shape-path.d.ts +15 -0
  563. package/dist/shapes/shapes.d.ts +53 -0
  564. package/dist/shapes/shapes.js +171 -0
  565. package/dist/shapes/shapes.js.map +1 -0
  566. package/dist/styles/generated/components.css +710 -0
  567. package/dist/styles/generated/theme.css +247 -0
  568. package/dist/styles/generated/themes.css +3361 -0
  569. package/dist/styles/generated/tokens.css +284 -0
  570. package/dist/styles/styles.css +15 -0
  571. package/dist/styles/utilities.css +283 -0
  572. package/dist/styles.compiled.css +2 -0
  573. package/dist/theme/ThemeProvider.d.ts +72 -0
  574. package/dist/theme/ThemeProvider.js +144 -0
  575. package/dist/theme/ThemeProvider.js.map +1 -0
  576. package/dist/theme/ThemeScope.d.ts +32 -0
  577. package/dist/theme/ThemeScope.js +67 -0
  578. package/dist/theme/ThemeScope.js.map +1 -0
  579. package/dist/theme/ThemeScript.d.ts +26 -0
  580. package/dist/theme/ThemeScript.js +44 -0
  581. package/dist/theme/ThemeScript.js.map +1 -0
  582. package/dist/theme/context.d.ts +32 -0
  583. package/dist/theme/context.js +47 -0
  584. package/dist/theme/context.js.map +1 -0
  585. package/dist/theme/create-theme.d.ts +60 -0
  586. package/dist/theme/create-theme.js +47 -0
  587. package/dist/theme/create-theme.js.map +1 -0
  588. package/dist/theme/css.js +54 -0
  589. package/dist/theme/css.js.map +1 -0
  590. package/dist/theme/parse-palettes.js +40 -0
  591. package/dist/theme/parse-palettes.js.map +1 -0
  592. package/dist/theme/scheme.d.ts +6 -0
  593. package/dist/theme/scheme.js +118 -0
  594. package/dist/theme/scheme.js.map +1 -0
  595. package/dist/theme/state.d.ts +38 -0
  596. package/dist/theme/state.js +93 -0
  597. package/dist/theme/state.js.map +1 -0
  598. package/dist/theme/storage.js +21 -0
  599. package/dist/theme/storage.js.map +1 -0
  600. package/dist/tokens/breakpoints.d.ts +15 -0
  601. package/dist/tokens/breakpoints.js +16 -0
  602. package/dist/tokens/breakpoints.js.map +1 -0
  603. package/dist/tokens/color.d.ts +104 -0
  604. package/dist/tokens/color.js +147 -0
  605. package/dist/tokens/color.js.map +1 -0
  606. package/dist/tokens/component.d.ts +110 -0
  607. package/dist/tokens/component.js +67 -0
  608. package/dist/tokens/component.js.map +1 -0
  609. package/dist/tokens/density.d.ts +20 -0
  610. package/dist/tokens/density.js +27 -0
  611. package/dist/tokens/density.js.map +1 -0
  612. package/dist/tokens/elevation.d.ts +44 -0
  613. package/dist/tokens/elevation.js +45 -0
  614. package/dist/tokens/elevation.js.map +1 -0
  615. package/dist/tokens/motion.d.ts +79 -0
  616. package/dist/tokens/motion.js +126 -0
  617. package/dist/tokens/motion.js.map +1 -0
  618. package/dist/tokens/shape.d.ts +22 -0
  619. package/dist/tokens/shape.js +22 -0
  620. package/dist/tokens/shape.js.map +1 -0
  621. package/dist/tokens/spring-velocity.d.ts +19 -0
  622. package/dist/tokens/spring-velocity.js +44 -0
  623. package/dist/tokens/spring-velocity.js.map +1 -0
  624. package/dist/tokens/state.d.ts +18 -0
  625. package/dist/tokens/state.js +19 -0
  626. package/dist/tokens/state.js.map +1 -0
  627. package/dist/tokens/typography.d.ts +64 -0
  628. package/dist/tokens/typography.js +60 -0
  629. package/dist/tokens/typography.js.map +1 -0
  630. package/dist/tokens/z-index.d.ts +17 -0
  631. package/dist/tokens/z-index.js +18 -0
  632. package/dist/tokens/z-index.js.map +1 -0
  633. package/dist/utils/announce.js +51 -0
  634. package/dist/utils/announce.js.map +1 -0
  635. package/dist/utils/assert-collection-children.js +26 -0
  636. package/dist/utils/assert-collection-children.js.map +1 -0
  637. package/dist/utils/closed-by.d.ts +9 -0
  638. package/dist/utils/closed-by.js +12 -0
  639. package/dist/utils/closed-by.js.map +1 -0
  640. package/dist/utils/cn.d.ts +31 -0
  641. package/dist/utils/cn.js +37 -0
  642. package/dist/utils/cn.js.map +1 -0
  643. package/dist/utils/composite-keys.js +32 -0
  644. package/dist/utils/composite-keys.js.map +1 -0
  645. package/dist/utils/focus-visible.js +14 -0
  646. package/dist/utils/focus-visible.js.map +1 -0
  647. package/dist/utils/focus.js +51 -0
  648. package/dist/utils/focus.js.map +1 -0
  649. package/dist/utils/focusable-disabled.js +12 -0
  650. package/dist/utils/focusable-disabled.js.map +1 -0
  651. package/dist/utils/keep-pressed-in-place.d.ts +60 -0
  652. package/dist/utils/keep-pressed-in-place.js +127 -0
  653. package/dist/utils/keep-pressed-in-place.js.map +1 -0
  654. package/dist/utils/load-on-demand.js +111 -0
  655. package/dist/utils/load-on-demand.js.map +1 -0
  656. package/dist/utils/merge-data-tokens.d.ts +9 -0
  657. package/dist/utils/merge-data-tokens.js +15 -0
  658. package/dist/utils/merge-data-tokens.js.map +1 -0
  659. package/dist/utils/natural-size.js +53 -0
  660. package/dist/utils/natural-size.js.map +1 -0
  661. package/dist/utils/nearest-reveal.js +28 -0
  662. package/dist/utils/nearest-reveal.js.map +1 -0
  663. package/dist/utils/placement.js +14 -0
  664. package/dist/utils/placement.js.map +1 -0
  665. package/dist/utils/radio-group-keys.js +74 -0
  666. package/dist/utils/radio-group-keys.js.map +1 -0
  667. package/dist/utils/rendered-description.js +17 -0
  668. package/dist/utils/rendered-description.js.map +1 -0
  669. package/dist/utils/root-props.d.ts +103 -0
  670. package/dist/utils/root-props.js +51 -0
  671. package/dist/utils/root-props.js.map +1 -0
  672. package/dist/utils/search.d.ts +11 -0
  673. package/dist/utils/search.js +18 -0
  674. package/dist/utils/search.js.map +1 -0
  675. package/dist/utils/shortcut.js +20 -0
  676. package/dist/utils/shortcut.js.map +1 -0
  677. package/dist/utils/split-data-attributes.d.ts +12 -0
  678. package/dist/utils/split-data-attributes.js +20 -0
  679. package/dist/utils/split-data-attributes.js.map +1 -0
  680. package/dist/utils/toolbar-keys.js +28 -0
  681. package/dist/utils/toolbar-keys.js.map +1 -0
  682. package/dist/utils/tv.d.ts +7 -0
  683. package/dist/utils/tv.js +9 -0
  684. package/dist/utils/tv.js.map +1 -0
  685. package/dist/utils/typeahead.js +64 -0
  686. package/dist/utils/typeahead.js.map +1 -0
  687. package/dist/utils/warn-once.js +30 -0
  688. package/dist/utils/warn-once.js.map +1 -0
  689. package/dist/vendor/material-color-utilities/blend/blend.js +88 -0
  690. package/dist/vendor/material-color-utilities/blend/blend.js.map +1 -0
  691. package/dist/vendor/material-color-utilities/contrast/contrast.js +131 -0
  692. package/dist/vendor/material-color-utilities/contrast/contrast.js.map +1 -0
  693. package/dist/vendor/material-color-utilities/dislike/dislike_analyzer.js +58 -0
  694. package/dist/vendor/material-color-utilities/dislike/dislike_analyzer.js.map +1 -0
  695. package/dist/vendor/material-color-utilities/dynamiccolor/color_spec_2021.js +620 -0
  696. package/dist/vendor/material-color-utilities/dynamiccolor/color_spec_2021.js.map +1 -0
  697. package/dist/vendor/material-color-utilities/dynamiccolor/color_spec_2025.js +786 -0
  698. package/dist/vendor/material-color-utilities/dynamiccolor/color_spec_2025.js.map +1 -0
  699. package/dist/vendor/material-color-utilities/dynamiccolor/contrast_curve.js +59 -0
  700. package/dist/vendor/material-color-utilities/dynamiccolor/contrast_curve.js.map +1 -0
  701. package/dist/vendor/material-color-utilities/dynamiccolor/dynamic_color.js +420 -0
  702. package/dist/vendor/material-color-utilities/dynamiccolor/dynamic_color.js.map +1 -0
  703. package/dist/vendor/material-color-utilities/dynamiccolor/dynamic_scheme.js +701 -0
  704. package/dist/vendor/material-color-utilities/dynamiccolor/dynamic_scheme.js.map +1 -0
  705. package/dist/vendor/material-color-utilities/dynamiccolor/material_dynamic_colors.js +374 -0
  706. package/dist/vendor/material-color-utilities/dynamiccolor/material_dynamic_colors.js.map +1 -0
  707. package/dist/vendor/material-color-utilities/dynamiccolor/tone_delta_pair.js +65 -0
  708. package/dist/vendor/material-color-utilities/dynamiccolor/tone_delta_pair.js.map +1 -0
  709. package/dist/vendor/material-color-utilities/dynamiccolor/variant.js +38 -0
  710. package/dist/vendor/material-color-utilities/dynamiccolor/variant.js.map +1 -0
  711. package/dist/vendor/material-color-utilities/hct/cam16.js +309 -0
  712. package/dist/vendor/material-color-utilities/hct/cam16.js.map +1 -0
  713. package/dist/vendor/material-color-utilities/hct/hct.js +148 -0
  714. package/dist/vendor/material-color-utilities/hct/hct.js.map +1 -0
  715. package/dist/vendor/material-color-utilities/hct/hct_solver.js +660 -0
  716. package/dist/vendor/material-color-utilities/hct/hct_solver.js.map +1 -0
  717. package/dist/vendor/material-color-utilities/hct/viewing_conditions.js +117 -0
  718. package/dist/vendor/material-color-utilities/hct/viewing_conditions.js.map +1 -0
  719. package/dist/vendor/material-color-utilities/index.js +51 -0
  720. package/dist/vendor/material-color-utilities/index.js.map +1 -0
  721. package/dist/vendor/material-color-utilities/palettes/core_palette.js +22 -0
  722. package/dist/vendor/material-color-utilities/palettes/core_palette.js.map +1 -0
  723. package/dist/vendor/material-color-utilities/palettes/tonal_palette.js +134 -0
  724. package/dist/vendor/material-color-utilities/palettes/tonal_palette.js.map +1 -0
  725. package/dist/vendor/material-color-utilities/scheme/scheme.js +21 -0
  726. package/dist/vendor/material-color-utilities/scheme/scheme.js.map +1 -0
  727. package/dist/vendor/material-color-utilities/scheme/scheme_android.js +21 -0
  728. package/dist/vendor/material-color-utilities/scheme/scheme_android.js.map +1 -0
  729. package/dist/vendor/material-color-utilities/scheme/scheme_content.js +22 -0
  730. package/dist/vendor/material-color-utilities/scheme/scheme_content.js.map +1 -0
  731. package/dist/vendor/material-color-utilities/scheme/scheme_expressive.js +38 -0
  732. package/dist/vendor/material-color-utilities/scheme/scheme_expressive.js.map +1 -0
  733. package/dist/vendor/material-color-utilities/scheme/scheme_fidelity.js +22 -0
  734. package/dist/vendor/material-color-utilities/scheme/scheme_fidelity.js.map +1 -0
  735. package/dist/vendor/material-color-utilities/scheme/scheme_fruit_salad.js +22 -0
  736. package/dist/vendor/material-color-utilities/scheme/scheme_fruit_salad.js.map +1 -0
  737. package/dist/vendor/material-color-utilities/scheme/scheme_monochrome.js +22 -0
  738. package/dist/vendor/material-color-utilities/scheme/scheme_monochrome.js.map +1 -0
  739. package/dist/vendor/material-color-utilities/scheme/scheme_neutral.js +36 -0
  740. package/dist/vendor/material-color-utilities/scheme/scheme_neutral.js.map +1 -0
  741. package/dist/vendor/material-color-utilities/scheme/scheme_rainbow.js +22 -0
  742. package/dist/vendor/material-color-utilities/scheme/scheme_rainbow.js.map +1 -0
  743. package/dist/vendor/material-color-utilities/scheme/scheme_tonal_spot.js +41 -0
  744. package/dist/vendor/material-color-utilities/scheme/scheme_tonal_spot.js.map +1 -0
  745. package/dist/vendor/material-color-utilities/scheme/scheme_vibrant.js +39 -0
  746. package/dist/vendor/material-color-utilities/scheme/scheme_vibrant.js.map +1 -0
  747. package/dist/vendor/material-color-utilities/score/score.js +115 -0
  748. package/dist/vendor/material-color-utilities/score/score.js.map +1 -0
  749. package/dist/vendor/material-color-utilities/temperature/temperature_cache.js +227 -0
  750. package/dist/vendor/material-color-utilities/temperature/temperature_cache.js.map +1 -0
  751. package/dist/vendor/material-color-utilities/utils/color_utils.js +246 -0
  752. package/dist/vendor/material-color-utilities/utils/color_utils.js.map +1 -0
  753. package/dist/vendor/material-color-utilities/utils/image_utils.js +21 -0
  754. package/dist/vendor/material-color-utilities/utils/image_utils.js.map +1 -0
  755. package/dist/vendor/material-color-utilities/utils/math_utils.js +119 -0
  756. package/dist/vendor/material-color-utilities/utils/math_utils.js.map +1 -0
  757. package/dist/vendor/material-color-utilities/utils/string_utils.js +74 -0
  758. package/dist/vendor/material-color-utilities/utils/string_utils.js.map +1 -0
  759. package/dist/vendor/material-color-utilities/utils/theme_utils.js +24 -0
  760. package/dist/vendor/material-color-utilities/utils/theme_utils.js.map +1 -0
  761. package/package.json +114 -3
@@ -0,0 +1,442 @@
1
+ "use client";
2
+ import { useThemeScope } from "../../theme/context.js";
3
+ import { cn } from "../../utils/cn.js";
4
+ import { TriggerContext } from "../../primitives/TriggerContext.js";
5
+ import { mergeDataTokens } from "../../utils/merge-data-tokens.js";
6
+ import { usePresence } from "../../primitives/use-presence.js";
7
+ import { IconButton } from "../icon-button/IconButton.js";
8
+ import { focusFirstInteractive } from "../../utils/focus.js";
9
+ import { Overlay as Overlay$1 } from "../../primitives/Overlay.js";
10
+ import { CloseIcon, CollapseIcon } from "./sheet-icons.js";
11
+ import { closedByOverlayOptions } from "../../utils/closed-by.js";
12
+ import { SheetTriggerContext } from "./SheetTrigger.js";
13
+ import { ownsGesture } from "./sheet-gesture.js";
14
+ import { contentGesture, scrolledAbove } from "./bottom-sheet-gesture.js";
15
+ import { EXIT_DISTANCE, releaseMotion, releaseVelocity, settleTarget } from "./sheet-settle.js";
16
+ import { usePeekInert } from "./use-peek-inert.js";
17
+ import { SHEET_EXIT_PROPERTIES, bottomSheetStyles } from "./sheet-styles.js";
18
+ import { useContext, useEffect, useLayoutEffect, useRef, useState } from "react";
19
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
20
+ import { mergeProps, useDialog, useFocusRing, useModalOverlay, useObjectRef } from "react-aria";
21
+ import { useOverlayTriggerState } from "react-stately";
22
+ //#region src/components/sheet/BottomSheet.tsx
23
+ const DEFAULT_LABELS = {
24
+ expand: "Expand sheet",
25
+ collapse: "Collapse sheet",
26
+ dismiss: "Close sheet",
27
+ close: "Close"
28
+ };
29
+ /** The interactive strip at the top of a sheet without a drag handle (m3.material.io). */
30
+ const DRAG_ZONE = 48;
31
+ /**
32
+ * M3 bottom sheet. A `modal` sheet slides up over a scrim, opening to half the window when
33
+ * its content is taller (drag the handle up, or press it, to expand), and closes on a drag
34
+ * down, a press on the scrim or Escape, in one press from any height. A
35
+ * `standard` sheet sits over the page without a scrim, collapsed to `peekHeight` until it
36
+ * is expanded, or opening expanded with `defaultDetent="expanded"`; `detent` and
37
+ * `onDetentChange` control it.
38
+ *
39
+ * @example
40
+ * <SheetTrigger>
41
+ * <Button>Share</Button>
42
+ * <BottomSheet aria-label="Share">{({ close }) => <ShareOptions onPick={close} />}</BottomSheet>
43
+ * </SheetTrigger>
44
+ */
45
+ function BottomSheet({ variant = "modal", open, defaultOpen, onOpenChange, ...props }) {
46
+ const trigger = useContext(SheetTriggerContext);
47
+ const ownState = useOverlayTriggerState({
48
+ isOpen: open,
49
+ defaultOpen: defaultOpen ?? (variant === "standard" ? true : void 0),
50
+ onOpenChange
51
+ });
52
+ const state = (variant === "modal" ? trigger?.state : void 0) ?? ownState;
53
+ const { isPresent, isExiting, exitProps } = usePresence(state.isOpen, SHEET_EXIT_PROPERTIES);
54
+ if (!isPresent) return null;
55
+ if (variant === "standard") return /* @__PURE__ */ jsx(BottomSheetPanel, {
56
+ ...props,
57
+ variant: "standard",
58
+ state,
59
+ isExiting,
60
+ exitProps
61
+ });
62
+ return /* @__PURE__ */ jsx(Overlay$1, {
63
+ exiting: isExiting,
64
+ children: /* @__PURE__ */ jsx(ModalBottomSheet, {
65
+ ...props,
66
+ state,
67
+ isExiting,
68
+ exitProps,
69
+ triggerOverlayProps: trigger?.overlayProps
70
+ })
71
+ });
72
+ }
73
+ function ModalBottomSheet({ state, isExiting, triggerOverlayProps, closedBy = "any", classNames, ref, ...props }) {
74
+ const panelRef = useObjectRef(ref);
75
+ const { modalProps, underlayProps } = useModalOverlay({
76
+ ...closedByOverlayOptions(closedBy, isExiting),
77
+ isKeyboardDismissDisabled: true
78
+ }, state, panelRef);
79
+ const { dialogProps } = useDialog(props, panelRef);
80
+ useEffect(() => focusFirstInteractive(panelRef.current), [panelRef]);
81
+ const styles = bottomSheetStyles();
82
+ return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("div", {
83
+ "aria-hidden": "true",
84
+ "data-exiting": isExiting || void 0,
85
+ className: styles.scrim({ class: classNames?.scrim })
86
+ }), /* @__PURE__ */ jsx("div", {
87
+ ...underlayProps,
88
+ className: "fixed inset-0 z-(--md-sys-z-sheet)",
89
+ children: /* @__PURE__ */ jsx(BottomSheetPanel, {
90
+ ...props,
91
+ variant: "modal",
92
+ closedBy,
93
+ state,
94
+ isExiting,
95
+ classNames,
96
+ ref: panelRef,
97
+ panelProps: mergeProps(triggerOverlayProps ?? {}, modalProps, dialogProps)
98
+ })
99
+ })] });
100
+ }
101
+ /** The sheet itself: the moving wrapper, the panel, its handle and its detents. */
102
+ function BottomSheetPanel({ variant, state, isExiting, exitProps, panelProps: overlayPanelProps, dragHandle = true, swipeable = true, skipPartiallyExpanded = false, peekHeight = 56, detent: detentProp, defaultDetent = "collapsed", onDetentChange, closedBy = "any", closeButton = true, closeIcon, collapseIcon, labels: labelsProp, children, className, classNames, style, ref, ...rest }) {
103
+ const labels = {
104
+ ...DEFAULT_LABELS,
105
+ ...labelsProp
106
+ };
107
+ const standard = variant === "standard";
108
+ const panelRef = useObjectRef(ref);
109
+ const motionRef = useRef(null);
110
+ const styles = bottomSheetStyles({
111
+ variant,
112
+ swipeable
113
+ });
114
+ const [height, setHeight] = useState(0);
115
+ const [viewport, setViewport] = useState({
116
+ width: 0,
117
+ height: 0
118
+ });
119
+ const [ownDetent, setOwnDetent] = useState(standard && defaultDetent === "expanded" ? "expanded" : null);
120
+ const controlledDetent = standard && detentProp !== void 0 ? detentProp === "expanded" ? "expanded" : "lower" : void 0;
121
+ const detent = controlledDetent ?? ownDetent;
122
+ const [drag, setDrag] = useState(null);
123
+ const { motion: motionScheme } = useThemeScope();
124
+ const [settleMotion, setSettleMotion] = useState(null);
125
+ const [dragClosing, setDragClosing] = useState(false);
126
+ if (dragClosing && state.isOpen) {
127
+ setDragClosing(false);
128
+ setDrag(null);
129
+ setSettleMotion(null);
130
+ }
131
+ const contentRef = useRef(null);
132
+ const pointer = useRef({
133
+ pending: false,
134
+ fromHandle: false,
135
+ /** Started on the content, where a drag only moves the sheet once it picks `drag`. */
136
+ fromContent: false,
137
+ gesture: "undecided",
138
+ x: 0,
139
+ y: 0,
140
+ offset: 0,
141
+ id: 0,
142
+ samples: []
143
+ });
144
+ const lowerOffset = standard ? height - peekHeight : height - viewport.height / 2;
145
+ const hasLower = standard ? height > peekHeight : !skipPartiallyExpanded && lowerOffset > 0;
146
+ const current = detent === "expanded" || !hasLower ? "expanded" : "lower";
147
+ const restingOffset = current === "lower" ? lowerOffset : 0;
148
+ const offset = drag ?? restingOffset;
149
+ const maxOffset = standard ? Math.max(0, lowerOffset) : height;
150
+ const detentName = current === "expanded" ? "expanded" : standard ? "collapsed" : "partial";
151
+ const [lowering, setLowering] = useState(false);
152
+ const [previousControlled, setPreviousControlled] = useState(controlledDetent);
153
+ if (controlledDetent !== previousControlled) {
154
+ setPreviousControlled(controlledDetent);
155
+ setLowering(controlledDetent === "lower");
156
+ setSettleMotion(null);
157
+ }
158
+ /** Moves to `next`, telling `onDetentChange` when a standard sheet's detent changes. */
159
+ const setDetent = (next, fromDrag = false) => {
160
+ setLowering(next === "lower" && !fromDrag);
161
+ if (!fromDrag) setSettleMotion(null);
162
+ if (controlledDetent === void 0) setOwnDetent(next);
163
+ const resting = next === "lower" && hasLower ? "lower" : "expanded";
164
+ if (standard && resting !== current) onDetentChange?.(resting === "expanded" ? "expanded" : "collapsed");
165
+ };
166
+ useLayoutEffect(() => {
167
+ const element = motionRef.current;
168
+ if (!element) return;
169
+ const measure = () => {
170
+ setHeight(element.offsetHeight);
171
+ setViewport({
172
+ width: window.innerWidth,
173
+ height: window.innerHeight
174
+ });
175
+ };
176
+ measure();
177
+ const observer = typeof ResizeObserver === "undefined" ? null : new ResizeObserver(measure);
178
+ observer?.observe(element);
179
+ window.addEventListener("resize", measure);
180
+ return () => {
181
+ observer?.disconnect();
182
+ window.removeEventListener("resize", measure);
183
+ };
184
+ }, []);
185
+ const close = state.close;
186
+ const closable = !standard && closedBy !== "none";
187
+ const anchors = [
188
+ 0,
189
+ ...hasLower ? [lowerOffset] : [],
190
+ ...closable ? [height] : []
191
+ ];
192
+ const settle = (target, velocity) => {
193
+ const closing = !standard && target >= height - .5;
194
+ const end = closing ? height * EXIT_DISTANCE : target;
195
+ setSettleMotion(releaseMotion(motionScheme, closing, velocity, end - (drag ?? restingOffset)));
196
+ if (closing) {
197
+ setDragClosing(true);
198
+ close();
199
+ } else {
200
+ setDrag(null);
201
+ setDetent(target === 0 ? "expanded" : "lower", true);
202
+ }
203
+ };
204
+ /** The handle's action: expand a lower sheet, collapse a standard one, close a modal one. */
205
+ const cycle = () => {
206
+ if (current === "lower") setDetent("expanded");
207
+ else if (standard) setDetent("lower");
208
+ else close();
209
+ };
210
+ const startPointer = (event, fromHandle, fromContent = false) => {
211
+ if (event.button !== 0 || isExiting) return;
212
+ setSettleMotion(null);
213
+ pointer.current = {
214
+ pending: true,
215
+ fromHandle,
216
+ fromContent,
217
+ gesture: "undecided",
218
+ x: event.clientX,
219
+ y: event.clientY,
220
+ offset: restingOffset,
221
+ id: event.pointerId,
222
+ samples: [{
223
+ position: event.clientY,
224
+ time: event.timeStamp
225
+ }]
226
+ };
227
+ };
228
+ const movePointer = (event) => {
229
+ const start = pointer.current;
230
+ if (!start.pending) return;
231
+ if (start.fromContent && start.gesture !== "drag") {
232
+ start.gesture = contentGesture(event.clientX - start.x, event.clientY - start.y, scrolledAbove(event.target, contentRef.current), current === "lower");
233
+ if (start.gesture === "undecided") return;
234
+ if (start.gesture === "scroll") {
235
+ start.pending = false;
236
+ return;
237
+ }
238
+ }
239
+ if (!swipeable) return;
240
+ start.samples = [...start.samples, {
241
+ position: event.clientY,
242
+ time: event.timeStamp
243
+ }];
244
+ if (drag === null && Math.abs(event.clientY - start.y) <= 4) return;
245
+ if (drag === null) event.currentTarget.setPointerCapture?.(start.id);
246
+ const raw = start.offset + event.clientY - start.y;
247
+ setDrag(Math.min(maxOffset, Math.max(0, raw)));
248
+ if (start.fromContent && contentRef.current) contentRef.current.scrollTop = Math.max(0, -raw);
249
+ };
250
+ const endPointer = (event) => {
251
+ const start = pointer.current;
252
+ if (!start.pending) return;
253
+ start.pending = false;
254
+ if (drag === null) {
255
+ if (start.fromHandle) cycle();
256
+ return;
257
+ }
258
+ const velocity = releaseVelocity([...start.samples, {
259
+ position: event.clientY,
260
+ time: event.timeStamp
261
+ }]);
262
+ settle(settleTarget(anchors, start.offset, drag, velocity), velocity);
263
+ };
264
+ const cancelPointer = () => {
265
+ pointer.current.pending = false;
266
+ setSettleMotion(null);
267
+ setDrag(null);
268
+ };
269
+ const onZonePointerDown = (event) => {
270
+ if (!swipeable) return;
271
+ const top = event.currentTarget.getBoundingClientRect().top;
272
+ if (event.clientY - top <= DRAG_ZONE) startPointer(event, false);
273
+ };
274
+ const onContentPointerDown = (event) => {
275
+ const content = contentRef.current;
276
+ const target = event.target;
277
+ pointer.current.fromContent = false;
278
+ if (!swipeable || event.pointerType === "mouse" || !content?.contains(target)) return;
279
+ if (ownsGesture(target, content)) return;
280
+ startPointer(event, false, true);
281
+ };
282
+ useEffect(() => {
283
+ const content = contentRef.current;
284
+ if (!content) return;
285
+ const update = () => content.toggleAttribute("data-at-top", content.scrollTop <= 0);
286
+ const onTouchMove = (event) => {
287
+ const start = pointer.current;
288
+ if (start.pending && start.fromContent && start.gesture === "drag" && event.cancelable) event.preventDefault();
289
+ };
290
+ update();
291
+ content.addEventListener("scroll", update, { passive: true });
292
+ content.addEventListener("touchmove", onTouchMove, { passive: false });
293
+ return () => {
294
+ content.removeEventListener("scroll", update);
295
+ content.removeEventListener("touchmove", onTouchMove);
296
+ };
297
+ }, []);
298
+ const onKeyDown = (event) => {
299
+ if (event.key !== "Escape" || isExiting) return;
300
+ if (standard) {
301
+ if (current !== "expanded" || !hasLower) return;
302
+ event.stopPropagation();
303
+ setDetent("lower");
304
+ return;
305
+ }
306
+ if (closedBy === "none") return;
307
+ event.stopPropagation();
308
+ close();
309
+ };
310
+ const handleRef = useRef(null);
311
+ usePeekInert(panelRef, contentRef, detentName === "collapsed", peekHeight, () => handleRef.current ?? panelRef.current);
312
+ const collapseFromButton = () => {
313
+ (handleRef.current ?? panelRef.current)?.focus({ preventScroll: true });
314
+ setDetent("lower");
315
+ };
316
+ const { focusProps: handleFocusProps, isFocusVisible: handleFocusVisible } = useFocusRing();
317
+ const exiting = isExiting || void 0;
318
+ const dragging = drag !== null && !dragClosing || void 0;
319
+ const handleLabel = current === "lower" ? labels.expand : standard ? labels.collapse : labels.dismiss;
320
+ const topMargin = viewport.width > 640 ? 56 : 72;
321
+ const fillsWindow = current === "expanded" && viewport.height > 0 && height >= viewport.height - topMargin - .5;
322
+ const showCloseButton = closeButton && fillsWindow && (!standard || hasLower);
323
+ const panelProps = mergeProps(rest, standard ? {
324
+ role: "dialog",
325
+ tabIndex: -1
326
+ } : overlayPanelProps ?? {}, { onKeyDown });
327
+ const zone = !dragHandle;
328
+ return /* @__PURE__ */ jsx("div", {
329
+ style,
330
+ className: styles.container({ class: cn(classNames?.container, className) }),
331
+ children: /* @__PURE__ */ jsx("div", {
332
+ ...mergeProps(exitProps, { onTransitionEnd: (event) => {
333
+ if (event.target === event.currentTarget && event.propertyName === "translate") setSettleMotion(null);
334
+ } }),
335
+ ref: motionRef,
336
+ "data-exiting": exiting,
337
+ "data-dragging": dragging,
338
+ "data-lowering": lowering || void 0,
339
+ "data-settling": settleMotion ? "" : void 0,
340
+ style: {
341
+ "--m3-sheet-offset": `${offset}px`,
342
+ ...settleMotion && {
343
+ transitionDuration: `${settleMotion.duration}ms`,
344
+ transitionTimingFunction: settleMotion.easing
345
+ }
346
+ },
347
+ className: styles.motion(),
348
+ children: /* @__PURE__ */ jsx("div", {
349
+ ...panelProps,
350
+ onPointerDownCapture: (event) => {
351
+ panelProps.onPointerDownCapture?.(event);
352
+ onContentPointerDown(event);
353
+ },
354
+ onPointerMoveCapture: (event) => {
355
+ panelProps.onPointerMoveCapture?.(event);
356
+ if (pointer.current.fromContent) movePointer(event);
357
+ },
358
+ onPointerUpCapture: (event) => {
359
+ panelProps.onPointerUpCapture?.(event);
360
+ if (pointer.current.fromContent) endPointer(event);
361
+ },
362
+ onPointerCancelCapture: (event) => {
363
+ panelProps.onPointerCancelCapture?.(event);
364
+ if (pointer.current.fromContent) cancelPointer();
365
+ },
366
+ onPointerDown: (event) => {
367
+ panelProps.onPointerDown?.(event);
368
+ if (zone && !pointer.current.fromContent) onZonePointerDown(event);
369
+ },
370
+ onPointerMove: (event) => {
371
+ panelProps.onPointerMove?.(event);
372
+ if (zone && !pointer.current.fromContent) movePointer(event);
373
+ },
374
+ onPointerUp: (event) => {
375
+ panelProps.onPointerUp?.(event);
376
+ if (zone && !pointer.current.fromContent) endPointer(event);
377
+ },
378
+ onPointerCancel: (event) => {
379
+ panelProps.onPointerCancel?.(event);
380
+ if (zone && !pointer.current.fromContent) cancelPointer();
381
+ },
382
+ ref: panelRef,
383
+ "data-tokens": mergeDataTokens("md-comp-sheet-bottom-docked", rest),
384
+ "data-variant": variant,
385
+ "data-detent": detentName,
386
+ "data-exiting": exiting,
387
+ "data-dragging": dragging,
388
+ className: styles.panel({ class: classNames?.panel }),
389
+ children: /* @__PURE__ */ jsxs(TriggerContext, {
390
+ value: null,
391
+ children: [
392
+ dragHandle && /* @__PURE__ */ jsx("div", {
393
+ ...handleFocusProps,
394
+ ref: handleRef,
395
+ role: "button",
396
+ tabIndex: 0,
397
+ "data-focus-visible": handleFocusVisible || void 0,
398
+ "aria-label": handleLabel,
399
+ "data-dragging": dragging,
400
+ onPointerDown: (event) => startPointer(event, true),
401
+ onPointerMove: movePointer,
402
+ onPointerUp: endPointer,
403
+ onPointerCancel: cancelPointer,
404
+ onKeyDown: (event) => {
405
+ if (event.key === "Enter" || event.key === " ") {
406
+ event.preventDefault();
407
+ cycle();
408
+ }
409
+ },
410
+ className: styles.handle({ class: classNames?.handle }),
411
+ children: /* @__PURE__ */ jsx("span", {
412
+ "data-slot": "drag-handle",
413
+ className: styles.handleBar({ class: classNames?.handleBar })
414
+ })
415
+ }),
416
+ showCloseButton && /* @__PURE__ */ jsx("div", {
417
+ className: styles.closeRow({ class: classNames?.closeRow }),
418
+ children: /* @__PURE__ */ jsx(IconButton, {
419
+ variant: "standard",
420
+ density: 0,
421
+ icon: standard ? collapseIcon ?? /* @__PURE__ */ jsx(CollapseIcon, {}) : closeIcon ?? /* @__PURE__ */ jsx(CloseIcon, {}),
422
+ "aria-label": standard ? labels.collapse : labels.close,
423
+ onPress: standard ? collapseFromButton : close,
424
+ className: classNames?.close
425
+ })
426
+ }),
427
+ /* @__PURE__ */ jsx("div", {
428
+ ref: contentRef,
429
+ "data-can-rise": current === "lower" || void 0,
430
+ className: styles.content({ class: classNames?.content }),
431
+ children: typeof children === "function" ? children({ close }) : children
432
+ })
433
+ ]
434
+ })
435
+ })
436
+ })
437
+ });
438
+ }
439
+ //#endregion
440
+ export { BottomSheet };
441
+
442
+ //# sourceMappingURL=BottomSheet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BottomSheet.js","names":["Overlay"],"sources":["../../../src/components/sheet/BottomSheet.tsx"],"sourcesContent":["'use client';\n\nimport {\n useContext,\n useEffect,\n useLayoutEffect,\n useRef,\n useState,\n type ComponentPropsWithRef,\n type CSSProperties,\n type HTMLAttributes,\n type KeyboardEvent,\n type PointerEvent,\n type ReactElement,\n type ReactNode,\n type Ref,\n type TransitionEvent,\n} from 'react';\nimport {\n mergeProps,\n useDialog,\n useFocusRing,\n useModalOverlay,\n useObjectRef,\n type AriaDialogProps,\n} from 'react-aria';\nimport { useOverlayTriggerState, type OverlayTriggerState } from 'react-stately';\nimport { Overlay } from '../../primitives/Overlay';\nimport { TriggerContext } from '../../primitives/TriggerContext';\nimport { usePresence } from '../../primitives/use-presence';\nimport { closedByOverlayOptions, type ClosedBy } from '../../utils/closed-by';\nimport { cn } from '../../utils/cn';\nimport { focusFirstInteractive } from '../../utils/focus';\nimport { mergeDataTokens } from '../../utils/merge-data-tokens';\nimport { useThemeScope } from '../../theme/context';\nimport { IconButton } from '../icon-button/IconButton';\nimport { CloseIcon, CollapseIcon } from './sheet-icons';\nimport { contentGesture, scrolledAbove, type ContentGesture } from './bottom-sheet-gesture';\nimport { DRAG_SLOP, ownsGesture } from './sheet-gesture';\nimport {\n EXIT_DISTANCE,\n releaseMotion,\n releaseVelocity,\n settleTarget,\n type DragSample,\n type ReleaseMotion,\n} from './sheet-settle';\nimport { usePeekInert } from './use-peek-inert';\nimport { SHEET_EXIT_PROPERTIES, bottomSheetStyles } from './sheet-styles';\nimport { SheetTriggerContext } from './SheetTrigger';\n\nexport interface BottomSheetClassNames {\n /**\n * The outermost element, which places the sheet (where `className` and `style` go too):\n * `fixed` to the window's bottom by default, or, for example, `absolute` to a region.\n */\n container?: string;\n /** The dimmed layer behind a modal sheet. */\n scrim?: string;\n /** The sheet's surface: its colour, corners and shadow. */\n panel?: string;\n /** The drag handle's 48px pressable area. */\n handle?: string;\n /** The drag handle's visible bar, inside `handle`. */\n handleBar?: string;\n /** The row holding the close (modal) or collapse (standard) button. */\n closeRow?: string;\n /** The close or collapse icon button. */\n close?: string;\n /** The scrollable content area. */\n content?: string;\n}\n\n/** Words the bottom sheet announces. */\nexport interface BottomSheetLabels {\n /**\n * The drag handle while the sheet is half open or collapsed (it expands the sheet).\n * @default \"Expand sheet\"\n */\n expand: string;\n /** The drag handle and collapse button of a fully open standard sheet. @default \"Collapse sheet\" */\n collapse: string;\n /** The drag handle of a fully open modal sheet (it closes the sheet). @default \"Close sheet\" */\n dismiss: string;\n /** The close button of a modal sheet that fills the window height. @default \"Close\" */\n close: string;\n}\n\nconst DEFAULT_LABELS: BottomSheetLabels = {\n expand: 'Expand sheet',\n collapse: 'Collapse sheet',\n dismiss: 'Close sheet',\n close: 'Close',\n};\n\n/**\n * Where a standard bottom sheet rests: `collapsed` to its `peekHeight`, or `expanded` to its\n * full height (Compose `SheetValue.PartiallyExpanded` and `SheetValue.Expanded`). A sheet whose\n * content is no taller than the peek height is always expanded.\n */\nexport type BottomSheetDetent = 'collapsed' | 'expanded';\n\n/** The interactive strip at the top of a sheet without a drag handle (m3.material.io). */\nconst DRAG_ZONE = 48;\n\ntype Naming =\n | {\n /** Accessible name when there's no visible title. Required without `aria-labelledby`. */\n 'aria-label': string;\n }\n | {\n /** Id of the visible title that names the sheet. Required without `aria-label`. */\n 'aria-labelledby': string;\n };\n\ninterface BottomSheetOwnProps {\n /**\n * `modal` opens over a scrim as a dialog that blocks the page; `standard` sits over the\n * page without a scrim, so both can be used at once, and rests collapsed at `peekHeight`\n * or expanded (`detent`). @default \"modal\"\n */\n variant?: 'modal' | 'standard';\n /** Whether the sheet is open (controlled). */\n open?: boolean;\n /** Whether the sheet starts open when uncontrolled. @default false, or true when standard */\n defaultOpen?: boolean;\n /** Called when the sheet opens or closes. */\n onOpenChange?: (open: boolean) => void;\n /** Show the drag handle. Without it, the top 48px of the sheet still drags. @default true */\n dragHandle?: boolean;\n /**\n * Whether dragging the handle, the top of the sheet or (touch and pen) its content moves\n * the sheet. Without it the handle stays a button (a press, Enter or Space), and Escape,\n * the scrim and the close button work as before.\n * @default true\n */\n swipeable?: boolean;\n /**\n * Open fully instead of to half the window when the content is taller than half the\n * window (modal). @default false\n */\n skipPartiallyExpanded?: boolean;\n /**\n * Height of a collapsed standard sheet, px. While collapsed, the content's top-level parts\n * that don't fit entirely in it are `inert`. @default 56\n */\n peekHeight?: number;\n /**\n * Where a standard sheet rests (controlled): `collapsed` at `peekHeight` or `expanded` to\n * its full height, so the app can raise or lower it (\"can be set by the system or toggled\n * by the user\", m3.material.io). Its handle, a drag, Escape and its collapse button then\n * only call `onDetentChange`. A modal sheet ignores it.\n */\n detent?: BottomSheetDetent;\n /**\n * Where a standard sheet first rests when uncontrolled; `expanded` opens it fully raised\n * (Compose `rememberStandardBottomSheetState(initialValue = SheetValue.Expanded)`). It\n * applies each time the sheet opens. A modal sheet ignores it.\n * @default \"collapsed\"\n */\n defaultDetent?: BottomSheetDetent;\n /**\n * Called when a standard sheet moves to another detent: by its handle (a press, Enter or\n * Space, or a drag), Escape or its collapse button. Not called for a modal sheet.\n */\n onDetentChange?: (detent: BottomSheetDetent) => void;\n /**\n * How the user can close a modal sheet, as HTML's `<dialog closedby>`: `any` (Escape, a\n * press on the scrim or a drag down), `closerequest` (Escape or a drag down) or `none`\n * (only its buttons or the app). @default \"any\"\n */\n closedBy?: ClosedBy;\n /**\n * While the sheet fills the window height, show a close button (modal) or a collapse\n * button (standard) at its top end. @default true\n */\n closeButton?: boolean;\n /** Replaces the close button's icon. */\n closeIcon?: ReactElement;\n /** Replaces the collapse button's icon. */\n collapseIcon?: ReactElement;\n /** Words the sheet announces, with English defaults. */\n labels?: Partial<BottomSheetLabels>;\n children?: ReactNode | ((props: { close: () => void }) => ReactNode);\n /** Classes for each part, by slot. */\n classNames?: BottomSheetClassNames;\n /**\n * Goes with `style` on the outermost element, the container that places the sheet, so a\n * layout class (`absolute`, `fixed`, a transform) moves the whole sheet and never clips or\n * stretches its surface. Style the surface with `classNames.panel`; `ref`, `data-*` and\n * other attributes go on the panel.\n */\n className?: string;\n /** Goes on the outermost element, with `className`. */\n style?: CSSProperties;\n /** Ref to the panel, the sheet's surface (`role=\"dialog\"`). */\n ref?: Ref<HTMLDivElement>;\n}\n\nexport type BottomSheetProps = BottomSheetOwnProps &\n Naming &\n Omit<ComponentPropsWithRef<'div'>, keyof BottomSheetOwnProps | 'aria-label' | 'aria-labelledby'>;\n\n/**\n * M3 bottom sheet. A `modal` sheet slides up over a scrim, opening to half the window when\n * its content is taller (drag the handle up, or press it, to expand), and closes on a drag\n * down, a press on the scrim or Escape, in one press from any height. A\n * `standard` sheet sits over the page without a scrim, collapsed to `peekHeight` until it\n * is expanded, or opening expanded with `defaultDetent=\"expanded\"`; `detent` and\n * `onDetentChange` control it.\n *\n * @example\n * <SheetTrigger>\n * <Button>Share</Button>\n * <BottomSheet aria-label=\"Share\">{({ close }) => <ShareOptions onPick={close} />}</BottomSheet>\n * </SheetTrigger>\n */\nexport function BottomSheet({\n variant = 'modal',\n open,\n defaultOpen,\n onOpenChange,\n ...props\n}: BottomSheetProps) {\n const trigger = useContext(SheetTriggerContext);\n const ownState = useOverlayTriggerState({\n isOpen: open,\n defaultOpen: defaultOpen ?? (variant === 'standard' ? true : undefined),\n onOpenChange,\n });\n const state = (variant === 'modal' ? trigger?.state : undefined) ?? ownState;\n const { isPresent, isExiting, exitProps } = usePresence(state.isOpen, SHEET_EXIT_PROPERTIES);\n if (!isPresent) return null;\n if (variant === 'standard')\n return (\n <BottomSheetPanel\n {...props}\n variant=\"standard\"\n state={state}\n isExiting={isExiting}\n exitProps={exitProps}\n />\n );\n return (\n <Overlay exiting={isExiting}>\n <ModalBottomSheet\n {...props}\n state={state}\n isExiting={isExiting}\n exitProps={exitProps}\n triggerOverlayProps={trigger?.overlayProps}\n />\n </Overlay>\n );\n}\n\nfunction ModalBottomSheet({\n state,\n isExiting,\n triggerOverlayProps,\n closedBy = 'any',\n classNames,\n ref,\n ...props\n}: Omit<PanelProps, 'variant' | 'panelProps'> & { triggerOverlayProps?: { id?: string } }) {\n const panelRef = useObjectRef(ref as Ref<HTMLDivElement>);\n const { modalProps, underlayProps } = useModalOverlay(\n {\n ...closedByOverlayOptions(closedBy, isExiting),\n // The panel handles Escape itself (below), so a nested control's Escape stays its own.\n isKeyboardDismissDisabled: true,\n },\n state,\n panelRef,\n );\n const { dialogProps } = useDialog(props as AriaDialogProps, panelRef);\n // Initial focus goes to the first interactive element (the drag handle, when there is one;\n // M3), as in a Dialog, not to the panel.\n useEffect(() => focusFirstInteractive(panelRef.current), [panelRef]);\n const styles = bottomSheetStyles();\n return (\n <>\n <div\n aria-hidden=\"true\"\n data-exiting={isExiting || undefined}\n className={styles.scrim({ class: classNames?.scrim })}\n />\n <div {...underlayProps} className=\"fixed inset-0 z-(--md-sys-z-sheet)\">\n <BottomSheetPanel\n {...props}\n variant=\"modal\"\n closedBy={closedBy}\n state={state}\n isExiting={isExiting}\n classNames={classNames}\n ref={panelRef}\n panelProps={mergeProps(triggerOverlayProps ?? {}, modalProps, dialogProps)}\n />\n </div>\n </>\n );\n}\n\ntype PanelProps = Omit<BottomSheetProps, 'open' | 'defaultOpen' | 'onOpenChange' | 'variant'> & {\n variant: 'modal' | 'standard';\n state: OverlayTriggerState;\n isExiting: boolean;\n exitProps: ReturnType<typeof usePresence>['exitProps'];\n /** Props from the modal overlay and dialog hooks. */\n panelProps?: HTMLAttributes<HTMLElement>;\n};\n\n/** The sheet itself: the moving wrapper, the panel, its handle and its detents. */\nfunction BottomSheetPanel({\n variant,\n state,\n isExiting,\n exitProps,\n panelProps: overlayPanelProps,\n dragHandle = true,\n swipeable = true,\n skipPartiallyExpanded = false,\n peekHeight = 56,\n detent: detentProp,\n defaultDetent = 'collapsed',\n onDetentChange,\n closedBy = 'any',\n closeButton = true,\n closeIcon,\n collapseIcon,\n labels: labelsProp,\n children,\n className,\n classNames,\n style,\n ref,\n ...rest\n}: PanelProps) {\n const labels = { ...DEFAULT_LABELS, ...labelsProp };\n const standard = variant === 'standard';\n const panelRef = useObjectRef(ref as Ref<HTMLDivElement>);\n const motionRef = useRef<HTMLDivElement>(null);\n const styles = bottomSheetStyles({ variant, swipeable });\n const [height, setHeight] = useState(0);\n const [viewport, setViewport] = useState({ width: 0, height: 0 });\n // The lower detent is half the window (modal) or the peek height (standard); `null` rests\n // on the lower detent when there is one.\n const [ownDetent, setOwnDetent] = useState<'expanded' | 'lower' | null>(\n standard && defaultDetent === 'expanded' ? 'expanded' : null,\n );\n const controlledDetent =\n standard && detentProp !== undefined\n ? detentProp === 'expanded'\n ? 'expanded'\n : 'lower'\n : undefined;\n const detent = controlledDetent ?? ownDetent;\n const [drag, setDrag] = useState<number | null>(null);\n // A drag's settle continues at the speed the pointer let go with, as Compose's\n // `animateTo(target, velocity)` does: the spring starts with that velocity, as a `linear()`\n // easing and duration set on the moving layer until its move ends (2026-10-17; it started\n // from rest). Under reduced motion settling stays instant.\n const { motion: motionScheme } = useThemeScope();\n const [settleMotion, setSettleMotion] = useState<ReleaseMotion | null>(null);\n // A drag let go to close: the offset stays where the pointer left it, so the exit leaves\n // from there (and, under reduced motion, fades there, as the side sheet does). If the\n // sheet is still open after that render, the app refused and the sheet springs back.\n const [dragClosing, setDragClosing] = useState(false);\n if (dragClosing && state.isOpen) {\n setDragClosing(false);\n setDrag(null);\n setSettleMotion(null);\n }\n const contentRef = useRef<HTMLDivElement>(null);\n const pointer = useRef({\n pending: false,\n fromHandle: false,\n /** Started on the content, where a drag only moves the sheet once it picks `drag`. */\n fromContent: false,\n gesture: 'undecided' as ContentGesture,\n x: 0,\n y: 0,\n offset: 0,\n id: 0,\n samples: [] as DragSample[],\n });\n\n // The lower detent: a modal sheet taller than half the window opens to half (Compose's\n // PartiallyExpanded); a standard sheet collapses to its peek height (BottomSheetScaffold).\n const lowerOffset = standard ? height - peekHeight : height - viewport.height / 2;\n const hasLower = standard ? height > peekHeight : !skipPartiallyExpanded && lowerOffset > 0;\n // Where the sheet rests: the lower detent only when it has one.\n const current = detent === 'expanded' || !hasLower ? 'expanded' : 'lower';\n const restingOffset = current === 'lower' ? lowerOffset : 0;\n const offset = drag ?? restingOffset;\n const maxOffset = standard ? Math.max(0, lowerOffset) : height;\n const detentName = current === 'expanded' ? 'expanded' : standard ? 'collapsed' : 'partial';\n\n // Moving down to a lower detent while staying open (Escape, the handle or the collapse\n // button on a full sheet, or the app lowering it) runs on the fast effects spring, which\n // doesn't overshoot, as Compose's `partialExpand()` (`hideMotionSpec`); on the spatial\n // spring the sheet dropped a few pixels below the detent. A drag's settle keeps the\n // spatial spring (Compose's `anchoredDraggableMotion`), and so do the entry and every\n // move up. It's state, rendered with the move, so the transition starts with it.\n const [lowering, setLowering] = useState(false);\n const [previousControlled, setPreviousControlled] = useState(controlledDetent);\n if (controlledDetent !== previousControlled) {\n setPreviousControlled(controlledDetent);\n setLowering(controlledDetent === 'lower');\n setSettleMotion(null);\n }\n\n /** Moves to `next`, telling `onDetentChange` when a standard sheet's detent changes. */\n const setDetent = (next: 'expanded' | 'lower', fromDrag = false) => {\n setLowering(next === 'lower' && !fromDrag);\n if (!fromDrag) setSettleMotion(null);\n if (controlledDetent === undefined) setOwnDetent(next);\n const resting = next === 'lower' && hasLower ? 'lower' : 'expanded';\n if (standard && resting !== current)\n onDetentChange?.(resting === 'expanded' ? 'expanded' : 'collapsed');\n };\n\n useLayoutEffect(() => {\n const element = motionRef.current;\n if (!element) return;\n const measure = () => {\n setHeight(element.offsetHeight);\n setViewport({ width: window.innerWidth, height: window.innerHeight });\n };\n measure();\n const observer = typeof ResizeObserver === 'undefined' ? null : new ResizeObserver(measure);\n observer?.observe(element);\n window.addEventListener('resize', measure);\n return () => {\n observer?.disconnect();\n window.removeEventListener('resize', measure);\n };\n }, []);\n\n const close = state.close;\n\n // A modal sheet's last anchor is closed, unless the user may not close it (`closedBy=\"none\"`).\n const closable = !standard && closedBy !== 'none';\n const anchors = [0, ...(hasLower ? [lowerOffset] : []), ...(closable ? [height] : [])];\n\n const settle = (target: number, velocity: number) => {\n const closing = !standard && target >= height - 0.5;\n // A closing sheet leaves to 112% of its height on the fast spatial spring (its exit).\n const end = closing ? height * EXIT_DISTANCE : target;\n setSettleMotion(releaseMotion(motionScheme, closing, velocity, end - (drag ?? restingOffset)));\n if (closing) {\n setDragClosing(true);\n close();\n } else {\n setDrag(null);\n setDetent(target === 0 ? 'expanded' : 'lower', true);\n }\n };\n\n /** The handle's action: expand a lower sheet, collapse a standard one, close a modal one. */\n const cycle = () => {\n if (current === 'lower') setDetent('expanded');\n else if (standard) setDetent('lower');\n else close();\n };\n\n const startPointer = (\n event: PointerEvent<HTMLElement>,\n fromHandle: boolean,\n fromContent = false,\n ) => {\n // A leaving sheet takes no new drag.\n if (event.button !== 0 || isExiting) return;\n setSettleMotion(null);\n pointer.current = {\n pending: true,\n fromHandle,\n fromContent,\n gesture: 'undecided',\n x: event.clientX,\n y: event.clientY,\n offset: restingOffset,\n id: event.pointerId,\n samples: [{ position: event.clientY, time: event.timeStamp }],\n };\n };\n const movePointer = (event: PointerEvent<HTMLElement>) => {\n const start = pointer.current;\n if (!start.pending) return;\n if (start.fromContent && start.gesture !== 'drag') {\n // Once a touch on the content picks scrolling or dragging, it keeps that choice.\n start.gesture = contentGesture(\n event.clientX - start.x,\n event.clientY - start.y,\n scrolledAbove(event.target as Element, contentRef.current!),\n current === 'lower',\n );\n if (start.gesture === 'undecided') return;\n if (start.gesture === 'scroll') {\n start.pending = false;\n return;\n }\n }\n // Without `swipeable` the handle is only a button: a move never drags it.\n if (!swipeable) return;\n start.samples = [...start.samples, { position: event.clientY, time: event.timeStamp }];\n if (drag === null && Math.abs(event.clientY - start.y) <= DRAG_SLOP) return;\n if (drag === null) event.currentTarget.setPointerCapture?.(start.id);\n const raw = start.offset + event.clientY - start.y;\n setDrag(Math.min(maxOffset, Math.max(0, raw)));\n // A drag up from the content that has raised the sheet fully scrolls the content with the\n // rest of the move, as Compose's nested scroll hands it over.\n if (start.fromContent && contentRef.current) contentRef.current.scrollTop = Math.max(0, -raw);\n };\n const endPointer = (event: PointerEvent<HTMLElement>) => {\n const start = pointer.current;\n if (!start.pending) return;\n start.pending = false;\n if (drag === null) {\n // A press on the handle cycles the sheet (Compose's handle click).\n if (start.fromHandle) cycle();\n return;\n }\n // From the last 100ms of moves, so a slow drag ending in a flick reads as a fling.\n const velocity = releaseVelocity([\n ...start.samples,\n { position: event.clientY, time: event.timeStamp },\n ]);\n settle(settleTarget(anchors, start.offset, drag, velocity), velocity);\n };\n const cancelPointer = () => {\n pointer.current.pending = false;\n setSettleMotion(null);\n setDrag(null);\n };\n\n // Without a handle the top 48px of the sheet still drags it (m3.material.io).\n const onZonePointerDown = (event: PointerEvent<HTMLDivElement>) => {\n if (!swipeable) return;\n const top = event.currentTarget.getBoundingClientRect().top;\n if (event.clientY - top <= DRAG_ZONE) startPointer(event, false);\n };\n\n // A touch (or pen) drag down on content scrolled to its top moves the sheet, as the\n // handle does. Mouse drags select text instead, as they always have on the web.\n const onContentPointerDown = (event: PointerEvent<HTMLDivElement>) => {\n const content = contentRef.current;\n const target = event.target as Element;\n pointer.current.fromContent = false;\n if (!swipeable || event.pointerType === 'mouse' || !content?.contains(target)) return;\n if (ownsGesture(target, content)) return;\n startPointer(event, false, true);\n };\n\n // While the content is at its top, the browser only scrolls it for upward and sideways\n // moves (`touch-action: pan-x pan-down`), so a downward one reaches the sheet as pointer\n // events. Browsers without `pan-down` (iOS Safari) are stopped from scrolling or\n // rubber-banding by cancelling the touch moves of a drag.\n useEffect(() => {\n const content = contentRef.current;\n if (!content) return;\n const update = () => content.toggleAttribute('data-at-top', content.scrollTop <= 0);\n const onTouchMove = (event: TouchEvent) => {\n const start = pointer.current;\n if (start.pending && start.fromContent && start.gesture === 'drag' && event.cancelable)\n event.preventDefault();\n };\n update();\n content.addEventListener('scroll', update, { passive: true });\n content.addEventListener('touchmove', onTouchMove, { passive: false });\n return () => {\n content.removeEventListener('scroll', update);\n content.removeEventListener('touchmove', onTouchMove);\n };\n }, []);\n\n const onKeyDown = (event: KeyboardEvent) => {\n if (event.key !== 'Escape' || isExiting) return;\n if (standard) {\n if (current !== 'expanded' || !hasLower) return;\n event.stopPropagation();\n setDetent('lower');\n return;\n }\n // Escape is a close request: it closes a modal sheet in one press, from any detent (WAI-ARIA\n // APG modal dialog; HTML's close request), unless the user may not close it.\n if (closedBy === 'none') return;\n event.stopPropagation();\n close();\n };\n\n const handleRef = useRef<HTMLDivElement>(null);\n usePeekInert(\n panelRef,\n contentRef,\n detentName === 'collapsed',\n peekHeight,\n () => handleRef.current ?? panelRef.current,\n );\n\n // The collapse button leaves once the sheet stops filling the window, so focus moves to the\n // handle (or the panel) first instead of dropping to the page.\n const collapseFromButton = () => {\n (handleRef.current ?? panelRef.current)?.focus({ preventScroll: true });\n setDetent('lower');\n };\n\n const { focusProps: handleFocusProps, isFocusVisible: handleFocusVisible } = useFocusRing();\n const exiting = isExiting || undefined;\n const dragging = (drag !== null && !dragClosing) || undefined;\n const handleLabel =\n current === 'lower' ? labels.expand : standard ? labels.collapse : labels.dismiss;\n // The sheet fills the window up to its top margin: 72px, or 56px above 640px wide.\n const topMargin = viewport.width > 640 ? 56 : 72;\n const fillsWindow =\n current === 'expanded' && viewport.height > 0 && height >= viewport.height - topMargin - 0.5;\n const showCloseButton = closeButton && fillsWindow && (!standard || hasLower);\n\n // A standard sheet is a non-modal dialog: no scrim, no focus trap, the page stays usable.\n const roleProps: HTMLAttributes<HTMLElement> = standard\n ? { role: 'dialog', tabIndex: -1 }\n : (overlayPanelProps ?? {});\n const panelProps = mergeProps(rest, roleProps, { onKeyDown });\n const zone = !dragHandle;\n\n return (\n <div\n style={style}\n className={styles.container({ class: cn(classNames?.container, className) })}\n >\n <div\n {...mergeProps(exitProps, {\n onTransitionEnd: (event: TransitionEvent<HTMLDivElement>) => {\n if (event.target === event.currentTarget && event.propertyName === 'translate')\n setSettleMotion(null);\n },\n })}\n ref={motionRef}\n data-exiting={exiting}\n data-dragging={dragging}\n data-lowering={lowering || undefined}\n data-settling={settleMotion ? '' : undefined}\n style={\n {\n '--m3-sheet-offset': `${offset}px`,\n ...(settleMotion && {\n transitionDuration: `${settleMotion.duration}ms`,\n transitionTimingFunction: settleMotion.easing,\n }),\n } as CSSProperties\n }\n className={styles.motion()}\n >\n <div\n {...panelProps}\n // Content drags listen in the capture phase: pressable content (list items, buttons)\n // stops its pointer events from bubbling.\n onPointerDownCapture={(event) => {\n panelProps.onPointerDownCapture?.(event);\n onContentPointerDown(event);\n }}\n onPointerMoveCapture={(event) => {\n panelProps.onPointerMoveCapture?.(event);\n if (pointer.current.fromContent) movePointer(event);\n }}\n onPointerUpCapture={(event) => {\n panelProps.onPointerUpCapture?.(event);\n if (pointer.current.fromContent) endPointer(event);\n }}\n onPointerCancelCapture={(event) => {\n panelProps.onPointerCancelCapture?.(event);\n if (pointer.current.fromContent) cancelPointer();\n }}\n onPointerDown={(event) => {\n panelProps.onPointerDown?.(event);\n if (zone && !pointer.current.fromContent) onZonePointerDown(event);\n }}\n onPointerMove={(event) => {\n panelProps.onPointerMove?.(event);\n if (zone && !pointer.current.fromContent) movePointer(event);\n }}\n onPointerUp={(event) => {\n panelProps.onPointerUp?.(event);\n if (zone && !pointer.current.fromContent) endPointer(event);\n }}\n onPointerCancel={(event) => {\n panelProps.onPointerCancel?.(event);\n if (zone && !pointer.current.fromContent) cancelPointer();\n }}\n ref={panelRef}\n // The component tokens' hooks (sheet-tokens.ts); `data-variant` is also public.\n data-tokens={mergeDataTokens('md-comp-sheet-bottom-docked', rest)}\n data-variant={variant}\n data-detent={detentName}\n data-exiting={exiting}\n data-dragging={dragging}\n className={styles.panel({ class: classNames?.panel })}\n >\n <TriggerContext value={null}>\n {dragHandle && (\n <div\n {...handleFocusProps}\n ref={handleRef}\n role=\"button\"\n tabIndex={0}\n data-focus-visible={handleFocusVisible || undefined}\n aria-label={handleLabel}\n data-dragging={dragging}\n onPointerDown={(event) => startPointer(event, true)}\n onPointerMove={movePointer}\n onPointerUp={endPointer}\n onPointerCancel={cancelPointer}\n onKeyDown={(event) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n cycle();\n }\n }}\n className={styles.handle({ class: classNames?.handle })}\n >\n <span\n data-slot=\"drag-handle\"\n className={styles.handleBar({ class: classNames?.handleBar })}\n />\n </div>\n )}\n {showCloseButton && (\n <div className={styles.closeRow({ class: classNames?.closeRow })}>\n <IconButton\n variant=\"standard\"\n density={0}\n icon={\n standard ? (collapseIcon ?? <CollapseIcon />) : (closeIcon ?? <CloseIcon />)\n }\n aria-label={standard ? labels.collapse : labels.close}\n onPress={standard ? collapseFromButton : close}\n className={classNames?.close}\n />\n </div>\n )}\n <div\n ref={contentRef}\n data-can-rise={current === 'lower' || undefined}\n className={styles.content({ class: classNames?.content })}\n >\n {typeof children === 'function' ? children({ close }) : children}\n </div>\n </TriggerContext>\n </div>\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { ReactNode } from "react";
2
+ import { OverlayTriggerState } from "react-stately";
3
+ //#region src/components/sheet/SheetTrigger.d.ts
4
+ export interface SheetTriggerProps {
5
+ /** The trigger (a library button) followed by a `BottomSheet` or modal `SideSheet`. */
6
+ children: ReactNode;
7
+ /** Whether the sheet is open (controlled). */
8
+ open?: boolean;
9
+ /** Whether the sheet starts open when uncontrolled. @default false */
10
+ defaultOpen?: boolean;
11
+ /** Called when the sheet opens or closes. */
12
+ onOpenChange?: (open: boolean) => void;
13
+ }
14
+ /**
15
+ * Opens a modal {@link BottomSheet} or {@link SideSheet} from a button.
16
+ *
17
+ * @example
18
+ * <SheetTrigger>
19
+ * <Button>Share</Button>
20
+ * <BottomSheet aria-label="Share">…</BottomSheet>
21
+ * </SheetTrigger>
22
+ */
23
+ export declare function SheetTrigger({ children, open, defaultOpen, onOpenChange }: SheetTriggerProps): import("react").JSX.Element;
24
+ //#endregion
25
+ //# sourceMappingURL=SheetTrigger.d.ts.map
@@ -0,0 +1,46 @@
1
+ "use client";
2
+ import { TriggerContext, useTriggerProps } from "../../primitives/TriggerContext.js";
3
+ import { Children, createContext, useRef } from "react";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ import { useOverlayTrigger } from "react-aria";
6
+ import { useOverlayTriggerState } from "react-stately";
7
+ //#region src/components/sheet/SheetTrigger.tsx
8
+ /** Set by {@link SheetTrigger} for the modal sheet inside it. */
9
+ const SheetTriggerContext = createContext(null);
10
+ /**
11
+ * Opens a modal {@link BottomSheet} or {@link SideSheet} from a button.
12
+ *
13
+ * @example
14
+ * <SheetTrigger>
15
+ * <Button>Share</Button>
16
+ * <BottomSheet aria-label="Share">…</BottomSheet>
17
+ * </SheetTrigger>
18
+ */
19
+ function SheetTrigger({ children, open, defaultOpen, onOpenChange }) {
20
+ const state = useOverlayTriggerState({
21
+ isOpen: open,
22
+ defaultOpen,
23
+ onOpenChange
24
+ });
25
+ const triggerRef = useRef(null);
26
+ const { triggerProps, overlayProps } = useOverlayTrigger({ type: "dialog" }, state, triggerRef);
27
+ const triggerValue = useTriggerProps({
28
+ ...triggerProps,
29
+ ref: triggerRef
30
+ });
31
+ const [trigger, ...sheet] = Children.toArray(children);
32
+ return /* @__PURE__ */ jsxs(SheetTriggerContext, {
33
+ value: {
34
+ state,
35
+ overlayProps
36
+ },
37
+ children: [/* @__PURE__ */ jsx(TriggerContext, {
38
+ value: triggerValue,
39
+ children: trigger
40
+ }), sheet]
41
+ });
42
+ }
43
+ //#endregion
44
+ export { SheetTrigger, SheetTriggerContext };
45
+
46
+ //# sourceMappingURL=SheetTrigger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SheetTrigger.js","names":[],"sources":["../../../src/components/sheet/SheetTrigger.tsx"],"sourcesContent":["'use client';\n\nimport { Children, createContext, useRef, type ReactNode } from 'react';\nimport { useOverlayTrigger } from 'react-aria';\nimport { useOverlayTriggerState, type OverlayTriggerState } from 'react-stately';\nimport {\n TriggerContext,\n useTriggerProps,\n type TriggerContextValue,\n} from '../../primitives/TriggerContext';\n\nexport interface SheetTriggerContextValue {\n state: OverlayTriggerState;\n overlayProps: { id?: string };\n}\n\n/** Set by {@link SheetTrigger} for the modal sheet inside it. */\nexport const SheetTriggerContext = createContext<SheetTriggerContextValue | null>(null);\n\nexport interface SheetTriggerProps {\n /** The trigger (a library button) followed by a `BottomSheet` or modal `SideSheet`. */\n children: ReactNode;\n /** Whether the sheet is open (controlled). */\n open?: boolean;\n /** Whether the sheet starts open when uncontrolled. @default false */\n defaultOpen?: boolean;\n /** Called when the sheet opens or closes. */\n onOpenChange?: (open: boolean) => void;\n}\n\n/**\n * Opens a modal {@link BottomSheet} or {@link SideSheet} from a button.\n *\n * @example\n * <SheetTrigger>\n * <Button>Share</Button>\n * <BottomSheet aria-label=\"Share\">…</BottomSheet>\n * </SheetTrigger>\n */\nexport function SheetTrigger({ children, open, defaultOpen, onOpenChange }: SheetTriggerProps) {\n const state = useOverlayTriggerState({ isOpen: open, defaultOpen, onOpenChange });\n const triggerRef = useRef<HTMLElement>(null);\n const { triggerProps, overlayProps } = useOverlayTrigger({ type: 'dialog' }, state, triggerRef);\n const triggerValue = useTriggerProps({\n ...(triggerProps as TriggerContextValue),\n ref: triggerRef,\n });\n const [trigger, ...sheet] = Children.toArray(children);\n return (\n <SheetTriggerContext value={{ state, overlayProps }}>\n <TriggerContext value={triggerValue}>{trigger}</TriggerContext>\n {sheet}\n </SheetTriggerContext>\n );\n}\n"],"mappings":";;;;;;;;AAiBA,MAAa,sBAAsB,cAA+C,IAAI;;;;;;;;;;AAsBtF,SAAgB,aAAa,EAAE,UAAU,MAAM,aAAa,gBAAmC;CAC7F,MAAM,QAAQ,uBAAuB;EAAE,QAAQ;EAAM;EAAa;CAAa,CAAC;CAChF,MAAM,aAAa,OAAoB,IAAI;CAC3C,MAAM,EAAE,cAAc,iBAAiB,kBAAkB,EAAE,MAAM,SAAS,GAAG,OAAO,UAAU;CAC9F,MAAM,eAAe,gBAAgB;EACnC,GAAI;EACJ,KAAK;CACP,CAAC;CACD,MAAM,CAAC,SAAS,GAAG,SAAS,SAAS,QAAQ,QAAQ;CACrD,OACE,qBAAC,qBAAD;EAAqB,OAAO;GAAE;GAAO;EAAa;EAAlD,UAAA,CACE,oBAAC,gBAAD;GAAgB,OAAO;GAAe,UAAA;EAAwB,CAAA,GAC7D,KACkB;;AAEzB"}