@windmorph/react 0.0.0-stage → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (761) hide show
  1. package/LICENSE +21 -0
  2. package/NOTICE +23 -0
  3. package/README.md +149 -2
  4. package/dist/cli.d.ts +1 -0
  5. package/dist/cli.js +112 -0
  6. package/dist/cli.js.map +1 -0
  7. package/dist/components/app-bar/AppBarItems.js +23 -0
  8. package/dist/components/app-bar/AppBarItems.js.map +1 -0
  9. package/dist/components/app-bar/TopAppBar.d.ts +89 -0
  10. package/dist/components/app-bar/TopAppBar.js +103 -0
  11. package/dist/components/app-bar/TopAppBar.js.map +1 -0
  12. package/dist/components/app-bar/app-bar-styles.d.ts +280 -0
  13. package/dist/components/app-bar/app-bar-styles.js +142 -0
  14. package/dist/components/app-bar/app-bar-styles.js.map +1 -0
  15. package/dist/components/app-bar/app-bar-tokens.d.ts +7 -0
  16. package/dist/components/app-bar/app-bar-tokens.js +64 -0
  17. package/dist/components/app-bar/app-bar-tokens.js.map +1 -0
  18. package/dist/components/app-bar/use-app-bar-scroll.d.ts +6 -0
  19. package/dist/components/app-bar/use-app-bar-scroll.js +139 -0
  20. package/dist/components/app-bar/use-app-bar-scroll.js.map +1 -0
  21. package/dist/components/autocomplete/Autocomplete.d.ts +142 -0
  22. package/dist/components/autocomplete/Autocomplete.js +284 -0
  23. package/dist/components/autocomplete/Autocomplete.js.map +1 -0
  24. package/dist/components/badge/Badge.d.ts +71 -0
  25. package/dist/components/badge/Badge.js +72 -0
  26. package/dist/components/badge/Badge.js.map +1 -0
  27. package/dist/components/badge/badge-styles.d.ts +100 -0
  28. package/dist/components/badge/badge-styles.js +43 -0
  29. package/dist/components/badge/badge-styles.js.map +1 -0
  30. package/dist/components/badge/badge-tokens.d.ts +7 -0
  31. package/dist/components/badge/badge-tokens.js +40 -0
  32. package/dist/components/badge/badge-tokens.js.map +1 -0
  33. package/dist/components/button/Button.d.ts +91 -0
  34. package/dist/components/button/Button.js +96 -0
  35. package/dist/components/button/Button.js.map +1 -0
  36. package/dist/components/button/ButtonContext.d.ts +30 -0
  37. package/dist/components/button/ButtonContext.js +18 -0
  38. package/dist/components/button/ButtonContext.js.map +1 -0
  39. package/dist/components/button/DensityZeroButtons.js +25 -0
  40. package/dist/components/button/DensityZeroButtons.js.map +1 -0
  41. package/dist/components/button/button-pending.d.ts +10 -0
  42. package/dist/components/button/button-pending.js +166 -0
  43. package/dist/components/button/button-pending.js.map +1 -0
  44. package/dist/components/button/button-styles.d.ts +216 -0
  45. package/dist/components/button/button-styles.js +199 -0
  46. package/dist/components/button/button-styles.js.map +1 -0
  47. package/dist/components/button/button-tokens.d.ts +10 -0
  48. package/dist/components/button/button-tokens.js +257 -0
  49. package/dist/components/button/button-tokens.js.map +1 -0
  50. package/dist/components/button/connected-shapes.js +152 -0
  51. package/dist/components/button/connected-shapes.js.map +1 -0
  52. package/dist/components/card/Card.d.ts +60 -0
  53. package/dist/components/card/Card.js +69 -0
  54. package/dist/components/card/Card.js.map +1 -0
  55. package/dist/components/card/card-styles.d.ts +42 -0
  56. package/dist/components/card/card-styles.js +64 -0
  57. package/dist/components/card/card-styles.js.map +1 -0
  58. package/dist/components/card/card-tokens.d.ts +7 -0
  59. package/dist/components/card/card-tokens.js +84 -0
  60. package/dist/components/card/card-tokens.js.map +1 -0
  61. package/dist/components/carousel/Carousel.d.ts +124 -0
  62. package/dist/components/carousel/Carousel.js +387 -0
  63. package/dist/components/carousel/Carousel.js.map +1 -0
  64. package/dist/components/carousel/carousel-keylines.js +486 -0
  65. package/dist/components/carousel/carousel-keylines.js.map +1 -0
  66. package/dist/components/carousel/carousel-press-area.js +35 -0
  67. package/dist/components/carousel/carousel-press-area.js.map +1 -0
  68. package/dist/components/carousel/carousel-styles.d.ts +188 -0
  69. package/dist/components/carousel/carousel-styles.js +116 -0
  70. package/dist/components/carousel/carousel-styles.js.map +1 -0
  71. package/dist/components/carousel/carousel-tokens.d.ts +7 -0
  72. package/dist/components/carousel/carousel-tokens.js +18 -0
  73. package/dist/components/carousel/carousel-tokens.js.map +1 -0
  74. package/dist/components/checkbox/Checkbox.d.ts +78 -0
  75. package/dist/components/checkbox/Checkbox.js +77 -0
  76. package/dist/components/checkbox/Checkbox.js.map +1 -0
  77. package/dist/components/checkbox/checkbox-box.js +34 -0
  78. package/dist/components/checkbox/checkbox-box.js.map +1 -0
  79. package/dist/components/checkbox/checkbox-styles.d.ts +100 -0
  80. package/dist/components/checkbox/checkbox-styles.js +54 -0
  81. package/dist/components/checkbox/checkbox-styles.js.map +1 -0
  82. package/dist/components/checkbox/checkbox-tokens.d.ts +7 -0
  83. package/dist/components/checkbox/checkbox-tokens.js +41 -0
  84. package/dist/components/checkbox/checkbox-tokens.js.map +1 -0
  85. package/dist/components/chip/Chip.d.ts +171 -0
  86. package/dist/components/chip/Chip.js +348 -0
  87. package/dist/components/chip/Chip.js.map +1 -0
  88. package/dist/components/chip/ChipSet.d.ts +70 -0
  89. package/dist/components/chip/ChipSet.js +198 -0
  90. package/dist/components/chip/ChipSet.js.map +1 -0
  91. package/dist/components/chip/chip-styles.d.ts +263 -0
  92. package/dist/components/chip/chip-styles.js +360 -0
  93. package/dist/components/chip/chip-styles.js.map +1 -0
  94. package/dist/components/chip/chip-tokens.d.ts +13 -0
  95. package/dist/components/chip/chip-tokens.js +185 -0
  96. package/dist/components/chip/chip-tokens.js.map +1 -0
  97. package/dist/components/date-picker/CalendarGrid.js +94 -0
  98. package/dist/components/date-picker/CalendarGrid.js.map +1 -0
  99. package/dist/components/date-picker/CompactDateDialog.js +63 -0
  100. package/dist/components/date-picker/CompactDateDialog.js.map +1 -0
  101. package/dist/components/date-picker/DateField.d.ts +161 -0
  102. package/dist/components/date-picker/DateField.js +393 -0
  103. package/dist/components/date-picker/DateField.js.map +1 -0
  104. package/dist/components/date-picker/DateInput.d.ts +20 -0
  105. package/dist/components/date-picker/DateInput.js +99 -0
  106. package/dist/components/date-picker/DateInput.js.map +1 -0
  107. package/dist/components/date-picker/DatePicker.d.ts +165 -0
  108. package/dist/components/date-picker/DatePicker.js +492 -0
  109. package/dist/components/date-picker/DatePicker.js.map +1 -0
  110. package/dist/components/date-picker/PickerDialog.d.ts +121 -0
  111. package/dist/components/date-picker/PickerDialog.js +161 -0
  112. package/dist/components/date-picker/PickerDialog.js.map +1 -0
  113. package/dist/components/date-picker/calendar-parts.js +141 -0
  114. package/dist/components/date-picker/calendar-parts.js.map +1 -0
  115. package/dist/components/date-picker/date-format.js +72 -0
  116. package/dist/components/date-picker/date-format.js.map +1 -0
  117. package/dist/components/date-picker/date-picker-styles.d.ts +247 -0
  118. package/dist/components/date-picker/date-picker-styles.js +163 -0
  119. package/dist/components/date-picker/date-picker-styles.js.map +1 -0
  120. package/dist/components/date-picker/date-picker-tokens.d.ts +7 -0
  121. package/dist/components/date-picker/date-picker-tokens.js +104 -0
  122. package/dist/components/date-picker/date-picker-tokens.js.map +1 -0
  123. package/dist/components/date-picker/picker-dialog-context.js +8 -0
  124. package/dist/components/date-picker/picker-dialog-context.js.map +1 -0
  125. package/dist/components/date-picker/picker-dialog-styles.d.ts +95 -0
  126. package/dist/components/date-picker/picker-dialog-styles.js +57 -0
  127. package/dist/components/date-picker/picker-dialog-styles.js.map +1 -0
  128. package/dist/components/date-picker/picker-icons.js +24 -0
  129. package/dist/components/date-picker/picker-icons.js.map +1 -0
  130. package/dist/components/date-picker/use-media-query.js +21 -0
  131. package/dist/components/date-picker/use-media-query.js.map +1 -0
  132. package/dist/components/date-picker/use-size-transform.js +62 -0
  133. package/dist/components/date-picker/use-size-transform.js.map +1 -0
  134. package/dist/components/date-picker/use-view-exit.js +68 -0
  135. package/dist/components/date-picker/use-view-exit.js.map +1 -0
  136. package/dist/components/dialog/Dialog.d.ts +267 -0
  137. package/dist/components/dialog/Dialog.js +521 -0
  138. package/dist/components/dialog/Dialog.js.map +1 -0
  139. package/dist/components/dialog/dialog-styles.d.ts +335 -0
  140. package/dist/components/dialog/dialog-styles.js +377 -0
  141. package/dist/components/dialog/dialog-styles.js.map +1 -0
  142. package/dist/components/dialog/dialog-tokens.d.ts +7 -0
  143. package/dist/components/dialog/dialog-tokens.js +57 -0
  144. package/dist/components/dialog/dialog-tokens.js.map +1 -0
  145. package/dist/components/divider/Divider.d.ts +59 -0
  146. package/dist/components/divider/Divider.js +53 -0
  147. package/dist/components/divider/Divider.js.map +1 -0
  148. package/dist/components/divider/divider-styles.d.ts +90 -0
  149. package/dist/components/divider/divider-styles.js +66 -0
  150. package/dist/components/divider/divider-styles.js.map +1 -0
  151. package/dist/components/divider/divider-tokens.d.ts +7 -0
  152. package/dist/components/divider/divider-tokens.js +16 -0
  153. package/dist/components/divider/divider-tokens.js.map +1 -0
  154. package/dist/components/fab/Fab.d.ts +130 -0
  155. package/dist/components/fab/Fab.js +137 -0
  156. package/dist/components/fab/Fab.js.map +1 -0
  157. package/dist/components/fab/FabTooltip.js +36 -0
  158. package/dist/components/fab/FabTooltip.js.map +1 -0
  159. package/dist/components/fab/fab-styles.d.ts +286 -0
  160. package/dist/components/fab/fab-styles.js +131 -0
  161. package/dist/components/fab/fab-styles.js.map +1 -0
  162. package/dist/components/fab/fab-tokens.d.ts +12 -0
  163. package/dist/components/fab/fab-tokens.js +105 -0
  164. package/dist/components/fab/fab-tokens.js.map +1 -0
  165. package/dist/components/fab-menu/FabMenu.d.ts +156 -0
  166. package/dist/components/fab-menu/FabMenu.js +291 -0
  167. package/dist/components/fab-menu/FabMenu.js.map +1 -0
  168. package/dist/components/fab-menu/fab-menu-stagger.js +51 -0
  169. package/dist/components/fab-menu/fab-menu-stagger.js.map +1 -0
  170. package/dist/components/fab-menu/fab-menu-styles.d.ts +166 -0
  171. package/dist/components/fab-menu/fab-menu-styles.js +107 -0
  172. package/dist/components/fab-menu/fab-menu-styles.js.map +1 -0
  173. package/dist/components/fab-menu/fab-menu-tokens.d.ts +7 -0
  174. package/dist/components/fab-menu/fab-menu-tokens.js +120 -0
  175. package/dist/components/fab-menu/fab-menu-tokens.js.map +1 -0
  176. package/dist/components/icon-button/IconButton.d.ts +125 -0
  177. package/dist/components/icon-button/IconButton.js +112 -0
  178. package/dist/components/icon-button/IconButton.js.map +1 -0
  179. package/dist/components/icon-button/icon-button-styles.d.ts +217 -0
  180. package/dist/components/icon-button/icon-button-styles.js +244 -0
  181. package/dist/components/icon-button/icon-button-styles.js.map +1 -0
  182. package/dist/components/icon-button/icon-button-tokens.d.ts +11 -0
  183. package/dist/components/icon-button/icon-button-tokens.js +215 -0
  184. package/dist/components/icon-button/icon-button-tokens.js.map +1 -0
  185. package/dist/components/list/List.d.ts +265 -0
  186. package/dist/components/list/List.js +1386 -0
  187. package/dist/components/list/List.js.map +1 -0
  188. package/dist/components/list/ListMedia.d.ts +88 -0
  189. package/dist/components/list/ListMedia.js +132 -0
  190. package/dist/components/list/ListMedia.js.map +1 -0
  191. package/dist/components/list/list-styles.d.ts +375 -0
  192. package/dist/components/list/list-styles.js +220 -0
  193. package/dist/components/list/list-styles.js.map +1 -0
  194. package/dist/components/list/list-tokens.d.ts +7 -0
  195. package/dist/components/list/list-tokens.js +92 -0
  196. package/dist/components/list/list-tokens.js.map +1 -0
  197. package/dist/components/loading-indicator/LoadingIndicator.d.ts +65 -0
  198. package/dist/components/loading-indicator/LoadingIndicator.js +92 -0
  199. package/dist/components/loading-indicator/LoadingIndicator.js.map +1 -0
  200. package/dist/components/loading-indicator/lazy-loading-indicator.js +25 -0
  201. package/dist/components/loading-indicator/lazy-loading-indicator.js.map +1 -0
  202. package/dist/components/loading-indicator/loading-indicator-frames.js +149 -0
  203. package/dist/components/loading-indicator/loading-indicator-frames.js.map +1 -0
  204. package/dist/components/loading-indicator/loading-indicator-styles.d.ts +36 -0
  205. package/dist/components/loading-indicator/loading-indicator-styles.js +22 -0
  206. package/dist/components/loading-indicator/loading-indicator-styles.js.map +1 -0
  207. package/dist/components/loading-indicator/loading-indicator-tokens.d.ts +7 -0
  208. package/dist/components/loading-indicator/loading-indicator-tokens.js +44 -0
  209. package/dist/components/loading-indicator/loading-indicator-tokens.js.map +1 -0
  210. package/dist/components/menu/Menu.d.ts +215 -0
  211. package/dist/components/menu/Menu.js +715 -0
  212. package/dist/components/menu/Menu.js.map +1 -0
  213. package/dist/components/menu/menu-styles.d.ts +354 -0
  214. package/dist/components/menu/menu-styles.js +219 -0
  215. package/dist/components/menu/menu-styles.js.map +1 -0
  216. package/dist/components/menu/menu-tokens.d.ts +7 -0
  217. package/dist/components/menu/menu-tokens.js +93 -0
  218. package/dist/components/menu/menu-tokens.js.map +1 -0
  219. package/dist/components/menu/menu-trigger.d.ts +51 -0
  220. package/dist/components/menu/menu-trigger.js +100 -0
  221. package/dist/components/menu/menu-trigger.js.map +1 -0
  222. package/dist/components/menu/use-reveal-entering.js +42 -0
  223. package/dist/components/menu/use-reveal-entering.js.map +1 -0
  224. package/dist/components/navigation/NavItem.d.ts +54 -0
  225. package/dist/components/navigation/NavItem.js +182 -0
  226. package/dist/components/navigation/NavItem.js.map +1 -0
  227. package/dist/components/navigation/NavigationBar.d.ts +64 -0
  228. package/dist/components/navigation/NavigationBar.js +121 -0
  229. package/dist/components/navigation/NavigationBar.js.map +1 -0
  230. package/dist/components/navigation/NavigationRail.d.ts +91 -0
  231. package/dist/components/navigation/NavigationRail.js +285 -0
  232. package/dist/components/navigation/NavigationRail.js.map +1 -0
  233. package/dist/components/navigation/nav-item-styles.d.ts +190 -0
  234. package/dist/components/navigation/nav-item-styles.js +123 -0
  235. package/dist/components/navigation/nav-item-styles.js.map +1 -0
  236. package/dist/components/navigation/navigation-styles.d.ts +239 -0
  237. package/dist/components/navigation/navigation-styles.js +134 -0
  238. package/dist/components/navigation/navigation-styles.js.map +1 -0
  239. package/dist/components/navigation/navigation-tokens.d.ts +9 -0
  240. package/dist/components/navigation/navigation-tokens.js +114 -0
  241. package/dist/components/navigation/navigation-tokens.js.map +1 -0
  242. package/dist/components/navigation/use-hide-on-scroll.js +115 -0
  243. package/dist/components/navigation/use-hide-on-scroll.js.map +1 -0
  244. package/dist/components/navigation/use-item-arrow-keys.js +37 -0
  245. package/dist/components/navigation/use-item-arrow-keys.js.map +1 -0
  246. package/dist/components/navigation/use-rail-item-morph.js +61 -0
  247. package/dist/components/navigation/use-rail-item-morph.js.map +1 -0
  248. package/dist/components/progress/ProgressIndicator.d.ts +95 -0
  249. package/dist/components/progress/ProgressIndicator.js +426 -0
  250. package/dist/components/progress/ProgressIndicator.js.map +1 -0
  251. package/dist/components/progress/progress-geometry.js +285 -0
  252. package/dist/components/progress/progress-geometry.js.map +1 -0
  253. package/dist/components/progress/progress-styles.d.ts +81 -0
  254. package/dist/components/progress/progress-styles.js +43 -0
  255. package/dist/components/progress/progress-styles.js.map +1 -0
  256. package/dist/components/progress/progress-tokens.d.ts +7 -0
  257. package/dist/components/progress/progress-tokens.js +39 -0
  258. package/dist/components/progress/progress-tokens.js.map +1 -0
  259. package/dist/components/pull-to-refresh/PullToRefresh.d.ts +94 -0
  260. package/dist/components/pull-to-refresh/PullToRefresh.js +395 -0
  261. package/dist/components/pull-to-refresh/PullToRefresh.js.map +1 -0
  262. package/dist/components/pull-to-refresh/pull-to-refresh-math.js +37 -0
  263. package/dist/components/pull-to-refresh/pull-to-refresh-math.js.map +1 -0
  264. package/dist/components/pull-to-refresh/pull-to-refresh-styles.d.ts +53 -0
  265. package/dist/components/pull-to-refresh/pull-to-refresh-styles.js +14 -0
  266. package/dist/components/pull-to-refresh/pull-to-refresh-styles.js.map +1 -0
  267. package/dist/components/radio/RadioGroup.d.ts +121 -0
  268. package/dist/components/radio/RadioGroup.js +163 -0
  269. package/dist/components/radio/RadioGroup.js.map +1 -0
  270. package/dist/components/radio/radio-ring.js +21 -0
  271. package/dist/components/radio/radio-ring.js.map +1 -0
  272. package/dist/components/radio/radio-styles.d.ts +155 -0
  273. package/dist/components/radio/radio-styles.js +60 -0
  274. package/dist/components/radio/radio-styles.js.map +1 -0
  275. package/dist/components/radio/radio-tokens.d.ts +7 -0
  276. package/dist/components/radio/radio-tokens.js +31 -0
  277. package/dist/components/radio/radio-tokens.js.map +1 -0
  278. package/dist/components/search/SearchAppBar.d.ts +45 -0
  279. package/dist/components/search/SearchAppBar.js +61 -0
  280. package/dist/components/search/SearchAppBar.js.map +1 -0
  281. package/dist/components/search/SearchBar.d.ts +147 -0
  282. package/dist/components/search/SearchBar.js +412 -0
  283. package/dist/components/search/SearchBar.js.map +1 -0
  284. package/dist/components/search/search-styles.d.ts +243 -0
  285. package/dist/components/search/search-styles.js +143 -0
  286. package/dist/components/search/search-styles.js.map +1 -0
  287. package/dist/components/search/search-tokens.d.ts +9 -0
  288. package/dist/components/search/search-tokens.js +70 -0
  289. package/dist/components/search/search-tokens.js.map +1 -0
  290. package/dist/components/select/Select.d.ts +187 -0
  291. package/dist/components/select/Select.js +319 -0
  292. package/dist/components/select/Select.js.map +1 -0
  293. package/dist/components/select/field-shell.d.ts +29 -0
  294. package/dist/components/select/field-shell.js +135 -0
  295. package/dist/components/select/field-shell.js.map +1 -0
  296. package/dist/components/select/option-list.d.ts +81 -0
  297. package/dist/components/select/option-list.js +291 -0
  298. package/dist/components/select/option-list.js.map +1 -0
  299. package/dist/components/select/search-list.js +135 -0
  300. package/dist/components/select/search-list.js.map +1 -0
  301. package/dist/components/select/selection-cap.js +30 -0
  302. package/dist/components/select/selection-cap.js.map +1 -0
  303. package/dist/components/sheet/BottomSheet.d.ts +154 -0
  304. package/dist/components/sheet/BottomSheet.js +442 -0
  305. package/dist/components/sheet/BottomSheet.js.map +1 -0
  306. package/dist/components/sheet/SheetTrigger.d.ts +25 -0
  307. package/dist/components/sheet/SheetTrigger.js +46 -0
  308. package/dist/components/sheet/SheetTrigger.js.map +1 -0
  309. package/dist/components/sheet/SideSheet.d.ts +139 -0
  310. package/dist/components/sheet/SideSheet.js +289 -0
  311. package/dist/components/sheet/SideSheet.js.map +1 -0
  312. package/dist/components/sheet/bottom-sheet-gesture.js +30 -0
  313. package/dist/components/sheet/bottom-sheet-gesture.js.map +1 -0
  314. package/dist/components/sheet/lazy-bottom-sheet.js +33 -0
  315. package/dist/components/sheet/lazy-bottom-sheet.js.map +1 -0
  316. package/dist/components/sheet/sheet-gesture.js +48 -0
  317. package/dist/components/sheet/sheet-gesture.js.map +1 -0
  318. package/dist/components/sheet/sheet-icons.js +31 -0
  319. package/dist/components/sheet/sheet-icons.js.map +1 -0
  320. package/dist/components/sheet/sheet-settle.js +58 -0
  321. package/dist/components/sheet/sheet-settle.js.map +1 -0
  322. package/dist/components/sheet/sheet-styles.d.ts +312 -0
  323. package/dist/components/sheet/sheet-styles.js +229 -0
  324. package/dist/components/sheet/sheet-styles.js.map +1 -0
  325. package/dist/components/sheet/sheet-tokens.d.ts +12 -0
  326. package/dist/components/sheet/sheet-tokens.js +115 -0
  327. package/dist/components/sheet/sheet-tokens.js.map +1 -0
  328. package/dist/components/sheet/side-swipe-gesture.js +22 -0
  329. package/dist/components/sheet/side-swipe-gesture.js.map +1 -0
  330. package/dist/components/sheet/use-peek-inert.js +32 -0
  331. package/dist/components/sheet/use-peek-inert.js.map +1 -0
  332. package/dist/components/sheet/use-side-swipe.js +174 -0
  333. package/dist/components/sheet/use-side-swipe.js.map +1 -0
  334. package/dist/components/slider/Slider.d.ts +129 -0
  335. package/dist/components/slider/Slider.js +295 -0
  336. package/dist/components/slider/Slider.js.map +1 -0
  337. package/dist/components/slider/slider-geometry.js +138 -0
  338. package/dist/components/slider/slider-geometry.js.map +1 -0
  339. package/dist/components/slider/slider-styles.d.ts +133 -0
  340. package/dist/components/slider/slider-styles.js +97 -0
  341. package/dist/components/slider/slider-styles.js.map +1 -0
  342. package/dist/components/slider/slider-tokens.d.ts +7 -0
  343. package/dist/components/slider/slider-tokens.js +66 -0
  344. package/dist/components/slider/slider-tokens.js.map +1 -0
  345. package/dist/components/slider/use-touch-track.js +138 -0
  346. package/dist/components/slider/use-touch-track.js.map +1 -0
  347. package/dist/components/snackbar/Snackbar.d.ts +96 -0
  348. package/dist/components/snackbar/Snackbar.js +253 -0
  349. package/dist/components/snackbar/Snackbar.js.map +1 -0
  350. package/dist/components/snackbar/snackbar-state.d.ts +58 -0
  351. package/dist/components/snackbar/snackbar-state.js +73 -0
  352. package/dist/components/snackbar/snackbar-state.js.map +1 -0
  353. package/dist/components/snackbar/snackbar-styles.d.ts +109 -0
  354. package/dist/components/snackbar/snackbar-styles.js +67 -0
  355. package/dist/components/snackbar/snackbar-styles.js.map +1 -0
  356. package/dist/components/snackbar/snackbar-tokens.d.ts +7 -0
  357. package/dist/components/snackbar/snackbar-tokens.js +54 -0
  358. package/dist/components/snackbar/snackbar-tokens.js.map +1 -0
  359. package/dist/components/split-button/SplitButton.d.ts +109 -0
  360. package/dist/components/split-button/SplitButton.js +195 -0
  361. package/dist/components/split-button/SplitButton.js.map +1 -0
  362. package/dist/components/split-button/split-button-styles.d.ts +214 -0
  363. package/dist/components/split-button/split-button-styles.js +164 -0
  364. package/dist/components/split-button/split-button-styles.js.map +1 -0
  365. package/dist/components/split-button/split-button-tokens.d.ts +7 -0
  366. package/dist/components/split-button/split-button-tokens.js +36 -0
  367. package/dist/components/split-button/split-button-tokens.js.map +1 -0
  368. package/dist/components/switch/Switch.d.ts +82 -0
  369. package/dist/components/switch/Switch.js +165 -0
  370. package/dist/components/switch/Switch.js.map +1 -0
  371. package/dist/components/switch/switch-styles.d.ts +96 -0
  372. package/dist/components/switch/switch-styles.js +68 -0
  373. package/dist/components/switch/switch-styles.js.map +1 -0
  374. package/dist/components/switch/switch-thumb.js +41 -0
  375. package/dist/components/switch/switch-thumb.js.map +1 -0
  376. package/dist/components/switch/switch-tokens.d.ts +7 -0
  377. package/dist/components/switch/switch-tokens.js +78 -0
  378. package/dist/components/switch/switch-tokens.js.map +1 -0
  379. package/dist/components/tabs/Tabs.d.ts +120 -0
  380. package/dist/components/tabs/Tabs.js +346 -0
  381. package/dist/components/tabs/Tabs.js.map +1 -0
  382. package/dist/components/tabs/tabs-styles.d.ts +198 -0
  383. package/dist/components/tabs/tabs-styles.js +99 -0
  384. package/dist/components/tabs/tabs-styles.js.map +1 -0
  385. package/dist/components/tabs/tabs-tokens.d.ts +7 -0
  386. package/dist/components/tabs/tabs-tokens.js +121 -0
  387. package/dist/components/tabs/tabs-tokens.js.map +1 -0
  388. package/dist/components/text-field/TextField.d.ts +175 -0
  389. package/dist/components/text-field/TextField.js +250 -0
  390. package/dist/components/text-field/TextField.js.map +1 -0
  391. package/dist/components/text-field/text-field-styles.d.ts +252 -0
  392. package/dist/components/text-field/text-field-styles.js +209 -0
  393. package/dist/components/text-field/text-field-styles.js.map +1 -0
  394. package/dist/components/text-field/text-field-tokens.d.ts +7 -0
  395. package/dist/components/text-field/text-field-tokens.js +177 -0
  396. package/dist/components/text-field/text-field-tokens.js.map +1 -0
  397. package/dist/components/time-picker/TimePicker.d.ts +142 -0
  398. package/dist/components/time-picker/TimePicker.js +700 -0
  399. package/dist/components/time-picker/TimePicker.js.map +1 -0
  400. package/dist/components/time-picker/time-picker-styles.d.ts +175 -0
  401. package/dist/components/time-picker/time-picker-styles.js +112 -0
  402. package/dist/components/time-picker/time-picker-styles.js.map +1 -0
  403. package/dist/components/time-picker/time-picker-tokens.d.ts +7 -0
  404. package/dist/components/time-picker/time-picker-tokens.js +86 -0
  405. package/dist/components/time-picker/time-picker-tokens.js.map +1 -0
  406. package/dist/components/toolbar/Toolbar.d.ts +209 -0
  407. package/dist/components/toolbar/Toolbar.js +282 -0
  408. package/dist/components/toolbar/Toolbar.js.map +1 -0
  409. package/dist/components/toolbar/toolbar-styles.d.ts +403 -0
  410. package/dist/components/toolbar/toolbar-styles.js +253 -0
  411. package/dist/components/toolbar/toolbar-styles.js.map +1 -0
  412. package/dist/components/toolbar/toolbar-tokens.d.ts +27 -0
  413. package/dist/components/toolbar/toolbar-tokens.js +117 -0
  414. package/dist/components/toolbar/toolbar-tokens.js.map +1 -0
  415. package/dist/components/toolbar/use-toolbar-scroll-expansion.d.ts +56 -0
  416. package/dist/components/toolbar/use-toolbar-scroll-expansion.js +86 -0
  417. package/dist/components/toolbar/use-toolbar-scroll-expansion.js.map +1 -0
  418. package/dist/components/tooltip/Tooltip.d.ts +131 -0
  419. package/dist/components/tooltip/Tooltip.js +388 -0
  420. package/dist/components/tooltip/Tooltip.js.map +1 -0
  421. package/dist/components/tooltip/lazy-tooltip.js +35 -0
  422. package/dist/components/tooltip/lazy-tooltip.js.map +1 -0
  423. package/dist/components/tooltip/tooltip-placement.d.ts +16 -0
  424. package/dist/components/tooltip/tooltip-placement.js +14 -0
  425. package/dist/components/tooltip/tooltip-placement.js.map +1 -0
  426. package/dist/components/tooltip/tooltip-styles.d.ts +142 -0
  427. package/dist/components/tooltip/tooltip-styles.js +81 -0
  428. package/dist/components/tooltip/tooltip-styles.js.map +1 -0
  429. package/dist/components/tooltip/tooltip-tokens.d.ts +9 -0
  430. package/dist/components/tooltip/tooltip-tokens.js +72 -0
  431. package/dist/components/tooltip/tooltip-tokens.js.map +1 -0
  432. package/dist/components/tooltip/tooltip-trigger.d.ts +42 -0
  433. package/dist/components/tooltip/tooltip-trigger.js +115 -0
  434. package/dist/components/tooltip/tooltip-trigger.js.map +1 -0
  435. package/dist/composites/button-group/ButtonGroup.d.ts +116 -0
  436. package/dist/composites/button-group/ButtonGroup.js +270 -0
  437. package/dist/composites/button-group/ButtonGroup.js.map +1 -0
  438. package/dist/composites/button-group/button-group-styles.d.ts +73 -0
  439. package/dist/composites/button-group/button-group-styles.js +87 -0
  440. package/dist/composites/button-group/button-group-styles.js.map +1 -0
  441. package/dist/composites/button-group/lazy-overflow-menu.js +43 -0
  442. package/dist/composites/button-group/lazy-overflow-menu.js.map +1 -0
  443. package/dist/composites/button-group/overflow-menu-list.js +26 -0
  444. package/dist/composites/button-group/overflow-menu-list.js.map +1 -0
  445. package/dist/composites/button-group/use-overflow.js +75 -0
  446. package/dist/composites/button-group/use-overflow.js.map +1 -0
  447. package/dist/composites/button-group/use-press-expansion.js +155 -0
  448. package/dist/composites/button-group/use-press-expansion.js.map +1 -0
  449. package/dist/index.d.ts +142 -0
  450. package/dist/index.js +136 -0
  451. package/dist/motion/get-m3-spring.d.ts +6 -0
  452. package/dist/motion/get-m3-spring.js +10 -0
  453. package/dist/motion/get-m3-spring.js.map +1 -0
  454. package/dist/motion/reduced-motion.js +19 -0
  455. package/dist/motion/reduced-motion.js.map +1 -0
  456. package/dist/motion/use-m3-spring.d.ts +13 -0
  457. package/dist/motion/use-m3-spring.js +22 -0
  458. package/dist/motion/use-m3-spring.js.map +1 -0
  459. package/dist/next/NextRouterProvider.d.ts +13 -0
  460. package/dist/next/NextRouterProvider.js +26 -0
  461. package/dist/next/NextRouterProvider.js.map +1 -0
  462. package/dist/next/get-theme-from-cookies.d.ts +32 -0
  463. package/dist/next/get-theme-from-cookies.js +27 -0
  464. package/dist/next/get-theme-from-cookies.js.map +1 -0
  465. package/dist/next/navigation-guard.d.ts +30 -0
  466. package/dist/next/navigation-guard.js +68 -0
  467. package/dist/next/navigation-guard.js.map +1 -0
  468. package/dist/next.d.ts +5 -0
  469. package/dist/next.js +5 -0
  470. package/dist/primitives/ButtonBase.d.ts +115 -0
  471. package/dist/primitives/ButtonBase.js +231 -0
  472. package/dist/primitives/ButtonBase.js.map +1 -0
  473. package/dist/primitives/DomDirectionLocale.d.ts +18 -0
  474. package/dist/primitives/DomDirectionLocale.js +28 -0
  475. package/dist/primitives/DomDirectionLocale.js.map +1 -0
  476. package/dist/primitives/Field.d.ts +50 -0
  477. package/dist/primitives/Field.js +74 -0
  478. package/dist/primitives/Field.js.map +1 -0
  479. package/dist/primitives/IconFaces.js +23 -0
  480. package/dist/primitives/IconFaces.js.map +1 -0
  481. package/dist/primitives/Overlay.d.ts +39 -0
  482. package/dist/primitives/Overlay.js +86 -0
  483. package/dist/primitives/Overlay.js.map +1 -0
  484. package/dist/primitives/SelectionControl.d.ts +55 -0
  485. package/dist/primitives/SelectionControl.js +58 -0
  486. package/dist/primitives/SelectionControl.js.map +1 -0
  487. package/dist/primitives/Surface.d.ts +123 -0
  488. package/dist/primitives/Surface.js +68 -0
  489. package/dist/primitives/Surface.js.map +1 -0
  490. package/dist/primitives/ToolbarContext.js +12 -0
  491. package/dist/primitives/ToolbarContext.js.map +1 -0
  492. package/dist/primitives/TouchTarget.d.ts +14 -0
  493. package/dist/primitives/TouchTarget.js +20 -0
  494. package/dist/primitives/TouchTarget.js.map +1 -0
  495. package/dist/primitives/TriggerContext.d.ts +34 -0
  496. package/dist/primitives/TriggerContext.js +24 -0
  497. package/dist/primitives/TriggerContext.js.map +1 -0
  498. package/dist/primitives/hidden-input-focus.js +27 -0
  499. package/dist/primitives/hidden-input-focus.js.map +1 -0
  500. package/dist/primitives/icon-faces-styles.d.ts +9 -0
  501. package/dist/primitives/icon-faces-styles.js +45 -0
  502. package/dist/primitives/icon-faces-styles.js.map +1 -0
  503. package/dist/primitives/locale-with-direction.d.ts +9 -0
  504. package/dist/primitives/locale-with-direction.js +17 -0
  505. package/dist/primitives/locale-with-direction.js.map +1 -0
  506. package/dist/primitives/morph-path.d.ts +25 -0
  507. package/dist/primitives/morph-path.js +38 -0
  508. package/dist/primitives/morph-path.js.map +1 -0
  509. package/dist/primitives/selection-control-styles.d.ts +54 -0
  510. package/dist/primitives/selection-control-styles.js +44 -0
  511. package/dist/primitives/selection-control-styles.js.map +1 -0
  512. package/dist/primitives/use-m3-interaction.d.ts +51 -0
  513. package/dist/primitives/use-m3-interaction.js +149 -0
  514. package/dist/primitives/use-m3-interaction.js.map +1 -0
  515. package/dist/primitives/use-m3-morph.d.ts +18 -0
  516. package/dist/primitives/use-m3-morph.js +36 -0
  517. package/dist/primitives/use-m3-morph.js.map +1 -0
  518. package/dist/primitives/use-presence.d.ts +19 -0
  519. package/dist/primitives/use-presence.js +37 -0
  520. package/dist/primitives/use-presence.js.map +1 -0
  521. package/dist/primitives.d.ts +36 -0
  522. package/dist/primitives.js +34 -0
  523. package/dist/shapes/corner-rounding.d.ts +13 -0
  524. package/dist/shapes/corner-rounding.js +18 -0
  525. package/dist/shapes/corner-rounding.js.map +1 -0
  526. package/dist/shapes/cubic.d.ts +52 -0
  527. package/dist/shapes/cubic.js +189 -0
  528. package/dist/shapes/cubic.js.map +1 -0
  529. package/dist/shapes/feature-mapping.js +80 -0
  530. package/dist/shapes/feature-mapping.js.map +1 -0
  531. package/dist/shapes/features.d.ts +23 -0
  532. package/dist/shapes/features.js +82 -0
  533. package/dist/shapes/features.js.map +1 -0
  534. package/dist/shapes/float-mapping.js +65 -0
  535. package/dist/shapes/float-mapping.js.map +1 -0
  536. package/dist/shapes/generated/material-shape-path-record.d.ts +11 -0
  537. package/dist/shapes/generated/material-shape-path-record.js +48 -0
  538. package/dist/shapes/generated/material-shape-path-record.js.map +1 -0
  539. package/dist/shapes/generated/material-shape-paths.d.ts +78 -0
  540. package/dist/shapes/generated/material-shape-paths.js +218 -0
  541. package/dist/shapes/generated/material-shape-paths.js.map +1 -0
  542. package/dist/shapes/mask.d.ts +14 -0
  543. package/dist/shapes/mask.js +24 -0
  544. package/dist/shapes/mask.js.map +1 -0
  545. package/dist/shapes/material-shapes.d.ts +11 -0
  546. package/dist/shapes/material-shapes.js +250 -0
  547. package/dist/shapes/material-shapes.js.map +1 -0
  548. package/dist/shapes/morph.d.ts +25 -0
  549. package/dist/shapes/morph.js +97 -0
  550. package/dist/shapes/morph.js.map +1 -0
  551. package/dist/shapes/path.d.ts +33 -0
  552. package/dist/shapes/path.js +47 -0
  553. package/dist/shapes/path.js.map +1 -0
  554. package/dist/shapes/point.d.ts +28 -0
  555. package/dist/shapes/point.js +103 -0
  556. package/dist/shapes/point.js.map +1 -0
  557. package/dist/shapes/polygon-measure.js +140 -0
  558. package/dist/shapes/polygon-measure.js.map +1 -0
  559. package/dist/shapes/rounded-polygon.d.ts +44 -0
  560. package/dist/shapes/rounded-polygon.js +278 -0
  561. package/dist/shapes/rounded-polygon.js.map +1 -0
  562. package/dist/shapes/shape-path.d.ts +15 -0
  563. package/dist/shapes/shapes.d.ts +53 -0
  564. package/dist/shapes/shapes.js +171 -0
  565. package/dist/shapes/shapes.js.map +1 -0
  566. package/dist/styles/generated/components.css +710 -0
  567. package/dist/styles/generated/theme.css +247 -0
  568. package/dist/styles/generated/themes.css +3361 -0
  569. package/dist/styles/generated/tokens.css +284 -0
  570. package/dist/styles/styles.css +15 -0
  571. package/dist/styles/utilities.css +283 -0
  572. package/dist/styles.compiled.css +2 -0
  573. package/dist/theme/ThemeProvider.d.ts +72 -0
  574. package/dist/theme/ThemeProvider.js +144 -0
  575. package/dist/theme/ThemeProvider.js.map +1 -0
  576. package/dist/theme/ThemeScope.d.ts +32 -0
  577. package/dist/theme/ThemeScope.js +67 -0
  578. package/dist/theme/ThemeScope.js.map +1 -0
  579. package/dist/theme/ThemeScript.d.ts +26 -0
  580. package/dist/theme/ThemeScript.js +44 -0
  581. package/dist/theme/ThemeScript.js.map +1 -0
  582. package/dist/theme/context.d.ts +32 -0
  583. package/dist/theme/context.js +47 -0
  584. package/dist/theme/context.js.map +1 -0
  585. package/dist/theme/create-theme.d.ts +60 -0
  586. package/dist/theme/create-theme.js +47 -0
  587. package/dist/theme/create-theme.js.map +1 -0
  588. package/dist/theme/css.js +54 -0
  589. package/dist/theme/css.js.map +1 -0
  590. package/dist/theme/parse-palettes.js +40 -0
  591. package/dist/theme/parse-palettes.js.map +1 -0
  592. package/dist/theme/scheme.d.ts +6 -0
  593. package/dist/theme/scheme.js +118 -0
  594. package/dist/theme/scheme.js.map +1 -0
  595. package/dist/theme/state.d.ts +38 -0
  596. package/dist/theme/state.js +93 -0
  597. package/dist/theme/state.js.map +1 -0
  598. package/dist/theme/storage.js +21 -0
  599. package/dist/theme/storage.js.map +1 -0
  600. package/dist/tokens/breakpoints.d.ts +15 -0
  601. package/dist/tokens/breakpoints.js +16 -0
  602. package/dist/tokens/breakpoints.js.map +1 -0
  603. package/dist/tokens/color.d.ts +104 -0
  604. package/dist/tokens/color.js +147 -0
  605. package/dist/tokens/color.js.map +1 -0
  606. package/dist/tokens/component.d.ts +110 -0
  607. package/dist/tokens/component.js +67 -0
  608. package/dist/tokens/component.js.map +1 -0
  609. package/dist/tokens/density.d.ts +20 -0
  610. package/dist/tokens/density.js +27 -0
  611. package/dist/tokens/density.js.map +1 -0
  612. package/dist/tokens/elevation.d.ts +44 -0
  613. package/dist/tokens/elevation.js +45 -0
  614. package/dist/tokens/elevation.js.map +1 -0
  615. package/dist/tokens/motion.d.ts +79 -0
  616. package/dist/tokens/motion.js +126 -0
  617. package/dist/tokens/motion.js.map +1 -0
  618. package/dist/tokens/shape.d.ts +22 -0
  619. package/dist/tokens/shape.js +22 -0
  620. package/dist/tokens/shape.js.map +1 -0
  621. package/dist/tokens/spring-velocity.d.ts +19 -0
  622. package/dist/tokens/spring-velocity.js +44 -0
  623. package/dist/tokens/spring-velocity.js.map +1 -0
  624. package/dist/tokens/state.d.ts +18 -0
  625. package/dist/tokens/state.js +19 -0
  626. package/dist/tokens/state.js.map +1 -0
  627. package/dist/tokens/typography.d.ts +64 -0
  628. package/dist/tokens/typography.js +60 -0
  629. package/dist/tokens/typography.js.map +1 -0
  630. package/dist/tokens/z-index.d.ts +17 -0
  631. package/dist/tokens/z-index.js +18 -0
  632. package/dist/tokens/z-index.js.map +1 -0
  633. package/dist/utils/announce.js +51 -0
  634. package/dist/utils/announce.js.map +1 -0
  635. package/dist/utils/assert-collection-children.js +26 -0
  636. package/dist/utils/assert-collection-children.js.map +1 -0
  637. package/dist/utils/closed-by.d.ts +9 -0
  638. package/dist/utils/closed-by.js +12 -0
  639. package/dist/utils/closed-by.js.map +1 -0
  640. package/dist/utils/cn.d.ts +31 -0
  641. package/dist/utils/cn.js +37 -0
  642. package/dist/utils/cn.js.map +1 -0
  643. package/dist/utils/composite-keys.js +32 -0
  644. package/dist/utils/composite-keys.js.map +1 -0
  645. package/dist/utils/focus-visible.js +14 -0
  646. package/dist/utils/focus-visible.js.map +1 -0
  647. package/dist/utils/focus.js +51 -0
  648. package/dist/utils/focus.js.map +1 -0
  649. package/dist/utils/focusable-disabled.js +12 -0
  650. package/dist/utils/focusable-disabled.js.map +1 -0
  651. package/dist/utils/keep-pressed-in-place.d.ts +60 -0
  652. package/dist/utils/keep-pressed-in-place.js +127 -0
  653. package/dist/utils/keep-pressed-in-place.js.map +1 -0
  654. package/dist/utils/load-on-demand.js +111 -0
  655. package/dist/utils/load-on-demand.js.map +1 -0
  656. package/dist/utils/merge-data-tokens.d.ts +9 -0
  657. package/dist/utils/merge-data-tokens.js +15 -0
  658. package/dist/utils/merge-data-tokens.js.map +1 -0
  659. package/dist/utils/natural-size.js +53 -0
  660. package/dist/utils/natural-size.js.map +1 -0
  661. package/dist/utils/nearest-reveal.js +28 -0
  662. package/dist/utils/nearest-reveal.js.map +1 -0
  663. package/dist/utils/placement.js +14 -0
  664. package/dist/utils/placement.js.map +1 -0
  665. package/dist/utils/radio-group-keys.js +74 -0
  666. package/dist/utils/radio-group-keys.js.map +1 -0
  667. package/dist/utils/rendered-description.js +17 -0
  668. package/dist/utils/rendered-description.js.map +1 -0
  669. package/dist/utils/root-props.d.ts +103 -0
  670. package/dist/utils/root-props.js +51 -0
  671. package/dist/utils/root-props.js.map +1 -0
  672. package/dist/utils/search.d.ts +11 -0
  673. package/dist/utils/search.js +18 -0
  674. package/dist/utils/search.js.map +1 -0
  675. package/dist/utils/shortcut.js +20 -0
  676. package/dist/utils/shortcut.js.map +1 -0
  677. package/dist/utils/split-data-attributes.d.ts +12 -0
  678. package/dist/utils/split-data-attributes.js +20 -0
  679. package/dist/utils/split-data-attributes.js.map +1 -0
  680. package/dist/utils/toolbar-keys.js +28 -0
  681. package/dist/utils/toolbar-keys.js.map +1 -0
  682. package/dist/utils/tv.d.ts +7 -0
  683. package/dist/utils/tv.js +9 -0
  684. package/dist/utils/tv.js.map +1 -0
  685. package/dist/utils/typeahead.js +64 -0
  686. package/dist/utils/typeahead.js.map +1 -0
  687. package/dist/utils/warn-once.js +30 -0
  688. package/dist/utils/warn-once.js.map +1 -0
  689. package/dist/vendor/material-color-utilities/blend/blend.js +88 -0
  690. package/dist/vendor/material-color-utilities/blend/blend.js.map +1 -0
  691. package/dist/vendor/material-color-utilities/contrast/contrast.js +131 -0
  692. package/dist/vendor/material-color-utilities/contrast/contrast.js.map +1 -0
  693. package/dist/vendor/material-color-utilities/dislike/dislike_analyzer.js +58 -0
  694. package/dist/vendor/material-color-utilities/dislike/dislike_analyzer.js.map +1 -0
  695. package/dist/vendor/material-color-utilities/dynamiccolor/color_spec_2021.js +620 -0
  696. package/dist/vendor/material-color-utilities/dynamiccolor/color_spec_2021.js.map +1 -0
  697. package/dist/vendor/material-color-utilities/dynamiccolor/color_spec_2025.js +786 -0
  698. package/dist/vendor/material-color-utilities/dynamiccolor/color_spec_2025.js.map +1 -0
  699. package/dist/vendor/material-color-utilities/dynamiccolor/contrast_curve.js +59 -0
  700. package/dist/vendor/material-color-utilities/dynamiccolor/contrast_curve.js.map +1 -0
  701. package/dist/vendor/material-color-utilities/dynamiccolor/dynamic_color.js +420 -0
  702. package/dist/vendor/material-color-utilities/dynamiccolor/dynamic_color.js.map +1 -0
  703. package/dist/vendor/material-color-utilities/dynamiccolor/dynamic_scheme.js +701 -0
  704. package/dist/vendor/material-color-utilities/dynamiccolor/dynamic_scheme.js.map +1 -0
  705. package/dist/vendor/material-color-utilities/dynamiccolor/material_dynamic_colors.js +374 -0
  706. package/dist/vendor/material-color-utilities/dynamiccolor/material_dynamic_colors.js.map +1 -0
  707. package/dist/vendor/material-color-utilities/dynamiccolor/tone_delta_pair.js +65 -0
  708. package/dist/vendor/material-color-utilities/dynamiccolor/tone_delta_pair.js.map +1 -0
  709. package/dist/vendor/material-color-utilities/dynamiccolor/variant.js +38 -0
  710. package/dist/vendor/material-color-utilities/dynamiccolor/variant.js.map +1 -0
  711. package/dist/vendor/material-color-utilities/hct/cam16.js +309 -0
  712. package/dist/vendor/material-color-utilities/hct/cam16.js.map +1 -0
  713. package/dist/vendor/material-color-utilities/hct/hct.js +148 -0
  714. package/dist/vendor/material-color-utilities/hct/hct.js.map +1 -0
  715. package/dist/vendor/material-color-utilities/hct/hct_solver.js +660 -0
  716. package/dist/vendor/material-color-utilities/hct/hct_solver.js.map +1 -0
  717. package/dist/vendor/material-color-utilities/hct/viewing_conditions.js +117 -0
  718. package/dist/vendor/material-color-utilities/hct/viewing_conditions.js.map +1 -0
  719. package/dist/vendor/material-color-utilities/index.js +51 -0
  720. package/dist/vendor/material-color-utilities/index.js.map +1 -0
  721. package/dist/vendor/material-color-utilities/palettes/core_palette.js +22 -0
  722. package/dist/vendor/material-color-utilities/palettes/core_palette.js.map +1 -0
  723. package/dist/vendor/material-color-utilities/palettes/tonal_palette.js +134 -0
  724. package/dist/vendor/material-color-utilities/palettes/tonal_palette.js.map +1 -0
  725. package/dist/vendor/material-color-utilities/scheme/scheme.js +21 -0
  726. package/dist/vendor/material-color-utilities/scheme/scheme.js.map +1 -0
  727. package/dist/vendor/material-color-utilities/scheme/scheme_android.js +21 -0
  728. package/dist/vendor/material-color-utilities/scheme/scheme_android.js.map +1 -0
  729. package/dist/vendor/material-color-utilities/scheme/scheme_content.js +22 -0
  730. package/dist/vendor/material-color-utilities/scheme/scheme_content.js.map +1 -0
  731. package/dist/vendor/material-color-utilities/scheme/scheme_expressive.js +38 -0
  732. package/dist/vendor/material-color-utilities/scheme/scheme_expressive.js.map +1 -0
  733. package/dist/vendor/material-color-utilities/scheme/scheme_fidelity.js +22 -0
  734. package/dist/vendor/material-color-utilities/scheme/scheme_fidelity.js.map +1 -0
  735. package/dist/vendor/material-color-utilities/scheme/scheme_fruit_salad.js +22 -0
  736. package/dist/vendor/material-color-utilities/scheme/scheme_fruit_salad.js.map +1 -0
  737. package/dist/vendor/material-color-utilities/scheme/scheme_monochrome.js +22 -0
  738. package/dist/vendor/material-color-utilities/scheme/scheme_monochrome.js.map +1 -0
  739. package/dist/vendor/material-color-utilities/scheme/scheme_neutral.js +36 -0
  740. package/dist/vendor/material-color-utilities/scheme/scheme_neutral.js.map +1 -0
  741. package/dist/vendor/material-color-utilities/scheme/scheme_rainbow.js +22 -0
  742. package/dist/vendor/material-color-utilities/scheme/scheme_rainbow.js.map +1 -0
  743. package/dist/vendor/material-color-utilities/scheme/scheme_tonal_spot.js +41 -0
  744. package/dist/vendor/material-color-utilities/scheme/scheme_tonal_spot.js.map +1 -0
  745. package/dist/vendor/material-color-utilities/scheme/scheme_vibrant.js +39 -0
  746. package/dist/vendor/material-color-utilities/scheme/scheme_vibrant.js.map +1 -0
  747. package/dist/vendor/material-color-utilities/score/score.js +115 -0
  748. package/dist/vendor/material-color-utilities/score/score.js.map +1 -0
  749. package/dist/vendor/material-color-utilities/temperature/temperature_cache.js +227 -0
  750. package/dist/vendor/material-color-utilities/temperature/temperature_cache.js.map +1 -0
  751. package/dist/vendor/material-color-utilities/utils/color_utils.js +246 -0
  752. package/dist/vendor/material-color-utilities/utils/color_utils.js.map +1 -0
  753. package/dist/vendor/material-color-utilities/utils/image_utils.js +21 -0
  754. package/dist/vendor/material-color-utilities/utils/image_utils.js.map +1 -0
  755. package/dist/vendor/material-color-utilities/utils/math_utils.js +119 -0
  756. package/dist/vendor/material-color-utilities/utils/math_utils.js.map +1 -0
  757. package/dist/vendor/material-color-utilities/utils/string_utils.js +74 -0
  758. package/dist/vendor/material-color-utilities/utils/string_utils.js.map +1 -0
  759. package/dist/vendor/material-color-utilities/utils/theme_utils.js +24 -0
  760. package/dist/vendor/material-color-utilities/utils/theme_utils.js.map +1 -0
  761. package/package.json +114 -3
@@ -0,0 +1,346 @@
1
+ "use client";
2
+ import { densityAttribute } from "../../tokens/density.js";
3
+ import { cn } from "../../utils/cn.js";
4
+ import { useM3Spring } from "../../motion/use-m3-spring.js";
5
+ import { useM3Interaction } from "../../primitives/use-m3-interaction.js";
6
+ import { mergeDataTokens } from "../../utils/merge-data-tokens.js";
7
+ import { useWarnOnce } from "../../utils/warn-once.js";
8
+ import { localeWithDirection } from "../../primitives/locale-with-direction.js";
9
+ import { BadgedBox } from "../badge/Badge.js";
10
+ import { FOCUSABLE_DISABLED_OPTIONS } from "../../utils/focusable-disabled.js";
11
+ import { assertCollectionChildren } from "../../utils/assert-collection-children.js";
12
+ import { useNearestReveal } from "../../utils/nearest-reveal.js";
13
+ import { pickDescriptionAria, splitRootProps } from "../../utils/root-props.js";
14
+ import { tabsStyles } from "./tabs-styles.js";
15
+ import { useId, useLayoutEffect, useMemo, useRef, useState } from "react";
16
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
17
+ import { animate, useReducedMotion } from "motion/react";
18
+ import { I18nProvider, mergeProps, useLocale, useObjectRef, useTab, useTabList, useTabPanel } from "react-aria";
19
+ import { Item, useTabListState } from "react-stately";
20
+ /** A tab in {@link Tabs} (a React Stately collection item: identify it with `key`). */
21
+ const Tab = Item;
22
+ /**
23
+ * M3 tabs: a row of tabs with an indicator that slides to the selection, and the selected
24
+ * tab's panel. Primary tabs mark the selection with a content-width indicator and
25
+ * `primary` label; secondary tabs with a full-width indicator. Arrow keys move focus
26
+ * between tabs (mirrored in RTL), Home / End jump to the ends, and Space / Enter selects.
27
+ *
28
+ * @example
29
+ * <Tabs aria-label="Trip">
30
+ * <Tab key="flights" title="Flights" icon={<FlightIcon />}>Flight details…</Tab>
31
+ * <Tab key="hotels" title="Hotels" icon={<HotelIcon />}>Hotel details…</Tab>
32
+ * </Tabs>
33
+ */
34
+ function Tabs(props) {
35
+ const { className, style, classNames, ref, ...rest } = props;
36
+ const { root: data, rest: ariaProps } = splitRootProps(rest, { wrapper: true });
37
+ const rootRef = useObjectRef(ref);
38
+ const { locale, direction: localeDirection } = useLocale();
39
+ const [direction, setDirection] = useState(localeDirection);
40
+ useLayoutEffect(() => {
41
+ if (rootRef.current) setDirection(getComputedStyle(rootRef.current).direction);
42
+ }, [rootRef]);
43
+ const effectiveLocale = direction === localeDirection ? locale : localeWithDirection(locale, direction);
44
+ return /* @__PURE__ */ jsx("div", {
45
+ ...data,
46
+ ref: rootRef,
47
+ style,
48
+ "data-tokens": mergeDataTokens("md-comp-tabs", data),
49
+ "data-variant": props.variant ?? "primary",
50
+ className: tabsStyles().root({ class: cn(classNames?.root, className) }),
51
+ children: /* @__PURE__ */ jsx(I18nProvider, {
52
+ locale: effectiveLocale,
53
+ children: /* @__PURE__ */ jsx(TabsInner, {
54
+ ...ariaProps,
55
+ classNames,
56
+ rtl: direction === "rtl"
57
+ })
58
+ })
59
+ });
60
+ }
61
+ /** No disabled keys, for the tab list's arrow keys (disabled tabs stay focusable). */
62
+ const NO_KEYS = /* @__PURE__ */ new Set();
63
+ function TabsInner({ rtl, ...props }) {
64
+ const { variant, scrollable = false, iconPlacement = "top", align = "stretch", swipeable = false, density, classNames } = props;
65
+ assertCollectionChildren(props.children, "Tabs", "Tab elements", { nested: false });
66
+ const { disabled, value, defaultValue, onChange, ...rest } = props;
67
+ const ariaProps = {
68
+ ...rest,
69
+ ...value !== void 0 && { selectedKey: value },
70
+ ...defaultValue !== void 0 && { defaultSelectedKey: defaultValue },
71
+ ...onChange && { onSelectionChange: onChange },
72
+ isDisabled: disabled,
73
+ keyboardActivation: props.keyboardActivation ?? "manual"
74
+ };
75
+ const state = useTabListState({
76
+ ...ariaProps,
77
+ ...FOCUSABLE_DISABLED_OPTIONS
78
+ });
79
+ const listRef = useRef(null);
80
+ const scrollerRef = useRef(null);
81
+ const listState = useMemo(() => ({
82
+ ...state,
83
+ disabledKeys: NO_KEYS
84
+ }), [state]);
85
+ const { tabListProps } = useTabList(ariaProps, listState, listRef);
86
+ const items = [...state.collection];
87
+ const hasIcon = items.some((item) => item.props.icon != null);
88
+ const hasText = items.some((item) => item.props.title != null);
89
+ const hasPanels = items.some((item) => item.props.children != null);
90
+ useWarnOnce(hasIcon && items.some((item) => item.props.icon == null), "[@windmorph/react] Give every Tab an icon, or none (M3: tabs in a row are consistent).");
91
+ const unnamed = items.find((item) => item.props.title == null && !item.props["aria-label"]);
92
+ useWarnOnce(unnamed !== void 0, "[@windmorph/react] An icon-only Tab needs an aria-label; screen readers have no other name for it.");
93
+ const layout = hasIcon && hasText ? iconPlacement === "start" ? "icon-start" : "icon-top" : hasIcon ? "icon-only" : "text";
94
+ const styles = tabsStyles({
95
+ variant,
96
+ scrollable,
97
+ layout,
98
+ align: scrollable ? "stretch" : align,
99
+ swipeable
100
+ });
101
+ const indicator = useIndicator(listRef, state.selectedKey, variant ?? "primary", state.collection);
102
+ useScrollToSelection(scrollerRef, listRef, state.selectedKey, scrollable);
103
+ const [shownKey, setShownKey] = useState(state.selectedKey);
104
+ const [recolour, setRecolour] = useState(false);
105
+ if (shownKey !== state.selectedKey) {
106
+ setShownKey(state.selectedKey);
107
+ if (shownKey != null) setRecolour(true);
108
+ }
109
+ useNearestReveal(listRef);
110
+ return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("div", {
111
+ ref: scrollerRef,
112
+ ...densityAttribute(density),
113
+ className: styles.scroller({ class: classNames?.scroller }),
114
+ children: /* @__PURE__ */ jsxs("div", {
115
+ ...pickDescriptionAria(rest),
116
+ ...tabListProps,
117
+ ref: listRef,
118
+ "data-slot": "list",
119
+ "data-animate": indicator?.animate || void 0,
120
+ "data-recolour": recolour || void 0,
121
+ className: styles.list({ class: classNames?.list }),
122
+ children: [items.map((item, index) => /* @__PURE__ */ jsx(TabButton, {
123
+ item,
124
+ index,
125
+ state,
126
+ listState,
127
+ hasPanels,
128
+ layout,
129
+ variant: variant ?? "primary",
130
+ styles,
131
+ className: classNames?.tab,
132
+ iconClassName: classNames?.icon,
133
+ labelClassName: classNames?.label
134
+ }, item.key)), /* @__PURE__ */ jsx("span", {
135
+ "aria-hidden": "true",
136
+ "data-slot": "indicator",
137
+ "data-ready": indicator ? "" : void 0,
138
+ className: styles.indicator({ class: classNames?.indicator }),
139
+ style: {
140
+ gridColumn: `1 / span ${Math.max(items.length, 1)}`,
141
+ ...indicator && {
142
+ width: indicator.width,
143
+ translate: `${indicator.x}px 0`
144
+ }
145
+ }
146
+ })]
147
+ })
148
+ }), hasPanels && /* @__PURE__ */ jsx(TabPanel, {
149
+ state,
150
+ listState,
151
+ swipeable,
152
+ rtl,
153
+ className: styles.panel({ class: classNames?.panel })
154
+ }, state.selectedKey)] });
155
+ }
156
+ /**
157
+ * Measures the selected tab: its content (primary) or the whole tab (secondary). Again when
158
+ * the tabs change, as tabs added or removed move the selected one without resizing the row,
159
+ * and when the row or the selected tab's content resizes.
160
+ */
161
+ function useIndicator(listRef, selectedKey, variant, tabs) {
162
+ const [indicator, setIndicator] = useState(null);
163
+ const placedKey = useRef(null);
164
+ useLayoutEffect(() => {
165
+ const list = listRef.current;
166
+ if (!list) return;
167
+ const place = (x, width) => {
168
+ const animate = placedKey.current != null && placedKey.current !== selectedKey;
169
+ placedKey.current = selectedKey;
170
+ setIndicator((last) => last && last.x === x && last.width === width ? last : {
171
+ x,
172
+ width,
173
+ animate
174
+ });
175
+ };
176
+ const measure = () => {
177
+ const tab = [...list.querySelectorAll("[role=\"tab\"]")].find((el) => el.dataset.key === String(selectedKey));
178
+ if (!tab) return setIndicator(null);
179
+ const listRect = list.getBoundingClientRect();
180
+ const scale = list.offsetWidth > 0 ? listRect.width / list.offsetWidth : 1;
181
+ const listLeft = listRect.left + parseFloat(getComputedStyle(list).paddingLeft) * scale;
182
+ const tabRect = tab.getBoundingClientRect();
183
+ const tabX = (tabRect.left - listLeft) / scale;
184
+ const tabWidth = tabRect.width / scale;
185
+ if (variant === "secondary") {
186
+ place(tabX, tabWidth);
187
+ return;
188
+ }
189
+ const parts = [...tab.querySelectorAll("[data-tab-part]")].map((el) => el.getBoundingClientRect());
190
+ const contentWidth = parts.length ? (Math.max(...parts.map((r) => r.right)) - Math.min(...parts.map((r) => r.left))) / scale : 0;
191
+ const width = Math.max(Math.min(contentWidth, tabWidth - 32), 24);
192
+ place(tabX + (tabWidth - width) / 2, width);
193
+ };
194
+ measure();
195
+ if (typeof ResizeObserver === "undefined") return;
196
+ const observer = new ResizeObserver(measure);
197
+ observer.observe(list);
198
+ [...list.querySelectorAll("[role=\"tab\"]")].find((el) => el.dataset.key === String(selectedKey))?.querySelectorAll("[data-tab-part]").forEach((part) => observer.observe(part));
199
+ return () => observer.disconnect();
200
+ }, [
201
+ listRef,
202
+ selectedKey,
203
+ variant,
204
+ tabs
205
+ ]);
206
+ return indicator;
207
+ }
208
+ /**
209
+ * Scrollable rows centre the selected tab on the default spatial spring (Compose); under
210
+ * reduced motion they scroll there at once.
211
+ */
212
+ function useScrollToSelection(scrollerRef, listRef, selectedKey, scrollable) {
213
+ const spring = useM3Spring("spatial", "default");
214
+ const reducedMotion = useReducedMotion() ?? false;
215
+ const first = useRef(true);
216
+ useLayoutEffect(() => {
217
+ const scroller = scrollerRef.current;
218
+ const tab = [...listRef.current?.querySelectorAll("[role=\"tab\"]") ?? []].find((el) => el.dataset.key === String(selectedKey));
219
+ if (!scrollable || !scroller || !tab) return;
220
+ const rtl = getComputedStyle(scroller).direction === "rtl";
221
+ const max = scroller.scrollWidth - scroller.clientWidth;
222
+ const tabRect = tab.getBoundingClientRect();
223
+ const scrollerRect = scroller.getBoundingClientRect();
224
+ const delta = tabRect.left + tabRect.width / 2 - (scrollerRect.left + scrollerRect.width / 2);
225
+ const target = Math.min(Math.max(scroller.scrollLeft + delta, rtl ? -max : 0), rtl ? 0 : max);
226
+ if (first.current || reducedMotion) {
227
+ first.current = false;
228
+ scroller.scrollLeft = target;
229
+ return;
230
+ }
231
+ const controls = animate(scroller.scrollLeft, target, {
232
+ ...spring,
233
+ onUpdate: (value) => {
234
+ scroller.scrollLeft = value;
235
+ }
236
+ });
237
+ return () => controls.stop();
238
+ }, [selectedKey, scrollable]);
239
+ }
240
+ function TabButton({ item, index, state, listState, hasPanels, layout, variant, styles, className, iconClassName, labelClassName }) {
241
+ const ref = useRef(null);
242
+ const { tabProps, isPressed } = useTab({ key: item.key }, listState, ref);
243
+ const { interactionProps, dataAttributes } = useM3Interaction({
244
+ isDisabled: state.disabledKeys.has(item.key),
245
+ isPressed,
246
+ isSelected: state.selectedKey === item.key
247
+ }, ref);
248
+ const { icon, badge } = item.props;
249
+ const badgeId = useId();
250
+ const { "aria-controls": controls, ...ownProps } = tabProps;
251
+ const badgeOnIcon = badge != null && icon != null && (layout === "icon-top" || item.rendered == null);
252
+ const badgeNode = badge != null ? /* @__PURE__ */ jsx("span", {
253
+ id: badgeId,
254
+ "aria-hidden": "true",
255
+ className: "contents",
256
+ children: badge
257
+ }) : null;
258
+ return /* @__PURE__ */ jsxs("div", {
259
+ ...mergeProps(ownProps, interactionProps),
260
+ ...dataAttributes,
261
+ "aria-controls": hasPanels ? controls : void 0,
262
+ "aria-disabled": state.isDisabled || state.disabledKeys.has(item.key) || void 0,
263
+ "aria-describedby": badge != null ? badgeId : void 0,
264
+ "data-key": String(item.key),
265
+ "data-tokens": mergeDataTokens("md-comp-tabs", ownProps),
266
+ "data-variant": variant,
267
+ "data-slot": "tab",
268
+ ref,
269
+ style: { gridColumnStart: index + 1 },
270
+ className: styles.tab({ class: className }),
271
+ children: [icon != null && /* @__PURE__ */ jsx("span", {
272
+ "aria-hidden": "true",
273
+ "data-tab-part": "",
274
+ "data-slot": "icon",
275
+ className: styles.icon({ class: iconClassName }),
276
+ children: badgeOnIcon && badgeNode ? /* @__PURE__ */ jsx(BadgedBox, {
277
+ badge: badgeNode,
278
+ children: icon
279
+ }) : icon
280
+ }), item.rendered != null && (badge != null && !badgeOnIcon ? /* @__PURE__ */ jsxs("span", {
281
+ "data-tab-part": "",
282
+ className: styles.text(),
283
+ children: [/* @__PURE__ */ jsx("span", {
284
+ className: styles.label({ class: labelClassName }),
285
+ children: item.rendered
286
+ }), badgeNode]
287
+ }) : /* @__PURE__ */ jsx("span", {
288
+ "data-tab-part": "",
289
+ className: styles.label({ class: labelClassName }),
290
+ children: item.rendered
291
+ }))]
292
+ });
293
+ }
294
+ /** The next (or previous) enabled tab after the selected one, if any. */
295
+ function adjacentKey(state, forward) {
296
+ const step = (key) => key == null ? null : forward ? state.collection.getKeyAfter(key) : state.collection.getKeyBefore(key);
297
+ let key = step(state.selectedKey);
298
+ while (key != null && state.disabledKeys.has(key)) key = step(key);
299
+ return key;
300
+ }
301
+ /**
302
+ * A horizontal touch or pen swipe of at least {@link TAB_SWIPE_THRESHOLD} px selects the
303
+ * neighbouring tab: towards the end edge for the previous one, as content follows the
304
+ * finger. Mouse drags are left to text selection.
305
+ */
306
+ function useSwipeToSelect(state, rtl, enabled) {
307
+ const start = useRef(null);
308
+ if (!enabled) return {};
309
+ return {
310
+ onPointerDown: (event) => {
311
+ start.current = event.pointerType === "mouse" ? null : {
312
+ x: event.clientX,
313
+ y: event.clientY,
314
+ id: event.pointerId
315
+ };
316
+ },
317
+ onPointerUp: (event) => {
318
+ const origin = start.current;
319
+ start.current = null;
320
+ if (!origin || origin.id !== event.pointerId || state.isDisabled) return;
321
+ const dx = event.clientX - origin.x;
322
+ const dy = event.clientY - origin.y;
323
+ if (Math.abs(dx) < 56 || Math.abs(dx) <= Math.abs(dy)) return;
324
+ const key = adjacentKey(state, rtl ? dx > 0 : dx < 0);
325
+ if (key != null) state.setSelectedKey(key);
326
+ },
327
+ onPointerCancel: () => {
328
+ start.current = null;
329
+ }
330
+ };
331
+ }
332
+ function TabPanel({ state, listState, swipeable, rtl, className }) {
333
+ const ref = useRef(null);
334
+ const { tabPanelProps } = useTabPanel({}, listState, ref);
335
+ const swipeProps = useSwipeToSelect(state, rtl, swipeable);
336
+ return /* @__PURE__ */ jsx("div", {
337
+ ...mergeProps(tabPanelProps, swipeProps),
338
+ ref,
339
+ className,
340
+ children: (state.selectedItem?.props)?.children
341
+ });
342
+ }
343
+ //#endregion
344
+ export { Tab, Tabs };
345
+
346
+ //# sourceMappingURL=Tabs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tabs.js","names":[],"sources":["../../../src/components/tabs/Tabs.tsx"],"sourcesContent":["'use client';\n\nimport { animate, useReducedMotion } from 'motion/react';\nimport {\n useId,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n type HTMLAttributes,\n type JSX,\n type PointerEvent,\n type ReactElement,\n type ReactNode,\n} from 'react';\nimport {\n I18nProvider,\n mergeProps,\n useLocale,\n useObjectRef,\n useTab,\n useTabList,\n useTabPanel,\n type AriaTabListProps,\n} from 'react-aria';\nimport { Item, useTabListState, type Key, type Node, type TabListState } from 'react-stately';\nimport { useM3Spring } from '../../motion/use-m3-spring';\nimport { useM3Interaction } from '../../primitives/use-m3-interaction';\nimport { localeWithDirection } from '../../primitives/locale-with-direction';\nimport { densityAttribute, type Density } from '../../tokens/density';\nimport { FOCUSABLE_DISABLED_OPTIONS } from '../../utils/focusable-disabled';\nimport { assertCollectionChildren } from '../../utils/assert-collection-children';\nimport { useNearestReveal } from '../../utils/nearest-reveal';\nimport { cn } from '../../utils/cn';\nimport { useWarnOnce } from '../../utils/warn-once';\nimport { mergeDataTokens } from '../../utils/merge-data-tokens';\nimport {\n pickDescriptionAria,\n splitRootProps,\n type WrapperRootDOMProps,\n} from '../../utils/root-props';\nimport { BadgedBox, type BadgeProps } from '../badge/Badge';\nimport { tabsStyles, type TabsVariant } from './tabs-styles';\n\n/** How far (px) a horizontal swipe on a swipeable panel travels before it changes tab. */\nexport const TAB_SWIPE_THRESHOLD = 56;\n\n/** Props of a {@link Tab}; the React `key` identifies it for selection. */\nexport interface TabProps {\n /** The tab's label. Optional for icon-only tabs, which then need `aria-label`. */\n title?: ReactNode;\n /** Icon above (or before) the label. Hidden from assistive tech. */\n icon?: ReactNode;\n /** The panel shown while this tab is selected. Leave it out for tabs that only navigate. */\n children?: ReactNode;\n /** Plain-text label when `title` is not a string. */\n textValue?: string;\n /**\n * A {@link Badge} for news in this tab (at most four characters, \"+\" included). It sits on\n * a stacked icon, otherwise 4px after the label, and describes the tab to assistive tech.\n */\n badge?: ReactElement<BadgeProps>;\n /** Accessible name for the tab. Required for icon-only tabs, which have no `title`. */\n 'aria-label'?: string;\n}\n\n/** A tab in {@link Tabs} (a React Stately collection item: identify it with `key`). */\nexport const Tab = Item as unknown as (props: TabProps) => JSX.Element;\n\nexport interface TabsClassNames {\n /** The outer container, merged with `className`. */\n root?: string;\n /** The row's scrolling box around `list` (it carries the row's surface when aligned). */\n scroller?: string;\n /** The row of tabs (`role=\"tablist\"`). */\n list?: string;\n /** Every tab. */\n tab?: string;\n /** Each tab's icon. */\n icon?: string;\n /** Each tab's label. */\n label?: string;\n /** The active indicator under the selected tab. */\n indicator?: string;\n /** The selected tab's panel. */\n panel?: string;\n}\n\nexport interface TabsProps\n extends\n Omit<\n AriaTabListProps<object>,\n | 'children'\n | 'orientation'\n | 'items'\n | 'isDisabled'\n | 'selectedKey'\n | 'defaultSelectedKey'\n | 'onSelectionChange'\n >,\n Omit<WrapperRootDOMProps, keyof AriaTabListProps<object>> {\n /** `Tab` elements. */\n children: ReactNode;\n /** The selected tab's `key` (controlled). */\n value?: Key | null;\n /** The tab selected at first, when uncontrolled. @default the first enabled tab */\n defaultValue?: Key;\n /** Called with the newly selected tab's `key`. */\n onChange?: (key: Key) => void;\n /** Disables every tab (`disabledKeys` disables some). @default false */\n disabled?: boolean;\n /**\n * The keys of tabs that can't be selected. They stay focusable, so keyboard and screen reader\n * users find them (WAI-ARIA APG).\n */\n disabledKeys?: Iterable<Key>;\n /**\n * `primary` tabs sit below the top app bar and switch the page's main content;\n * `secondary` tabs switch content within one section. @default \"primary\"\n */\n variant?: TabsVariant;\n /** Tabs keep their natural width (at least 90px) and the row scrolls. @default false */\n scrollable?: boolean;\n /** Icons above the label (64px tabs) or before it (48px). @default \"top\" */\n iconPlacement?: 'top' | 'start';\n /**\n * Web density, `0` to `-3`, for the tab row (not the panels): each step takes 4px off the\n * tabs (48px at 0, 36px at -3; 64px to 52px with icons above). Left out, the tabs take the\n * density of the nearest `ThemeProvider` or `ThemeScope`. M3 asks for density to be the\n * reader's choice rather than a default, so prefer setting it there, from a setting.\n * @default 0\n */\n density?: Density;\n /**\n * Fixed tabs: `stretch` fills the row; `start` and `center` make every tab as wide as\n * the widest and place the group at the leading edge or the centre (M3's layout for wide\n * windows). Ignored when `scrollable`. @default \"stretch\"\n */\n align?: 'stretch' | 'start' | 'center';\n /**\n * A horizontal swipe on the panel selects the next or previous tab (mirrored in RTL), as\n * M3 tabs do. Vertical gestures still scroll. Avoid it when the panel holds swipeable\n * content such as a map or a carousel. @default false\n */\n swipeable?: boolean;\n /**\n * `manual`: the arrow keys move focus and Space / Enter selects the focused tab, the M3\n * keyboard pattern. `automatic` selects on focus. @default \"manual\"\n */\n keyboardActivation?: 'manual' | 'automatic';\n /** Classes for the root element, merged with `classNames.root`; consumer classes win. */\n className?: string;\n /** Inline styles for the root element. */\n style?: CSSProperties;\n /** Classes for each part, by slot. */\n classNames?: TabsClassNames;\n /** Ref to the root `<div>` element. */\n ref?: React.Ref<HTMLDivElement>;\n}\n\n/**\n * M3 tabs: a row of tabs with an indicator that slides to the selection, and the selected\n * tab's panel. Primary tabs mark the selection with a content-width indicator and\n * `primary` label; secondary tabs with a full-width indicator. Arrow keys move focus\n * between tabs (mirrored in RTL), Home / End jump to the ends, and Space / Enter selects.\n *\n * @example\n * <Tabs aria-label=\"Trip\">\n * <Tab key=\"flights\" title=\"Flights\" icon={<FlightIcon />}>Flight details…</Tab>\n * <Tab key=\"hotels\" title=\"Hotels\" icon={<HotelIcon />}>Hotel details…</Tab>\n * </Tabs>\n */\nexport function Tabs(props: TabsProps) {\n const { className, style, classNames, ref, ...rest } = props;\n // The root's DOM attributes; the naming and the rest go to the tab list.\n const { root: data, rest: ariaProps } = splitRootProps(rest, { wrapper: true });\n const rootRef = useObjectRef(ref);\n // React Aria takes arrow-key direction from its locale, not the DOM `dir`; follow the\n // direction the tabs are actually laid out in.\n const { locale, direction: localeDirection } = useLocale();\n const [direction, setDirection] = useState(localeDirection);\n useLayoutEffect(() => {\n if (rootRef.current) setDirection(getComputedStyle(rootRef.current).direction as 'ltr' | 'rtl');\n }, [rootRef]);\n const effectiveLocale =\n direction === localeDirection ? locale : localeWithDirection(locale, direction);\n\n return (\n <div\n {...data}\n ref={rootRef}\n style={style}\n data-tokens={mergeDataTokens('md-comp-tabs', data)}\n data-variant={props.variant ?? 'primary'}\n className={tabsStyles().root({ class: cn(classNames?.root, className) })}\n >\n <I18nProvider locale={effectiveLocale}>\n <TabsInner\n {...(ariaProps as Omit<TabsProps, 'className' | 'style' | 'ref'>)}\n classNames={classNames}\n rtl={direction === 'rtl'}\n />\n </I18nProvider>\n </div>\n );\n}\n\n/** No disabled keys, for the tab list's arrow keys (disabled tabs stay focusable). */\nconst NO_KEYS: Set<Key> = new Set();\n\nfunction TabsInner({\n rtl,\n ...props\n}: Omit<TabsProps, 'className' | 'style' | 'ref'> & { rtl: boolean }) {\n const {\n variant,\n scrollable = false,\n iconPlacement = 'top',\n align = 'stretch',\n swipeable = false,\n density,\n classNames,\n } = props;\n // A Tab's children are its panel content, which can be server-rendered: check only the Tabs.\n assertCollectionChildren(props.children, 'Tabs', 'Tab elements', { nested: false });\n const { disabled, value, defaultValue, onChange, ...rest } = props;\n const ariaProps = {\n ...rest,\n ...(value !== undefined && { selectedKey: value }),\n ...(defaultValue !== undefined && { defaultSelectedKey: defaultValue }),\n ...(onChange && { onSelectionChange: onChange }),\n isDisabled: disabled,\n keyboardActivation: props.keyboardActivation ?? 'manual',\n } as AriaTabListProps<object>;\n // Disabled tabs stay focusable but can't be selected (WAI-ARIA APG, \"Focusability of disabled\n // controls\"), so screen reader users find them: React Stately's `selection` behaviour, and\n // arrow keys that don't skip them (the tab list's keyboard sees no disabled keys).\n const state = useTabListState({ ...ariaProps, ...FOCUSABLE_DISABLED_OPTIONS });\n const listRef = useRef<HTMLDivElement>(null);\n const scrollerRef = useRef<HTMLDivElement>(null);\n // React Aria keys the tabs' ids to the state object the tab list gets, so the tabs and the\n // panel get that same object: given another, their ids would be `undefined-tab-…`, the same\n // in every Tabs on the page.\n const listState = useMemo(() => ({ ...state, disabledKeys: NO_KEYS }), [state]);\n const { tabListProps } = useTabList(ariaProps, listState, listRef);\n const items = [...state.collection];\n const hasIcon = items.some((item) => (item.props as TabProps).icon != null);\n const hasText = items.some((item) => (item.props as TabProps).title != null);\n const hasPanels = items.some((item) => (item.props as TabProps).children != null);\n // M3: every tab in a row has an icon, or none does; an icon-only tab needs a name.\n useWarnOnce(\n hasIcon && items.some((item) => (item.props as TabProps).icon == null),\n '[@windmorph/react] Give every Tab an icon, or none (M3: tabs in a row are consistent).',\n );\n const unnamed = items.find(\n (item) => (item.props as TabProps).title == null && !(item.props as TabProps)['aria-label'],\n );\n useWarnOnce(\n unnamed !== undefined,\n '[@windmorph/react] An icon-only Tab needs an aria-label; screen readers have no other name for it.',\n );\n const layout =\n hasIcon && hasText\n ? iconPlacement === 'start'\n ? 'icon-start'\n : 'icon-top'\n : hasIcon\n ? 'icon-only'\n : 'text';\n const styles = tabsStyles({\n variant,\n scrollable,\n layout,\n align: scrollable ? 'stretch' : align,\n swipeable,\n });\n\n const indicator = useIndicator(\n listRef,\n state.selectedKey,\n variant ?? 'primary',\n state.collection,\n );\n useScrollToSelection(scrollerRef, listRef, state.selectedKey, scrollable);\n // The tabs' colours fade only once the selection has changed. Set in the render that\n // changes it, not with the indicator's placement: that comes from a layout effect whose\n // measuring commits the new colours first, so the first selection recoloured at once.\n const [shownKey, setShownKey] = useState(state.selectedKey);\n const [recolour, setRecolour] = useState(false);\n if (shownKey !== state.selectedKey) {\n setShownKey(state.selectedKey);\n if (shownKey != null) setRecolour(true);\n }\n // The row reveals a tab at the nearest position, never centring the page on it.\n useNearestReveal(listRef);\n\n return (\n <>\n <div\n ref={scrollerRef}\n {...densityAttribute(density)}\n className={styles.scroller({ class: classNames?.scroller })}\n >\n <div\n {...pickDescriptionAria(rest)}\n {...tabListProps}\n ref={listRef}\n data-slot=\"list\"\n data-animate={indicator?.animate || undefined}\n data-recolour={recolour || undefined}\n className={styles.list({ class: classNames?.list })}\n >\n {items.map((item, index) => (\n <TabButton\n key={item.key}\n item={item}\n index={index}\n state={state}\n listState={listState}\n hasPanels={hasPanels}\n layout={layout}\n variant={variant ?? 'primary'}\n styles={styles}\n className={classNames?.tab}\n iconClassName={classNames?.icon}\n labelClassName={classNames?.label}\n />\n ))}\n <span\n aria-hidden=\"true\"\n data-slot=\"indicator\"\n data-ready={indicator ? '' : undefined}\n className={styles.indicator({ class: classNames?.indicator })}\n style={{\n // Span every column so the indicator's origin is the row's left edge in both\n // directions; translate then positions it.\n gridColumn: `1 / span ${Math.max(items.length, 1)}`,\n ...(indicator && { width: indicator.width, translate: `${indicator.x}px 0` }),\n }}\n />\n </div>\n </div>\n {hasPanels && (\n <TabPanel\n key={state.selectedKey}\n state={state}\n listState={listState}\n swipeable={swipeable}\n rtl={rtl}\n className={styles.panel({ class: classNames?.panel })}\n />\n )}\n </>\n );\n}\n\n/** Where the indicator goes, and whether it moves there (a selection change) or jumps. */\ninterface IndicatorPlacement {\n x: number;\n width: number;\n /**\n * The selection changed since the last placement, so the indicator slides and the tabs'\n * colours change in motion. The first placement and resizes (the row's, or the selected\n * tab's content's, e.g. when a web font loads) put it in place at once: M3 motion explains\n * a selection, and nothing slides in on mount.\n */\n animate: boolean;\n}\n\n/**\n * Measures the selected tab: its content (primary) or the whole tab (secondary). Again when\n * the tabs change, as tabs added or removed move the selected one without resizing the row,\n * and when the row or the selected tab's content resizes.\n */\nfunction useIndicator(\n listRef: React.RefObject<HTMLDivElement | null>,\n selectedKey: React.Key | null,\n variant: TabsVariant,\n tabs: unknown,\n) {\n const [indicator, setIndicator] = useState<IndicatorPlacement | null>(null);\n const placedKey = useRef<React.Key | null>(null);\n useLayoutEffect(() => {\n const list = listRef.current;\n if (!list) return;\n const place = (x: number, width: number) => {\n const animate = placedKey.current != null && placedKey.current !== selectedKey;\n placedKey.current = selectedKey;\n // An unchanged place keeps the last placement, so a re-measure never cuts a slide short.\n setIndicator((last) =>\n last && last.x === x && last.width === width ? last : { x, width, animate },\n );\n };\n const measure = () => {\n const tab = [...list.querySelectorAll<HTMLElement>('[role=\"tab\"]')].find(\n (el) => el.dataset.key === String(selectedKey),\n );\n if (!tab) return setIndicator(null);\n // Measured in the list's own pixels: an ancestor scaling in (a dialog opening) shrinks\n // the client rects, and no resize follows when it ends, so divide its scale out.\n const listRect = list.getBoundingClientRect();\n const scale = list.offsetWidth > 0 ? listRect.width / list.offsetWidth : 1;\n // Grid items sit in the content box, so measure from inside the start padding\n // (52px on scrollable rows; on the right in RTL, where paddingLeft is 0).\n const listLeft = listRect.left + parseFloat(getComputedStyle(list).paddingLeft) * scale;\n const tabRect = tab.getBoundingClientRect();\n const tabX = (tabRect.left - listLeft) / scale;\n const tabWidth = tabRect.width / scale;\n if (variant === 'secondary') {\n place(tabX, tabWidth);\n return;\n }\n // Compose: the content width less the 16px padding each side, at least 24px.\n const parts = [...tab.querySelectorAll('[data-tab-part]')].map((el) =>\n el.getBoundingClientRect(),\n );\n const contentWidth = parts.length\n ? (Math.max(...parts.map((r) => r.right)) - Math.min(...parts.map((r) => r.left))) / scale\n : 0;\n const width = Math.max(Math.min(contentWidth, tabWidth - 32), 24);\n place(tabX + (tabWidth - width) / 2, width);\n };\n measure();\n if (typeof ResizeObserver === 'undefined') return;\n const observer = new ResizeObserver(measure);\n observer.observe(list);\n // The selected tab's content can resize without the row, e.g. when a web font loads.\n const selected = [...list.querySelectorAll<HTMLElement>('[role=\"tab\"]')].find(\n (el) => el.dataset.key === String(selectedKey),\n );\n selected?.querySelectorAll('[data-tab-part]').forEach((part) => observer.observe(part));\n return () => observer.disconnect();\n }, [listRef, selectedKey, variant, tabs]);\n return indicator;\n}\n\n/**\n * Scrollable rows centre the selected tab on the default spatial spring (Compose); under\n * reduced motion they scroll there at once.\n */\nfunction useScrollToSelection(\n scrollerRef: React.RefObject<HTMLDivElement | null>,\n listRef: React.RefObject<HTMLDivElement | null>,\n selectedKey: React.Key | null,\n scrollable: boolean,\n) {\n const spring = useM3Spring('spatial', 'default');\n const reducedMotion = useReducedMotion() ?? false;\n const first = useRef(true);\n useLayoutEffect(() => {\n const scroller = scrollerRef.current;\n const tab = [...(listRef.current?.querySelectorAll<HTMLElement>('[role=\"tab\"]') ?? [])].find(\n (el) => el.dataset.key === String(selectedKey),\n );\n if (!scrollable || !scroller || !tab) return;\n const rtl = getComputedStyle(scroller).direction === 'rtl';\n const max = scroller.scrollWidth - scroller.clientWidth;\n const tabRect = tab.getBoundingClientRect();\n const scrollerRect = scroller.getBoundingClientRect();\n const delta = tabRect.left + tabRect.width / 2 - (scrollerRect.left + scrollerRect.width / 2);\n // RTL scroll positions run from 0 down to −max.\n const target = Math.min(Math.max(scroller.scrollLeft + delta, rtl ? -max : 0), rtl ? 0 : max);\n if (first.current || reducedMotion) {\n first.current = false;\n scroller.scrollLeft = target;\n return;\n }\n const controls = animate(scroller.scrollLeft, target, {\n ...spring,\n onUpdate: (value) => {\n scroller.scrollLeft = value;\n },\n });\n return () => controls.stop();\n // The spring only matters for the next selection change.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedKey, scrollable]);\n}\n\ninterface TabButtonProps {\n item: Node<object>;\n index: number;\n state: TabListState<object>;\n /** The state the tab list was given, which React Aria keys the tabs' ids to. */\n listState: TabListState<object>;\n hasPanels: boolean;\n layout: 'text' | 'icon-top' | 'icon-start' | 'icon-only';\n variant: TabsVariant;\n styles: ReturnType<typeof tabsStyles>;\n className?: string | undefined;\n iconClassName?: string | undefined;\n labelClassName?: string | undefined;\n}\n\nfunction TabButton({\n item,\n index,\n state,\n listState,\n hasPanels,\n layout,\n variant,\n styles,\n className,\n iconClassName,\n labelClassName,\n}: TabButtonProps) {\n const ref = useRef<HTMLDivElement>(null);\n const { tabProps, isPressed } = useTab({ key: item.key }, listState, ref);\n const { interactionProps, dataAttributes } = useM3Interaction(\n {\n isDisabled: state.disabledKeys.has(item.key),\n isPressed,\n isSelected: state.selectedKey === item.key,\n },\n ref,\n );\n const { icon, badge } = item.props as TabProps;\n const badgeId = useId();\n // Without panels there is nothing for aria-controls to point at.\n const { 'aria-controls': controls, ...ownProps } = tabProps;\n // On a stacked icon the badge overlaps it (`BadgedBox`); otherwise it follows the label.\n const badgeOnIcon =\n badge != null && icon != null && (layout === 'icon-top' || item.rendered == null);\n // The badge describes the tab rather than adding to its name.\n // Wrapped rather than cloned: a badge can arrive as a lazy server reference without props.\n const badgeNode =\n badge != null ? (\n <span id={badgeId} aria-hidden=\"true\" className=\"contents\">\n {badge}\n </span>\n ) : null;\n return (\n <div\n {...mergeProps(ownProps, interactionProps)}\n {...dataAttributes}\n aria-controls={hasPanels ? controls : undefined}\n aria-disabled={state.isDisabled || state.disabledKeys.has(item.key) || undefined}\n aria-describedby={badge != null ? badgeId : undefined}\n data-key={String(item.key)}\n // Each tab resolves its own tokens, so its selection picks its colours.\n data-tokens={mergeDataTokens('md-comp-tabs', ownProps)}\n data-variant={variant}\n data-slot=\"tab\"\n ref={ref}\n style={{ gridColumnStart: index + 1 }}\n className={styles.tab({ class: className })}\n >\n {icon != null && (\n <span\n aria-hidden=\"true\"\n data-tab-part=\"\"\n data-slot=\"icon\"\n className={styles.icon({ class: iconClassName })}\n >\n {badgeOnIcon && badgeNode ? <BadgedBox badge={badgeNode}>{icon}</BadgedBox> : icon}\n </span>\n )}\n {item.rendered != null &&\n (badge != null && !badgeOnIcon ? (\n <span data-tab-part=\"\" className={styles.text()}>\n <span className={styles.label({ class: labelClassName })}>{item.rendered}</span>\n {badgeNode}\n </span>\n ) : (\n <span data-tab-part=\"\" className={styles.label({ class: labelClassName })}>\n {item.rendered}\n </span>\n ))}\n </div>\n );\n}\n\n/** The next (or previous) enabled tab after the selected one, if any. */\nfunction adjacentKey(state: TabListState<object>, forward: boolean) {\n const step = (key: Key | null) =>\n key == null\n ? null\n : forward\n ? state.collection.getKeyAfter(key)\n : state.collection.getKeyBefore(key);\n let key = step(state.selectedKey);\n while (key != null && state.disabledKeys.has(key)) key = step(key);\n return key;\n}\n\n/**\n * A horizontal touch or pen swipe of at least {@link TAB_SWIPE_THRESHOLD} px selects the\n * neighbouring tab: towards the end edge for the previous one, as content follows the\n * finger. Mouse drags are left to text selection.\n */\nfunction useSwipeToSelect(\n state: TabListState<object>,\n rtl: boolean,\n enabled: boolean,\n): HTMLAttributes<HTMLDivElement> {\n const start = useRef<{ x: number; y: number; id: number } | null>(null);\n if (!enabled) return {};\n return {\n onPointerDown: (event: PointerEvent<HTMLDivElement>) => {\n start.current =\n event.pointerType === 'mouse'\n ? null\n : { x: event.clientX, y: event.clientY, id: event.pointerId };\n },\n onPointerUp: (event: PointerEvent<HTMLDivElement>) => {\n const origin = start.current;\n start.current = null;\n if (!origin || origin.id !== event.pointerId || state.isDisabled) return;\n const dx = event.clientX - origin.x;\n const dy = event.clientY - origin.y;\n if (Math.abs(dx) < TAB_SWIPE_THRESHOLD || Math.abs(dx) <= Math.abs(dy)) return;\n const key = adjacentKey(state, rtl ? dx > 0 : dx < 0);\n if (key != null) state.setSelectedKey(key);\n },\n onPointerCancel: () => {\n start.current = null;\n },\n };\n}\n\nfunction TabPanel({\n state,\n listState,\n swipeable,\n rtl,\n className,\n}: {\n state: TabListState<object>;\n /** The state the tab list was given, which React Aria keys the panel's ids to. */\n listState: TabListState<object>;\n swipeable: boolean;\n rtl: boolean;\n className?: string;\n}) {\n const ref = useRef<HTMLDivElement>(null);\n const { tabPanelProps } = useTabPanel({}, listState, ref);\n const swipeProps = useSwipeToSelect(state, rtl, swipeable);\n return (\n <div {...mergeProps(tabPanelProps, swipeProps)} ref={ref} className={className}>\n {(state.selectedItem?.props as TabProps | undefined)?.children}\n </div>\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,198 @@
1
+ import { VariantProps } from "../../utils/tv.js";
2
+ //#region src/components/tabs/tabs-styles.d.ts
3
+ /** Variant definitions for {@link Tabs}; extend them to add variants. */
4
+ export declare const tabsStyles: import("tailwind-variants").TVReturnType<{
5
+ variant: {
6
+ primary: {
7
+ tab: string[];
8
+ indicator: string;
9
+ };
10
+ secondary: {
11
+ tab: string[];
12
+ indicator: string;
13
+ };
14
+ };
15
+ scrollable: {
16
+ true: {
17
+ scroller: string;
18
+ list: string;
19
+ tab: string;
20
+ };
21
+ false: {
22
+ list: string;
23
+ };
24
+ };
25
+ swipeable: {
26
+ true: {
27
+ panel: string;
28
+ };
29
+ false: {};
30
+ };
31
+ align: {
32
+ stretch: {};
33
+ start: {
34
+ scroller: string[];
35
+ list: string;
36
+ };
37
+ center: {
38
+ scroller: string[];
39
+ list: string;
40
+ };
41
+ };
42
+ layout: {
43
+ text: {
44
+ tab: string;
45
+ };
46
+ 'icon-top': {
47
+ tab: string;
48
+ };
49
+ 'icon-start': {
50
+ tab: string;
51
+ };
52
+ 'icon-only': {
53
+ tab: string;
54
+ };
55
+ };
56
+ }, {
57
+ root: string;
58
+ scroller: string;
59
+ list: string[];
60
+ tab: string[];
61
+ icon: string[];
62
+ label: string;
63
+ text: string;
64
+ indicator: string[];
65
+ panel: string;
66
+ }, undefined, {
67
+ variant: {
68
+ primary: {
69
+ tab: string[];
70
+ indicator: string;
71
+ };
72
+ secondary: {
73
+ tab: string[];
74
+ indicator: string;
75
+ };
76
+ };
77
+ scrollable: {
78
+ true: {
79
+ scroller: string;
80
+ list: string;
81
+ tab: string;
82
+ };
83
+ false: {
84
+ list: string;
85
+ };
86
+ };
87
+ swipeable: {
88
+ true: {
89
+ panel: string;
90
+ };
91
+ false: {};
92
+ };
93
+ align: {
94
+ stretch: {};
95
+ start: {
96
+ scroller: string[];
97
+ list: string;
98
+ };
99
+ center: {
100
+ scroller: string[];
101
+ list: string;
102
+ };
103
+ };
104
+ layout: {
105
+ text: {
106
+ tab: string;
107
+ };
108
+ 'icon-top': {
109
+ tab: string;
110
+ };
111
+ 'icon-start': {
112
+ tab: string;
113
+ };
114
+ 'icon-only': {
115
+ tab: string;
116
+ };
117
+ };
118
+ }, {
119
+ root: string;
120
+ scroller: string;
121
+ list: string[];
122
+ tab: string[];
123
+ icon: string[];
124
+ label: string;
125
+ text: string;
126
+ indicator: string[];
127
+ panel: string;
128
+ }, import("tailwind-variants").TVReturnTypeLike<{
129
+ variant: {
130
+ primary: {
131
+ tab: string[];
132
+ indicator: string;
133
+ };
134
+ secondary: {
135
+ tab: string[];
136
+ indicator: string;
137
+ };
138
+ };
139
+ scrollable: {
140
+ true: {
141
+ scroller: string;
142
+ list: string;
143
+ tab: string;
144
+ };
145
+ false: {
146
+ list: string;
147
+ };
148
+ };
149
+ swipeable: {
150
+ true: {
151
+ panel: string;
152
+ };
153
+ false: {};
154
+ };
155
+ align: {
156
+ stretch: {};
157
+ start: {
158
+ scroller: string[];
159
+ list: string;
160
+ };
161
+ center: {
162
+ scroller: string[];
163
+ list: string;
164
+ };
165
+ };
166
+ layout: {
167
+ text: {
168
+ tab: string;
169
+ };
170
+ 'icon-top': {
171
+ tab: string;
172
+ };
173
+ 'icon-start': {
174
+ tab: string;
175
+ };
176
+ 'icon-only': {
177
+ tab: string;
178
+ };
179
+ };
180
+ }, {
181
+ root: string;
182
+ scroller: string;
183
+ list: string[];
184
+ tab: string[];
185
+ icon: string[];
186
+ label: string;
187
+ text: string;
188
+ indicator: string[];
189
+ panel: string;
190
+ }>>;
191
+ /**
192
+ * The variants of {@link tabsStyles}, for building on its styles. They are the recipe's keys, not
193
+ * component props: their names (`hasIcon`, `isOpen`…) follow the classes and may change.
194
+ */
195
+ export type TabsStyleProps = VariantProps<typeof tabsStyles>;
196
+ export type TabsVariant = NonNullable<TabsStyleProps['variant']>;
197
+ //#endregion
198
+ //# sourceMappingURL=tabs-styles.d.ts.map