@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
package/dist/ripple.js ADDED
@@ -0,0 +1,506 @@
1
+ import { i, _ as __decorate, I as IndividualComponent, a as i$1, b } from './IndividualComponent-Bdwyrvd6.js';
2
+ import { n } from './property-B49QQ8pS.js';
3
+ import { r } from './state-DkTK9EGF.js';
4
+ import { e } from './query-CHb9Ft_d.js';
5
+ import { e as e$1 } from './class-map-DG7CA1et.js';
6
+ import { A as AttachableController } from './attachable-controller-CAKVrfcG.js';
7
+ import './base-Cl6v8-BZ.js';
8
+ import './directive-ZPhl09Yt.js';
9
+
10
+ const PRESS_GROW_MS = 450;
11
+ const MINIMUM_PRESS_MS = 225;
12
+ const INITIAL_ORIGIN_SCALE = 0.2;
13
+ const PADDING = 10;
14
+ const SOFT_EDGE_MINIMUM_SIZE = 75;
15
+ const SOFT_EDGE_CONTAINER_RATIO = 0.35;
16
+ const PRESS_PSEUDO = '::after';
17
+ const ANIMATION_FILL = 'forwards';
18
+ /**
19
+ * Interaction states for the ripple.
20
+ *
21
+ * On Touch:
22
+ * - `INACTIVE -> TOUCH_DELAY -> WAITING_FOR_CLICK -> INACTIVE`
23
+ *
24
+ * On Mouse or Pen:
25
+ * - `INACTIVE -> WAITING_FOR_CLICK -> INACTIVE`
26
+ */
27
+ var State;
28
+ (function (State) {
29
+ /**
30
+ * Initial state of the control, no touch in progress.
31
+ *
32
+ * Transitions:
33
+ * - on touch down: transition to `TOUCH_DELAY`.
34
+ * - on mouse down: transition to `WAITING_FOR_CLICK`.
35
+ */
36
+ State[State["INACTIVE"] = 0] = "INACTIVE";
37
+ /**
38
+ * Touch down has been received, waiting to determine if it's a swipe or
39
+ * scroll.
40
+ *
41
+ * Transitions:
42
+ * - on touch up: begin press; transition to `WAITING_FOR_CLICK`.
43
+ * - on cancel: transition to `INACTIVE`.
44
+ * - after `TOUCH_DELAY_MS`: begin press; transition to `HOLDING`.
45
+ */
46
+ State[State["TOUCH_DELAY"] = 1] = "TOUCH_DELAY";
47
+ /**
48
+ * A touch has been deemed to be a press
49
+ *
50
+ * Transitions:
51
+ * - on up: transition to `WAITING_FOR_CLICK`.
52
+ */
53
+ State[State["HOLDING"] = 2] = "HOLDING";
54
+ /**
55
+ * The user touch has finished, transition into rest state.
56
+ *
57
+ * Transitions:
58
+ * - on click end press; transition to `INACTIVE`.
59
+ */
60
+ State[State["WAITING_FOR_CLICK"] = 3] = "WAITING_FOR_CLICK";
61
+ })(State || (State = {}));
62
+ /**
63
+ * Events that the ripple listens to.
64
+ */
65
+ const EVENTS = [
66
+ 'click',
67
+ 'contextmenu',
68
+ 'pointercancel',
69
+ 'pointerdown',
70
+ 'pointerenter',
71
+ 'pointerleave',
72
+ 'pointerup',
73
+ ];
74
+ /**
75
+ * Delay reacting to touch so that we do not show the ripple for a swipe or
76
+ * scroll interaction.
77
+ */
78
+ const TOUCH_DELAY_MS = 150;
79
+ /**
80
+ * Used to detect if HCM is active. Events do not process during HCM when the
81
+ * ripple is not displayed.
82
+ */
83
+ const FORCED_COLORS = window.matchMedia('(forced-colors: active)');
84
+ /**
85
+ * @label Ripple
86
+ * @tag wc-ripple
87
+ * @rawTag ripple
88
+ *
89
+ * @summary Provides ripple effect for interactive elements.
90
+ * @overview
91
+ * <p>Ripple creates a visual feedback effect when users interact with buttons or other clickable elements.</p>
92
+ *
93
+ * @example
94
+ * ```html
95
+ * <style>
96
+ * .ripple-surface {
97
+ * position: relative;
98
+ * display: inline-flex;
99
+ * align-items: center;
100
+ * justify-content: center;
101
+ * width: 220px;
102
+ * height: 64px;
103
+ * border-radius: 12px;
104
+ * background: var(--color-surface-container-high);
105
+ * color: var(--color-on-surface);
106
+ * overflow: hidden;
107
+ * cursor: pointer;
108
+ * user-select: none;
109
+ * }
110
+ * </style>
111
+ * <div class="ripple-surface">
112
+ * <wc-ripple></wc-ripple>
113
+ * Ripple Effect
114
+ * </div>
115
+ * ```
116
+ * @tags display
117
+ */
118
+ let Ripple = class Ripple extends i$1 {
119
+ constructor() {
120
+ super(...arguments);
121
+ /**
122
+ * Disables the ripple.
123
+ */
124
+ this.disabled = false;
125
+ /** True while the pointer is hovering over the host element. */
126
+ this.hovered = false;
127
+ /** True while a press animation is playing. */
128
+ this.pressed = false;
129
+ // ── Private fields ────────────────────────────────────────────────────────
130
+ /** CSS size string (e.g. `"48px"`) for the growing ripple circle. */
131
+ this.rippleSize = '';
132
+ /** CSS scale factor applied to the ripple at the end of its animation. */
133
+ this.rippleScale = '';
134
+ /** Pixel size of the ripple at its initial (pre-grow) state. */
135
+ this.initialSize = 0;
136
+ /** Current interaction state of the ripple state machine. */
137
+ this.state = State.INACTIVE;
138
+ /** Bound reference to `handleEvent` passed to `addEventListener` / `removeEventListener`. */
139
+ this._boundHandleEvent = this.handleEvent.bind(this);
140
+ this.attachableController = new AttachableController(
141
+ // `LitElement` satisfies the ReactiveControllerHost & HTMLElement shape
142
+ // required by the controller.
143
+ this, this.onControlChange.bind(this));
144
+ }
145
+ get htmlFor() {
146
+ return this.attachableController.htmlFor;
147
+ }
148
+ set htmlFor(htmlFor) {
149
+ this.attachableController.htmlFor = htmlFor;
150
+ }
151
+ get control() {
152
+ return this.attachableController.control;
153
+ }
154
+ set control(control) {
155
+ this.attachableController.control = control;
156
+ }
157
+ connectedCallback() {
158
+ super.connectedCallback();
159
+ // Needed for VoiceOver, which will create a "group" if the element is a
160
+ // sibling to other content.
161
+ this.setAttribute('aria-hidden', 'true');
162
+ }
163
+ disconnectedCallback() {
164
+ super.disconnectedCallback();
165
+ this.detach();
166
+ }
167
+ attach(control) {
168
+ this.attachableController.attach(control);
169
+ }
170
+ detach() {
171
+ this.attachableController.detach();
172
+ }
173
+ onControlChange(prev, next) {
174
+ for (const event of EVENTS) {
175
+ prev?.removeEventListener(event, this._boundHandleEvent);
176
+ next?.addEventListener(event, this._boundHandleEvent);
177
+ }
178
+ }
179
+ render() {
180
+ const classes = {
181
+ hovered: this.hovered,
182
+ pressed: this.pressed,
183
+ };
184
+ return b `<div class="surface ${e$1(classes)}"></div>`;
185
+ }
186
+ update(changedProps) {
187
+ if (changedProps.has('disabled') && this.disabled) {
188
+ this.hovered = false;
189
+ this.pressed = false;
190
+ }
191
+ super.update(changedProps);
192
+ }
193
+ handlePointerenter(event) {
194
+ if (!this.shouldReactToEvent(event)) {
195
+ return;
196
+ }
197
+ this.hovered = true;
198
+ }
199
+ handlePointerleave(event) {
200
+ if (!this.shouldReactToEvent(event)) {
201
+ return;
202
+ }
203
+ this.hovered = false;
204
+ // release a held mouse or pen press that moves outside the element
205
+ if (this.state !== State.INACTIVE) {
206
+ this.endPressAnimation();
207
+ }
208
+ }
209
+ handlePointerup(event) {
210
+ if (!this.shouldReactToEvent(event)) {
211
+ return;
212
+ }
213
+ if (this.state === State.HOLDING) {
214
+ this.state = State.WAITING_FOR_CLICK;
215
+ return;
216
+ }
217
+ if (this.state === State.TOUCH_DELAY) {
218
+ this.state = State.WAITING_FOR_CLICK;
219
+ this.startPressAnimation(this.rippleStartEvent);
220
+ return;
221
+ }
222
+ }
223
+ async handlePointerdown(event) {
224
+ if (!this.shouldReactToEvent(event)) {
225
+ return;
226
+ }
227
+ this.rippleStartEvent = event;
228
+ if (!this.isTouch(event)) {
229
+ this.state = State.WAITING_FOR_CLICK;
230
+ this.startPressAnimation(event);
231
+ return;
232
+ }
233
+ // Wait for a hold after touch delay
234
+ this.state = State.TOUCH_DELAY;
235
+ await new Promise(resolve => {
236
+ setTimeout(resolve, TOUCH_DELAY_MS);
237
+ });
238
+ if (this.state !== State.TOUCH_DELAY) {
239
+ return;
240
+ }
241
+ this.state = State.HOLDING;
242
+ this.startPressAnimation(event);
243
+ }
244
+ handleClick() {
245
+ if (this.disabled) {
246
+ return;
247
+ }
248
+ if (this.state === State.WAITING_FOR_CLICK) {
249
+ this.endPressAnimation();
250
+ return;
251
+ }
252
+ if (this.state === State.INACTIVE) {
253
+ // keyboard synthesized click event
254
+ this.startPressAnimation();
255
+ this.endPressAnimation();
256
+ }
257
+ }
258
+ handlePointercancel(event) {
259
+ if (!this.shouldReactToEvent(event)) {
260
+ return;
261
+ }
262
+ this.endPressAnimation();
263
+ }
264
+ handleContextmenu() {
265
+ if (this.disabled) {
266
+ return;
267
+ }
268
+ this.endPressAnimation();
269
+ }
270
+ determineRippleSize() {
271
+ const { height, width } = this.getBoundingClientRect();
272
+ const maxDim = Math.max(height, width);
273
+ const softEdgeSize = Math.max(SOFT_EDGE_CONTAINER_RATIO * maxDim, SOFT_EDGE_MINIMUM_SIZE);
274
+ const initialSize = Math.floor(maxDim * INITIAL_ORIGIN_SCALE);
275
+ const hypotenuse = Math.sqrt(width ** 2 + height ** 2);
276
+ const maxRadius = hypotenuse + PADDING;
277
+ this.initialSize = initialSize;
278
+ const maybeZoomedScale = (maxRadius + softEdgeSize) / initialSize;
279
+ this.rippleScale = `${maybeZoomedScale}`;
280
+ this.rippleSize = `${initialSize}px`;
281
+ }
282
+ getTranslationCoordinates(positionEvent) {
283
+ const { height, width } = this.getBoundingClientRect();
284
+ // end in the center
285
+ const endPoint = {
286
+ x: (width - this.initialSize) / 2,
287
+ y: (height - this.initialSize) / 2,
288
+ };
289
+ let startPoint;
290
+ if (positionEvent instanceof PointerEvent) {
291
+ startPoint = this.getNormalizedPointerEventCoords(positionEvent);
292
+ }
293
+ else {
294
+ startPoint = {
295
+ x: width / 2,
296
+ y: height / 2,
297
+ };
298
+ }
299
+ // center around start point
300
+ startPoint = {
301
+ x: startPoint.x - this.initialSize / 2,
302
+ y: startPoint.y - this.initialSize / 2,
303
+ };
304
+ return { startPoint, endPoint };
305
+ }
306
+ startPressAnimation(positionEvent) {
307
+ if (!this.mdRoot) {
308
+ return;
309
+ }
310
+ this.pressed = true;
311
+ this.growAnimation?.cancel();
312
+ this.determineRippleSize();
313
+ const { startPoint, endPoint } = this.getTranslationCoordinates(positionEvent);
314
+ const translateStart = `${startPoint.x}px, ${startPoint.y}px`;
315
+ const translateEnd = `${endPoint.x}px, ${endPoint.y}px`;
316
+ this.growAnimation = this.mdRoot.animate({
317
+ top: [0, 0],
318
+ left: [0, 0],
319
+ height: [this.rippleSize, this.rippleSize],
320
+ width: [this.rippleSize, this.rippleSize],
321
+ transform: [
322
+ `translate(${translateStart}) scale(1)`,
323
+ `translate(${translateEnd}) scale(${this.rippleScale})`,
324
+ ],
325
+ }, {
326
+ pseudoElement: PRESS_PSEUDO,
327
+ duration: PRESS_GROW_MS,
328
+ easing: 'cubic-bezier(0.2, 0, 0, 1)',
329
+ fill: ANIMATION_FILL,
330
+ });
331
+ }
332
+ async endPressAnimation() {
333
+ this.rippleStartEvent = undefined;
334
+ this.state = State.INACTIVE;
335
+ const animation = this.growAnimation;
336
+ let pressAnimationPlayState = Infinity;
337
+ if (typeof animation?.currentTime === 'number') {
338
+ pressAnimationPlayState = animation.currentTime;
339
+ }
340
+ else if (animation?.currentTime) {
341
+ pressAnimationPlayState = animation.currentTime.to('ms').value;
342
+ }
343
+ if (pressAnimationPlayState >= MINIMUM_PRESS_MS) {
344
+ this.pressed = false;
345
+ return;
346
+ }
347
+ await new Promise(resolve => {
348
+ setTimeout(resolve, MINIMUM_PRESS_MS - pressAnimationPlayState);
349
+ });
350
+ if (this.growAnimation !== animation) {
351
+ // A new press animation was started. The old animation was canceled and
352
+ // should not finish the pressed state.
353
+ return;
354
+ }
355
+ this.pressed = false;
356
+ }
357
+ /**
358
+ * Returns `true` if
359
+ * - the ripple element is enabled
360
+ * - the pointer is primary for the input type
361
+ * - the pointer is the pointer that started the interaction, or will start
362
+ * the interaction
363
+ * - the pointer is a touch, or the pointer state has the primary button
364
+ * held, or the pointer is hovering
365
+ */
366
+ shouldReactToEvent(event) {
367
+ if (this.disabled || !event.isPrimary) {
368
+ return false;
369
+ }
370
+ if (this.rippleStartEvent &&
371
+ this.rippleStartEvent.pointerId !== event.pointerId) {
372
+ return false;
373
+ }
374
+ if (event.type === 'pointerenter' || event.type === 'pointerleave') {
375
+ return !this.isTouch(event);
376
+ }
377
+ const isPrimaryButton = event.buttons === 1;
378
+ return this.isTouch(event) || isPrimaryButton;
379
+ }
380
+ isTouch({ pointerType }) {
381
+ return pointerType === 'touch';
382
+ }
383
+ async handleEvent(event) {
384
+ if (FORCED_COLORS?.matches) {
385
+ // Skip event logic since the ripple is `display: none`.
386
+ return;
387
+ }
388
+ switch (event.type) {
389
+ case 'click':
390
+ this.handleClick();
391
+ break;
392
+ case 'contextmenu':
393
+ this.handleContextmenu();
394
+ break;
395
+ case 'pointercancel':
396
+ this.handlePointercancel(event);
397
+ break;
398
+ case 'pointerdown':
399
+ await this.handlePointerdown(event);
400
+ break;
401
+ case 'pointerenter':
402
+ this.handlePointerenter(event);
403
+ break;
404
+ case 'pointerleave':
405
+ this.handlePointerleave(event);
406
+ break;
407
+ case 'pointerup':
408
+ this.handlePointerup(event);
409
+ break;
410
+ }
411
+ }
412
+ getNormalizedPointerEventCoords(pointerEvent) {
413
+ const { scrollX, scrollY } = window;
414
+ const { left, top } = this.getBoundingClientRect();
415
+ const documentX = scrollX + left;
416
+ const documentY = scrollY + top;
417
+ const { pageX, pageY } = pointerEvent;
418
+ return {
419
+ x: pageX - documentX,
420
+ y: pageY - documentY,
421
+ };
422
+ }
423
+ };
424
+ Ripple.styles = i `
425
+ :host {
426
+ display: flex;
427
+ margin: auto;
428
+ pointer-events: none;
429
+ }
430
+
431
+ :host([disabled]) {
432
+ display: none;
433
+ }
434
+
435
+ @media (forced-colors: active) {
436
+ :host {
437
+ display: none;
438
+ }
439
+ }
440
+
441
+ :host,
442
+ .surface {
443
+ border-radius: inherit;
444
+ corner-shape: inherit;
445
+ position: absolute;
446
+ inset: 0;
447
+ overflow: hidden;
448
+ }
449
+
450
+ .surface {
451
+ -webkit-tap-highlight-color: transparent;
452
+
453
+ &::before,
454
+ &::after {
455
+ content: '';
456
+ opacity: 0;
457
+ position: absolute;
458
+ }
459
+
460
+ &::before {
461
+ background-color: var(--ripple-pressed-color, var(--color-on-surface));
462
+ inset: 0;
463
+ transition:
464
+ opacity 15ms linear,
465
+ background-color 15ms linear;
466
+ }
467
+
468
+ &::after {
469
+ background: radial-gradient(
470
+ closest-side,
471
+ var(--ripple-pressed-color, var(--color-on-surface))
472
+ max(calc(100% - 70px), 65%),
473
+ transparent 100%
474
+ );
475
+ transform-origin: center center;
476
+ transition: opacity 375ms linear;
477
+ }
478
+ }
479
+
480
+ .hovered::before {
481
+ opacity: 0.08;
482
+ }
483
+
484
+ .pressed::after {
485
+ opacity: 0.12;
486
+ transition-duration: 105ms;
487
+ }
488
+ `;
489
+ __decorate([
490
+ n({ type: Boolean, reflect: true })
491
+ ], Ripple.prototype, "disabled", void 0);
492
+ __decorate([
493
+ r()
494
+ ], Ripple.prototype, "hovered", void 0);
495
+ __decorate([
496
+ r()
497
+ ], Ripple.prototype, "pressed", void 0);
498
+ __decorate([
499
+ e('.surface')
500
+ ], Ripple.prototype, "mdRoot", void 0);
501
+ Ripple = __decorate([
502
+ IndividualComponent
503
+ ], Ripple);
504
+
505
+ export { Ripple };
506
+ //# sourceMappingURL=ripple.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ripple.js","sources":["../../src/ripple/ripple.ts"],"sourcesContent":["import { LitElement, html, css, PropertyValues, isServer } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport IndividualComponent from '@/IndividualComponent.js';\nimport {\n Attachable,\n AttachableController,\n} from '@/__internal/controllers/attachable-controller.js';\n\nconst PRESS_GROW_MS = 450;\nconst MINIMUM_PRESS_MS = 225;\nconst INITIAL_ORIGIN_SCALE = 0.2;\nconst PADDING = 10;\nconst SOFT_EDGE_MINIMUM_SIZE = 75;\nconst SOFT_EDGE_CONTAINER_RATIO = 0.35;\nconst PRESS_PSEUDO = '::after';\nconst ANIMATION_FILL = 'forwards';\n\n/**\n * Interaction states for the ripple.\n *\n * On Touch:\n * - `INACTIVE -> TOUCH_DELAY -> WAITING_FOR_CLICK -> INACTIVE`\n *\n * On Mouse or Pen:\n * - `INACTIVE -> WAITING_FOR_CLICK -> INACTIVE`\n */\nenum State {\n /**\n * Initial state of the control, no touch in progress.\n *\n * Transitions:\n * - on touch down: transition to `TOUCH_DELAY`.\n * - on mouse down: transition to `WAITING_FOR_CLICK`.\n */\n INACTIVE,\n /**\n * Touch down has been received, waiting to determine if it's a swipe or\n * scroll.\n *\n * Transitions:\n * - on touch up: begin press; transition to `WAITING_FOR_CLICK`.\n * - on cancel: transition to `INACTIVE`.\n * - after `TOUCH_DELAY_MS`: begin press; transition to `HOLDING`.\n */\n TOUCH_DELAY,\n /**\n * A touch has been deemed to be a press\n *\n * Transitions:\n * - on up: transition to `WAITING_FOR_CLICK`.\n */\n HOLDING,\n /**\n * The user touch has finished, transition into rest state.\n *\n * Transitions:\n * - on click end press; transition to `INACTIVE`.\n */\n WAITING_FOR_CLICK,\n}\n\n/**\n * Events that the ripple listens to.\n */\nconst EVENTS = [\n 'click',\n 'contextmenu',\n 'pointercancel',\n 'pointerdown',\n 'pointerenter',\n 'pointerleave',\n 'pointerup',\n];\n\n/**\n * Delay reacting to touch so that we do not show the ripple for a swipe or\n * scroll interaction.\n */\nconst TOUCH_DELAY_MS = 150;\n\n/**\n * Used to detect if HCM is active. Events do not process during HCM when the\n * ripple is not displayed.\n */\nconst FORCED_COLORS = window.matchMedia('(forced-colors: active)');\n\n/**\n * @label Ripple\n * @tag wc-ripple\n * @rawTag ripple\n *\n * @summary Provides ripple effect for interactive elements.\n * @overview\n * <p>Ripple creates a visual feedback effect when users interact with buttons or other clickable elements.</p>\n *\n * @example\n * ```html\n * <style>\n * .ripple-surface {\n * position: relative;\n * display: inline-flex;\n * align-items: center;\n * justify-content: center;\n * width: 220px;\n * height: 64px;\n * border-radius: 12px;\n * background: var(--color-surface-container-high);\n * color: var(--color-on-surface);\n * overflow: hidden;\n * cursor: pointer;\n * user-select: none;\n * }\n * </style>\n * <div class=\"ripple-surface\">\n * <wc-ripple></wc-ripple>\n * Ripple Effect\n * </div>\n * ```\n * @tags display\n */\n@IndividualComponent\nexport class Ripple extends LitElement implements Attachable {\n static styles = css`\n :host {\n display: flex;\n margin: auto;\n pointer-events: none;\n }\n\n :host([disabled]) {\n display: none;\n }\n\n @media (forced-colors: active) {\n :host {\n display: none;\n }\n }\n\n :host,\n .surface {\n border-radius: inherit;\n corner-shape: inherit;\n position: absolute;\n inset: 0;\n overflow: hidden;\n }\n\n .surface {\n -webkit-tap-highlight-color: transparent;\n\n &::before,\n &::after {\n content: '';\n opacity: 0;\n position: absolute;\n }\n\n &::before {\n background-color: var(--ripple-pressed-color, var(--color-on-surface));\n inset: 0;\n transition:\n opacity 15ms linear,\n background-color 15ms linear;\n }\n\n &::after {\n background: radial-gradient(\n closest-side,\n var(--ripple-pressed-color, var(--color-on-surface))\n max(calc(100% - 70px), 65%),\n transparent 100%\n );\n transform-origin: center center;\n transition: opacity 375ms linear;\n }\n }\n\n .hovered::before {\n opacity: 0.08;\n }\n\n .pressed::after {\n opacity: 0.12;\n transition-duration: 105ms;\n }\n `;\n\n /**\n * Disables the ripple.\n */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /** True while the pointer is hovering over the host element. */\n @state() private hovered = false;\n\n /** True while a press animation is playing. */\n @state() private pressed = false;\n\n @query('.surface') private readonly mdRoot!: HTMLElement | null;\n\n // ── Private fields ────────────────────────────────────────────────────────\n\n /** CSS size string (e.g. `\"48px\"`) for the growing ripple circle. */\n private rippleSize = '';\n\n /** CSS scale factor applied to the ripple at the end of its animation. */\n private rippleScale = '';\n\n /** Pixel size of the ripple at its initial (pre-grow) state. */\n private initialSize = 0;\n\n /** Reference to the currently running grow animation, if any. */\n private growAnimation?: Animation;\n\n /** Current interaction state of the ripple state machine. */\n private state = State.INACTIVE;\n\n /** Pointer event that initiated the current press, used to calculate start coordinates. */\n private rippleStartEvent?: PointerEvent;\n\n /** Bound reference to `handleEvent` passed to `addEventListener` / `removeEventListener`. */\n private readonly _boundHandleEvent = this.handleEvent.bind(this);\n\n get htmlFor() {\n return this.attachableController.htmlFor;\n }\n\n set htmlFor(htmlFor: string | null) {\n this.attachableController.htmlFor = htmlFor;\n }\n\n get control() {\n return this.attachableController.control;\n }\n\n set control(control: HTMLElement | null) {\n this.attachableController.control = control;\n }\n\n private readonly attachableController = new AttachableController(\n // `LitElement` satisfies the ReactiveControllerHost & HTMLElement shape\n // required by the controller.\n this,\n this.onControlChange.bind(this),\n );\n\n override connectedCallback() {\n super.connectedCallback();\n // Needed for VoiceOver, which will create a \"group\" if the element is a\n // sibling to other content.\n this.setAttribute('aria-hidden', 'true');\n }\n\n override disconnectedCallback() {\n super.disconnectedCallback();\n this.detach();\n }\n\n attach(control: HTMLElement) {\n this.attachableController.attach(control);\n }\n\n detach() {\n this.attachableController.detach();\n }\n\n private onControlChange(prev: HTMLElement | null, next: HTMLElement | null) {\n if (isServer) return;\n\n for (const event of EVENTS) {\n prev?.removeEventListener(event, this._boundHandleEvent);\n next?.addEventListener(event, this._boundHandleEvent);\n }\n }\n\n protected override render() {\n const classes = {\n hovered: this.hovered,\n pressed: this.pressed,\n };\n\n return html`<div class=\"surface ${classMap(classes)}\"></div>`;\n }\n\n protected override update(changedProps: PropertyValues<Ripple>) {\n if (changedProps.has('disabled') && this.disabled) {\n this.hovered = false;\n this.pressed = false;\n }\n super.update(changedProps);\n }\n\n handlePointerenter(event: PointerEvent) {\n if (!this.shouldReactToEvent(event)) {\n return;\n }\n\n this.hovered = true;\n }\n\n handlePointerleave(event: PointerEvent) {\n if (!this.shouldReactToEvent(event)) {\n return;\n }\n\n this.hovered = false;\n\n // release a held mouse or pen press that moves outside the element\n if (this.state !== State.INACTIVE) {\n this.endPressAnimation();\n }\n }\n\n private handlePointerup(event: PointerEvent) {\n if (!this.shouldReactToEvent(event)) {\n return;\n }\n\n if (this.state === State.HOLDING) {\n this.state = State.WAITING_FOR_CLICK;\n return;\n }\n\n if (this.state === State.TOUCH_DELAY) {\n this.state = State.WAITING_FOR_CLICK;\n this.startPressAnimation(this.rippleStartEvent);\n return;\n }\n }\n\n private async handlePointerdown(event: PointerEvent) {\n if (!this.shouldReactToEvent(event)) {\n return;\n }\n\n this.rippleStartEvent = event;\n if (!this.isTouch(event)) {\n this.state = State.WAITING_FOR_CLICK;\n this.startPressAnimation(event);\n return;\n }\n\n // Wait for a hold after touch delay\n this.state = State.TOUCH_DELAY;\n await new Promise(resolve => {\n setTimeout(resolve, TOUCH_DELAY_MS);\n });\n\n if (this.state !== State.TOUCH_DELAY) {\n return;\n }\n\n this.state = State.HOLDING;\n this.startPressAnimation(event);\n }\n\n private handleClick() {\n if (this.disabled) {\n return;\n }\n\n if (this.state === State.WAITING_FOR_CLICK) {\n this.endPressAnimation();\n return;\n }\n\n if (this.state === State.INACTIVE) {\n // keyboard synthesized click event\n this.startPressAnimation();\n this.endPressAnimation();\n }\n }\n\n private handlePointercancel(event: PointerEvent) {\n if (!this.shouldReactToEvent(event)) {\n return;\n }\n\n this.endPressAnimation();\n }\n\n private handleContextmenu() {\n if (this.disabled) {\n return;\n }\n\n this.endPressAnimation();\n }\n\n private determineRippleSize() {\n const { height, width } = this.getBoundingClientRect();\n const maxDim = Math.max(height, width);\n const softEdgeSize = Math.max(\n SOFT_EDGE_CONTAINER_RATIO * maxDim,\n SOFT_EDGE_MINIMUM_SIZE,\n );\n\n const initialSize = Math.floor(maxDim * INITIAL_ORIGIN_SCALE);\n const hypotenuse = Math.sqrt(width ** 2 + height ** 2);\n const maxRadius = hypotenuse + PADDING;\n\n this.initialSize = initialSize;\n const maybeZoomedScale = (maxRadius + softEdgeSize) / initialSize;\n this.rippleScale = `${maybeZoomedScale}`;\n this.rippleSize = `${initialSize}px`;\n }\n\n private getTranslationCoordinates(positionEvent?: Event) {\n const { height, width } = this.getBoundingClientRect();\n // end in the center\n const endPoint = {\n x: (width - this.initialSize) / 2,\n y: (height - this.initialSize) / 2,\n };\n\n let startPoint;\n if (positionEvent instanceof PointerEvent) {\n startPoint = this.getNormalizedPointerEventCoords(positionEvent);\n } else {\n startPoint = {\n x: width / 2,\n y: height / 2,\n };\n }\n\n // center around start point\n startPoint = {\n x: startPoint.x - this.initialSize / 2,\n y: startPoint.y - this.initialSize / 2,\n };\n\n return { startPoint, endPoint };\n }\n\n private startPressAnimation(positionEvent?: Event) {\n if (!this.mdRoot) {\n return;\n }\n\n this.pressed = true;\n this.growAnimation?.cancel();\n this.determineRippleSize();\n const { startPoint, endPoint } =\n this.getTranslationCoordinates(positionEvent);\n const translateStart = `${startPoint.x}px, ${startPoint.y}px`;\n const translateEnd = `${endPoint.x}px, ${endPoint.y}px`;\n\n this.growAnimation = this.mdRoot.animate(\n {\n top: [0, 0],\n left: [0, 0],\n height: [this.rippleSize, this.rippleSize],\n width: [this.rippleSize, this.rippleSize],\n transform: [\n `translate(${translateStart}) scale(1)`,\n `translate(${translateEnd}) scale(${this.rippleScale})`,\n ],\n },\n {\n pseudoElement: PRESS_PSEUDO,\n duration: PRESS_GROW_MS,\n easing: 'cubic-bezier(0.2, 0, 0, 1)',\n fill: ANIMATION_FILL,\n },\n );\n }\n\n private async endPressAnimation() {\n this.rippleStartEvent = undefined;\n this.state = State.INACTIVE;\n const animation = this.growAnimation;\n let pressAnimationPlayState = Infinity;\n if (typeof animation?.currentTime === 'number') {\n pressAnimationPlayState = animation.currentTime;\n } else if (animation?.currentTime) {\n pressAnimationPlayState = animation.currentTime.to('ms').value;\n }\n\n if (pressAnimationPlayState >= MINIMUM_PRESS_MS) {\n this.pressed = false;\n return;\n }\n\n await new Promise(resolve => {\n setTimeout(resolve, MINIMUM_PRESS_MS - pressAnimationPlayState);\n });\n\n if (this.growAnimation !== animation) {\n // A new press animation was started. The old animation was canceled and\n // should not finish the pressed state.\n return;\n }\n\n this.pressed = false;\n }\n\n /**\n * Returns `true` if\n * - the ripple element is enabled\n * - the pointer is primary for the input type\n * - the pointer is the pointer that started the interaction, or will start\n * the interaction\n * - the pointer is a touch, or the pointer state has the primary button\n * held, or the pointer is hovering\n */\n private shouldReactToEvent(event: PointerEvent) {\n if (this.disabled || !event.isPrimary) {\n return false;\n }\n\n if (\n this.rippleStartEvent &&\n this.rippleStartEvent.pointerId !== event.pointerId\n ) {\n return false;\n }\n\n if (event.type === 'pointerenter' || event.type === 'pointerleave') {\n return !this.isTouch(event);\n }\n\n const isPrimaryButton = event.buttons === 1;\n return this.isTouch(event) || isPrimaryButton;\n }\n\n private isTouch({ pointerType }: PointerEvent) {\n return pointerType === 'touch';\n }\n\n async handleEvent(event: Event) {\n if (FORCED_COLORS?.matches) {\n // Skip event logic since the ripple is `display: none`.\n return;\n }\n\n switch (event.type) {\n case 'click':\n this.handleClick();\n break;\n case 'contextmenu':\n this.handleContextmenu();\n break;\n case 'pointercancel':\n this.handlePointercancel(event as PointerEvent);\n break;\n case 'pointerdown':\n await this.handlePointerdown(event as PointerEvent);\n break;\n case 'pointerenter':\n this.handlePointerenter(event as PointerEvent);\n break;\n case 'pointerleave':\n this.handlePointerleave(event as PointerEvent);\n break;\n case 'pointerup':\n this.handlePointerup(event as PointerEvent);\n break;\n default:\n break;\n }\n }\n\n private getNormalizedPointerEventCoords(pointerEvent: PointerEvent): {\n x: number;\n y: number;\n } {\n const { scrollX, scrollY } = window;\n const { left, top } = this.getBoundingClientRect();\n const documentX = scrollX + left;\n const documentY = scrollY + top;\n const { pageX, pageY } = pointerEvent;\n return {\n x: pageX - documentX,\n y: pageY - documentY,\n };\n }\n}\n"],"names":["LitElement","html","classMap","css","property","state","query"],"mappings":"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"}
package/dist/search.js CHANGED
@@ -1,10 +1,11 @@
1
- import { E, A, a as i$1, _ as __decorate, I as IndividualComponent, i as i$2, b } from './IndividualComponent-DUINtMGK.js';
2
- import { n } from './property-1psGvXOq.js';
3
- import { r as r$1 } from './state-DwbEjqVk.js';
4
- import { e as e$1 } from './query-QBcUV-L_.js';
5
- import { e as e$2 } from './class-map-YU7g0o3B.js';
1
+ import { E, A, i as i$1, _ as __decorate, I as IndividualComponent, a as i$2, b } from './IndividualComponent-Bdwyrvd6.js';
2
+ import { n } from './property-B49QQ8pS.js';
3
+ import { r as r$1 } from './state-DkTK9EGF.js';
4
+ import { e as e$1 } from './query-CHb9Ft_d.js';
5
+ import { e as e$2 } from './class-map-DG7CA1et.js';
6
6
  import { e, i, t } from './directive-ZPhl09Yt.js';
7
- import { o as observerSlotChangesWithCallback } from './observe-slot-change-D8Xg-kSS.js';
7
+ import { o as observerSlotChangesWithCallback } from './observe-slot-change-DPxaZrZF.js';
8
+ import './base-Cl6v8-BZ.js';
8
9
 
9
10
  /**
10
11
  * @license
@@ -26,6 +27,10 @@ var css_248z$1 = i$1`* {
26
27
  display: none !important;
27
28
  }
28
29
 
30
+ [hidden] {
31
+ display: none !important;
32
+ }
33
+
29
34
  :host {
30
35
  display: block;
31
36
  --search-container-shape: var(--shape-corner-full);
@@ -237,7 +242,7 @@ var css_248z = i$1`:host {
237
242
  * @tag wc-search
238
243
  * @rawTag search
239
244
  *
240
- * @summary A Material 3 search bar for filtering and finding content.
245
+ * @summary A search bar for filtering and finding content.
241
246
  * @overview
242
247
  * <p>The search component provides a text input designed for search interactions.
243
248
  * It supports outlined and filled variants, an optional clear button, and leading/trailing icon slots.</p>