@windmorph/react 0.0.0-stage → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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,139 @@
1
+ import { ClosedBy } from "../../utils/closed-by.js";
2
+ import { CSSProperties, ComponentPropsWithRef, ReactElement, ReactNode, Ref } from "react";
3
+ //#region src/components/sheet/SideSheet.d.ts
4
+ export interface SideSheetClassNames {
5
+ /**
6
+ * The outermost element, which places the sheet (where `className` and `style` go too):
7
+ * a modal sheet's box `fixed` to the window's `edge`, or a standard sheet's layout box.
8
+ */
9
+ container?: string;
10
+ /** The dimmed layer behind a modal sheet. */
11
+ scrim?: string;
12
+ /** The sheet's surface: its colour, corners, width and shadow. */
13
+ panel?: string;
14
+ /** The header row: back button, title, actions and close button. */
15
+ header?: string;
16
+ /** The back button. */
17
+ back?: string;
18
+ /** The headline. */
19
+ title?: string;
20
+ /** The end of the header: `actions` and the close button. */
21
+ headerActions?: string;
22
+ /** The close button. */
23
+ close?: string;
24
+ /** The scrollable content area. */
25
+ content?: string;
26
+ /** The bottom row of action buttons. */
27
+ footer?: string;
28
+ }
29
+ /** Words the side sheet announces. */
30
+ export interface SideSheetLabels {
31
+ /** The close button. @default "Close" */
32
+ close: string;
33
+ /** The back button (with `onBack`). @default "Back" */
34
+ back: string;
35
+ }
36
+ interface SideSheetRenderProps {
37
+ /** Closes a modal sheet, or reports `onOpenChange(false)` for a standard one. */
38
+ close: () => void;
39
+ }
40
+ interface SideSheetOwnProps {
41
+ /**
42
+ * `modal` opens over a scrim as a dialog; `standard` sits in the layout beside the
43
+ * content and opens and closes its width. @default "modal"
44
+ */
45
+ variant?: 'modal' | 'standard';
46
+ /** Float 16px from the edges with corners all round. @default false */
47
+ detached?: boolean;
48
+ /**
49
+ * The window edge the sheet is anchored to: `end` (the right in a left-to-right page, the
50
+ * left in RTL, as M3 asks) or `start`. A modal sheet slides in from it and swipes out toward
51
+ * it; a standard sheet faces it, with its divider on the other side. The root's `data-edge`
52
+ * says which.
53
+ * @default "end"
54
+ */
55
+ edge?: 'start' | 'end';
56
+ /**
57
+ * Whether a touch or pen swipe toward the sheet's edge closes a modal sheet (past half its
58
+ * width, or a fling). The close button, Escape and the scrim still close it either way, and
59
+ * a mouse drag never moves it. Off when `closedBy` is `"none"`; a standard sheet ignores
60
+ * it. To keep the sheet open after a swipe (unsaved changes), control `open` and leave it
61
+ * `true`: the sheet springs back.
62
+ * @default true
63
+ */
64
+ swipeable?: boolean;
65
+ /** Whether the sheet is open (controlled). */
66
+ open?: boolean;
67
+ /** Whether the sheet starts open when uncontrolled. @default false, or true when standard */
68
+ defaultOpen?: boolean;
69
+ /** Called when the sheet opens or closes. */
70
+ onOpenChange?: (open: boolean) => void;
71
+ /** The headline. It names the sheet. */
72
+ title?: ReactNode;
73
+ /** Shows a back button before the title, for a sheet with several levels. */
74
+ onBack?: () => void;
75
+ /** Header controls before the close button. */
76
+ actions?: ReactNode | ((props: SideSheetRenderProps) => ReactNode);
77
+ /** Bottom action buttons, start-aligned, e.g. Save and Cancel. */
78
+ footer?: ReactNode | ((props: SideSheetRenderProps) => ReactNode);
79
+ /** A divider between the content and `footer`. @default false */
80
+ footerDivider?: boolean;
81
+ /** A divider between a standard sheet and the content beside it. @default true */
82
+ divider?: boolean;
83
+ /**
84
+ * How the user can close a modal sheet, as HTML's `<dialog closedby>`: `any` (Escape, a
85
+ * press on the scrim or a swipe), `closerequest` (Escape or a swipe) or `none` (only its
86
+ * buttons or the app).
87
+ * @default "any"
88
+ */
89
+ closedBy?: ClosedBy;
90
+ /** Replaces the close button's icon. */
91
+ closeIcon?: ReactElement;
92
+ /** Replaces the back button's icon. */
93
+ backIcon?: ReactElement;
94
+ /** Words the sheet announces, with English defaults. */
95
+ labels?: Partial<SideSheetLabels>;
96
+ children?: ReactNode | ((props: SideSheetRenderProps) => ReactNode);
97
+ /** Classes for each part, by slot. */
98
+ classNames?: SideSheetClassNames;
99
+ /**
100
+ * Goes with `style` on the outermost element, the box that places the sheet, so a layout class
101
+ * moves the whole sheet and never clips or stretches its surface. Style the surface with
102
+ * `classNames.panel`; `ref`, `data-*` and other attributes go on the panel (a standard
103
+ * sheet's are on its outer box).
104
+ */
105
+ className?: string;
106
+ /** Goes on the outermost element, with `className`. */
107
+ style?: CSSProperties;
108
+ /** Ref to the panel, the sheet's surface (`role="dialog"`); a standard sheet's outer box. */
109
+ ref?: Ref<HTMLDivElement>;
110
+ }
111
+ type Naming = {
112
+ title: ReactNode;
113
+ /** Accessible name when there's no visible title; overrides `title` when both are set. */
114
+ 'aria-label'?: string;
115
+ } | {
116
+ /** Accessible name when there's no visible title. */
117
+ 'aria-label': string;
118
+ } | {
119
+ /** Id of a visible element that names the sheet, when there's no `title`. */
120
+ 'aria-labelledby': string;
121
+ };
122
+ export type SideSheetProps = SideSheetOwnProps & Naming & Omit<ComponentPropsWithRef<'div'>, keyof SideSheetOwnProps | 'aria-label' | 'aria-labelledby'>;
123
+ /**
124
+ * M3 side sheet: supplementary content at the end edge of the window (`edge="start"` for the
125
+ * other). A modal sheet slides in over a scrim as a dialog (Escape, a press outside or a
126
+ * touch swipe toward its edge closes it); a standard sheet sits in the layout as a non-modal
127
+ * dialog and opens and closes its width. Both always show a close button, as M3 requires.
128
+ *
129
+ * @example
130
+ * <SheetTrigger>
131
+ * <Button>Filters</Button>
132
+ * <SideSheet title="Filters" footer={({ close }) => <Button onPress={close}>Apply</Button>}>
133
+ * …
134
+ * </SideSheet>
135
+ * </SheetTrigger>
136
+ */
137
+ export declare function SideSheet({ variant, open, defaultOpen, onOpenChange, ...props }: SideSheetProps): import("react").JSX.Element | null;
138
+ //#endregion
139
+ //# sourceMappingURL=SideSheet.d.ts.map
@@ -0,0 +1,289 @@
1
+ "use client";
2
+ import { cn } from "../../utils/cn.js";
3
+ import { TriggerContext } from "../../primitives/TriggerContext.js";
4
+ import { mergeDataTokens } from "../../utils/merge-data-tokens.js";
5
+ import { usePresence } from "../../primitives/use-presence.js";
6
+ import { IconButton } from "../icon-button/IconButton.js";
7
+ import { focusFirstInteractive, tabbables } from "../../utils/focus.js";
8
+ import { Overlay as Overlay$1 } from "../../primitives/Overlay.js";
9
+ import { DensityZeroButtons } from "../button/DensityZeroButtons.js";
10
+ import { BackIcon, CloseIcon } from "./sheet-icons.js";
11
+ import { closedByOverlayOptions } from "../../utils/closed-by.js";
12
+ import { SheetTriggerContext } from "./SheetTrigger.js";
13
+ import { SHEET_EXIT_PROPERTIES, sideSheetStyles } from "./sheet-styles.js";
14
+ import { useSideSwipe } from "./use-side-swipe.js";
15
+ import { useContext, useEffect, useId, useLayoutEffect, useRef, useState } from "react";
16
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
17
+ import { mergeProps, useDialog, useModalOverlay, useObjectRef } from "react-aria";
18
+ import { useOverlayTriggerState } from "react-stately";
19
+ //#region src/components/sheet/SideSheet.tsx
20
+ const DEFAULT_LABELS = {
21
+ close: "Close",
22
+ back: "Back"
23
+ };
24
+ /**
25
+ * M3 side sheet: supplementary content at the end edge of the window (`edge="start"` for the
26
+ * other). A modal sheet slides in over a scrim as a dialog (Escape, a press outside or a
27
+ * touch swipe toward its edge closes it); a standard sheet sits in the layout as a non-modal
28
+ * dialog and opens and closes its width. Both always show a close button, as M3 requires.
29
+ *
30
+ * @example
31
+ * <SheetTrigger>
32
+ * <Button>Filters</Button>
33
+ * <SideSheet title="Filters" footer={({ close }) => <Button onPress={close}>Apply</Button>}>
34
+ * …
35
+ * </SideSheet>
36
+ * </SheetTrigger>
37
+ */
38
+ function SideSheet({ variant = "modal", open, defaultOpen, onOpenChange, ...props }) {
39
+ const trigger = useContext(SheetTriggerContext);
40
+ const ownState = useOverlayTriggerState({
41
+ isOpen: open,
42
+ defaultOpen: defaultOpen ?? (variant === "standard" ? true : void 0),
43
+ onOpenChange
44
+ });
45
+ const state = (variant === "modal" ? trigger?.state : void 0) ?? ownState;
46
+ const { isPresent, isExiting, exitProps } = usePresence(state.isOpen, SHEET_EXIT_PROPERTIES);
47
+ if (variant === "standard") return /* @__PURE__ */ jsx(StandardSideSheet, {
48
+ ...props,
49
+ state
50
+ });
51
+ if (!isPresent) return null;
52
+ return /* @__PURE__ */ jsx(Overlay$1, {
53
+ exiting: isExiting,
54
+ children: /* @__PURE__ */ jsx(ModalSideSheet, {
55
+ ...props,
56
+ state,
57
+ isExiting,
58
+ exitProps,
59
+ triggerOverlayProps: trigger?.overlayProps
60
+ })
61
+ });
62
+ }
63
+ function SheetBody({ title, titleId, onBack, actions, footer, children, closeIcon, backIcon, labels: labelsProp, close, styles, classNames, contentRef }) {
64
+ const labels = {
65
+ ...DEFAULT_LABELS,
66
+ ...labelsProp
67
+ };
68
+ const renderProps = { close };
69
+ const render = (slot) => typeof slot === "function" ? slot(renderProps) : slot;
70
+ return /* @__PURE__ */ jsxs(Fragment$1, { children: [
71
+ /* @__PURE__ */ jsxs("div", {
72
+ className: styles.header({ class: classNames?.header }),
73
+ children: [
74
+ onBack && /* @__PURE__ */ jsx(IconButton, {
75
+ variant: "standard",
76
+ density: 0,
77
+ icon: backIcon ?? /* @__PURE__ */ jsx(BackIcon, {}),
78
+ "aria-label": labels.back,
79
+ onPress: onBack,
80
+ className: classNames?.back
81
+ }),
82
+ title != null && /* @__PURE__ */ jsx("h2", {
83
+ id: titleId,
84
+ className: styles.title({ class: classNames?.title }),
85
+ children: title
86
+ }),
87
+ /* @__PURE__ */ jsxs("div", {
88
+ className: styles.headerActions({ class: classNames?.headerActions }),
89
+ children: [/* @__PURE__ */ jsx(DensityZeroButtons, { children: render(actions) }), /* @__PURE__ */ jsx(IconButton, {
90
+ variant: "standard",
91
+ density: 0,
92
+ icon: closeIcon ?? /* @__PURE__ */ jsx(CloseIcon, {}),
93
+ "aria-label": labels.close,
94
+ onPress: close,
95
+ className: classNames?.close
96
+ })]
97
+ })
98
+ ]
99
+ }),
100
+ /* @__PURE__ */ jsx("div", {
101
+ ref: contentRef,
102
+ className: styles.content({ class: classNames?.content }),
103
+ children: render(children)
104
+ }),
105
+ footer != null && /* @__PURE__ */ jsx("div", {
106
+ className: styles.footer({ class: classNames?.footer }),
107
+ children: render(footer)
108
+ })
109
+ ] });
110
+ }
111
+ const BODY_KEYS = [
112
+ "title",
113
+ "onBack",
114
+ "actions",
115
+ "footer",
116
+ "children",
117
+ "closeIcon",
118
+ "backIcon",
119
+ "labels",
120
+ "classNames"
121
+ ];
122
+ /** Splits the header, body and footer props from those of the panel element. */
123
+ function splitBodyProps(props) {
124
+ const body = {};
125
+ const rest = { ...props };
126
+ for (const key of BODY_KEYS) {
127
+ body[key] = rest[key];
128
+ delete rest[key];
129
+ }
130
+ return {
131
+ body,
132
+ rest
133
+ };
134
+ }
135
+ /** `aria-labelledby` for the panel: the consumer's, else the title's unless `aria-label` names it. */
136
+ function labelledBy(props, hasTitle, titleId) {
137
+ return props["aria-labelledby"] ?? (props["aria-label"] == null && hasTitle ? titleId : void 0);
138
+ }
139
+ function ModalSideSheet({ state, isExiting, exitProps, triggerOverlayProps, detached = false, edge = "end", swipeable = true, closedBy = "any", divider: _divider, footerDivider = false, className, style, ref, ...props }) {
140
+ const { body, rest } = splitBodyProps(props);
141
+ const panelRef = useObjectRef(ref);
142
+ const motionRef = useRef(null);
143
+ const contentRef = useRef(null);
144
+ const titleId = useId();
145
+ const canSwipe = swipeable && closedBy !== "none";
146
+ const styles = sideSheetStyles({
147
+ variant: "modal",
148
+ edge,
149
+ swipeable: canSwipe,
150
+ detached,
151
+ hasBack: body.onBack != null,
152
+ footerDivider
153
+ });
154
+ const { panelHandlers, motionProps, dragging } = useSideSwipe({
155
+ enabled: canSwipe && !isExiting,
156
+ edge,
157
+ isOpen: state.isOpen,
158
+ close: state.close,
159
+ panelRef,
160
+ motionRef,
161
+ contentRef
162
+ });
163
+ const { modalProps, underlayProps } = useModalOverlay(closedByOverlayOptions(closedBy, isExiting), state, panelRef);
164
+ const { dialogProps } = useDialog({
165
+ ...rest,
166
+ "aria-labelledby": labelledBy(rest, body.title != null, titleId)
167
+ }, panelRef);
168
+ useEffect(() => focusFirstInteractive(panelRef.current), [panelRef]);
169
+ const exiting = isExiting || void 0;
170
+ return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("div", {
171
+ "aria-hidden": "true",
172
+ "data-exiting": exiting,
173
+ className: styles.scrim({ class: body.classNames?.scrim })
174
+ }), /* @__PURE__ */ jsx("div", {
175
+ ...underlayProps,
176
+ className: "fixed inset-0 z-(--md-sys-z-sheet)",
177
+ children: /* @__PURE__ */ jsx("div", {
178
+ style,
179
+ className: styles.container({ class: cn(body.classNames?.container, className) }),
180
+ children: /* @__PURE__ */ jsx("div", {
181
+ ...mergeProps(exitProps, motionProps),
182
+ ref: motionRef,
183
+ "data-exiting": exiting,
184
+ className: styles.motion(),
185
+ children: /* @__PURE__ */ jsx("div", {
186
+ ...mergeProps(rest, triggerOverlayProps ?? {}, modalProps, dialogProps, panelHandlers),
187
+ ref: panelRef,
188
+ "data-tokens": mergeDataTokens("md-comp-sheet-side", rest),
189
+ "data-variant": "modal",
190
+ "data-edge": edge,
191
+ "data-detached": detached || void 0,
192
+ "data-dragging": dragging || void 0,
193
+ "data-exiting": exiting,
194
+ className: styles.panel({ class: body.classNames?.panel }),
195
+ children: /* @__PURE__ */ jsx(TriggerContext, {
196
+ value: null,
197
+ children: /* @__PURE__ */ jsx(SheetBody, {
198
+ ...body,
199
+ titleId,
200
+ close: state.close,
201
+ styles,
202
+ contentRef
203
+ })
204
+ })
205
+ })
206
+ })
207
+ })
208
+ })] });
209
+ }
210
+ function StandardSideSheet({ state, detached = false, edge = "end", swipeable: _swipeable, divider = true, footerDivider = false, closedBy: _closedBy, className, style, ref, ...props }) {
211
+ const { body, rest } = splitBodyProps(props);
212
+ const titleId = useId();
213
+ const styles = sideSheetStyles({
214
+ variant: "standard",
215
+ edge,
216
+ detached,
217
+ divider,
218
+ hasBack: body.onBack != null,
219
+ footerDivider
220
+ });
221
+ const closed = !state.isOpen || void 0;
222
+ const rootRef = useObjectRef(ref);
223
+ const frameRef = useRef(null);
224
+ const [width, setWidth] = useState(null);
225
+ useLayoutEffect(() => {
226
+ const frame = frameRef.current;
227
+ if (!frame) return;
228
+ const measure = () => setWidth(frame.offsetWidth);
229
+ measure();
230
+ if (typeof ResizeObserver === "undefined") return;
231
+ const observer = new ResizeObserver(measure);
232
+ observer.observe(frame);
233
+ return () => observer.disconnect();
234
+ }, []);
235
+ const returnFocus = useRef(null);
236
+ useLayoutEffect(() => {
237
+ const root = rootRef.current;
238
+ const active = root?.ownerDocument.activeElement;
239
+ if (state.isOpen || !root || !(active instanceof HTMLElement) || !root.contains(active)) return;
240
+ const saved = returnFocus.current;
241
+ const target = saved?.isConnected && !root.contains(saved) && !saved.closest("[inert]") ? saved : tabbables(root.ownerDocument.body, (el) => root.contains(el)).filter((el) => el.compareDocumentPosition(root) & Node.DOCUMENT_POSITION_FOLLOWING).at(-1) ?? null;
242
+ if (target) target.focus({ preventScroll: true });
243
+ else active.blur();
244
+ }, [state.isOpen, rootRef]);
245
+ const rootStyle = {
246
+ ...style,
247
+ ...width === null ? {} : { "--m3-side-sheet-width": `${width}px` }
248
+ };
249
+ return /* @__PURE__ */ jsx("div", {
250
+ ...rest,
251
+ onFocus: (event) => {
252
+ rest.onFocus?.(event);
253
+ const from = event.relatedTarget;
254
+ if (from instanceof HTMLElement && !event.currentTarget.contains(from)) returnFocus.current = from;
255
+ },
256
+ ref: rootRef,
257
+ role: "dialog",
258
+ style: rootStyle,
259
+ "data-tokens": mergeDataTokens("md-comp-sheet-side", rest),
260
+ "data-variant": "standard",
261
+ "data-edge": edge,
262
+ "data-detached": detached || void 0,
263
+ "data-closed": closed,
264
+ inert: !state.isOpen,
265
+ "aria-labelledby": labelledBy(rest, body.title != null, titleId),
266
+ className: styles.standard({ class: cn(body.classNames?.container, className) }),
267
+ children: /* @__PURE__ */ jsx("div", {
268
+ className: styles.standardClip(),
269
+ children: /* @__PURE__ */ jsx("div", {
270
+ ref: frameRef,
271
+ className: styles.standardFrame(),
272
+ children: /* @__PURE__ */ jsx("div", {
273
+ "data-slot": "panel",
274
+ className: styles.panel({ class: body.classNames?.panel }),
275
+ children: /* @__PURE__ */ jsx(SheetBody, {
276
+ ...body,
277
+ titleId,
278
+ close: state.close,
279
+ styles
280
+ })
281
+ })
282
+ })
283
+ })
284
+ });
285
+ }
286
+ //#endregion
287
+ export { SideSheet };
288
+
289
+ //# sourceMappingURL=SideSheet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SideSheet.js","names":["Overlay"],"sources":["../../../src/components/sheet/SideSheet.tsx"],"sourcesContent":["'use client';\n\nimport {\n useContext,\n useEffect,\n useId,\n useLayoutEffect,\n useRef,\n useState,\n type ComponentPropsWithRef,\n type CSSProperties,\n type FocusEvent,\n type ReactElement,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {\n mergeProps,\n useDialog,\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, tabbables } from '../../utils/focus';\nimport { DensityZeroButtons } from '../button/DensityZeroButtons';\nimport { IconButton } from '../icon-button/IconButton';\nimport { BackIcon, CloseIcon } from './sheet-icons';\nimport { SHEET_EXIT_PROPERTIES, sideSheetStyles } from './sheet-styles';\nimport { SheetTriggerContext } from './SheetTrigger';\nimport { useSideSwipe } from './use-side-swipe';\nimport { mergeDataTokens } from '../../utils/merge-data-tokens';\n\nexport interface SideSheetClassNames {\n /**\n * The outermost element, which places the sheet (where `className` and `style` go too):\n * a modal sheet's box `fixed` to the window's `edge`, or a standard sheet's layout box.\n */\n container?: string;\n /** The dimmed layer behind a modal sheet. */\n scrim?: string;\n /** The sheet's surface: its colour, corners, width and shadow. */\n panel?: string;\n /** The header row: back button, title, actions and close button. */\n header?: string;\n /** The back button. */\n back?: string;\n /** The headline. */\n title?: string;\n /** The end of the header: `actions` and the close button. */\n headerActions?: string;\n /** The close button. */\n close?: string;\n /** The scrollable content area. */\n content?: string;\n /** The bottom row of action buttons. */\n footer?: string;\n}\n\n/** Words the side sheet announces. */\nexport interface SideSheetLabels {\n /** The close button. @default \"Close\" */\n close: string;\n /** The back button (with `onBack`). @default \"Back\" */\n back: string;\n}\n\nconst DEFAULT_LABELS: SideSheetLabels = { close: 'Close', back: 'Back' };\n\ninterface SideSheetRenderProps {\n /** Closes a modal sheet, or reports `onOpenChange(false)` for a standard one. */\n close: () => void;\n}\n\ninterface SideSheetOwnProps {\n /**\n * `modal` opens over a scrim as a dialog; `standard` sits in the layout beside the\n * content and opens and closes its width. @default \"modal\"\n */\n variant?: 'modal' | 'standard';\n /** Float 16px from the edges with corners all round. @default false */\n detached?: boolean;\n /**\n * The window edge the sheet is anchored to: `end` (the right in a left-to-right page, the\n * left in RTL, as M3 asks) or `start`. A modal sheet slides in from it and swipes out toward\n * it; a standard sheet faces it, with its divider on the other side. The root's `data-edge`\n * says which.\n * @default \"end\"\n */\n edge?: 'start' | 'end';\n /**\n * Whether a touch or pen swipe toward the sheet's edge closes a modal sheet (past half its\n * width, or a fling). The close button, Escape and the scrim still close it either way, and\n * a mouse drag never moves it. Off when `closedBy` is `\"none\"`; a standard sheet ignores\n * it. To keep the sheet open after a swipe (unsaved changes), control `open` and leave it\n * `true`: the sheet springs back.\n * @default true\n */\n swipeable?: boolean;\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 /** The headline. It names the sheet. */\n title?: ReactNode;\n /** Shows a back button before the title, for a sheet with several levels. */\n onBack?: () => void;\n /** Header controls before the close button. */\n actions?: ReactNode | ((props: SideSheetRenderProps) => ReactNode);\n /** Bottom action buttons, start-aligned, e.g. Save and Cancel. */\n footer?: ReactNode | ((props: SideSheetRenderProps) => ReactNode);\n /** A divider between the content and `footer`. @default false */\n footerDivider?: boolean;\n /** A divider between a standard sheet and the content beside it. @default true */\n divider?: boolean;\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 swipe), `closerequest` (Escape or a swipe) or `none` (only its\n * buttons or the app).\n * @default \"any\"\n */\n closedBy?: ClosedBy;\n /** Replaces the close button's icon. */\n closeIcon?: ReactElement;\n /** Replaces the back button's icon. */\n backIcon?: ReactElement;\n /** Words the sheet announces, with English defaults. */\n labels?: Partial<SideSheetLabels>;\n children?: ReactNode | ((props: SideSheetRenderProps) => ReactNode);\n /** Classes for each part, by slot. */\n classNames?: SideSheetClassNames;\n /**\n * Goes with `style` on the outermost element, the box that places the sheet, so a layout class\n * moves the whole sheet and never clips or stretches its surface. Style the surface with\n * `classNames.panel`; `ref`, `data-*` and other attributes go on the panel (a standard\n * sheet's are on its outer box).\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\"`); a standard sheet's outer box. */\n ref?: Ref<HTMLDivElement>;\n}\n\ntype Naming =\n | {\n title: ReactNode;\n /** Accessible name when there's no visible title; overrides `title` when both are set. */\n 'aria-label'?: string;\n }\n | {\n /** Accessible name when there's no visible title. */\n 'aria-label': string;\n }\n | {\n /** Id of a visible element that names the sheet, when there's no `title`. */\n 'aria-labelledby': string;\n };\n\nexport type SideSheetProps = SideSheetOwnProps &\n Naming &\n Omit<ComponentPropsWithRef<'div'>, keyof SideSheetOwnProps | 'aria-label' | 'aria-labelledby'>;\n\n/**\n * M3 side sheet: supplementary content at the end edge of the window (`edge=\"start\"` for the\n * other). A modal sheet slides in over a scrim as a dialog (Escape, a press outside or a\n * touch swipe toward its edge closes it); a standard sheet sits in the layout as a non-modal\n * dialog and opens and closes its width. Both always show a close button, as M3 requires.\n *\n * @example\n * <SheetTrigger>\n * <Button>Filters</Button>\n * <SideSheet title=\"Filters\" footer={({ close }) => <Button onPress={close}>Apply</Button>}>\n * …\n * </SideSheet>\n * </SheetTrigger>\n */\nexport function SideSheet({\n variant = 'modal',\n open,\n defaultOpen,\n onOpenChange,\n ...props\n}: SideSheetProps) {\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 (variant === 'standard') return <StandardSideSheet {...props} state={state} />;\n if (!isPresent) return null;\n return (\n <Overlay exiting={isExiting}>\n <ModalSideSheet\n {...props}\n state={state}\n isExiting={isExiting}\n exitProps={exitProps}\n triggerOverlayProps={trigger?.overlayProps}\n />\n </Overlay>\n );\n}\n\ntype InnerProps = Omit<SideSheetProps, 'variant' | 'open' | 'defaultOpen' | 'onOpenChange'> & {\n state: OverlayTriggerState;\n};\n\ntype BodyProps = Pick<\n SideSheetOwnProps,\n | 'title'\n | 'onBack'\n | 'actions'\n | 'footer'\n | 'children'\n | 'closeIcon'\n | 'backIcon'\n | 'labels'\n | 'classNames'\n> & {\n titleId: string;\n close: () => void;\n styles: ReturnType<typeof sideSheetStyles>;\n contentRef?: Ref<HTMLDivElement>;\n};\n\nfunction SheetBody({\n title,\n titleId,\n onBack,\n actions,\n footer,\n children,\n closeIcon,\n backIcon,\n labels: labelsProp,\n close,\n styles,\n classNames,\n contentRef,\n}: BodyProps) {\n const labels = { ...DEFAULT_LABELS, ...labelsProp };\n const renderProps = { close };\n const render = (slot: SideSheetOwnProps['children']) =>\n typeof slot === 'function' ? slot(renderProps) : slot;\n return (\n <>\n <div className={styles.header({ class: classNames?.header })}>\n {onBack && (\n <IconButton\n variant=\"standard\"\n density={0}\n icon={backIcon ?? <BackIcon />}\n aria-label={labels.back}\n onPress={onBack}\n className={classNames?.back}\n />\n )}\n {title != null && (\n <h2 id={titleId} className={styles.title({ class: classNames?.title })}>\n {title}\n </h2>\n )}\n <div className={styles.headerActions({ class: classNames?.headerActions })}>\n <DensityZeroButtons>{render(actions)}</DensityZeroButtons>\n <IconButton\n variant=\"standard\"\n density={0}\n icon={closeIcon ?? <CloseIcon />}\n aria-label={labels.close}\n onPress={close}\n className={classNames?.close}\n />\n </div>\n </div>\n <div ref={contentRef} className={styles.content({ class: classNames?.content })}>\n {render(children)}\n </div>\n {footer != null && (\n <div className={styles.footer({ class: classNames?.footer })}>{render(footer)}</div>\n )}\n </>\n );\n}\n\nconst BODY_KEYS = [\n 'title',\n 'onBack',\n 'actions',\n 'footer',\n 'children',\n 'closeIcon',\n 'backIcon',\n 'labels',\n 'classNames',\n] as const;\n\n/** Splits the header, body and footer props from those of the panel element. */\nfunction splitBodyProps<T extends Record<string, unknown>>(props: T) {\n const body: Record<string, unknown> = {};\n const rest: Record<string, unknown> = { ...props };\n for (const key of BODY_KEYS) {\n body[key] = rest[key];\n delete rest[key];\n }\n return {\n body: body as Omit<BodyProps, 'titleId' | 'close' | 'styles' | 'contentRef'>,\n rest: rest as Omit<T, (typeof BODY_KEYS)[number]>,\n };\n}\n\n/** `aria-labelledby` for the panel: the consumer's, else the title's unless `aria-label` names it. */\nfunction labelledBy(props: Record<string, unknown>, hasTitle: boolean, titleId: string) {\n const own = props['aria-labelledby'] as string | undefined;\n return own ?? (props['aria-label'] == null && hasTitle ? titleId : undefined);\n}\n\nfunction ModalSideSheet({\n state,\n isExiting,\n exitProps,\n triggerOverlayProps,\n detached = false,\n edge = 'end',\n swipeable = true,\n closedBy = 'any',\n divider: _divider,\n footerDivider = false,\n className,\n style,\n ref,\n ...props\n}: InnerProps & {\n isExiting: boolean;\n exitProps: ReturnType<typeof usePresence>['exitProps'];\n triggerOverlayProps?: { id?: string };\n}) {\n const { body, rest } = splitBodyProps(props);\n const panelRef = useObjectRef(ref as Ref<HTMLDivElement>);\n const motionRef = useRef<HTMLDivElement>(null);\n const contentRef = useRef<HTMLDivElement>(null);\n const titleId = useId();\n // `closedBy=\"none\"` leaves closing to the app, so a swipe doesn't close it either.\n const canSwipe = swipeable && closedBy !== 'none';\n const styles = sideSheetStyles({\n variant: 'modal',\n edge,\n swipeable: canSwipe,\n detached,\n hasBack: body.onBack != null,\n footerDivider,\n });\n const { panelHandlers, motionProps, dragging } = useSideSwipe({\n enabled: canSwipe && !isExiting,\n edge,\n isOpen: state.isOpen,\n close: state.close,\n panelRef,\n motionRef,\n contentRef,\n });\n const { modalProps, underlayProps } = useModalOverlay(\n closedByOverlayOptions(closedBy, isExiting),\n state,\n panelRef,\n );\n const { dialogProps } = useDialog(\n {\n ...(rest as AriaDialogProps),\n 'aria-labelledby': labelledBy(rest, body.title != null, titleId),\n },\n panelRef,\n );\n // M3: focus lands on the first (non-disabled) icon button, as in a Dialog, not the panel.\n useEffect(() => focusFirstInteractive(panelRef.current), [panelRef]);\n const exiting = isExiting || undefined;\n return (\n <>\n <div\n aria-hidden=\"true\"\n data-exiting={exiting}\n className={styles.scrim({ class: body.classNames?.scrim })}\n />\n <div {...underlayProps} className=\"fixed inset-0 z-(--md-sys-z-sheet)\">\n <div\n style={style}\n className={styles.container({ class: cn(body.classNames?.container, className) })}\n >\n <div\n {...mergeProps(exitProps, motionProps)}\n ref={motionRef}\n data-exiting={exiting}\n className={styles.motion()}\n >\n <div\n {...mergeProps(\n rest,\n triggerOverlayProps ?? {},\n modalProps,\n dialogProps,\n panelHandlers,\n )}\n ref={panelRef}\n // The component tokens' hooks (sheet-tokens.ts); `data-variant` and `data-edge`\n // are also public.\n data-tokens={mergeDataTokens('md-comp-sheet-side', rest)}\n data-variant=\"modal\"\n data-edge={edge}\n data-detached={detached || undefined}\n data-dragging={dragging || undefined}\n data-exiting={exiting}\n className={styles.panel({ class: body.classNames?.panel })}\n >\n <TriggerContext value={null}>\n <SheetBody\n {...body}\n titleId={titleId}\n close={state.close}\n styles={styles}\n contentRef={contentRef}\n />\n </TriggerContext>\n </div>\n </div>\n </div>\n </div>\n </>\n );\n}\n\nfunction StandardSideSheet({\n state,\n detached = false,\n edge = 'end',\n swipeable: _swipeable,\n divider = true,\n footerDivider = false,\n closedBy: _closedBy,\n className,\n style,\n ref,\n ...props\n}: InnerProps) {\n const { body, rest } = splitBodyProps(props);\n const titleId = useId();\n const styles = sideSheetStyles({\n variant: 'standard',\n edge,\n detached,\n divider,\n hasBack: body.onBack != null,\n footerDivider,\n });\n const closed = !state.isOpen || undefined;\n const rootRef = useObjectRef(ref as Ref<HTMLDivElement>);\n const frameRef = useRef<HTMLDivElement>(null);\n // The sheet's open width, measured, so the root's width (not a grid fraction, which takes\n // only part of the shrinking free space and left the panel floating off its edge) moves\n // between it and 0. Until it's measured (the server's HTML) the open root is `auto` wide.\n const [width, setWidth] = useState<number | null>(null);\n useLayoutEffect(() => {\n const frame = frameRef.current;\n if (!frame) return;\n // The layout width, not the box on screen, which a consumer transform scales or turns.\n const measure = () => setWidth(frame.offsetWidth);\n measure();\n if (typeof ResizeObserver === 'undefined') return;\n const observer = new ResizeObserver(measure);\n observer.observe(frame);\n return () => observer.disconnect();\n }, []);\n // Focus that came from outside returns there when the sheet closes with focus inside (its\n // close button, Escape in content, or the app closing it): the closed sheet is `inert`, and\n // focus would otherwise drop to the page.\n const returnFocus = useRef<HTMLElement | null>(null);\n useLayoutEffect(() => {\n const root = rootRef.current;\n const active = root?.ownerDocument.activeElement;\n if (state.isOpen || !root || !(active instanceof HTMLElement) || !root.contains(active)) return;\n const saved = returnFocus.current;\n const target =\n saved?.isConnected && !root.contains(saved) && !saved.closest('[inert]')\n ? saved\n : (tabbables(root.ownerDocument.body, (el) => root.contains(el))\n .filter((el) => el.compareDocumentPosition(root) & Node.DOCUMENT_POSITION_FOLLOWING)\n .at(-1) ?? null);\n if (target) target.focus({ preventScroll: true });\n else active.blur();\n }, [state.isOpen, rootRef]);\n const rootStyle = {\n ...style,\n ...(width === null ? {} : { '--m3-side-sheet-width': `${width}px` }),\n } as CSSProperties;\n // A non-modal dialog (m3.material.io: the side sheet's role is dialog); focus isn't moved.\n return (\n <div\n {...rest}\n onFocus={(event: FocusEvent<HTMLDivElement>) => {\n (rest as { onFocus?: (event: FocusEvent<HTMLDivElement>) => void }).onFocus?.(event);\n const from = event.relatedTarget;\n if (from instanceof HTMLElement && !event.currentTarget.contains(from)) {\n returnFocus.current = from;\n }\n }}\n ref={rootRef}\n role=\"dialog\"\n style={rootStyle}\n // The component tokens' hooks (sheet-tokens.ts), read by the panel inside.\n data-tokens={mergeDataTokens('md-comp-sheet-side', rest)}\n data-variant=\"standard\"\n data-edge={edge}\n data-detached={detached || undefined}\n data-closed={closed}\n inert={!state.isOpen}\n aria-labelledby={labelledBy(rest, body.title != null, titleId)}\n className={styles.standard({ class: cn(body.classNames?.container, className) })}\n >\n <div className={styles.standardClip()}>\n <div ref={frameRef} className={styles.standardFrame()}>\n <div data-slot=\"panel\" className={styles.panel({ class: body.classNames?.panel })}>\n <SheetBody {...body} titleId={titleId} close={state.close} styles={styles} />\n </div>\n </div>\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ //#region src/components/sheet/bottom-sheet-gesture.ts
2
+ /**
3
+ * Decides whether a touch on the sheet's content drags the sheet or scrolls the content,
4
+ * from how far it has moved (`dx`, `dy`, px; `dy` positive downwards), whether the content
5
+ * under it is scrolled, and whether the sheet can still rise (it rests below its top
6
+ * detent). Until it moves past {@link DRAG_SLOP} it is undecided; then a mostly horizontal
7
+ * move scrolls (horizontal scrollers, text). On content at its top, a downward move drags
8
+ * the sheet, and so does an upward one while the sheet can rise (Compose's nested scroll
9
+ * raises the sheet before the content scrolls; the caller hands the rest of the move to
10
+ * the content once the sheet is up). Anything else scrolls. Callers keep the first decision
11
+ * until the pointer lifts.
12
+ */
13
+ function contentGesture(dx, dy, scrolled, canRise = false) {
14
+ if (Math.max(Math.abs(dx), Math.abs(dy)) <= 4) return "undecided";
15
+ if (Math.abs(dx) >= Math.abs(dy)) return "scroll";
16
+ if (scrolled) return "scroll";
17
+ return dy > 0 || canRise ? "drag" : "scroll";
18
+ }
19
+ /** Whether `root`, or any scroller between `target` and it, is scrolled away from its top. */
20
+ function scrolledAbove(target, root) {
21
+ for (let node = target; node; node = node.parentElement) {
22
+ if (node.scrollTop > 0) return true;
23
+ if (node === root) return false;
24
+ }
25
+ return false;
26
+ }
27
+ //#endregion
28
+ export { contentGesture, scrolledAbove };
29
+
30
+ //# sourceMappingURL=bottom-sheet-gesture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bottom-sheet-gesture.js","names":[],"sources":["../../../src/components/sheet/bottom-sheet-gesture.ts"],"sourcesContent":["import { DRAG_SLOP } from './sheet-gesture';\n\n/** What a touch that starts on a bottom sheet's content does. */\nexport type ContentGesture = 'undecided' | 'drag' | 'scroll';\n\n/**\n * Decides whether a touch on the sheet's content drags the sheet or scrolls the content,\n * from how far it has moved (`dx`, `dy`, px; `dy` positive downwards), whether the content\n * under it is scrolled, and whether the sheet can still rise (it rests below its top\n * detent). Until it moves past {@link DRAG_SLOP} it is undecided; then a mostly horizontal\n * move scrolls (horizontal scrollers, text). On content at its top, a downward move drags\n * the sheet, and so does an upward one while the sheet can rise (Compose's nested scroll\n * raises the sheet before the content scrolls; the caller hands the rest of the move to\n * the content once the sheet is up). Anything else scrolls. Callers keep the first decision\n * until the pointer lifts.\n */\nexport function contentGesture(\n dx: number,\n dy: number,\n scrolled: boolean,\n canRise = false,\n): ContentGesture {\n if (Math.max(Math.abs(dx), Math.abs(dy)) <= DRAG_SLOP) return 'undecided';\n if (Math.abs(dx) >= Math.abs(dy)) return 'scroll';\n if (scrolled) return 'scroll';\n return dy > 0 || canRise ? 'drag' : 'scroll';\n}\n\n/** Whether `root`, or any scroller between `target` and it, is scrolled away from its top. */\nexport function scrolledAbove(target: Element, root: Element): boolean {\n for (let node: Element | null = target; node; node = node.parentElement) {\n if (node.scrollTop > 0) return true;\n if (node === root) return false;\n }\n return false;\n}\n"],"mappings":";;;;;;;;;;;;AAgBA,SAAgB,eACd,IACA,IACA,UACA,UAAU,OACM;CAChB,IAAI,KAAK,IAAI,KAAK,IAAI,EAAE,GAAG,KAAK,IAAI,EAAE,CAAC,KAAA,GAAgB,OAAO;CAC9D,IAAI,KAAK,IAAI,EAAE,KAAK,KAAK,IAAI,EAAE,GAAG,OAAO;CACzC,IAAI,UAAU,OAAO;CACrB,OAAO,KAAK,KAAK,UAAU,SAAS;AACtC;;AAGA,SAAgB,cAAc,QAAiB,MAAwB;CACrE,KAAK,IAAI,OAAuB,QAAQ,MAAM,OAAO,KAAK,eAAe;EACvE,IAAI,KAAK,YAAY,GAAG,OAAO;EAC/B,IAAI,SAAS,MAAM,OAAO;CAC5B;CACA,OAAO;AACT"}
@@ -0,0 +1,33 @@
1
+ "use client";
2
+ import { onDemand, usePreloadOnIntent } from "../../utils/load-on-demand.js";
3
+ import { useState } from "react";
4
+ import { jsx } from "react/jsx-runtime";
5
+ //#region src/components/sheet/lazy-bottom-sheet.tsx
6
+ const sheet = onDemand(() => import("./BottomSheet.js").then((module) => module.BottomSheet));
7
+ sheet.preload;
8
+ /**
9
+ * A `BottomSheet` whose module is loaded the first time it opens, for components that show
10
+ * a sheet only in some presentations (`Menu` and `Select` with `presentation="sheet"` or
11
+ * `"auto"`). Their other presentations then don't carry the sheet's code. Until it first
12
+ * opens it renders nothing; while the module loads it renders nothing too, rather than a
13
+ * placeholder of another shape. Once loaded it opens in the same pass as the open itself
14
+ * (it never suspends, see `onDemand`). Once opened it stays mounted, so it can play its exit.
15
+ * Server rendering works as it did: a sheet is never open there.
16
+ */
17
+ function LazyBottomSheet(props) {
18
+ const [opened, setOpened] = useState(props.open === true);
19
+ if (props.open === true && !opened) setOpened(true);
20
+ if (!opened) return null;
21
+ return /* @__PURE__ */ jsx(sheet.Component, { ...props });
22
+ }
23
+ /**
24
+ * Preloads the sheet when the pointer moves over `ref`'s element or focus enters it, while
25
+ * `enabled` (the component would open in a sheet).
26
+ */
27
+ function usePreloadBottomSheet(ref, enabled) {
28
+ usePreloadOnIntent(ref, sheet.preload, enabled);
29
+ }
30
+ //#endregion
31
+ export { LazyBottomSheet, usePreloadBottomSheet };
32
+
33
+ //# sourceMappingURL=lazy-bottom-sheet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lazy-bottom-sheet.js","names":[],"sources":["../../../src/components/sheet/lazy-bottom-sheet.tsx"],"sourcesContent":["'use client';\n\nimport { useState, type RefObject } from 'react';\nimport { onDemand, usePreloadOnIntent } from '../../utils/load-on-demand';\nimport type { BottomSheetProps } from './BottomSheet';\n\nconst sheet = onDemand<BottomSheetProps>(() =>\n import('./BottomSheet').then((module) => module.BottomSheet),\n);\n\n/**\n * Starts loading the `BottomSheet` module, once; later calls return the same promise.\n * Components that open in a sheet only sometimes call it when a sheet becomes likely (the\n * pointer over their trigger, or focus on it), so the sheet is usually loaded by the time\n * it opens.\n */\nexport const preloadBottomSheet = sheet.preload;\n\n/**\n * A `BottomSheet` whose module is loaded the first time it opens, for components that show\n * a sheet only in some presentations (`Menu` and `Select` with `presentation=\"sheet\"` or\n * `\"auto\"`). Their other presentations then don't carry the sheet's code. Until it first\n * opens it renders nothing; while the module loads it renders nothing too, rather than a\n * placeholder of another shape. Once loaded it opens in the same pass as the open itself\n * (it never suspends, see `onDemand`). Once opened it stays mounted, so it can play its exit.\n * Server rendering works as it did: a sheet is never open there.\n */\nexport function LazyBottomSheet(props: BottomSheetProps) {\n const [opened, setOpened] = useState(props.open === true);\n // Set during render, so the first open renders the sheet in the same pass.\n if (props.open === true && !opened) setOpened(true);\n if (!opened) return null;\n return <sheet.Component {...props} />;\n}\n\n/**\n * Preloads the sheet when the pointer moves over `ref`'s element or focus enters it, while\n * `enabled` (the component would open in a sheet).\n */\nexport function usePreloadBottomSheet(ref: RefObject<HTMLElement | null>, enabled: boolean) {\n usePreloadOnIntent(ref, sheet.preload, enabled);\n}\n"],"mappings":";;;;;AAMA,MAAM,QAAQ,eACZ,OAAO,mBAAgB,CAAC,MAAM,WAAW,OAAO,WAAW,CAC7D;AAQkC,MAAM;;;;;;;;;;AAWxC,SAAgB,gBAAgB,OAAyB;CACvD,MAAM,CAAC,QAAQ,aAAa,SAAS,MAAM,SAAS,IAAI;CAExD,IAAI,MAAM,SAAS,QAAQ,CAAC,QAAQ,UAAU,IAAI;CAClD,IAAI,CAAC,QAAQ,OAAO;CACpB,OAAO,oBAAC,MAAM,WAAP,EAAiB,GAAI,MAAQ,CAAA;AACtC;;;;;AAMA,SAAgB,sBAAsB,KAAoC,SAAkB;CAC1F,mBAAmB,KAAK,MAAM,SAAS,OAAO;AAChD"}
@@ -0,0 +1,48 @@
1
+ //#region src/components/sheet/sheet-gesture.ts
2
+ const EDITABLE = "input, textarea, select, [contenteditable]:not([contenteditable=\"false\"])";
3
+ /**
4
+ * Whether a computed `touch-action` keeps the browser from panning along `axis`, which means
5
+ * the element handles drags along it itself: `none` both ways, `pan-y` (a horizontal slider,
6
+ * a carousel's own drag) the inline axis, `pan-x` (a vertical slider) the block axis.
7
+ */
8
+ function excludesPan(touchAction, axis) {
9
+ if (touchAction === "" || touchAction === "auto" || touchAction === "manipulation") return false;
10
+ if (touchAction === "none") return true;
11
+ const values = touchAction.split(/\s+/);
12
+ return axis === "x" ? !values.some((value) => value === "pan-x" || value === "pan-left" || value === "pan-right") : !values.some((value) => value === "pan-y" || value === "pan-up" || value === "pan-down");
13
+ }
14
+ /**
15
+ * Whether `node` scrolls along the inline axis and still can toward a finger moving by `dx`
16
+ * (px, positive rightwards): a finger moving right reveals what lies to the left, in either
17
+ * direction (`scrollLeft` runs 0 → positive in LTR and 0 → negative in RTL).
18
+ */
19
+ function scrollsSideways(node, dx) {
20
+ const range = node.scrollWidth - node.clientWidth;
21
+ if (range < 1) return false;
22
+ const style = getComputedStyle(node);
23
+ if (style.overflowX !== "auto" && style.overflowX !== "scroll") return false;
24
+ const rtl = style.direction === "rtl";
25
+ const min = rtl ? -range : 0;
26
+ const max = rtl ? 0 : range;
27
+ return dx > 0 ? node.scrollLeft > min + .5 : node.scrollLeft < max - .5;
28
+ }
29
+ /**
30
+ * Whether a touch starting on `target` is left to the content, for a drag along `axis`: on a
31
+ * form field (text selection and caret placement), or on an element between `target` and
32
+ * `root` that handles that axis's drags itself (its `touch-action` excludes panning along
33
+ * it, see {@link excludesPan}). With `dx` (a decided inline move, px, positive rightwards),
34
+ * a horizontal scroller in between that can still scroll that way owns it too, while one at
35
+ * its end in that direction lets the sheet have it.
36
+ */
37
+ function ownsGesture(target, root, axis = "y", dx = 0) {
38
+ if (target.closest(EDITABLE) && root.contains(target.closest(EDITABLE))) return true;
39
+ for (let node = target; node && node !== root; node = node.parentElement) {
40
+ if (excludesPan(getComputedStyle(node).touchAction, axis)) return true;
41
+ if (axis === "x" && dx !== 0 && scrollsSideways(node, dx)) return true;
42
+ }
43
+ return false;
44
+ }
45
+ //#endregion
46
+ export { ownsGesture };
47
+
48
+ //# sourceMappingURL=sheet-gesture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sheet-gesture.js","names":[],"sources":["../../../src/components/sheet/sheet-gesture.ts"],"sourcesContent":["/** How far a pointer moves before a press becomes a drag. */\nexport const DRAG_SLOP = 4;\n\nconst EDITABLE = 'input, textarea, select, [contenteditable]:not([contenteditable=\"false\"])';\n\n/** A drag's axis: `x` (inline, a side sheet's swipe) or `y` (block, a bottom sheet's drag). */\nexport type GestureAxis = 'x' | 'y';\n\n/**\n * Whether a computed `touch-action` keeps the browser from panning along `axis`, which means\n * the element handles drags along it itself: `none` both ways, `pan-y` (a horizontal slider,\n * a carousel's own drag) the inline axis, `pan-x` (a vertical slider) the block axis.\n */\nfunction excludesPan(touchAction: string, axis: GestureAxis) {\n if (touchAction === '' || touchAction === 'auto' || touchAction === 'manipulation') return false;\n if (touchAction === 'none') return true;\n const values = touchAction.split(/\\s+/);\n return axis === 'x'\n ? !values.some((value) => value === 'pan-x' || value === 'pan-left' || value === 'pan-right')\n : !values.some((value) => value === 'pan-y' || value === 'pan-up' || value === 'pan-down');\n}\n\n/**\n * Whether `node` scrolls along the inline axis and still can toward a finger moving by `dx`\n * (px, positive rightwards): a finger moving right reveals what lies to the left, in either\n * direction (`scrollLeft` runs 0 → positive in LTR and 0 → negative in RTL).\n */\nfunction scrollsSideways(node: Element, dx: number) {\n const range = node.scrollWidth - node.clientWidth;\n if (range < 1) return false;\n const style = getComputedStyle(node);\n if (style.overflowX !== 'auto' && style.overflowX !== 'scroll') return false;\n const rtl = style.direction === 'rtl';\n const min = rtl ? -range : 0;\n const max = rtl ? 0 : range;\n return dx > 0 ? node.scrollLeft > min + 0.5 : node.scrollLeft < max - 0.5;\n}\n\n/**\n * Whether a touch starting on `target` is left to the content, for a drag along `axis`: on a\n * form field (text selection and caret placement), or on an element between `target` and\n * `root` that handles that axis's drags itself (its `touch-action` excludes panning along\n * it, see {@link excludesPan}). With `dx` (a decided inline move, px, positive rightwards),\n * a horizontal scroller in between that can still scroll that way owns it too, while one at\n * its end in that direction lets the sheet have it.\n */\nexport function ownsGesture(\n target: Element,\n root: Element,\n axis: GestureAxis = 'y',\n dx = 0,\n): boolean {\n if (target.closest(EDITABLE) && root.contains(target.closest(EDITABLE))) return true;\n for (let node: Element | null = target; node && node !== root; node = node.parentElement) {\n if (excludesPan(getComputedStyle(node).touchAction, axis)) return true;\n if (axis === 'x' && dx !== 0 && scrollsSideways(node, dx)) return true;\n }\n return false;\n}\n"],"mappings":";AAGA,MAAM,WAAW;;;;;;AAUjB,SAAS,YAAY,aAAqB,MAAmB;CAC3D,IAAI,gBAAgB,MAAM,gBAAgB,UAAU,gBAAgB,gBAAgB,OAAO;CAC3F,IAAI,gBAAgB,QAAQ,OAAO;CACnC,MAAM,SAAS,YAAY,MAAM,KAAK;CACtC,OAAO,SAAS,MACZ,CAAC,OAAO,MAAM,UAAU,UAAU,WAAW,UAAU,cAAc,UAAU,WAAW,IAC1F,CAAC,OAAO,MAAM,UAAU,UAAU,WAAW,UAAU,YAAY,UAAU,UAAU;AAC7F;;;;;;AAOA,SAAS,gBAAgB,MAAe,IAAY;CAClD,MAAM,QAAQ,KAAK,cAAc,KAAK;CACtC,IAAI,QAAQ,GAAG,OAAO;CACtB,MAAM,QAAQ,iBAAiB,IAAI;CACnC,IAAI,MAAM,cAAc,UAAU,MAAM,cAAc,UAAU,OAAO;CACvE,MAAM,MAAM,MAAM,cAAc;CAChC,MAAM,MAAM,MAAM,CAAC,QAAQ;CAC3B,MAAM,MAAM,MAAM,IAAI;CACtB,OAAO,KAAK,IAAI,KAAK,aAAa,MAAM,KAAM,KAAK,aAAa,MAAM;AACxE;;;;;;;;;AAUA,SAAgB,YACd,QACA,MACA,OAAoB,KACpB,KAAK,GACI;CACT,IAAI,OAAO,QAAQ,QAAQ,KAAK,KAAK,SAAS,OAAO,QAAQ,QAAQ,CAAC,GAAG,OAAO;CAChF,KAAK,IAAI,OAAuB,QAAQ,QAAQ,SAAS,MAAM,OAAO,KAAK,eAAe;EACxF,IAAI,YAAY,iBAAiB,IAAI,CAAC,CAAC,aAAa,IAAI,GAAG,OAAO;EAClE,IAAI,SAAS,OAAO,OAAO,KAAK,gBAAgB,MAAM,EAAE,GAAG,OAAO;CACpE;CACA,OAAO;AACT"}
@@ -0,0 +1,31 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ //#region src/components/sheet/sheet-icons.tsx
3
+ /** Material Symbols "close" (Apache-2.0). */
4
+ function CloseIcon() {
5
+ return /* @__PURE__ */ jsx("svg", {
6
+ viewBox: "0 -960 960 960",
7
+ fill: "currentColor",
8
+ children: /* @__PURE__ */ jsx("path", { d: "m256-200-56-56 224-224-224-224 56-56 224 224 224-224 56 56-224 224 224 224-56 56-224-224-224 224Z" })
9
+ });
10
+ }
11
+ /** Material Symbols "arrow_back" (Apache-2.0), mirrored in right-to-left layouts. */
12
+ function BackIcon() {
13
+ return /* @__PURE__ */ jsx("svg", {
14
+ viewBox: "0 -960 960 960",
15
+ fill: "currentColor",
16
+ className: "rtl:-scale-x-100",
17
+ children: /* @__PURE__ */ jsx("path", { d: "m313-440 224 224-57 56-320-320 320-320 57 56-224 224h487v80H313Z" })
18
+ });
19
+ }
20
+ /** Material Symbols "expand_more" (Apache-2.0). */
21
+ function CollapseIcon() {
22
+ return /* @__PURE__ */ jsx("svg", {
23
+ viewBox: "0 -960 960 960",
24
+ fill: "currentColor",
25
+ children: /* @__PURE__ */ jsx("path", { d: "M480-345 240-585l56-56 184 184 184-184 56 56-240 240Z" })
26
+ });
27
+ }
28
+ //#endregion
29
+ export { BackIcon, CloseIcon, CollapseIcon };
30
+
31
+ //# sourceMappingURL=sheet-icons.js.map