@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,72 @@
1
+ "use client";
2
+ import { cn } from "../../utils/cn.js";
3
+ import { mergeDataTokens } from "../../utils/merge-data-tokens.js";
4
+ import { badgeStyles, badgedBoxStyles } from "./badge-styles.js";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ import { VisuallyHidden, useNumberFormatter } from "react-aria";
7
+ //#region src/components/badge/Badge.tsx
8
+ /**
9
+ * M3 badge: a small 6px dot, or a large 16px badge holding a count or a short label, in
10
+ * `error` colours. Place it on an icon with {@link BadgedBox}. It is announced: a count is
11
+ * read, a dot reads "New notification" (`labels`), and `label` replaces either.
12
+ *
13
+ * @example
14
+ * <Badge />
15
+ * <Badge>{3}</Badge>
16
+ * <Badge max={99}>{120}</Badge> // "99+"
17
+ */
18
+ function Badge({ children, max = 999, label, labels, classNames, className, ...rest }) {
19
+ const format = useNumberFormatter();
20
+ const size = children == null || children === false ? "small" : "large";
21
+ const overflow = typeof children === "string" && [...children].length > 4;
22
+ const styles = badgeStyles({
23
+ size,
24
+ overflow
25
+ });
26
+ const content = typeof children === "number" ? children > max ? `${format.format(max)}+` : format.format(children) : children;
27
+ const announcement = label ?? (size === "small" ? labels?.newNotification ?? "New notification" : null);
28
+ return /* @__PURE__ */ jsxs("span", {
29
+ ...rest,
30
+ "data-tokens": mergeDataTokens("md-comp-badge", rest),
31
+ "data-size": size,
32
+ className: styles.root({ class: cn(classNames?.root, className) }),
33
+ children: [size === "large" && /* @__PURE__ */ jsx("span", {
34
+ "aria-hidden": announcement != null || void 0,
35
+ dir: typeof children === "number" ? "ltr" : void 0,
36
+ className: styles.label({ class: classNames?.label }),
37
+ children: content
38
+ }), announcement != null && /* @__PURE__ */ jsx(VisuallyHidden, {
39
+ elementType: "span",
40
+ children: announcement
41
+ })]
42
+ });
43
+ }
44
+ /**
45
+ * Places a badge at the top end of its anchor (Compose's `BadgedBox`), e.g. on an icon.
46
+ * The badge's announcement is part of the text around it; an anchor named with its own
47
+ * `aria-label` should say what the badge means.
48
+ *
49
+ * @example
50
+ * <IconButton
51
+ * aria-label="Messages, 3 unread"
52
+ * icon={<BadgedBox badge={<Badge>{3}</Badge>}><MailIcon /></BadgedBox>}
53
+ * />
54
+ */
55
+ function BadgedBox({ badge, children, classNames, className, ...rest }) {
56
+ const styles = badgedBoxStyles();
57
+ return /* @__PURE__ */ jsxs("span", {
58
+ ...rest,
59
+ className: styles.root({ class: cn(classNames?.root, className) }),
60
+ children: [/* @__PURE__ */ jsx("span", {
61
+ className: styles.anchor({ class: classNames?.anchor }),
62
+ children
63
+ }), /* @__PURE__ */ jsx("span", {
64
+ className: styles.hang(),
65
+ children: badge
66
+ })]
67
+ });
68
+ }
69
+ //#endregion
70
+ export { Badge, BadgedBox };
71
+
72
+ //# sourceMappingURL=Badge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Badge.js","names":[],"sources":["../../../src/components/badge/Badge.tsx"],"sourcesContent":["'use client';\n\nimport type { ComponentPropsWithRef, ReactElement, ReactNode } from 'react';\nimport { useNumberFormatter, VisuallyHidden } from 'react-aria';\nimport { cn } from '../../utils/cn';\nimport { badgedBoxStyles, badgeStyles } from './badge-styles';\nimport { mergeDataTokens } from '../../utils/merge-data-tokens';\n\n/** Words a {@link Badge} announces. */\nexport interface BadgeLabels {\n /** What a small badge (a dot) announces. @default \"New notification\" */\n newNotification: string;\n}\n\nexport interface BadgeClassNames {\n /** The badge itself: the dot, or the large badge's container. */\n root?: string;\n /** The large badge's text, which truncates at the badge's maximum width. */\n label?: string;\n}\n\nexport interface BadgeProps extends Omit<ComponentPropsWithRef<'span'>, 'children'> {\n /**\n * A count or a short label (large badge); leave it out for the small dot. Numbers are\n * formatted for the locale and capped at `max` (\"999+\"). M3 allows four characters,\n * including the \"+\"; text badges stop at 34px wide and truncate longer text.\n */\n children?: ReactNode;\n /** The highest count shown; larger counts show as `max` + \"+\". @default 999 */\n max?: number;\n /**\n * What assistive tech reads instead of the visible content, e.g. \"3 unread messages\".\n * Without it, a large badge reads its content and a small one `labels.newNotification`.\n */\n label?: string;\n /** Words the badge announces, with English defaults. */\n labels?: Partial<BadgeLabels>;\n /** Classes for each part, by slot. `classNames.root` is merged with `className`. */\n classNames?: BadgeClassNames;\n}\n\n/**\n * M3 badge: a small 6px dot, or a large 16px badge holding a count or a short label, in\n * `error` colours. Place it on an icon with {@link BadgedBox}. It is announced: a count is\n * read, a dot reads \"New notification\" (`labels`), and `label` replaces either.\n *\n * @example\n * <Badge />\n * <Badge>{3}</Badge>\n * <Badge max={99}>{120}</Badge> // \"99+\"\n */\nexport function Badge({\n children,\n max = 999,\n label,\n labels,\n classNames,\n className,\n ...rest\n}: BadgeProps) {\n const format = useNumberFormatter();\n const size = children == null || children === false ? 'small' : 'large';\n // M3's limit is four characters, \"+\" included; only longer text is cut.\n const overflow = typeof children === 'string' && [...children].length > 4;\n const styles = badgeStyles({ size, overflow });\n const content =\n typeof children === 'number'\n ? children > max\n ? `${format.format(max)}+`\n : format.format(children)\n : children;\n const announcement =\n label ?? (size === 'small' ? (labels?.newNotification ?? 'New notification') : null);\n return (\n <span\n {...rest}\n // The component tokens' hooks (badge-tokens.ts); `data-size` is also a public hook.\n data-tokens={mergeDataTokens('md-comp-badge', rest)}\n data-size={size}\n className={styles.root({ class: cn(classNames?.root, className) })}\n >\n {size === 'large' && (\n <span\n aria-hidden={announcement != null || undefined}\n // A count reads left to right in every layout, so \"999+\" never shows as \"+999\".\n dir={typeof children === 'number' ? 'ltr' : undefined}\n className={styles.label({ class: classNames?.label })}\n >\n {content}\n </span>\n )}\n {announcement != null && <VisuallyHidden elementType=\"span\">{announcement}</VisuallyHidden>}\n </span>\n );\n}\n\nexport interface BadgedBoxClassNames {\n /** The wrapper that positions the badge over its anchor. */\n root?: string;\n /** The wrapper around the anchor (`children`). */\n anchor?: string;\n}\n\nexport interface BadgedBoxProps extends Omit<ComponentPropsWithRef<'span'>, 'children'> {\n /** The badge, a {@link Badge}. */\n badge: ReactElement<BadgeProps>;\n /** The anchor, usually an icon. */\n children: ReactNode;\n /** Classes for each part, by slot. `classNames.root` is merged with `className`. */\n classNames?: BadgedBoxClassNames;\n}\n\n/**\n * Places a badge at the top end of its anchor (Compose's `BadgedBox`), e.g. on an icon.\n * The badge's announcement is part of the text around it; an anchor named with its own\n * `aria-label` should say what the badge means.\n *\n * @example\n * <IconButton\n * aria-label=\"Messages, 3 unread\"\n * icon={<BadgedBox badge={<Badge>{3}</Badge>}><MailIcon /></BadgedBox>}\n * />\n */\nexport function BadgedBox({ badge, children, classNames, className, ...rest }: BadgedBoxProps) {\n // The placement follows the badge's own `data-size` in CSS, so a badge that arrives as a\n // lazy server reference (no props yet) still hangs in the right place.\n const styles = badgedBoxStyles();\n return (\n <span {...rest} className={styles.root({ class: cn(classNames?.root, className) })}>\n <span className={styles.anchor({ class: classNames?.anchor })}>{children}</span>\n <span className={styles.hang()}>{badge}</span>\n </span>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAmDA,SAAgB,MAAM,EACpB,UACA,MAAM,KACN,OACA,QACA,YACA,WACA,GAAG,QACU;CACb,MAAM,SAAS,mBAAmB;CAClC,MAAM,OAAO,YAAY,QAAQ,aAAa,QAAQ,UAAU;CAEhE,MAAM,WAAW,OAAO,aAAa,YAAY,CAAC,GAAG,QAAQ,CAAC,CAAC,SAAS;CACxE,MAAM,SAAS,YAAY;EAAE;EAAM;CAAS,CAAC;CAC7C,MAAM,UACJ,OAAO,aAAa,WAChB,WAAW,MACT,GAAG,OAAO,OAAO,GAAG,EAAE,KACtB,OAAO,OAAO,QAAQ,IACxB;CACN,MAAM,eACJ,UAAU,SAAS,UAAW,QAAQ,mBAAmB,qBAAsB;CACjF,OACE,qBAAC,QAAD;EACE,GAAI;EAEJ,eAAa,gBAAgB,iBAAiB,IAAI;EAClD,aAAW;EACX,WAAW,OAAO,KAAK,EAAE,OAAO,GAAG,YAAY,MAAM,SAAS,EAAE,CAAC;EALnE,UAAA,CAOG,SAAS,WACR,oBAAC,QAAD;GACE,eAAa,gBAAgB,QAAQ,KAAA;GAErC,KAAK,OAAO,aAAa,WAAW,QAAQ,KAAA;GAC5C,WAAW,OAAO,MAAM,EAAE,OAAO,YAAY,MAAM,CAAC;GAEnD,UAAA;EACG,CAAA,GAEP,gBAAgB,QAAQ,oBAAC,gBAAD;GAAgB,aAAY;GAAQ,UAAA;EAA6B,CAAA,CACtF;;AAEV;;;;;;;;;;;;AA6BA,SAAgB,UAAU,EAAE,OAAO,UAAU,YAAY,WAAW,GAAG,QAAwB;CAG7F,MAAM,SAAS,gBAAgB;CAC/B,OACE,qBAAC,QAAD;EAAM,GAAI;EAAM,WAAW,OAAO,KAAK,EAAE,OAAO,GAAG,YAAY,MAAM,SAAS,EAAE,CAAC;EAAjF,UAAA,CACE,oBAAC,QAAD;GAAM,WAAW,OAAO,OAAO,EAAE,OAAO,YAAY,OAAO,CAAC;GAAI;EAAe,CAAA,GAC/E,oBAAC,QAAD;GAAM,WAAW,OAAO,KAAK;GAAI,UAAA;EAAY,CAAA,CACzC;;AAEV"}
@@ -0,0 +1,100 @@
1
+ import { VariantProps } from "../../utils/tv.js";
2
+ //#region src/components/badge/badge-styles.d.ts
3
+ /** Variant definitions for {@link Badge}; extend them to add colour styles. */
4
+ export declare const badgeStyles: import("tailwind-variants").TVReturnType<{
5
+ size: {
6
+ small: {
7
+ root: string;
8
+ };
9
+ large: {
10
+ root: string[];
11
+ };
12
+ };
13
+ /** Text longer than four characters stops at 34px (2.125rem) and truncates. */
14
+ overflow: {
15
+ true: {};
16
+ false: {};
17
+ };
18
+ }, {
19
+ root: string[];
20
+ label: string;
21
+ }, undefined, {
22
+ size: {
23
+ small: {
24
+ root: string;
25
+ };
26
+ large: {
27
+ root: string[];
28
+ };
29
+ };
30
+ /** Text longer than four characters stops at 34px (2.125rem) and truncates. */
31
+ overflow: {
32
+ true: {};
33
+ false: {};
34
+ };
35
+ }, {
36
+ root: string[];
37
+ label: string;
38
+ }, import("tailwind-variants").TVReturnTypeLike<{
39
+ size: {
40
+ small: {
41
+ root: string;
42
+ };
43
+ large: {
44
+ root: string[];
45
+ };
46
+ };
47
+ /** Text longer than four characters stops at 34px (2.125rem) and truncates. */
48
+ overflow: {
49
+ true: {};
50
+ false: {};
51
+ };
52
+ }, {
53
+ root: string[];
54
+ label: string;
55
+ }>>;
56
+ /** Variant definitions for {@link BadgedBox}. */
57
+ export declare const badgedBoxStyles: import("tailwind-variants").TVReturnType<{
58
+ [key: string]: {
59
+ [key: string]: import("tailwind-variants").ClassValue | {
60
+ root?: import("tailwind-variants").ClassValue;
61
+ anchor?: import("tailwind-variants").ClassValue;
62
+ hang?: import("tailwind-variants").ClassValue;
63
+ };
64
+ };
65
+ } | {
66
+ [x: string]: {
67
+ [x: string]: import("tailwind-variants").ClassValue | {
68
+ root?: import("tailwind-variants").ClassValue;
69
+ anchor?: import("tailwind-variants").ClassValue;
70
+ hang?: import("tailwind-variants").ClassValue;
71
+ };
72
+ };
73
+ } | {}, {
74
+ root: string;
75
+ anchor: string;
76
+ hang: string[];
77
+ }, undefined, {
78
+ [key: string]: {
79
+ [key: string]: import("tailwind-variants").ClassValue | {
80
+ root?: import("tailwind-variants").ClassValue;
81
+ anchor?: import("tailwind-variants").ClassValue;
82
+ hang?: import("tailwind-variants").ClassValue;
83
+ };
84
+ };
85
+ } | {}, {
86
+ root: string;
87
+ anchor: string;
88
+ hang: string[];
89
+ }, import("tailwind-variants").TVReturnTypeLike<unknown, {
90
+ root: string;
91
+ anchor: string;
92
+ hang: string[];
93
+ }>>;
94
+ /**
95
+ * The variants of {@link badgeStyles}, for building on its styles. They are the recipe's keys, not
96
+ * component props: their names (`hasIcon`, `isOpen`…) follow the classes and may change.
97
+ */
98
+ export type BadgeStyleProps = VariantProps<typeof badgeStyles>;
99
+ //#endregion
100
+ //# sourceMappingURL=badge-styles.d.ts.map
@@ -0,0 +1,43 @@
1
+ import { tv } from "../../utils/tv.js";
2
+ //#region src/components/badge/badge-styles.ts
3
+ /** Variant definitions for {@link Badge}; extend them to add colour styles. */
4
+ const badgeStyles = tv({
5
+ slots: {
6
+ root: ["inline-flex shrink-0 items-center justify-center rounded-corner-full", "bg-[var(--_md-comp-badge-color)] text-[color:var(--_md-comp-badge-label-text-color)]"],
7
+ label: "min-w-0 truncate"
8
+ },
9
+ variants: {
10
+ size: {
11
+ small: { root: "size-[6px] forced-colors:bg-[CanvasText] forced-colors:forced-color-adjust-none" },
12
+ large: { root: ["min-h-[1rem] min-w-[1rem] ps-[4px] pe-[4px] text-label-small whitespace-nowrap", "forced-colors:outline forced-colors:outline-1 forced-colors:outline-solid forced-colors:outline-[CanvasText]"] }
13
+ },
14
+ /** Text longer than four characters stops at 34px (2.125rem) and truncates. */
15
+ overflow: {
16
+ true: {},
17
+ false: {}
18
+ }
19
+ },
20
+ compoundVariants: [{
21
+ size: "large",
22
+ overflow: true,
23
+ class: { root: "max-w-[2.125rem]" }
24
+ }],
25
+ defaultVariants: {
26
+ size: "small",
27
+ overflow: false
28
+ }
29
+ });
30
+ /** Variant definitions for {@link BadgedBox}. */
31
+ const badgedBoxStyles = tv({ slots: {
32
+ root: "inline-grid shrink-0 grid-cols-[100%] grid-rows-[100%] align-middle",
33
+ anchor: "col-start-1 row-start-1 flex items-center justify-center [&>svg]:size-[24px]",
34
+ hang: [
35
+ "col-start-1 row-start-1 flex size-0 items-end self-start justify-self-start",
36
+ "ms-[calc(100%-6px)] mt-[6px]",
37
+ "has-[[data-size=large]]:ms-[calc(100%-12px)] has-[[data-size=large]]:mt-[14px]"
38
+ ]
39
+ } });
40
+ //#endregion
41
+ export { badgeStyles, badgedBoxStyles };
42
+
43
+ //# sourceMappingURL=badge-styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"badge-styles.js","names":[],"sources":["../../../src/components/badge/badge-styles.ts"],"sourcesContent":["import { tv, type VariantProps } from '../../utils/tv';\n\n/*\n * Values follow Compose Material 3 (Badge.kt, BadgeTokens).\n *\n * Small badge: a 6px `error` dot. Large badge: at least 16px (1rem, so it grows with the\n * text), full corners, 4px side padding, `label-small` `on-error`. Counts are capped (\"999+\"). M3 allows up to four\n * characters, including \"+\", within \"16x34dp\": a label of four characters or fewer is never\n * cut (\"999+\" renders about a pixel wider than 34px), and only longer text stops at 34px and\n * truncates.\n *\n * Placement (BadgedBox): a small badge's start edge sits 6px inside the anchor's end and\n * its top on the anchor's top; a large badge starts 12px inside the end with its bottom\n * 14px below the anchor's top. The badge hangs from a zero-size box in the anchor's grid\n * cell (margin-inline-start: 100% − offset, flex-aligned to its bottom), so nothing is\n * positioned and the badge never changes the anchor's size; it mirrors in RTL.\n *\n * The colours come from the badge's component tokens (`badge-tokens.ts`,\n * `--md-comp-badge-color` and `--md-comp-badge-large-*`); the root carries\n * `data-tokens=\"md-comp-badge\"` and `data-size`, and the classes read one private variable per\n * part. A consumer class (`bg-primary`) still wins.\n *\n * Every class is written out in full so Tailwind can find it.\n */\n\n/** Variant definitions for {@link Badge}; extend them to add colour styles. */\nexport const badgeStyles = tv({\n slots: {\n root: [\n 'inline-flex shrink-0 items-center justify-center rounded-corner-full',\n 'bg-[var(--_md-comp-badge-color)] text-[color:var(--_md-comp-badge-label-text-color)]',\n ],\n // Only text longer than M3's four characters is cut (see `overflow`).\n label: 'min-w-0 truncate',\n },\n variants: {\n size: {\n // Forced colours drop backgrounds: the dot is drawn in `CanvasText`, and the large badge\n // takes an outline round its digits.\n small: {\n root: 'size-[6px] forced-colors:bg-[CanvasText] forced-colors:forced-color-adjust-none',\n },\n large: {\n root: [\n // In rem, as the label's 16px line height is (1rem): at a larger text size a digit stays\n // a circle and the 34px limit grows with the text (2026-10-17).\n 'min-h-[1rem] min-w-[1rem] ps-[4px] pe-[4px] text-label-small whitespace-nowrap',\n 'forced-colors:outline forced-colors:outline-1 forced-colors:outline-solid forced-colors:outline-[CanvasText]',\n ],\n },\n },\n /** Text longer than four characters stops at 34px (2.125rem) and truncates. */\n overflow: {\n true: {},\n false: {},\n },\n },\n compoundVariants: [{ size: 'large', overflow: true, class: { root: 'max-w-[2.125rem]' } }],\n defaultVariants: { size: 'small', overflow: false },\n});\n\n/** Variant definitions for {@link BadgedBox}. */\nexport const badgedBoxStyles = tv({\n slots: {\n root: 'inline-grid shrink-0 grid-cols-[100%] grid-rows-[100%] align-middle',\n // A bare SVG anchor gets Compose's default 24px icon size; wrap other sizes.\n anchor: 'col-start-1 row-start-1 flex items-center justify-center [&>svg]:size-[24px]',\n // The zero-size box the badge hangs from; a large badge (its root's `data-size`) hangs\n // further in and lower.\n hang: [\n 'col-start-1 row-start-1 flex size-0 items-end self-start justify-self-start',\n 'ms-[calc(100%-6px)] mt-[6px]',\n 'has-[[data-size=large]]:ms-[calc(100%-12px)] has-[[data-size=large]]:mt-[14px]',\n ],\n },\n});\n\n/**\n * The variants of {@link badgeStyles}, for building on its styles. They are the recipe's keys, not\n * component props: their names (`hasIcon`, `isOpen`…) follow the classes and may change.\n */\nexport type BadgeStyleProps = VariantProps<typeof badgeStyles>;\n"],"mappings":";;;AA0BA,MAAa,cAAc,GAAG;CAC5B,OAAO;EACL,MAAM,CACJ,wEACA,sFACF;EAEA,OAAO;CACT;CACA,UAAU;EACR,MAAM;GAGJ,OAAO,EACL,MAAM,kFACR;GACA,OAAO,EACL,MAAM,CAGJ,kFACA,8GACF,EACF;EACF;;EAEA,UAAU;GACR,MAAM,CAAC;GACP,OAAO,CAAC;EACV;CACF;CACA,kBAAkB,CAAC;EAAE,MAAM;EAAS,UAAU;EAAM,OAAO,EAAE,MAAM,mBAAmB;CAAE,CAAC;CACzF,iBAAiB;EAAE,MAAM;EAAS,UAAU;CAAM;AACpD,CAAC;;AAGD,MAAa,kBAAkB,GAAG,EAChC,OAAO;CACL,MAAM;CAEN,QAAQ;CAGR,MAAM;EACJ;EACA;EACA;CACF;AACF,EACF,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { ComponentTokenSet } from "../../tokens/component.js";
2
+ import "../../index.js";
3
+ //#region src/components/badge/badge-tokens.d.ts
4
+ /** The tokens of {@link Badge}: `--md-comp-badge-<part>` and `--md-comp-badge-large-<part>`. */
5
+ export declare const badgeTokenSet: ComponentTokenSet<never>;
6
+ //#endregion
7
+ //# sourceMappingURL=badge-tokens.d.ts.map
@@ -0,0 +1,40 @@
1
+ import { color, defineComponentTokens } from "../../tokens/component.js";
2
+ //#region src/components/badge/badge-tokens.ts
3
+ /** The tokens of {@link Badge}: `--md-comp-badge-<part>` and `--md-comp-badge-large-<part>`. */
4
+ const badgeTokenSet = defineComponentTokens({
5
+ name: "md-comp-badge",
6
+ tokens: {},
7
+ scopes: { size: {
8
+ small: {
9
+ prefix: "md-comp-badge",
10
+ tokens: { color: {
11
+ value: color("error"),
12
+ description: "The small badge, a dot.",
13
+ compose: "BadgeTokens.Color",
14
+ paints: { property: "background-color" }
15
+ } },
16
+ fixed: { "label-text-color": color("on-error") }
17
+ },
18
+ large: {
19
+ prefix: "md-comp-badge-large",
20
+ tokens: {
21
+ color: {
22
+ value: color("error"),
23
+ description: "The large badge, holding a count or short text.",
24
+ compose: "BadgeTokens.LargeColor",
25
+ paints: { property: "background-color" }
26
+ },
27
+ "label-text-color": {
28
+ value: color("on-error"),
29
+ description: "The large badge's label.",
30
+ compose: "BadgeTokens.LargeLabelTextColor",
31
+ paints: { property: "color" }
32
+ }
33
+ }
34
+ }
35
+ } }
36
+ });
37
+ //#endregion
38
+ export { badgeTokenSet };
39
+
40
+ //# sourceMappingURL=badge-tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"badge-tokens.js","names":[],"sources":["../../../src/components/badge/badge-tokens.ts"],"sourcesContent":["import { color, defineComponentTokens } from '../../tokens/component';\n\n/*\n * Badge's component tokens, M3's `md.comp.badge.*` names (checked against m3.material.io's\n * token tables, 2026-10-14), with Compose's BadgeTokens defaults. The badge's `data-size`\n * (`small`, the dot, or `large`, with a label) picks the public names; `badge-styles.ts`\n * reads one private variable per part. Sizes and the full corners stay classes.\n */\n\n/** The tokens of {@link Badge}: `--md-comp-badge-<part>` and `--md-comp-badge-large-<part>`. */\nexport const badgeTokenSet = defineComponentTokens({\n name: 'md-comp-badge',\n tokens: {},\n scopes: {\n size: {\n small: {\n prefix: 'md-comp-badge',\n tokens: {\n color: {\n value: color('error'),\n description: 'The small badge, a dot.',\n compose: 'BadgeTokens.Color',\n paints: { property: 'background-color' },\n },\n },\n // The dot shows no text; its colour matches the large badge's default.\n fixed: { 'label-text-color': color('on-error') },\n },\n large: {\n prefix: 'md-comp-badge-large',\n tokens: {\n color: {\n value: color('error'),\n description: 'The large badge, holding a count or short text.',\n compose: 'BadgeTokens.LargeColor',\n paints: { property: 'background-color' },\n },\n 'label-text-color': {\n value: color('on-error'),\n description: \"The large badge's label.\",\n compose: 'BadgeTokens.LargeLabelTextColor',\n paints: { property: 'color' },\n },\n },\n },\n },\n },\n});\n"],"mappings":";;;AAUA,MAAa,gBAAgB,sBAAsB;CACjD,MAAM;CACN,QAAQ,CAAC;CACT,QAAQ,EACN,MAAM;EACJ,OAAO;GACL,QAAQ;GACR,QAAQ,EACN,OAAO;IACL,OAAO,MAAM,OAAO;IACpB,aAAa;IACb,SAAS;IACT,QAAQ,EAAE,UAAU,mBAAmB;GACzC,EACF;GAEA,OAAO,EAAE,oBAAoB,MAAM,UAAU,EAAE;EACjD;EACA,OAAO;GACL,QAAQ;GACR,QAAQ;IACN,OAAO;KACL,OAAO,MAAM,OAAO;KACpB,aAAa;KACb,SAAS;KACT,QAAQ,EAAE,UAAU,mBAAmB;IACzC;IACA,oBAAoB;KAClB,OAAO,MAAM,UAAU;KACvB,aAAa;KACb,SAAS;KACT,QAAQ,EAAE,UAAU,QAAQ;IAC9B;GACF;EACF;CACF,EACF;AACF,CAAC"}
@@ -0,0 +1,91 @@
1
+ import { ButtonBaseActionProps, ButtonBaseLinkProps, ButtonBaseToggleProps } from "../../primitives/ButtonBase.js";
2
+ import { ButtonShape, ButtonSize, ButtonVariant } from "./button-styles.js";
3
+ import { ButtonLabels } from "./button-pending.js";
4
+ import { ReactElement, ReactNode } from "react";
5
+ //#region src/components/button/Button.d.ts
6
+ export interface ButtonClassNames {
7
+ /** The button element itself; merged with `className`. */
8
+ root?: string;
9
+ /** Inner wrapper around the icons and label. */
10
+ content?: string;
11
+ /** The label text. */
12
+ label?: string;
13
+ /** The leading icon. */
14
+ icon?: string;
15
+ /** The slot holding the loading indicator while `pending`, centred over the hidden content. */
16
+ pendingIndicator?: string;
17
+ }
18
+ interface PendingProps {
19
+ /**
20
+ * Shows a loading indicator in place of the content while an action runs, and blocks
21
+ * presses. The button keeps its width, its colours and keyboard focus; its accessible name
22
+ * gains `labels.pending`, and a focused button announces it. The indicator appears after
23
+ * 200ms, so a quick action doesn't flash. Use it for actions that take a moment, not for
24
+ * every button in a list. A submit button doesn't submit again while pending.
25
+ * @default false
26
+ */
27
+ pending?: boolean;
28
+ /**
29
+ * Replaces the loading indicator shown while `pending`, e.g. a `CircularProgressIndicator`
30
+ * for a wait that may pass five seconds. It's centred over the content and takes the content
31
+ * colour; a progress indicator also loses its track, as M3 asks inside a button.
32
+ */
33
+ pendingIndicator?: ReactElement;
34
+ }
35
+ /** A toggle's state is its selection: it has no pending state. */
36
+ interface NoPendingProps {
37
+ /** Toggle buttons have no pending state. */
38
+ pending?: never;
39
+ /** Toggle buttons have no pending state. */
40
+ pendingIndicator?: never;
41
+ }
42
+ interface ButtonOwnProps {
43
+ /** The M3 style: filled, tonal, outlined, elevated or text. @default "filled" */
44
+ variant?: ButtonVariant;
45
+ /** Height, padding and label size, from extra small to extra large. @default "sm" */
46
+ size?: ButtonSize;
47
+ /** Fully round corners, or square ones (still rounded, but less). @default "round" */
48
+ shape?: ButtonShape;
49
+ /**
50
+ * Icon before the label, e.g. a Material Symbols SVG. Decorative; the label names the
51
+ * button. M3 allows one icon, on the leading side ("Don't use two icons in the same
52
+ * button"), so there's no trailing icon.
53
+ */
54
+ leadingIcon?: ReactElement;
55
+ /** The visible label. Required: buttons without text are `IconButton`s. */
56
+ children: Exclude<ReactNode, null | undefined | boolean>;
57
+ /** Classes for each part. `classNames.root` is merged with `className`. */
58
+ classNames?: ButtonClassNames;
59
+ /** Words the button announces. */
60
+ labels?: Partial<ButtonLabels>;
61
+ }
62
+ export interface ButtonActionProps extends ButtonOwnProps, PendingProps, Omit<ButtonBaseActionProps, keyof ButtonOwnProps | keyof PendingProps> {}
63
+ export interface ButtonLinkProps extends ButtonOwnProps, PendingProps, Omit<ButtonBaseLinkProps, keyof ButtonOwnProps | keyof PendingProps> {}
64
+ export interface ButtonToggleProps extends Omit<ButtonOwnProps, 'variant'>, NoPendingProps, Omit<ButtonBaseToggleProps, keyof ButtonOwnProps | keyof NoPendingProps> {
65
+ /** Text buttons have no toggle form. @default "filled" */
66
+ variant?: Exclude<ButtonVariant, 'text'>;
67
+ /**
68
+ * Leading icon shown while selected, e.g. the filled form of `leadingIcon` (M3: "use an
69
+ * outlined icon when unselected, and a filled version of the icon when selected").
70
+ * @default leadingIcon
71
+ */
72
+ selectedLeadingIcon?: ReactElement;
73
+ }
74
+ export type ButtonProps = ButtonActionProps | ButtonLinkProps | ButtonToggleProps;
75
+ /**
76
+ * M3 Expressive button: five variants, five sizes (XS–XL), round or square shape,
77
+ * an optional toggle form, and a press morph that squares the corners while pressed.
78
+ *
79
+ * Renders a `<button>`, or an `<a>` when `href` is set. `className` and `style` go on
80
+ * that element, and consumer classes always win.
81
+ *
82
+ * @example
83
+ * <Button variant="tonal" size="md" leadingIcon={<EditIcon />} onPress={edit}>Edit</Button>
84
+ * <Button toggle leadingIcon={<StarIcon />} selectedLeadingIcon={<StarFilledIcon />}
85
+ * selected={starred} onSelectedChange={setStarred}>Starred</Button>
86
+ * <Button href="/docs" variant="text">Docs</Button>
87
+ * <Button type="submit" pending={isPending}>Save</Button>
88
+ */
89
+ export declare function Button({ variant: variantProp, size: sizeProp, shape: shapeProp, disabled: disabledProp, leadingIcon, pendingIndicator, labels, classNames, className, children, ...rest }: ButtonProps): import("react").JSX.Element;
90
+ //#endregion
91
+ //# sourceMappingURL=Button.d.ts.map
@@ -0,0 +1,96 @@
1
+ "use client";
2
+ import { cn } from "../../utils/cn.js";
3
+ import { ButtonBase } from "../../primitives/ButtonBase.js";
4
+ import { TouchTarget } from "../../primitives/TouchTarget.js";
5
+ import { buttonStyles } from "./button-styles.js";
6
+ import { ButtonContext } from "./ButtonContext.js";
7
+ import { mergeDataTokens } from "../../utils/merge-data-tokens.js";
8
+ import { pendingClasses, useButtonPending } from "./button-pending.js";
9
+ import { useContext } from "react";
10
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
11
+ //#region src/components/button/Button.tsx
12
+ /**
13
+ * M3 Expressive button: five variants, five sizes (XS–XL), round or square shape,
14
+ * an optional toggle form, and a press morph that squares the corners while pressed.
15
+ *
16
+ * Renders a `<button>`, or an `<a>` when `href` is set. `className` and `style` go on
17
+ * that element, and consumer classes always win.
18
+ *
19
+ * @example
20
+ * <Button variant="tonal" size="md" leadingIcon={<EditIcon />} onPress={edit}>Edit</Button>
21
+ * <Button toggle leadingIcon={<StarIcon />} selectedLeadingIcon={<StarFilledIcon />}
22
+ * selected={starred} onSelectedChange={setStarred}>Starred</Button>
23
+ * <Button href="/docs" variant="text">Docs</Button>
24
+ * <Button type="submit" pending={isPending}>Save</Button>
25
+ */
26
+ function Button({ variant: variantProp, size: sizeProp, shape: shapeProp, disabled: disabledProp, leadingIcon, pendingIndicator, labels, classNames, className, children, ...rest }) {
27
+ const { selectedLeadingIcon, ...base } = rest;
28
+ const context = useContext(ButtonContext);
29
+ const toggle = base.toggle === true;
30
+ let variant = variantProp ?? context.variant ?? "filled";
31
+ if (toggle && variant === "text") {
32
+ if (process.env.NODE_ENV !== "production") console.warn("[@windmorph/react] Text buttons have no toggle form; using \"filled\".");
33
+ variant = "filled";
34
+ }
35
+ const size = sizeProp ?? context.size ?? "sm";
36
+ const styles = buttonStyles({
37
+ variant,
38
+ size,
39
+ shape: shapeProp ?? context.shape ?? "round",
40
+ toggle,
41
+ connected: context.connected ?? "none"
42
+ });
43
+ const tokenAttributes = {
44
+ "data-tokens": mergeDataTokens("md-comp-button", base),
45
+ "data-variant": variant,
46
+ "data-size": size
47
+ };
48
+ const pending = useButtonPending({
49
+ pending: base.pending,
50
+ pendingIndicator,
51
+ labels,
52
+ size,
53
+ ariaLabel: base["aria-label"],
54
+ ariaLabelledby: base["aria-labelledby"],
55
+ ref: base.ref,
56
+ indicatorClassName: cn(pendingClasses.indicator, classNames?.pendingIndicator)
57
+ });
58
+ const baseProps = {
59
+ ...base,
60
+ ...tokenAttributes,
61
+ ...pending.rootProps,
62
+ disabled: disabledProp ?? context.disabled ?? false,
63
+ className: styles.root({ class: cn(classNames?.root, className) })
64
+ };
65
+ return /* @__PURE__ */ jsx(ButtonBase, {
66
+ ...baseProps,
67
+ children: ({ isSelected }) => {
68
+ const icon = isSelected && selectedLeadingIcon ? selectedLeadingIcon : leadingIcon;
69
+ const faces = /* @__PURE__ */ jsxs(Fragment$1, { children: [icon && /* @__PURE__ */ jsx("span", {
70
+ "aria-hidden": "true",
71
+ className: styles.icon({ class: classNames?.icon }),
72
+ children: icon
73
+ }), /* @__PURE__ */ jsxs("span", {
74
+ className: styles.label({ class: classNames?.label }),
75
+ children: [children, pending.nameSuffix]
76
+ })] });
77
+ return /* @__PURE__ */ jsxs("span", {
78
+ ...pending.contentProps,
79
+ className: styles.content({ class: cn(pending.takesPending && pendingClasses.content, classNames?.content) }),
80
+ children: [
81
+ (size === "xs" || size === "sm") && /* @__PURE__ */ jsx(TouchTarget, {}),
82
+ pending.takesPending ? /* @__PURE__ */ jsx("span", {
83
+ className: cn(pendingClasses.faces, pendingClasses.replaced),
84
+ children: faces
85
+ }) : faces,
86
+ pending.indicator,
87
+ pending.hiddenName
88
+ ]
89
+ });
90
+ }
91
+ });
92
+ }
93
+ //#endregion
94
+ export { Button };
95
+
96
+ //# sourceMappingURL=Button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Button.js","names":[],"sources":["../../../src/components/button/Button.tsx"],"sourcesContent":["'use client';\n\nimport { useContext, type ReactElement, type ReactNode, type Ref } from 'react';\nimport {\n ButtonBase,\n type ButtonBaseActionProps,\n type ButtonBaseLinkProps,\n type ButtonBaseProps,\n type ButtonBaseToggleProps,\n} from '../../primitives/ButtonBase';\nimport { TouchTarget } from '../../primitives/TouchTarget';\nimport { cn } from '../../utils/cn';\nimport {\n buttonStyles,\n type ButtonShape,\n type ButtonSize,\n type ButtonVariant,\n} from './button-styles';\nimport { ButtonContext } from './ButtonContext';\nimport { mergeDataTokens } from '../../utils/merge-data-tokens';\nimport { pendingClasses, useButtonPending, type ButtonLabels } from './button-pending';\n\nexport interface ButtonClassNames {\n /** The button element itself; merged with `className`. */\n root?: string;\n /** Inner wrapper around the icons and label. */\n content?: string;\n /** The label text. */\n label?: string;\n /** The leading icon. */\n icon?: string;\n /** The slot holding the loading indicator while `pending`, centred over the hidden content. */\n pendingIndicator?: string;\n}\n\ninterface PendingProps {\n /**\n * Shows a loading indicator in place of the content while an action runs, and blocks\n * presses. The button keeps its width, its colours and keyboard focus; its accessible name\n * gains `labels.pending`, and a focused button announces it. The indicator appears after\n * 200ms, so a quick action doesn't flash. Use it for actions that take a moment, not for\n * every button in a list. A submit button doesn't submit again while pending.\n * @default false\n */\n pending?: boolean;\n /**\n * Replaces the loading indicator shown while `pending`, e.g. a `CircularProgressIndicator`\n * for a wait that may pass five seconds. It's centred over the content and takes the content\n * colour; a progress indicator also loses its track, as M3 asks inside a button.\n */\n pendingIndicator?: ReactElement;\n}\n\n/** A toggle's state is its selection: it has no pending state. */\ninterface NoPendingProps {\n /** Toggle buttons have no pending state. */\n pending?: never;\n /** Toggle buttons have no pending state. */\n pendingIndicator?: never;\n}\n\ninterface ButtonOwnProps {\n /** The M3 style: filled, tonal, outlined, elevated or text. @default \"filled\" */\n variant?: ButtonVariant;\n /** Height, padding and label size, from extra small to extra large. @default \"sm\" */\n size?: ButtonSize;\n /** Fully round corners, or square ones (still rounded, but less). @default \"round\" */\n shape?: ButtonShape;\n /**\n * Icon before the label, e.g. a Material Symbols SVG. Decorative; the label names the\n * button. M3 allows one icon, on the leading side (\"Don't use two icons in the same\n * button\"), so there's no trailing icon.\n */\n leadingIcon?: ReactElement;\n /** The visible label. Required: buttons without text are `IconButton`s. */\n children: Exclude<ReactNode, null | undefined | boolean>;\n /** Classes for each part. `classNames.root` is merged with `className`. */\n classNames?: ButtonClassNames;\n /** Words the button announces. */\n labels?: Partial<ButtonLabels>;\n}\n\nexport interface ButtonActionProps\n extends\n ButtonOwnProps,\n PendingProps,\n Omit<ButtonBaseActionProps, keyof ButtonOwnProps | keyof PendingProps> {}\n\nexport interface ButtonLinkProps\n extends\n ButtonOwnProps,\n PendingProps,\n Omit<ButtonBaseLinkProps, keyof ButtonOwnProps | keyof PendingProps> {}\n\nexport interface ButtonToggleProps\n extends\n Omit<ButtonOwnProps, 'variant'>,\n NoPendingProps,\n Omit<ButtonBaseToggleProps, keyof ButtonOwnProps | keyof NoPendingProps> {\n /** Text buttons have no toggle form. @default \"filled\" */\n variant?: Exclude<ButtonVariant, 'text'>;\n /**\n * Leading icon shown while selected, e.g. the filled form of `leadingIcon` (M3: \"use an\n * outlined icon when unselected, and a filled version of the icon when selected\").\n * @default leadingIcon\n */\n selectedLeadingIcon?: ReactElement;\n}\n\nexport type ButtonProps = ButtonActionProps | ButtonLinkProps | ButtonToggleProps;\n\n/**\n * M3 Expressive button: five variants, five sizes (XS–XL), round or square shape,\n * an optional toggle form, and a press morph that squares the corners while pressed.\n *\n * Renders a `<button>`, or an `<a>` when `href` is set. `className` and `style` go on\n * that element, and consumer classes always win.\n *\n * @example\n * <Button variant=\"tonal\" size=\"md\" leadingIcon={<EditIcon />} onPress={edit}>Edit</Button>\n * <Button toggle leadingIcon={<StarIcon />} selectedLeadingIcon={<StarFilledIcon />}\n * selected={starred} onSelectedChange={setStarred}>Starred</Button>\n * <Button href=\"/docs\" variant=\"text\">Docs</Button>\n * <Button type=\"submit\" pending={isPending}>Save</Button>\n */\nexport function Button({\n variant: variantProp,\n size: sizeProp,\n shape: shapeProp,\n disabled: disabledProp,\n leadingIcon,\n pendingIndicator,\n labels,\n classNames,\n className,\n children,\n ...rest\n}: ButtonProps) {\n // Only toggle props carry `selectedLeadingIcon`; the others read it as undefined.\n const { selectedLeadingIcon, ...base } = rest as typeof rest & {\n selectedLeadingIcon?: ReactElement;\n };\n const context = useContext(ButtonContext);\n const toggle = base.toggle === true;\n let variant = variantProp ?? context.variant ?? 'filled';\n if (toggle && variant === 'text') {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('[@windmorph/react] Text buttons have no toggle form; using \"filled\".');\n }\n variant = 'filled';\n }\n const size = sizeProp ?? context.size ?? 'sm';\n const styles = buttonStyles({\n variant,\n size,\n shape: shapeProp ?? context.shape ?? 'round',\n toggle,\n connected: context.connected ?? 'none',\n });\n\n // Destructuring a union merges its members, so TypeScript loses the pairing of\n // `href`/`toggle` with their `ref` types. `base` still holds exactly one member's props.\n // The component tokens' hooks (button-tokens.ts), also public styling hooks for apps.\n const tokenAttributes = {\n 'data-tokens': mergeDataTokens('md-comp-button', base),\n 'data-variant': variant,\n 'data-size': size,\n };\n const pending = useButtonPending<HTMLElement>({\n pending: base.pending,\n pendingIndicator,\n labels,\n size,\n ariaLabel: base['aria-label'],\n ariaLabelledby: base['aria-labelledby'],\n ref: base.ref as Ref<HTMLElement> | undefined,\n indicatorClassName: cn(pendingClasses.indicator, classNames?.pendingIndicator),\n });\n const baseProps = {\n ...base,\n ...tokenAttributes,\n ...pending.rootProps,\n disabled: disabledProp ?? context.disabled ?? false,\n className: styles.root({ class: cn(classNames?.root, className) }),\n } as ButtonBaseProps;\n\n return (\n <ButtonBase {...baseProps}>\n {({ isSelected }) => {\n const icon = isSelected && selectedLeadingIcon ? selectedLeadingIcon : leadingIcon;\n const faces = (\n <>\n {icon && (\n <span aria-hidden=\"true\" className={styles.icon({ class: classNames?.icon })}>\n {icon}\n </span>\n )}\n <span className={styles.label({ class: classNames?.label })}>\n {children}\n {pending.nameSuffix}\n </span>\n </>\n );\n return (\n <span\n {...pending.contentProps}\n className={styles.content({\n class: cn(pending.takesPending && pendingClasses.content, classNames?.content),\n })}\n >\n {(size === 'xs' || size === 'sm') && <TouchTarget />}\n {pending.takesPending ? (\n <span className={cn(pendingClasses.faces, pendingClasses.replaced)}>{faces}</span>\n ) : (\n faces\n )}\n {pending.indicator}\n {pending.hiddenName}\n </span>\n );\n }}\n </ButtonBase>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AA6HA,SAAgB,OAAO,EACrB,SAAS,aACT,MAAM,UACN,OAAO,WACP,UAAU,cACV,aACA,kBACA,QACA,YACA,WACA,UACA,GAAG,QACW;CAEd,MAAM,EAAE,qBAAqB,GAAG,SAAS;CAGzC,MAAM,UAAU,WAAW,aAAa;CACxC,MAAM,SAAS,KAAK,WAAW;CAC/B,IAAI,UAAU,eAAe,QAAQ,WAAW;CAChD,IAAI,UAAU,YAAY,QAAQ;EAChC,IAAI,QAAQ,IAAI,aAAa,cAC3B,QAAQ,KAAK,wEAAsE;EAErF,UAAU;CACZ;CACA,MAAM,OAAO,YAAY,QAAQ,QAAQ;CACzC,MAAM,SAAS,aAAa;EAC1B;EACA;EACA,OAAO,aAAa,QAAQ,SAAS;EACrC;EACA,WAAW,QAAQ,aAAa;CAClC,CAAC;CAKD,MAAM,kBAAkB;EACtB,eAAe,gBAAgB,kBAAkB,IAAI;EACrD,gBAAgB;EAChB,aAAa;CACf;CACA,MAAM,UAAU,iBAA8B;EAC5C,SAAS,KAAK;EACd;EACA;EACA;EACA,WAAW,KAAK;EAChB,gBAAgB,KAAK;EACrB,KAAK,KAAK;EACV,oBAAoB,GAAG,eAAe,WAAW,YAAY,gBAAgB;CAC/E,CAAC;CACD,MAAM,YAAY;EAChB,GAAG;EACH,GAAG;EACH,GAAG,QAAQ;EACX,UAAU,gBAAgB,QAAQ,YAAY;EAC9C,WAAW,OAAO,KAAK,EAAE,OAAO,GAAG,YAAY,MAAM,SAAS,EAAE,CAAC;CACnE;CAEA,OACE,oBAAC,YAAD;EAAY,GAAI;EACZ,WAAA,EAAE,iBAAiB;GACnB,MAAM,OAAO,cAAc,sBAAsB,sBAAsB;GACvE,MAAM,QACJ,qBAAA,YAAA,EAAA,UAAA,CACG,QACC,oBAAC,QAAD;IAAM,eAAY;IAAO,WAAW,OAAO,KAAK,EAAE,OAAO,YAAY,KAAK,CAAC;IACxE,UAAA;GACG,CAAA,GAER,qBAAC,QAAD;IAAM,WAAW,OAAO,MAAM,EAAE,OAAO,YAAY,MAAM,CAAC;IAA1D,UAAA,CACG,UACA,QAAQ,UACL;GACN,CAAA,CAAA,EAAA,CAAA;GAEJ,OACE,qBAAC,QAAD;IACE,GAAI,QAAQ;IACZ,WAAW,OAAO,QAAQ,EACxB,OAAO,GAAG,QAAQ,gBAAgB,eAAe,SAAS,YAAY,OAAO,EAC/E,CAAC;IAJH,UAAA;MAMI,SAAS,QAAQ,SAAS,SAAS,oBAAC,aAAD,CAAc,CAAA;KAClD,QAAQ,eACP,oBAAC,QAAD;MAAM,WAAW,GAAG,eAAe,OAAO,eAAe,QAAQ;MAAI,UAAA;KAAY,CAAA,IAEjF;KAED,QAAQ;KACR,QAAQ;IACL;;EAEV;CACU,CAAA;AAEhB"}
@@ -0,0 +1,30 @@
1
+ import { Density } from "../../tokens/density.js";
2
+ import { ToggleGroupStateContext } from "../../primitives/ButtonBase.js";
3
+ import { ButtonShape, ButtonSize, ButtonVariant } from "./button-styles.js";
4
+ import { IconButtonVariant } from "../icon-button/icon-button-styles.js";
5
+ //#region src/components/button/ButtonContext.d.ts
6
+ /** Props a parent (such as a button group) shares with its buttons. A button's own props win. */
7
+ export interface ButtonContextValue {
8
+ variant?: ButtonVariant;
9
+ size?: ButtonSize;
10
+ shape?: ButtonShape;
11
+ disabled?: boolean;
12
+ /**
13
+ * Default style of the `IconButton`s inside, where M3 calls for one other than the
14
+ * filled default (e.g. `standard` in toolbars and app bars). An icon button's own
15
+ * `variant` wins.
16
+ */
17
+ iconButtonVariant?: IconButtonVariant;
18
+ /**
19
+ * Density of the `IconButton`s inside, for a container that keeps its own size whatever the
20
+ * density (an app bar, a toolbar, a search bar): `0` keeps their M3 size there. An icon
21
+ * button's own `density` wins.
22
+ */
23
+ density?: Density;
24
+ /** Position in a connected button group; set per child by `ButtonGroup`. */
25
+ connected?: 'leading' | 'middle' | 'trailing';
26
+ }
27
+ export declare const ButtonContext: import("react").Context<ButtonContextValue>;
28
+ //#endregion
29
+ export { ToggleGroupStateContext };
30
+ //# sourceMappingURL=ButtonContext.d.ts.map
@@ -0,0 +1,18 @@
1
+ "use client";
2
+ import { ToggleGroupStateContext } from "../../primitives/ButtonBase.js";
3
+ import { createContext } from "react";
4
+ //#region src/components/button/ButtonContext.ts
5
+ const ButtonContext = createContext({});
6
+ /**
7
+ * The context of a container whose icon buttons are `standard` by default, as M3 shows
8
+ * them in toolbars, app bars and search bars. These containers keep their size at every
9
+ * density, so their icon buttons stay at density 0 too.
10
+ */
11
+ const standardIconButtons = {
12
+ iconButtonVariant: "standard",
13
+ density: 0
14
+ };
15
+ //#endregion
16
+ export { ButtonContext, ToggleGroupStateContext, standardIconButtons };
17
+
18
+ //# sourceMappingURL=ButtonContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ButtonContext.js","names":[],"sources":["../../../src/components/button/ButtonContext.ts"],"sourcesContent":["'use client';\n\nimport { createContext } from 'react';\nimport type { Density } from '../../tokens/density';\nimport type { IconButtonVariant } from '../icon-button/icon-button-styles';\nimport type { ButtonShape, ButtonSize, ButtonVariant } from './button-styles';\n\n/** Props a parent (such as a button group) shares with its buttons. A button's own props win. */\nexport interface ButtonContextValue {\n variant?: ButtonVariant;\n size?: ButtonSize;\n shape?: ButtonShape;\n disabled?: boolean;\n /**\n * Default style of the `IconButton`s inside, where M3 calls for one other than the\n * filled default (e.g. `standard` in toolbars and app bars). An icon button's own\n * `variant` wins.\n */\n iconButtonVariant?: IconButtonVariant;\n /**\n * Density of the `IconButton`s inside, for a container that keeps its own size whatever the\n * density (an app bar, a toolbar, a search bar): `0` keeps their M3 size there. An icon\n * button's own `density` wins.\n */\n density?: Density;\n /** Position in a connected button group; set per child by `ButtonGroup`. */\n connected?: 'leading' | 'middle' | 'trailing';\n}\n\nexport const ButtonContext = createContext<ButtonContextValue>({});\n\n/** Selection state shared by toggle buttons in a selection group (see `ButtonGroup`). */\nexport { ToggleGroupStateContext } from '../../primitives/ButtonBase';\n\n/**\n * The context of a container whose icon buttons are `standard` by default, as M3 shows\n * them in toolbars, app bars and search bars. These containers keep their size at every\n * density, so their icon buttons stay at density 0 too.\n */\nexport const standardIconButtons: ButtonContextValue = {\n iconButtonVariant: 'standard',\n density: 0,\n};\n"],"mappings":";;;;AA6BA,MAAa,gBAAgB,cAAkC,CAAC,CAAC;;;;;;AAUjE,MAAa,sBAA0C;CACrD,mBAAmB;CACnB,SAAS;AACX"}
@@ -0,0 +1,25 @@
1
+ "use client";
2
+ import { ButtonContext } from "./ButtonContext.js";
3
+ import { useContext, useMemo } from "react";
4
+ import { jsx } from "react/jsx-runtime";
5
+ //#region src/components/button/DensityZeroButtons.tsx
6
+ /**
7
+ * Keeps the icon buttons inside at density 0, for a part that keeps its own size at every
8
+ * density (a navigation rail's header, a dialog's or sheet's header). The rest of the
9
+ * enclosing `ButtonContext` carries through, and an icon button's own `density` wins.
10
+ */
11
+ function DensityZeroButtons({ children }) {
12
+ const parent = useContext(ButtonContext);
13
+ const value = useMemo(() => ({
14
+ ...parent,
15
+ density: 0
16
+ }), [parent]);
17
+ return /* @__PURE__ */ jsx(ButtonContext, {
18
+ value,
19
+ children
20
+ });
21
+ }
22
+ //#endregion
23
+ export { DensityZeroButtons };
24
+
25
+ //# sourceMappingURL=DensityZeroButtons.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DensityZeroButtons.js","names":[],"sources":["../../../src/components/button/DensityZeroButtons.tsx"],"sourcesContent":["'use client';\n\nimport { useContext, useMemo, type ReactNode } from 'react';\nimport { ButtonContext } from './ButtonContext';\n\n/**\n * Keeps the icon buttons inside at density 0, for a part that keeps its own size at every\n * density (a navigation rail's header, a dialog's or sheet's header). The rest of the\n * enclosing `ButtonContext` carries through, and an icon button's own `density` wins.\n */\nexport function DensityZeroButtons({ children }: { children: ReactNode }) {\n const parent = useContext(ButtonContext);\n const value = useMemo(() => ({ ...parent, density: 0 as const }), [parent]);\n return <ButtonContext value={value}>{children}</ButtonContext>;\n}\n"],"mappings":";;;;;;;;;;AAUA,SAAgB,mBAAmB,EAAE,YAAqC;CACxE,MAAM,SAAS,WAAW,aAAa;CACvC,MAAM,QAAQ,eAAe;EAAE,GAAG;EAAQ,SAAS;CAAW,IAAI,CAAC,MAAM,CAAC;CAC1E,OAAO,oBAAC,eAAD;EAAsB;EAAQ;CAAwB,CAAA;AAC/D"}
@@ -0,0 +1,10 @@
1
+ import "./button-styles.js";
2
+ import { ReactElement, Ref } from "react";
3
+ //#region src/components/button/button-pending.d.ts
4
+ /** Words a `Button` or `IconButton` announces. */
5
+ export interface ButtonLabels {
6
+ /** Added to the accessible name while `pending` ("Save, Loading"). @default "Loading" */
7
+ pending: string;
8
+ }
9
+ //#endregion
10
+ //# sourceMappingURL=button-pending.d.ts.map