@shortfuse/materialdesignweb 0.7.6 → 0.9.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 (412) hide show
  1. package/README.md +87 -90
  2. package/bin/mdw-css.js +1 -1
  3. package/components/Badge.js +14 -7
  4. package/components/Body.js +3 -0
  5. package/components/BottomAppBar.js +4 -13
  6. package/components/BottomSheet.js +424 -0
  7. package/components/Box.js +20 -28
  8. package/components/Button.js +85 -79
  9. package/components/Button.md +9 -9
  10. package/components/Card.js +60 -72
  11. package/components/Checkbox.js +33 -42
  12. package/components/CheckboxIcon.js +11 -29
  13. package/components/Chip.js +13 -11
  14. package/components/Dialog.js +214 -394
  15. package/components/DialogActions.js +2 -2
  16. package/components/Display.js +55 -0
  17. package/components/Divider.js +3 -3
  18. package/components/Fab.js +83 -18
  19. package/components/FabContainer.js +48 -0
  20. package/components/FilterChip.js +35 -33
  21. package/components/Grid.js +176 -0
  22. package/components/Headline.js +5 -28
  23. package/components/Icon.js +61 -76
  24. package/components/IconButton.js +72 -126
  25. package/components/Input.js +859 -1
  26. package/components/InputChip.js +161 -0
  27. package/components/Label.js +3 -0
  28. package/components/List.js +4 -6
  29. package/components/ListItem.js +46 -30
  30. package/components/ListOption.js +86 -53
  31. package/components/Listbox.js +248 -0
  32. package/components/Menu.js +69 -528
  33. package/components/MenuItem.js +33 -36
  34. package/components/NavBar.js +49 -86
  35. package/components/NavDrawer.js +16 -15
  36. package/components/NavDrawerItem.js +4 -5
  37. package/components/NavItem.js +58 -41
  38. package/components/NavRail.js +30 -20
  39. package/components/NavRailItem.js +8 -3
  40. package/components/Page.js +105 -0
  41. package/components/Pane.js +11 -274
  42. package/components/Popup.js +29 -0
  43. package/components/Progress.js +24 -23
  44. package/components/Radio.js +40 -36
  45. package/components/RadioIcon.js +12 -16
  46. package/components/Ripple.js +13 -10
  47. package/components/Root.js +209 -0
  48. package/components/Scrim.js +87 -0
  49. package/components/Search.js +77 -0
  50. package/components/SegmentedButton.js +33 -45
  51. package/components/SegmentedButtonGroup.js +25 -13
  52. package/components/Select.js +10 -11
  53. package/components/Shape.js +5 -65
  54. package/components/SideSheet.js +308 -0
  55. package/components/Slider.js +108 -78
  56. package/components/Snackbar.js +26 -21
  57. package/components/SnackbarContainer.js +42 -0
  58. package/components/Surface.js +17 -12
  59. package/components/Switch.js +45 -24
  60. package/components/SwitchIcon.js +49 -39
  61. package/components/Tab.js +64 -43
  62. package/components/TabContent.js +5 -3
  63. package/components/TabList.js +62 -34
  64. package/components/TabPanel.js +11 -8
  65. package/components/Table.js +116 -0
  66. package/components/TextArea.js +54 -50
  67. package/components/Title.js +4 -9
  68. package/components/Tooltip.js +44 -22
  69. package/components/TopAppBar.js +68 -172
  70. package/constants/shapes.js +36 -0
  71. package/constants/typography.js +127 -0
  72. package/core/Composition.js +1164 -645
  73. package/core/CompositionAdapter.js +314 -0
  74. package/core/CustomElement.js +701 -286
  75. package/core/css.js +121 -15
  76. package/core/customTypes.js +157 -40
  77. package/core/dom.js +17 -11
  78. package/{utils → core}/jsonMergePatch.js +42 -18
  79. package/core/observe.js +343 -244
  80. package/core/optimizations.js +23 -0
  81. package/core/template.js +19 -56
  82. package/core/uid.js +13 -0
  83. package/dist/index.min.js +85 -184
  84. package/dist/index.min.js.map +4 -4
  85. package/dist/meta.json +1 -1
  86. package/dom/HTMLOptionsCollectionProxy.js +106 -0
  87. package/loaders/palette.js +13 -0
  88. package/loaders/theme.js +12 -0
  89. package/mixins/AriaReflectorMixin.js +53 -14
  90. package/mixins/AriaToolbarMixin.js +5 -3
  91. package/mixins/ControlMixin.js +92 -41
  92. package/mixins/DelegatesFocusMixin.js +54 -0
  93. package/mixins/DensityMixin.js +2 -3
  94. package/mixins/ElevationMixin.js +62 -0
  95. package/mixins/FlexableMixin.js +67 -39
  96. package/mixins/FormAssociatedMixin.js +71 -16
  97. package/mixins/HyperlinkMixin.js +66 -0
  98. package/mixins/InputMixin.js +205 -39
  99. package/mixins/KeyboardNavMixin.js +22 -7
  100. package/mixins/NavigationListenerMixin.js +33 -0
  101. package/mixins/PopupMixin.js +725 -0
  102. package/mixins/RTLObserverMixin.js +0 -1
  103. package/mixins/ResizeObserverMixin.js +16 -5
  104. package/mixins/RippleMixin.js +11 -10
  105. package/mixins/ScrollListenerMixin.js +42 -33
  106. package/mixins/SemiStickyMixin.js +97 -0
  107. package/mixins/ShapeMaskedMixin.js +117 -0
  108. package/mixins/ShapeMixin.js +17 -194
  109. package/mixins/StateMixin.js +80 -39
  110. package/mixins/TextFieldMixin.js +139 -183
  111. package/mixins/ThemableMixin.js +71 -161
  112. package/mixins/TooltipTriggerMixin.js +292 -366
  113. package/mixins/TouchTargetMixin.js +5 -4
  114. package/mixins/TypographyMixin.js +121 -0
  115. package/package.json +111 -71
  116. package/services/rtl.js +10 -0
  117. package/services/svgAlias.js +17 -0
  118. package/{theming/index.js → services/theme.js} +25 -175
  119. package/types/bin/mdw-css.d.ts +3 -0
  120. package/types/bin/mdw-css.d.ts.map +1 -0
  121. package/types/components/Badge.d.ts +39 -0
  122. package/types/components/Badge.d.ts.map +1 -0
  123. package/types/components/Body.d.ts +29 -0
  124. package/types/components/Body.d.ts.map +1 -0
  125. package/types/components/BottomAppBar.d.ts +73 -0
  126. package/types/components/BottomAppBar.d.ts.map +1 -0
  127. package/types/components/BottomSheet.d.ts +109 -0
  128. package/types/components/BottomSheet.d.ts.map +1 -0
  129. package/types/components/Box.d.ts +16 -0
  130. package/types/components/Box.d.ts.map +1 -0
  131. package/types/components/Button.d.ts +714 -0
  132. package/types/components/Button.d.ts.map +1 -0
  133. package/types/components/Card.d.ts +412 -0
  134. package/types/components/Card.d.ts.map +1 -0
  135. package/types/components/Checkbox.d.ts +205 -0
  136. package/types/components/Checkbox.d.ts.map +1 -0
  137. package/types/components/CheckboxIcon.d.ts +44 -0
  138. package/types/components/CheckboxIcon.d.ts.map +1 -0
  139. package/types/components/Chip.d.ts +1425 -0
  140. package/types/components/Chip.d.ts.map +1 -0
  141. package/types/components/Dialog.d.ts +286 -0
  142. package/types/components/Dialog.d.ts.map +1 -0
  143. package/types/components/DialogActions.d.ts +4 -0
  144. package/types/components/DialogActions.d.ts.map +1 -0
  145. package/types/components/Display.d.ts +45 -0
  146. package/types/components/Display.d.ts.map +1 -0
  147. package/types/components/Divider.d.ts +10 -0
  148. package/types/components/Divider.d.ts.map +1 -0
  149. package/types/components/Fab.d.ts +741 -0
  150. package/types/components/Fab.d.ts.map +1 -0
  151. package/types/components/FabContainer.d.ts +10 -0
  152. package/types/components/FabContainer.d.ts.map +1 -0
  153. package/types/components/FilterChip.d.ts +4283 -0
  154. package/types/components/FilterChip.d.ts.map +1 -0
  155. package/types/components/Grid.d.ts +37 -0
  156. package/types/components/Grid.d.ts.map +1 -0
  157. package/types/components/Headline.d.ts +47 -0
  158. package/types/components/Headline.d.ts.map +1 -0
  159. package/types/components/Icon.d.ts +103 -0
  160. package/types/components/Icon.d.ts.map +1 -0
  161. package/types/components/IconButton.d.ts +1486 -0
  162. package/types/components/IconButton.d.ts.map +1 -0
  163. package/types/components/Input.d.ts +51288 -0
  164. package/types/components/Input.d.ts.map +1 -0
  165. package/types/components/InputChip.d.ts +243 -0
  166. package/types/components/InputChip.d.ts.map +1 -0
  167. package/types/components/Label.d.ts +29 -0
  168. package/types/components/Label.d.ts.map +1 -0
  169. package/types/components/List.d.ts +31 -0
  170. package/types/components/List.d.ts.map +1 -0
  171. package/types/components/ListItem.d.ts +349 -0
  172. package/types/components/ListItem.d.ts.map +1 -0
  173. package/types/components/ListOption.d.ts +1493 -0
  174. package/types/components/ListOption.d.ts.map +1 -0
  175. package/types/components/Listbox.d.ts +12012 -0
  176. package/types/components/Listbox.d.ts.map +1 -0
  177. package/types/components/Menu.d.ts +119 -0
  178. package/types/components/Menu.d.ts.map +1 -0
  179. package/types/components/MenuItem.d.ts +3109 -0
  180. package/types/components/MenuItem.d.ts.map +1 -0
  181. package/types/components/NavBar.d.ts +18 -0
  182. package/types/components/NavBar.d.ts.map +1 -0
  183. package/types/components/NavBarItem.d.ts +186 -0
  184. package/types/components/NavBarItem.d.ts.map +1 -0
  185. package/types/components/NavDrawer.d.ts +108 -0
  186. package/types/components/NavDrawer.d.ts.map +1 -0
  187. package/types/components/NavDrawerItem.d.ts +186 -0
  188. package/types/components/NavDrawerItem.d.ts.map +1 -0
  189. package/types/components/NavItem.d.ts +190 -0
  190. package/types/components/NavItem.d.ts.map +1 -0
  191. package/types/components/NavRail.d.ts +109 -0
  192. package/types/components/NavRail.d.ts.map +1 -0
  193. package/types/components/NavRailItem.d.ts +186 -0
  194. package/types/components/NavRailItem.d.ts.map +1 -0
  195. package/types/components/Page.d.ts +24 -0
  196. package/types/components/Page.d.ts.map +1 -0
  197. package/types/components/Pane.d.ts +44 -0
  198. package/types/components/Pane.d.ts.map +1 -0
  199. package/types/components/Popup.d.ts +76 -0
  200. package/types/components/Popup.d.ts.map +1 -0
  201. package/types/components/Progress.d.ts +19 -0
  202. package/types/components/Progress.d.ts.map +1 -0
  203. package/types/components/Radio.d.ts +199 -0
  204. package/types/components/Radio.d.ts.map +1 -0
  205. package/types/components/RadioIcon.d.ts +46 -0
  206. package/types/components/RadioIcon.d.ts.map +1 -0
  207. package/types/components/Ripple.d.ts +34 -0
  208. package/types/components/Ripple.d.ts.map +1 -0
  209. package/types/components/Root.d.ts +68 -0
  210. package/types/components/Root.d.ts.map +1 -0
  211. package/types/components/Scrim.d.ts +6 -0
  212. package/types/components/Scrim.d.ts.map +1 -0
  213. package/types/components/Search.d.ts +16 -0
  214. package/types/components/Search.d.ts.map +1 -0
  215. package/types/components/SegmentedButton.d.ts +718 -0
  216. package/types/components/SegmentedButton.d.ts.map +1 -0
  217. package/types/components/SegmentedButtonGroup.d.ts +44 -0
  218. package/types/components/SegmentedButtonGroup.d.ts.map +1 -0
  219. package/types/components/Select.d.ts +1361 -0
  220. package/types/components/Select.d.ts.map +1 -0
  221. package/types/components/Shape.d.ts +10 -0
  222. package/types/components/Shape.d.ts.map +1 -0
  223. package/types/components/SideSheet.d.ts +106 -0
  224. package/types/components/SideSheet.d.ts.map +1 -0
  225. package/types/components/Slider.d.ts +382 -0
  226. package/types/components/Slider.d.ts.map +1 -0
  227. package/types/components/Snackbar.d.ts +65 -0
  228. package/types/components/Snackbar.d.ts.map +1 -0
  229. package/types/components/SnackbarContainer.d.ts +6 -0
  230. package/types/components/SnackbarContainer.d.ts.map +1 -0
  231. package/types/components/Surface.d.ts +45 -0
  232. package/types/components/Surface.d.ts.map +1 -0
  233. package/types/components/Switch.d.ts +183 -0
  234. package/types/components/Switch.d.ts.map +1 -0
  235. package/types/components/SwitchIcon.d.ts +169 -0
  236. package/types/components/SwitchIcon.d.ts.map +1 -0
  237. package/types/components/Tab.d.ts +879 -0
  238. package/types/components/Tab.d.ts.map +1 -0
  239. package/types/components/TabContent.d.ts +122 -0
  240. package/types/components/TabContent.d.ts.map +1 -0
  241. package/types/components/TabList.d.ts +6266 -0
  242. package/types/components/TabList.d.ts.map +1 -0
  243. package/types/components/TabPanel.d.ts +28 -0
  244. package/types/components/TabPanel.d.ts.map +1 -0
  245. package/types/components/Table.d.ts +2 -0
  246. package/types/components/Table.d.ts.map +1 -0
  247. package/types/components/TextArea.d.ts +1394 -0
  248. package/types/components/TextArea.d.ts.map +1 -0
  249. package/types/components/Title.d.ts +47 -0
  250. package/types/components/Title.d.ts.map +1 -0
  251. package/types/components/Tooltip.d.ts +49 -0
  252. package/types/components/Tooltip.d.ts.map +1 -0
  253. package/types/components/TopAppBar.d.ts +130 -0
  254. package/types/components/TopAppBar.d.ts.map +1 -0
  255. package/types/constants/colorKeywords.d.ts +2 -0
  256. package/types/constants/colorKeywords.d.ts.map +1 -0
  257. package/types/constants/shapes.d.ts +38 -0
  258. package/types/constants/shapes.d.ts.map +1 -0
  259. package/types/constants/typography.d.ts +212 -0
  260. package/types/constants/typography.d.ts.map +1 -0
  261. package/types/core/Composition.d.ts +252 -0
  262. package/types/core/Composition.d.ts.map +1 -0
  263. package/types/core/CompositionAdapter.d.ts +92 -0
  264. package/types/core/CompositionAdapter.d.ts.map +1 -0
  265. package/types/core/CustomElement.d.ts +302 -0
  266. package/types/core/CustomElement.d.ts.map +1 -0
  267. package/types/core/css.d.ts +44 -0
  268. package/types/core/css.d.ts.map +1 -0
  269. package/types/core/customTypes.d.ts +26 -0
  270. package/types/core/customTypes.d.ts.map +1 -0
  271. package/types/core/dom.d.ts +32 -0
  272. package/types/core/dom.d.ts.map +1 -0
  273. package/types/core/jsonMergePatch.d.ts +31 -0
  274. package/types/core/jsonMergePatch.d.ts.map +1 -0
  275. package/types/core/observe.d.ts +113 -0
  276. package/types/core/observe.d.ts.map +1 -0
  277. package/types/core/optimizations.d.ts +7 -0
  278. package/types/core/optimizations.d.ts.map +1 -0
  279. package/types/core/template.d.ts +47 -0
  280. package/types/core/template.d.ts.map +1 -0
  281. package/types/core/uid.d.ts +6 -0
  282. package/types/core/uid.d.ts.map +1 -0
  283. package/types/dom/HTMLOptionsCollectionProxy.d.ts +18 -0
  284. package/types/dom/HTMLOptionsCollectionProxy.d.ts.map +1 -0
  285. package/types/index.d.ts +88 -0
  286. package/types/index.d.ts.map +1 -0
  287. package/types/loaders/palette.d.ts +2 -0
  288. package/types/loaders/palette.d.ts.map +1 -0
  289. package/types/loaders/theme.d.ts +2 -0
  290. package/types/loaders/theme.d.ts.map +1 -0
  291. package/types/mixins/AriaReflectorMixin.d.ts +23 -0
  292. package/types/mixins/AriaReflectorMixin.d.ts.map +1 -0
  293. package/types/mixins/AriaToolbarMixin.d.ts +32 -0
  294. package/types/mixins/AriaToolbarMixin.d.ts.map +1 -0
  295. package/types/mixins/ControlMixin.d.ts +124 -0
  296. package/types/mixins/ControlMixin.d.ts.map +1 -0
  297. package/types/mixins/DelegatesFocusMixin.d.ts +5 -0
  298. package/types/mixins/DelegatesFocusMixin.d.ts.map +1 -0
  299. package/types/mixins/DensityMixin.d.ts +5 -0
  300. package/types/mixins/DensityMixin.d.ts.map +1 -0
  301. package/types/mixins/ElevationMixin.d.ts +33 -0
  302. package/types/mixins/ElevationMixin.d.ts.map +1 -0
  303. package/types/mixins/FlexableMixin.d.ts +13 -0
  304. package/types/mixins/FlexableMixin.d.ts.map +1 -0
  305. package/types/mixins/FormAssociatedMixin.d.ts +122 -0
  306. package/types/mixins/FormAssociatedMixin.d.ts.map +1 -0
  307. package/types/mixins/HyperlinkMixin.d.ts +22 -0
  308. package/types/mixins/HyperlinkMixin.d.ts.map +1 -0
  309. package/types/mixins/InputMixin.d.ts +179 -0
  310. package/types/mixins/InputMixin.d.ts.map +1 -0
  311. package/types/mixins/KeyboardNavMixin.d.ts +47 -0
  312. package/types/mixins/KeyboardNavMixin.d.ts.map +1 -0
  313. package/types/mixins/NavigationListenerMixin.d.ts +8 -0
  314. package/types/mixins/NavigationListenerMixin.d.ts.map +1 -0
  315. package/types/mixins/PopupMixin.d.ts +82 -0
  316. package/types/mixins/PopupMixin.d.ts.map +1 -0
  317. package/types/mixins/RTLObserverMixin.d.ts +7 -0
  318. package/types/mixins/RTLObserverMixin.d.ts.map +1 -0
  319. package/types/mixins/ResizeObserverMixin.d.ts +12 -0
  320. package/types/mixins/ResizeObserverMixin.d.ts.map +1 -0
  321. package/types/mixins/RippleMixin.d.ts +92 -0
  322. package/types/mixins/RippleMixin.d.ts.map +1 -0
  323. package/types/mixins/ScrollListenerMixin.d.ts +41 -0
  324. package/types/mixins/ScrollListenerMixin.d.ts.map +1 -0
  325. package/types/mixins/SemiStickyMixin.d.ts +50 -0
  326. package/types/mixins/SemiStickyMixin.d.ts.map +1 -0
  327. package/types/mixins/ShapeMaskedMixin.d.ts +9 -0
  328. package/types/mixins/ShapeMaskedMixin.d.ts.map +1 -0
  329. package/types/mixins/ShapeMixin.d.ts +38 -0
  330. package/types/mixins/ShapeMixin.d.ts.map +1 -0
  331. package/types/mixins/StateMixin.d.ts +27 -0
  332. package/types/mixins/StateMixin.d.ts.map +1 -0
  333. package/types/mixins/TextFieldMixin.d.ts +1354 -0
  334. package/types/mixins/TextFieldMixin.d.ts.map +1 -0
  335. package/types/mixins/ThemableMixin.d.ts +9 -0
  336. package/types/mixins/ThemableMixin.d.ts.map +1 -0
  337. package/types/mixins/TooltipTriggerMixin.d.ts +106 -0
  338. package/types/mixins/TooltipTriggerMixin.d.ts.map +1 -0
  339. package/types/mixins/TouchTargetMixin.d.ts +3 -0
  340. package/types/mixins/TouchTargetMixin.d.ts.map +1 -0
  341. package/types/mixins/TypographyMixin.d.ts +17 -0
  342. package/types/mixins/TypographyMixin.d.ts.map +1 -0
  343. package/types/services/rtl.d.ts +3 -0
  344. package/types/services/rtl.d.ts.map +1 -0
  345. package/types/services/svgAlias.d.ts +13 -0
  346. package/types/services/svgAlias.d.ts.map +1 -0
  347. package/types/services/theme.d.ts +45 -0
  348. package/types/services/theme.d.ts.map +1 -0
  349. package/types/utils/cli.d.ts +3 -0
  350. package/types/utils/cli.d.ts.map +1 -0
  351. package/types/utils/function.d.ts +3 -0
  352. package/types/utils/function.d.ts.map +1 -0
  353. package/types/utils/jsx-runtime.d.ts +20 -0
  354. package/types/utils/jsx-runtime.d.ts.map +1 -0
  355. package/types/utils/material-color/blend.d.ts +34 -0
  356. package/types/utils/material-color/blend.d.ts.map +1 -0
  357. package/types/utils/material-color/hct/Cam16.d.ts +142 -0
  358. package/types/utils/material-color/hct/Cam16.d.ts.map +1 -0
  359. package/types/utils/material-color/hct/Hct.d.ts +93 -0
  360. package/types/utils/material-color/hct/Hct.d.ts.map +1 -0
  361. package/types/utils/material-color/hct/ViewingConditions.d.ts +69 -0
  362. package/types/utils/material-color/hct/ViewingConditions.d.ts.map +1 -0
  363. package/types/utils/material-color/hct/hctSolver.d.ts +30 -0
  364. package/types/utils/material-color/hct/hctSolver.d.ts.map +1 -0
  365. package/types/utils/material-color/helper.d.ts +8 -0
  366. package/types/utils/material-color/helper.d.ts.map +1 -0
  367. package/types/utils/material-color/palettes/CorePalette.d.ts +75 -0
  368. package/types/utils/material-color/palettes/CorePalette.d.ts.map +1 -0
  369. package/types/utils/material-color/palettes/TonalPalette.d.ts +38 -0
  370. package/types/utils/material-color/palettes/TonalPalette.d.ts.map +1 -0
  371. package/types/utils/material-color/scheme/Scheme.d.ts +264 -0
  372. package/types/utils/material-color/scheme/Scheme.d.ts.map +1 -0
  373. package/types/utils/material-color/utils/color.d.ts +172 -0
  374. package/types/utils/material-color/utils/color.d.ts.map +1 -0
  375. package/types/utils/material-color/utils/math.d.ts +94 -0
  376. package/types/utils/material-color/utils/math.d.ts.map +1 -0
  377. package/types/utils/pixelmatch.d.ts +22 -0
  378. package/types/utils/pixelmatch.d.ts.map +1 -0
  379. package/types/utils/popup.d.ts +106 -0
  380. package/types/utils/popup.d.ts.map +1 -0
  381. package/types/utils/searchParams.d.ts +3 -0
  382. package/types/utils/searchParams.d.ts.map +1 -0
  383. package/types/utils/svg.d.ts +7 -0
  384. package/types/utils/svg.d.ts.map +1 -0
  385. package/utils/{hct → material-color}/blend.js +8 -10
  386. package/utils/{hct → material-color/hct}/Cam16.js +196 -69
  387. package/utils/{hct → material-color/hct}/Hct.js +61 -19
  388. package/utils/{hct → material-color/hct}/ViewingConditions.js +3 -3
  389. package/utils/{hct → material-color/hct}/hctSolver.js +9 -16
  390. package/utils/{hct → material-color}/helper.js +11 -18
  391. package/utils/{hct → material-color/palettes}/CorePalette.js +79 -19
  392. package/utils/{hct → material-color/palettes}/TonalPalette.js +12 -4
  393. package/utils/material-color/scheme/Scheme.js +376 -0
  394. package/utils/{hct/colorUtils.js → material-color/utils/color.js} +61 -1
  395. package/utils/pixelmatch.js +360 -0
  396. package/utils/popup.js +127 -30
  397. package/utils/searchParams.js +19 -0
  398. package/components/ExtendedFab.js +0 -36
  399. package/components/Layout.js +0 -35
  400. package/components/ListSelect.js +0 -220
  401. package/components/Nav.js +0 -40
  402. package/components/Option.js +0 -91
  403. package/core/ICustomElement.d.ts +0 -291
  404. package/core/ICustomElement.js +0 -1
  405. package/core/identify.js +0 -40
  406. package/core/typings.d.ts +0 -136
  407. package/core/typings.js +0 -1
  408. package/mixins/SurfaceMixin.js +0 -181
  409. package/theming/loader.js +0 -22
  410. package/utils/hct/Scheme.js +0 -587
  411. /package/{utils/color_keywords.js → constants/colorKeywords.js} +0 -0
  412. /package/utils/{hct/mathUtils.js → material-color/utils/math.js} +0 -0
@@ -11,13 +11,13 @@ export default function TextFieldMixin(Base) {
11
11
  return Base
12
12
  .mixin(DensityMixin)
13
13
  .mixin(ShapeMixin)
14
- .extend()
15
14
  .set({
16
15
  stateLayer: true,
17
16
  })
18
17
  .observe({
19
18
  type: { empty: 'text' },
20
19
  icon: 'string',
20
+ iconVariation: 'string',
21
21
  label: 'string',
22
22
  filled: 'boolean',
23
23
  outlined: 'boolean',
@@ -25,12 +25,13 @@ export default function TextFieldMixin(Base) {
25
25
  inputSuffix: 'string',
26
26
  trailingIcon: 'string',
27
27
  trailingIconInk: 'string',
28
+ trailingIconLabel: 'string',
28
29
  supporting: 'string',
29
30
  error: 'string',
30
31
  placeholder: { nullParser: String }, // DOMString
31
32
  })
32
33
  .observe({
33
- erroredState({ error, _invalid }) { return Boolean(error || _invalid); },
34
+ erroredState({ error, _invalid, _userInteracted }) { return _userInteracted && Boolean(error || _invalid); },
34
35
  })
35
36
  .expressions({
36
37
  computePlaceholder({ filled, outlined, label, placeholder }) {
@@ -38,12 +39,12 @@ export default function TextFieldMixin(Base) {
38
39
  return placeholder ?? label;
39
40
  },
40
41
 
41
- shouldShowSupporting({ _invalid, error, supporting }) {
42
- return _invalid || ((error ?? supporting) != null);
42
+ shouldShowSupporting({ erroredState, supporting }) {
43
+ return erroredState || (supporting != null);
43
44
  },
44
45
 
45
- computeSupportingText({ error, _validationMessage, supporting }) {
46
- return (error || _validationMessage || supporting) ?? '';
46
+ computeSupportingText({ error, erroredState, _validationMessage, supporting }) {
47
+ return (error || (erroredState && _validationMessage) || supporting) ?? '';
47
48
  },
48
49
 
49
50
  populatedState({ value, _badInput }) {
@@ -53,70 +54,65 @@ export default function TextFieldMixin(Base) {
53
54
  return label && (filled || outlined);
54
55
  },
55
56
  })
56
- .on({
57
- composed({ template, html, inline }) {
58
- const { control, label: labelElement, outline, shape, outlineLeft, outlineRight, state } = this.refs;
59
- control.setAttribute('placeholder', '{computePlaceholder}');
60
- control.setAttribute('aria-label', '{label}');
61
- control.setAttribute('input-suffix', '{inputSuffix}');
62
- control.setAttribute('errored', '{erroredState}');
63
- control.removeAttribute('aria-labelledby');
64
- control.classList.add('inline');
65
-
66
- labelElement.classList.add('shape');
67
- labelElement.setAttribute('filled', '{filled}');
68
- labelElement.setAttribute('color', '{color}');
69
- labelElement.setAttribute('icon', '{icon}');
70
- labelElement.setAttribute('shape-style', '{shapeStyle}');
71
- labelElement.setAttribute('trailingIcon', '{trailingIcon}');
72
- labelElement.setAttribute('populated', '{populatedState}');
73
- labelElement.setAttribute('outlined', '{outlined}');
74
- labelElement.setAttribute('focused', '{focusedState}');
75
- labelElement.setAttribute('label', '{label}');
76
- labelElement.setAttribute('shape-top', inline(({ shapeTop, filled }) => shapeTop || filled));
77
- labelElement.append(
78
- state,
79
- outline,
80
- html`
81
- <mdw-icon _if={icon} id=icon aria-hidden=true disabled={disabledState}>{icon}</mdw-icon>
82
- <span _if={inputPrefix} class=inline id=prefix aria-hidden=true focused={focusedState} populated={populatedState}>{inputPrefix}</span>
83
- <span _if={inputSuffix} class=inline id=suffix aria-hidden=true focused={focusedState} populated={populatedState}>{inputSuffix}</span>
84
- <mdw-icon _if={trailingIcon} id=trailing-icon ink={trailingIconInk} aria-hidden=true disabled={disabledState}>{trailingIcon}</mdw-icon>
85
- <div id=indicator _if={filled} focused={focusedState} hovered={hoveredState} errored={erroredState} disabled={disabledState} ></div>
86
- `,
87
- );
88
-
89
- outline.setAttribute('label', '{label}');
90
- outline.setAttribute('invalid', '{invalid}');
91
- outline.setAttribute('errored', '{erroredState}');
92
- outlineLeft.after(html`
93
- <div id=gap _if={label} label={label} populated={populatedState} focused={focusedState}>
94
- <div id=gap-slot focused={focusedState}></div>
95
- <span id=gap-label>{label}</span>
96
- </div>
97
- `);
98
-
99
- outlineLeft.setAttribute('focused', '{focusedState}');
100
- outlineRight.setAttribute('focused', '{focusedState}');
101
-
102
- shape.remove();
103
- state.setAttribute('_if', '{!outlined}');
104
-
105
- template.append(html`
106
- <div id=label-text _if={_showLabelText} aria-hidden=true
107
- outlined={outlined}
108
- populated={populatedState}
109
- focused={focusedState}
110
- icon={icon}
111
- trailing-icon={trailingIcon}
112
- disabled={disabledState}
113
- errored={erroredState}>{label}</div>
114
- <div _if={shouldShowSupporting} id=supporting disabled={disabledState} errored={erroredState}>
115
- {computeSupportingText}
116
- <slot id=supporting-slot name=supporting></slot>
117
- </div>
118
- `);
57
+ .expressions({
58
+ _shapeShapeTop({ shapeTop, filled }) {
59
+ return shapeTop || filled;
60
+ },
61
+ computedIconVariation({ iconVariation, outlined }) {
62
+ return iconVariation ?? (outlined ? null : 'filled');
119
63
  },
64
+ })
65
+ .html`
66
+ <div id=shape role=none filled={filled} icon={icon} trailing-icon={trailingIcon}
67
+ populated={populatedState} focused={focusedState} label={label} outlined={outlined}
68
+ shape-top={_shapeShapeTop}>
69
+ <mdw-icon mdw-if={icon} id=icon aria-hidden=true disabled={disabledState} icon={icon} variation={computedIconVariation}></mdw-icon>
70
+ <div id=inline role=none filled={filled} icon={icon} trailing-icon={trailingIcon}
71
+ populated={populatedState} focused={focusedState} label={label} outlined={outlined}>
72
+ <span mdw-if={inputPrefix} class=inline id=prefix aria-hidden=true focused={focusedState} populated={populatedState}>{inputPrefix}</span>
73
+ <span mdw-if={inputSuffix} class=inline id=suffix aria-hidden=true focused={focusedState} populated={populatedState}>{inputSuffix}</span>
74
+ </div>
75
+ <mdw-icon-button tabindex=-1 disabled={disabledState} mdw-if={trailingIcon} id=trailing-icon ink={trailingIconInk} disabled={disabledState} icon={trailingIcon}>{trailingIconLabel}</mdw-icon-button>
76
+ <div mdw-if={filled} id=indicator aria-hidden=true focused={focusedState} hovered={hoveredState} errored={erroredState} disabled={disabledState}></div>
77
+ </div>
78
+ <div id=label-text mdw-if={_showLabelText} aria-hidden=true
79
+ outlined={outlined}
80
+ populated={populatedState}
81
+ focused={focusedState}
82
+ icon={icon}
83
+ trailing-icon={trailingIcon}
84
+ disabled={disabledState}
85
+ errored={erroredState}>{label}</div>
86
+ <div mdw-if={shouldShowSupporting} id=supporting disabled={disabledState} errored={erroredState}>
87
+ {computeSupportingText}
88
+ <slot id=supporting-slot name=supporting></slot>
89
+ </div>
90
+
91
+ `
92
+ .recompose(({ html, refs: { control, outline, state, shape, inline } }) => {
93
+ control.setAttribute('placeholder', '{computePlaceholder}');
94
+ control.setAttribute('aria-label', '{label}');
95
+ control.setAttribute('input-suffix', '{inputSuffix}');
96
+ control.setAttribute('errored', '{erroredState}');
97
+ control.setAttribute('aria-describedby', 'supporting');
98
+ control.removeAttribute('aria-labelledby');
99
+ control.classList.add('inline');
100
+
101
+ state.setAttribute('mdw-if', '{!outlined}');
102
+ outline.append(html`
103
+ <div id=outline-left class=outline-section focused={focusedState}></div>
104
+ <div id=gap label={label} populated={populatedState} focused={focusedState}>
105
+ <div id=gap-slot focused={focusedState}></div>
106
+ <span id=gap-label>{label}</span>
107
+ </div>
108
+ <div id=outline-right class=outline-section focused={focusedState}></div>
109
+ `);
110
+ outline.setAttribute('label', '{label}');
111
+ outline.setAttribute('errored', '{erroredState}');
112
+ shape.prepend(outline, state);
113
+ inline.prepend(control);
114
+ })
115
+ .on({
120
116
  sizeChanged(oldValue, newValue) {
121
117
  this.refs.control.style.setProperty('--size', `${newValue}ch`);
122
118
  },
@@ -162,13 +158,15 @@ export default function TextFieldMixin(Base) {
162
158
 
163
159
  --descriptor-opacity: 0.5;
164
160
  --mdw-ink: var(--mdw-color__primary);
165
- --mdw-bg: var(--mdw-color__surface-variant);
161
+ --mdw-bg: var(--mdw-color__surface-container-highest);
166
162
 
167
163
  --mdw-type__font: var(--mdw-typescale__body-large__font);
168
164
  --mdw-type__letter-spacing: var(--mdw-typescale__body-large__letter-spacing);
169
165
 
170
166
  display: inline-block;
171
167
 
168
+ border-radius: 0;
169
+
172
170
  /* State layer */
173
171
  color: rgb(var(--mdw-color__on-surface));
174
172
 
@@ -176,48 +174,35 @@ export default function TextFieldMixin(Base) {
176
174
  letter-spacing: var(--mdw-type__letter-spacing);
177
175
  }
178
176
 
179
- :host([icon]) {
180
- --padding-inline-start: 12px;
181
- }
182
-
183
- :host([trailing-icon]) {
184
- --padding-inline-end: 12px;
185
- }
186
-
187
177
  :host(:is([color], [ink])) {
188
178
  background-color: transparent;
189
179
  color: rgb(var(--mdw-color__on-surface));
190
180
  }
191
181
 
192
182
  /** Guard against bleed */
193
- :host([label][outlined]) {
183
+ #shape[label][outlined] {
194
184
  --mdw-shape__size__top-start-size: min(var(--mdw-shape__size), 12px);
195
185
  --mdw-shape__size__bottom-start-size: min(var(--mdw-shape__size), 12px);
196
186
  --mdw-shape__size__top-end-size: min(var(--mdw-shape__size), 12px);
197
187
  --mdw-shape__size__bottom-end-size: min(var(--mdw-shape__size), 12px);
198
188
  }
199
189
 
200
- #label[label][outlined] {
201
- -webkit-mask-box-image-width: min(var(--mdw-shape__size), 12px);
202
- }
203
-
204
- #label {
190
+ #shape {
205
191
  position: relative;
206
192
 
207
193
  display: flex;
208
194
 
209
- align-items: center;
210
- overflow: visible;
211
-
212
- padding-inline-start: 16px;
213
- padding-inline-end: 16px;
214
-
215
195
  cursor: inherit;
216
196
 
217
197
  z-index: 0;
218
198
 
219
199
  background-color: transparent;
220
200
 
201
+ border-start-start-radius: calc(var(--mdw-shape__size__top-start-size));
202
+ border-start-end-radius: calc(var(--mdw-shape__size__top-end-size));
203
+ border-end-start-radius: calc(var(--mdw-shape__size__bottom-start-size));
204
+ border-end-end-radius: calc(var(--mdw-shape__size__bottom-end-size));
205
+
221
206
  font-weight: inherit;
222
207
  font-size: inherit;
223
208
  line-height: inherit;
@@ -227,12 +212,34 @@ export default function TextFieldMixin(Base) {
227
212
  transition: none 200ms cubic-bezier(0.0, 0.0, 0.2, 1);
228
213
  }
229
214
 
230
- #label:is([filled],[color]) {
215
+ #inline {
216
+ display: flex;
217
+
218
+ align-items: center;
219
+ overflow: visible;
220
+
221
+ flex: 1;
222
+ padding-block: var(--control__margin-top) var(--control__margin-bottom);
223
+
224
+ cursor: inherit;
225
+
226
+ font-weight: inherit;
227
+ font-size: inherit;
228
+ line-height: inherit;
229
+ font-family: inherit;
230
+ letter-spacing: inherit;
231
+
232
+ transition: none 200ms cubic-bezier(0.0, 0.0, 0.2, 1);
233
+ }
234
+
235
+
236
+
237
+ #shape:where([filled],[color]) {
231
238
  background-color: rgb(var(--mdw-bg));
232
239
  color: rgb(var(--mdw-color__on-surface));
233
240
  }
234
241
 
235
- #label[outlined] {
242
+ #shape[outlined] {
236
243
  background-color: transparent;
237
244
  }
238
245
 
@@ -245,22 +252,13 @@ export default function TextFieldMixin(Base) {
245
252
  color: rgb(var(--mdw-ink))
246
253
  }
247
254
 
248
- #label[icon] {
249
- padding-inline-start: 12px;
250
- }
251
-
252
- #label[trailing-icon] {
253
- padding-inline-end: 12px;
254
- }
255
-
256
- #label[focused] {
255
+ #shape[focused] {
257
256
  transition: none 100ms cubic-bezier(0.4, 0.0, 1, 1);
258
257
  }
259
258
 
260
- #label[shape-top] {
259
+ #shape[shape-top] {
261
260
  --mdw-shape__size__bottom-start-size: 0px;
262
261
  --mdw-shape__size__bottom-end-size: 0px;
263
- --mdw-shape__mask: linear-gradient(transparent 50%, black 50%);
264
262
  }
265
263
 
266
264
  #prefix,
@@ -285,16 +283,15 @@ export default function TextFieldMixin(Base) {
285
283
  inset: auto;
286
284
  align-self: flex-start;
287
285
 
288
- display: inline;
286
+ display: inline-block;
289
287
 
290
288
  box-sizing: border-box;
291
289
 
292
290
  block-size: auto;
293
- min-block-size: none;
291
+ min-block-size: 0;
294
292
  inline-size: 100%;
295
- min-inline-size: none;
293
+ min-inline-size: 0;
296
294
  flex: 1;
297
- border-block-start: solid var(--control__margin-top) transparent;
298
295
  border-block-end: solid var(--control__margin-bottom) transparent;
299
296
  padding-block: var(--control__padding-top) var(--control__padding-bottom);
300
297
 
@@ -304,7 +301,7 @@ export default function TextFieldMixin(Base) {
304
301
 
305
302
  transform: none;
306
303
 
307
- visibility: visible;
304
+ visibility: inherit;
308
305
 
309
306
  background-color: transparent;
310
307
  border-color: transparent;
@@ -316,6 +313,7 @@ export default function TextFieldMixin(Base) {
316
313
  line-height: inherit;
317
314
  font-family: inherit;
318
315
  letter-spacing: inherit;
316
+ text-align: initial;
319
317
 
320
318
  transition-duration: inherit;
321
319
  transition-property: color;
@@ -325,7 +323,6 @@ export default function TextFieldMixin(Base) {
325
323
  #suffix,
326
324
  #prefix {
327
325
  /* Symmetrical to allow centering */
328
- margin-block: var(--control__margin-top) var(--control__margin-bottom);
329
326
  padding-block: var(--control__padding-top) var(--control__padding-bottom);
330
327
  }
331
328
 
@@ -350,7 +347,7 @@ export default function TextFieldMixin(Base) {
350
347
  #icon {
351
348
  order: -2;
352
349
 
353
- margin-inline-end: 16px;
350
+ margin-inline-start: 12px;
354
351
 
355
352
  font-size: 24px;
356
353
  }
@@ -366,7 +363,8 @@ export default function TextFieldMixin(Base) {
366
363
  #trailing-icon {
367
364
  order: 2;
368
365
 
369
- margin-inline-start: 16px;
366
+ /* stylelint-disable-next-line declaration-property-value-disallowed-list */
367
+ margin-inline-end: 12px;
370
368
  }
371
369
 
372
370
  #indicator {
@@ -473,6 +471,31 @@ export default function TextFieldMixin(Base) {
473
471
 
474
472
  /** Outlined **/
475
473
 
474
+ #outline {
475
+ position: absolute;
476
+ inset: 0;
477
+
478
+ border-style: solid;
479
+ border-width: 0px;
480
+
481
+ pointer-events: none;
482
+
483
+ border-color: currentColor;
484
+ border-radius: inherit;
485
+ color: rgb(var(--mdw-color__outline));
486
+ }
487
+
488
+ #outline:is([pressed],[focused]) {
489
+ color: rgb(var(--mdw-ink));
490
+
491
+ transition-delay: 0;
492
+ transition-duration: 0;
493
+ }
494
+
495
+ #outline[disabled] {
496
+ color: rgba(var(--mdw-color__on-surface), 0.12);
497
+ }
498
+
476
499
  #outline::before {
477
500
  content: none;
478
501
  }
@@ -609,73 +632,6 @@ export default function TextFieldMixin(Base) {
609
632
  border-block-start-width: 2px;
610
633
  }
611
634
 
612
- @supports(-webkit-mask-box-image: none) {
613
- #outline[focused] {
614
- /** Fake 2px outline */
615
- filter:
616
- drop-shadow(1px 0px 0px currentColor)
617
- drop-shadow(0px 1px 0px currentColor)
618
- drop-shadow(-1px 0px 0px currentColor)
619
- drop-shadow(0px -1px 0px currentColor);
620
- }
621
-
622
- #outline::before {
623
- content: '';
624
-
625
- position: absolute;
626
- inset: 0;
627
-
628
- grid-column: calc(2 - var(--mdw-dir, 1)) / span 1;
629
- /* stylelint-disable-next-line liberty/use-logical-spec */
630
- margin-right: -0.99px;
631
- border: none;
632
-
633
- background-color: currentColor;
634
- -webkit-mask-box-image: var(--mdw-shape__mask-image__edges)
635
- 8 fill /
636
- auto
637
- stretch;
638
- -webkit-mask-box-image-width: auto 0 auto auto;
639
- }
640
-
641
- #outline::after {
642
- grid-column: calc(2 + var(--mdw-dir, 1)) / span 1;
643
- grid-row: 1;
644
-
645
- /* stylelint-disable-next-line liberty/use-logical-spec */
646
- margin-left: -0.99px;
647
- -webkit-mask-box-image-width: auto auto auto 0;
648
- }
649
-
650
- .outline-section {
651
- border: none;
652
- }
653
-
654
- #gap::after {
655
- border: none;
656
-
657
- background-color: currentColor;
658
- -webkit-mask-box-image: var(--mdw-shape__mask-image__edges)
659
- 8 fill /
660
- auto
661
- stretch;
662
- -webkit-mask-box-image-width: 0 0 auto 0;
663
- }
664
-
665
- #gap-slot::before,
666
- #gap-slot::after {
667
- border: none;
668
-
669
- background-color: currentColor;
670
-
671
- -webkit-mask-box-image: var(--mdw-shape__mask-image__edges)
672
- 8 fill /
673
- auto
674
- stretch;
675
- -webkit-mask-box-image-width: auto 0 0 0;
676
- }
677
- }
678
-
679
635
  #gap-slot::before {
680
636
  /* stylelint-disable-next-line liberty/use-logical-spec */
681
637
  margin-right: -0.99px;
@@ -701,7 +657,7 @@ export default function TextFieldMixin(Base) {
701
657
  padding: 0;
702
658
  }
703
659
 
704
- #label[label][filled] {
660
+ #inline[label][filled] {
705
661
  align-items: flex-start;
706
662
  }
707
663
 
@@ -753,8 +709,8 @@ export default function TextFieldMixin(Base) {
753
709
  }
754
710
 
755
711
  /* stylelint-disable-next-line selector-max-compound-selectors */
756
- #label[disabled],
757
- #label[disabled] #control {
712
+ #shape[disabled],
713
+ #shape[disabled] #control {
758
714
  cursor: not-allowed;
759
715
  }
760
716
 
@@ -778,7 +734,7 @@ export default function TextFieldMixin(Base) {
778
734
  color: rgba(var(--mdw-color__on-surface), 0.38);
779
735
  }
780
736
 
781
- #label[disabled] {
737
+ #shape[disabled] {
782
738
  background-color: rgba(var(--mdw-color__on-surface), calc(0.04));
783
739
  color: rgba(var(--mdw-color__on-surface), 0.38);
784
740
  }
@@ -787,7 +743,7 @@ export default function TextFieldMixin(Base) {
787
743
  color: rgba(var(--mdw-color__on-surface), 0.38);
788
744
  }
789
745
 
790
- #label[disabled][outlined] {
746
+ #shape[disabled][outlined] {
791
747
  background-color: transparent;
792
748
  }
793
749