@weave-framework/ui 0.2.107

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 (384) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +17 -0
  3. package/dist/autocomplete/autocomplete.d.ts +86 -0
  4. package/dist/autocomplete/autocomplete.d.ts.map +1 -0
  5. package/dist/autocomplete/autocomplete.js +263 -0
  6. package/dist/autocomplete/autocomplete.js.map +1 -0
  7. package/dist/badge/badge.d.ts +39 -0
  8. package/dist/badge/badge.d.ts.map +1 -0
  9. package/dist/badge/badge.js +59 -0
  10. package/dist/badge/badge.js.map +1 -0
  11. package/dist/bottom-sheet/bottom-sheet.d.ts +21 -0
  12. package/dist/bottom-sheet/bottom-sheet.d.ts.map +1 -0
  13. package/dist/bottom-sheet/bottom-sheet.js +82 -0
  14. package/dist/bottom-sheet/bottom-sheet.js.map +1 -0
  15. package/dist/button/button.d.ts +47 -0
  16. package/dist/button/button.d.ts.map +1 -0
  17. package/dist/button/button.js +47 -0
  18. package/dist/button/button.js.map +1 -0
  19. package/dist/button-toggle/button-toggle.d.ts +65 -0
  20. package/dist/button-toggle/button-toggle.d.ts.map +1 -0
  21. package/dist/button-toggle/button-toggle.js +127 -0
  22. package/dist/button-toggle/button-toggle.js.map +1 -0
  23. package/dist/card/card.d.ts +30 -0
  24. package/dist/card/card.d.ts.map +1 -0
  25. package/dist/card/card.js +32 -0
  26. package/dist/card/card.js.map +1 -0
  27. package/dist/cdk/bidi.d.ts +19 -0
  28. package/dist/cdk/bidi.d.ts.map +1 -0
  29. package/dist/cdk/bidi.js +32 -0
  30. package/dist/cdk/bidi.js.map +1 -0
  31. package/dist/cdk/breakpoints.d.ts +21 -0
  32. package/dist/cdk/breakpoints.d.ts.map +1 -0
  33. package/dist/cdk/breakpoints.js +39 -0
  34. package/dist/cdk/breakpoints.js.map +1 -0
  35. package/dist/cdk/clipboard.d.ts +8 -0
  36. package/dist/cdk/clipboard.d.ts.map +1 -0
  37. package/dist/cdk/clipboard.js +38 -0
  38. package/dist/cdk/clipboard.js.map +1 -0
  39. package/dist/cdk/data-source.d.ts +41 -0
  40. package/dist/cdk/data-source.d.ts.map +1 -0
  41. package/dist/cdk/data-source.js +36 -0
  42. package/dist/cdk/data-source.js.map +1 -0
  43. package/dist/cdk/date-adapter.d.ts +63 -0
  44. package/dist/cdk/date-adapter.d.ts.map +1 -0
  45. package/dist/cdk/date-adapter.js +155 -0
  46. package/dist/cdk/date-adapter.js.map +1 -0
  47. package/dist/cdk/drag-drop.d.ts +77 -0
  48. package/dist/cdk/drag-drop.d.ts.map +1 -0
  49. package/dist/cdk/drag-drop.js +268 -0
  50. package/dist/cdk/drag-drop.js.map +1 -0
  51. package/dist/cdk/focus-monitor.d.ts +27 -0
  52. package/dist/cdk/focus-monitor.d.ts.map +1 -0
  53. package/dist/cdk/focus-monitor.js +66 -0
  54. package/dist/cdk/focus-monitor.js.map +1 -0
  55. package/dist/cdk/focus-trap.d.ts +39 -0
  56. package/dist/cdk/focus-trap.d.ts.map +1 -0
  57. package/dist/cdk/focus-trap.js +127 -0
  58. package/dist/cdk/focus-trap.js.map +1 -0
  59. package/dist/cdk/index.d.ts +29 -0
  60. package/dist/cdk/index.d.ts.map +1 -0
  61. package/dist/cdk/index.js +29 -0
  62. package/dist/cdk/index.js.map +1 -0
  63. package/dist/cdk/interactivity.d.ts +19 -0
  64. package/dist/cdk/interactivity.d.ts.map +1 -0
  65. package/dist/cdk/interactivity.js +70 -0
  66. package/dist/cdk/interactivity.js.map +1 -0
  67. package/dist/cdk/key-manager.d.ts +41 -0
  68. package/dist/cdk/key-manager.d.ts.map +1 -0
  69. package/dist/cdk/key-manager.js +126 -0
  70. package/dist/cdk/key-manager.js.map +1 -0
  71. package/dist/cdk/live-announcer.d.ts +19 -0
  72. package/dist/cdk/live-announcer.d.ts.map +1 -0
  73. package/dist/cdk/live-announcer.js +48 -0
  74. package/dist/cdk/live-announcer.js.map +1 -0
  75. package/dist/cdk/observers.d.ts +17 -0
  76. package/dist/cdk/observers.d.ts.map +1 -0
  77. package/dist/cdk/observers.js +35 -0
  78. package/dist/cdk/observers.js.map +1 -0
  79. package/dist/cdk/overlay.d.ts +73 -0
  80. package/dist/cdk/overlay.d.ts.map +1 -0
  81. package/dist/cdk/overlay.js +154 -0
  82. package/dist/cdk/overlay.js.map +1 -0
  83. package/dist/cdk/platform.d.ts +22 -0
  84. package/dist/cdk/platform.d.ts.map +1 -0
  85. package/dist/cdk/platform.js +55 -0
  86. package/dist/cdk/platform.js.map +1 -0
  87. package/dist/cdk/portal.d.ts +31 -0
  88. package/dist/cdk/portal.d.ts.map +1 -0
  89. package/dist/cdk/portal.js +55 -0
  90. package/dist/cdk/portal.js.map +1 -0
  91. package/dist/cdk/positioning.d.ts +53 -0
  92. package/dist/cdk/positioning.d.ts.map +1 -0
  93. package/dist/cdk/positioning.js +140 -0
  94. package/dist/cdk/positioning.js.map +1 -0
  95. package/dist/cdk/scroll.d.ts +43 -0
  96. package/dist/cdk/scroll.d.ts.map +1 -0
  97. package/dist/cdk/scroll.js +97 -0
  98. package/dist/cdk/scroll.js.map +1 -0
  99. package/dist/cdk/selection-model.d.ts +50 -0
  100. package/dist/cdk/selection-model.d.ts.map +1 -0
  101. package/dist/cdk/selection-model.js +77 -0
  102. package/dist/cdk/selection-model.js.map +1 -0
  103. package/dist/cdk/virtual-scroll.d.ts +50 -0
  104. package/dist/cdk/virtual-scroll.d.ts.map +1 -0
  105. package/dist/cdk/virtual-scroll.js +92 -0
  106. package/dist/cdk/virtual-scroll.js.map +1 -0
  107. package/dist/checkbox/checkbox.d.ts +65 -0
  108. package/dist/checkbox/checkbox.d.ts.map +1 -0
  109. package/dist/checkbox/checkbox.js +82 -0
  110. package/dist/checkbox/checkbox.js.map +1 -0
  111. package/dist/chips/chips.d.ts +65 -0
  112. package/dist/chips/chips.d.ts.map +1 -0
  113. package/dist/chips/chips.js +119 -0
  114. package/dist/chips/chips.js.map +1 -0
  115. package/dist/context-menu/context-menu.d.ts +32 -0
  116. package/dist/context-menu/context-menu.d.ts.map +1 -0
  117. package/dist/context-menu/context-menu.js +63 -0
  118. package/dist/context-menu/context-menu.js.map +1 -0
  119. package/dist/datepicker/datepicker.d.ts +100 -0
  120. package/dist/datepicker/datepicker.d.ts.map +1 -0
  121. package/dist/datepicker/datepicker.js +440 -0
  122. package/dist/datepicker/datepicker.js.map +1 -0
  123. package/dist/dialog/dialog.d.ts +27 -0
  124. package/dist/dialog/dialog.d.ts.map +1 -0
  125. package/dist/dialog/dialog.js +47 -0
  126. package/dist/dialog/dialog.js.map +1 -0
  127. package/dist/dialog/modal-core.d.ts +42 -0
  128. package/dist/dialog/modal-core.d.ts.map +1 -0
  129. package/dist/dialog/modal-core.js +103 -0
  130. package/dist/dialog/modal-core.js.map +1 -0
  131. package/dist/expansion/expansion.d.ts +71 -0
  132. package/dist/expansion/expansion.d.ts.map +1 -0
  133. package/dist/expansion/expansion.js +127 -0
  134. package/dist/expansion/expansion.js.map +1 -0
  135. package/dist/form-field/form-field.d.ts +48 -0
  136. package/dist/form-field/form-field.d.ts.map +1 -0
  137. package/dist/form-field/form-field.js +89 -0
  138. package/dist/form-field/form-field.js.map +1 -0
  139. package/dist/grid-list/grid-list.d.ts +25 -0
  140. package/dist/grid-list/grid-list.d.ts.map +1 -0
  141. package/dist/grid-list/grid-list.js +22 -0
  142. package/dist/grid-list/grid-list.js.map +1 -0
  143. package/dist/icon/icon.d.ts +40 -0
  144. package/dist/icon/icon.d.ts.map +1 -0
  145. package/dist/icon/icon.js +99 -0
  146. package/dist/icon/icon.js.map +1 -0
  147. package/dist/icon/icons.d.ts +60 -0
  148. package/dist/icon/icons.d.ts.map +1 -0
  149. package/dist/icon/icons.js +126 -0
  150. package/dist/icon/icons.js.map +1 -0
  151. package/dist/icon/lucide-icons.d.ts +11 -0
  152. package/dist/icon/lucide-icons.d.ts.map +1 -0
  153. package/dist/icon/lucide-icons.js +65 -0
  154. package/dist/icon/lucide-icons.js.map +1 -0
  155. package/dist/index.d.ts +12 -0
  156. package/dist/index.d.ts.map +1 -0
  157. package/dist/index.js +2 -0
  158. package/dist/index.js.map +1 -0
  159. package/dist/input/input.d.ts +90 -0
  160. package/dist/input/input.d.ts.map +1 -0
  161. package/dist/input/input.js +138 -0
  162. package/dist/input/input.js.map +1 -0
  163. package/dist/internal/compose.d.ts +26 -0
  164. package/dist/internal/compose.d.ts.map +1 -0
  165. package/dist/internal/compose.js +32 -0
  166. package/dist/internal/compose.js.map +1 -0
  167. package/dist/list/list.d.ts +70 -0
  168. package/dist/list/list.d.ts.map +1 -0
  169. package/dist/list/list.js +144 -0
  170. package/dist/list/list.js.map +1 -0
  171. package/dist/menu/menu-core.d.ts +56 -0
  172. package/dist/menu/menu-core.d.ts.map +1 -0
  173. package/dist/menu/menu-core.js +122 -0
  174. package/dist/menu/menu-core.js.map +1 -0
  175. package/dist/menu/menu.d.ts +31 -0
  176. package/dist/menu/menu.d.ts.map +1 -0
  177. package/dist/menu/menu.js +68 -0
  178. package/dist/menu/menu.js.map +1 -0
  179. package/dist/menubar/menubar.d.ts +49 -0
  180. package/dist/menubar/menubar.d.ts.map +1 -0
  181. package/dist/menubar/menubar.js +162 -0
  182. package/dist/menubar/menubar.js.map +1 -0
  183. package/dist/paginator/paginator.d.ts +89 -0
  184. package/dist/paginator/paginator.d.ts.map +1 -0
  185. package/dist/paginator/paginator.js +159 -0
  186. package/dist/paginator/paginator.js.map +1 -0
  187. package/dist/popover-edit/popover-edit.d.ts +33 -0
  188. package/dist/popover-edit/popover-edit.d.ts.map +1 -0
  189. package/dist/popover-edit/popover-edit.js +107 -0
  190. package/dist/popover-edit/popover-edit.js.map +1 -0
  191. package/dist/progress-bar/progress-bar.d.ts +32 -0
  192. package/dist/progress-bar/progress-bar.d.ts.map +1 -0
  193. package/dist/progress-bar/progress-bar.js +42 -0
  194. package/dist/progress-bar/progress-bar.js.map +1 -0
  195. package/dist/progress-spinner/progress-spinner.d.ts +25 -0
  196. package/dist/progress-spinner/progress-spinner.d.ts.map +1 -0
  197. package/dist/progress-spinner/progress-spinner.js +25 -0
  198. package/dist/progress-spinner/progress-spinner.js.map +1 -0
  199. package/dist/radio/radio.d.ts +68 -0
  200. package/dist/radio/radio.d.ts.map +1 -0
  201. package/dist/radio/radio.js +81 -0
  202. package/dist/radio/radio.js.map +1 -0
  203. package/dist/ripple/ripple.d.ts +20 -0
  204. package/dist/ripple/ripple.d.ts.map +1 -0
  205. package/dist/ripple/ripple.js +41 -0
  206. package/dist/ripple/ripple.js.map +1 -0
  207. package/dist/select/select.d.ts +83 -0
  208. package/dist/select/select.d.ts.map +1 -0
  209. package/dist/select/select.js +320 -0
  210. package/dist/select/select.js.map +1 -0
  211. package/dist/shared/options.d.ts +44 -0
  212. package/dist/shared/options.d.ts.map +1 -0
  213. package/dist/shared/options.js +59 -0
  214. package/dist/shared/options.js.map +1 -0
  215. package/dist/shared/positions.d.ts +20 -0
  216. package/dist/shared/positions.d.ts.map +1 -0
  217. package/dist/shared/positions.js +27 -0
  218. package/dist/shared/positions.js.map +1 -0
  219. package/dist/sidenav/sidenav.d.ts +65 -0
  220. package/dist/sidenav/sidenav.d.ts.map +1 -0
  221. package/dist/sidenav/sidenav.js +120 -0
  222. package/dist/sidenav/sidenav.js.map +1 -0
  223. package/dist/slide-toggle/slide-toggle.d.ts +56 -0
  224. package/dist/slide-toggle/slide-toggle.d.ts.map +1 -0
  225. package/dist/slide-toggle/slide-toggle.js +62 -0
  226. package/dist/slide-toggle/slide-toggle.js.map +1 -0
  227. package/dist/slider/slider.d.ts +69 -0
  228. package/dist/slider/slider.d.ts.map +1 -0
  229. package/dist/slider/slider.js +184 -0
  230. package/dist/slider/slider.js.map +1 -0
  231. package/dist/snackbar/snackbar.d.ts +25 -0
  232. package/dist/snackbar/snackbar.d.ts.map +1 -0
  233. package/dist/snackbar/snackbar.js +135 -0
  234. package/dist/snackbar/snackbar.js.map +1 -0
  235. package/dist/stepper/stepper.d.ts +87 -0
  236. package/dist/stepper/stepper.d.ts.map +1 -0
  237. package/dist/stepper/stepper.js +142 -0
  238. package/dist/stepper/stepper.js.map +1 -0
  239. package/dist/table/table.d.ts +140 -0
  240. package/dist/table/table.d.ts.map +1 -0
  241. package/dist/table/table.js +312 -0
  242. package/dist/table/table.js.map +1 -0
  243. package/dist/tabs/tabs.d.ts +64 -0
  244. package/dist/tabs/tabs.d.ts.map +1 -0
  245. package/dist/tabs/tabs.js +126 -0
  246. package/dist/tabs/tabs.js.map +1 -0
  247. package/dist/timepicker/timepicker.d.ts +83 -0
  248. package/dist/timepicker/timepicker.d.ts.map +1 -0
  249. package/dist/timepicker/timepicker.js +303 -0
  250. package/dist/timepicker/timepicker.js.map +1 -0
  251. package/dist/toolbar/toolbar.d.ts +34 -0
  252. package/dist/toolbar/toolbar.d.ts.map +1 -0
  253. package/dist/toolbar/toolbar.js +35 -0
  254. package/dist/toolbar/toolbar.js.map +1 -0
  255. package/dist/tooltip/tooltip.d.ts +30 -0
  256. package/dist/tooltip/tooltip.d.ts.map +1 -0
  257. package/dist/tooltip/tooltip.js +109 -0
  258. package/dist/tooltip/tooltip.js.map +1 -0
  259. package/dist/tree/tree.d.ts +100 -0
  260. package/dist/tree/tree.d.ts.map +1 -0
  261. package/dist/tree/tree.js +288 -0
  262. package/dist/tree/tree.js.map +1 -0
  263. package/package.json +230 -0
  264. package/src/styles/_api.scss +384 -0
  265. package/src/styles/_helpers.scss +101 -0
  266. package/src/styles/_index.scss +12 -0
  267. package/src/styles/_ref.scss +20 -0
  268. package/src/styles/_sass-utils.scss +14 -0
  269. package/src/styles/_token-utils.scss +24 -0
  270. package/src/styles/components/autocomplete/_index.scss +10 -0
  271. package/src/styles/components/autocomplete/_styles.scss +46 -0
  272. package/src/styles/components/autocomplete/_tokens.scss +28 -0
  273. package/src/styles/components/badge/_index.scss +12 -0
  274. package/src/styles/components/badge/_styles.scss +72 -0
  275. package/src/styles/components/badge/_tokens.scss +27 -0
  276. package/src/styles/components/bottom-sheet/_index.scss +9 -0
  277. package/src/styles/components/bottom-sheet/_styles.scss +77 -0
  278. package/src/styles/components/bottom-sheet/_tokens.scss +33 -0
  279. package/src/styles/components/button/_index.scss +12 -0
  280. package/src/styles/components/button/_styles.scss +106 -0
  281. package/src/styles/components/button/_tokens.scss +36 -0
  282. package/src/styles/components/button-toggle/_index.scss +12 -0
  283. package/src/styles/components/button-toggle/_styles.scss +57 -0
  284. package/src/styles/components/button-toggle/_tokens.scss +25 -0
  285. package/src/styles/components/card/_index.scss +15 -0
  286. package/src/styles/components/card/_styles.scss +68 -0
  287. package/src/styles/components/card/_tokens.scss +26 -0
  288. package/src/styles/components/checkbox/_index.scss +13 -0
  289. package/src/styles/components/checkbox/_styles.scss +108 -0
  290. package/src/styles/components/checkbox/_tokens.scss +25 -0
  291. package/src/styles/components/chips/_index.scss +12 -0
  292. package/src/styles/components/chips/_styles.scss +83 -0
  293. package/src/styles/components/chips/_tokens.scss +28 -0
  294. package/src/styles/components/datepicker/_index.scss +10 -0
  295. package/src/styles/components/datepicker/_styles.scss +203 -0
  296. package/src/styles/components/datepicker/_tokens.scss +50 -0
  297. package/src/styles/components/dialog/_index.scss +9 -0
  298. package/src/styles/components/dialog/_styles.scss +54 -0
  299. package/src/styles/components/dialog/_tokens.scss +29 -0
  300. package/src/styles/components/divider/_index.scss +8 -0
  301. package/src/styles/components/divider/_styles.scss +18 -0
  302. package/src/styles/components/divider/_tokens.scss +12 -0
  303. package/src/styles/components/expansion/_index.scss +14 -0
  304. package/src/styles/components/expansion/_styles.scss +128 -0
  305. package/src/styles/components/expansion/_tokens.scss +32 -0
  306. package/src/styles/components/form-field/_index.scss +13 -0
  307. package/src/styles/components/form-field/_styles.scss +39 -0
  308. package/src/styles/components/form-field/_tokens.scss +19 -0
  309. package/src/styles/components/grid-list/_index.scss +12 -0
  310. package/src/styles/components/grid-list/_styles.scss +31 -0
  311. package/src/styles/components/grid-list/_tokens.scss +18 -0
  312. package/src/styles/components/icon/_index.scss +8 -0
  313. package/src/styles/components/icon/_styles.scss +18 -0
  314. package/src/styles/components/icon/_tokens.scss +8 -0
  315. package/src/styles/components/input/_index.scss +13 -0
  316. package/src/styles/components/input/_styles.scss +111 -0
  317. package/src/styles/components/input/_tokens.scss +21 -0
  318. package/src/styles/components/list/_index.scss +12 -0
  319. package/src/styles/components/list/_styles.scss +87 -0
  320. package/src/styles/components/list/_tokens.scss +31 -0
  321. package/src/styles/components/menu/_index.scss +9 -0
  322. package/src/styles/components/menu/_styles.scss +60 -0
  323. package/src/styles/components/menu/_tokens.scss +33 -0
  324. package/src/styles/components/menubar/_index.scss +9 -0
  325. package/src/styles/components/menubar/_styles.scss +41 -0
  326. package/src/styles/components/menubar/_tokens.scss +25 -0
  327. package/src/styles/components/overlay/_index.scss +8 -0
  328. package/src/styles/components/overlay/_styles.scss +25 -0
  329. package/src/styles/components/overlay/_tokens.scss +21 -0
  330. package/src/styles/components/paginator/_index.scss +14 -0
  331. package/src/styles/components/paginator/_styles.scss +77 -0
  332. package/src/styles/components/paginator/_tokens.scss +28 -0
  333. package/src/styles/components/popover-edit/_index.scss +9 -0
  334. package/src/styles/components/popover-edit/_styles.scss +31 -0
  335. package/src/styles/components/popover-edit/_tokens.scss +21 -0
  336. package/src/styles/components/progress-bar/_index.scss +11 -0
  337. package/src/styles/components/progress-bar/_styles.scss +39 -0
  338. package/src/styles/components/progress-bar/_tokens.scss +17 -0
  339. package/src/styles/components/progress-spinner/_index.scss +11 -0
  340. package/src/styles/components/progress-spinner/_styles.scss +26 -0
  341. package/src/styles/components/progress-spinner/_tokens.scss +15 -0
  342. package/src/styles/components/radio/_index.scss +14 -0
  343. package/src/styles/components/radio/_styles.scss +92 -0
  344. package/src/styles/components/radio/_tokens.scss +24 -0
  345. package/src/styles/components/ripple/_index.scss +8 -0
  346. package/src/styles/components/ripple/_styles.scss +20 -0
  347. package/src/styles/components/ripple/_tokens.scss +12 -0
  348. package/src/styles/components/select/_index.scss +9 -0
  349. package/src/styles/components/select/_styles.scss +120 -0
  350. package/src/styles/components/select/_tokens.scss +35 -0
  351. package/src/styles/components/sidenav/_index.scss +14 -0
  352. package/src/styles/components/sidenav/_styles.scss +105 -0
  353. package/src/styles/components/sidenav/_tokens.scss +24 -0
  354. package/src/styles/components/slide-toggle/_index.scss +13 -0
  355. package/src/styles/components/slide-toggle/_styles.scss +86 -0
  356. package/src/styles/components/slide-toggle/_tokens.scss +24 -0
  357. package/src/styles/components/slider/_index.scss +13 -0
  358. package/src/styles/components/slider/_styles.scss +77 -0
  359. package/src/styles/components/slider/_tokens.scss +21 -0
  360. package/src/styles/components/snackbar/_index.scss +8 -0
  361. package/src/styles/components/snackbar/_styles.scss +59 -0
  362. package/src/styles/components/snackbar/_tokens.scss +28 -0
  363. package/src/styles/components/stepper/_index.scss +14 -0
  364. package/src/styles/components/stepper/_styles.scss +129 -0
  365. package/src/styles/components/stepper/_tokens.scss +44 -0
  366. package/src/styles/components/table/_index.scss +14 -0
  367. package/src/styles/components/table/_styles.scss +202 -0
  368. package/src/styles/components/table/_tokens.scss +47 -0
  369. package/src/styles/components/tabs/_index.scss +13 -0
  370. package/src/styles/components/tabs/_styles.scss +76 -0
  371. package/src/styles/components/tabs/_tokens.scss +28 -0
  372. package/src/styles/components/timepicker/_index.scss +9 -0
  373. package/src/styles/components/timepicker/_styles.scss +136 -0
  374. package/src/styles/components/timepicker/_tokens.scss +46 -0
  375. package/src/styles/components/toolbar/_index.scss +12 -0
  376. package/src/styles/components/toolbar/_styles.scss +41 -0
  377. package/src/styles/components/toolbar/_tokens.scss +17 -0
  378. package/src/styles/components/tooltip/_index.scss +8 -0
  379. package/src/styles/components/tooltip/_styles.scss +29 -0
  380. package/src/styles/components/tooltip/_tokens.scss +22 -0
  381. package/src/styles/components/tree/_index.scss +13 -0
  382. package/src/styles/components/tree/_styles.scss +99 -0
  383. package/src/styles/components/tree/_tokens.scss +38 -0
  384. package/src/styles/theme/_defaults.scss +50 -0
@@ -0,0 +1,24 @@
1
+ // radio — design tokens (schema). Forwarded by ./_index.scss.
2
+ @use '../../ref' as ref;
3
+
4
+ $tokens: (
5
+ color: (
6
+ border: ref.ref('color.line'),
7
+ background: transparent,
8
+ checked-border: ref.ref('color.accent'),
9
+ dot: ref.ref('color.accent'),
10
+ label-text: ref.ref('color.ink'),
11
+ disabled-text: ref.ref('color.sub'),
12
+ ),
13
+ size: (
14
+ size: 20px,
15
+ border-width: 1.5px,
16
+ dot-size: 8px,
17
+ gap: 8px,
18
+ group-gap: 12px,
19
+ duration: ref.ref('motion.fast'),
20
+ ),
21
+ typography: (
22
+ label-size: 13px,
23
+ ),
24
+ );
@@ -0,0 +1,8 @@
1
+ // Ripple — the click-feedback circle. Behavior lives in ripple.ts (a `use:` action);
2
+ // this is the visual (tokens + the injected `.weave-ripple` element + keyframes).
3
+ //
4
+ // Barrel — forwards the split partials ($tokens + the styles() mixin). Add another
5
+ // concern as its own file (e.g. _keyframes.scss) and @forward it here.
6
+
7
+ @forward 'tokens';
8
+ @forward 'styles';
@@ -0,0 +1,20 @@
1
+ // ripple — styles() mixin (class rules). Forwarded by ./_index.scss.
2
+
3
+ @mixin styles() {
4
+ @keyframes weave-ripple {
5
+ to {
6
+ transform: scale(var(--weave-ripple-scale));
7
+ opacity: 0;
8
+ }
9
+ }
10
+
11
+ .weave-ripple {
12
+ position: absolute;
13
+ border-radius: 50%;
14
+ background: currentColor;
15
+ opacity: var(--weave-ripple-opacity);
16
+ transform: scale(0);
17
+ pointer-events: none;
18
+ animation: weave-ripple var(--weave-ripple-duration) ease-out;
19
+ }
20
+ }
@@ -0,0 +1,12 @@
1
+ // ripple — design tokens (schema). Forwarded by ./_index.scss.
2
+ @use '../../ref' as ref;
3
+
4
+ $tokens: (
5
+ color: (
6
+ opacity: 0.22,
7
+ ),
8
+ size: (
9
+ duration: ref.ref('motion.ripple'),
10
+ scale: 4,
11
+ ),
12
+ );
@@ -0,0 +1,9 @@
1
+ // Select — a combobox/listbox form control. Behavior lives in select.ts (a Weave component:
2
+ // trigger field + CDK-overlay listbox panel, single/multiple, aria-activedescendant, the
3
+ // shared option model with subtext, forms binding); this is the visual: an underline trigger
4
+ // (like Input, with prefix/suffix/clear/chevron) + a listbox panel of option rows (label +
5
+ // optional lighter description) with hover/active/selected states.
6
+ //
7
+ // Barrel — forwards the split partials ($tokens + the styles() mixin).
8
+ @forward 'tokens';
9
+ @forward 'styles';
@@ -0,0 +1,120 @@
1
+ // select — styles() mixin. An underline trigger field (like Input) whose value/placeholder
2
+ // sits left and a chevron right; focus swaps the underline to accent. The listbox panel
3
+ // reuses the shared overlay-panel chrome; option rows carry a label + optional lighter
4
+ // description, with hover/active/selected states off classes (selection = a class, since the
5
+ // panel is portaled and there's no native pseudo). Forwarded by ./_index.scss.
6
+ @use '../../helpers' as helpers;
7
+
8
+ @mixin styles() {
9
+ .weave-select {
10
+ display: block;
11
+ }
12
+
13
+ .weave-select__field {
14
+ // THE shared Weave field underline (same helper as Input — one source, one look).
15
+ @include helpers.field-underline(var(--weave-select-border), var(--weave-select-focus), var(--weave-select-border-width));
16
+ display: flex;
17
+ align-items: center;
18
+ gap: var(--weave-select-gap);
19
+ padding: var(--weave-select-field-padding-y) 0;
20
+ color: var(--weave-select-text);
21
+ font-size: var(--weave-select-font-size);
22
+ font-weight: var(--weave-select-weight);
23
+ line-height: 1.4;
24
+ cursor: pointer;
25
+ }
26
+
27
+ .weave-select__value--placeholder {
28
+ color: var(--weave-select-placeholder);
29
+ }
30
+
31
+ .weave-select__spacer {
32
+ flex: 1 1 auto;
33
+ }
34
+
35
+ // A CSS down-caret.
36
+ .weave-select__chevron {
37
+ width: 0;
38
+ height: 0;
39
+ border-left: 4px solid transparent;
40
+ border-right: 4px solid transparent;
41
+ border-top: 5px solid var(--weave-select-chevron);
42
+ transition: transform var(--weave-select-duration) ease;
43
+ }
44
+
45
+ .weave-select__field[aria-expanded='true'] .weave-select__chevron {
46
+ transform: rotate(180deg);
47
+ }
48
+
49
+ // Empty prefix/suffix slots collapse (JS adds --empty), so the gap skips them.
50
+ .weave-select__prefix--empty,
51
+ .weave-select__suffix--empty {
52
+ display: none;
53
+ }
54
+
55
+ .weave-select__clear {
56
+ @include helpers.clear-button(var(--weave-select-placeholder), var(--weave-select-text));
57
+ }
58
+
59
+ .weave-select--disabled .weave-select__field {
60
+ color: var(--weave-select-disabled-text);
61
+ cursor: default;
62
+ }
63
+
64
+ .weave-select--invalid .weave-select__field {
65
+ border-bottom-color: var(--weave-select-error);
66
+ box-shadow: inset 0 -1px 0 0 var(--weave-select-error);
67
+ }
68
+
69
+ /* ── the listbox panel ── */
70
+ .weave-select__panel {
71
+ @include helpers.overlay-panel;
72
+ max-height: var(--weave-select-panel-max-height);
73
+ overflow-y: auto;
74
+ padding: 4px 0;
75
+ }
76
+
77
+ .weave-select__option {
78
+ position: relative;
79
+ display: flex;
80
+ flex-direction: column;
81
+ justify-content: center;
82
+ gap: 1px;
83
+ min-height: var(--weave-select-option-min-height);
84
+ padding: 5px calc(var(--weave-select-option-padding-x) + 16px) 5px var(--weave-select-option-padding-x);
85
+ color: var(--weave-select-text);
86
+ font-size: var(--weave-select-font-size);
87
+ cursor: pointer;
88
+ transition: background var(--weave-select-duration) ease;
89
+ }
90
+
91
+ .weave-select__option--active {
92
+ background: var(--weave-select-option-hover);
93
+ }
94
+
95
+ .weave-select__option--selected {
96
+ background: var(--weave-select-option-selected);
97
+ }
98
+
99
+ // The shared checkmark glyph on the selected option (single + multiple).
100
+ .weave-select__option--selected::after {
101
+ @include helpers.checkmark(var(--weave-select-option-mark));
102
+ position: absolute;
103
+ right: var(--weave-select-option-padding-x);
104
+ top: 50%;
105
+ margin-top: -6px;
106
+ transform: rotate(45deg);
107
+ }
108
+
109
+ .weave-select__option[aria-disabled='true'] {
110
+ color: var(--weave-select-disabled-text);
111
+ cursor: default;
112
+ }
113
+
114
+ .weave-select__description {
115
+ font-size: var(--weave-select-description-size);
116
+ font-weight: 400;
117
+ line-height: 1.3;
118
+ color: var(--weave-select-description);
119
+ }
120
+ }
@@ -0,0 +1,35 @@
1
+ // select — design tokens (schema). An underline trigger field (like Input) + a listbox
2
+ // panel (reusing the shared overlay-panel chrome). Forwarded by ./_index.scss.
3
+ @use '../../ref' as ref;
4
+
5
+ $tokens: (
6
+ color: (
7
+ text: ref.ref('color.ink'),
8
+ placeholder: ref.ref('color.sub'),
9
+ border: ref.ref('color.line'),
10
+ focus: ref.ref('color.accent'),
11
+ error: ref.ref('color.error'),
12
+ chevron: ref.ref('color.sub'),
13
+ disabled-text: ref.ref('color.sub'),
14
+ option-hover: ref.ref('color.field'),
15
+ // Selected-row tint (the design's accent+12%).
16
+ option-selected: color-mix(in srgb, ref.ref('color.accent') 12%, transparent),
17
+ option-mark: ref.ref('color.accent'),
18
+ description: ref.ref('color.sub'),
19
+ ),
20
+ size: (
21
+ gap: 8px,
22
+ field-padding-y: 6px,
23
+ border-width: 1.5px,
24
+ radius: ref.ref('shape.radius'),
25
+ panel-max-height: 280px,
26
+ option-min-height: 32px,
27
+ option-padding-x: 12px,
28
+ duration: ref.ref('motion.fast'),
29
+ ),
30
+ typography: (
31
+ font-size: 13px,
32
+ description-size: 11px,
33
+ weight: 500,
34
+ ),
35
+ );
@@ -0,0 +1,14 @@
1
+ // Sidenav — the responsive layout shell. Behavior lives in sidenav.ts (side/over/push
2
+ // modes, responsive breakpoint auto-mode, controlled/uncontrolled open state, focus-trap
3
+ // in over mode); this is the visual.
4
+ //
5
+ // A `__drawer` beside a `__content` (+ an `__backdrop` scrim), all driven by root modifier
6
+ // classes: --side (drawer in flow, pushes content) / --over (drawer floats over + backdrop) /
7
+ // --push (drawer floats + shifts content); --opened, --end (dock edge), --backdrop. No
8
+ // per-element state class — the open/mode state rides the root modifiers.
9
+ //
10
+ // Barrel — forwards the split partials ($tokens + the styles() mixin). Add another concern
11
+ // as its own file and @forward it here.
12
+
13
+ @forward 'tokens';
14
+ @forward 'styles';
@@ -0,0 +1,105 @@
1
+ // sidenav — styles() mixin (class rules). A layout shell driven entirely by root modifier
2
+ // classes (--side/--over/--push, --opened, --end, --backdrop) — no per-element state. The
3
+ // drawer is in-flow (side, pushes content) or absolute (over/push, floats). Forwarded by
4
+ // ./_index.scss.
5
+
6
+ @mixin styles() {
7
+ .weave-sidenav {
8
+ position: relative;
9
+ display: flex;
10
+ overflow: hidden; // clip the off-canvas drawer when closed
11
+ }
12
+
13
+ .weave-sidenav__drawer {
14
+ box-sizing: border-box;
15
+ width: var(--weave-sidenav-width);
16
+ background: var(--weave-sidenav-drawer-background);
17
+ border-right: 1px solid var(--weave-sidenav-drawer-line);
18
+ overflow: auto;
19
+ transition:
20
+ transform var(--weave-sidenav-duration) ease,
21
+ margin var(--weave-sidenav-duration) ease;
22
+ }
23
+
24
+ .weave-sidenav__content {
25
+ flex: 1 1 auto;
26
+ min-width: 0;
27
+ overflow: auto;
28
+ transition: margin var(--weave-sidenav-duration) ease;
29
+ }
30
+
31
+ // Dimming scrim — present but inert until `over` + opened toggles `--backdrop` on the root.
32
+ .weave-sidenav__backdrop {
33
+ position: absolute;
34
+ inset: 0;
35
+ z-index: var(--weave-sidenav-backdrop-z);
36
+ background: var(--weave-sidenav-backdrop);
37
+ opacity: 0;
38
+ pointer-events: none;
39
+ transition: opacity var(--weave-sidenav-duration) ease;
40
+ }
41
+
42
+ .weave-sidenav--backdrop .weave-sidenav__backdrop {
43
+ opacity: 1;
44
+ pointer-events: auto;
45
+ }
46
+
47
+ /* ── side: drawer is in flow and pushes the content ── */
48
+ .weave-sidenav--side .weave-sidenav__drawer {
49
+ flex: 0 0 var(--weave-sidenav-width);
50
+ }
51
+
52
+ // Closed side drawer slides out and yields its space (negative margin, not transform).
53
+ .weave-sidenav--side:not(.weave-sidenav--opened) .weave-sidenav__drawer {
54
+ margin-inline-start: calc(-1 * var(--weave-sidenav-width));
55
+ }
56
+
57
+ /* ── over / push: drawer floats over the content ── */
58
+ .weave-sidenav--over .weave-sidenav__drawer,
59
+ .weave-sidenav--push .weave-sidenav__drawer {
60
+ position: absolute;
61
+ inset-block: 0;
62
+ inset-inline-start: 0;
63
+ z-index: var(--weave-sidenav-drawer-z);
64
+ transform: translateX(-100%); // off-canvas when closed
65
+ }
66
+
67
+ .weave-sidenav--over.weave-sidenav--opened .weave-sidenav__drawer,
68
+ .weave-sidenav--push.weave-sidenav--opened .weave-sidenav__drawer {
69
+ transform: translateX(0);
70
+ }
71
+
72
+ // push additionally shifts the content over by the drawer width when open.
73
+ .weave-sidenav--push.weave-sidenav--opened .weave-sidenav__content {
74
+ margin-inline-start: var(--weave-sidenav-width);
75
+ }
76
+
77
+ /* ── end position: drawer docks to the inline-end edge ── */
78
+ .weave-sidenav--end .weave-sidenav__drawer {
79
+ order: 2;
80
+ border-right: 0;
81
+ border-left: 1px solid var(--weave-sidenav-drawer-line);
82
+ }
83
+
84
+ .weave-sidenav--end.weave-sidenav--side:not(.weave-sidenav--opened) .weave-sidenav__drawer {
85
+ margin-inline-start: 0;
86
+ margin-inline-end: calc(-1 * var(--weave-sidenav-width));
87
+ }
88
+
89
+ .weave-sidenav--end.weave-sidenav--over .weave-sidenav__drawer,
90
+ .weave-sidenav--end.weave-sidenav--push .weave-sidenav__drawer {
91
+ inset-inline-start: auto;
92
+ inset-inline-end: 0;
93
+ transform: translateX(100%);
94
+ }
95
+
96
+ .weave-sidenav--end.weave-sidenav--over.weave-sidenav--opened .weave-sidenav__drawer,
97
+ .weave-sidenav--end.weave-sidenav--push.weave-sidenav--opened .weave-sidenav__drawer {
98
+ transform: translateX(0);
99
+ }
100
+
101
+ .weave-sidenav--end.weave-sidenav--push.weave-sidenav--opened .weave-sidenav__content {
102
+ margin-inline-start: 0;
103
+ margin-inline-end: var(--weave-sidenav-width);
104
+ }
105
+ }
@@ -0,0 +1,24 @@
1
+ // sidenav — design tokens (schema). A layout shell: a drawer beside content, with side/over/
2
+ // push modes. The `over` backdrop reuses the shared U3 overlay scrim tone. Forwarded by
3
+ // ./_index.scss.
4
+ @use '../../ref' as ref;
5
+
6
+ $tokens: (
7
+ color: (
8
+ drawer-background: ref.ref('color.surface'),
9
+ // Hairline between the drawer and the content (design: separate surfaces with a 1px line).
10
+ drawer-line: ref.ref('color.line'),
11
+ // Modal dimming scrim in `over` mode — reuse the shared overlay republic's tone so every
12
+ // scrim in the library reads identically (override via overlay-overrides((backdrop: …))).
13
+ backdrop: var(--weave-overlay-backdrop),
14
+ ),
15
+ size: (
16
+ // Drawer width (design: ~230px off-canvas / 200px sticky — one token, consumer overrides).
17
+ width: 230px,
18
+ // Slide/push transition — reuse the sheet motion (a drawer slides like a bottom sheet).
19
+ duration: ref.ref('motion.sheet'),
20
+ // The over/push drawer stacks above the backdrop, which stacks above the content.
21
+ backdrop-z: 1,
22
+ drawer-z: 2,
23
+ ),
24
+ );
@@ -0,0 +1,13 @@
1
+ // Slide Toggle — a native `<input type=checkbox>` presented as a switch. Behavior lives
2
+ // in slide-toggle.ts (two-way value + forms control binding; role=switch); this is the
3
+ // visual.
4
+ //
5
+ // A 42×24 track (`field`→accent) with an 18px knob (`__track::after`) that slides across
6
+ // `.16s` when on. State is the NATIVE input pseudo (`:checked` / `:focus-visible` /
7
+ // `:disabled`), read off the visually-hidden input by the adjacent `__track` — no classes.
8
+ //
9
+ // Barrel — forwards the split partials ($tokens + the styles() mixin). Add another
10
+ // concern as its own file and @forward it here.
11
+
12
+ @forward 'tokens';
13
+ @forward 'styles';
@@ -0,0 +1,86 @@
1
+ // slide-toggle — styles() mixin (class rules). Forwarded by ./_index.scss.
2
+ @use '../../helpers' as helpers;
3
+
4
+ @mixin styles() {
5
+ .weave-slide-toggle {
6
+ position: relative;
7
+ display: inline-flex;
8
+ align-items: center;
9
+ gap: var(--weave-slide-toggle-gap);
10
+ cursor: pointer;
11
+
12
+ @content;
13
+ }
14
+
15
+ .weave-slide-toggle__input {
16
+ position: absolute;
17
+ inset: 0;
18
+ width: 100%;
19
+ height: 100%;
20
+ margin: 0;
21
+ opacity: 0;
22
+ cursor: inherit;
23
+ }
24
+
25
+ .weave-slide-toggle__track {
26
+ position: relative;
27
+ flex: none;
28
+ box-sizing: border-box;
29
+ width: var(--weave-slide-toggle-track-width);
30
+ height: var(--weave-slide-toggle-track-height);
31
+ border-radius: var(--weave-slide-toggle-radius);
32
+ background: var(--weave-slide-toggle-track-off);
33
+ transition: background var(--weave-slide-toggle-duration) ease;
34
+ }
35
+
36
+ /* The knob — slides across when on. */
37
+ .weave-slide-toggle__track::after {
38
+ content: '';
39
+ position: absolute;
40
+ top: var(--weave-slide-toggle-knob-inset);
41
+ left: var(--weave-slide-toggle-knob-inset);
42
+ width: var(--weave-slide-toggle-knob-size);
43
+ height: var(--weave-slide-toggle-knob-size);
44
+ border-radius: var(--weave-slide-toggle-knob-radius);
45
+ background: var(--weave-slide-toggle-knob-off);
46
+ transition:
47
+ transform var(--weave-slide-toggle-duration) ease,
48
+ background var(--weave-slide-toggle-duration) ease;
49
+ }
50
+
51
+ .weave-slide-toggle__label {
52
+ font-size: var(--weave-slide-toggle-label-size);
53
+ color: var(--weave-slide-toggle-label-text);
54
+ }
55
+
56
+ /* On — accent track + white knob slid to the far side. */
57
+ .weave-slide-toggle__input:checked + .weave-slide-toggle__track {
58
+ background: var(--weave-slide-toggle-track-on);
59
+ }
60
+
61
+ .weave-slide-toggle__input:checked + .weave-slide-toggle__track::after {
62
+ transform: translateX(
63
+ calc(
64
+ var(--weave-slide-toggle-track-width) - var(--weave-slide-toggle-knob-size) - 2 *
65
+ var(--weave-slide-toggle-knob-inset)
66
+ )
67
+ );
68
+ background: var(--weave-slide-toggle-knob-on);
69
+ }
70
+
71
+ .weave-slide-toggle__input:focus-visible + .weave-slide-toggle__track {
72
+ @include helpers.focus-ring;
73
+ }
74
+
75
+ .weave-slide-toggle__input:disabled {
76
+ cursor: not-allowed;
77
+ }
78
+
79
+ .weave-slide-toggle__input:disabled + .weave-slide-toggle__track {
80
+ opacity: 0.5;
81
+ }
82
+
83
+ .weave-slide-toggle__input:disabled ~ .weave-slide-toggle__label {
84
+ color: var(--weave-slide-toggle-disabled-text);
85
+ }
86
+ }
@@ -0,0 +1,24 @@
1
+ // slide-toggle — design tokens (schema). Forwarded by ./_index.scss.
2
+ @use '../../ref' as ref;
3
+
4
+ $tokens: (
5
+ color: (
6
+ track-off: ref.ref('color.field'),
7
+ track-on: ref.ref('color.accent'),
8
+ knob-off: ref.ref('color.ink'),
9
+ // On-accent knob: a fixed white (accent is dark in Light + Dim).
10
+ knob-on: #fff,
11
+ label-text: ref.ref('color.ink'),
12
+ disabled-text: ref.ref('color.sub'),
13
+ ),
14
+ size: (
15
+ track-width: 42px,
16
+ track-height: 24px,
17
+ knob-size: 18px,
18
+ knob-inset: 3px,
19
+ radius: 3px,
20
+ knob-radius: 2px,
21
+ gap: 8px,
22
+ duration: 0.16s,
23
+ ),
24
+ );
@@ -0,0 +1,13 @@
1
+ // Slider — a value over a range. Behavior lives in slider.ts (custom role=slider:
2
+ // pointer-capture drag + Arrow/Home/End/Page keys + forms/signals binding); this is the
3
+ // visual.
4
+ //
5
+ // A 2px --field track with an accent fill to the value; the thumb is a 3×18 ink bar
6
+ // (positioned by an inline left:%) with a 5px accent cap (the Weave mark). State via
7
+ // modifiers: --disabled dims + not-allowed, --invalid reddens the fill/cap.
8
+ //
9
+ // Barrel — forwards the split partials ($tokens + the styles() mixin). Add another
10
+ // concern as its own file and @forward it here.
11
+
12
+ @forward 'tokens';
13
+ @forward 'styles';
@@ -0,0 +1,77 @@
1
+ // slider — styles() mixin (class rules). Forwarded by ./_index.scss.
2
+ @use '../../helpers' as helpers;
3
+
4
+ @mixin styles() {
5
+ .weave-slider {
6
+ position: relative;
7
+ display: flex;
8
+ align-items: center;
9
+ height: var(--weave-slider-height);
10
+ cursor: pointer;
11
+ touch-action: none; // let a pointer drag control the value, not scroll the page
12
+ user-select: none;
13
+
14
+ @content;
15
+ }
16
+
17
+ // 2px track (design).
18
+ .weave-slider__track {
19
+ position: relative;
20
+ width: 100%;
21
+ height: var(--weave-slider-track-height);
22
+ background: var(--weave-slider-track);
23
+ border-radius: calc(var(--weave-slider-track-height) / 2);
24
+ }
25
+
26
+ // Accent fill to the value (width set inline).
27
+ .weave-slider__fill {
28
+ position: absolute;
29
+ inset: 0 auto 0 0;
30
+ height: 100%;
31
+ background: var(--weave-slider-fill);
32
+ border-radius: inherit;
33
+ }
34
+
35
+ // Thumb = a 3×18 ink bar (positioned by an inline left:%), centred on the value.
36
+ .weave-slider__thumb {
37
+ position: absolute;
38
+ top: 50%;
39
+ width: var(--weave-slider-thumb-width);
40
+ height: var(--weave-slider-thumb-height);
41
+ background: var(--weave-slider-thumb);
42
+ transform: translate(-50%, -50%);
43
+ }
44
+
45
+ // …with a 5px accent cap on top (the Weave mark).
46
+ .weave-slider__thumb::after {
47
+ content: '';
48
+ position: absolute;
49
+ top: calc(var(--weave-slider-cap-size) / -2);
50
+ left: 50%;
51
+ width: var(--weave-slider-cap-size);
52
+ height: var(--weave-slider-cap-size);
53
+ background: var(--weave-slider-cap);
54
+ transform: translateX(-50%);
55
+ }
56
+
57
+ // Focus shows on the thumb (a small ring around the handle), not a box around the whole
58
+ // track — the conventional slider focus indicator.
59
+ .weave-slider:focus-visible {
60
+ outline: none;
61
+ }
62
+
63
+ .weave-slider:focus-visible .weave-slider__thumb {
64
+ @include helpers.focus-ring;
65
+ }
66
+
67
+ // Invalid — the fill + cap redden (state via the --invalid modifier from the control).
68
+ .weave-slider--invalid .weave-slider__fill,
69
+ .weave-slider--invalid .weave-slider__thumb::after {
70
+ background: var(--weave-slider-error);
71
+ }
72
+
73
+ .weave-slider--disabled {
74
+ cursor: not-allowed;
75
+ opacity: 0.5;
76
+ }
77
+ }
@@ -0,0 +1,21 @@
1
+ // slider — design tokens (schema). Forwarded by ./_index.scss.
2
+ @use '../../ref' as ref;
3
+
4
+ $tokens: (
5
+ color: (
6
+ // 2px --field track, accent fill; thumb = an ink bar with a 5px accent cap (design).
7
+ track: ref.ref('color.field'),
8
+ fill: ref.ref('color.accent'),
9
+ thumb: ref.ref('color.ink'),
10
+ cap: ref.ref('color.accent'),
11
+ error: ref.ref('color.error'),
12
+ ),
13
+ size: (
14
+ height: 18px,
15
+ track-height: 2px,
16
+ thumb-width: 3px,
17
+ thumb-height: 18px,
18
+ cap-size: 5px,
19
+ duration: ref.ref('motion.fast'),
20
+ ),
21
+ );
@@ -0,0 +1,8 @@
1
+ // Snackbar — a brief bottom toast. Behavior lives in snackbar.ts (snackbar(msg, opts) →
2
+ // SnackbarRef; a bottom CDK overlay with no backdrop, auto-dismiss paused on hover/focus,
3
+ // an optional action, live-announcer for SR, one-at-a-time queue); this is the visual: an
4
+ // inverted (ink) bar inset from the bottom edge, sliding up, with an accent action button.
5
+ //
6
+ // Barrel — forwards the split partials ($tokens + the styles() mixin).
7
+ @forward 'tokens';
8
+ @forward 'styles';