@redvars/peacock 3.8.1 → 3.8.2

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 (474) hide show
  1. package/dist/{BaseInput-14YmcfK7.js → BaseInput-CU1zZYKc.js} +3 -3
  2. package/dist/{BaseInput-14YmcfK7.js.map → BaseInput-CU1zZYKc.js.map} +1 -1
  3. package/dist/ButtonConstants-CahP2_NA.js +4 -0
  4. package/dist/ButtonConstants-CahP2_NA.js.map +1 -0
  5. package/dist/{IndividualComponent-DUINtMGK.js → IndividualComponent-Bdwyrvd6.js} +2 -2
  6. package/dist/{IndividualComponent-DUINtMGK.js.map → IndividualComponent-Bdwyrvd6.js.map} +1 -1
  7. package/dist/{NativeHyperlinkMixin-DrYXyfMQ.js → NativeHyperlinkMixin-D9J4aBTy.js} +4 -30
  8. package/dist/NativeHyperlinkMixin-D9J4aBTy.js.map +1 -0
  9. package/dist/accordion-item.js +338 -0
  10. package/dist/accordion-item.js.map +1 -0
  11. package/dist/accordion.js +159 -0
  12. package/dist/accordion.js.map +1 -0
  13. package/dist/alert.js +190 -0
  14. package/dist/alert.js.map +1 -0
  15. package/dist/app-bar.js +324 -0
  16. package/dist/app-bar.js.map +1 -0
  17. package/dist/assets/components.css +1 -1
  18. package/dist/assets/components.css.map +1 -1
  19. package/dist/assets/styles.css +1 -1
  20. package/dist/assets/styles.css.map +1 -1
  21. package/dist/attachable-controller-CAKVrfcG.js +119 -0
  22. package/dist/attachable-controller-CAKVrfcG.js.map +1 -0
  23. package/dist/avatar.js +114 -0
  24. package/dist/avatar.js.map +1 -0
  25. package/dist/badge.js +91 -0
  26. package/dist/badge.js.map +1 -0
  27. package/dist/base-Cl6v8-BZ.js +9 -0
  28. package/dist/base-Cl6v8-BZ.js.map +1 -0
  29. package/dist/bottom-sheet.js +14 -5
  30. package/dist/bottom-sheet.js.map +1 -1
  31. package/dist/breadcrumb-item.js +163 -0
  32. package/dist/breadcrumb-item.js.map +1 -0
  33. package/dist/breadcrumb.js +95 -0
  34. package/dist/breadcrumb.js.map +1 -0
  35. package/dist/button-group.js +87 -137
  36. package/dist/button-group.js.map +1 -1
  37. package/dist/button.js +863 -133
  38. package/dist/button.js.map +1 -1
  39. package/dist/calendar-column-view.js +8 -4
  40. package/dist/calendar-column-view.js.map +1 -1
  41. package/dist/calendar-month-view.js +8 -4
  42. package/dist/calendar-month-view.js.map +1 -1
  43. package/dist/calendar.js +8 -4
  44. package/dist/calendar.js.map +1 -1
  45. package/dist/canvas.js +8 -4
  46. package/dist/canvas.js.map +1 -1
  47. package/dist/card-content.js +1 -1
  48. package/dist/card.js +23 -45
  49. package/dist/card.js.map +1 -1
  50. package/dist/cb-compound-expression.js +6 -2
  51. package/dist/cb-compound-expression.js.map +1 -1
  52. package/dist/cb-divider.js +7 -3
  53. package/dist/cb-divider.js.map +1 -1
  54. package/dist/cb-expression.js +6 -2
  55. package/dist/cb-expression.js.map +1 -1
  56. package/dist/cb-predicate.js +7 -3
  57. package/dist/cb-predicate.js.map +1 -1
  58. package/dist/{chart-bar-cn6rrna-.js → chart-bar-CYoGNXnK.js} +6 -2
  59. package/dist/{chart-bar-cn6rrna-.js.map → chart-bar-CYoGNXnK.js.map} +1 -1
  60. package/dist/chart-bar.js +7 -6
  61. package/dist/chart-bar.js.map +1 -1
  62. package/dist/chart-doughnut.js +8 -3
  63. package/dist/chart-doughnut.js.map +1 -1
  64. package/dist/chart-pie.js +8 -3
  65. package/dist/chart-pie.js.map +1 -1
  66. package/dist/chart-stacked-bar.js +7 -6
  67. package/dist/chart-stacked-bar.js.map +1 -1
  68. package/dist/checkbox.js +526 -0
  69. package/dist/checkbox.js.map +1 -0
  70. package/dist/chip.js +459 -0
  71. package/dist/chip.js.map +1 -0
  72. package/dist/{class-map-YU7g0o3B.js → class-map-DG7CA1et.js} +2 -2
  73. package/dist/{class-map-YU7g0o3B.js.map → class-map-DG7CA1et.js.map} +1 -1
  74. package/dist/clock.js +6 -2
  75. package/dist/clock.js.map +1 -1
  76. package/dist/code-editor.js +45 -30
  77. package/dist/code-editor.js.map +1 -1
  78. package/dist/code-highlighter.js +9 -5
  79. package/dist/code-highlighter.js.map +1 -1
  80. package/dist/condition-builder.js +5 -1
  81. package/dist/condition-builder.js.map +1 -1
  82. package/dist/container.js +141 -0
  83. package/dist/container.js.map +1 -0
  84. package/dist/custom-elements-jsdocs.json +721 -769
  85. package/dist/custom-elements.json +3213 -1979
  86. package/dist/datasource-B2eRh6Or.js +108 -0
  87. package/dist/datasource-B2eRh6Or.js.map +1 -0
  88. package/dist/dispatch-event-utils-CuEqjlPT.js.map +1 -1
  89. package/dist/divider.js +135 -0
  90. package/dist/divider.js.map +1 -0
  91. package/dist/dropdown-button.js +11 -6
  92. package/dist/dropdown-button.js.map +1 -1
  93. package/dist/element-internals-2CMts_0M.js +290 -0
  94. package/dist/element-internals-2CMts_0M.js.map +1 -0
  95. package/dist/elevation.js +94 -0
  96. package/dist/elevation.js.map +1 -0
  97. package/dist/empty-state.js +194 -0
  98. package/dist/empty-state.js.map +1 -0
  99. package/dist/{event-manager-D-QCmUgR.js → event-manager-DTyX2uYD.js} +2 -2
  100. package/dist/{event-manager-D-QCmUgR.js.map → event-manager-DTyX2uYD.js.map} +1 -1
  101. package/dist/fab.js +138 -145
  102. package/dist/fab.js.map +1 -1
  103. package/dist/field.js +461 -0
  104. package/dist/field.js.map +1 -0
  105. package/dist/{popover-DUPmMVWS.js → floating-controller-CnUZnOhK.js} +2 -171
  106. package/dist/floating-controller-CnUZnOhK.js.map +1 -0
  107. package/dist/{flow-designer-node-BWrPuxAR.js → flow-designer-node-DsVwQTac.js} +7 -3
  108. package/dist/{flow-designer-node-BWrPuxAR.js.map → flow-designer-node-DsVwQTac.js.map} +1 -1
  109. package/dist/flow-designer-node.js +3 -3
  110. package/dist/flow-designer.js +19 -12
  111. package/dist/flow-designer.js.map +1 -1
  112. package/dist/focus-ring.js +126 -0
  113. package/dist/focus-ring.js.map +1 -0
  114. package/dist/form-associated-BXADnjOB.js +388 -0
  115. package/dist/form-associated-BXADnjOB.js.map +1 -0
  116. package/dist/html-editor.js +21 -9
  117. package/dist/html-editor.js.map +1 -1
  118. package/dist/hyperlink-DLvb6MXE.js +98 -0
  119. package/dist/hyperlink-DLvb6MXE.js.map +1 -0
  120. package/dist/icon-button.js +1064 -0
  121. package/dist/icon-button.js.map +1 -0
  122. package/dist/icon.js +170 -0
  123. package/dist/icon.js.map +1 -0
  124. package/dist/if-defined-BXZpRQ4P.js +10 -0
  125. package/dist/if-defined-BXZpRQ4P.js.map +1 -0
  126. package/dist/image.js +201 -0
  127. package/dist/image.js.map +1 -0
  128. package/dist/index.js +73 -20
  129. package/dist/index.js.map +1 -1
  130. package/dist/is-dark-mode-DOcaw4Yq.js.map +1 -1
  131. package/dist/is-link-Dk2OV3PM.js +6 -0
  132. package/dist/is-link-Dk2OV3PM.js.map +1 -0
  133. package/dist/item.js +212 -0
  134. package/dist/item.js.map +1 -0
  135. package/dist/link.js +75 -0
  136. package/dist/link.js.map +1 -0
  137. package/dist/list-D6JLh1uh.js +352 -0
  138. package/dist/list-D6JLh1uh.js.map +1 -0
  139. package/dist/list.js +14 -0
  140. package/dist/list.js.map +1 -0
  141. package/dist/{peacock-loader.js → loader.js} +83 -22
  142. package/dist/loader.js.map +1 -0
  143. package/dist/menu-item.js +318 -0
  144. package/dist/menu-item.js.map +1 -0
  145. package/dist/menu.js +534 -0
  146. package/dist/menu.js.map +1 -0
  147. package/dist/modal.js +9 -5
  148. package/dist/modal.js.map +1 -1
  149. package/dist/navigation-rail-item.js +385 -0
  150. package/dist/navigation-rail-item.js.map +1 -0
  151. package/dist/navigation-rail.js +217 -0
  152. package/dist/navigation-rail.js.map +1 -0
  153. package/dist/notification-manager.js +8 -4
  154. package/dist/notification-manager.js.map +1 -1
  155. package/dist/notification.js +8 -4
  156. package/dist/notification.js.map +1 -1
  157. package/dist/number-counter.js +7 -3
  158. package/dist/number-counter.js.map +1 -1
  159. package/dist/{observe-slot-change-D8Xg-kSS.js → observe-slot-change-DPxaZrZF.js} +3 -4
  160. package/dist/observe-slot-change-DPxaZrZF.js.map +1 -0
  161. package/dist/option.js +121 -0
  162. package/dist/option.js.map +1 -0
  163. package/dist/pagination.js +255 -0
  164. package/dist/pagination.js.map +1 -0
  165. package/dist/popover-content.js +7 -3
  166. package/dist/popover-content.js.map +1 -1
  167. package/dist/popover.js +175 -3
  168. package/dist/popover.js.map +1 -1
  169. package/dist/{property-1psGvXOq.js → property-B49QQ8pS.js} +2 -2
  170. package/dist/{property-1psGvXOq.js.map → property-B49QQ8pS.js.map} +1 -1
  171. package/dist/query-CHb9Ft_d.js +10 -0
  172. package/dist/query-CHb9Ft_d.js.map +1 -0
  173. package/dist/query-assigned-elements-BJaGSqM0.js +10 -0
  174. package/dist/query-assigned-elements-BJaGSqM0.js.map +1 -0
  175. package/dist/radio.js +476 -0
  176. package/dist/radio.js.map +1 -0
  177. package/dist/ripple.js +506 -0
  178. package/dist/ripple.js.map +1 -0
  179. package/dist/search.js +12 -7
  180. package/dist/search.js.map +1 -1
  181. package/dist/segmented-button-group.js +137 -0
  182. package/dist/segmented-button-group.js.map +1 -0
  183. package/dist/segmented-button.js +289 -0
  184. package/dist/segmented-button.js.map +1 -0
  185. package/dist/select-Dwtk0RIU.js +3937 -0
  186. package/dist/select-Dwtk0RIU.js.map +1 -0
  187. package/dist/side-sheet.js +8 -4
  188. package/dist/side-sheet.js.map +1 -1
  189. package/dist/skeleton.js +122 -0
  190. package/dist/skeleton.js.map +1 -0
  191. package/dist/slider.js +346 -0
  192. package/dist/slider.js.map +1 -0
  193. package/dist/snackbar.js +335 -0
  194. package/dist/snackbar.js.map +1 -0
  195. package/dist/spinner.js +100 -0
  196. package/dist/spinner.js.map +1 -0
  197. package/dist/split-button.js +10 -5
  198. package/dist/split-button.js.map +1 -1
  199. package/dist/spread-B5cgadZl.js +32 -0
  200. package/dist/spread-B5cgadZl.js.map +1 -0
  201. package/dist/src/__internal/aria/aria.d.ts +98 -0
  202. package/dist/src/__internal/aria/delegate.d.ts +54 -0
  203. package/dist/src/__internal/events/dispatch-hooks.d.ts +80 -0
  204. package/dist/src/__internal/mixins/element-internals.d.ts +40 -0
  205. package/dist/src/__internal/mixins/form-associated.d.ts +174 -0
  206. package/dist/src/__internal/mixins/form-submitter.d.ts +59 -0
  207. package/dist/src/__internal/mixins/hyperlink.d.ts +42 -0
  208. package/dist/src/__internal/mixins/mixin.d.ts +49 -0
  209. package/dist/src/{__utils → __internal/utils}/observe-slot-change.d.ts +1 -0
  210. package/dist/src/accordion/accordion-item.d.ts +3 -1
  211. package/dist/src/accordion/accordion.d.ts +1 -1
  212. package/dist/src/alert/alert.d.ts +43 -0
  213. package/dist/src/alert/index.d.ts +1 -0
  214. package/dist/src/app-bar/app-bar.d.ts +92 -0
  215. package/dist/src/app-bar/index.d.ts +1 -0
  216. package/dist/src/avatar/avatar.d.ts +2 -0
  217. package/dist/src/bottom-sheet/bottom-sheet.d.ts +1 -1
  218. package/dist/src/breadcrumb/breadcrumb-item/breadcrumb-item.d.ts +1 -0
  219. package/dist/src/button/ButtonTypes.d.ts +5 -0
  220. package/dist/src/button/base-button/base-button.d.ts +18 -0
  221. package/dist/src/button/button/button.d.ts +29 -37
  222. package/dist/src/button/button-group/button-group.d.ts +17 -18
  223. package/dist/src/{fab → button/fab}/fab.d.ts +8 -26
  224. package/dist/src/button/icon-button/icon-button.d.ts +20 -27
  225. package/dist/src/button/index.d.ts +1 -0
  226. package/dist/src/calendar/calendar.d.ts +1 -1
  227. package/dist/src/canvas/canvas.d.ts +1 -1
  228. package/dist/src/card/card.d.ts +5 -6
  229. package/dist/src/chart-bar/chart-bar.d.ts +1 -1
  230. package/dist/src/chart-bar/chart-stacked-bar.d.ts +1 -1
  231. package/dist/src/checkbox/checkbox.d.ts +5 -1
  232. package/dist/src/chip/chip/chip.d.ts +9 -8
  233. package/dist/src/container/container.d.ts +5 -1
  234. package/dist/src/divider/divider.d.ts +2 -0
  235. package/dist/src/empty-state/empty-state.d.ts +1 -0
  236. package/dist/src/field/field.d.ts +19 -1
  237. package/dist/src/focus-ring/focus-ring.d.ts +3 -7
  238. package/dist/src/html-editor/html-editor.d.ts +1 -1
  239. package/dist/src/icon/icon.d.ts +9 -4
  240. package/dist/src/image/image.d.ts +4 -0
  241. package/dist/src/index.d.ts +7 -6
  242. package/dist/src/item/item.d.ts +20 -29
  243. package/dist/src/link/link.d.ts +1 -1
  244. package/dist/src/list/list-item.d.ts +7 -5
  245. package/dist/src/list/list.d.ts +3 -2
  246. package/dist/src/menu/menu/menu.d.ts +14 -0
  247. package/dist/src/menu/menu-item/menu-item.d.ts +10 -2
  248. package/dist/src/modal/modal.d.ts +1 -1
  249. package/dist/src/navigation-rail/navigation-rail-item.d.ts +5 -4
  250. package/dist/src/navigation-rail/navigation-rail.d.ts +1 -1
  251. package/dist/src/radio/radio.d.ts +5 -0
  252. package/dist/src/ripple/ripple.d.ts +10 -1
  253. package/dist/src/search/search.d.ts +1 -1
  254. package/dist/src/segmented-button/segmented-button-group.d.ts +2 -2
  255. package/dist/src/segmented-button/segmented-button.d.ts +2 -0
  256. package/dist/src/side-sheet/side-sheet.d.ts +1 -1
  257. package/dist/src/skeleton/skeleton.d.ts +1 -0
  258. package/dist/src/slider/slider.d.ts +1 -0
  259. package/dist/src/snackbar/snackbar.d.ts +12 -2
  260. package/dist/src/svg/svg.d.ts +5 -0
  261. package/dist/src/table/table.d.ts +5 -0
  262. package/dist/src/tabs/tab.d.ts +2 -7
  263. package/dist/src/toolbar/toolbar.d.ts +2 -2
  264. package/dist/{state-DwbEjqVk.js → state-DkTK9EGF.js} +2 -2
  265. package/dist/{state-DwbEjqVk.js.map → state-DkTK9EGF.js.map} +1 -1
  266. package/dist/{style-map-DVmWOuYy.js → style-map-BQD5Et1D.js} +2 -2
  267. package/dist/{style-map-DVmWOuYy.js.map → style-map-BQD5Et1D.js.map} +1 -1
  268. package/dist/sub-menu.js +241 -0
  269. package/dist/sub-menu.js.map +1 -0
  270. package/dist/svg.js +273 -0
  271. package/dist/svg.js.map +1 -0
  272. package/dist/tab-group.js +188 -0
  273. package/dist/tab-group.js.map +1 -0
  274. package/dist/tab-panel.js +61 -0
  275. package/dist/tab-panel.js.map +1 -0
  276. package/dist/tab.js +658 -0
  277. package/dist/tab.js.map +1 -0
  278. package/dist/table.js +620 -0
  279. package/dist/table.js.map +1 -0
  280. package/dist/tabs.js +240 -0
  281. package/dist/tabs.js.map +1 -0
  282. package/dist/throttle-C7ZAPqtu.js +24 -0
  283. package/dist/throttle-C7ZAPqtu.js.map +1 -0
  284. package/dist/toolbar.js +9 -5
  285. package/dist/toolbar.js.map +1 -1
  286. package/dist/tooltip.js +270 -0
  287. package/dist/tooltip.js.map +1 -0
  288. package/dist/tsconfig.tsbuildinfo +1 -1
  289. package/dist/{unsafe-html-BsGUjx94.js → unsafe-html-Ct0N2_UU.js} +2 -2
  290. package/dist/{unsafe-html-BsGUjx94.js.map → unsafe-html-Ct0N2_UU.js.map} +1 -1
  291. package/dist/when-DEJm_QN9.js +9 -0
  292. package/dist/when-DEJm_QN9.js.map +1 -0
  293. package/package.json +4 -2
  294. package/readme.md +3 -3
  295. package/scss/mixin.scss +8 -6
  296. package/src/__internal/aria/aria.ts +293 -0
  297. package/src/__internal/aria/delegate.ts +206 -0
  298. package/src/__internal/events/dispatch-hooks.ts +182 -0
  299. package/src/__internal/mixins/element-internals.ts +73 -0
  300. package/src/__internal/mixins/form-associated.ts +295 -0
  301. package/src/__internal/mixins/form-submitter.ts +133 -0
  302. package/src/__internal/mixins/hyperlink.ts +71 -0
  303. package/src/__internal/mixins/mixin.ts +58 -0
  304. package/src/{__utils → __internal/utils}/observe-slot-change.ts +2 -5
  305. package/src/accordion/accordion-item.ts +6 -2
  306. package/src/accordion/accordion.ts +4 -2
  307. package/src/accordion/demo/index.html +95 -90
  308. package/src/alert/alert.scss +82 -0
  309. package/src/{banner/banner.ts → alert/alert.ts} +22 -22
  310. package/src/alert/index.ts +1 -0
  311. package/src/app-bar/app-bar-colors.scss +17 -0
  312. package/src/app-bar/app-bar.scss +165 -0
  313. package/src/app-bar/app-bar.ts +155 -0
  314. package/src/app-bar/index.ts +1 -0
  315. package/src/avatar/avatar.ts +4 -0
  316. package/src/badge/badge.ts +2 -0
  317. package/src/bottom-sheet/bottom-sheet.ts +8 -2
  318. package/src/breadcrumb/breadcrumb/breadcrumb.ts +2 -0
  319. package/src/breadcrumb/breadcrumb-item/breadcrumb-item.ts +3 -0
  320. package/src/button/ButtonTypes.ts +17 -0
  321. package/src/button/base-button/base-button.ts +85 -0
  322. package/src/button/button/button-base.scss +306 -0
  323. package/src/button/button/button-colors.scss +27 -32
  324. package/src/button/button/button-layers.scss +126 -39
  325. package/src/button/button/button-shapes.scss +73 -0
  326. package/src/button/button/button.scss +12 -286
  327. package/src/button/button/button.ts +174 -194
  328. package/src/button/button-group/button-group.scss +43 -36
  329. package/src/button/button-group/button-group.ts +26 -137
  330. package/src/{fab → button/fab}/fab-colors.scss +0 -10
  331. package/src/button/fab/fab-sizes.scss +37 -0
  332. package/src/button/fab/fab.scss +172 -0
  333. package/src/{fab → button/fab}/fab.ts +69 -105
  334. package/src/button/icon-button/icon-button-sizes.scss +18 -3
  335. package/src/button/icon-button/icon-button.scss +5 -0
  336. package/src/button/icon-button/icon-button.ts +111 -141
  337. package/src/button/index.ts +7 -0
  338. package/src/calendar/calendar.ts +2 -2
  339. package/src/canvas/canvas.ts +2 -2
  340. package/src/card/card.scss +3 -3
  341. package/src/card/card.ts +20 -40
  342. package/src/chart-bar/chart-bar.ts +2 -2
  343. package/src/chart-bar/chart-stacked-bar.ts +2 -2
  344. package/src/checkbox/checkbox.ts +12 -4
  345. package/src/chip/chip/chip.scss +1 -1
  346. package/src/chip/chip/chip.ts +35 -55
  347. package/src/chip/demo/index.html +30 -26
  348. package/src/code-editor/code-editor.ts +68 -58
  349. package/src/code-editor/demo/index.html +32 -27
  350. package/src/code-highlighter/code-highlighter.ts +1 -1
  351. package/src/code-highlighter/demo/index.html +24 -21
  352. package/src/container/container.ts +8 -2
  353. package/src/date-picker/date-picker.ts +2 -3
  354. package/src/divider/divider.ts +5 -1
  355. package/src/dropdown-button/demo/index.html +106 -101
  356. package/src/dropdown-button/dropdown-button.ts +1 -1
  357. package/src/elevation/elevation.ts +2 -0
  358. package/src/empty-state/empty-state.ts +3 -0
  359. package/src/field/field.ts +52 -33
  360. package/src/focus-ring/focus-ring.ts +5 -7
  361. package/src/html-editor/html-editor.ts +28 -16
  362. package/src/icon/datasource.ts +1 -1
  363. package/src/icon/icon.ts +27 -15
  364. package/src/image/image.ts +18 -6
  365. package/src/index.ts +24 -6
  366. package/src/input/input.ts +2 -2
  367. package/src/item/item.scss +126 -162
  368. package/src/item/item.ts +70 -323
  369. package/src/link/link.ts +3 -1
  370. package/src/list/list-item.scss +43 -31
  371. package/src/list/list-item.ts +79 -75
  372. package/src/list/list.scss +1 -13
  373. package/src/list/list.ts +6 -3
  374. package/src/{peacock-loader.ts → loader.ts} +91 -79
  375. package/src/menu/menu/menu.scss +14 -11
  376. package/src/menu/menu/menu.ts +20 -8
  377. package/src/menu/menu-item/menu-item.scss +35 -3
  378. package/src/menu/menu-item/menu-item.ts +40 -34
  379. package/src/menu/sub-menu/sub-menu.ts +3 -0
  380. package/src/modal/modal.ts +2 -2
  381. package/src/navigation-rail/navigation-rail-item.ts +21 -36
  382. package/src/navigation-rail/navigation-rail.scss +1 -0
  383. package/src/navigation-rail/navigation-rail.ts +4 -2
  384. package/src/number-field/number-field.ts +2 -2
  385. package/src/pagination/pagination.ts +2 -0
  386. package/src/popover/popover.ts +3 -3
  387. package/src/radio/radio.ts +13 -5
  388. package/src/ripple/ripple.ts +14 -1
  389. package/src/search/search.ts +3 -3
  390. package/src/segmented-button/segmented-button-group.ts +8 -4
  391. package/src/segmented-button/segmented-button.ts +4 -0
  392. package/src/select/option.ts +2 -0
  393. package/src/side-sheet/side-sheet.ts +2 -2
  394. package/src/sidebar-menu/sidebar-menu-item.ts +3 -2
  395. package/src/skeleton/skeleton.ts +3 -0
  396. package/src/slider/slider.ts +4 -1
  397. package/src/snackbar/snackbar.ts +40 -25
  398. package/src/spinner/spinner.ts +2 -0
  399. package/src/svg/svg.ts +27 -9
  400. package/src/switch/switch.ts +1 -1
  401. package/src/table/table.ts +16 -3
  402. package/src/tabs/demo/index.html +79 -79
  403. package/src/tabs/tab-group.ts +2 -0
  404. package/src/tabs/tab-panel.ts +2 -0
  405. package/src/tabs/tab.scss +4 -4
  406. package/src/tabs/tab.ts +16 -39
  407. package/src/tabs/tabs.ts +2 -0
  408. package/src/textarea/textarea.ts +2 -2
  409. package/src/time-picker/time-picker.ts +2 -2
  410. package/src/toolbar/toolbar.ts +3 -3
  411. package/src/tooltip/tooltip.ts +14 -8
  412. package/src/url-field/url-field.ts +2 -3
  413. package/dist/ButtonConstants-D06bY4uy.js +0 -114
  414. package/dist/ButtonConstants-D06bY4uy.js.map +0 -1
  415. package/dist/NativeHyperlinkMixin-DrYXyfMQ.js.map +0 -1
  416. package/dist/banner.js +0 -186
  417. package/dist/banner.js.map +0 -1
  418. package/dist/button-colors-D7sJyPy8.js +0 -586
  419. package/dist/button-colors-D7sJyPy8.js.map +0 -1
  420. package/dist/icon-CueRR7wx.js +0 -260
  421. package/dist/icon-CueRR7wx.js.map +0 -1
  422. package/dist/icon-button-CAzYr_qr.js +0 -318
  423. package/dist/icon-button-CAzYr_qr.js.map +0 -1
  424. package/dist/navigation-rail-CM_svs5_.js +0 -14184
  425. package/dist/navigation-rail-CM_svs5_.js.map +0 -1
  426. package/dist/observe-slot-change-D8Xg-kSS.js.map +0 -1
  427. package/dist/peacock-loader.js.map +0 -1
  428. package/dist/popover-DUPmMVWS.js.map +0 -1
  429. package/dist/query-QBcUV-L_.js +0 -15
  430. package/dist/query-QBcUV-L_.js.map +0 -1
  431. package/dist/src/banner/banner.d.ts +0 -43
  432. package/dist/src/banner/index.d.ts +0 -1
  433. package/dist/src/button/GroupButtonInterface.d.ts +0 -4
  434. package/src/banner/banner.scss +0 -82
  435. package/src/banner/index.ts +0 -1
  436. package/src/button/GroupButtonInterface.ts +0 -4
  437. package/src/button/button/only-button.scss +0 -13
  438. package/src/fab/fab-sizes.scss +0 -37
  439. package/src/fab/fab.scss +0 -143
  440. /package/dist/src/{__controllers → __internal/controllers}/attachable-controller.d.ts +0 -0
  441. /package/dist/src/{__controllers → __internal/controllers}/floating-controller.d.ts +0 -0
  442. /package/dist/src/{__directive → __internal/directive}/spread.d.ts +0 -0
  443. /package/dist/src/{__mixins → __internal/mixins}/MixinConstructor.d.ts +0 -0
  444. /package/dist/src/{__mixins → __internal/mixins}/NativeButtonMixin.d.ts +0 -0
  445. /package/dist/src/{__mixins → __internal/mixins}/NativeHyperlinkMixin.d.ts +0 -0
  446. /package/dist/src/{__utils → __internal/utils}/cache-fetch.d.ts +0 -0
  447. /package/dist/src/{__utils → __internal/utils}/copy-to-clipboard.d.ts +0 -0
  448. /package/dist/src/{__utils → __internal/utils}/dispatch-event-utils.d.ts +0 -0
  449. /package/dist/src/{__utils → __internal/utils}/is-dark-mode.d.ts +0 -0
  450. /package/dist/src/{__utils → __internal/utils}/is-in-viewport.d.ts +0 -0
  451. /package/dist/src/{__utils → __internal/utils}/is-link.d.ts +0 -0
  452. /package/dist/src/{__utils → __internal/utils}/observe-theme-change.d.ts +0 -0
  453. /package/dist/src/{__utils → __internal/utils}/sanitize-svg.d.ts +0 -0
  454. /package/dist/src/{__utils → __internal/utils}/throttle.d.ts +0 -0
  455. /package/dist/src/{fab → button/fab}/index.d.ts +0 -0
  456. /package/dist/src/{peacock-loader.d.ts → loader.d.ts} +0 -0
  457. /package/dist/test/{banner.test.d.ts → alert.test.d.ts} +0 -0
  458. /package/src/{__controllers → __internal/controllers}/attachable-controller.ts +0 -0
  459. /package/src/{__controllers → __internal/controllers}/floating-controller.ts +0 -0
  460. /package/src/{__directive → __internal/directive}/spread.ts +0 -0
  461. /package/src/{__mixins → __internal/mixins}/MixinConstructor.ts +0 -0
  462. /package/src/{__mixins → __internal/mixins}/NativeButtonMixin.ts +0 -0
  463. /package/src/{__mixins → __internal/mixins}/NativeHyperlinkMixin.ts +0 -0
  464. /package/src/{__mixins → __internal/mixins}/README.md +0 -0
  465. /package/src/{__utils → __internal/utils}/cache-fetch.ts +0 -0
  466. /package/src/{__utils → __internal/utils}/copy-to-clipboard.ts +0 -0
  467. /package/src/{__utils → __internal/utils}/dispatch-event-utils.ts +0 -0
  468. /package/src/{__utils → __internal/utils}/is-dark-mode.ts +0 -0
  469. /package/src/{__utils → __internal/utils}/is-in-viewport.ts +0 -0
  470. /package/src/{__utils → __internal/utils}/is-link.ts +0 -0
  471. /package/src/{__utils → __internal/utils}/observe-theme-change.ts +0 -0
  472. /package/src/{__utils → __internal/utils}/sanitize-svg.ts +0 -0
  473. /package/src/{__utils → __internal/utils}/throttle.ts +0 -0
  474. /package/src/{fab → button/fab}/index.ts +0 -0
@@ -0,0 +1,71 @@
1
+ import { LitElement } from 'lit';
2
+ import { property } from 'lit/decorators.js';
3
+
4
+ import { MixinBase, MixinReturn } from './mixin.js';
5
+
6
+ /**
7
+ * An element that navigates to a URL when activated, similar to `<a href>`.
8
+ */
9
+ export interface Hyperlink {
10
+ /**
11
+ * The URL the hyperlink points to. When set, the component renders as an
12
+ * `<a>` element. Maps to the native `href` attribute.
13
+ */
14
+ href?: string;
15
+
16
+ /**
17
+ * Where to display the linked URL. Maps to the native `target` attribute.
18
+ * Possible values: `"_self"`, `"_blank"`, `"_parent"`, `"_top"`, or a
19
+ * frame name. When using `"_blank"`, set `rel="noopener noreferrer"`.
20
+ */
21
+ target: '_self' | '_parent' | '_blank' | '_top' | string;
22
+
23
+ /**
24
+ * The relationship between the current document and the linked URL.
25
+ * Maps to the native `rel` attribute. Use `"noopener noreferrer"` when
26
+ * `target="_blank"` to prevent tab-napping attacks.
27
+ */
28
+ rel: string;
29
+
30
+ /**
31
+ * Causes the browser to download the linked URL instead of navigating.
32
+ * A string value is used as the suggested filename. Only applies when
33
+ * `href` is set. Maps to the native `download` attribute.
34
+ */
35
+ download: string;
36
+ }
37
+
38
+ /**
39
+ * Mixes in hyperlink behavior for a class.
40
+ *
41
+ * @example
42
+ * ```ts
43
+ * class MyLink extends mixinHyperlink(LitElement) {}
44
+ * ```
45
+ *
46
+ * @param base The class to mix functionality into.
47
+ * @return The provided class with `Hyperlink` mixed in.
48
+ */
49
+ export function mixinHyperlink<T extends MixinBase<LitElement>>(
50
+ base: T,
51
+ ): MixinReturn<T, Hyperlink> {
52
+ abstract class HyperlinkElement extends base implements Hyperlink {
53
+ @property() href?: string;
54
+
55
+ @property() target: '_self' | '_parent' | '_blank' | '_top' | string =
56
+ '_self';
57
+
58
+ @property() rel = '';
59
+
60
+ @property() download = '';
61
+
62
+ // Mixins must have a constructor with `...args: any[]`
63
+ // tslint:disable-next-line:no-any
64
+ // eslint-disable-next-line no-useless-constructor
65
+ constructor(...args: any[]) {
66
+ super(...args);
67
+ }
68
+ }
69
+
70
+ return HyperlinkElement;
71
+ }
@@ -0,0 +1,58 @@
1
+ /**
2
+ * The base class for a mixin with an optional expected base class type.
3
+ *
4
+ * @template ExpectedBase Optional expected base class type, such as
5
+ * `LitElement`.
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * interface Foo {
10
+ * isFoo: boolean;
11
+ * }
12
+ *
13
+ * function mixinFoo<T extends MixinBase>(base: T): MixinReturn<T, Foo> {
14
+ * // Mixins must be `abstract`
15
+ * abstract class FooImpl extends base implements Foo {
16
+ * isFoo = true;
17
+ * }
18
+ *
19
+ * return FooImpl;
20
+ * }
21
+ * ```
22
+ */
23
+ export type MixinBase<ExpectedBase = object> = abstract new (
24
+ // Mixins must have a constructor with `...args: any[]`
25
+ // tslint:disable-next-line:no-any
26
+ ...args: any[]
27
+ ) => ExpectedBase;
28
+
29
+ /**
30
+ * The return value of a mixin.
31
+ *
32
+ * @template MixinBase The generic that extends `MixinBase` used for the mixin's
33
+ * base class argument.
34
+ * @template MixinClass Optional interface of fuctionality that was mixed in.
35
+ * Omit if no additional APIs were added (such as purely overriding base
36
+ * class functionality).
37
+ *
38
+ * @example
39
+ * ```ts
40
+ * interface Foo {
41
+ * isFoo: boolean;
42
+ * }
43
+ *
44
+ * // Mixins must be `abstract`
45
+ * function mixinFoo<T extends MixinBase>(base: T): MixinReturn<T, Foo> {
46
+ * abstract class FooImpl extends base implements Foo {
47
+ * isFoo = true;
48
+ * }
49
+ *
50
+ * return FooImpl;
51
+ * }
52
+ * ```
53
+ */
54
+ // eslint-disable-next-line no-shadow
55
+ export type MixinReturn<MixinBase, MixinClass = object> =
56
+ // Mixins must have a constructor with `...args: any[]`
57
+ // tslint:disable-next-line:no-any
58
+ (abstract new (...args: any[]) => MixinClass) & MixinBase;
@@ -1,14 +1,11 @@
1
- function hasMeaningfulContent(slotElement: HTMLSlotElement | null) {
1
+ export function hasMeaningfulContent(slotElement: HTMLSlotElement | null) {
2
2
  const nodes = slotElement?.assignedNodes({ flatten: true }) || [];
3
3
 
4
4
  for (const node of nodes) {
5
5
  if (node.nodeType === Node.ELEMENT_NODE) {
6
6
  return true;
7
7
  }
8
- if (
9
- node.nodeType === Node.TEXT_NODE &&
10
- (node.textContent?.trim().length || 0) > 0
11
- ) {
8
+ if (node.nodeType === Node.TEXT_NODE && node.textContent?.match(/\S/)) {
12
9
  return true;
13
10
  }
14
11
  }
@@ -1,13 +1,14 @@
1
- import { html, LitElement, nothing } from 'lit';
1
+ import { html, LitElement, nothing } from 'lit';
2
2
  import { property, query, state } from 'lit/decorators.js';
3
3
  import { classMap } from 'lit/directives/class-map.js';
4
4
  import styles from './accordion-item.scss';
5
+ import IndividualComponent from '@/IndividualComponent.js';
5
6
 
6
7
  /**
7
8
  * @label Accordion Item
8
9
  * @tag wc-accordion-item
9
10
  * @rawTag accordion-item
10
- * @summary An expansion panel with a header that reveals or hides associated content. Follows Material Design 3 expansion panel guidelines.
11
+ * @summary An expansion panel with a header that reveals or hides associated content.
11
12
  *
12
13
  * @slot - The body content revealed when the panel is expanded.
13
14
  * @slot heading - The panel title. Renders as `body-large` text.
@@ -31,6 +32,7 @@ import styles from './accordion-item.scss';
31
32
  * ```
32
33
  * @tags display
33
34
  */
35
+ @IndividualComponent
34
36
  export class AccordionItem extends LitElement {
35
37
  static styles = [styles];
36
38
 
@@ -62,9 +64,11 @@ export class AccordionItem extends LitElement {
62
64
  @property({ type: String, reflect: true, attribute: 'toggle-position' })
63
65
  togglePosition: 'before' | 'after' = 'after';
64
66
 
67
+ /** True when the `description` slot contains at least one non-empty node. */
65
68
  @state()
66
69
  private _hasDescriptionSlot = false;
67
70
 
71
+ /** True when the `heading` slot contains at least one non-empty node. */
68
72
  @state()
69
73
  private _hasHeadingSlot = false;
70
74
 
@@ -1,13 +1,14 @@
1
- import { html, LitElement } from 'lit';
1
+ import { html, LitElement } from 'lit';
2
2
  import { property, queryAssignedElements } from 'lit/decorators.js';
3
3
  import styles from './accordion.scss';
4
4
  import { AccordionItem } from './accordion-item.js';
5
+ import IndividualComponent from '@/IndividualComponent.js';
5
6
 
6
7
  /**
7
8
  * @label Accordion
8
9
  * @tag wc-accordion
9
10
  * @rawTag accordion
10
- * @summary A vertically stacked set of expansion panels. Follows Material Design 3 expansion panel guidelines.
11
+ * @summary A vertically stacked set of expansion panels.
11
12
  *
12
13
  * @example
13
14
  * ```html
@@ -25,6 +26,7 @@ import { AccordionItem } from './accordion-item.js';
25
26
  * ```
26
27
  * @tags display
27
28
  */
29
+ @IndividualComponent
28
30
  export class Accordion extends LitElement {
29
31
  static styles = [styles];
30
32
 
@@ -1,98 +1,103 @@
1
1
  <!doctype html>
2
- <html lang='en-GB'>
3
- <head>
4
- <meta charset='utf-8'>
5
- <meta name='viewport' content='width=device-width, initial-scale=1.0, viewport-fit=cover' />
6
- <link rel='stylesheet' href='/dist/assets/styles/tokens.css' />
7
- <link href="https://fonts.googleapis.com/css2?family=Noto+Sans+Mono:wght@100..900&family=Noto+Sans:ital,wght@0,100..900;1,100..900&display=swap" rel="stylesheet">
2
+ <html lang="en-GB">
3
+ <head>
4
+ <meta charset="utf-8" />
5
+ <meta
6
+ name="viewport"
7
+ content="width=device-width, initial-scale=1.0, viewport-fit=cover"
8
+ />
9
+ <link rel="stylesheet" href="/dist/assets/styles/tokens.css" />
10
+ <link
11
+ href="https://fonts.googleapis.com/css2?family=Noto+Sans+Mono:wght@100..900&family=Noto+Sans:ital,wght@0,100..900;1,100..900&display=swap"
12
+ rel="stylesheet"
13
+ />
8
14
 
9
- <style>
10
- body {
11
- background: #fafafa;
12
- padding: 2rem;
13
- max-width: 640px;
14
- margin: 0 auto;
15
- }
16
- h3 {
17
- margin: 1.5rem 0 0.5rem;
18
- font-family: sans-serif;
19
- font-size: 0.875rem;
20
- color: #666;
21
- }
22
- </style>
23
- </head>
24
- <body>
15
+ <style>
16
+ body {
17
+ background: #fafafa;
18
+ padding: 2rem;
19
+ max-width: 640px;
20
+ margin: 0 auto;
21
+ }
22
+ h3 {
23
+ margin: 1.5rem 0 0.5rem;
24
+ font-family: sans-serif;
25
+ font-size: 0.875rem;
26
+ color: #666;
27
+ }
28
+ </style>
29
+ </head>
30
+ <body>
31
+ <h3>Default</h3>
32
+ <wc-accordion>
33
+ <wc-accordion-item>
34
+ <span slot="heading">Personal information</span>
35
+ <span slot="description">Fill in your personal details</span>
36
+ <p>Type in your name and address below.</p>
37
+ </wc-accordion-item>
38
+ <wc-accordion-item>
39
+ <span slot="heading">Shipping address</span>
40
+ <span slot="description">Where should we send your order?</span>
41
+ <p>Add your shipping address to continue.</p>
42
+ </wc-accordion-item>
43
+ <wc-accordion-item disabled>
44
+ <span slot="heading">Billing address</span>
45
+ <p>This section is unavailable.</p>
46
+ </wc-accordion-item>
47
+ </wc-accordion>
25
48
 
26
- <h3>Default</h3>
27
- <wc-accordion>
28
- <wc-accordion-item>
29
- <span slot="heading">Personal information</span>
30
- <span slot="description">Fill in your personal details</span>
31
- <p>Type in your name and address below.</p>
32
- </wc-accordion-item>
33
- <wc-accordion-item>
34
- <span slot="heading">Shipping address</span>
35
- <span slot="description">Where should we send your order?</span>
36
- <p>Add your shipping address to continue.</p>
37
- </wc-accordion-item>
38
- <wc-accordion-item disabled>
39
- <span slot="heading">Billing address</span>
40
- <p>This section is unavailable.</p>
41
- </wc-accordion-item>
42
- </wc-accordion>
49
+ <h3>Multi (allow multiple panels open)</h3>
50
+ <wc-accordion multi>
51
+ <wc-accordion-item>
52
+ <span slot="heading">Panel A</span>
53
+ <p>Content for panel A.</p>
54
+ </wc-accordion-item>
55
+ <wc-accordion-item open>
56
+ <span slot="heading">Panel B</span>
57
+ <p>Content for panel B (initially open).</p>
58
+ </wc-accordion-item>
59
+ <wc-accordion-item>
60
+ <span slot="heading">Panel C</span>
61
+ <p>Content for panel C.</p>
62
+ </wc-accordion-item>
63
+ </wc-accordion>
43
64
 
44
- <h3>Multi (allow multiple panels open)</h3>
45
- <wc-accordion multi>
46
- <wc-accordion-item>
47
- <span slot="heading">Panel A</span>
48
- <p>Content for panel A.</p>
49
- </wc-accordion-item>
50
- <wc-accordion-item open>
51
- <span slot="heading">Panel B</span>
52
- <p>Content for panel B (initially open).</p>
53
- </wc-accordion-item>
54
- <wc-accordion-item>
55
- <span slot="heading">Panel C</span>
56
- <p>Content for panel C.</p>
57
- </wc-accordion-item>
58
- </wc-accordion>
65
+ <h3>Toggle position: before</h3>
66
+ <wc-accordion>
67
+ <wc-accordion-item toggle-position="before">
68
+ <span slot="heading">Panel 1</span>
69
+ <p>Icon appears at the leading start.</p>
70
+ </wc-accordion-item>
71
+ <wc-accordion-item toggle-position="before">
72
+ <span slot="heading">Panel 2</span>
73
+ <p>Icon appears at the leading start.</p>
74
+ </wc-accordion-item>
75
+ </wc-accordion>
59
76
 
60
- <h3>Toggle position: before</h3>
61
- <wc-accordion>
62
- <wc-accordion-item toggle-position="before">
63
- <span slot="heading">Panel 1</span>
64
- <p>Icon appears at the leading start.</p>
65
- </wc-accordion-item>
66
- <wc-accordion-item toggle-position="before">
67
- <span slot="heading">Panel 2</span>
68
- <p>Icon appears at the leading start.</p>
69
- </wc-accordion-item>
70
- </wc-accordion>
77
+ <h3>Hide toggle</h3>
78
+ <wc-accordion>
79
+ <wc-accordion-item hide-toggle>
80
+ <span slot="heading">No toggle icon</span>
81
+ <p>The expand indicator is hidden.</p>
82
+ </wc-accordion-item>
83
+ <wc-accordion-item hide-toggle>
84
+ <span slot="heading">Another panel</span>
85
+ <p>Click the header to toggle.</p>
86
+ </wc-accordion-item>
87
+ </wc-accordion>
71
88
 
72
- <h3>Hide toggle</h3>
73
- <wc-accordion>
74
- <wc-accordion-item hide-toggle>
75
- <span slot="heading">No toggle icon</span>
76
- <p>The expand indicator is hidden.</p>
77
- </wc-accordion-item>
78
- <wc-accordion-item hide-toggle>
79
- <span slot="heading">Another panel</span>
80
- <p>Click the header to toggle.</p>
81
- </wc-accordion-item>
82
- </wc-accordion>
89
+ <h3>Flat display mode</h3>
90
+ <wc-accordion display-mode="flat">
91
+ <wc-accordion-item>
92
+ <span slot="heading">Flat Panel 1</span>
93
+ <p>No borders between panels. Suitable inside cards.</p>
94
+ </wc-accordion-item>
95
+ <wc-accordion-item>
96
+ <span slot="heading">Flat Panel 2</span>
97
+ <p>Content here.</p>
98
+ </wc-accordion-item>
99
+ </wc-accordion>
83
100
 
84
- <h3>Flat display mode</h3>
85
- <wc-accordion display-mode="flat">
86
- <wc-accordion-item>
87
- <span slot="heading">Flat Panel 1</span>
88
- <p>No borders between panels. Suitable inside cards.</p>
89
- </wc-accordion-item>
90
- <wc-accordion-item>
91
- <span slot="heading">Flat Panel 2</span>
92
- <p>Content here.</p>
93
- </wc-accordion-item>
94
- </wc-accordion>
95
-
96
- <script type='module' src='/dist/peacock-loader.js'></script>
97
- </body>
101
+ <script type="module" src="/dist/loader.js"></script>
102
+ </body>
98
103
  </html>
@@ -0,0 +1,82 @@
1
+ @use '../../scss/mixin';
2
+
3
+ @include mixin.base-styles;
4
+
5
+ :host {
6
+ display: block;
7
+ }
8
+
9
+ .alert {
10
+ align-items: flex-start;
11
+ background: var(--alert-container-color);
12
+ border-radius: var(--alert-border-radius);
13
+ display: grid;
14
+ gap: var(--spacing-100);
15
+ grid-template-columns: auto 1fr;
16
+ padding: var(--spacing-200);
17
+ }
18
+
19
+ .alert-icon {
20
+ align-items: center;
21
+ color: var(--alert-icon-color);
22
+ display: inline-flex;
23
+ justify-content: center;
24
+ --icon-size: 1.5rem;
25
+ }
26
+
27
+ .alert-content {
28
+ .alert-label {
29
+ display: inline;
30
+ @include mixin.get-typography(label-large);
31
+ color: var(--alert-label-text-color);
32
+ margin-inline-end: var(--spacing-050);
33
+ }
34
+
35
+ .alert-description {
36
+ display: inline;
37
+ @include mixin.get-typography(body-medium);
38
+ color: var(--alert-description-text-color);
39
+ }
40
+ }
41
+
42
+
43
+ // Default styles for the alert and content. These will be overridden by the variant-specific styles below.
44
+ :host {
45
+ --alert-container-color: var(--color-tertiary-container);
46
+ --alert-label-text-color: var(--color-on-tertiary-container);
47
+ --alert-description-text-color: var(--color-on-tertiary-container);
48
+ --alert-icon-color: var(--color-on-tertiary-container);
49
+ --alert-border-radius: var(--shape-corner-small);
50
+ }
51
+
52
+ .alert.info,
53
+ .alert-content.info {
54
+ --alert-container-color: var(--color-primary-container);
55
+ --alert-label-text-color: var(--color-on-primary-container);
56
+ --alert-description-text-color: var(--color-on-primary-container);
57
+ --alert-icon-color: var(--color-on-primary-container);
58
+ }
59
+
60
+ .alert.success,
61
+ .alert-content.success {
62
+ --alert-container-color: var(--color-success-container);
63
+ --alert-label-text-color: var(--color-on-success-container);
64
+ --alert-description-text-color: var(--color-on-success-container);
65
+ --alert-icon-color: var(--color-on-success-container);
66
+ }
67
+
68
+ .alert.warning,
69
+ .alert-content.warning {
70
+ --alert-container-color: var(--color-warning-container);
71
+ --alert-label-text-color: var(--color-on-warning-container);
72
+ --alert-description-text-color: var(--color-on-warning-container);
73
+ --alert-icon-color: var(--color-on-warning-container);
74
+ }
75
+
76
+ .alert.error,
77
+ .alert-content.error {
78
+ --alert-container-color: var(--color-error-container);
79
+ --alert-label-text-color: var(--color-on-error-container);
80
+ --alert-description-text-color: var(--color-on-error-container);
81
+ --alert-icon-color: var(--color-on-error-container);
82
+ }
@@ -3,11 +3,11 @@ import { property } from 'lit/decorators.js';
3
3
  import { classMap } from 'lit/directives/class-map.js';
4
4
 
5
5
  import IndividualComponent from '@/IndividualComponent.js';
6
- import styles from './banner.scss';
6
+ import styles from './alert.scss';
7
7
 
8
- type BannerVariant = 'note' | 'info' | 'success' | 'warning' | 'error';
8
+ type AlertVariant = 'note' | 'info' | 'success' | 'warning' | 'error';
9
9
 
10
- const VARIANT_LABELS: Record<BannerVariant, string> = {
10
+ const VARIANT_LABELS: Record<AlertVariant, string> = {
11
11
  note: 'Note',
12
12
  info: 'Info',
13
13
  success: 'Success',
@@ -15,7 +15,7 @@ const VARIANT_LABELS: Record<BannerVariant, string> = {
15
15
  error: 'Error',
16
16
  };
17
17
 
18
- const VARIANT_ICONS: Record<BannerVariant, string> = {
18
+ const VARIANT_ICONS: Record<AlertVariant, string> = {
19
19
  note: 'star',
20
20
  info: 'info',
21
21
  success: 'check_circle',
@@ -24,32 +24,32 @@ const VARIANT_ICONS: Record<BannerVariant, string> = {
24
24
  };
25
25
 
26
26
  /**
27
- * @label Banner
28
- * @tag wc-banner
29
- * @rawTag banner
30
- * @summary Banners show short, prominent contextual messages with optional icon and description.
27
+ * @label Alert
28
+ * @tag wc-alert
29
+ * @rawTag alert
30
+ * @summary Alerts show short, prominent contextual messages with optional icon and description.
31
31
  *
32
- * @cssprop --banner-container-color - Background color of the banner container.
33
- * @cssprop --banner-label-text-color - Label text color.
34
- * @cssprop --banner-description-text-color - Description text color.
35
- * @cssprop --banner-icon-color - Icon color.
36
- * @cssprop --banner-border-radius - Border radius of the banner surface.
32
+ * @cssprop --alert-container-color - Background color of the alert container.
33
+ * @cssprop --alert-label-text-color - Label text color.
34
+ * @cssprop --alert-description-text-color - Description text color.
35
+ * @cssprop --alert-icon-color - Icon color.
36
+ * @cssprop --alert-border-radius - Border radius of the alert surface.
37
37
  *
38
38
  * @example
39
39
  * ```html
40
- * <wc-banner variant="note" description="Use semantic roles that preserve a 3:1 contrast ratio."></wc-banner>
40
+ * <wc-alert variant="note" description="Use semantic roles that preserve a 3:1 contrast ratio."></wc-alert>
41
41
  * ```
42
42
  * @tags display, feedback
43
43
  */
44
44
  @IndividualComponent
45
- export class Banner extends LitElement {
45
+ export class Alert extends LitElement {
46
46
  static styles = [styles];
47
47
 
48
48
  /**
49
- * Visual intent of the banner.
49
+ * Visual intent of the alert.
50
50
  */
51
51
  @property({ type: String, reflect: true })
52
- variant: BannerVariant = 'note';
52
+ variant: AlertVariant = 'note';
53
53
 
54
54
  /**
55
55
  * Optional explicit label text. Falls back to a variant-based label.
@@ -79,19 +79,19 @@ export class Banner extends LitElement {
79
79
 
80
80
  render() {
81
81
  return html`
82
- <div class=${classMap({ 'banner': true, [this.variant]: true })} role="status" aria-live="polite">
83
- <div class="banner-icon" aria-hidden="true">
82
+ <div class=${classMap({ 'alert': true, [this.variant]: true })} role="status" aria-live="polite">
83
+ <div class="alert-icon" aria-hidden="true">
84
84
  <slot name="icon">
85
85
  <wc-icon name=${this.resolvedIcon}></wc-icon>
86
86
  </slot>
87
87
  </div>
88
88
 
89
- <div class=${classMap({ 'banner-content': true, [this.variant]: true })}>
90
- <div class="banner-label">
89
+ <div class=${classMap({ 'alert-content': true, [this.variant]: true })}>
90
+ <div class="alert-label">
91
91
  <slot name="label">${this.resolvedLabel}:</slot>
92
92
  </div>
93
93
 
94
- <div class="banner-description">
94
+ <div class="alert-description">
95
95
  <slot>${this.description || nothing}</slot>
96
96
  </div>
97
97
  </div>
@@ -0,0 +1 @@
1
+ export { Alert } from './alert.js';
@@ -0,0 +1,17 @@
1
+ :host {
2
+ --app-bar-container-color: var(--color-surface);
3
+ --app-bar-headline-color: var(--color-on-surface);
4
+ --app-bar-leading-icon-color: var(--color-on-surface);
5
+ --app-bar-trailing-icon-color: var(--color-on-surface-variant);
6
+
7
+ /* Internal aliases */
8
+ --_app-bar-container-color: var(--app-bar-container-color);
9
+ --_app-bar-headline-color: var(--app-bar-headline-color);
10
+ --_app-bar-leading-icon-color: var(--app-bar-leading-icon-color);
11
+ --_app-bar-trailing-icon-color: var(--app-bar-trailing-icon-color);
12
+ }
13
+
14
+ /* Scrolled state uses surface-container for slight tonal elevation */
15
+ :host([scrolled]) {
16
+ --app-bar-container-color: var(--color-surface-container);
17
+ }