@redvars/peacock 3.8.1 → 3.8.3

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 (501) 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/babel-DBsfpl3B.js +18 -0
  26. package/dist/babel-DBsfpl3B.js.map +1 -0
  27. package/dist/badge.js +91 -0
  28. package/dist/badge.js.map +1 -0
  29. package/dist/base-Cl6v8-BZ.js +9 -0
  30. package/dist/base-Cl6v8-BZ.js.map +1 -0
  31. package/dist/bottom-sheet.js +14 -5
  32. package/dist/bottom-sheet.js.map +1 -1
  33. package/dist/breadcrumb-item.js +163 -0
  34. package/dist/breadcrumb-item.js.map +1 -0
  35. package/dist/breadcrumb.js +95 -0
  36. package/dist/breadcrumb.js.map +1 -0
  37. package/dist/button-group.js +87 -137
  38. package/dist/button-group.js.map +1 -1
  39. package/dist/button.js +863 -133
  40. package/dist/button.js.map +1 -1
  41. package/dist/calendar-column-view.js +8 -4
  42. package/dist/calendar-column-view.js.map +1 -1
  43. package/dist/calendar-month-view.js +8 -4
  44. package/dist/calendar-month-view.js.map +1 -1
  45. package/dist/calendar.js +8 -4
  46. package/dist/calendar.js.map +1 -1
  47. package/dist/canvas.js +8 -4
  48. package/dist/canvas.js.map +1 -1
  49. package/dist/card-content.js +1 -1
  50. package/dist/card.js +45 -52
  51. package/dist/card.js.map +1 -1
  52. package/dist/cb-compound-expression.js +6 -2
  53. package/dist/cb-compound-expression.js.map +1 -1
  54. package/dist/cb-divider.js +7 -3
  55. package/dist/cb-divider.js.map +1 -1
  56. package/dist/cb-expression.js +6 -2
  57. package/dist/cb-expression.js.map +1 -1
  58. package/dist/cb-predicate.js +7 -3
  59. package/dist/cb-predicate.js.map +1 -1
  60. package/dist/{chart-bar-cn6rrna-.js → chart-bar-CYoGNXnK.js} +6 -2
  61. package/dist/{chart-bar-cn6rrna-.js.map → chart-bar-CYoGNXnK.js.map} +1 -1
  62. package/dist/chart-bar.js +7 -6
  63. package/dist/chart-bar.js.map +1 -1
  64. package/dist/chart-doughnut.js +8 -3
  65. package/dist/chart-doughnut.js.map +1 -1
  66. package/dist/chart-pie.js +8 -3
  67. package/dist/chart-pie.js.map +1 -1
  68. package/dist/chart-stacked-bar.js +7 -6
  69. package/dist/chart-stacked-bar.js.map +1 -1
  70. package/dist/checkbox.js +526 -0
  71. package/dist/checkbox.js.map +1 -0
  72. package/dist/chip.js +459 -0
  73. package/dist/chip.js.map +1 -0
  74. package/dist/{class-map-YU7g0o3B.js → class-map-DG7CA1et.js} +2 -2
  75. package/dist/{class-map-YU7g0o3B.js.map → class-map-DG7CA1et.js.map} +1 -1
  76. package/dist/clock.js +6 -2
  77. package/dist/clock.js.map +1 -1
  78. package/dist/code-editor.js +45 -30
  79. package/dist/code-editor.js.map +1 -1
  80. package/dist/code-highlighter.js +82 -11216
  81. package/dist/code-highlighter.js.map +1 -1
  82. package/dist/color-picker.js +701 -0
  83. package/dist/color-picker.js.map +1 -0
  84. package/dist/condition-builder.js +5 -1
  85. package/dist/condition-builder.js.map +1 -1
  86. package/dist/container.js +141 -0
  87. package/dist/container.js.map +1 -0
  88. package/dist/custom-elements-jsdocs.json +823 -778
  89. package/dist/custom-elements.json +4067 -2207
  90. package/dist/datasource-B2eRh6Or.js +108 -0
  91. package/dist/datasource-B2eRh6Or.js.map +1 -0
  92. package/dist/dispatch-event-utils-CuEqjlPT.js.map +1 -1
  93. package/dist/divider.js +135 -0
  94. package/dist/divider.js.map +1 -0
  95. package/dist/dropdown-button.js +11 -6
  96. package/dist/dropdown-button.js.map +1 -1
  97. package/dist/element-internals-2CMts_0M.js +290 -0
  98. package/dist/element-internals-2CMts_0M.js.map +1 -0
  99. package/dist/elevation.js +94 -0
  100. package/dist/elevation.js.map +1 -0
  101. package/dist/empty-state.js +194 -0
  102. package/dist/empty-state.js.map +1 -0
  103. package/dist/estree-C2LDzX4U.js +47 -0
  104. package/dist/estree-C2LDzX4U.js.map +1 -0
  105. package/dist/{event-manager-D-QCmUgR.js → event-manager-DTyX2uYD.js} +2 -2
  106. package/dist/{event-manager-D-QCmUgR.js.map → event-manager-DTyX2uYD.js.map} +1 -1
  107. package/dist/fab.js +139 -148
  108. package/dist/fab.js.map +1 -1
  109. package/dist/field.js +461 -0
  110. package/dist/field.js.map +1 -0
  111. package/dist/{popover-DUPmMVWS.js → floating-controller-CnUZnOhK.js} +2 -171
  112. package/dist/floating-controller-CnUZnOhK.js.map +1 -0
  113. package/dist/{flow-designer-node-BWrPuxAR.js → flow-designer-node-DsVwQTac.js} +7 -3
  114. package/dist/{flow-designer-node-BWrPuxAR.js.map → flow-designer-node-DsVwQTac.js.map} +1 -1
  115. package/dist/flow-designer-node.js +3 -3
  116. package/dist/flow-designer.js +19 -12
  117. package/dist/flow-designer.js.map +1 -1
  118. package/dist/focus-ring.js +126 -0
  119. package/dist/focus-ring.js.map +1 -0
  120. package/dist/form-associated-BXADnjOB.js +388 -0
  121. package/dist/form-associated-BXADnjOB.js.map +1 -0
  122. package/dist/html-D22sQuVy.js +27 -0
  123. package/dist/html-D22sQuVy.js.map +1 -0
  124. package/dist/html-editor.js +21 -9
  125. package/dist/html-editor.js.map +1 -1
  126. package/dist/hyperlink-DLvb6MXE.js +98 -0
  127. package/dist/hyperlink-DLvb6MXE.js.map +1 -0
  128. package/dist/icon-button.js +1064 -0
  129. package/dist/icon-button.js.map +1 -0
  130. package/dist/icon.js +170 -0
  131. package/dist/icon.js.map +1 -0
  132. package/dist/if-defined-BXZpRQ4P.js +10 -0
  133. package/dist/if-defined-BXZpRQ4P.js.map +1 -0
  134. package/dist/image.js +201 -0
  135. package/dist/image.js.map +1 -0
  136. package/dist/index-_g_oLekF.js +14095 -0
  137. package/dist/index-_g_oLekF.js.map +1 -0
  138. package/dist/index.js +74 -20
  139. package/dist/index.js.map +1 -1
  140. package/dist/is-dark-mode-DOcaw4Yq.js.map +1 -1
  141. package/dist/is-link-Dk2OV3PM.js +6 -0
  142. package/dist/is-link-Dk2OV3PM.js.map +1 -0
  143. package/dist/item.js +213 -0
  144. package/dist/item.js.map +1 -0
  145. package/dist/link.js +75 -0
  146. package/dist/link.js.map +1 -0
  147. package/dist/list-H0itjRte.js +526 -0
  148. package/dist/list-H0itjRte.js.map +1 -0
  149. package/dist/list.js +14 -0
  150. package/dist/list.js.map +1 -0
  151. package/dist/{peacock-loader.js → loader.js} +87 -22
  152. package/dist/loader.js.map +1 -0
  153. package/dist/menu-item.js +388 -0
  154. package/dist/menu-item.js.map +1 -0
  155. package/dist/menu.js +520 -0
  156. package/dist/menu.js.map +1 -0
  157. package/dist/modal.js +9 -5
  158. package/dist/modal.js.map +1 -1
  159. package/dist/navigation-rail-item.js +400 -0
  160. package/dist/navigation-rail-item.js.map +1 -0
  161. package/dist/navigation-rail.js +219 -0
  162. package/dist/navigation-rail.js.map +1 -0
  163. package/dist/notification-manager.js +8 -4
  164. package/dist/notification-manager.js.map +1 -1
  165. package/dist/notification.js +8 -4
  166. package/dist/notification.js.map +1 -1
  167. package/dist/number-counter.js +7 -3
  168. package/dist/number-counter.js.map +1 -1
  169. package/dist/{observe-slot-change-D8Xg-kSS.js → observe-slot-change-DPxaZrZF.js} +3 -4
  170. package/dist/observe-slot-change-DPxaZrZF.js.map +1 -0
  171. package/dist/option.js +121 -0
  172. package/dist/option.js.map +1 -0
  173. package/dist/pagination.js +255 -0
  174. package/dist/pagination.js.map +1 -0
  175. package/dist/pierre-dark-DFWl0m-C.js +4 -0
  176. package/dist/pierre-dark-DFWl0m-C.js.map +1 -0
  177. package/dist/pierre-light-BEkAPImt.js +4 -0
  178. package/dist/pierre-light-BEkAPImt.js.map +1 -0
  179. package/dist/popover-content.js +7 -3
  180. package/dist/popover-content.js.map +1 -1
  181. package/dist/popover.js +175 -3
  182. package/dist/popover.js.map +1 -1
  183. package/dist/postcss-BhbitHaI.js +64 -0
  184. package/dist/postcss-BhbitHaI.js.map +1 -0
  185. package/dist/{property-1psGvXOq.js → property-B49QQ8pS.js} +2 -2
  186. package/dist/{property-1psGvXOq.js.map → property-B49QQ8pS.js.map} +1 -1
  187. package/dist/query-CHb9Ft_d.js +10 -0
  188. package/dist/query-CHb9Ft_d.js.map +1 -0
  189. package/dist/query-assigned-elements-BJaGSqM0.js +10 -0
  190. package/dist/query-assigned-elements-BJaGSqM0.js.map +1 -0
  191. package/dist/radio.js +476 -0
  192. package/dist/radio.js.map +1 -0
  193. package/dist/ripple.js +506 -0
  194. package/dist/ripple.js.map +1 -0
  195. package/dist/search.js +12 -7
  196. package/dist/search.js.map +1 -1
  197. package/dist/segmented-button-group.js +137 -0
  198. package/dist/segmented-button-group.js.map +1 -0
  199. package/dist/segmented-button.js +289 -0
  200. package/dist/segmented-button.js.map +1 -0
  201. package/dist/select-CspawZ18.js +3944 -0
  202. package/dist/select-CspawZ18.js.map +1 -0
  203. package/dist/side-sheet.js +9 -5
  204. package/dist/side-sheet.js.map +1 -1
  205. package/dist/skeleton.js +122 -0
  206. package/dist/skeleton.js.map +1 -0
  207. package/dist/slider.js +346 -0
  208. package/dist/slider.js.map +1 -0
  209. package/dist/snackbar.js +335 -0
  210. package/dist/snackbar.js.map +1 -0
  211. package/dist/spinner.js +100 -0
  212. package/dist/spinner.js.map +1 -0
  213. package/dist/split-button.js +10 -5
  214. package/dist/split-button.js.map +1 -1
  215. package/dist/spread-B5cgadZl.js +32 -0
  216. package/dist/spread-B5cgadZl.js.map +1 -0
  217. package/dist/src/__internal/aria/aria.d.ts +98 -0
  218. package/dist/src/__internal/aria/delegate.d.ts +54 -0
  219. package/dist/src/__internal/events/dispatch-hooks.d.ts +80 -0
  220. package/dist/src/__internal/mixins/element-internals.d.ts +40 -0
  221. package/dist/src/__internal/mixins/form-associated.d.ts +174 -0
  222. package/dist/src/__internal/mixins/form-submitter.d.ts +59 -0
  223. package/dist/src/__internal/mixins/hyperlink.d.ts +42 -0
  224. package/dist/src/__internal/mixins/mixin.d.ts +49 -0
  225. package/dist/src/{__utils → __internal/utils}/observe-slot-change.d.ts +1 -0
  226. package/dist/src/accordion/accordion-item.d.ts +3 -1
  227. package/dist/src/accordion/accordion.d.ts +1 -1
  228. package/dist/src/alert/alert.d.ts +43 -0
  229. package/dist/src/alert/index.d.ts +1 -0
  230. package/dist/src/app-bar/app-bar.d.ts +92 -0
  231. package/dist/src/app-bar/index.d.ts +1 -0
  232. package/dist/src/avatar/avatar.d.ts +2 -0
  233. package/dist/src/bottom-sheet/bottom-sheet.d.ts +1 -1
  234. package/dist/src/breadcrumb/breadcrumb-item/breadcrumb-item.d.ts +1 -0
  235. package/dist/src/button/ButtonTypes.d.ts +5 -0
  236. package/dist/src/button/base-button/base-button.d.ts +18 -0
  237. package/dist/src/button/button/button.d.ts +29 -37
  238. package/dist/src/button/button-group/button-group.d.ts +17 -18
  239. package/dist/src/{fab → button/fab}/fab.d.ts +8 -26
  240. package/dist/src/button/icon-button/icon-button.d.ts +20 -27
  241. package/dist/src/button/index.d.ts +1 -0
  242. package/dist/src/calendar/calendar.d.ts +1 -1
  243. package/dist/src/canvas/canvas.d.ts +1 -1
  244. package/dist/src/card/card.d.ts +5 -6
  245. package/dist/src/chart-bar/chart-bar.d.ts +1 -1
  246. package/dist/src/chart-bar/chart-stacked-bar.d.ts +1 -1
  247. package/dist/src/checkbox/checkbox.d.ts +5 -1
  248. package/dist/src/chip/chip/chip.d.ts +9 -8
  249. package/dist/src/code-highlighter/code-highlighter.d.ts +2 -2
  250. package/dist/src/color-picker/color-picker.d.ts +85 -0
  251. package/dist/src/color-picker/index.d.ts +1 -0
  252. package/dist/src/container/container.d.ts +5 -1
  253. package/dist/src/divider/divider.d.ts +2 -0
  254. package/dist/src/empty-state/empty-state.d.ts +1 -0
  255. package/dist/src/field/field.d.ts +19 -1
  256. package/dist/src/focus-ring/focus-ring.d.ts +3 -7
  257. package/dist/src/html-editor/html-editor.d.ts +1 -1
  258. package/dist/src/icon/icon.d.ts +9 -4
  259. package/dist/src/image/image.d.ts +4 -0
  260. package/dist/src/index.d.ts +8 -6
  261. package/dist/src/item/item.d.ts +19 -29
  262. package/dist/src/link/link.d.ts +1 -1
  263. package/dist/src/list/list-item.d.ts +10 -6
  264. package/dist/src/list/list.d.ts +27 -2
  265. package/dist/src/menu/menu/menu.d.ts +14 -0
  266. package/dist/src/menu/menu-item/menu-item.d.ts +11 -4
  267. package/dist/src/modal/modal.d.ts +1 -1
  268. package/dist/src/navigation-rail/navigation-rail-item.d.ts +5 -4
  269. package/dist/src/navigation-rail/navigation-rail.d.ts +1 -1
  270. package/dist/src/radio/radio.d.ts +5 -0
  271. package/dist/src/ripple/ripple.d.ts +10 -1
  272. package/dist/src/search/search.d.ts +1 -1
  273. package/dist/src/segmented-button/segmented-button-group.d.ts +2 -2
  274. package/dist/src/segmented-button/segmented-button.d.ts +2 -0
  275. package/dist/src/side-sheet/side-sheet.d.ts +1 -1
  276. package/dist/src/skeleton/skeleton.d.ts +1 -0
  277. package/dist/src/slider/slider.d.ts +1 -0
  278. package/dist/src/snackbar/snackbar.d.ts +12 -2
  279. package/dist/src/svg/svg.d.ts +5 -0
  280. package/dist/src/table/table.d.ts +5 -0
  281. package/dist/src/tabs/tab.d.ts +2 -7
  282. package/dist/src/toolbar/toolbar.d.ts +2 -2
  283. package/dist/standalone-Ccq0tWwA.js +32 -0
  284. package/dist/standalone-Ccq0tWwA.js.map +1 -0
  285. package/dist/{state-DwbEjqVk.js → state-DkTK9EGF.js} +2 -2
  286. package/dist/{state-DwbEjqVk.js.map → state-DkTK9EGF.js.map} +1 -1
  287. package/dist/{style-map-DVmWOuYy.js → style-map-BQD5Et1D.js} +2 -2
  288. package/dist/{style-map-DVmWOuYy.js.map → style-map-BQD5Et1D.js.map} +1 -1
  289. package/dist/sub-menu.js +246 -0
  290. package/dist/sub-menu.js.map +1 -0
  291. package/dist/svg.js +273 -0
  292. package/dist/svg.js.map +1 -0
  293. package/dist/tab-group.js +188 -0
  294. package/dist/tab-group.js.map +1 -0
  295. package/dist/tab-panel.js +61 -0
  296. package/dist/tab-panel.js.map +1 -0
  297. package/dist/tab.js +658 -0
  298. package/dist/tab.js.map +1 -0
  299. package/dist/table.js +620 -0
  300. package/dist/table.js.map +1 -0
  301. package/dist/tabs.js +240 -0
  302. package/dist/tabs.js.map +1 -0
  303. package/dist/throttle-C7ZAPqtu.js +24 -0
  304. package/dist/throttle-C7ZAPqtu.js.map +1 -0
  305. package/dist/toolbar.js +9 -5
  306. package/dist/toolbar.js.map +1 -1
  307. package/dist/tooltip.js +270 -0
  308. package/dist/tooltip.js.map +1 -0
  309. package/dist/tsconfig.tsbuildinfo +1 -1
  310. package/dist/{unsafe-html-BsGUjx94.js → unsafe-html-Ct0N2_UU.js} +2 -2
  311. package/dist/{unsafe-html-BsGUjx94.js.map → unsafe-html-Ct0N2_UU.js.map} +1 -1
  312. package/dist/when-DEJm_QN9.js +9 -0
  313. package/dist/when-DEJm_QN9.js.map +1 -0
  314. package/package.json +4 -2
  315. package/readme.md +4 -4
  316. package/scss/mixin.scss +9 -6
  317. package/src/__internal/aria/aria.ts +293 -0
  318. package/src/__internal/aria/delegate.ts +206 -0
  319. package/src/__internal/events/dispatch-hooks.ts +182 -0
  320. package/src/__internal/mixins/element-internals.ts +73 -0
  321. package/src/__internal/mixins/form-associated.ts +295 -0
  322. package/src/__internal/mixins/form-submitter.ts +133 -0
  323. package/src/__internal/mixins/hyperlink.ts +71 -0
  324. package/src/__internal/mixins/mixin.ts +58 -0
  325. package/src/{__utils → __internal/utils}/observe-slot-change.ts +2 -5
  326. package/src/accordion/accordion-item.ts +6 -2
  327. package/src/accordion/accordion.ts +4 -2
  328. package/src/accordion/demo/index.html +95 -90
  329. package/src/alert/alert.scss +82 -0
  330. package/src/{banner/banner.ts → alert/alert.ts} +22 -22
  331. package/src/alert/index.ts +1 -0
  332. package/src/app-bar/app-bar-colors.scss +17 -0
  333. package/src/app-bar/app-bar.scss +165 -0
  334. package/src/app-bar/app-bar.ts +155 -0
  335. package/src/app-bar/index.ts +1 -0
  336. package/src/avatar/avatar.ts +4 -0
  337. package/src/badge/badge.ts +2 -0
  338. package/src/bottom-sheet/bottom-sheet.ts +8 -2
  339. package/src/breadcrumb/breadcrumb/breadcrumb.ts +2 -0
  340. package/src/breadcrumb/breadcrumb-item/breadcrumb-item.ts +3 -0
  341. package/src/button/ButtonTypes.ts +17 -0
  342. package/src/button/base-button/base-button.ts +85 -0
  343. package/src/button/button/button-base.scss +307 -0
  344. package/src/button/button/button-colors.scss +27 -32
  345. package/src/button/button/button-layers.scss +126 -43
  346. package/src/button/button/button-shapes.scss +73 -0
  347. package/src/button/button/button.scss +12 -286
  348. package/src/button/button/button.ts +174 -194
  349. package/src/button/button-group/button-group.scss +43 -36
  350. package/src/button/button-group/button-group.ts +26 -137
  351. package/src/{fab → button/fab}/fab-colors.scss +0 -10
  352. package/src/button/fab/fab-sizes.scss +37 -0
  353. package/src/button/fab/fab.scss +172 -0
  354. package/src/{fab → button/fab}/fab.ts +69 -109
  355. package/src/button/icon-button/icon-button-sizes.scss +18 -3
  356. package/src/button/icon-button/icon-button.scss +5 -0
  357. package/src/button/icon-button/icon-button.ts +111 -141
  358. package/src/button/index.ts +7 -0
  359. package/src/calendar/calendar.ts +2 -2
  360. package/src/canvas/canvas.ts +2 -2
  361. package/src/card/card.scss +21 -8
  362. package/src/card/card.ts +20 -40
  363. package/src/chart-bar/chart-bar.ts +2 -2
  364. package/src/chart-bar/chart-stacked-bar.ts +2 -2
  365. package/src/checkbox/checkbox.ts +12 -4
  366. package/src/chip/chip/chip.scss +1 -1
  367. package/src/chip/chip/chip.ts +35 -55
  368. package/src/chip/demo/index.html +30 -26
  369. package/src/code-editor/code-editor.ts +68 -58
  370. package/src/code-editor/demo/index.html +32 -27
  371. package/src/code-highlighter/code-highlighter.ts +95 -40
  372. package/src/code-highlighter/demo/index.html +24 -21
  373. package/src/color-picker/color-picker.scss +217 -0
  374. package/src/color-picker/color-picker.ts +478 -0
  375. package/src/color-picker/index.ts +1 -0
  376. package/src/container/container.ts +8 -2
  377. package/src/date-picker/date-picker.ts +2 -3
  378. package/src/divider/divider.ts +5 -1
  379. package/src/dropdown-button/demo/index.html +106 -101
  380. package/src/dropdown-button/dropdown-button.ts +1 -1
  381. package/src/elevation/elevation.ts +2 -0
  382. package/src/empty-state/empty-state.ts +3 -0
  383. package/src/field/field.ts +52 -33
  384. package/src/focus-ring/focus-ring.ts +5 -7
  385. package/src/html-editor/html-editor.ts +28 -16
  386. package/src/icon/datasource.ts +1 -1
  387. package/src/icon/icon.ts +27 -15
  388. package/src/image/image.ts +18 -6
  389. package/src/index.ts +25 -6
  390. package/src/input/input.ts +2 -2
  391. package/src/item/item.scss +127 -161
  392. package/src/item/item.ts +69 -323
  393. package/src/link/link.ts +3 -1
  394. package/src/list/list-item.scss +48 -32
  395. package/src/list/list-item.ts +109 -79
  396. package/src/list/list.scss +1 -13
  397. package/src/list/list.ts +170 -5
  398. package/src/{peacock-loader.ts → loader.ts} +95 -79
  399. package/src/menu/menu/menu.scss +15 -26
  400. package/src/menu/menu/menu.ts +20 -9
  401. package/src/menu/menu-item/menu-item.scss +82 -20
  402. package/src/menu/menu-item/menu-item.ts +85 -46
  403. package/src/menu/sub-menu/sub-menu.scss +5 -1
  404. package/src/menu/sub-menu/sub-menu.ts +3 -0
  405. package/src/modal/modal.ts +2 -2
  406. package/src/navigation-rail/navigation-rail-item.scss +25 -8
  407. package/src/navigation-rail/navigation-rail-item.ts +21 -36
  408. package/src/navigation-rail/navigation-rail.scss +25 -21
  409. package/src/navigation-rail/navigation-rail.ts +4 -2
  410. package/src/number-field/number-field.ts +2 -2
  411. package/src/pagination/pagination.ts +2 -0
  412. package/src/popover/popover.ts +3 -3
  413. package/src/radio/radio.ts +13 -5
  414. package/src/ripple/ripple.ts +14 -1
  415. package/src/search/search.ts +3 -3
  416. package/src/segmented-button/segmented-button-group.ts +8 -4
  417. package/src/segmented-button/segmented-button.ts +4 -0
  418. package/src/select/option.ts +2 -0
  419. package/src/side-sheet/side-sheet.ts +3 -3
  420. package/src/sidebar-menu/sidebar-menu-item.scss +12 -6
  421. package/src/sidebar-menu/sidebar-menu-item.ts +3 -2
  422. package/src/skeleton/skeleton.ts +3 -0
  423. package/src/slider/slider.ts +4 -1
  424. package/src/snackbar/snackbar.ts +40 -25
  425. package/src/spinner/spinner.ts +2 -0
  426. package/src/svg/svg.ts +27 -9
  427. package/src/switch/switch.ts +1 -1
  428. package/src/table/table.ts +16 -3
  429. package/src/tabs/demo/index.html +79 -79
  430. package/src/tabs/tab-group.ts +2 -0
  431. package/src/tabs/tab-panel.ts +2 -0
  432. package/src/tabs/tab.scss +4 -4
  433. package/src/tabs/tab.ts +16 -39
  434. package/src/tabs/tabs.ts +2 -0
  435. package/src/textarea/textarea.ts +2 -2
  436. package/src/time-picker/time-picker.ts +2 -2
  437. package/src/toolbar/toolbar.ts +3 -3
  438. package/src/tooltip/tooltip.ts +14 -8
  439. package/src/url-field/url-field.ts +2 -3
  440. package/dist/ButtonConstants-D06bY4uy.js +0 -114
  441. package/dist/ButtonConstants-D06bY4uy.js.map +0 -1
  442. package/dist/NativeHyperlinkMixin-DrYXyfMQ.js.map +0 -1
  443. package/dist/banner.js +0 -186
  444. package/dist/banner.js.map +0 -1
  445. package/dist/button-colors-D7sJyPy8.js +0 -586
  446. package/dist/button-colors-D7sJyPy8.js.map +0 -1
  447. package/dist/icon-CueRR7wx.js +0 -260
  448. package/dist/icon-CueRR7wx.js.map +0 -1
  449. package/dist/icon-button-CAzYr_qr.js +0 -318
  450. package/dist/icon-button-CAzYr_qr.js.map +0 -1
  451. package/dist/navigation-rail-CM_svs5_.js +0 -14184
  452. package/dist/navigation-rail-CM_svs5_.js.map +0 -1
  453. package/dist/observe-slot-change-D8Xg-kSS.js.map +0 -1
  454. package/dist/peacock-loader.js.map +0 -1
  455. package/dist/popover-DUPmMVWS.js.map +0 -1
  456. package/dist/query-QBcUV-L_.js +0 -15
  457. package/dist/query-QBcUV-L_.js.map +0 -1
  458. package/dist/src/banner/banner.d.ts +0 -43
  459. package/dist/src/banner/index.d.ts +0 -1
  460. package/dist/src/button/GroupButtonInterface.d.ts +0 -4
  461. package/src/banner/banner.scss +0 -82
  462. package/src/banner/index.ts +0 -1
  463. package/src/button/GroupButtonInterface.ts +0 -4
  464. package/src/button/button/only-button.scss +0 -13
  465. package/src/fab/fab-sizes.scss +0 -37
  466. package/src/fab/fab.scss +0 -143
  467. /package/dist/src/{__controllers → __internal/controllers}/attachable-controller.d.ts +0 -0
  468. /package/dist/src/{__controllers → __internal/controllers}/floating-controller.d.ts +0 -0
  469. /package/dist/src/{__directive → __internal/directive}/spread.d.ts +0 -0
  470. /package/dist/src/{__mixins → __internal/mixins}/MixinConstructor.d.ts +0 -0
  471. /package/dist/src/{__mixins → __internal/mixins}/NativeButtonMixin.d.ts +0 -0
  472. /package/dist/src/{__mixins → __internal/mixins}/NativeHyperlinkMixin.d.ts +0 -0
  473. /package/dist/src/{__utils → __internal/utils}/cache-fetch.d.ts +0 -0
  474. /package/dist/src/{__utils → __internal/utils}/copy-to-clipboard.d.ts +0 -0
  475. /package/dist/src/{__utils → __internal/utils}/dispatch-event-utils.d.ts +0 -0
  476. /package/dist/src/{__utils → __internal/utils}/is-dark-mode.d.ts +0 -0
  477. /package/dist/src/{__utils → __internal/utils}/is-in-viewport.d.ts +0 -0
  478. /package/dist/src/{__utils → __internal/utils}/is-link.d.ts +0 -0
  479. /package/dist/src/{__utils → __internal/utils}/observe-theme-change.d.ts +0 -0
  480. /package/dist/src/{__utils → __internal/utils}/sanitize-svg.d.ts +0 -0
  481. /package/dist/src/{__utils → __internal/utils}/throttle.d.ts +0 -0
  482. /package/dist/src/{fab → button/fab}/index.d.ts +0 -0
  483. /package/dist/src/{peacock-loader.d.ts → loader.d.ts} +0 -0
  484. /package/dist/test/{banner.test.d.ts → alert.test.d.ts} +0 -0
  485. /package/src/{__controllers → __internal/controllers}/attachable-controller.ts +0 -0
  486. /package/src/{__controllers → __internal/controllers}/floating-controller.ts +0 -0
  487. /package/src/{__directive → __internal/directive}/spread.ts +0 -0
  488. /package/src/{__mixins → __internal/mixins}/MixinConstructor.ts +0 -0
  489. /package/src/{__mixins → __internal/mixins}/NativeButtonMixin.ts +0 -0
  490. /package/src/{__mixins → __internal/mixins}/NativeHyperlinkMixin.ts +0 -0
  491. /package/src/{__mixins → __internal/mixins}/README.md +0 -0
  492. /package/src/{__utils → __internal/utils}/cache-fetch.ts +0 -0
  493. /package/src/{__utils → __internal/utils}/copy-to-clipboard.ts +0 -0
  494. /package/src/{__utils → __internal/utils}/dispatch-event-utils.ts +0 -0
  495. /package/src/{__utils → __internal/utils}/is-dark-mode.ts +0 -0
  496. /package/src/{__utils → __internal/utils}/is-in-viewport.ts +0 -0
  497. /package/src/{__utils → __internal/utils}/is-link.ts +0 -0
  498. /package/src/{__utils → __internal/utils}/observe-theme-change.ts +0 -0
  499. /package/src/{__utils → __internal/utils}/sanitize-svg.ts +0 -0
  500. /package/src/{__utils → __internal/utils}/throttle.ts +0 -0
  501. /package/src/{fab → button/fab}/index.ts +0 -0
@@ -1,4 +1,4 @@
1
- import { c as __classPrivateFieldGet } from './IndividualComponent-DUINtMGK.js';
1
+ import { c as __classPrivateFieldGet } from './IndividualComponent-Bdwyrvd6.js';
2
2
  import { C as CalendarEvent } from './calendar-event-BrQ_SEKD.js';
3
3
 
4
4
  var _EventManager_events, _MonthEventManager_events;
@@ -110,4 +110,4 @@ class MonthEventManager {
110
110
  _MonthEventManager_events = new WeakMap();
111
111
 
112
112
  export { EventManager as E, MonthEventManager as M };
113
- //# sourceMappingURL=event-manager-D-QCmUgR.js.map
113
+ //# sourceMappingURL=event-manager-DTyX2uYD.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-manager-D-QCmUgR.js","sources":["../../src/calendar/event-manager.ts"],"sourcesContent":["import { CalendarEvent } from './calendar-event.js';\n\nexport class ColumnEvent extends CalendarEvent {\n width: number = 1;\n\n constructor(event: CalendarEvent) {\n super(event.start, event.end, event.title, event.color, event.data);\n }\n}\n\nexport class EventManager {\n #events: ColumnEvent[] = [];\n columns: ColumnEvent[][] = [];\n\n addEvents(events: CalendarEvent[]): void {\n events.forEach(event => {\n this.#events.push(new ColumnEvent(event));\n });\n }\n\n process(): void {\n this.columns = [];\n let events = this.#events.sort((a, b) => {\n return a.start.valueOf() - b.start.valueOf() || b.length() - a.length();\n });\n\n let oldLength: number | null = null;\n /* Bucketing: group non-overlapping events into columns */\n while (events.length) {\n if (oldLength === events.length) {\n throw new Error(\n 'Events not processed in previous run, breaking infinite loop',\n );\n }\n oldLength = events.length;\n\n const column: ColumnEvent[] = [];\n for (let i = 0; i < events.length; i++) {\n if (i === 0) {\n column.push(events[i]);\n } else if (events[i].start.valueOf() >= column[column.length - 1].end.valueOf()) {\n column.push(events[i]);\n }\n }\n this.columns.push(column);\n events = events.filter(e => !column.find(ce => ce.gid === e.gid));\n }\n\n /* Calculate widths for events that span multiple columns */\n for (let i = 0; i < this.columns.length - 1; i++) {\n this.columns[i].forEach(event => {\n for (let j = i + 1; j < this.columns.length; j++) {\n if (this.columns[j].find(colEvent => event.isOverlapping(colEvent))) {\n break;\n }\n event.width++;\n }\n });\n }\n }\n}\n\nexport class MonthEventManager {\n #events: ColumnEvent[] = [];\n columns: ColumnEvent[][] = [];\n\n addEvents(events: CalendarEvent[]): void {\n events.forEach(event => {\n this.#events.push(new ColumnEvent(event));\n });\n }\n\n process(): void {\n this.columns = [];\n let events = this.#events.sort((a, b) => {\n return a.start.valueOf() - b.start.valueOf() || b.length() - a.length();\n });\n\n let oldLength: number | null = null;\n while (events.length) {\n if (oldLength === events.length) {\n throw new Error(\n 'Events not processed in previous run, breaking infinite loop',\n );\n }\n oldLength = events.length;\n\n const column: ColumnEvent[] = [];\n for (let i = 0; i < events.length; i++) {\n if (i === 0) {\n column.push(events[i]);\n } else {\n const lastEnd = new Date(column[column.length - 1].end);\n lastEnd.setHours(23, 59, 59, 999);\n const nextStart = new Date(events[i].start);\n nextStart.setHours(0, 0, 0, 0);\n if (nextStart.valueOf() > lastEnd.valueOf()) {\n column.push(events[i]);\n }\n }\n }\n this.columns.push(column);\n events = events.filter(e => !column.find(ce => ce.gid === e.gid));\n }\n\n for (let i = 0; i < this.columns.length - 1; i++) {\n this.columns[i].forEach(event => {\n for (let j = i + 1; j < this.columns.length; j++) {\n if (this.columns[j].find(colEvent => event.isOverlapping(colEvent))) {\n break;\n }\n event.width++;\n }\n });\n }\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"event-manager-DTyX2uYD.js","sources":["../../src/calendar/event-manager.ts"],"sourcesContent":["import { CalendarEvent } from './calendar-event.js';\n\nexport class ColumnEvent extends CalendarEvent {\n width: number = 1;\n\n constructor(event: CalendarEvent) {\n super(event.start, event.end, event.title, event.color, event.data);\n }\n}\n\nexport class EventManager {\n #events: ColumnEvent[] = [];\n columns: ColumnEvent[][] = [];\n\n addEvents(events: CalendarEvent[]): void {\n events.forEach(event => {\n this.#events.push(new ColumnEvent(event));\n });\n }\n\n process(): void {\n this.columns = [];\n let events = this.#events.sort((a, b) => {\n return a.start.valueOf() - b.start.valueOf() || b.length() - a.length();\n });\n\n let oldLength: number | null = null;\n /* Bucketing: group non-overlapping events into columns */\n while (events.length) {\n if (oldLength === events.length) {\n throw new Error(\n 'Events not processed in previous run, breaking infinite loop',\n );\n }\n oldLength = events.length;\n\n const column: ColumnEvent[] = [];\n for (let i = 0; i < events.length; i++) {\n if (i === 0) {\n column.push(events[i]);\n } else if (events[i].start.valueOf() >= column[column.length - 1].end.valueOf()) {\n column.push(events[i]);\n }\n }\n this.columns.push(column);\n events = events.filter(e => !column.find(ce => ce.gid === e.gid));\n }\n\n /* Calculate widths for events that span multiple columns */\n for (let i = 0; i < this.columns.length - 1; i++) {\n this.columns[i].forEach(event => {\n for (let j = i + 1; j < this.columns.length; j++) {\n if (this.columns[j].find(colEvent => event.isOverlapping(colEvent))) {\n break;\n }\n event.width++;\n }\n });\n }\n }\n}\n\nexport class MonthEventManager {\n #events: ColumnEvent[] = [];\n columns: ColumnEvent[][] = [];\n\n addEvents(events: CalendarEvent[]): void {\n events.forEach(event => {\n this.#events.push(new ColumnEvent(event));\n });\n }\n\n process(): void {\n this.columns = [];\n let events = this.#events.sort((a, b) => {\n return a.start.valueOf() - b.start.valueOf() || b.length() - a.length();\n });\n\n let oldLength: number | null = null;\n while (events.length) {\n if (oldLength === events.length) {\n throw new Error(\n 'Events not processed in previous run, breaking infinite loop',\n );\n }\n oldLength = events.length;\n\n const column: ColumnEvent[] = [];\n for (let i = 0; i < events.length; i++) {\n if (i === 0) {\n column.push(events[i]);\n } else {\n const lastEnd = new Date(column[column.length - 1].end);\n lastEnd.setHours(23, 59, 59, 999);\n const nextStart = new Date(events[i].start);\n nextStart.setHours(0, 0, 0, 0);\n if (nextStart.valueOf() > lastEnd.valueOf()) {\n column.push(events[i]);\n }\n }\n }\n this.columns.push(column);\n events = events.filter(e => !column.find(ce => ce.gid === e.gid));\n }\n\n for (let i = 0; i < this.columns.length - 1; i++) {\n this.columns[i].forEach(event => {\n for (let j = i + 1; j < this.columns.length; j++) {\n if (this.columns[j].find(colEvent => event.isOverlapping(colEvent))) {\n break;\n }\n event.width++;\n }\n });\n }\n }\n}\n"],"names":[],"mappings":"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"}
package/dist/fab.js CHANGED
@@ -1,11 +1,17 @@
1
- import { a as i, i as i$1, b, A, _ as __decorate, I as IndividualComponent } from './IndividualComponent-DUINtMGK.js';
2
- import { n } from './property-1psGvXOq.js';
3
- import { e as e$1 } from './query-QBcUV-L_.js';
4
- import { e } from './class-map-YU7g0o3B.js';
5
- import { N as NativeButtonMixin, D as DISABLED_REASON_ID, o, s as spread } from './ButtonConstants-D06bY4uy.js';
1
+ import { i, a as i$1, b, A, _ as __decorate, I as IndividualComponent } from './IndividualComponent-Bdwyrvd6.js';
2
+ import { n } from './property-B49QQ8pS.js';
3
+ import { e as e$1 } from './query-CHb9Ft_d.js';
4
+ import { e } from './class-map-DG7CA1et.js';
5
+ import { o } from './if-defined-BXZpRQ4P.js';
6
6
  import { i as isActivationClick, d as dispatchActivationClick } from './dispatch-event-utils-CuEqjlPT.js';
7
- import { N as NativeHyperlinkMixin, t as throttle, i as isLink } from './NativeHyperlinkMixin-DrYXyfMQ.js';
7
+ import { i as isLink } from './is-link-Dk2OV3PM.js';
8
+ import { D as DISABLED_REASON_ID } from './ButtonConstants-CahP2_NA.js';
9
+ import { m as mixinBaseButton, a as mixinHyperlink } from './hyperlink-DLvb6MXE.js';
10
+ import { m as mixinDelegatesAria, a as mixinElementInternals } from './element-internals-2CMts_0M.js';
11
+ import { m as mixinFormSubmitter, a as mixinFormAssociated } from './form-associated-BXADnjOB.js';
12
+ import './base-Cl6v8-BZ.js';
8
13
  import './directive-ZPhl09Yt.js';
14
+ import './throttle-C7ZAPqtu.js';
9
15
 
10
16
  var css_248z$2 = i`* {
11
17
  box-sizing: border-box;
@@ -15,11 +21,43 @@ var css_248z$2 = i`* {
15
21
  display: none !important;
16
22
  }
17
23
 
24
+ [hidden] {
25
+ display: none !important;
26
+ }
27
+
18
28
  :host {
19
29
  position: relative;
20
30
  display: inline-flex;
21
31
  --fab-container-shape: var(--shape-corner-large);
22
32
  --fab-container-elevation-level: 3;
33
+ --private-button-container-shape-start-start: var(--fab-container-shape);
34
+ --private-button-container-shape-start-end: var(--fab-container-shape);
35
+ --private-button-container-shape-end-start: var(--fab-container-shape);
36
+ --private-button-container-shape-end-end: var(--fab-container-shape);
37
+ --private-button-container-shape-variant: var(--fab-container-shape-variant);
38
+ }
39
+
40
+ /*
41
+ * Reset native button/link styles
42
+ */
43
+ .native-button {
44
+ background: transparent;
45
+ border: none;
46
+ appearance: none;
47
+ margin: 0;
48
+ outline: none;
49
+ padding: 0;
50
+ }
51
+
52
+ .native-link {
53
+ text-decoration: none;
54
+ color: inherit;
55
+ cursor: pointer;
56
+ outline: none;
57
+ }
58
+ .native-link:link, .native-link:visited, .native-link:hover, .native-link:active {
59
+ text-decoration: none;
60
+ color: inherit;
23
61
  }
24
62
 
25
63
  /*
@@ -52,15 +90,15 @@ var css_248z$2 = i`* {
52
90
  pointer-events: none;
53
91
  z-index: 0;
54
92
  gap: 0.75rem;
55
- color: var(--_fab-label-text-color);
56
- --icon-size: var(--_fab-icon-size);
57
- --icon-color: var(--_fab-label-text-color);
93
+ color: var(--private-button-label-text-color);
94
+ --icon-size: var(--private-button-icon-size);
95
+ --icon-color: var(--private-button-label-text-color);
58
96
  }
59
97
  .fab .fab-label {
60
- font-size: var(--_fab-font-size) !important;
61
- font-weight: var(--_fab-font-weight) !important;
62
- line-height: var(--_fab-line-height) !important;
63
- letter-spacing: var(--_fab-letter-spacing) !important;
98
+ font-size: var(--private-button-font-size) !important;
99
+ font-weight: var(--private-button-font-weight) !important;
100
+ line-height: var(--private-button-line-height) !important;
101
+ letter-spacing: var(--private-button-letter-spacing) !important;
64
102
  white-space: nowrap;
65
103
  }
66
104
  .fab.disabled {
@@ -88,22 +126,25 @@ var css_248z$2 = i`* {
88
126
 
89
127
  .ripple {
90
128
  border-radius: var(--fab-container-shape);
91
- --ripple-state-opacity: var(--_fab-container-state-opacity, 0);
92
- --ripple-pressed-color: var(--_fab-label-text-color);
129
+ --ripple-state-opacity: var(--private-button-container-state-opacity, 0);
130
+ --ripple-pressed-color: var(--private-button-label-text-color);
93
131
  }
94
132
 
95
133
  .background {
96
134
  display: block;
97
135
  position: absolute;
98
136
  inset: 0;
99
- background-color: var(--_fab-container-color);
100
- opacity: var(--_fab-container-opacity, 1);
137
+ background-color: var(--private-button-container-color);
138
+ opacity: var(--private-button-container-opacity, 1);
101
139
  border-radius: var(--fab-container-shape);
102
140
  pointer-events: none;
103
141
  }
104
142
 
105
143
  .elevation {
106
- --elevation-level: var(--_fab-container-elevation-level, var(--fab-container-elevation-level));
144
+ --elevation-level: var(
145
+ --private-button-container-elevation-level,
146
+ var(--fab-container-elevation-level)
147
+ );
107
148
  transition-duration: 280ms;
108
149
  --elevation-container-shape-start-start: var(--fab-container-shape);
109
150
  --elevation-container-shape-start-end: var(--fab-container-shape);
@@ -113,37 +154,47 @@ var css_248z$2 = i`* {
113
154
 
114
155
  /* State management */
115
156
  :host:hover:not([disabled]) {
116
- --_fab-container-elevation-level: 4;
117
- --_fab-container-state-opacity: 0.08;
157
+ --private-button-container-elevation-level: 4;
158
+ --private-button-container-state-opacity: 0.08;
118
159
  }
119
160
 
120
- :host([pressed]):not([disabled]) {
121
- --_fab-container-elevation-level: 3;
122
- --_fab-container-state-opacity: 0.12;
161
+ :host(:active):not([disabled]) {
162
+ --private-button-container-elevation-level: 3;
163
+ --private-button-container-state-opacity: 0.12;
123
164
  }
124
165
 
125
166
  :host([lowered]) {
126
167
  --fab-container-elevation-level: 1;
127
168
  }
128
169
  :host([lowered]):hover:not([disabled]) {
129
- --_fab-container-elevation-level: 2;
170
+ --private-button-container-elevation-level: 2;
130
171
  }
131
- :host([lowered])[pressed]:not([disabled]) {
132
- --_fab-container-elevation-level: 1;
172
+ :host([lowered]):active:not([disabled]) {
173
+ --private-button-container-elevation-level: 1;
133
174
  }
134
175
 
135
176
  :host([disabled]) {
136
- --_fab-container-color: var(--color-on-surface);
137
- --_fab-container-opacity: 0.12;
138
- --_fab-label-text-color: var(--color-on-surface);
139
- --_fab-label-text-opacity: 0.38;
140
- --_fab-container-elevation-level: 0;
177
+ --private-button-container-color: var(--color-on-surface);
178
+ --private-button-container-opacity: 0.12;
179
+ --private-button-label-text-color: var(--color-on-surface);
180
+ --private-button-label-text-opacity: 0.38;
181
+ --private-button-container-elevation-level: 0;
141
182
  }
142
183
  :host([disabled]) .ripple {
143
184
  display: none;
144
185
  }
145
186
  :host([disabled]) .fab-content {
146
187
  opacity: 0.38;
188
+ }
189
+
190
+ :host([variant=tonal]) {
191
+ --private-button-container-color: var(--tonal-fab-container-color);
192
+ --private-button-label-text-color: var(--tonal-fab-label-text-color);
193
+ }
194
+
195
+ :host([variant=filled]) {
196
+ --private-button-container-color: var(--filled-fab-container-color);
197
+ --private-button-label-text-color: var(--filled-fab-label-text-color);
147
198
  }`;
148
199
 
149
200
  var css_248z$1 = i`:host {
@@ -179,16 +230,6 @@ var css_248z$1 = i`:host {
179
230
  --tonal-fab-label-text-color: var(--color-on-tertiary-container);
180
231
  --filled-fab-container-color: var(--color-tertiary);
181
232
  --filled-fab-label-text-color: var(--color-on-tertiary);
182
- }
183
-
184
- :host([variant=tonal]) {
185
- --_fab-container-color: var(--tonal-fab-container-color);
186
- --_fab-label-text-color: var(--tonal-fab-label-text-color);
187
- }
188
-
189
- :host([variant=filled]) {
190
- --_fab-container-color: var(--filled-fab-container-color);
191
- --_fab-label-text-color: var(--filled-fab-label-text-color);
192
233
  }`;
193
234
 
194
235
  var css_248z = i`@charset "UTF-8";
@@ -196,38 +237,37 @@ var css_248z = i`@charset "UTF-8";
196
237
  :host([size=sm]) {
197
238
  --fab-container-shape: var(--shape-corner-medium);
198
239
  --fab-container-size: 2.5rem;
199
- --_fab-icon-size: 1.5rem;
240
+ --private-button-icon-size: 1.5rem;
200
241
  --fab-extended-min-width: 4rem;
201
- --_fab-font-size: 0.875rem;
202
- --_fab-font-weight: var(--font-weight-medium);
203
- --_fab-line-height: 1.25rem;
204
- --_fab-letter-spacing: 0.1px;
242
+ --private-button-font-size: 0.875rem;
243
+ --private-button-font-weight: var(--font-weight-medium);
244
+ --private-button-line-height: 1.25rem;
245
+ --private-button-letter-spacing: 0.1px;
205
246
  }
206
247
 
207
248
  /* Standard/Medium FAB: 56×56dp, shape-corner-large (default) */
208
249
  :host([size=md]) {
209
250
  --fab-container-size: 3.5rem;
210
- --_fab-icon-size: 1.5rem;
251
+ --private-button-icon-size: 1.5rem;
211
252
  --fab-extended-min-width: 5rem;
212
- --_fab-font-size: 0.875rem;
213
- --_fab-font-weight: var(--font-weight-medium);
214
- --_fab-line-height: 1.25rem;
215
- --_fab-letter-spacing: 0.1px;
253
+ --private-button-font-size: 0.875rem;
254
+ --private-button-font-weight: var(--font-weight-medium);
255
+ --private-button-line-height: 1.25rem;
256
+ --private-button-letter-spacing: 0.1px;
216
257
  }
217
258
 
218
259
  /* Large FAB: 96×96dp, shape-corner-extra-large */
219
260
  :host([size=lg]) {
220
261
  --fab-container-shape: var(--shape-corner-extra-large);
221
262
  --fab-container-size: 6rem;
222
- --_fab-icon-size: 2.25rem;
263
+ --private-button-icon-size: 2.25rem;
223
264
  --fab-extended-min-width: 6rem;
224
- --_fab-font-size: 1rem;
225
- --_fab-font-weight: var(--font-weight-medium);
226
- --_fab-line-height: 1.5rem;
227
- --_fab-letter-spacing: 0.15px;
265
+ --private-button-font-size: 1rem;
266
+ --private-button-font-weight: var(--font-weight-medium);
267
+ --private-button-line-height: 1.5rem;
268
+ --private-button-letter-spacing: 0.15px;
228
269
  }`;
229
270
 
230
- var _Fab_id;
231
271
  /**
232
272
  * @label FAB
233
273
  * @tag wc-fab
@@ -235,7 +275,7 @@ var _Fab_id;
235
275
  *
236
276
  * @summary The FAB (Floating Action Button) represents the primary action on a screen.
237
277
  * @overview
238
- * <p>A Floating Action Button (FAB) is a circular button that represents the primary action on a screen. It follows the Material Design 3 specification and supports four color roles and two variants.</p>
278
+ * <p>A Floating Action Button (FAB) is a circular button that represents the primary action on a screen. It follows the specification and supports four color roles and two variants.</p>
239
279
  *
240
280
  * @cssprop --fab-container-color: Background color of the FAB container.
241
281
  * @cssprop --fab-label-text-color: Text and icon color of the FAB label.
@@ -250,10 +290,9 @@ var _Fab_id;
250
290
  * ```
251
291
  * @tags controls
252
292
  */
253
- let Fab = class Fab extends NativeButtonMixin(NativeHyperlinkMixin(i$1)) {
293
+ let Fab = class Fab extends mixinBaseButton(mixinHyperlink(mixinDelegatesAria(mixinFormSubmitter(mixinFormAssociated(mixinElementInternals(i$1)))))) {
254
294
  constructor() {
255
- super(...arguments);
256
- _Fab_id.set(this, crypto.randomUUID());
295
+ super();
257
296
  /**
258
297
  * The color role of the FAB.
259
298
  * `"surface"` uses the surface color role.
@@ -279,35 +318,9 @@ let Fab = class Fab extends NativeButtonMixin(NativeHyperlinkMixin(i$1)) {
279
318
  * If `true`, the FAB is in a lowered (resting) state with reduced elevation.
280
319
  */
281
320
  this.lowered = false;
282
- /**
283
- * Sets the delay for throttle in milliseconds. Defaults to 200 milliseconds.
284
- */
285
- this.throttleDelay = 200;
286
321
  this.skeleton = false;
287
322
  this.toggle = false;
288
323
  this.selected = false;
289
- /**
290
- * States
291
- */
292
- this.pressed = false;
293
- this.__handlePress = (event) => {
294
- if (this.disabled || this.skeleton || this.softDisabled)
295
- return;
296
- if (event instanceof KeyboardEvent &&
297
- event.type === 'keydown' &&
298
- (event.key === 'Enter' || event.key === ' ')) {
299
- this.pressed = true;
300
- }
301
- else if (event.type === 'mousedown') {
302
- this.pressed = true;
303
- }
304
- else {
305
- this.pressed = false;
306
- }
307
- };
308
- this.__dispatchClickWithThrottle = event => {
309
- this.__dispatchClick(event);
310
- };
311
324
  this.__dispatchClick = (event) => {
312
325
  // If the button is soft-disabled or a disabled link, we need to explicitly
313
326
  // prevent the click from propagating to other event listeners as well as
@@ -320,24 +333,18 @@ let Fab = class Fab extends NativeButtonMixin(NativeHyperlinkMixin(i$1)) {
320
333
  if (!isActivationClick(event) || !this.buttonElement) {
321
334
  return;
322
335
  }
323
- if (this.toggle) {
324
- this.selected = !this.selected;
325
- }
326
336
  this.focus();
327
337
  dispatchActivationClick(this.buttonElement);
328
338
  };
329
- }
330
- connectedCallback() {
331
- super.connectedCallback();
332
339
  this.addEventListener('click', this.__dispatchClickWithThrottle);
333
- window.addEventListener('mouseup', this.__handlePress);
334
340
  }
335
- disconnectedCallback() {
336
- window.removeEventListener('mouseup', this.__handlePress);
337
- this.removeEventListener('click', this.__dispatchClickWithThrottle);
338
- super.disconnectedCallback();
341
+ focus() {
342
+ this.buttonElement?.focus();
343
+ }
344
+ blur() {
345
+ this.buttonElement?.blur();
339
346
  }
340
- __renderDisabledReason(softDisabled) {
347
+ renderDisabledReason(softDisabled) {
341
348
  if (softDisabled)
342
349
  return b `<div
343
350
  id=${DISABLED_REASON_ID}
@@ -349,36 +356,16 @@ let Fab = class Fab extends NativeButtonMixin(NativeHyperlinkMixin(i$1)) {
349
356
  </div>`;
350
357
  return A;
351
358
  }
352
- __renderTooltip() {
359
+ renderTooltip() {
353
360
  if (this.tooltip) {
354
- return b `<wc-tooltip class="tooltip" for="button"
361
+ return b `<wc-tooltip class="tooltip" for="button"
355
362
  >${this.tooltip}</wc-tooltip
356
363
  >`;
357
364
  }
358
365
  return A;
359
366
  }
360
- focus() {
361
- this.buttonElement?.focus();
362
- }
363
- blur() {
364
- this.buttonElement?.blur();
365
- }
366
- firstUpdated() {
367
- this.__dispatchClickWithThrottle = throttle(this.__dispatchClick, this.throttleDelay);
368
- }
369
- render() {
370
- const isExtended = !!this.label;
371
- return b `
372
- <wc-focus-ring class="focus-ring" for="button"></wc-focus-ring>
373
- <wc-elevation class="elevation"></wc-elevation>
374
- <div class="background"></div>
375
- <wc-ripple class="ripple" for="button"></wc-ripple>
376
- <wc-skeleton class="skeleton"></wc-skeleton>
377
-
378
- ${this.__renderFabElement(isExtended)} ${this.__renderTooltip()}
379
- `;
380
- }
381
- __renderFabElement(isExtended) {
367
+ renderFabElement(isExtended) {
368
+ const { ariaLabel, ariaHasPopup, ariaExpanded } = this;
382
369
  const cssClasses = {
383
370
  button: true,
384
371
  fab: true,
@@ -389,23 +376,20 @@ let Fab = class Fab extends NativeButtonMixin(NativeHyperlinkMixin(i$1)) {
389
376
  extended: isExtended,
390
377
  lowered: this.lowered,
391
378
  disabled: this.disabled,
392
- pressed: this.pressed,
393
379
  };
394
380
  if (!isLink(this)) {
395
381
  return b `<button
396
382
  class=${e(cssClasses)}
397
383
  id="button"
398
384
  type="button"
399
- @click=${this.__dispatchClickWithThrottle}
400
- @mousedown=${this.__handlePress}
401
- @keydown=${this.__handlePress}
402
- @keyup=${this.__handlePress}
385
+ aria-label="${ariaLabel || A}"
386
+ aria-haspopup="${ariaHasPopup || A}"
387
+ aria-expanded="${ariaExpanded || A}"
403
388
  aria-describedby=${o(this.softDisabled ? DISABLED_REASON_ID : undefined)}
404
389
  ?aria-disabled=${this.softDisabled}
405
390
  ?disabled=${this.disabled}
406
- ${spread(this.configAria)}
407
391
  >
408
- ${this.__renderFabContent(isExtended)}
392
+ ${this.renderFabContent(isExtended)}
409
393
  </button>`;
410
394
  }
411
395
  return b `<a
@@ -414,19 +398,17 @@ let Fab = class Fab extends NativeButtonMixin(NativeHyperlinkMixin(i$1)) {
414
398
  tabindex=${this.disabled ? '-1' : '0'}
415
399
  href=${o(this.href)}
416
400
  target=${this.target}
417
- @click=${this.__dispatchClick}
418
- @mousedown=${this.__handlePress}
419
- @keydown=${this.__handlePress}
420
- @keyup=${this.__handlePress}
421
401
  role="button"
402
+ aria-label="${ariaLabel || A}"
403
+ aria-haspopup="${ariaHasPopup || A}"
404
+ aria-expanded="${ariaExpanded || A}"
422
405
  aria-describedby=${o(this.softDisabled ? DISABLED_REASON_ID : undefined)}
423
406
  ?aria-disabled=${this.softDisabled}
424
- ${spread(this.configAria)}
425
407
  >
426
- ${this.__renderFabContent(isExtended)}
408
+ ${this.renderFabContent(isExtended)}
427
409
  </a>`;
428
410
  }
429
- __renderFabContent(isExtended) {
411
+ renderFabContent(isExtended) {
430
412
  return b `
431
413
  <div class="fab-content">
432
414
  <slot></slot>
@@ -434,11 +416,29 @@ let Fab = class Fab extends NativeButtonMixin(NativeHyperlinkMixin(i$1)) {
434
416
  ? b `<span class="fab-label">${this.label}</span>`
435
417
  : A}
436
418
  </div>
437
- ${this.__renderDisabledReason(this.softDisabled)}
419
+ ${this.renderDisabledReason(this.softDisabled)}
420
+ `;
421
+ }
422
+ // ── Render ────────────────────────────────────────────────────────────────
423
+ render() {
424
+ const isExtended = !!this.label;
425
+ return b `
426
+ <wc-focus-ring class="focus-ring" for="button"></wc-focus-ring>
427
+ <wc-elevation class="elevation"></wc-elevation>
428
+ <div class="background"></div>
429
+ <wc-ripple class="ripple" for="button"></wc-ripple>
430
+ <wc-skeleton class="skeleton"></wc-skeleton>
431
+
432
+ ${this.renderFabElement(isExtended)} ${this.renderTooltip()}
438
433
  `;
439
434
  }
440
435
  };
441
- _Fab_id = new WeakMap();
436
+ // ── Static ───────────────────────────────────────────────────────────────
437
+ /** @nocollapse */ // eslint-disable-next-line
438
+ Fab.shadowRootOptions = {
439
+ mode: 'open',
440
+ delegatesFocus: true,
441
+ };
442
442
  Fab.styles = [css_248z$2, css_248z$1, css_248z];
443
443
  __decorate([
444
444
  n({ type: String })
@@ -455,12 +455,6 @@ __decorate([
455
455
  __decorate([
456
456
  n({ type: Boolean, reflect: true })
457
457
  ], Fab.prototype, "lowered", void 0);
458
- __decorate([
459
- n({ reflect: true })
460
- ], Fab.prototype, "configAria", void 0);
461
- __decorate([
462
- n()
463
- ], Fab.prototype, "throttleDelay", void 0);
464
458
  __decorate([
465
459
  n()
466
460
  ], Fab.prototype, "tooltip", void 0);
@@ -473,9 +467,6 @@ __decorate([
473
467
  __decorate([
474
468
  n({ type: Boolean, reflect: true })
475
469
  ], Fab.prototype, "selected", void 0);
476
- __decorate([
477
- n({ type: Boolean, reflect: true })
478
- ], Fab.prototype, "pressed", void 0);
479
470
  __decorate([
480
471
  e$1('.button')
481
472
  ], Fab.prototype, "buttonElement", void 0);
package/dist/fab.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"fab.js","sources":["../../src/fab/fab.ts"],"sourcesContent":["import { html, LitElement, nothing } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\n\nimport IndividualComponent from '@/IndividualComponent.js';\nimport {\n dispatchActivationClick,\n isActivationClick,\n} from '@/__utils/dispatch-event-utils.js';\nimport { isLink } from '@/__utils/is-link.js';\nimport { throttle } from '@/__utils/throttle.js';\nimport { spread } from '@/__directive/spread.js';\n\nimport styles from './fab.scss';\nimport colorStyles from './fab-colors.scss';\nimport sizeStyles from './fab-sizes.scss';\nimport NativeButtonMixin from '@/__mixins/NativeButtonMixin.js';\nimport NativeHyperlinkMixin from '@/__mixins/NativeHyperlinkMixin.js';\nimport { DISABLED_REASON_ID } from '@/button/ButtonConstants.js';\n\n/**\n * @label FAB\n * @tag wc-fab\n * @rawTag fab\n *\n * @summary The FAB (Floating Action Button) represents the primary action on a screen.\n * @overview\n * <p>A Floating Action Button (FAB) is a circular button that represents the primary action on a screen. It follows the Material Design 3 specification and supports four color roles and two variants.</p>\n *\n * @cssprop --fab-container-color: Background color of the FAB container.\n * @cssprop --fab-label-text-color: Text and icon color of the FAB label.\n * @cssprop --fab-container-shape: Corner radius of the FAB. Defaults to var(--shape-corner-large).\n * @cssprop --fab-container-elevation-level: Elevation level of the FAB. Defaults to 3.\n *\n * @fires {MouseEvent} click - Dispatched when the FAB is clicked.\n *\n * @example\n * ```html\n * <wc-fab><wc-icon name=\"add\"></wc-icon></wc-fab>\n * ```\n * @tags controls\n */\n@IndividualComponent\nexport class Fab extends NativeButtonMixin(NativeHyperlinkMixin(LitElement)) {\n static override styles = [styles, colorStyles, sizeStyles];\n\n #id = crypto.randomUUID();\n\n /**\n * Optional label text for the extended FAB variant.\n * When set, the FAB displays both the icon and a text label.\n */\n @property({ type: String }) label?: string;\n\n /**\n * The color role of the FAB.\n * `\"surface\"` uses the surface color role.\n * `\"primary\"` uses the primary color role.\n * `\"secondary\"` uses the secondary color role.\n * `\"tertiary\"` uses the tertiary color role.\n */\n @property({ reflect: true }) color:\n | 'surface'\n | 'primary'\n | 'secondary'\n | 'tertiary' = 'surface';\n\n /**\n * The style variant of the FAB.\n * `\"tonal\"` uses container colors.\n * `\"filled\"` uses solid role colors.\n */\n @property({ reflect: true }) variant: 'tonal' | 'filled' = 'tonal';\n\n /**\n * The size of the FAB.\n * `\"sm\"` renders a small FAB (40×40dp).\n * `\"md\"` renders a standard FAB (56×56dp). This is the default.\n * `\"lg\"` renders a large FAB (96×96dp).\n */\n @property({ reflect: true }) size: 'sm' | 'md' | 'lg' = 'md';\n\n /**\n * If `true`, the FAB is in a lowered (resting) state with reduced elevation.\n */\n @property({ type: Boolean, reflect: true }) lowered: boolean = false;\n\n /**\n * Additional ARIA attributes to pass to the inner button/anchor element.\n */\n @property({ reflect: true })\n configAria?: { [key: string]: any };\n\n /**\n * Sets the delay for throttle in milliseconds. Defaults to 200 milliseconds.\n */\n @property() throttleDelay = 200;\n\n /**\n * Tooltip text shown on hover.\n */\n @property() tooltip?: string;\n\n @property({ type: Boolean, reflect: true }) skeleton: boolean = false;\n\n @property({ type: Boolean, reflect: true }) toggle: boolean = false;\n\n @property({ type: Boolean, reflect: true }) selected: boolean = false;\n\n /**\n * States\n */\n @property({ type: Boolean, reflect: true })\n pressed = false;\n\n @query('.button') readonly buttonElement!: HTMLElement | null;\n\n override connectedCallback() {\n super.connectedCallback();\n this.addEventListener('click', this.__dispatchClickWithThrottle);\n window.addEventListener('mouseup', this.__handlePress);\n }\n\n override disconnectedCallback() {\n window.removeEventListener('mouseup', this.__handlePress);\n this.removeEventListener('click', this.__dispatchClickWithThrottle);\n super.disconnectedCallback();\n }\n\n __handlePress = (event: KeyboardEvent | MouseEvent) => {\n if (this.disabled || this.skeleton || this.softDisabled) return;\n if (\n event instanceof KeyboardEvent &&\n event.type === 'keydown' &&\n (event.key === 'Enter' || event.key === ' ')\n ) {\n this.pressed = true;\n } else if (event.type === 'mousedown') {\n this.pressed = true;\n } else {\n this.pressed = false;\n }\n };\n\n __dispatchClickWithThrottle: (event: MouseEvent | KeyboardEvent) => void =\n event => {\n this.__dispatchClick(event);\n };\n\n __dispatchClick = (event: MouseEvent | KeyboardEvent) => {\n // If the button is soft-disabled or a disabled link, we need to explicitly\n // prevent the click from propagating to other event listeners as well as\n // prevent the default action.\n if (this.softDisabled || (this.disabled && this.href) || this.skeleton) {\n event.stopImmediatePropagation();\n event.preventDefault();\n return;\n }\n\n if (!isActivationClick(event) || !this.buttonElement) {\n return;\n }\n\n if (this.toggle) {\n this.selected = !this.selected;\n }\n\n this.focus();\n dispatchActivationClick(this.buttonElement);\n };\n\n __renderDisabledReason(softDisabled: boolean) {\n if (softDisabled)\n return html`<div\n id=${DISABLED_REASON_ID}\n role=\"tooltip\"\n aria-label=${this.disabledReason}\n class=\"screen-reader-only\"\n >\n ${this.disabledReason}\n </div>`;\n return nothing;\n }\n\n __renderTooltip() {\n if (this.tooltip) {\n return html`<wc-tooltip class=\"tooltip\" for=\"button\"\n >${this.tooltip}</wc-tooltip\n >`;\n }\n return nothing;\n }\n\n override focus() {\n this.buttonElement?.focus();\n }\n\n override blur() {\n this.buttonElement?.blur();\n }\n\n override firstUpdated() {\n this.__dispatchClickWithThrottle = throttle(\n this.__dispatchClick,\n this.throttleDelay,\n );\n }\n\n override render() {\n const isExtended = !!this.label;\n\n return html`\n <wc-focus-ring class=\"focus-ring\" for=\"button\"></wc-focus-ring>\n <wc-elevation class=\"elevation\"></wc-elevation>\n <div class=\"background\"></div>\n <wc-ripple class=\"ripple\" for=\"button\"></wc-ripple>\n <wc-skeleton class=\"skeleton\"></wc-skeleton>\n\n ${this.__renderFabElement(isExtended)} ${this.__renderTooltip()}\n `;\n }\n\n __renderFabElement(isExtended: boolean) {\n const cssClasses = {\n button: true,\n fab: true,\n 'fab-element': true,\n [`size-${this.size}`]: true,\n [`color-${this.color}`]: true,\n [`variant-${this.variant}`]: true,\n extended: isExtended,\n lowered: this.lowered,\n disabled: this.disabled,\n pressed: this.pressed,\n };\n\n if (!isLink(this)) {\n return html`<button\n class=${classMap(cssClasses)}\n id=\"button\"\n type=\"button\"\n @click=${this.__dispatchClickWithThrottle}\n @mousedown=${this.__handlePress}\n @keydown=${this.__handlePress}\n @keyup=${this.__handlePress}\n aria-describedby=${ifDefined(\n this.softDisabled ? DISABLED_REASON_ID : undefined,\n )}\n ?aria-disabled=${this.softDisabled}\n ?disabled=${this.disabled}\n ${spread(this.configAria)}\n >\n ${this.__renderFabContent(isExtended)}\n </button>`;\n }\n\n return html`<a\n class=${classMap(cssClasses)}\n id=\"button\"\n tabindex=${this.disabled ? '-1' : '0'}\n href=${ifDefined(this.href)}\n target=${this.target}\n @click=${this.__dispatchClick}\n @mousedown=${this.__handlePress}\n @keydown=${this.__handlePress}\n @keyup=${this.__handlePress}\n role=\"button\"\n aria-describedby=${ifDefined(\n this.softDisabled ? DISABLED_REASON_ID : undefined,\n )}\n ?aria-disabled=${this.softDisabled}\n ${spread(this.configAria)}\n >\n ${this.__renderFabContent(isExtended)}\n </a>`;\n }\n\n __renderFabContent(isExtended: boolean) {\n return html`\n <div class=\"fab-content\">\n <slot></slot>\n ${isExtended\n ? html`<span class=\"fab-label\">${this.label}</span>`\n : nothing}\n </div>\n ${this.__renderDisabledReason(this.softDisabled)}\n `;\n }\n}\n"],"names":["LitElement","html","nothing","classMap","ifDefined","styles","colorStyles","sizeStyles","property","query"],"mappings":"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"}
1
+ {"version":3,"file":"fab.js","sources":["../../src/button/fab/fab.ts"],"sourcesContent":["import { html, LitElement, nothing } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\n\nimport IndividualComponent from '@/IndividualComponent.js';\nimport {\n dispatchActivationClick,\n isActivationClick,\n} from '@/__internal/utils/dispatch-event-utils.js';\nimport { isLink } from '@/__internal/utils/is-link.js';\nimport styles from './fab.scss';\nimport colorStyles from './fab-colors.scss';\nimport sizeStyles from './fab-sizes.scss';\nimport { DISABLED_REASON_ID } from '@/button/ButtonConstants.js';\nimport { mixinBaseButton } from '../base-button/base-button.js';\nimport { mixinDelegatesAria } from '@/__internal/aria/delegate.js';\nimport { mixinFormSubmitter } from '@/__internal/mixins/form-submitter.js';\nimport { mixinHyperlink } from '@/__internal/mixins/hyperlink.js';\nimport { mixinElementInternals } from '@/__internal/mixins/element-internals.js';\nimport { mixinFormAssociated } from '@/__internal/mixins/form-associated.js';\nimport { ARIAMixinStrict } from '@/__internal/aria/aria.js';\n\n/**\n * @label FAB\n * @tag wc-fab\n * @rawTag fab\n *\n * @summary The FAB (Floating Action Button) represents the primary action on a screen.\n * @overview\n * <p>A Floating Action Button (FAB) is a circular button that represents the primary action on a screen. It follows the specification and supports four color roles and two variants.</p>\n *\n * @cssprop --fab-container-color: Background color of the FAB container.\n * @cssprop --fab-label-text-color: Text and icon color of the FAB label.\n * @cssprop --fab-container-shape: Corner radius of the FAB. Defaults to var(--shape-corner-large).\n * @cssprop --fab-container-elevation-level: Elevation level of the FAB. Defaults to 3.\n *\n * @fires {MouseEvent} click - Dispatched when the FAB is clicked.\n *\n * @example\n * ```html\n * <wc-fab><wc-icon name=\"add\"></wc-icon></wc-fab>\n * ```\n * @tags controls\n */\n@IndividualComponent\nexport class Fab extends mixinBaseButton(\n mixinHyperlink(\n mixinDelegatesAria(\n mixinFormSubmitter(\n mixinFormAssociated(mixinElementInternals(LitElement)),\n ),\n ),\n ),\n) {\n // ── Static ───────────────────────────────────────────────────────────────\n\n /** @nocollapse */ // eslint-disable-next-line\n static override shadowRootOptions: ShadowRootInit = {\n mode: 'open',\n delegatesFocus: true,\n };\n\n static override styles = [styles, colorStyles, sizeStyles];\n\n /**\n * Optional label text for the extended FAB variant.\n * When set, the FAB displays both the icon and a text label.\n */\n @property({ type: String }) label?: string;\n\n /**\n * The color role of the FAB.\n * `\"surface\"` uses the surface color role.\n * `\"primary\"` uses the primary color role.\n * `\"secondary\"` uses the secondary color role.\n * `\"tertiary\"` uses the tertiary color role.\n */\n @property({ reflect: true }) color:\n | 'surface'\n | 'primary'\n | 'secondary'\n | 'tertiary' = 'surface';\n\n /**\n * The style variant of the FAB.\n * `\"tonal\"` uses container colors.\n * `\"filled\"` uses solid role colors.\n */\n @property({ reflect: true }) variant: 'tonal' | 'filled' = 'tonal';\n\n /**\n * The size of the FAB.\n * `\"sm\"` renders a small FAB (40×40dp).\n * `\"md\"` renders a standard FAB (56×56dp). This is the default.\n * `\"lg\"` renders a large FAB (96×96dp).\n */\n @property({ reflect: true }) size: 'sm' | 'md' | 'lg' = 'md';\n\n /**\n * If `true`, the FAB is in a lowered (resting) state with reduced elevation.\n */\n @property({ type: Boolean, reflect: true }) lowered: boolean = false;\n\n /**\n * Tooltip text shown on hover.\n */\n @property() tooltip?: string;\n\n @property({ type: Boolean, reflect: true }) skeleton: boolean = false;\n\n @property({ type: Boolean, reflect: true }) toggle: boolean = false;\n\n @property({ type: Boolean, reflect: true }) selected: boolean = false;\n\n @query('.button') readonly buttonElement!: HTMLElement | null;\n\n constructor() {\n super();\n this.addEventListener('click', this.__dispatchClickWithThrottle);\n }\n\n __dispatchClick = (event: MouseEvent | KeyboardEvent) => {\n // If the button is soft-disabled or a disabled link, we need to explicitly\n // prevent the click from propagating to other event listeners as well as\n // prevent the default action.\n if (this.softDisabled || (this.disabled && this.href) || this.skeleton) {\n event.stopImmediatePropagation();\n event.preventDefault();\n return;\n }\n\n if (!isActivationClick(event) || !this.buttonElement) {\n return;\n }\n\n this.focus();\n dispatchActivationClick(this.buttonElement);\n };\n\n override focus() {\n this.buttonElement?.focus();\n }\n\n override blur() {\n this.buttonElement?.blur();\n }\n\n renderDisabledReason(softDisabled: boolean) {\n if (softDisabled)\n return html`<div\n id=${DISABLED_REASON_ID}\n role=\"tooltip\"\n aria-label=${this.disabledReason}\n class=\"screen-reader-only\"\n >\n ${this.disabledReason}\n </div>`;\n return nothing;\n }\n\n renderTooltip() {\n if (this.tooltip) {\n return html`<wc-tooltip class=\"tooltip\" for=\"button\"\n >${this.tooltip}</wc-tooltip\n >`;\n }\n return nothing;\n }\n\n renderFabElement(isExtended: boolean) {\n const { ariaLabel, ariaHasPopup, ariaExpanded } = this as ARIAMixinStrict;\n\n const cssClasses = {\n button: true,\n fab: true,\n 'fab-element': true,\n [`size-${this.size}`]: true,\n [`color-${this.color}`]: true,\n [`variant-${this.variant}`]: true,\n extended: isExtended,\n lowered: this.lowered,\n disabled: this.disabled,\n };\n\n if (!isLink(this)) {\n return html`<button\n class=${classMap(cssClasses)}\n id=\"button\"\n type=\"button\"\n aria-label=\"${ariaLabel || nothing}\"\n aria-haspopup=\"${ariaHasPopup || nothing}\"\n aria-expanded=\"${ariaExpanded || nothing}\"\n aria-describedby=${ifDefined(\n this.softDisabled ? DISABLED_REASON_ID : undefined,\n )}\n ?aria-disabled=${this.softDisabled}\n ?disabled=${this.disabled}\n >\n ${this.renderFabContent(isExtended)}\n </button>`;\n }\n\n return html`<a\n class=${classMap(cssClasses)}\n id=\"button\"\n tabindex=${this.disabled ? '-1' : '0'}\n href=${ifDefined(this.href)}\n target=${this.target}\n role=\"button\"\n aria-label=\"${ariaLabel || nothing}\"\n aria-haspopup=\"${ariaHasPopup || nothing}\"\n aria-expanded=\"${ariaExpanded || nothing}\"\n aria-describedby=${ifDefined(\n this.softDisabled ? DISABLED_REASON_ID : undefined,\n )}\n ?aria-disabled=${this.softDisabled}\n >\n ${this.renderFabContent(isExtended)}\n </a>`;\n }\n\n renderFabContent(isExtended: boolean) {\n return html`\n <div class=\"fab-content\">\n <slot></slot>\n ${isExtended\n ? html`<span class=\"fab-label\">${this.label}</span>`\n : nothing}\n </div>\n ${this.renderDisabledReason(this.softDisabled)}\n `;\n }\n\n // ── Render ────────────────────────────────────────────────────────────────\n\n override render() {\n const isExtended = !!this.label;\n\n return html`\n <wc-focus-ring class=\"focus-ring\" for=\"button\"></wc-focus-ring>\n <wc-elevation class=\"elevation\"></wc-elevation>\n <div class=\"background\"></div>\n <wc-ripple class=\"ripple\" for=\"button\"></wc-ripple>\n <wc-skeleton class=\"skeleton\"></wc-skeleton>\n\n ${this.renderFabElement(isExtended)} ${this.renderTooltip()}\n `;\n }\n}\n"],"names":["LitElement","html","nothing","classMap","ifDefined","styles","colorStyles","sizeStyles","property","query"],"mappings":"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"}