@pg-labs-incubator/cobweb 0.0.0-stage → 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (320) hide show
  1. package/LICENSE +163 -0
  2. package/README.md +82 -2
  3. package/package.json +111 -3
  4. package/src/action/action.yaml +291 -0
  5. package/src/action/button-group.yaml +56 -0
  6. package/src/action/button.yaml +239 -0
  7. package/src/action/split-button.yaml +87 -0
  8. package/src/color/color.yaml +181 -0
  9. package/src/color/palette.yaml +147 -0
  10. package/src/container/card.yaml +170 -0
  11. package/src/container/corner-radius.yaml +50 -0
  12. package/src/container/elevation.yaml +19 -0
  13. package/src/design.yaml +41 -0
  14. package/src/feedback/feedback.yaml +225 -0
  15. package/src/icon/icon-font.yaml +28 -0
  16. package/src/icon/icon.yaml +31 -0
  17. package/src/input/date-picker.yaml +144 -0
  18. package/src/input/date-range-input.yaml +162 -0
  19. package/src/input/range-slider.yaml +161 -0
  20. package/src/input/select.yaml +230 -0
  21. package/src/input/slider.yaml +172 -0
  22. package/src/input/text-field.yaml +240 -0
  23. package/src/input/time-picker.yaml +220 -0
  24. package/src/motion/motion.yaml +371 -0
  25. package/src/navigation/app-bar.yaml +147 -0
  26. package/src/navigation/navigation.yaml +339 -0
  27. package/src/navigation/scroll.yaml +23 -0
  28. package/src/navigation/search.yaml +112 -0
  29. package/src/navigation/tabs.yaml +144 -0
  30. package/src/navigation/toolbar.yaml +130 -0
  31. package/src/selection/checkbox.yaml +162 -0
  32. package/src/selection/chip.yaml +219 -0
  33. package/src/selection/radio.yaml +125 -0
  34. package/src/selection/segmented-group.yaml +11 -0
  35. package/src/selection/segmented.yaml +69 -0
  36. package/src/selection/switch.yaml +209 -0
  37. package/src/spacing/measurement.yaml +80 -0
  38. package/src/state/state.yaml +38 -0
  39. package/src/surface/surface.yaml +483 -0
  40. package/src/text/line-height.yaml +144 -0
  41. package/src/text/typeface.yaml +31 -0
  42. package/src/text/typescale.yaml +726 -0
  43. package/target/esbuild/action/action.css +1 -0
  44. package/target/esbuild/action/base.jsx +1 -0
  45. package/target/esbuild/action/button.jsx +17 -0
  46. package/target/esbuild/action/fab-menu-context.jsx +1 -0
  47. package/target/esbuild/action/fab-menu.jsx +15 -0
  48. package/target/esbuild/action/fab.jsx +7 -0
  49. package/target/esbuild/action/group.jsx +22 -0
  50. package/target/esbuild/action/icon-button.jsx +5 -0
  51. package/target/esbuild/action/index.jsx +1 -0
  52. package/target/esbuild/action/split-button.jsx +12 -0
  53. package/target/esbuild/color/contrast.jsx +1 -0
  54. package/target/esbuild/color/dynamic.jsx +1 -0
  55. package/target/esbuild/color/hct.jsx +1 -0
  56. package/target/esbuild/color/index.css +1 -0
  57. package/target/esbuild/color/index.jsx +1 -0
  58. package/target/esbuild/color/palette.jsx +1 -0
  59. package/target/esbuild/color/scheme.jsx +1 -0
  60. package/target/esbuild/color/temperature.jsx +1 -0
  61. package/target/esbuild/container/card.css +1 -0
  62. package/target/esbuild/container/card.jsx +1 -0
  63. package/target/esbuild/container/elevation-shadow.css +1 -0
  64. package/target/esbuild/container/elevation-shadow.jsx +1 -0
  65. package/target/esbuild/container/index.jsx +1 -0
  66. package/target/esbuild/dom/client.jsx +1 -0
  67. package/target/esbuild/dom/index.jsx +1 -0
  68. package/target/esbuild/dom/server.jsx +1 -0
  69. package/target/esbuild/dom/types.jsx +1 -0
  70. package/target/esbuild/feedback/badge.jsx +15 -0
  71. package/target/esbuild/feedback/feedback.css +1 -0
  72. package/target/esbuild/feedback/focus.jsx +1 -0
  73. package/target/esbuild/feedback/index.jsx +1 -0
  74. package/target/esbuild/feedback/loading.jsx +7 -0
  75. package/target/esbuild/feedback/observe.jsx +1 -0
  76. package/target/esbuild/feedback/progress.jsx +35 -0
  77. package/target/esbuild/feedback/snackbar.jsx +23 -0
  78. package/target/esbuild/feedback/tooltip.jsx +24 -0
  79. package/target/esbuild/icon/icon.css +1 -0
  80. package/target/esbuild/icon/icon.jsx +1 -0
  81. package/target/esbuild/icon/index.jsx +1 -0
  82. package/target/esbuild/index.css +1 -0
  83. package/target/esbuild/index.jsx +1 -0
  84. package/target/esbuild/input/autocomplete.jsx +5 -0
  85. package/target/esbuild/input/base.jsx +4 -0
  86. package/target/esbuild/input/date-picker.css +1 -0
  87. package/target/esbuild/input/date-picker.jsx +104 -0
  88. package/target/esbuild/input/date-range-input.css +1 -0
  89. package/target/esbuild/input/date-time.jsx +21 -0
  90. package/target/esbuild/input/index.css +1 -0
  91. package/target/esbuild/input/index.jsx +1 -0
  92. package/target/esbuild/input/paired-input.jsx +1 -0
  93. package/target/esbuild/input/picker-dialog.css +1 -0
  94. package/target/esbuild/input/picker-dialog.jsx +14 -0
  95. package/target/esbuild/input/select.css +1 -0
  96. package/target/esbuild/input/select.jsx +63 -0
  97. package/target/esbuild/input/slider.css +1 -0
  98. package/target/esbuild/input/slider.jsx +51 -0
  99. package/target/esbuild/input/text-field.css +1 -0
  100. package/target/esbuild/input/text-field.jsx +67 -0
  101. package/target/esbuild/input/time-picker.css +1 -0
  102. package/target/esbuild/input/time-picker.jsx +29 -0
  103. package/target/esbuild/motion/frame.jsx +1 -0
  104. package/target/esbuild/motion/index.css +1 -0
  105. package/target/esbuild/motion/index.jsx +1 -0
  106. package/target/esbuild/motion/material.jsx +1 -0
  107. package/target/esbuild/motion/motion.jsx +1 -0
  108. package/target/esbuild/motion/spring.jsx +1 -0
  109. package/target/esbuild/motion/transition.css +1 -0
  110. package/target/esbuild/motion/transition.jsx +1 -0
  111. package/target/esbuild/motion/velocity.jsx +1 -0
  112. package/target/esbuild/navigation/app-bar.jsx +51 -0
  113. package/target/esbuild/navigation/base.jsx +1 -0
  114. package/target/esbuild/navigation/drawer.jsx +25 -0
  115. package/target/esbuild/navigation/index.jsx +1 -0
  116. package/target/esbuild/navigation/navigation.css +1 -0
  117. package/target/esbuild/navigation/navigation.jsx +29 -0
  118. package/target/esbuild/navigation/scroll.jsx +1 -0
  119. package/target/esbuild/navigation/search.jsx +29 -0
  120. package/target/esbuild/navigation/tabs.jsx +7 -0
  121. package/target/esbuild/navigation/toolbar.jsx +23 -0
  122. package/target/esbuild/selection/base.jsx +1 -0
  123. package/target/esbuild/selection/checkbox.jsx +14 -0
  124. package/target/esbuild/selection/chip.jsx +23 -0
  125. package/target/esbuild/selection/index.jsx +1 -0
  126. package/target/esbuild/selection/radio.jsx +9 -0
  127. package/target/esbuild/selection/segmented.jsx +15 -0
  128. package/target/esbuild/selection/selection.css +1 -0
  129. package/target/esbuild/selection/switch.jsx +14 -0
  130. package/target/esbuild/shape/corner-rounding.jsx +1 -0
  131. package/target/esbuild/shape/cubic.jsx +1 -0
  132. package/target/esbuild/shape/index.jsx +1 -0
  133. package/target/esbuild/shape/material-shapes.jsx +1 -0
  134. package/target/esbuild/shape/morph.jsx +1 -0
  135. package/target/esbuild/shape/path.jsx +1 -0
  136. package/target/esbuild/shape/point.jsx +1 -0
  137. package/target/esbuild/shape/rounded-polygon.jsx +1 -0
  138. package/target/esbuild/shape/shapes.jsx +1 -0
  139. package/target/esbuild/spacing/index.jsx +1 -0
  140. package/target/esbuild/state/component.css +1 -0
  141. package/target/esbuild/state/component.jsx +1 -0
  142. package/target/esbuild/state/controller.jsx +1 -0
  143. package/target/esbuild/state/index.jsx +1 -0
  144. package/target/esbuild/state/ripple.jsx +1 -0
  145. package/target/esbuild/state/state.jsx +1 -0
  146. package/target/esbuild/state/style.jsx +1 -0
  147. package/target/esbuild/surface/carousel-layout.jsx +1 -0
  148. package/target/esbuild/surface/carousel.css +1 -0
  149. package/target/esbuild/surface/carousel.jsx +10 -0
  150. package/target/esbuild/surface/dialog.jsx +35 -0
  151. package/target/esbuild/surface/divider.jsx +1 -0
  152. package/target/esbuild/surface/drag.jsx +1 -0
  153. package/target/esbuild/surface/gestures.css +1 -0
  154. package/target/esbuild/surface/gestures.jsx +7 -0
  155. package/target/esbuild/surface/index.css +1 -0
  156. package/target/esbuild/surface/index.jsx +1 -0
  157. package/target/esbuild/surface/interactive.jsx +1 -0
  158. package/target/esbuild/surface/list-patterns.jsx +26 -0
  159. package/target/esbuild/surface/list.css +1 -0
  160. package/target/esbuild/surface/list.jsx +9 -0
  161. package/target/esbuild/surface/menu.css +1 -0
  162. package/target/esbuild/surface/menu.jsx +12 -0
  163. package/target/esbuild/surface/scaffold.jsx +47 -0
  164. package/target/esbuild/surface/sheet.jsx +21 -0
  165. package/target/esbuild/surface/side-sheet.jsx +17 -0
  166. package/target/esbuild/surface/slots.jsx +1 -0
  167. package/target/esbuild/surface/surface.css +1 -0
  168. package/target/esbuild/surface/surface.jsx +1 -0
  169. package/target/esbuild/text/index.css +1 -0
  170. package/target/esbuild/text/index.jsx +1 -0
  171. package/target/esbuild/text/text.css +1 -0
  172. package/target/esbuild/text/text.jsx +3 -0
  173. package/target/esbuild/text/typography.css +1 -0
  174. package/target/esbuild/text/typography.jsx +1 -0
  175. package/target/esbuild/util/box-side.jsx +1 -0
  176. package/target/esbuild/util/debug.jsx +1 -0
  177. package/target/esbuild/util/dom.jsx +1 -0
  178. package/target/esbuild/util/event.jsx +1 -0
  179. package/target/esbuild/util/index.jsx +1 -0
  180. package/target/esbuild/util/preconditions.jsx +1 -0
  181. package/target/esbuild/util/reactive.jsx +1 -0
  182. package/target/tsc/action/action.css.d.ts +3 -0
  183. package/target/tsc/action/base.d.ts +211 -0
  184. package/target/tsc/action/button.d.ts +126 -0
  185. package/target/tsc/action/fab-menu-context.d.ts +16 -0
  186. package/target/tsc/action/fab-menu.d.ts +112 -0
  187. package/target/tsc/action/fab.d.ts +98 -0
  188. package/target/tsc/action/group.d.ts +166 -0
  189. package/target/tsc/action/icon-button.d.ts +79 -0
  190. package/target/tsc/action/index.d.ts +24 -0
  191. package/target/tsc/action/split-button.d.ts +78 -0
  192. package/target/tsc/color/contrast.d.ts +48 -0
  193. package/target/tsc/color/dynamic.d.ts +203 -0
  194. package/target/tsc/color/hct.d.ts +114 -0
  195. package/target/tsc/color/index.css.d.ts +3 -0
  196. package/target/tsc/color/index.d.ts +23 -0
  197. package/target/tsc/color/palette.d.ts +30 -0
  198. package/target/tsc/color/scheme.d.ts +446 -0
  199. package/target/tsc/color/temperature.d.ts +24 -0
  200. package/target/tsc/container/card.css.d.ts +3 -0
  201. package/target/tsc/container/card.d.ts +110 -0
  202. package/target/tsc/container/elevation-shadow.css.d.ts +3 -0
  203. package/target/tsc/container/elevation-shadow.d.ts +23 -0
  204. package/target/tsc/container/index.d.ts +44 -0
  205. package/target/tsc/dom/client.d.ts +387 -0
  206. package/target/tsc/dom/index.d.ts +93 -0
  207. package/target/tsc/dom/server.d.ts +65 -0
  208. package/target/tsc/dom/types.d.ts +134 -0
  209. package/target/tsc/feedback/badge.d.ts +116 -0
  210. package/target/tsc/feedback/feedback.css.d.ts +3 -0
  211. package/target/tsc/feedback/focus.d.ts +20 -0
  212. package/target/tsc/feedback/index.d.ts +17 -0
  213. package/target/tsc/feedback/loading.d.ts +194 -0
  214. package/target/tsc/feedback/observe.d.ts +75 -0
  215. package/target/tsc/feedback/progress.d.ts +281 -0
  216. package/target/tsc/feedback/snackbar.d.ts +398 -0
  217. package/target/tsc/feedback/tooltip.d.ts +326 -0
  218. package/target/tsc/icon/icon.css.d.ts +3 -0
  219. package/target/tsc/icon/icon.d.ts +69 -0
  220. package/target/tsc/icon/index.d.ts +13 -0
  221. package/target/tsc/index.css.d.ts +3 -0
  222. package/target/tsc/index.d.ts +7 -0
  223. package/target/tsc/input/autocomplete.d.ts +119 -0
  224. package/target/tsc/input/base.d.ts +282 -0
  225. package/target/tsc/input/date-picker.css.d.ts +3 -0
  226. package/target/tsc/input/date-picker.d.ts +351 -0
  227. package/target/tsc/input/date-range-input.css.d.ts +3 -0
  228. package/target/tsc/input/date-time.d.ts +171 -0
  229. package/target/tsc/input/index.css.d.ts +3 -0
  230. package/target/tsc/input/index.d.ts +27 -0
  231. package/target/tsc/input/paired-input.d.ts +435 -0
  232. package/target/tsc/input/picker-dialog.css.d.ts +3 -0
  233. package/target/tsc/input/picker-dialog.d.ts +84 -0
  234. package/target/tsc/input/select.css.d.ts +3 -0
  235. package/target/tsc/input/select.d.ts +267 -0
  236. package/target/tsc/input/slider.css.d.ts +3 -0
  237. package/target/tsc/input/slider.d.ts +372 -0
  238. package/target/tsc/input/text-field.css.d.ts +3 -0
  239. package/target/tsc/input/text-field.d.ts +415 -0
  240. package/target/tsc/input/time-picker.css.d.ts +3 -0
  241. package/target/tsc/input/time-picker.d.ts +212 -0
  242. package/target/tsc/motion/frame.d.ts +36 -0
  243. package/target/tsc/motion/index.css.d.ts +3 -0
  244. package/target/tsc/motion/index.d.ts +34 -0
  245. package/target/tsc/motion/material.d.ts +110 -0
  246. package/target/tsc/motion/motion.d.ts +235 -0
  247. package/target/tsc/motion/spring.d.ts +223 -0
  248. package/target/tsc/motion/transition.css.d.ts +3 -0
  249. package/target/tsc/motion/transition.d.ts +597 -0
  250. package/target/tsc/motion/velocity.d.ts +54 -0
  251. package/target/tsc/navigation/app-bar.d.ts +473 -0
  252. package/target/tsc/navigation/base.d.ts +320 -0
  253. package/target/tsc/navigation/drawer.d.ts +301 -0
  254. package/target/tsc/navigation/index.d.ts +25 -0
  255. package/target/tsc/navigation/navigation.css.d.ts +3 -0
  256. package/target/tsc/navigation/navigation.d.ts +537 -0
  257. package/target/tsc/navigation/scroll.d.ts +218 -0
  258. package/target/tsc/navigation/search.d.ts +332 -0
  259. package/target/tsc/navigation/tabs.d.ts +497 -0
  260. package/target/tsc/navigation/toolbar.d.ts +248 -0
  261. package/target/tsc/selection/base.d.ts +100 -0
  262. package/target/tsc/selection/checkbox.d.ts +194 -0
  263. package/target/tsc/selection/chip.d.ts +358 -0
  264. package/target/tsc/selection/index.d.ts +21 -0
  265. package/target/tsc/selection/radio.d.ts +198 -0
  266. package/target/tsc/selection/segmented.d.ts +333 -0
  267. package/target/tsc/selection/selection.css.d.ts +3 -0
  268. package/target/tsc/selection/switch.d.ts +165 -0
  269. package/target/tsc/shape/corner-rounding.d.ts +36 -0
  270. package/target/tsc/shape/cubic.d.ts +215 -0
  271. package/target/tsc/shape/index.d.ts +35 -0
  272. package/target/tsc/shape/material-shapes.d.ts +176 -0
  273. package/target/tsc/shape/morph.d.ts +91 -0
  274. package/target/tsc/shape/path.d.ts +177 -0
  275. package/target/tsc/shape/point.d.ts +165 -0
  276. package/target/tsc/shape/rounded-polygon.d.ts +289 -0
  277. package/target/tsc/shape/shapes.d.ts +76 -0
  278. package/target/tsc/spacing/index.d.ts +19 -0
  279. package/target/tsc/state/component.css.d.ts +3 -0
  280. package/target/tsc/state/component.d.ts +276 -0
  281. package/target/tsc/state/controller.d.ts +257 -0
  282. package/target/tsc/state/index.d.ts +19 -0
  283. package/target/tsc/state/ripple.d.ts +50 -0
  284. package/target/tsc/state/state.d.ts +129 -0
  285. package/target/tsc/state/style.d.ts +22 -0
  286. package/target/tsc/surface/carousel-layout.d.ts +212 -0
  287. package/target/tsc/surface/carousel.css.d.ts +3 -0
  288. package/target/tsc/surface/carousel.d.ts +231 -0
  289. package/target/tsc/surface/dialog.d.ts +580 -0
  290. package/target/tsc/surface/divider.d.ts +92 -0
  291. package/target/tsc/surface/drag.d.ts +92 -0
  292. package/target/tsc/surface/gestures.css.d.ts +3 -0
  293. package/target/tsc/surface/gestures.d.ts +292 -0
  294. package/target/tsc/surface/index.css.d.ts +3 -0
  295. package/target/tsc/surface/index.d.ts +29 -0
  296. package/target/tsc/surface/interactive.d.ts +22 -0
  297. package/target/tsc/surface/list-patterns.d.ts +384 -0
  298. package/target/tsc/surface/list.css.d.ts +3 -0
  299. package/target/tsc/surface/list.d.ts +340 -0
  300. package/target/tsc/surface/menu.css.d.ts +3 -0
  301. package/target/tsc/surface/menu.d.ts +590 -0
  302. package/target/tsc/surface/scaffold.d.ts +337 -0
  303. package/target/tsc/surface/sheet.d.ts +384 -0
  304. package/target/tsc/surface/side-sheet.d.ts +183 -0
  305. package/target/tsc/surface/slots.d.ts +21 -0
  306. package/target/tsc/surface/surface.css.d.ts +3 -0
  307. package/target/tsc/surface/surface.d.ts +192 -0
  308. package/target/tsc/text/index.css.d.ts +3 -0
  309. package/target/tsc/text/index.d.ts +18 -0
  310. package/target/tsc/text/text.css.d.ts +3 -0
  311. package/target/tsc/text/text.d.ts +94 -0
  312. package/target/tsc/text/typography.css.d.ts +3 -0
  313. package/target/tsc/text/typography.d.ts +82 -0
  314. package/target/tsc/util/box-side.d.ts +76 -0
  315. package/target/tsc/util/debug.d.ts +20 -0
  316. package/target/tsc/util/dom.d.ts +35 -0
  317. package/target/tsc/util/event.d.ts +93 -0
  318. package/target/tsc/util/index.d.ts +12 -0
  319. package/target/tsc/util/preconditions.d.ts +79 -0
  320. package/target/tsc/util/reactive.d.ts +36 -0
@@ -0,0 +1,473 @@
1
+ import type { JSX } from "solid-js";
2
+ import type { DomComponent, StyleElement } from "..";
3
+ import type { NavigationElementProps, NavigationOrientation } from "./base";
4
+ import { DomController } from "../dom/client";
5
+ import "./navigation.css";
6
+ /**
7
+ * Layout variant of a top app bar.
8
+ *
9
+ * Two-row variants show the navigation icon, a compact title, and the actions in a top row of the
10
+ * small bar's height, and an expanded title below it. Collapsing a two-row bar, by scrolling or
11
+ * through {@link TopAppBarProps.collapsed}, slides the expanded row under the top row while the
12
+ * compact title fades in, as Compose's `TwoRowsTopAppBar`.
13
+ *
14
+ * | Variant | Rows | Expanded height | Expanded title (subtitle) |
15
+ * | ----------------- | ---- | ---------------------- | -------------------------------- |
16
+ * | `small` | one | 64px | title large (label medium) |
17
+ * | `center` | one | 64px | title large, centered |
18
+ * | `medium` | two | 112px | headline small (label large) |
19
+ * | `large` | two | 152px | headline medium (title medium) |
20
+ * | `medium-flexible` | two | 112px, 136px subtitled | headline medium (label large) |
21
+ * | `large-flexible` | two | 120px, 152px subtitled | display small (title medium) |
22
+ */
23
+ export type TopAppBarVariant = "small" | "center" | "medium" | "large" | "medium-flexible" | "large-flexible";
24
+ /**
25
+ * Scroll behavior of a top app bar, as Compose's `TopAppBarDefaults` scroll behaviors.
26
+ *
27
+ * | Behavior | Description |
28
+ * | -------------------- | -------------------------------------------------------------- |
29
+ * | `pinned` | Keeps its size; scrolled content changes its container color. |
30
+ * | `enterAlways` | Collapses as content scrolls forward; expands as it scrolls back. |
31
+ * | `exitUntilCollapsed` | Collapses as content scrolls forward; expands near its start. |
32
+ *
33
+ * Single-row bars collapse to zero height; two-row bars collapse to their top row.
34
+ */
35
+ export type TopAppBarScrollBehavior = "pinned" | "enterAlways" | "exitUntilCollapsed";
36
+ /**
37
+ * Properties of top app bars.
38
+ */
39
+ export type TopAppBarProps = NavigationElementProps<HTMLDivElement> & {
40
+ /**
41
+ * Layout variant.
42
+ *
43
+ * @defaultValue The variant of the component, `"small"` for {@link TopAppBar}.
44
+ */
45
+ variant?: TopAppBarVariant | undefined;
46
+ /**
47
+ * Title; children are used when omitted.
48
+ *
49
+ * Two-row variants render the title, and the subtitle, twice: compact in the top row and
50
+ * expanded below it, exactly as Compose renders its `smallTitle`. Pass content which can be
51
+ * rendered twice, such as text or a JSX expression, rather than an existing DOM node. Heading
52
+ * elements in the title inherit the title typography.
53
+ */
54
+ title?: JSX.Element;
55
+ /**
56
+ * Subtitle shown below the title.
57
+ */
58
+ subtitle?: JSX.Element;
59
+ /**
60
+ * Horizontal alignment of the title and subtitle.
61
+ *
62
+ * A centered title is centered on the bar and moves aside only as far as needed to clear the
63
+ * navigation icon and actions.
64
+ *
65
+ * @defaultValue `"center"` for the `center` variant; otherwise `"start"`
66
+ */
67
+ titleAlignment?: "start" | "center" | undefined;
68
+ /**
69
+ * Leading navigation icon button.
70
+ */
71
+ navigationIcon?: JSX.Element;
72
+ /**
73
+ * Trailing action icon buttons, or an {@link AppBarRow} with an overflow menu.
74
+ */
75
+ actions?: JSX.Element;
76
+ /**
77
+ * Trailing avatar image or element, sized to the avatar role in a 48px target.
78
+ */
79
+ avatar?: JSX.Element;
80
+ /**
81
+ * Height of the expanded bar, as a CSS length or a number of pixels.
82
+ *
83
+ * For single-row bars this is the bar height; for two-row bars it is the height of both rows.
84
+ *
85
+ * @defaultValue The variant's container height
86
+ */
87
+ expandedHeight?: string | number | undefined;
88
+ /**
89
+ * Scroll behavior following the scroll container identified by
90
+ * {@link TopAppBarProps.scrollTarget}.
91
+ *
92
+ * The bar changes height as content scrolls, so lay it out over the scroll container, for
93
+ * example with fixed or sticky positioning and content padding, rather than above it.
94
+ * {@link TopAppBarProps.collapsed} and {@link TopAppBarProps.scrollProgress} take precedence.
95
+ */
96
+ scrollBehavior?: TopAppBarScrollBehavior | undefined;
97
+ /**
98
+ * Id of the scroll container followed by {@link TopAppBarProps.scrollBehavior}, resolved in the
99
+ * bar's document or shadow root.
100
+ *
101
+ * @defaultValue The document scrolling element
102
+ */
103
+ scrollTarget?: string | undefined;
104
+ /**
105
+ * Apply the on-scroll container color.
106
+ *
107
+ * When omitted, single-row bars with a {@link TopAppBarProps.scrollBehavior} apply it while
108
+ * their content is scrolled; two-row bars blend toward it as they collapse.
109
+ */
110
+ scrolled?: boolean | undefined;
111
+ /**
112
+ * Collapse the bar.
113
+ *
114
+ * A collapsed bar ignores {@link TopAppBarProps.scrollProgress}; an expanded one follows it, if
115
+ * given. Changes are animated with the snap spring of Compose's `TopAppBarDefaults`, after the
116
+ * initial render. Single-row bars collapse to zero height.
117
+ */
118
+ collapsed?: boolean | undefined;
119
+ /**
120
+ * Collapsed fraction, from expanded (`0`) to collapsed (`1`), applied without animation.
121
+ *
122
+ * Use this to drive the bar from an application-defined scroll model. It takes precedence over
123
+ * {@link TopAppBarProps.scrollBehavior}, and yields to a `true`
124
+ * {@link TopAppBarProps.collapsed}.
125
+ */
126
+ scrollProgress?: number | undefined;
127
+ };
128
+ /**
129
+ * Properties of a {@link BottomAppBar}.
130
+ */
131
+ export type BottomAppBarProps = NavigationElementProps<HTMLDivElement> & {
132
+ /**
133
+ * Start-aligned action icon buttons; children are used when omitted.
134
+ */
135
+ actions?: JSX.Element;
136
+ /**
137
+ * Floating action button at the end of the bar.
138
+ */
139
+ floatingActionButton?: JSX.Element;
140
+ /**
141
+ * Hide the bar while content scrolls forward and show it as soon as content scrolls back, as
142
+ * Compose's `BottomAppBarDefaults.exitAlwaysScrollBehavior`.
143
+ */
144
+ scrollBehavior?: "exitAlways" | undefined;
145
+ /**
146
+ * Id of the scroll container followed by {@link BottomAppBarProps.scrollBehavior}.
147
+ *
148
+ * @defaultValue The document scrolling element
149
+ */
150
+ scrollTarget?: string | undefined;
151
+ };
152
+ /**
153
+ * Properties of {@link AppBarRow} and {@link AppBarColumn}.
154
+ */
155
+ export type AppBarLayoutProps = NavigationElementProps<HTMLDivElement> & {
156
+ /**
157
+ * Accessible label of the overflow menu button.
158
+ *
159
+ * @defaultValue `"More options"`
160
+ */
161
+ overflowLabel?: string | undefined;
162
+ /**
163
+ * Maximum number of slots, including the overflow menu button when it is shown.
164
+ *
165
+ * @defaultValue Unlimited; items move into the overflow menu only when they do not fit.
166
+ */
167
+ maxItemCount?: number | undefined;
168
+ };
169
+ /**
170
+ * Properties of an {@link AppBarItem}.
171
+ */
172
+ export type AppBarItemProps = {
173
+ /**
174
+ * Icon shown on the item's icon button and in the overflow menu.
175
+ *
176
+ * The icon is rendered again for the overflow menu; pass content which can be rendered twice.
177
+ */
178
+ icon: JSX.Element;
179
+ /**
180
+ * Accessible name of the icon button and label of the overflow menu item.
181
+ */
182
+ label: string;
183
+ /**
184
+ * Disable the item.
185
+ *
186
+ * @defaultValue `false`
187
+ */
188
+ disabled?: boolean | undefined;
189
+ /**
190
+ * Handle activation of the item, from its icon button or from the overflow menu.
191
+ *
192
+ * @param event - activating click or keyboard event
193
+ */
194
+ onActivate?: ((event: Event) => void) | undefined;
195
+ };
196
+ /**
197
+ * Client controller of top app bars.
198
+ *
199
+ * The controller applies the variant, alignment, and on-scroll color, drives the collapsed
200
+ * fraction from {@link TopAppBarProps.scrollProgress}, {@link TopAppBarProps.collapsed}, or a
201
+ * {@link TopAppBarProps.scrollBehavior}, and exposes only the visible title of a two-row bar to
202
+ * assistive technology. The collapsible distance is measured with a `ResizeObserver`; scrolling
203
+ * itself causes no layout reads.
204
+ */
205
+ export declare class TopAppBarController extends DomController<TopAppBarProps> {
206
+ #private;
207
+ /**
208
+ * Construct a new `TopAppBarController`.
209
+ *
210
+ * @param props - component properties
211
+ * @param defaultVariant - variant used when {@link TopAppBarProps.variant} is omitted
212
+ */
213
+ constructor(props: TopAppBarProps, defaultVariant?: TopAppBarVariant);
214
+ /**
215
+ * Apply local properties to component state and styling.
216
+ *
217
+ * @see {@link ../dom/client#DomController.applyComponentProps}
218
+ */
219
+ protected applyComponentProps(): void;
220
+ /**
221
+ * Create the collapsed fraction state for the bar element.
222
+ *
223
+ * Top app bars render a static element, so this runs once, when the bar is rendered.
224
+ *
225
+ * @param curr - new style element, or `null` when absent
226
+ * @see {@link ../dom/client#DomController.onStyleElementChanged}
227
+ */
228
+ protected onStyleElementChanged(curr: StyleElement | null): void;
229
+ /**
230
+ * Stop following scrolling and observing sizes when the controller is disposed.
231
+ *
232
+ * @see {@link ../dom/client#DomController.onControllerCleanup}
233
+ */
234
+ protected onControllerCleanup(): void;
235
+ /**
236
+ * Render the static bar structure and insert its slots.
237
+ *
238
+ * The expanded row receives the second title rendering only while the variant has two rows.
239
+ *
240
+ * @param children - nested component children, possibly an accessor
241
+ * @returns rendered component elements
242
+ * @see {@link ../dom/client#DomController.render}
243
+ */
244
+ protected render(children: JSX.Element): JSX.Element;
245
+ }
246
+ /**
247
+ * Material top app bar.
248
+ *
249
+ * Top app bars display a title, a navigation icon, actions, and an avatar at the top of a
250
+ * screen. The {@link TopAppBarProps.variant | variant} selects the single-row small and
251
+ * center-aligned bars, or the two-row medium, large, and flexible bars; see
252
+ * {@link TopAppBarVariant}. Bars are neutral containers; add `attr:role="banner"` for a landmark.
253
+ *
254
+ * # States
255
+ *
256
+ * A {@link TopAppBarProps.scrollBehavior | scroll behavior}, {@link TopAppBarProps.collapsed}, or
257
+ * {@link TopAppBarProps.scrollProgress} collapses the bar. Two-row bars blend their container
258
+ * toward the on-scroll color as they collapse, and single-row bars apply it while content is
259
+ * scrolled under them; color changes use the default effects spring. Only the visible title of a
260
+ * two-row bar is exposed to assistive technology.
261
+ *
262
+ * # Design
263
+ *
264
+ * App-bar design is controlled through the [`cw-AppBar`](./app-bar.yaml) component design
265
+ * attribute. The bar has the `cw-TopAppBar` class and its variant in the
266
+ * `data-cw-top-app-bar-variant` attribute; the collapsed fraction is the unitless
267
+ * `--cw-TopAppBar-scroll-progress` property, and the on-scroll color applies while
268
+ * `data-cw-app-bar-scrolled="true"` is set.
269
+ *
270
+ * # Elements
271
+ *
272
+ * | Element | Description |
273
+ * | ------- | ----------- |
274
+ * | `.cw-TopAppBar-row` | Top row: navigation icon, compact title, actions, and avatar. |
275
+ * | `.cw-TopAppBar-expandedRow` | Expanded title row of two-row variants. |
276
+ * | `.cw-TopAppBar-title`, `.cw-TopAppBar-subtitle` | Title and subtitle of each row. |
277
+ *
278
+ * @param props - component properties
279
+ * @returns rendered element
280
+ */
281
+ export declare const TopAppBar: DomComponent<TopAppBarProps>;
282
+ /**
283
+ * Small {@link TopAppBar}.
284
+ *
285
+ * @param props - component properties
286
+ * @returns rendered element
287
+ */
288
+ export declare const SmallTopAppBar: DomComponent<TopAppBarProps>;
289
+ /**
290
+ * Center-aligned {@link TopAppBar}: a small bar whose title is centered on the bar.
291
+ *
292
+ * @param props - component properties
293
+ * @returns rendered element
294
+ */
295
+ export declare const CenterAlignedTopAppBar: DomComponent<TopAppBarProps>;
296
+ /**
297
+ * Medium {@link TopAppBar} with a headline-small expanded title.
298
+ *
299
+ * @param props - component properties
300
+ * @returns rendered element
301
+ */
302
+ export declare const MediumTopAppBar: DomComponent<TopAppBarProps>;
303
+ /**
304
+ * Large {@link TopAppBar} with a headline-medium expanded title.
305
+ *
306
+ * @param props - component properties
307
+ * @returns rendered element
308
+ */
309
+ export declare const LargeTopAppBar: DomComponent<TopAppBarProps>;
310
+ /**
311
+ * Medium flexible {@link TopAppBar} with a headline-medium title and label-large subtitle.
312
+ *
313
+ * @param props - component properties
314
+ * @returns rendered element
315
+ */
316
+ export declare const MediumFlexibleTopAppBar: DomComponent<TopAppBarProps>;
317
+ /**
318
+ * Large flexible {@link TopAppBar} with a display-small title and title-medium subtitle.
319
+ *
320
+ * @param props - component properties
321
+ * @returns rendered element
322
+ */
323
+ export declare const LargeFlexibleTopAppBar: DomComponent<TopAppBarProps>;
324
+ /**
325
+ * Two-row {@link TopAppBar}, an alias of {@link LargeTopAppBar}.
326
+ *
327
+ * @param props - component properties
328
+ * @returns rendered element
329
+ */
330
+ export declare const TwoRowsTopAppBar: DomComponent<TopAppBarProps>;
331
+ /**
332
+ * Client controller of bottom app bars.
333
+ *
334
+ * The controller follows an exit-always {@link BottomAppBarProps.scrollBehavior | scroll behavior}
335
+ * and measures the bar height with a `ResizeObserver`. While the bar is moved, even partially, it
336
+ * is inert, so that keyboard focus cannot reach it off screen.
337
+ */
338
+ export declare class BottomAppBarController extends DomController<BottomAppBarProps> {
339
+ #private;
340
+ /**
341
+ * Construct a new `BottomAppBarController`.
342
+ *
343
+ * @param props - component properties
344
+ */
345
+ constructor(props: BottomAppBarProps);
346
+ /**
347
+ * Apply local properties to component state and styling.
348
+ *
349
+ * @see {@link ../dom/client#DomController.applyComponentProps}
350
+ */
351
+ protected applyComponentProps(): void;
352
+ /**
353
+ * Create the hidden fraction state and observe the bar height.
354
+ *
355
+ * Bottom app bars render a static element, so this runs once, when the bar is rendered.
356
+ *
357
+ * @param curr - new style element, or `null` when absent
358
+ * @see {@link ../dom/client#DomController.onStyleElementChanged}
359
+ */
360
+ protected onStyleElementChanged(curr: StyleElement | null): void;
361
+ /**
362
+ * Stop following scrolling and observing sizes when the controller is disposed.
363
+ *
364
+ * @see {@link ../dom/client#DomController.onControllerCleanup}
365
+ */
366
+ protected onControllerCleanup(): void;
367
+ /**
368
+ * Render the static bar structure and insert its slots.
369
+ *
370
+ * @param children - nested component children, possibly an accessor
371
+ * @returns rendered component elements
372
+ * @see {@link ../dom/client#DomController.render}
373
+ */
374
+ protected render(children: JSX.Element): JSX.Element;
375
+ }
376
+ /**
377
+ * Material bottom app bar.
378
+ *
379
+ * Bottom app bars place up to four start-aligned action icon buttons and an optional floating
380
+ * action button at the bottom of a screen. Material 3 Expressive replaces the bottom app bar with
381
+ * the {@link ./toolbar#DockedToolbar | docked toolbar}, which should be preferred in new designs;
382
+ * the bottom app bar remains part of the Material 3 baseline.
383
+ *
384
+ * # States
385
+ *
386
+ * With the `exitAlways` {@link BottomAppBarProps.scrollBehavior | scroll behavior}, the bar hides
387
+ * while content scrolls forward and returns as soon as it scrolls back; when scrolling stops
388
+ * between the two, the bar snaps with the fast spatial spring of Compose's `BottomAppBarDefaults`.
389
+ * The hidden fraction is the unitless `--cw-BottomAppBar-scroll-progress` property. Anchor the bar
390
+ * to the bottom edge, for example with fixed positioning.
391
+ *
392
+ * # Design
393
+ *
394
+ * Bottom app-bar design is controlled through the `bottom` roles of the
395
+ * [`cw-AppBar`](./app-bar.yaml) component design attribute. The bar has the `cw-BottomAppBar`
396
+ * class and is a neutral container; add `attr:role="contentinfo"` for a landmark.
397
+ *
398
+ * @param props - component properties
399
+ * @returns rendered element
400
+ */
401
+ export declare const BottomAppBar: DomComponent<BottomAppBarProps>;
402
+ /**
403
+ * Client controller of app-bar rows and columns.
404
+ *
405
+ * The controller measures the layout and its items along the layout axis, hides the items which
406
+ * do not fit, or exceed {@link AppBarLayoutProps.maxItemCount}, and lists them in the overflow
407
+ * menu, as Compose's `AppBarRow` and `AppBarColumn`. Only {@link AppBarItem}s overflow; other
408
+ * children always stay in the layout, and the items share the space they leave.
409
+ */
410
+ export declare class AppBarLayoutController extends DomController<AppBarLayoutProps> {
411
+ #private;
412
+ /**
413
+ * Construct a new `AppBarLayoutController`.
414
+ *
415
+ * @param props - component properties
416
+ * @param orientation - layout axis selecting a row or a column
417
+ */
418
+ constructor(props: AppBarLayoutProps, orientation: NavigationOrientation);
419
+ /**
420
+ * Apply local properties to component state and styling.
421
+ *
422
+ * @see {@link ../dom/client#DomController.applyComponentProps}
423
+ */
424
+ protected applyComponentProps(): void;
425
+ /**
426
+ * Stop observing sizes and children when the controller is disposed.
427
+ *
428
+ * @see {@link ../dom/client#DomController.onControllerCleanup}
429
+ */
430
+ protected onControllerCleanup(): void;
431
+ /**
432
+ * Render the static layout, observe its children, and insert its items and overflow menu.
433
+ *
434
+ * @param children - nested component children, possibly an accessor
435
+ * @returns rendered component elements
436
+ * @see {@link ../dom/client#DomController.render}
437
+ */
438
+ protected render(children: JSX.Element): JSX.Element;
439
+ }
440
+ /**
441
+ * Horizontal app-bar layout which moves items that do not fit into an overflow menu.
442
+ *
443
+ * Use it in the `actions` slot of a {@link TopAppBar}, or in a {@link BottomAppBar} or toolbar,
444
+ * with {@link AppBarItem} children. The row fills its container; {@link AppBarItem}s which do not
445
+ * fit, or exceed {@link AppBarLayoutProps.maxItemCount}, are hidden and listed, in order, in a
446
+ * menu opened by an overflow icon button at the end of the row. Other children, such as a button
447
+ * which must stay visible, never overflow, and the items fit in the space they leave.
448
+ *
449
+ * @param props - component properties
450
+ * @returns rendered element
451
+ */
452
+ export declare const AppBarRow: DomComponent<AppBarLayoutProps>;
453
+ /**
454
+ * Vertical app-bar layout which moves items that do not fit into an overflow menu.
455
+ *
456
+ * The column behaves as {@link AppBarRow} along the block axis, for vertical toolbars.
457
+ *
458
+ * @param props - component properties
459
+ * @returns rendered element
460
+ */
461
+ export declare const AppBarColumn: DomComponent<AppBarLayoutProps>;
462
+ /**
463
+ * Item of an {@link AppBarRow} or {@link AppBarColumn}.
464
+ *
465
+ * The item is a standard icon button labelled by {@link AppBarItemProps.label}. When its layout
466
+ * runs out of space, the item is hidden and listed in the overflow menu with the same icon and
467
+ * label; activating either calls {@link AppBarItemProps.onActivate}. Outside a row or column, the
468
+ * item never overflows.
469
+ *
470
+ * @param props - component properties
471
+ * @returns rendered item
472
+ */
473
+ export declare function AppBarItem(props: AppBarItemProps): JSX.Element;