@redvars/peacock 3.1.1 → 3.1.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 (411) hide show
  1. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/LoaderUtils.d.ts +0 -1
  2. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/LoaderUtils.js +0 -1
  3. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/LoaderUtils.js.map +1 -1
  4. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/avatar/avatar.css.js.map +1 -1
  5. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/avatar/avatar.d.ts +20 -1
  6. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/avatar/avatar.js +20 -1
  7. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/avatar/avatar.js.map +1 -1
  8. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/avatar/p-avatar.d.ts +0 -7
  9. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/avatar/p-avatar.js +0 -7
  10. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/avatar/p-avatar.js.map +1 -1
  11. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/badge/badge.css.js +5 -4
  12. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/badge/badge.css.js.map +1 -1
  13. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/badge/badge.d.ts +16 -2
  14. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/badge/badge.js +28 -11
  15. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/badge/badge.js.map +1 -1
  16. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/badge/p-badge.d.ts +0 -5
  17. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/badge/p-badge.js +0 -5
  18. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/badge/p-badge.js.map +1 -1
  19. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/button/button.d.ts +99 -0
  20. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/button/button.js +292 -0
  21. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/button/button.js.map +1 -0
  22. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/button/index.d.ts +1 -0
  23. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/button/index.js +2 -0
  24. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/button/index.js.map +1 -0
  25. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/clock/ClockController.d.ts +10 -0
  26. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/clock/ClockController.js +22 -0
  27. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/clock/ClockController.js.map +1 -0
  28. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/clock/clock.css.d.ts +1 -0
  29. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/clock/clock.css.js +12 -0
  30. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/clock/clock.css.js.map +1 -0
  31. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/clock/clock.d.ts +25 -0
  32. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/clock/clock.js +41 -0
  33. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/clock/clock.js.map +1 -0
  34. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/clock/index.d.ts +1 -0
  35. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/clock/index.js +2 -0
  36. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/clock/index.js.map +1 -0
  37. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/code-highlighter/code-highlighter.d.ts +26 -0
  38. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/code-highlighter/code-highlighter.js +60 -0
  39. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/code-highlighter/code-highlighter.js.map +1 -0
  40. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/code-highlighter/index.d.ts +1 -0
  41. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/code-highlighter/index.js +2 -0
  42. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/code-highlighter/index.js.map +1 -0
  43. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/code-highlighter/local.d.ts +6 -0
  44. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/code-highlighter/local.js +7 -0
  45. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/code-highlighter/local.js.map +1 -0
  46. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/divider/divider.css.d.ts +1 -0
  47. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/divider/divider.css.js +58 -0
  48. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/divider/divider.css.js.map +1 -0
  49. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/divider/divider.d.ts +27 -0
  50. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/divider/divider.js +61 -0
  51. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/divider/divider.js.map +1 -0
  52. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/divider/index.d.ts +1 -0
  53. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/divider/index.js +2 -0
  54. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/divider/index.js.map +1 -0
  55. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/elevation/elevation.css.d.ts +1 -0
  56. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/elevation/elevation.css.js +47 -0
  57. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/elevation/elevation.css.js.map +1 -0
  58. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/elevation/elevation.d.ts +27 -0
  59. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/elevation/elevation.js +31 -0
  60. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/elevation/elevation.js.map +1 -0
  61. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/elevation/index.d.ts +1 -0
  62. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/elevation/index.js +2 -0
  63. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/elevation/index.js.map +1 -0
  64. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/focus-ring/FocusAttachableController.d.ts +9 -0
  65. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/focus-ring/FocusAttachableController.js +25 -0
  66. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/focus-ring/FocusAttachableController.js.map +1 -0
  67. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/focus-ring/focus-ring.d.ts +35 -0
  68. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/focus-ring/focus-ring.js +81 -0
  69. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/focus-ring/focus-ring.js.map +1 -0
  70. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/focus-ring/index.d.ts +1 -0
  71. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/focus-ring/index.js +2 -0
  72. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/focus-ring/index.js.map +1 -0
  73. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/icon/icon.d.ts +23 -2
  74. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/icon/icon.js +20 -4
  75. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/icon/icon.js.map +1 -1
  76. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/icon/p-icon.d.ts +0 -7
  77. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/icon/p-icon.js +0 -7
  78. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/icon/p-icon.js.map +1 -1
  79. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/index.d.ts +6 -0
  80. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/index.js +6 -0
  81. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/index.js.map +1 -1
  82. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/peacock-loader.js +35 -19
  83. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/peacock-loader.js.map +1 -1
  84. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/ripple/index.d.ts +1 -0
  85. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/ripple/index.js +2 -0
  86. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/ripple/index.js.map +1 -0
  87. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/ripple/ripple.d.ts +9 -0
  88. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/ripple/ripple.js +125 -0
  89. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/ripple/ripple.js.map +1 -0
  90. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/utils.d.ts +5 -0
  91. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/utils.js +54 -1
  92. package/.rollup.cache/E/git/redvars/peacock/components/dist/src/utils.js.map +1 -1
  93. package/.rollup.cache/E/git/redvars/peacock/components/dist/tsconfig.tsbuildinfo +1 -1
  94. package/bin/typedoc-gen.mjs +63 -0
  95. package/custom-elements-manifest.config.mjs +5 -6
  96. package/demo/index.html +45 -42
  97. package/dist/LoaderUtils.d.ts +23 -0
  98. package/dist/LoaderUtils.d.ts.map +1 -0
  99. package/dist/assets/styles/tokens.css +21 -53
  100. package/dist/avatar/avatar.d.ts +28 -0
  101. package/dist/avatar/avatar.d.ts.map +1 -0
  102. package/dist/avatar/index.d.ts +2 -0
  103. package/dist/avatar/index.d.ts.map +1 -0
  104. package/dist/avatar/p-avatar.d.ts +4 -0
  105. package/dist/avatar/p-avatar.d.ts.map +1 -0
  106. package/dist/avatar.js +100 -0
  107. package/dist/avatar.js.map +1 -0
  108. package/dist/badge/badge.d.ts +24 -0
  109. package/dist/badge/badge.d.ts.map +1 -0
  110. package/dist/badge/index.d.ts +2 -0
  111. package/dist/badge/index.d.ts.map +1 -0
  112. package/dist/badge/p-badge.d.ts +4 -0
  113. package/dist/badge/p-badge.d.ts.map +1 -0
  114. package/dist/badge.js +90 -0
  115. package/dist/badge.js.map +1 -0
  116. package/dist/button/button.d.ts +103 -0
  117. package/dist/button/button.d.ts.map +1 -0
  118. package/dist/button/index.d.ts +2 -0
  119. package/dist/button/index.d.ts.map +1 -0
  120. package/dist/button.js +710 -0
  121. package/dist/button.js.map +1 -0
  122. package/dist/class-map-BzIzngvN.js +89 -0
  123. package/dist/class-map-BzIzngvN.js.map +1 -0
  124. package/dist/class-map-CBk4-iMN.js +11 -0
  125. package/dist/class-map-CBk4-iMN.js.map +1 -0
  126. package/dist/class-map-Cavm-B1S.js +11 -0
  127. package/dist/class-map-Cavm-B1S.js.map +1 -0
  128. package/dist/class-map-DL5vM0J2.js +11 -0
  129. package/dist/class-map-DL5vM0J2.js.map +1 -0
  130. package/dist/class-map-DpvLRi0h.js +11 -0
  131. package/dist/class-map-DpvLRi0h.js.map +1 -0
  132. package/dist/class-map-IbP5VjmB.js +11 -0
  133. package/dist/class-map-IbP5VjmB.js.map +1 -0
  134. package/dist/clock/ClockController.d.ts +11 -0
  135. package/dist/clock/ClockController.d.ts.map +1 -0
  136. package/dist/clock/clock.d.ts +26 -0
  137. package/dist/clock/clock.d.ts.map +1 -0
  138. package/dist/clock/index.d.ts +2 -0
  139. package/dist/clock/index.d.ts.map +1 -0
  140. package/dist/clock.js +77 -0
  141. package/dist/clock.js.map +1 -0
  142. package/dist/code-highlighter/code-highlighter.d.ts +27 -0
  143. package/dist/code-highlighter/code-highlighter.d.ts.map +1 -0
  144. package/dist/code-highlighter/index.d.ts +2 -0
  145. package/dist/code-highlighter/index.d.ts.map +1 -0
  146. package/dist/code-highlighter/local.d.ts +7 -0
  147. package/dist/code-highlighter/local.d.ts.map +1 -0
  148. package/dist/code-highlighter.js +66 -0
  149. package/dist/code-highlighter.js.map +1 -0
  150. package/dist/custom-elements-jsdocs.json +1211 -0
  151. package/dist/directive-BKuZRRPO.js +9 -0
  152. package/dist/directive-BKuZRRPO.js.map +1 -0
  153. package/dist/directive-CkFJvUQK.js +45 -0
  154. package/dist/directive-CkFJvUQK.js.map +1 -0
  155. package/dist/divider/divider.d.ts +28 -0
  156. package/dist/divider/divider.d.ts.map +1 -0
  157. package/dist/divider/index.d.ts +2 -0
  158. package/dist/divider/index.d.ts.map +1 -0
  159. package/dist/divider.js +117 -0
  160. package/dist/divider.js.map +1 -0
  161. package/dist/elevation/elevation.d.ts +28 -0
  162. package/dist/elevation/elevation.d.ts.map +1 -0
  163. package/dist/elevation/index.d.ts +2 -0
  164. package/dist/elevation/index.d.ts.map +1 -0
  165. package/dist/elevation-Bl1N6qEq.js +100 -0
  166. package/dist/elevation-Bl1N6qEq.js.map +1 -0
  167. package/dist/elevation-CbF5he8B.js +103 -0
  168. package/dist/elevation-CbF5he8B.js.map +1 -0
  169. package/dist/elevation-D3F6Z1jU.js +100 -0
  170. package/dist/elevation-D3F6Z1jU.js.map +1 -0
  171. package/dist/elevation.js +77 -0
  172. package/dist/elevation.js.map +1 -0
  173. package/dist/focus-ring/FocusAttachableController.d.ts +10 -0
  174. package/dist/focus-ring/FocusAttachableController.d.ts.map +1 -0
  175. package/dist/focus-ring/focus-ring.d.ts +36 -0
  176. package/dist/focus-ring/focus-ring.d.ts.map +1 -0
  177. package/dist/focus-ring/index.d.ts +2 -0
  178. package/dist/focus-ring/index.d.ts.map +1 -0
  179. package/dist/focus-ring.js +105 -0
  180. package/dist/focus-ring.js.map +1 -0
  181. package/dist/icon/datasource.d.ts +3 -0
  182. package/dist/icon/datasource.d.ts.map +1 -0
  183. package/dist/icon/icon.d.ts +42 -0
  184. package/dist/icon/icon.d.ts.map +1 -0
  185. package/dist/icon/index.d.ts +2 -0
  186. package/dist/icon/index.d.ts.map +1 -0
  187. package/dist/icon/p-icon.d.ts +4 -0
  188. package/dist/icon/p-icon.d.ts.map +1 -0
  189. package/dist/{component/icon.js → icon.js} +43 -124
  190. package/dist/icon.js.map +1 -0
  191. package/dist/index.d.ts +9 -0
  192. package/dist/index.d.ts.map +1 -0
  193. package/dist/index.js +15 -67
  194. package/dist/index.js.map +1 -1
  195. package/dist/link/link.css.d.ts +3 -0
  196. package/dist/link/link.css.d.ts.map +1 -0
  197. package/dist/lit-element-B7NX__Gq.js +2851 -0
  198. package/dist/lit-element-B7NX__Gq.js.map +1 -0
  199. package/dist/lit-element-Bq5B2QNv.js +28 -0
  200. package/dist/lit-element-Bq5B2QNv.js.map +1 -0
  201. package/dist/lit-element-CkD27PXL.js +28 -0
  202. package/dist/lit-element-CkD27PXL.js.map +1 -0
  203. package/dist/lit-element-DHH1_Q-3.js +28 -0
  204. package/dist/lit-element-DHH1_Q-3.js.map +1 -0
  205. package/dist/peacock-loader.d.ts +2 -0
  206. package/dist/peacock-loader.d.ts.map +1 -0
  207. package/dist/peacock-loader.js +479 -121
  208. package/dist/peacock-loader.js.map +1 -1
  209. package/dist/property-BXcRN0hQ.js +39 -0
  210. package/dist/property-BXcRN0hQ.js.map +1 -0
  211. package/dist/property-CR1ZrEd9.js +45 -0
  212. package/dist/property-CR1ZrEd9.js.map +1 -0
  213. package/dist/property-CqSbFxyM.js +45 -0
  214. package/dist/property-CqSbFxyM.js.map +1 -0
  215. package/dist/{directive-CKEA2P55.js → property-D4Kn9TsY.js} +6 -13
  216. package/dist/property-D4Kn9TsY.js.map +1 -0
  217. package/dist/property-DNaigT7h.js +39 -0
  218. package/dist/property-DNaigT7h.js.map +1 -0
  219. package/dist/property-yt9tIYgR.js +39 -0
  220. package/dist/property-yt9tIYgR.js.map +1 -0
  221. package/dist/query-CV342L_h.js +189 -0
  222. package/dist/query-CV342L_h.js.map +1 -0
  223. package/dist/ripple-Blc5Rqhb.js +102 -0
  224. package/dist/ripple-Blc5Rqhb.js.map +1 -0
  225. package/dist/ripple-BqTcEQAP.js +102 -0
  226. package/dist/ripple-BqTcEQAP.js.map +1 -0
  227. package/dist/ripple-BqUjb18i.js +105 -0
  228. package/dist/ripple-BqUjb18i.js.map +1 -0
  229. package/dist/ripple-Buzs-MON.js +106 -0
  230. package/dist/ripple-Buzs-MON.js.map +1 -0
  231. package/dist/ripple-Bz5B_LoE.js +102 -0
  232. package/dist/ripple-Bz5B_LoE.js.map +1 -0
  233. package/dist/ripple-CAq7Ix6x.js +106 -0
  234. package/dist/ripple-CAq7Ix6x.js.map +1 -0
  235. package/dist/ripple-CDqSm_Vy.js +106 -0
  236. package/dist/ripple-CDqSm_Vy.js.map +1 -0
  237. package/dist/ripple-CJtPH28B.js +102 -0
  238. package/dist/ripple-CJtPH28B.js.map +1 -0
  239. package/dist/ripple-CKTd8obC.js +92 -0
  240. package/dist/ripple-CKTd8obC.js.map +1 -0
  241. package/dist/ripple-CKnDWTVQ.js +107 -0
  242. package/dist/ripple-CKnDWTVQ.js.map +1 -0
  243. package/dist/ripple-CeR8eLuc.js +93 -0
  244. package/dist/ripple-CeR8eLuc.js.map +1 -0
  245. package/dist/ripple-Czp3eR6w.js +127 -0
  246. package/dist/ripple-Czp3eR6w.js.map +1 -0
  247. package/dist/ripple-DIab1MaY.js +106 -0
  248. package/dist/ripple-DIab1MaY.js.map +1 -0
  249. package/dist/ripple-DUFMimxZ.js +120 -0
  250. package/dist/ripple-DUFMimxZ.js.map +1 -0
  251. package/dist/ripple-DVmDdoNV.js +102 -0
  252. package/dist/ripple-DVmDdoNV.js.map +1 -0
  253. package/dist/ripple-DYnhXK5d.js +118 -0
  254. package/dist/ripple-DYnhXK5d.js.map +1 -0
  255. package/dist/ripple-DnudV47f.js +102 -0
  256. package/dist/ripple-DnudV47f.js.map +1 -0
  257. package/dist/ripple-DsC-h31M.js +119 -0
  258. package/dist/ripple-DsC-h31M.js.map +1 -0
  259. package/dist/ripple-DvM0SPd9.js +128 -0
  260. package/dist/ripple-DvM0SPd9.js.map +1 -0
  261. package/dist/ripple-NWIiDgX2.js +128 -0
  262. package/dist/ripple-NWIiDgX2.js.map +1 -0
  263. package/dist/ripple-X3U_R8lT.js +106 -0
  264. package/dist/ripple-X3U_R8lT.js.map +1 -0
  265. package/dist/ripple.js +128 -0
  266. package/dist/ripple.js.map +1 -0
  267. package/dist/src/LoaderUtils.d.ts +0 -1
  268. package/dist/src/avatar/avatar.d.ts +20 -1
  269. package/dist/src/avatar/p-avatar.d.ts +0 -7
  270. package/dist/src/badge/badge.d.ts +16 -2
  271. package/dist/src/badge/p-badge.d.ts +0 -5
  272. package/dist/src/button/button.d.ts +99 -0
  273. package/dist/src/button/index.d.ts +1 -0
  274. package/dist/src/clock/ClockController.d.ts +10 -0
  275. package/dist/src/clock/clock.css.d.ts +1 -0
  276. package/dist/src/clock/clock.d.ts +25 -0
  277. package/dist/src/clock/index.d.ts +1 -0
  278. package/dist/src/code-highlighter/code-highlighter.d.ts +26 -0
  279. package/dist/src/code-highlighter/index.d.ts +1 -0
  280. package/dist/src/code-highlighter/local.d.ts +6 -0
  281. package/dist/src/divider/divider.css.d.ts +1 -0
  282. package/dist/src/divider/divider.d.ts +27 -0
  283. package/dist/src/divider/index.d.ts +1 -0
  284. package/dist/src/elevation/elevation.css.d.ts +1 -0
  285. package/dist/src/elevation/elevation.d.ts +27 -0
  286. package/dist/src/elevation/index.d.ts +1 -0
  287. package/dist/src/focus-ring/FocusAttachableController.d.ts +9 -0
  288. package/dist/src/focus-ring/focus-ring.d.ts +35 -0
  289. package/dist/src/focus-ring/index.d.ts +1 -0
  290. package/dist/src/icon/icon.d.ts +23 -2
  291. package/dist/src/icon/p-icon.d.ts +0 -7
  292. package/dist/src/index.d.ts +6 -0
  293. package/dist/src/ripple/index.d.ts +1 -0
  294. package/dist/src/ripple/ripple.d.ts +9 -0
  295. package/dist/src/utils.d.ts +5 -0
  296. package/dist/state-BXOdKkbT.js +10 -0
  297. package/dist/state-BXOdKkbT.js.map +1 -0
  298. package/dist/state-BfUul2Gq.js +10 -0
  299. package/dist/state-BfUul2Gq.js.map +1 -0
  300. package/dist/state-CNX6DhqO.js +10 -0
  301. package/dist/state-CNX6DhqO.js.map +1 -0
  302. package/dist/state-Cl3mjeR1.js +10 -0
  303. package/dist/state-Cl3mjeR1.js.map +1 -0
  304. package/dist/state-CxzmLNIi.js +10 -0
  305. package/dist/state-CxzmLNIi.js.map +1 -0
  306. package/dist/state-WDFgnqnd.js +36 -0
  307. package/dist/state-WDFgnqnd.js.map +1 -0
  308. package/dist/style-inject.es--nCJ9F_D.js +55 -0
  309. package/dist/style-inject.es--nCJ9F_D.js.map +1 -0
  310. package/dist/style-inject.es-tgCJW-Cu.js +29 -0
  311. package/dist/style-inject.es-tgCJW-Cu.js.map +1 -0
  312. package/dist/styleMixins.css-0Uq-6ouM.js +14 -0
  313. package/dist/styleMixins.css-0Uq-6ouM.js.map +1 -0
  314. package/dist/styleMixins.css-B8H9wDNA.js +17 -0
  315. package/dist/styleMixins.css-B8H9wDNA.js.map +1 -0
  316. package/dist/styleMixins.css-CivfMYtB.js +17 -0
  317. package/dist/styleMixins.css-CivfMYtB.js.map +1 -0
  318. package/dist/styleMixins.css-DrUsqddl.js +17 -0
  319. package/dist/styleMixins.css-DrUsqddl.js.map +1 -0
  320. package/dist/styleMixins.css-fokZCyF-.js +17 -0
  321. package/dist/styleMixins.css-fokZCyF-.js.map +1 -0
  322. package/dist/styleMixins.css.d.ts +10 -0
  323. package/dist/styleMixins.css.d.ts.map +1 -0
  324. package/dist/text/text.css.d.ts +3 -0
  325. package/dist/text/text.css.d.ts.map +1 -0
  326. package/dist/tsconfig.tsbuildinfo +1 -1
  327. package/dist/typedoc.json +340489 -0
  328. package/dist/utils-BVap5huR.js +157 -0
  329. package/dist/utils-BVap5huR.js.map +1 -0
  330. package/dist/utils-CY3RyfcA.js +157 -0
  331. package/dist/utils-CY3RyfcA.js.map +1 -0
  332. package/dist/utils-CdOdn2dW.js +149 -0
  333. package/dist/utils-CdOdn2dW.js.map +1 -0
  334. package/dist/utils-DD_cg6Ms.js +157 -0
  335. package/dist/utils-DD_cg6Ms.js.map +1 -0
  336. package/dist/utils-_5no4mk7.js +128 -0
  337. package/dist/utils-_5no4mk7.js.map +1 -0
  338. package/dist/utils.d.ts +8 -0
  339. package/dist/utils.d.ts.map +1 -0
  340. package/package.json +11 -9
  341. package/readme.md +5 -17
  342. package/rollup.config.js +79 -37
  343. package/scratch.mjs +0 -0
  344. package/scss/mixin.scss +50 -0
  345. package/src/LoaderUtils.ts +122 -122
  346. package/src/avatar/avatar.scss +38 -0
  347. package/src/avatar/avatar.ts +20 -1
  348. package/src/avatar/p-avatar.ts +0 -7
  349. package/src/badge/badge.scss +31 -0
  350. package/src/badge/badge.ts +31 -9
  351. package/src/badge/demo/index.html +9 -1
  352. package/src/badge/p-badge.ts +0 -5
  353. package/src/button/_button-sizes.scss +59 -0
  354. package/src/button/button.scss +430 -0
  355. package/src/button/button.ts +304 -0
  356. package/src/button/demo/index.html +42 -0
  357. package/src/button/index.ts +1 -0
  358. package/src/clock/ClockController.ts +32 -0
  359. package/src/clock/clock.scss +9 -0
  360. package/src/clock/clock.ts +39 -0
  361. package/{demo/int.html → src/clock/demo/index.html} +7 -10
  362. package/src/clock/index.ts +1 -0
  363. package/src/code-highlighter/code-highlighter.scss +0 -0
  364. package/src/code-highlighter/code-highlighter.ts +58 -0
  365. package/src/code-highlighter/demo/index.html +58 -0
  366. package/src/code-highlighter/index.ts +1 -0
  367. package/src/code-highlighter/local.ts +11 -0
  368. package/src/divider/demo/index.html +58 -0
  369. package/src/divider/divider.scss +56 -0
  370. package/src/divider/divider.ts +59 -0
  371. package/src/divider/index.ts +1 -0
  372. package/src/elevation/demo/index.html +58 -0
  373. package/src/elevation/elevation.scss +61 -0
  374. package/src/elevation/elevation.ts +32 -0
  375. package/src/elevation/index.ts +1 -0
  376. package/src/focus-ring/FocusAttachableController.ts +36 -0
  377. package/src/focus-ring/demo/index.html +58 -0
  378. package/src/focus-ring/focus-ring.scss +22 -0
  379. package/src/focus-ring/focus-ring.ts +83 -0
  380. package/src/focus-ring/index.ts +1 -0
  381. package/src/icon/icon.scss +19 -0
  382. package/src/icon/icon.ts +131 -111
  383. package/src/icon/p-icon.ts +0 -7
  384. package/src/index.ts +9 -3
  385. package/src/link/demo/index.html +34 -0
  386. package/src/link/link.scss +24 -0
  387. package/src/peacock-loader.ts +69 -55
  388. package/src/ripple/index.ts +1 -0
  389. package/src/ripple/ripple.ts +134 -0
  390. package/src/styles.d.ts +3 -1
  391. package/src/text/text.scss +48 -0
  392. package/src/utils.ts +72 -1
  393. package/tsconfig.json +23 -22
  394. package/assets/tokens.css +0 -522
  395. package/copyDesignFiles.js +0 -11
  396. package/custom-elements.md +0 -192
  397. package/dist/avatar-GQwWRGRw.js +0 -418
  398. package/dist/avatar-GQwWRGRw.js.map +0 -1
  399. package/dist/avatar-jfcIDB8G.js +0 -424
  400. package/dist/avatar-jfcIDB8G.js.map +0 -1
  401. package/dist/component/avatar.js +0 -92
  402. package/dist/component/avatar.js.map +0 -1
  403. package/dist/component/icon.js.map +0 -1
  404. package/dist/directive-CKEA2P55.js.map +0 -1
  405. package/dist/utils-CSwoJIcG.js +0 -171
  406. package/dist/utils-CSwoJIcG.js.map +0 -1
  407. package/dist/web-types.json +0 -78
  408. package/readme-gen.mjs +0 -24
  409. package/src/avatar/avatar.css.ts +0 -41
  410. package/src/badge/badge.css.ts +0 -33
  411. package/src/icon/icon.css.ts +0 -22
package/src/icon/icon.ts CHANGED
@@ -1,111 +1,131 @@
1
- import { html, LitElement } from 'lit';
2
- import { property, state } from 'lit/decorators.js';
3
- import { unsafeSVG } from 'lit/directives/unsafe-svg.js';
4
- import { fetchIcon, fetchSVG } from './datasource.js';
5
- import { sanitizeSvg } from '../utils.js';
6
- import { styles } from './icon.css.js';
7
-
8
- export class Icon extends LitElement {
9
- static styles = [styles];
10
-
11
- @property({ type: String, reflect: true }) name?: string;
12
-
13
- @property({ type: String, reflect: true }) src?: string;
14
-
15
- @property({ type: String }) provider?: 'material-symbols' | 'carbon' =
16
- 'material-symbols';
17
-
18
- @state()
19
- private svgContent: string = '';
20
-
21
- // loading + error states for consumers/tests
22
- @state()
23
- private loading: boolean = false;
24
-
25
- @state()
26
- private error: Error | null = null;
27
-
28
- // token to avoid race conditions when multiple fetches overlap
29
- private _fetchId = 0;
30
-
31
- // optional debounce for rapid property changes
32
- private _debounceTimer: number | undefined;
33
-
34
- firstUpdated() {
35
- // perform initial fetch once component is connected and rendered
36
- this.__scheduleUpdate();
37
- }
38
-
39
- updated(changedProperties: any) {
40
- // only refetch when name or src changed
41
- if (changedProperties.has('name') || changedProperties.has('src')) {
42
- this.__scheduleUpdate();
43
- }
44
- }
45
-
46
- render() {
47
- // accessible wrapper; consumers can provide a fallback via <slot name="fallback">.
48
- return html` <div class="icon">
49
- ${this.svgContent
50
- ? unsafeSVG(this.svgContent)
51
- : html`<slot name="fallback"></slot>`}
52
- </div>`;
53
- }
54
-
55
- // small debounce to coalesce rapid changes (50ms)
56
- private __scheduleUpdate() {
57
- if (this._debounceTimer) {
58
- clearTimeout(this._debounceTimer as any);
59
- }
60
- // @ts-ignore - setTimeout in DOM returns number
61
- this._debounceTimer = window.setTimeout(() => this.__updateSvg(), 50);
62
- }
63
-
64
- /**
65
- * @internal
66
- */
67
- private async __updateSvg() {
68
- this._fetchId += 1;
69
- const currentId = this._fetchId;
70
- this.loading = true;
71
- this.error = null;
72
-
73
- try {
74
- let raw: string | undefined;
75
-
76
- if (this.name) {
77
- raw = await fetchIcon(this.name, this.provider);
78
- } else if (this.src) {
79
- raw = await fetchSVG(this.src);
80
- } else {
81
- raw = '';
82
- }
83
-
84
- // If another fetch started after this one, ignore this result
85
- if (currentId !== this._fetchId) return;
86
-
87
- if (raw) {
88
- this.svgContent = sanitizeSvg(raw);
89
- } else {
90
- this.svgContent = '';
91
- }
92
- } catch (err: any) {
93
- // capture and surface error, but avoid throwing
94
- this.error = err instanceof Error ? err : new Error(String(err));
95
- this.svgContent = '';
96
- // bubble an event so consumers can react
97
- this.dispatchEvent(
98
- new CustomEvent('icon-error', {
99
- detail: { name: this.name, src: this.src, error: this.error },
100
- bubbles: true,
101
- composed: true,
102
- }),
103
- );
104
- } finally {
105
- // ensure loading is cleared unless another fetch started
106
- if (currentId === this._fetchId) {
107
- this.loading = false;
108
- }
109
- }
110
- }
111
- }
1
+ import { html, LitElement } from 'lit';
2
+ import { property, state } from 'lit/decorators.js';
3
+ import { unsafeSVG } from 'lit/directives/unsafe-svg.js';
4
+ import { fetchIcon, fetchSVG } from './datasource.js';
5
+ import { sanitizeSvg } from '../utils.js';
6
+ import styles from './icon.scss';
7
+
8
+ export type IconProvider = 'material-symbols' | 'material-icons';
9
+ /**
10
+ * @label Icon
11
+ * @tag p-icon
12
+ * @rawTag icon
13
+ * @summary Icons are visual symbols used to represent ideas, objects, or actions.
14
+ * @overview Icons are visual symbols used to represent ideas, objects, or actions. They communicate messages at a glance, afford interactivity, and draw attention to important information.
15
+ *
16
+ * @cssprop --icon-color - Controls the color of the icon.
17
+ * @cssprop [--icon-size=1rem] - Controls the size of the icon. Defaults to "1rem"
18
+ *
19
+ * @example
20
+ * ```html
21
+ * <p-icon name="home"></p-icon>
22
+ * ```
23
+ *
24
+ */
25
+ export class Icon extends LitElement {
26
+ static styles = [styles];
27
+
28
+ /**
29
+ * The identifier for the icon.
30
+ * This name corresponds to a specific SVG asset in the icon set.
31
+ */
32
+ @property({ type: String, reflect: true }) name?: string;
33
+
34
+ @property({ type: String, reflect: true }) src?: string;
35
+
36
+ @property({ type: String }) provider: IconProvider = 'material-symbols';
37
+
38
+ @state()
39
+ private svgContent: string = '';
40
+
41
+ // loading + error states for consumers/tests
42
+ @state() // @ts-ignore
43
+ private loading: boolean = false;
44
+
45
+ @state()
46
+ private error: Error | null = null;
47
+
48
+ // token to avoid race conditions when multiple fetches overlap
49
+ private _fetchId = 0;
50
+
51
+ // optional debounce for rapid property changes
52
+ private _debounceTimer: number | undefined;
53
+
54
+ firstUpdated() {
55
+ // perform initial fetch once component is connected and rendered
56
+ this.__scheduleUpdate();
57
+ }
58
+
59
+ updated(changedProperties: any) {
60
+ // only refetch when name or src changed
61
+ if (changedProperties.has('name') || changedProperties.has('src')) {
62
+ this.__scheduleUpdate();
63
+ }
64
+ }
65
+
66
+ render() {
67
+ // accessible wrapper; consumers can provide a fallback via <slot name="fallback">.
68
+ return html` <div class="icon">
69
+ ${this.svgContent
70
+ ? unsafeSVG(this.svgContent)
71
+ : html`<slot name="fallback"></slot>`}
72
+ </div>`;
73
+ }
74
+
75
+ // small debounce to coalesce rapid changes (50ms)
76
+ private __scheduleUpdate() {
77
+ if (this._debounceTimer) {
78
+ clearTimeout(this._debounceTimer as any);
79
+ }
80
+ // @ts-ignore - setTimeout in DOM returns number
81
+ this._debounceTimer = window.setTimeout(() => this.__updateSvg(), 50);
82
+ }
83
+
84
+ /**
85
+ * @internal
86
+ */
87
+ private async __updateSvg() {
88
+ this._fetchId += 1;
89
+ const currentId = this._fetchId;
90
+ this.loading = true;
91
+ this.error = null;
92
+
93
+ try {
94
+ let raw: string | undefined;
95
+
96
+ if (this.name) {
97
+ raw = await fetchIcon(this.name, this.provider);
98
+ } else if (this.src) {
99
+ raw = await fetchSVG(this.src);
100
+ } else {
101
+ raw = '';
102
+ }
103
+
104
+ // If another fetch started after this one, ignore this result
105
+ if (currentId !== this._fetchId) return;
106
+
107
+ if (raw) {
108
+ this.svgContent = sanitizeSvg(raw);
109
+ } else {
110
+ this.svgContent = '';
111
+ }
112
+ } catch (err: any) {
113
+ // capture and surface error, but avoid throwing
114
+ this.error = err instanceof Error ? err : new Error(String(err));
115
+ this.svgContent = '';
116
+ // bubble an event so consumers can react
117
+ this.dispatchEvent(
118
+ new CustomEvent('icon-error', {
119
+ detail: { name: this.name, src: this.src, error: this.error },
120
+ bubbles: true,
121
+ composed: true,
122
+ }),
123
+ );
124
+ } finally {
125
+ // ensure loading is cleared unless another fetch started
126
+ if (currentId === this._fetchId) {
127
+ this.loading = false;
128
+ }
129
+ }
130
+ }
131
+ }
@@ -1,12 +1,5 @@
1
1
  import { customElement } from 'lit/decorators.js';
2
2
  import { Icon } from './icon.js';
3
3
 
4
- /**
5
- * @name Icon
6
- * @summary Icons are visual symbols used to represent ideas, objects, or actions.
7
- *
8
- * @cssprop --icon-color - Controls the color of the icon.
9
- * @cssprop [--icon-size=1rem] - Controls the size of the icon. Defaults to "1rem"
10
- */
11
4
  @customElement('p-icon')
12
5
  export class PIcon extends Icon {}
package/src/index.ts CHANGED
@@ -1,3 +1,9 @@
1
- export { Icon } from './icon/index.js';
2
- export { Avatar } from './avatar/index.js';
3
- export { Badge } from './badge/index.js';
1
+ export { Icon } from './icon/index.js';
2
+ export { Avatar } from './avatar/index.js';
3
+ export { Badge } from './badge/index.js';
4
+ export { Divider } from './divider/index.js';
5
+ export { Clock } from './clock/index.js';
6
+ export { Elevation } from './elevation/index.js';
7
+ export { Button } from './button/index.js';
8
+ export { FocusRing } from './focus-ring/index.js';
9
+ export { Ripple } from './ripple/index.js';
@@ -0,0 +1,34 @@
1
+ <!doctype html>
2
+ <html lang='en-GB'>
3
+ <head>
4
+ <meta charset='utf-8'>
5
+ <meta name='viewport' content='width=device-width, initial-scale=1.0, viewport-fit=cover' />
6
+
7
+ <!-- Default font : Noto Sans and Noto Sans Mono -->
8
+ <link rel="preconnect" href="https://fonts.googleapis.com">
9
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
10
+ <link href="https://fonts.googleapis.com/css2?family=Noto+Sans+Mono:wght@100..900&family=Noto+Sans:ital,wght@0,100..900;1,100..900&display=swap" rel="stylesheet">
11
+
12
+
13
+ <style>
14
+ body {
15
+ background: #fafafa;
16
+ }
17
+ </style>
18
+
19
+ </head>
20
+ <body>
21
+
22
+
23
+ <p class='text-body'>
24
+ <a href='#' class='link with-icon'><p-icon name='home'></p-icon> link</a>
25
+ </p>
26
+
27
+ <p class='text-body'>
28
+ <a href='#' class='link inherit'> Testing No Style</a>
29
+ </p>
30
+
31
+
32
+ <script type='module' src='/dist/peacock-loader.js'></script>
33
+ </body>
34
+ </html>
@@ -0,0 +1,24 @@
1
+ @use "../../scss/mixin";
2
+
3
+ .link {
4
+ border-radius: inherit;
5
+ corner-shape: inherit;
6
+
7
+ color: var(--color-primary);
8
+ --icon-color: currentColor;
9
+ text-decoration: none;
10
+
11
+ &:hover, &:focus-visible {
12
+ text-decoration: underline;
13
+ }
14
+
15
+ &.inherit {
16
+ color: inherit;
17
+ }
18
+
19
+ &.with-icon {
20
+ display: inline-flex;
21
+ align-items: center;
22
+ gap: 0.5em;
23
+ }
24
+ }
@@ -1,55 +1,69 @@
1
- // Eager loaded
2
- import { Icon } from './icon/icon.js';
3
- import { Avatar } from './avatar/avatar.js';
4
-
5
- import { LoaderConfig, LoaderUtils } from './LoaderUtils.js';
6
- import cssComponentsStyleSheet from '../assets/tokens.css';
7
- import { createLinkStyles } from './link/link.css.js';
8
- import { createTextStyles } from './text/text.css.js';
9
-
10
- const libraryPrefix = 'p';
11
-
12
- function buildSheet(styleSheet: any) {
13
- const sheet = new CSSStyleSheet();
14
- // Add rules
15
- sheet.replaceSync(styleSheet.toString());
16
- return sheet;
17
- }
18
-
19
- const styleSheets = [buildSheet(cssComponentsStyleSheet)];
20
-
21
- const linkStylesheet = createLinkStyles(libraryPrefix).styleSheet;
22
- if (linkStylesheet) styleSheets.push(linkStylesheet);
23
-
24
- const textStylesheet = createTextStyles(libraryPrefix).styleSheet;
25
- if (textStylesheet) styleSheets.push(textStylesheet);
26
-
27
- function stringifyStyleSheet(stylesheet: any) {
28
- // Use Array.from() to convert the CSSRuleList to an array
29
- return (
30
- Array.from(stylesheet.cssRules)
31
- // Map each rule to its cssText property
32
- .map((rule: any) => rule.cssText || '')
33
- // Join all the rules with a newline character
34
- .join('\\n')
35
- );
36
- }
37
-
38
- console.log(stringifyStyleSheet(textStylesheet));
39
-
40
- document.adoptedStyleSheets = styleSheets;
41
-
42
- const loaderConfig: LoaderConfig = {
43
- prefix: libraryPrefix,
44
- components: {
45
- icon: {
46
- CustomElementClass: Icon,
47
- // importPath: './component/icon.js', - for lazy load give path instead of CustomElementClass
48
- },
49
- avatar: {
50
- CustomElementClass: Avatar,
51
- },
52
- },
53
- };
54
-
55
- new LoaderUtils(loaderConfig).start();
1
+ // Eager loaded
2
+ import cssComponentsStyleSheet from '@redvars/peacock-design-tokens/dist/tokens.css';
3
+
4
+ import { Elevation } from './elevation/elevation.js';
5
+ import { FocusRing } from './focus-ring/focus-ring.js';
6
+ import { Ripple } from './ripple/ripple.js';
7
+
8
+ import { Icon } from './icon/icon.js';
9
+ import { Avatar } from './avatar/avatar.js';
10
+ import { Badge } from './badge/badge.js';
11
+ import { Divider } from './divider/divider.js';
12
+ import { Button } from './button/button.js';
13
+
14
+ import { LoaderConfig, LoaderUtils } from './LoaderUtils.js';
15
+ import linkStyles from './link/link.scss';
16
+ import textStylesheet from './text/text.scss';
17
+
18
+ const libraryPrefix = 'p';
19
+
20
+ function buildSheet(styleSheet: any) {
21
+ const sheet = new CSSStyleSheet();
22
+ // Add rules
23
+ sheet.replaceSync(styleSheet.toString());
24
+ return sheet;
25
+ }
26
+
27
+ const styleSheets = [
28
+ buildSheet(cssComponentsStyleSheet),
29
+ buildSheet(linkStyles),
30
+ buildSheet(textStylesheet),
31
+ ];
32
+
33
+ document.adoptedStyleSheets = styleSheets;
34
+
35
+ const loaderConfig: LoaderConfig = {
36
+ prefix: libraryPrefix,
37
+ components: {
38
+ icon: {
39
+ CustomElementClass: Icon,
40
+ // importPath: './component/icon.js', - for lazy load give path instead of CustomElementClass
41
+ },
42
+ 'focus-ring': {
43
+ CustomElementClass: FocusRing,
44
+ },
45
+ avatar: {
46
+ CustomElementClass: Avatar,
47
+ },
48
+ badge: {
49
+ CustomElementClass: Badge,
50
+ },
51
+ button: {
52
+ CustomElementClass: Button,
53
+ },
54
+ divider: {
55
+ CustomElementClass: Divider,
56
+ },
57
+ elevation: {
58
+ CustomElementClass: Elevation,
59
+ },
60
+ clock: {
61
+ importPath: './clock.js',
62
+ },
63
+ ripple: {
64
+ CustomElementClass: Ripple,
65
+ },
66
+ },
67
+ };
68
+
69
+ new LoaderUtils(loaderConfig).start();
@@ -0,0 +1 @@
1
+ export { Ripple } from './ripple.js';
@@ -0,0 +1,134 @@
1
+ import { LitElement, html, css } from 'lit';
2
+
3
+ export class Ripple extends LitElement {
4
+ static styles = css`
5
+ :host {
6
+ position: absolute;
7
+ inset: 0; /* top/left/bottom/right: 0 */
8
+ pointer-events: none; /* Let clicks pass through to parent */
9
+ overflow: hidden;
10
+ border-radius: inherit; /* Inherit parent's rounded corners */
11
+ z-index: 0;
12
+ --ripple-state-opacity: 0;
13
+ --ripple-pressed-color: var(--color-on-surface);
14
+ }
15
+
16
+ .ripple:before {
17
+ content: '';
18
+ opacity: var(--ripple-state-opacity);
19
+ pointer-events: none;
20
+ position: absolute;
21
+
22
+ background-color: var(--ripple-pressed-color);
23
+ inset: 0;
24
+ transition:
25
+ opacity 15ms linear,
26
+ background-color 15ms linear;
27
+ }
28
+
29
+ .ripple:after {
30
+ content: '';
31
+ opacity: var(--ripple-state-opacity);
32
+ pointer-events: none;
33
+ position: absolute;
34
+ background: radial-gradient(
35
+ closest-side,
36
+ var(--ripple-pressed-color) max(100% - 70px, 65%),
37
+ transparent 100%
38
+ );
39
+ transform-origin: center center;
40
+ transition: opacity 375ms linear;
41
+
42
+ width: 25px;
43
+ top: 0px;
44
+ transform: translate(51.4375px, 7.5px) scale(8.75941);
45
+ left: 0px;
46
+ height: 25px;
47
+ }
48
+
49
+ .ripple-effect {
50
+ position: absolute;
51
+ border-radius: 50%;
52
+ background-color: var(--ripple-pressed-color);
53
+ opacity: 0.12; /* Material 3 State Layer Opacity */
54
+ transform: scale(0);
55
+ animation: ripple-anim 600ms linear forwards;
56
+ }
57
+
58
+ @keyframes ripple-anim {
59
+ to {
60
+ transform: scale(1);
61
+ opacity: 0;
62
+ }
63
+ }
64
+ `;
65
+
66
+ connectedCallback() {
67
+ super.connectedCallback();
68
+ // We defer slightly to ensure the parent DOM is ready
69
+ requestAnimationFrame(() => {
70
+ this._setupParent();
71
+ });
72
+ }
73
+
74
+ disconnectedCallback() {
75
+ super.disconnectedCallback();
76
+ if (this.parentElement) {
77
+ this.parentElement.removeEventListener('pointerdown', this._createRipple);
78
+ }
79
+ }
80
+
81
+ _setupParent() {
82
+ const parent = this.parentElement;
83
+ if (!parent) return;
84
+
85
+ // 1. Force parent to be relative so we can position absolutely inside it
86
+ const style = window.getComputedStyle(parent);
87
+ if (style.position === 'static') {
88
+ parent.style.position = 'relative';
89
+ }
90
+
91
+ // 2. Attach listener to the parent
92
+ parent.addEventListener('pointerdown', this._createRipple);
93
+ }
94
+
95
+ // Arrow function to bind 'this' automatically
96
+ _createRipple = (event: PointerEvent) => {
97
+ const parent = this.parentElement;
98
+ if (!parent) return;
99
+
100
+ const rect = parent.getBoundingClientRect();
101
+
102
+ // 1. Calculate diameter (furthest corner)
103
+ const diameter = Math.max(rect.width, rect.height) * 2.5;
104
+ const radius = diameter / 2;
105
+
106
+ // 2. Calculate position relative to the parent
107
+ const x = event.clientX - rect.left;
108
+ const y = event.clientY - rect.top;
109
+
110
+ // 3. Create the ripple element
111
+ // We create this manually to avoid triggering a full Lit render cycle
112
+ // for a transient, fire-and-forget animation.
113
+ const ripple = document.createElement('div');
114
+ ripple.classList.add('ripple-effect');
115
+
116
+ ripple.style.width = `${diameter}px`;
117
+ ripple.style.height = `${diameter}px`;
118
+ ripple.style.left = `${x - radius}px`;
119
+ ripple.style.top = `${y - radius}px`;
120
+
121
+ // 4. Append to Shadow DOM
122
+ this.renderRoot.appendChild(ripple);
123
+
124
+ // 5. Cleanup
125
+ ripple.addEventListener('animationend', () => {
126
+ ripple.remove();
127
+ });
128
+ };
129
+
130
+ render() {
131
+ // No HTML needed in the template, we inject ripples dynamically
132
+ return html`<div class="ripple"></div>`;
133
+ }
134
+ }
package/src/styles.d.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  declare module '*.css' {
2
- const content: Record<string, string>;
2
+ import { CSSResultGroup } from 'lit';
3
+
4
+ const content: Record<string, string> | CSSResultGroup;
3
5
  export default content;
4
6
  }
5
7
 
@@ -0,0 +1,48 @@
1
+ @use "../../scss/mixin";
2
+ @use "sass:string";
3
+
4
+
5
+ @mixin _apply-typography($value-type) {
6
+ @include mixin.get-typography(#{$value-type});
7
+ @if string.index($value-type, "body") {
8
+ margin-block-end: var(--spacing-200);
9
+ }
10
+ @if string.index($value-type, "headline") {
11
+ margin-block-end: var(--spacing-200);
12
+ }
13
+ @if string.index($value-type, "display") {
14
+ margin-block-end: var(--spacing-400);
15
+ }
16
+ @if string.index($value-type, "title") {
17
+ margin-block-end: var(--spacing-400);
18
+ }
19
+ }
20
+
21
+ /// Mixin to define text classes for a specific type and value-type
22
+ /// @param {String} $type - The type name to be used in the class name (e.g., .text-#{$type})
23
+ /// @param {String} $value-type - The value-type name to be passed to get-typography and get-margin-end
24
+ /// @param {Boolean} $important [true] - Whether to use !important in typography properties
25
+ @mixin define-text-classes($type, $value-type) {
26
+ .text-#{$type} {
27
+ @include _apply-typography($value-type);
28
+ }
29
+
30
+ .text-#{$type}-emphasized {
31
+ @include _apply-typography(#{$value-type}-emphasized);
32
+ }
33
+ }
34
+
35
+
36
+ /// List of typography types
37
+ $types: "display", "headline", "body", 'code', 'label', 'title';
38
+
39
+ /// List of typography sizes
40
+ $sizes: "large", "medium", 'small';
41
+
42
+ /// Generate text classes for each type and size
43
+ @each $type in $types {
44
+ @include define-text-classes($type, #{$type}-medium);
45
+ @each $size in $sizes {
46
+ @include define-text-classes(#{$type}-#{$size}, #{$type}-#{$size});
47
+ }
48
+ }