@tylertech/forge 3.0.0-next.11 → 3.0.0-next.12

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 (550) hide show
  1. package/custom-elements.json +36275 -28495
  2. package/dist/esm/accordion/index.js +1 -1
  3. package/dist/esm/app-bar/help-button/index.js +1 -1
  4. package/dist/esm/app-bar/index.js +1 -1
  5. package/dist/esm/app-bar/menu-button/index.js +1 -1
  6. package/dist/esm/app-bar/notification-button/index.js +1 -1
  7. package/dist/esm/app-bar/profile-button/index.js +1 -1
  8. package/dist/esm/app-bar/search/index.js +1 -1
  9. package/dist/esm/autocomplete/index.js +1 -1
  10. package/dist/esm/avatar/index.js +1 -1
  11. package/dist/esm/backdrop/index.js +1 -1
  12. package/dist/esm/badge/index.js +1 -1
  13. package/dist/esm/banner/index.js +1 -1
  14. package/dist/esm/bottom-sheet/index.js +1 -1
  15. package/dist/esm/busy-indicator/index.js +1 -1
  16. package/dist/esm/button/index.js +1 -1
  17. package/dist/esm/button-area/index.js +7 -0
  18. package/dist/esm/button-area/index.js.map +7 -0
  19. package/dist/esm/button-toggle/button-toggle/index.js +1 -1
  20. package/dist/esm/button-toggle/button-toggle-group/index.js +1 -1
  21. package/dist/esm/button-toggle/index.js +1 -1
  22. package/dist/esm/calendar/calendar-dropdown/index.js +1 -1
  23. package/dist/esm/calendar/calendar-menu/index.js +1 -1
  24. package/dist/esm/calendar/index.js +1 -1
  25. package/dist/esm/card/index.js +1 -1
  26. package/dist/esm/checkbox/index.js +1 -1
  27. package/dist/esm/chip-field/index.js +1 -1
  28. package/dist/esm/chips/chip/index.js +1 -1
  29. package/dist/esm/chips/chip-set/index.js +1 -1
  30. package/dist/esm/chips/index.js +1 -1
  31. package/dist/esm/chunks/chunk.2LIWNFQK.js +7 -0
  32. package/dist/esm/chunks/{chunk.FWFOOQMA.js → chunk.2WSXSOYB.js} +2 -2
  33. package/dist/esm/chunks/{chunk.YWNCJ7XP.js → chunk.37JFBP4X.js} +2 -2
  34. package/dist/esm/chunks/{chunk.D5TAI6Q7.js → chunk.3X4N4ZPY.js} +2 -2
  35. package/dist/esm/chunks/{chunk.LK4AAUOP.js → chunk.436MTO6R.js} +2 -2
  36. package/dist/esm/chunks/{chunk.P2ZCNO63.js → chunk.4CXLGEJO.js} +2 -2
  37. package/dist/esm/chunks/{chunk.P2ZCNO63.js.map → chunk.4CXLGEJO.js.map} +1 -1
  38. package/dist/esm/chunks/{chunk.EK24Y56W.js → chunk.4JF54GDJ.js} +2 -2
  39. package/dist/esm/chunks/{chunk.SMGXXR6K.js → chunk.4USQ2AP6.js} +2 -2
  40. package/dist/esm/chunks/{chunk.MHBBMC6O.js → chunk.4XJYS5WH.js} +2 -2
  41. package/dist/esm/chunks/{chunk.7TMLILLW.js → chunk.5ASOX23Q.js} +2 -2
  42. package/dist/esm/chunks/{chunk.7TMLILLW.js.map → chunk.5ASOX23Q.js.map} +1 -1
  43. package/dist/esm/chunks/{chunk.624UKZFU.js → chunk.66X366TV.js} +2 -2
  44. package/dist/esm/chunks/chunk.6VSFLBZF.js +7 -0
  45. package/dist/esm/chunks/{chunk.7DB3XVPI.js.map → chunk.6VSFLBZF.js.map} +3 -3
  46. package/dist/esm/chunks/chunk.7L66GZDN.js +7 -0
  47. package/dist/esm/chunks/{chunk.4YFVG4KP.js → chunk.7M4HRJYP.js} +2 -2
  48. package/dist/esm/chunks/{chunk.CKW7KKDW.js → chunk.7PPBXNAD.js} +2 -2
  49. package/dist/esm/chunks/{chunk.A62DE5PD.js → chunk.7UJAI6P2.js} +2 -2
  50. package/dist/esm/chunks/{chunk.UJ2WQOLO.js → chunk.A3ZDCBLA.js} +2 -2
  51. package/dist/esm/chunks/{chunk.2QHD3DCR.js → chunk.AHAARGYM.js} +2 -2
  52. package/dist/esm/chunks/chunk.AQ7ROWO4.js +7 -0
  53. package/dist/esm/chunks/chunk.AQ7ROWO4.js.map +7 -0
  54. package/dist/esm/chunks/{chunk.Q7Z3SJ5F.js → chunk.AY43NTAK.js} +2 -2
  55. package/dist/esm/chunks/{chunk.AEKOP3XT.js → chunk.C2MQN7MI.js} +2 -2
  56. package/dist/esm/chunks/{chunk.AEKOP3XT.js.map → chunk.C2MQN7MI.js.map} +2 -2
  57. package/dist/esm/chunks/{chunk.K3KAM2PL.js → chunk.C5ZUGOOC.js} +2 -2
  58. package/dist/esm/chunks/{chunk.QOJESHEV.js → chunk.C7VEJINB.js} +2 -2
  59. package/dist/esm/chunks/{chunk.YLG6ZC5K.js → chunk.CBIHNCT5.js} +2 -2
  60. package/dist/esm/chunks/{chunk.JIKSKUDW.js → chunk.CLD75EBJ.js} +2 -2
  61. package/dist/esm/chunks/chunk.CMRVP4EA.js +7 -0
  62. package/dist/esm/chunks/chunk.CMRVP4EA.js.map +7 -0
  63. package/dist/esm/chunks/{chunk.TK5I4RHF.js → chunk.CQQSOTZ5.js} +2 -2
  64. package/dist/esm/chunks/chunk.CZEF72BG.js +12 -0
  65. package/dist/esm/chunks/chunk.CZEF72BG.js.map +7 -0
  66. package/dist/esm/chunks/chunk.D5ZHKPCL.js +7 -0
  67. package/dist/esm/chunks/chunk.D5ZHKPCL.js.map +7 -0
  68. package/dist/esm/chunks/{chunk.XKI46BH2.js → chunk.DABGA7I6.js} +2 -2
  69. package/dist/esm/chunks/{chunk.MTKSU2BV.js → chunk.DH76CMUT.js} +2 -2
  70. package/dist/esm/chunks/{chunk.MXEKIEJA.js → chunk.DLQSINSS.js} +2 -2
  71. package/dist/esm/chunks/{chunk.W4247Q2P.js → chunk.DQVYB55P.js} +2 -2
  72. package/dist/esm/chunks/chunk.E4TAHUQO.js +177 -0
  73. package/dist/esm/chunks/chunk.E4TAHUQO.js.map +7 -0
  74. package/dist/esm/chunks/{chunk.WPG7NNQX.js → chunk.EY37FYZ4.js} +2 -2
  75. package/dist/esm/chunks/chunk.FK6NNHXH.js +7 -0
  76. package/dist/esm/chunks/chunk.FK6NNHXH.js.map +7 -0
  77. package/dist/esm/chunks/chunk.G6JWSERI.js +7 -0
  78. package/dist/esm/chunks/{chunk.F74YURLV.js.map → chunk.G6JWSERI.js.map} +4 -4
  79. package/dist/esm/chunks/chunk.GHR7T6U2.js +7 -0
  80. package/dist/esm/chunks/chunk.GHR7T6U2.js.map +7 -0
  81. package/dist/esm/chunks/{chunk.LXPFG7MW.js → chunk.GWIXDVIA.js} +2 -2
  82. package/dist/esm/chunks/{chunk.Z6FCL3G3.js → chunk.HBCDD25D.js} +2 -2
  83. package/dist/esm/chunks/{chunk.M56LSSPW.js → chunk.HDO3WRH7.js} +2 -2
  84. package/dist/esm/chunks/{chunk.DXN7ZOH3.js → chunk.HGH6SSHZ.js} +2 -2
  85. package/dist/esm/chunks/chunk.HJ23XQDJ.js +7 -0
  86. package/dist/esm/chunks/chunk.HJ23XQDJ.js.map +7 -0
  87. package/dist/esm/chunks/{chunk.LFODKHUO.js → chunk.HKSXC5VK.js} +2 -2
  88. package/dist/esm/chunks/chunk.I5SFCLDD.js +7 -0
  89. package/dist/esm/chunks/{chunk.MVTBJPO2.js.map → chunk.I5SFCLDD.js.map} +3 -3
  90. package/dist/esm/chunks/{chunk.S3JMOOWC.js → chunk.IJ2I25V3.js} +2 -2
  91. package/dist/esm/chunks/{chunk.JUJGROHA.js → chunk.IURDWGLD.js} +2 -2
  92. package/dist/esm/chunks/chunk.IXGXASHQ.js +7 -0
  93. package/dist/esm/chunks/{chunk.YX7WLO5Y.js.map → chunk.IXGXASHQ.js.map} +2 -2
  94. package/dist/esm/chunks/{chunk.F5SY2D4B.js → chunk.JCO4M4PF.js} +2 -2
  95. package/dist/esm/chunks/{chunk.5565ZSTH.js → chunk.LNLO36U6.js} +2 -2
  96. package/dist/esm/chunks/chunk.LV7XF22P.js +7 -0
  97. package/dist/esm/chunks/chunk.LV7XF22P.js.map +7 -0
  98. package/dist/esm/chunks/{chunk.NR3MLTXF.js → chunk.MHU452GM.js} +2 -2
  99. package/dist/esm/chunks/chunk.MLTEGJH6.js +7 -0
  100. package/dist/esm/chunks/{chunk.N43BCJHN.js → chunk.MWWY5TX5.js} +2 -2
  101. package/dist/esm/chunks/chunk.NDJZYFRT.js +7 -0
  102. package/dist/esm/chunks/chunk.NDJZYFRT.js.map +7 -0
  103. package/dist/esm/chunks/chunk.O5GE3FFV.js +7 -0
  104. package/dist/esm/chunks/{chunk.VZWNNK7A.js.map → chunk.O5GE3FFV.js.map} +2 -2
  105. package/dist/esm/chunks/chunk.OQ75YGB6.js +7 -0
  106. package/dist/esm/chunks/{chunk.B4T3R53C.js.map → chunk.OQ75YGB6.js.map} +2 -2
  107. package/dist/esm/chunks/chunk.OQAD6MFL.js +7 -0
  108. package/dist/esm/chunks/chunk.OQAD6MFL.js.map +7 -0
  109. package/dist/esm/chunks/{chunk.COVTBIQQ.js → chunk.OXGOCF4L.js} +2 -2
  110. package/dist/esm/chunks/{chunk.BH2TUG2V.js → chunk.PCOOIP2H.js} +2 -2
  111. package/dist/esm/chunks/chunk.PDICDA2V.js +7 -0
  112. package/dist/esm/chunks/{chunk.VVXSELXX.js.map → chunk.PDICDA2V.js.map} +2 -2
  113. package/dist/esm/chunks/{chunk.CWTV3TB3.js → chunk.PDSOXEMY.js} +2 -2
  114. package/dist/esm/chunks/{chunk.OWCYRSI3.js → chunk.PLNLLKP2.js} +2 -2
  115. package/dist/esm/chunks/{chunk.MGLL67VO.js → chunk.Q7BWJCT5.js} +2 -2
  116. package/dist/esm/chunks/chunk.QNVVUUNQ.js +7 -0
  117. package/dist/esm/chunks/chunk.QNVVUUNQ.js.map +7 -0
  118. package/dist/esm/chunks/chunk.R2KOYHIZ.js +7 -0
  119. package/dist/esm/chunks/chunk.R2KOYHIZ.js.map +7 -0
  120. package/dist/esm/chunks/{chunk.XI3MJSIS.js → chunk.R6NA7SV2.js} +2 -2
  121. package/dist/esm/chunks/{chunk.6OW6Q3EW.js → chunk.RBFGJH3C.js} +2 -2
  122. package/dist/esm/chunks/{chunk.JLLHDJSO.js → chunk.RNUGVHZF.js} +2 -2
  123. package/dist/esm/chunks/{chunk.ULY4H76N.js → chunk.RWUJGZ3R.js} +2 -2
  124. package/dist/esm/chunks/{chunk.5MZ5SGMO.js → chunk.RXLORASN.js} +2 -2
  125. package/dist/esm/chunks/chunk.SEWAMWO6.js +7 -0
  126. package/dist/esm/chunks/chunk.SEWAMWO6.js.map +7 -0
  127. package/dist/esm/chunks/chunk.TCFKFKZW.js +7 -0
  128. package/dist/esm/chunks/chunk.TCFKFKZW.js.map +7 -0
  129. package/dist/esm/chunks/{chunk.VSQOTSAO.js → chunk.TGVLYX5F.js} +2 -2
  130. package/dist/esm/chunks/{chunk.TYLOAD7R.js → chunk.TSH7BTC3.js} +2 -2
  131. package/dist/esm/chunks/{chunk.BY25RT52.js → chunk.U5XNDTSZ.js} +2 -2
  132. package/dist/esm/chunks/chunk.UAKQY7QB.js +7 -0
  133. package/dist/esm/chunks/chunk.UAKQY7QB.js.map +7 -0
  134. package/dist/esm/chunks/{chunk.SFCGOCQK.js → chunk.UAVC4YLD.js} +2 -2
  135. package/dist/esm/chunks/{chunk.SJJS4LYN.js → chunk.URFSXQKR.js} +2 -2
  136. package/dist/esm/chunks/{chunk.4ZKX3SO5.js → chunk.UVJFHSMF.js} +2 -2
  137. package/dist/esm/chunks/chunk.UZPZ6KUN.js +7 -0
  138. package/dist/esm/chunks/chunk.UZPZ6KUN.js.map +7 -0
  139. package/dist/esm/chunks/{chunk.YRMR7IOS.js → chunk.V6443MP3.js} +2 -2
  140. package/dist/esm/chunks/chunk.V6443MP3.js.map +7 -0
  141. package/dist/esm/chunks/chunk.VAAID3SH.js +7 -0
  142. package/dist/esm/chunks/chunk.VAAID3SH.js.map +7 -0
  143. package/dist/esm/chunks/chunk.VDGJ4UDL.js +7 -0
  144. package/dist/esm/chunks/chunk.VDGJ4UDL.js.map +7 -0
  145. package/dist/esm/chunks/{chunk.KJP2VA6Q.js → chunk.VPNDAKM3.js} +2 -2
  146. package/dist/esm/chunks/{chunk.KJP2VA6Q.js.map → chunk.VPNDAKM3.js.map} +2 -2
  147. package/dist/esm/chunks/{chunk.DG4ZM3AW.js → chunk.W7H2ZYNR.js} +2 -2
  148. package/dist/esm/chunks/chunk.WCTSXMGU.js +7 -0
  149. package/dist/esm/chunks/chunk.WCTSXMGU.js.map +7 -0
  150. package/dist/esm/chunks/{chunk.FCATJM34.js → chunk.WJXDDQUK.js} +2 -2
  151. package/dist/esm/chunks/{chunk.SU4FU7GK.js → chunk.WK2L7BPJ.js} +2 -2
  152. package/dist/esm/chunks/{chunk.ZKGSQQGU.js → chunk.WOMYKBUG.js} +2 -2
  153. package/dist/esm/chunks/chunk.WOMYKBUG.js.map +7 -0
  154. package/dist/esm/chunks/{chunk.MACPUZC2.js → chunk.WVGIT7F7.js} +2 -2
  155. package/dist/esm/chunks/{chunk.MACPUZC2.js.map → chunk.WVGIT7F7.js.map} +2 -2
  156. package/dist/esm/chunks/{chunk.LTT67HTW.js → chunk.WWTQAN4G.js} +2 -2
  157. package/dist/esm/chunks/chunk.YA3RDJCV.js +7 -0
  158. package/dist/esm/chunks/chunk.YA3RDJCV.js.map +7 -0
  159. package/dist/esm/chunks/{chunk.6OUJSOJY.js → chunk.YIFI5D2X.js} +2 -2
  160. package/dist/esm/chunks/{chunk.6OUJSOJY.js.map → chunk.YIFI5D2X.js.map} +2 -2
  161. package/dist/esm/chunks/chunk.YOXZOPAC.js +7 -0
  162. package/dist/esm/chunks/chunk.YOXZOPAC.js.map +7 -0
  163. package/dist/esm/chunks/{chunk.CDGZYUQS.js → chunk.YP2NHWIW.js} +2 -2
  164. package/dist/esm/chunks/chunk.YPA27RX7.js +7 -0
  165. package/dist/esm/chunks/chunk.YXXKPT6P.js +7 -0
  166. package/dist/esm/chunks/{chunk.PEBT47AU.js.map → chunk.YXXKPT6P.js.map} +2 -2
  167. package/dist/esm/chunks/{chunk.2EWV2XBP.js → chunk.Z6AFASMO.js} +2 -2
  168. package/dist/esm/chunks/{chunk.6GC5AJPE.js → chunk.ZMUDT5UK.js} +2 -2
  169. package/dist/esm/chunks/{chunk.6GC5AJPE.js.map → chunk.ZMUDT5UK.js.map} +2 -2
  170. package/dist/esm/chunks/{chunk.ZJC2DSNM.js → chunk.ZREXLSAJ.js} +2 -2
  171. package/dist/esm/chunks/chunk.ZYVXIP42.js +7 -0
  172. package/dist/esm/chunks/{chunk.SBYX7VZ4.js.map → chunk.ZYVXIP42.js.map} +2 -2
  173. package/dist/esm/circular-progress/index.js +1 -1
  174. package/dist/esm/color-picker/index.js +1 -1
  175. package/dist/esm/core/base/index.js +1 -1
  176. package/dist/esm/core/index.js +1 -1
  177. package/dist/esm/core/utils/index.js +1 -1
  178. package/dist/esm/date-picker/index.js +1 -1
  179. package/dist/esm/date-range-picker/index.js +1 -1
  180. package/dist/esm/dialog/index.js +1 -1
  181. package/dist/esm/divider/index.js +1 -1
  182. package/dist/esm/drawer/base/index.js +1 -1
  183. package/dist/esm/drawer/drawer/index.js +1 -1
  184. package/dist/esm/drawer/index.js +1 -1
  185. package/dist/esm/drawer/mini-drawer/index.js +1 -1
  186. package/dist/esm/drawer/modal-drawer/index.js +1 -1
  187. package/dist/esm/expansion-panel/index.js +1 -1
  188. package/dist/esm/file-picker/index.js +1 -1
  189. package/dist/esm/floating-action-button/index.js +1 -1
  190. package/dist/esm/floating-label/index.js +1 -1
  191. package/dist/esm/focus-indicator/index.js +1 -1
  192. package/dist/esm/icon/index.js +1 -1
  193. package/dist/esm/icon-button/index.js +1 -1
  194. package/dist/esm/index.js +1 -1
  195. package/dist/esm/inline-message/index.js +1 -1
  196. package/dist/esm/keyboard-shortcut/index.js +1 -1
  197. package/dist/esm/label-value/index.js +1 -1
  198. package/dist/esm/linear-progress/index.js +1 -1
  199. package/dist/esm/list/index.js +1 -1
  200. package/dist/esm/list/list/index.js +1 -1
  201. package/dist/esm/list/list-item/index.js +1 -1
  202. package/dist/esm/list-dropdown/index.js +1 -1
  203. package/dist/esm/menu/index.js +1 -1
  204. package/dist/esm/open-icon/index.js +1 -1
  205. package/dist/esm/page-state/index.js +1 -1
  206. package/dist/esm/paginator/index.js +1 -1
  207. package/dist/esm/popup/index.js +1 -1
  208. package/dist/esm/product-icon/index.js +1 -1
  209. package/dist/esm/profile-card/index.js +1 -1
  210. package/dist/esm/quantity-field/index.js +1 -1
  211. package/dist/esm/radio/index.js +1 -1
  212. package/dist/esm/ripple/index.js +1 -1
  213. package/dist/esm/scaffold/index.js +1 -1
  214. package/dist/esm/select/core/index.js +1 -1
  215. package/dist/esm/select/index.js +1 -1
  216. package/dist/esm/select/option/index.js +1 -1
  217. package/dist/esm/select/option-group/index.js +1 -1
  218. package/dist/esm/select/select/index.js +1 -1
  219. package/dist/esm/select/select-dropdown/index.js +1 -1
  220. package/dist/esm/skeleton/index.js +1 -1
  221. package/dist/esm/slider/index.js +1 -1
  222. package/dist/esm/split-view/index.js +1 -1
  223. package/dist/esm/split-view/split-view/index.js +1 -1
  224. package/dist/esm/split-view/split-view-panel/index.js +1 -1
  225. package/dist/esm/stack/index.js +1 -1
  226. package/dist/esm/state-layer/index.js +1 -1
  227. package/dist/esm/stepper/index.js +1 -1
  228. package/dist/esm/stepper/step/index.js +1 -1
  229. package/dist/esm/stepper/stepper/index.js +1 -1
  230. package/dist/esm/switch/index.js +1 -1
  231. package/dist/esm/table/index.js +1 -1
  232. package/dist/esm/tabs/index.js +1 -1
  233. package/dist/esm/tabs/tab/index.js +1 -1
  234. package/dist/esm/tabs/tab-bar/index.js +1 -1
  235. package/dist/esm/text-field/index.js +1 -1
  236. package/dist/esm/time-picker/index.js +1 -1
  237. package/dist/esm/toast/index.js +1 -1
  238. package/dist/esm/toolbar/index.js +1 -1
  239. package/dist/esm/tooltip/index.js +1 -1
  240. package/dist/esm/view-switcher/index.js +1 -1
  241. package/dist/esm/view-switcher/view/index.js +1 -1
  242. package/dist/forge-dark.css +1 -1
  243. package/dist/forge.css +1 -1
  244. package/dist/theme/forge-theme.css +1 -1
  245. package/dist/typography/forge-typography-legacy.css +1 -1
  246. package/dist/typography/forge-typography.css +1 -1
  247. package/esm/autocomplete/autocomplete-constants.d.ts +3 -0
  248. package/esm/autocomplete/autocomplete-foundation.d.ts +3 -1
  249. package/esm/autocomplete/autocomplete-foundation.js +14 -0
  250. package/esm/autocomplete/autocomplete.d.ts +7 -1
  251. package/esm/autocomplete/autocomplete.js +7 -0
  252. package/esm/banner/banner.js +1 -1
  253. package/esm/button-area/button-area-adapter.d.ts +48 -0
  254. package/esm/button-area/button-area-adapter.js +121 -0
  255. package/esm/button-area/button-area-constants.d.ts +24 -0
  256. package/esm/button-area/button-area-constants.js +30 -0
  257. package/esm/button-area/button-area-foundation.d.ts +29 -0
  258. package/esm/button-area/button-area-foundation.js +94 -0
  259. package/esm/button-area/button-area.d.ts +29 -0
  260. package/esm/button-area/button-area.js +55 -0
  261. package/esm/button-area/index.d.ts +10 -0
  262. package/esm/button-area/index.js +14 -0
  263. package/esm/calendar/calendar-foundation.js +6 -0
  264. package/esm/calendar/calendar-menu/calendar-menu.js +1 -1
  265. package/esm/chip-field/chip-field-adapter.js +1 -1
  266. package/esm/chip-field/chip-field.js +2 -2
  267. package/esm/circular-progress/circular-progress.js +1 -1
  268. package/esm/core/base/base-adapter.d.ts +5 -2
  269. package/esm/core/base/base-adapter.js +13 -2
  270. package/esm/core/base/base-component.d.ts +37 -0
  271. package/esm/core/base/base-component.js +3 -0
  272. package/esm/core/keyboard/key-manager.d.ts +18 -0
  273. package/esm/core/keyboard/key-manager.js +47 -0
  274. package/esm/core/utils/a11y-utils.d.ts +32 -0
  275. package/esm/core/utils/a11y-utils.js +111 -0
  276. package/esm/core/utils/index.d.ts +1 -0
  277. package/esm/core/utils/index.js +1 -0
  278. package/esm/core/utils/utils.d.ts +8 -0
  279. package/esm/core/utils/utils.js +15 -0
  280. package/esm/date-picker/base/base-date-picker-foundation.js +1 -1
  281. package/esm/date-range-picker/date-range-picker-foundation.js +2 -2
  282. package/esm/drawer/drawer/drawer.js +1 -1
  283. package/esm/drawer/mini-drawer/mini-drawer.js +1 -1
  284. package/esm/drawer/modal-drawer/modal-drawer.js +1 -1
  285. package/esm/expansion-panel/expansion-panel-adapter.d.ts +1 -0
  286. package/esm/expansion-panel/expansion-panel-adapter.js +7 -2
  287. package/esm/expansion-panel/expansion-panel.js +1 -1
  288. package/esm/field/field-foundation.d.ts +1 -0
  289. package/esm/field/field-foundation.js +17 -7
  290. package/esm/floating-label/floating-label-foundation.d.ts +4 -1
  291. package/esm/floating-label/floating-label-foundation.js +9 -6
  292. package/esm/floating-label/floating-label.d.ts +6 -2
  293. package/esm/floating-label/floating-label.js +2 -2
  294. package/esm/focus-indicator/focus-indicator-foundation.js +1 -1
  295. package/esm/focus-indicator/focus-indicator.js +1 -1
  296. package/esm/icon/icon-adapter.d.ts +0 -2
  297. package/esm/icon/icon-adapter.js +4 -5
  298. package/esm/icon/icon-foundation.js +0 -1
  299. package/esm/index.d.ts +1 -0
  300. package/esm/index.js +4 -1
  301. package/esm/keyboard-shortcut/keyboard-shortcut-constants.d.ts +1 -0
  302. package/esm/keyboard-shortcut/keyboard-shortcut-foundation.d.ts +6 -0
  303. package/esm/keyboard-shortcut/keyboard-shortcut-foundation.js +9 -0
  304. package/esm/keyboard-shortcut/keyboard-shortcut.d.ts +4 -0
  305. package/esm/keyboard-shortcut/keyboard-shortcut.js +3 -0
  306. package/esm/linear-progress/linear-progress.js +1 -1
  307. package/esm/list/list/list-adapter.d.ts +17 -41
  308. package/esm/list/list/list-adapter.js +43 -60
  309. package/esm/list/list/list-constants.d.ts +13 -5
  310. package/esm/list/list/list-constants.js +15 -7
  311. package/esm/list/list/list-foundation.d.ts +24 -16
  312. package/esm/list/list/list-foundation.js +84 -75
  313. package/esm/list/list/list.d.ts +47 -8
  314. package/esm/list/list/list.js +83 -11
  315. package/esm/list/list-item/list-item-adapter.d.ts +31 -90
  316. package/esm/list/list-item/list-item-adapter.js +124 -135
  317. package/esm/list/list-item/list-item-constants.d.ts +27 -27
  318. package/esm/list/list-item/list-item-constants.js +17 -32
  319. package/esm/list/list-item/list-item-foundation.d.ts +32 -56
  320. package/esm/list/list-item/list-item-foundation.js +111 -206
  321. package/esm/list/list-item/list-item.d.ts +109 -37
  322. package/esm/list/list-item/list-item.js +152 -88
  323. package/esm/list-dropdown/list-dropdown-adapter.js +1 -6
  324. package/esm/list-dropdown/list-dropdown-constants.d.ts +4 -0
  325. package/esm/list-dropdown/list-dropdown-utils.js +23 -24
  326. package/esm/paginator/paginator-adapter.d.ts +28 -24
  327. package/esm/paginator/paginator-adapter.js +55 -0
  328. package/esm/paginator/paginator-foundation.d.ts +33 -80
  329. package/esm/paginator/paginator-foundation.js +218 -255
  330. package/esm/paginator/paginator.d.ts +0 -2
  331. package/esm/paginator/paginator.js +0 -2
  332. package/esm/popup/popup-adapter.d.ts +3 -1
  333. package/esm/popup/popup-adapter.js +3 -0
  334. package/esm/popup/popup-foundation.js +5 -3
  335. package/esm/popup/popup.d.ts +4 -1
  336. package/esm/popup/popup.js +1 -1
  337. package/esm/select/core/base-select-adapter.js +3 -0
  338. package/esm/select/option/option-constants.d.ts +1 -0
  339. package/esm/select/option/option-constants.js +1 -0
  340. package/esm/select/option/option-foundation.d.ts +13 -0
  341. package/esm/select/option/option-foundation.js +28 -0
  342. package/esm/select/option/option.d.ts +7 -0
  343. package/esm/select/option/option.js +13 -0
  344. package/esm/slider/slider.js +2 -2
  345. package/esm/split-view/split-view-panel/split-view-panel.js +1 -1
  346. package/esm/state-layer/state-layer.js +1 -1
  347. package/esm/switch/switch-adapter.d.ts +38 -0
  348. package/esm/switch/switch-adapter.js +69 -0
  349. package/esm/switch/switch-component-delegate.d.ts +2 -1
  350. package/esm/switch/switch-component-delegate.js +8 -8
  351. package/esm/switch/switch-constants.d.ts +14 -7
  352. package/esm/switch/switch-constants.js +17 -9
  353. package/esm/switch/switch-foundation.d.ts +46 -0
  354. package/esm/switch/switch-foundation.js +110 -0
  355. package/esm/switch/switch.d.ts +150 -33
  356. package/esm/switch/switch.js +226 -142
  357. package/esm/tabs/tab/tab.js +2 -2
  358. package/esm/tabs/tab-bar/tab-bar.js +1 -1
  359. package/esm/time-picker/time-picker-foundation.js +3 -3
  360. package/package.json +1 -6
  361. package/styles/button-area/_mixins.scss +47 -0
  362. package/styles/button-area/button-area.scss +16 -0
  363. package/styles/calendar/calendar-menu/_mixins.scss +48 -2
  364. package/styles/chip-field/_base.scss +1 -0
  365. package/styles/chip-field/_selector.scss +2 -2
  366. package/styles/core/styles/_utils.scss +85 -11
  367. package/styles/core/styles/scrollbar/index.scss +45 -0
  368. package/styles/core/styles/spacing/index.scss +1 -1
  369. package/styles/core/styles/theme/_color-utils.scss +63 -0
  370. package/styles/core/styles/theme/_utils.scss +82 -0
  371. package/styles/core/styles/theme/index.scss +39 -13
  372. package/styles/core/styles/tokens/circular-progress/_tokens.scss +1 -1
  373. package/styles/core/styles/tokens/color-palette/_extended-color-palette.scss +88 -0
  374. package/styles/core/styles/tokens/color-palette/index.scss +7 -0
  375. package/styles/core/styles/tokens/focus-indicator/_tokens.scss +2 -2
  376. package/styles/core/styles/tokens/linear-progress/_tokens.scss +1 -1
  377. package/styles/core/styles/tokens/list/list/_tokens.scss +16 -0
  378. package/styles/core/styles/tokens/list/list-item/_tokens.scss +77 -0
  379. package/styles/core/styles/tokens/scrollbar/_tokens.scss +26 -0
  380. package/styles/core/styles/tokens/slider/_tokens.scss +9 -11
  381. package/styles/core/styles/tokens/spacing/_tokens.scss +10 -10
  382. package/styles/core/styles/tokens/state-layer/_tokens.scss +5 -5
  383. package/styles/core/styles/tokens/switch/_tokens.scss +108 -0
  384. package/styles/core/styles/tokens/tabs/tab/_tokens.scss +3 -1
  385. package/styles/core/styles/tokens/tabs/tab-bar/_tokens.scss +1 -1
  386. package/styles/core/styles/tokens/theme/_color-emphasis.scss +38 -0
  387. package/styles/core/styles/tokens/theme/_token-utils.scss +46 -0
  388. package/styles/core/styles/tokens/theme/_tokens.core.scss +45 -0
  389. package/styles/core/styles/tokens/theme/_tokens.scss +62 -117
  390. package/styles/core/styles/tokens/theme/_tokens.status.scss +49 -0
  391. package/styles/core/styles/tokens/theme/_tokens.surface.scss +65 -0
  392. package/styles/core/styles/tokens/theme/_tokens.text.scss +38 -0
  393. package/styles/core/styles/tokens/theme/_tokens.utilities.scss +30 -0
  394. package/styles/core/styles/tokens/typography/_scale.scss +39 -0
  395. package/styles/core/styles/tokens/typography/_tokens.body.scss +41 -0
  396. package/styles/core/styles/tokens/typography/_tokens.core.scss +31 -0
  397. package/styles/core/styles/tokens/typography/_tokens.display.scss +67 -0
  398. package/styles/core/styles/tokens/typography/_tokens.heading.scss +70 -0
  399. package/styles/core/styles/tokens/typography/_tokens.label.scss +37 -0
  400. package/styles/core/styles/tokens/typography/_tokens.scss +16 -211
  401. package/styles/core/styles/tokens/typography/_tokens.subheading.scss +66 -0
  402. package/styles/core/styles/tokens/typography/_type-utils.scss +37 -0
  403. package/styles/core/styles/tokens/typography/_weight.scss +20 -0
  404. package/styles/core/styles/typography/index.scss +31 -6
  405. package/styles/list/list/_configuration.scss +12 -0
  406. package/styles/list/list/_core.scss +21 -0
  407. package/styles/list/list/index.scss +7 -0
  408. package/styles/list/list/list.scss +19 -4
  409. package/styles/list/list-item/_configuration.scss +72 -0
  410. package/styles/list/list-item/_core.scss +200 -0
  411. package/styles/list/list-item/index.scss +7 -0
  412. package/styles/list/list-item/list-item.scss +193 -13
  413. package/styles/slider/_core.scss +2 -8
  414. package/styles/slider/slider.scss +2 -2
  415. package/styles/switch/_configuration.scss +95 -0
  416. package/styles/switch/_core.scss +255 -0
  417. package/styles/switch/index.scss +7 -0
  418. package/styles/switch/switch.scss +136 -50
  419. package/styles/tabs/tab/_configuration.scss +5 -0
  420. package/styles/tabs/tab/_core.scss +7 -7
  421. package/styles/tabs/tab/tab.scss +3 -2
  422. package/styles/theme/_theme-dark.scss +0 -2
  423. package/styles/theme/_theme.scss +3 -45
  424. package/styles/theme/forge-theme.scss +21 -3
  425. package/styles/typography/_mixins.scss +0 -20
  426. package/dist/esm/chunks/chunk.2AJ7FFI6.js +0 -7
  427. package/dist/esm/chunks/chunk.2AJ7FFI6.js.map +0 -7
  428. package/dist/esm/chunks/chunk.3HB22HCX.js +0 -7
  429. package/dist/esm/chunks/chunk.4C6KHYUO.js +0 -7
  430. package/dist/esm/chunks/chunk.54OOOQ4R.js +0 -7
  431. package/dist/esm/chunks/chunk.54OOOQ4R.js.map +0 -7
  432. package/dist/esm/chunks/chunk.7CGKFRBK.js +0 -7
  433. package/dist/esm/chunks/chunk.7CGKFRBK.js.map +0 -7
  434. package/dist/esm/chunks/chunk.7DB3XVPI.js +0 -7
  435. package/dist/esm/chunks/chunk.ALIYGJXA.js +0 -129
  436. package/dist/esm/chunks/chunk.ALIYGJXA.js.map +0 -7
  437. package/dist/esm/chunks/chunk.B4T3R53C.js +0 -7
  438. package/dist/esm/chunks/chunk.BKL2BAYW.js +0 -7
  439. package/dist/esm/chunks/chunk.BKL2BAYW.js.map +0 -7
  440. package/dist/esm/chunks/chunk.CXY6K7EI.js +0 -7
  441. package/dist/esm/chunks/chunk.CXY6K7EI.js.map +0 -7
  442. package/dist/esm/chunks/chunk.DBNJHUYY.js +0 -7
  443. package/dist/esm/chunks/chunk.DBNJHUYY.js.map +0 -7
  444. package/dist/esm/chunks/chunk.DMCBAYQX.js +0 -7
  445. package/dist/esm/chunks/chunk.DMCBAYQX.js.map +0 -7
  446. package/dist/esm/chunks/chunk.F4VXEE76.js +0 -7
  447. package/dist/esm/chunks/chunk.F4VXEE76.js.map +0 -7
  448. package/dist/esm/chunks/chunk.F74YURLV.js +0 -7
  449. package/dist/esm/chunks/chunk.FG2GNAM2.js +0 -7
  450. package/dist/esm/chunks/chunk.FG2GNAM2.js.map +0 -7
  451. package/dist/esm/chunks/chunk.GNG64TXK.js +0 -7
  452. package/dist/esm/chunks/chunk.GNG64TXK.js.map +0 -7
  453. package/dist/esm/chunks/chunk.HHCO64F3.js +0 -7
  454. package/dist/esm/chunks/chunk.HHCO64F3.js.map +0 -7
  455. package/dist/esm/chunks/chunk.ISC7SZSP.js +0 -7
  456. package/dist/esm/chunks/chunk.ISC7SZSP.js.map +0 -7
  457. package/dist/esm/chunks/chunk.IX25DYIM.js +0 -7
  458. package/dist/esm/chunks/chunk.IX25DYIM.js.map +0 -7
  459. package/dist/esm/chunks/chunk.MVTBJPO2.js +0 -7
  460. package/dist/esm/chunks/chunk.P2CW5MQO.js +0 -12
  461. package/dist/esm/chunks/chunk.P2CW5MQO.js.map +0 -7
  462. package/dist/esm/chunks/chunk.PEBT47AU.js +0 -7
  463. package/dist/esm/chunks/chunk.PH3HUFJJ.js +0 -7
  464. package/dist/esm/chunks/chunk.PH3HUFJJ.js.map +0 -7
  465. package/dist/esm/chunks/chunk.Q7JUJNYD.js +0 -7
  466. package/dist/esm/chunks/chunk.QCRRHGBA.js +0 -7
  467. package/dist/esm/chunks/chunk.QCRRHGBA.js.map +0 -7
  468. package/dist/esm/chunks/chunk.SBYX7VZ4.js +0 -7
  469. package/dist/esm/chunks/chunk.VVXSELXX.js +0 -7
  470. package/dist/esm/chunks/chunk.VZWNNK7A.js +0 -7
  471. package/dist/esm/chunks/chunk.X3C3J5MH.js +0 -7
  472. package/dist/esm/chunks/chunk.X3C3J5MH.js.map +0 -7
  473. package/dist/esm/chunks/chunk.XGOAYMK2.js +0 -7
  474. package/dist/esm/chunks/chunk.XGOAYMK2.js.map +0 -7
  475. package/dist/esm/chunks/chunk.YRMR7IOS.js.map +0 -7
  476. package/dist/esm/chunks/chunk.YX7WLO5Y.js +0 -7
  477. package/dist/esm/chunks/chunk.YZLASVCK.js +0 -177
  478. package/dist/esm/chunks/chunk.YZLASVCK.js.map +0 -7
  479. package/dist/esm/chunks/chunk.ZDD2NLGP.js +0 -7
  480. package/dist/esm/chunks/chunk.ZKGSQQGU.js.map +0 -7
  481. package/dist/esm/chunks/chunk.ZVBZ3LGP.js +0 -7
  482. package/dist/esm/chunks/chunk.ZVBZ3LGP.js.map +0 -7
  483. package/styles/list/list/_mixins.scss +0 -45
  484. package/styles/list/list-item/_mixins.scss +0 -413
  485. package/styles/list/list-item/_variables.scss +0 -43
  486. package/styles/switch/_switch-mixins.scss +0 -301
  487. package/styles/switch/_switch-theme.scss +0 -701
  488. /package/dist/esm/chunks/{chunk.Q7JUJNYD.js.map → chunk.2LIWNFQK.js.map} +0 -0
  489. /package/dist/esm/chunks/{chunk.FWFOOQMA.js.map → chunk.2WSXSOYB.js.map} +0 -0
  490. /package/dist/esm/chunks/{chunk.YWNCJ7XP.js.map → chunk.37JFBP4X.js.map} +0 -0
  491. /package/dist/esm/chunks/{chunk.D5TAI6Q7.js.map → chunk.3X4N4ZPY.js.map} +0 -0
  492. /package/dist/esm/chunks/{chunk.LK4AAUOP.js.map → chunk.436MTO6R.js.map} +0 -0
  493. /package/dist/esm/chunks/{chunk.EK24Y56W.js.map → chunk.4JF54GDJ.js.map} +0 -0
  494. /package/dist/esm/chunks/{chunk.SMGXXR6K.js.map → chunk.4USQ2AP6.js.map} +0 -0
  495. /package/dist/esm/chunks/{chunk.MHBBMC6O.js.map → chunk.4XJYS5WH.js.map} +0 -0
  496. /package/dist/esm/chunks/{chunk.624UKZFU.js.map → chunk.66X366TV.js.map} +0 -0
  497. /package/dist/esm/chunks/{chunk.ZDD2NLGP.js.map → chunk.7L66GZDN.js.map} +0 -0
  498. /package/dist/esm/chunks/{chunk.4YFVG4KP.js.map → chunk.7M4HRJYP.js.map} +0 -0
  499. /package/dist/esm/chunks/{chunk.CKW7KKDW.js.map → chunk.7PPBXNAD.js.map} +0 -0
  500. /package/dist/esm/chunks/{chunk.A62DE5PD.js.map → chunk.7UJAI6P2.js.map} +0 -0
  501. /package/dist/esm/chunks/{chunk.UJ2WQOLO.js.map → chunk.A3ZDCBLA.js.map} +0 -0
  502. /package/dist/esm/chunks/{chunk.2QHD3DCR.js.map → chunk.AHAARGYM.js.map} +0 -0
  503. /package/dist/esm/chunks/{chunk.Q7Z3SJ5F.js.map → chunk.AY43NTAK.js.map} +0 -0
  504. /package/dist/esm/chunks/{chunk.K3KAM2PL.js.map → chunk.C5ZUGOOC.js.map} +0 -0
  505. /package/dist/esm/chunks/{chunk.QOJESHEV.js.map → chunk.C7VEJINB.js.map} +0 -0
  506. /package/dist/esm/chunks/{chunk.YLG6ZC5K.js.map → chunk.CBIHNCT5.js.map} +0 -0
  507. /package/dist/esm/chunks/{chunk.JIKSKUDW.js.map → chunk.CLD75EBJ.js.map} +0 -0
  508. /package/dist/esm/chunks/{chunk.TK5I4RHF.js.map → chunk.CQQSOTZ5.js.map} +0 -0
  509. /package/dist/esm/chunks/{chunk.XKI46BH2.js.map → chunk.DABGA7I6.js.map} +0 -0
  510. /package/dist/esm/chunks/{chunk.MTKSU2BV.js.map → chunk.DH76CMUT.js.map} +0 -0
  511. /package/dist/esm/chunks/{chunk.MXEKIEJA.js.map → chunk.DLQSINSS.js.map} +0 -0
  512. /package/dist/esm/chunks/{chunk.W4247Q2P.js.map → chunk.DQVYB55P.js.map} +0 -0
  513. /package/dist/esm/chunks/{chunk.WPG7NNQX.js.map → chunk.EY37FYZ4.js.map} +0 -0
  514. /package/dist/esm/chunks/{chunk.LXPFG7MW.js.map → chunk.GWIXDVIA.js.map} +0 -0
  515. /package/dist/esm/chunks/{chunk.Z6FCL3G3.js.map → chunk.HBCDD25D.js.map} +0 -0
  516. /package/dist/esm/chunks/{chunk.M56LSSPW.js.map → chunk.HDO3WRH7.js.map} +0 -0
  517. /package/dist/esm/chunks/{chunk.DXN7ZOH3.js.map → chunk.HGH6SSHZ.js.map} +0 -0
  518. /package/dist/esm/chunks/{chunk.LFODKHUO.js.map → chunk.HKSXC5VK.js.map} +0 -0
  519. /package/dist/esm/chunks/{chunk.S3JMOOWC.js.map → chunk.IJ2I25V3.js.map} +0 -0
  520. /package/dist/esm/chunks/{chunk.JUJGROHA.js.map → chunk.IURDWGLD.js.map} +0 -0
  521. /package/dist/esm/chunks/{chunk.F5SY2D4B.js.map → chunk.JCO4M4PF.js.map} +0 -0
  522. /package/dist/esm/chunks/{chunk.5565ZSTH.js.map → chunk.LNLO36U6.js.map} +0 -0
  523. /package/dist/esm/chunks/{chunk.NR3MLTXF.js.map → chunk.MHU452GM.js.map} +0 -0
  524. /package/dist/esm/chunks/{chunk.4C6KHYUO.js.map → chunk.MLTEGJH6.js.map} +0 -0
  525. /package/dist/esm/chunks/{chunk.N43BCJHN.js.map → chunk.MWWY5TX5.js.map} +0 -0
  526. /package/dist/esm/chunks/{chunk.COVTBIQQ.js.map → chunk.OXGOCF4L.js.map} +0 -0
  527. /package/dist/esm/chunks/{chunk.BH2TUG2V.js.map → chunk.PCOOIP2H.js.map} +0 -0
  528. /package/dist/esm/chunks/{chunk.CWTV3TB3.js.map → chunk.PDSOXEMY.js.map} +0 -0
  529. /package/dist/esm/chunks/{chunk.OWCYRSI3.js.map → chunk.PLNLLKP2.js.map} +0 -0
  530. /package/dist/esm/chunks/{chunk.MGLL67VO.js.map → chunk.Q7BWJCT5.js.map} +0 -0
  531. /package/dist/esm/chunks/{chunk.XI3MJSIS.js.map → chunk.R6NA7SV2.js.map} +0 -0
  532. /package/dist/esm/chunks/{chunk.6OW6Q3EW.js.map → chunk.RBFGJH3C.js.map} +0 -0
  533. /package/dist/esm/chunks/{chunk.JLLHDJSO.js.map → chunk.RNUGVHZF.js.map} +0 -0
  534. /package/dist/esm/chunks/{chunk.ULY4H76N.js.map → chunk.RWUJGZ3R.js.map} +0 -0
  535. /package/dist/esm/chunks/{chunk.5MZ5SGMO.js.map → chunk.RXLORASN.js.map} +0 -0
  536. /package/dist/esm/chunks/{chunk.VSQOTSAO.js.map → chunk.TGVLYX5F.js.map} +0 -0
  537. /package/dist/esm/chunks/{chunk.TYLOAD7R.js.map → chunk.TSH7BTC3.js.map} +0 -0
  538. /package/dist/esm/chunks/{chunk.BY25RT52.js.map → chunk.U5XNDTSZ.js.map} +0 -0
  539. /package/dist/esm/chunks/{chunk.SFCGOCQK.js.map → chunk.UAVC4YLD.js.map} +0 -0
  540. /package/dist/esm/chunks/{chunk.SJJS4LYN.js.map → chunk.URFSXQKR.js.map} +0 -0
  541. /package/dist/esm/chunks/{chunk.4ZKX3SO5.js.map → chunk.UVJFHSMF.js.map} +0 -0
  542. /package/dist/esm/chunks/{chunk.DG4ZM3AW.js.map → chunk.W7H2ZYNR.js.map} +0 -0
  543. /package/dist/esm/chunks/{chunk.FCATJM34.js.map → chunk.WJXDDQUK.js.map} +0 -0
  544. /package/dist/esm/chunks/{chunk.SU4FU7GK.js.map → chunk.WK2L7BPJ.js.map} +0 -0
  545. /package/dist/esm/chunks/{chunk.LTT67HTW.js.map → chunk.WWTQAN4G.js.map} +0 -0
  546. /package/dist/esm/chunks/{chunk.CDGZYUQS.js.map → chunk.YP2NHWIW.js.map} +0 -0
  547. /package/dist/esm/chunks/{chunk.3HB22HCX.js.map → chunk.YPA27RX7.js.map} +0 -0
  548. /package/dist/esm/chunks/{chunk.2EWV2XBP.js.map → chunk.Z6AFASMO.js.map} +0 -0
  549. /package/dist/esm/chunks/{chunk.ZJC2DSNM.js.map → chunk.ZREXLSAJ.js.map} +0 -0
  550. /package/styles/core/styles/tokens/{_color-palette.scss → color-palette/_material-color-palette.scss} +0 -0
@@ -4,190 +4,274 @@
4
4
  * License: Apache-2.0
5
5
  */
6
6
  import { __decorate } from "tslib";
7
- import { CustomElement, attachShadowTemplate, coerceBoolean, getShadowElement, emitEvent, toggleAttribute, toggleClass } from '@tylertech/forge-core';
8
- import { MDCSwitch } from '@material/switch';
9
- import { MDCRipple } from '@material/ripple';
7
+ import { CustomElement, FoundationProperty, attachShadowTemplate, coerceBoolean, isDefined, isString, toggleAttribute } from '@tylertech/forge-core';
8
+ import { BaseFormComponent } from '../core/base/base-component';
9
+ import { FocusIndicatorComponent } from '../focus-indicator/focus-indicator';
10
+ import { StateLayerComponent } from '../state-layer/state-layer';
11
+ import { SwitchAdapter } from './switch-adapter';
10
12
  import { SWITCH_CONSTANTS } from './switch-constants';
11
- import { BaseComponent } from '../core/base/base-component';
12
- const template = '<template><div class=\"forge-switch__container\" part=\"root\"><button id=\"switch-btn\" class=\"mdc-switch\" type=\"button\" role=\"switch\" aria-checked=\"false\" aria-labelledby=\"switch-label\" part=\"button\"><div class=\"mdc-switch__track\" part=\"track\"></div><div class=\"mdc-switch__handle-track\" part=\"handle-track\"><div class=\"mdc-switch__handle\" part=\"handle\"><div class=\"mdc-switch__shadow\" part=\"shadow\"><div class=\"mdc-elevation-overlay\" part=\"overlay\"></div></div><div class=\"mdc-switch__ripple\" part=\"ripple\"></div><div class=\"mdc-switch__icons\" part=\"icons\"><svg class=\"mdc-switch__icon mdc-switch__icon--on\" viewBox=\"0 0 24 24\" part=\"icon-on\"><path d=\"M19.69,5.23L8.96,15.96l-4.23-4.23L2.96,13.5l6,6L21.46,7L19.69,5.23z\" part=\"icon-on-path\"/></svg> <svg class=\"mdc-switch__icon mdc-switch__icon--off\" viewBox=\"0 0 24 24\" part=\"icon-off\"><path d=\"M20 13H4v-2h16v2z\" part=\"icon-off-path\"/></svg></div></div></div></button> <label id=\"switch-label\" class=\"forge-switch__label\" for=\"switch-btn\" part=\"label\"><slot></slot></label></div></template>';
13
- const styles = '.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:0;opacity:var(--mdc-elevation-overlay-opacity, 0);-webkit-transition:opacity 280ms cubic-bezier(.4, 0, .2, 1);transition:opacity 280ms cubic-bezier(.4, 0, .2, 1);background-color:#fff;background-color:var(--mdc-elevation-overlay-color,#fff)}.mdc-switch{-webkit-box-align:center;align-items:center;background:0 0;border:none;display:-webkit-inline-box;display:inline-flex;flex-shrink:0;margin:0;outline:0;overflow:visible;padding:0;position:relative}.mdc-switch__track{overflow:hidden;position:relative;width:100%}.mdc-switch__track::after,.mdc-switch__track::before{border:1px solid transparent;border-radius:inherit;-webkit-box-sizing:border-box;box-sizing:border-box;content:\"\";height:100%;left:0;position:absolute;width:100%}.mdc-switch__track::before{-webkit-transition:-webkit-transform 75ms 0s cubic-bezier(0, 0, .2, 1);transition:-webkit-transform 75ms 0s cubic-bezier(0, 0, .2, 1);transition:transform 75ms 0s cubic-bezier(0, 0, .2, 1);transition:transform 75ms 0s cubic-bezier(0, 0, .2, 1),-webkit-transform 75ms 0s cubic-bezier(0, 0, .2, 1);-webkit-transform:translateX(0);transform:translateX(0)}.mdc-switch__track::after{-webkit-transition:-webkit-transform 75ms 0s cubic-bezier(.4, 0, .6, 1);transition:-webkit-transform 75ms 0s cubic-bezier(.4, 0, .6, 1);transition:transform 75ms 0s cubic-bezier(.4, 0, .6, 1);transition:transform 75ms 0s cubic-bezier(.4, 0, .6, 1),-webkit-transform 75ms 0s cubic-bezier(.4, 0, .6, 1);-webkit-transform:translateX(-100%);transform:translateX(-100%)}.mdc-switch__track[dir=rtl]::after,[dir=rtl] .mdc-switch__track::after{-webkit-transform:translateX(100%);transform:translateX(100%)}.mdc-switch--selected .mdc-switch__track::before{-webkit-transition:-webkit-transform 75ms 0s cubic-bezier(.4, 0, .6, 1);transition:-webkit-transform 75ms 0s cubic-bezier(.4, 0, .6, 1);transition:transform 75ms 0s cubic-bezier(.4, 0, .6, 1);transition:transform 75ms 0s cubic-bezier(.4, 0, .6, 1),-webkit-transform 75ms 0s cubic-bezier(.4, 0, .6, 1);-webkit-transform:translateX(100%);transform:translateX(100%)}.mdc-switch--selected .mdc-switch__track[dir=rtl]::before,[dir=rtl] .mdc-switch--selected .mdc-switch__track::before{-webkit-transform:translateX(-100%);transform:translateX(-100%)}.mdc-switch--selected .mdc-switch__track::after{-webkit-transition:-webkit-transform 75ms 0s cubic-bezier(0, 0, .2, 1);transition:-webkit-transform 75ms 0s cubic-bezier(0, 0, .2, 1);transition:transform 75ms 0s cubic-bezier(0, 0, .2, 1);transition:transform 75ms 0s cubic-bezier(0, 0, .2, 1),-webkit-transform 75ms 0s cubic-bezier(0, 0, .2, 1);-webkit-transform:translateX(0);transform:translateX(0)}.mdc-switch__handle-track{height:100%;pointer-events:none;position:absolute;top:0;-webkit-transition:-webkit-transform 75ms 0s cubic-bezier(.4, 0, .2, 1);transition:-webkit-transform 75ms 0s cubic-bezier(.4, 0, .2, 1);transition:transform 75ms 0s cubic-bezier(.4, 0, .2, 1);transition:transform 75ms 0s cubic-bezier(.4, 0, .2, 1),-webkit-transform 75ms 0s cubic-bezier(.4, 0, .2, 1);left:0;right:auto;-webkit-transform:translateX(0);transform:translateX(0)}.mdc-switch__handle-track[dir=rtl],[dir=rtl] .mdc-switch__handle-track{left:auto;right:0}.mdc-switch--selected .mdc-switch__handle-track{-webkit-transform:translateX(100%);transform:translateX(100%)}.mdc-switch--selected .mdc-switch__handle-track[dir=rtl],[dir=rtl] .mdc-switch--selected .mdc-switch__handle-track{-webkit-transform:translateX(-100%);transform:translateX(-100%)}.mdc-switch__handle{display:-webkit-box;display:flex;pointer-events:auto;position:absolute;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);left:0;right:auto}.mdc-switch__handle[dir=rtl],[dir=rtl] .mdc-switch__handle{left:auto;right:0}.mdc-switch__handle::after,.mdc-switch__handle::before{border:1px solid transparent;border-radius:inherit;-webkit-box-sizing:border-box;box-sizing:border-box;content:\"\";width:100%;height:100%;left:0;position:absolute;top:0;-webkit-transition:background-color 75ms 0s cubic-bezier(.4, 0, .2, 1),border-color 75ms 0s cubic-bezier(.4, 0, .2, 1);transition:background-color 75ms 0s cubic-bezier(.4, 0, .2, 1),border-color 75ms 0s cubic-bezier(.4, 0, .2, 1);z-index:-1}.mdc-switch__shadow{border-radius:inherit;bottom:0;left:0;position:absolute;right:0;top:0}.mdc-elevation-overlay{bottom:0;left:0;right:0;top:0}.mdc-switch__ripple{left:50%;position:absolute;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);z-index:-1}.mdc-switch:disabled .mdc-switch__ripple{display:none}.mdc-switch__icons{height:100%;position:relative;width:100%;z-index:1}.mdc-switch__icon{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0;opacity:0;-webkit-transition:opacity 30ms 0s cubic-bezier(.4, 0, 1, 1);transition:opacity 30ms 0s cubic-bezier(.4, 0, 1, 1)}.mdc-switch--selected .mdc-switch__icon--on,.mdc-switch--unselected .mdc-switch__icon--off{opacity:1;-webkit-transition:opacity 45ms 30ms cubic-bezier(0, 0, .2, 1);transition:opacity 45ms 30ms cubic-bezier(0, 0, .2, 1)}.mdc-switch{--mdc-ripple-fg-size:0;--mdc-ripple-left:0;--mdc-ripple-top:0;--mdc-ripple-fg-scale:1;--mdc-ripple-fg-translate-end:0;--mdc-ripple-fg-translate-start:0;-webkit-tap-highlight-color:transparent;will-change:transform,opacity}@-webkit-keyframes mdc-ripple-fg-radius-in{from{-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);-webkit-transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1);transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1)}to{-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}}@keyframes mdc-ripple-fg-radius-in{from{-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);-webkit-transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1);transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1)}to{-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}}@-webkit-keyframes mdc-ripple-fg-opacity-in{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@keyframes mdc-ripple-fg-opacity-in{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@-webkit-keyframes mdc-ripple-fg-opacity-out{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}@keyframes mdc-ripple-fg-opacity-out{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}.mdc-switch .mdc-switch__ripple::after,.mdc-switch .mdc-switch__ripple::before{position:absolute;border-radius:50%;opacity:0;pointer-events:none;content:\"\"}.mdc-switch .mdc-switch__ripple::before{-webkit-transition:opacity 15ms linear,background-color 15ms linear;transition:opacity 15ms linear,background-color 15ms linear;z-index:1;z-index:var(--mdc-ripple-z-index,1)}.mdc-switch .mdc-switch__ripple::after{z-index:0;z-index:var(--mdc-ripple-z-index,0)}.mdc-switch.mdc-ripple-upgraded .mdc-switch__ripple::before{-webkit-transform:scale(var(--mdc-ripple-fg-scale,1));transform:scale(var(--mdc-ripple-fg-scale,1))}.mdc-switch.mdc-ripple-upgraded .mdc-switch__ripple::after{top:0;left:0;-webkit-transform:scale(0);transform:scale(0);-webkit-transform-origin:center center;transform-origin:center center}.mdc-switch.mdc-ripple-upgraded--unbounded .mdc-switch__ripple::after{top:var(--mdc-ripple-top,0);left:var(--mdc-ripple-left,0)}.mdc-switch.mdc-ripple-upgraded--foreground-activation .mdc-switch__ripple::after{-webkit-animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards;animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards}.mdc-switch.mdc-ripple-upgraded--foreground-deactivation .mdc-switch__ripple::after{-webkit-animation:mdc-ripple-fg-opacity-out 150ms;animation:mdc-ripple-fg-opacity-out 150ms;-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}.mdc-switch .mdc-switch__ripple::after,.mdc-switch .mdc-switch__ripple::before{top:calc(50% - 50%);left:calc(50% - 50%);width:100%;height:100%}.mdc-switch.mdc-ripple-upgraded .mdc-switch__ripple::after,.mdc-switch.mdc-ripple-upgraded .mdc-switch__ripple::before{top:var(--mdc-ripple-top,calc(50% - 50%));left:var(--mdc-ripple-left,calc(50% - 50%));width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.mdc-switch.mdc-ripple-upgraded .mdc-switch__ripple::after{width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.mdc-switch{width:36px;width:var(--mdc-switch-track-width,36px)}.mdc-switch.mdc-switch--selected:enabled .mdc-switch__handle::after{background:#3d5afe;background:var(--mdc-switch-selected-handle-color,#3d5afe)}.mdc-switch.mdc-switch--selected:enabled:hover:not(:focus):not(:active) .mdc-switch__handle::after{background:#3d477f;background:var(--mdc-switch-selected-hover-handle-color,#3d477f)}.mdc-switch.mdc-switch--selected:enabled:focus:not(:active) .mdc-switch__handle::after{background:#3d477f;background:var(--mdc-switch-selected-focus-handle-color,#3d477f)}.mdc-switch.mdc-switch--selected:enabled:active .mdc-switch__handle::after{background:#3d477f;background:var(--mdc-switch-selected-pressed-handle-color,#3d477f)}.mdc-switch.mdc-switch--selected:disabled .mdc-switch__handle::after{background:#3d5afe;background:var(--mdc-switch-disabled-selected-handle-color,#3d5afe)}.mdc-switch.mdc-switch--unselected:enabled .mdc-switch__handle::after{background:#9e9e9e;background:var(--mdc-switch-unselected-handle-color,#9e9e9e)}.mdc-switch.mdc-switch--unselected:enabled:hover:not(:focus):not(:active) .mdc-switch__handle::after{background:#212121;background:var(--mdc-switch-unselected-hover-handle-color,#212121)}.mdc-switch.mdc-switch--unselected:enabled:focus:not(:active) .mdc-switch__handle::after{background:#212121;background:var(--mdc-switch-unselected-focus-handle-color,#212121)}.mdc-switch.mdc-switch--unselected:enabled:active .mdc-switch__handle::after{background:#212121;background:var(--mdc-switch-unselected-pressed-handle-color,#212121)}.mdc-switch.mdc-switch--unselected:disabled .mdc-switch__handle::after{background:#424242;background:var(--mdc-switch-disabled-unselected-handle-color,#424242)}.mdc-switch .mdc-switch__handle::before{background:#fff;background:var(--mdc-switch-handle-surface-color,var(--mdc-theme-surface,#fff))}.mdc-switch:enabled .mdc-switch__shadow{--mdc-elevation-box-shadow-for-gss:0px 2px 1px -1px rgba(0, 0, 0, 0.2),0px 1px 1px 0px rgba(0, 0, 0, 0.14),0px 1px 3px 0px rgba(0, 0, 0, 0.12);-webkit-box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12);box-shadow:0 2px 1px -1px rgba(0,0,0,.2),0 1px 1px 0 rgba(0,0,0,.14),0 1px 3px 0 rgba(0,0,0,.12);-webkit-box-shadow:var(--mdc-switch-handle-elevation,var(--mdc-elevation-box-shadow-for-gss));box-shadow:var(--mdc-switch-handle-elevation,var(--mdc-elevation-box-shadow-for-gss))}.mdc-switch:disabled .mdc-switch__shadow{--mdc-elevation-box-shadow-for-gss:0px 0px 0px 0px rgba(0, 0, 0, 0.2),0px 0px 0px 0px rgba(0, 0, 0, 0.14),0px 0px 0px 0px rgba(0, 0, 0, 0.12);-webkit-box-shadow:0 0 0 0 rgba(0,0,0,.2),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12);box-shadow:0 0 0 0 rgba(0,0,0,.2),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12);-webkit-box-shadow:var(--mdc-switch-disabled-handle-elevation,var(--mdc-elevation-box-shadow-for-gss));box-shadow:var(--mdc-switch-disabled-handle-elevation,var(--mdc-elevation-box-shadow-for-gss))}.mdc-switch .mdc-switch__handle{height:20px;height:var(--mdc-switch-handle-height,20px)}.mdc-switch:disabled .mdc-switch__handle::after{opacity:.24;opacity:var(--mdc-switch-disabled-handle-opacity, .24)}.mdc-switch .mdc-switch__handle{border-radius:10px;border-radius:var(--mdc-switch-handle-shape,10px)}.mdc-switch .mdc-switch__handle{width:20px;width:var(--mdc-switch-handle-width,20px)}.mdc-switch .mdc-switch__handle-track{width:calc(100% - 20px);width:calc(100% - var(--mdc-switch-handle-width,20px))}.mdc-switch.mdc-switch--selected:enabled .mdc-switch__icon{fill:#fff;fill:var(--mdc-switch-selected-icon-color,var(--mdc-theme-on-primary,#fff))}.mdc-switch.mdc-switch--selected:disabled .mdc-switch__icon{fill:#fff;fill:var(--mdc-switch-disabled-selected-icon-color,var(--mdc-theme-on-primary,#fff))}.mdc-switch.mdc-switch--unselected:enabled .mdc-switch__icon{fill:#fff;fill:var(--mdc-switch-unselected-icon-color,var(--mdc-theme-on-primary,#fff))}.mdc-switch.mdc-switch--unselected:disabled .mdc-switch__icon{fill:#fff;fill:var(--mdc-switch-disabled-unselected-icon-color,var(--mdc-theme-on-primary,#fff))}.mdc-switch.mdc-switch--selected:disabled .mdc-switch__icons{opacity:.54;opacity:var(--mdc-switch-disabled-selected-icon-opacity, .54)}.mdc-switch.mdc-switch--unselected:disabled .mdc-switch__icons{opacity:.54;opacity:var(--mdc-switch-disabled-unselected-icon-opacity, .54)}.mdc-switch.mdc-switch--selected .mdc-switch__icon{width:18px;width:var(--mdc-switch-selected-icon-size,18px);height:18px;height:var(--mdc-switch-selected-icon-size,18px)}.mdc-switch.mdc-switch--unselected .mdc-switch__icon{width:18px;width:var(--mdc-switch-unselected-icon-size,18px);height:18px;height:var(--mdc-switch-unselected-icon-size,18px)}.mdc-switch.mdc-switch--selected:enabled:hover:not(:focus) .mdc-switch__ripple::after,.mdc-switch.mdc-switch--selected:enabled:hover:not(:focus) .mdc-switch__ripple::before{background-color:#3d5afe;background-color:var(--mdc-switch-selected-hover-state-layer-color,#3d5afe)}.mdc-switch.mdc-switch--selected:enabled:focus .mdc-switch__ripple::after,.mdc-switch.mdc-switch--selected:enabled:focus .mdc-switch__ripple::before{background-color:#3d5afe;background-color:var(--mdc-switch-selected-focus-state-layer-color,#3d5afe)}.mdc-switch.mdc-switch--selected:enabled:active .mdc-switch__ripple::after,.mdc-switch.mdc-switch--selected:enabled:active .mdc-switch__ripple::before{background-color:#3d5afe;background-color:var(--mdc-switch-selected-pressed-state-layer-color,#3d5afe)}.mdc-switch.mdc-switch--unselected:enabled:hover:not(:focus) .mdc-switch__ripple::after,.mdc-switch.mdc-switch--unselected:enabled:hover:not(:focus) .mdc-switch__ripple::before{background-color:#424242;background-color:var(--mdc-switch-unselected-hover-state-layer-color,#424242)}.mdc-switch.mdc-switch--unselected:enabled:focus .mdc-switch__ripple::after,.mdc-switch.mdc-switch--unselected:enabled:focus .mdc-switch__ripple::before{background-color:#424242;background-color:var(--mdc-switch-unselected-focus-state-layer-color,#424242)}.mdc-switch.mdc-switch--unselected:enabled:active .mdc-switch__ripple::after,.mdc-switch.mdc-switch--unselected:enabled:active .mdc-switch__ripple::before{background-color:#424242;background-color:var(--mdc-switch-unselected-pressed-state-layer-color,#424242)}.mdc-switch.mdc-switch--selected:enabled:hover:not(:focus).mdc-ripple-surface--hover .mdc-switch__ripple::before,.mdc-switch.mdc-switch--selected:enabled:hover:not(:focus):hover .mdc-switch__ripple::before{opacity:.04;opacity:var(--mdc-switch-selected-hover-state-layer-opacity, .04)}.mdc-switch.mdc-switch--selected:enabled:focus.mdc-ripple-upgraded--background-focused .mdc-switch__ripple::before,.mdc-switch.mdc-switch--selected:enabled:focus:not(.mdc-ripple-upgraded):focus .mdc-switch__ripple::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-switch-selected-focus-state-layer-opacity, .12)}.mdc-switch.mdc-switch--selected:enabled:active:not(.mdc-ripple-upgraded) .mdc-switch__ripple::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.mdc-switch.mdc-switch--selected:enabled:active:not(.mdc-ripple-upgraded):active .mdc-switch__ripple::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.1;opacity:var(--mdc-switch-selected-pressed-state-layer-opacity, .1)}.mdc-switch.mdc-switch--selected:enabled:active.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-switch-selected-pressed-state-layer-opacity, 0.1)}.mdc-switch.mdc-switch--unselected:enabled:hover:not(:focus).mdc-ripple-surface--hover .mdc-switch__ripple::before,.mdc-switch.mdc-switch--unselected:enabled:hover:not(:focus):hover .mdc-switch__ripple::before{opacity:.04;opacity:var(--mdc-switch-unselected-hover-state-layer-opacity, .04)}.mdc-switch.mdc-switch--unselected:enabled:focus.mdc-ripple-upgraded--background-focused .mdc-switch__ripple::before,.mdc-switch.mdc-switch--unselected:enabled:focus:not(.mdc-ripple-upgraded):focus .mdc-switch__ripple::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-switch-unselected-focus-state-layer-opacity, .12)}.mdc-switch.mdc-switch--unselected:enabled:active:not(.mdc-ripple-upgraded) .mdc-switch__ripple::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.mdc-switch.mdc-switch--unselected:enabled:active:not(.mdc-ripple-upgraded):active .mdc-switch__ripple::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.1;opacity:var(--mdc-switch-unselected-pressed-state-layer-opacity, .1)}.mdc-switch.mdc-switch--unselected:enabled:active.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-switch-unselected-pressed-state-layer-opacity, 0.1)}.mdc-switch .mdc-switch__ripple{height:48px;height:var(--mdc-switch-state-layer-size,48px);width:48px;width:var(--mdc-switch-state-layer-size,48px)}.mdc-switch .mdc-switch__track{height:14px;height:var(--mdc-switch-track-height,14px)}.mdc-switch:disabled .mdc-switch__track{opacity:.12;opacity:var(--mdc-switch-disabled-track-opacity, .12)}.mdc-switch:enabled .mdc-switch__track::after{background:#cfd6ff;background:var(--mdc-switch-selected-track-color,#cfd6ff)}.mdc-switch:enabled:hover:not(:focus):not(:active) .mdc-switch__track::after{background:#cfd6ff;background:var(--mdc-switch-selected-hover-track-color,#cfd6ff)}.mdc-switch:enabled:focus:not(:active) .mdc-switch__track::after{background:#cfd6ff;background:var(--mdc-switch-selected-focus-track-color,#cfd6ff)}.mdc-switch:enabled:active .mdc-switch__track::after{background:#cfd6ff;background:var(--mdc-switch-selected-pressed-track-color,#cfd6ff)}.mdc-switch:disabled .mdc-switch__track::after{background:#3d5afe;background:var(--mdc-switch-disabled-selected-track-color,#3d5afe)}.mdc-switch:enabled .mdc-switch__track::before{background:#e0e0e0;background:var(--mdc-switch-unselected-track-color,#e0e0e0)}.mdc-switch:enabled:hover:not(:focus):not(:active) .mdc-switch__track::before{background:#e0e0e0;background:var(--mdc-switch-unselected-hover-track-color,#e0e0e0)}.mdc-switch:enabled:focus:not(:active) .mdc-switch__track::before{background:#e0e0e0;background:var(--mdc-switch-unselected-focus-track-color,#e0e0e0)}.mdc-switch:enabled:active .mdc-switch__track::before{background:#e0e0e0;background:var(--mdc-switch-unselected-pressed-track-color,#e0e0e0)}.mdc-switch:disabled .mdc-switch__track::before{background:#424242;background:var(--mdc-switch-disabled-unselected-track-color,#424242)}.mdc-switch .mdc-switch__track{border-radius:7px;border-radius:var(--mdc-switch-track-shape,7px)}@media screen and (forced-colors:active),(-ms-high-contrast:active){.mdc-switch:disabled .mdc-switch__handle::after{opacity:1;opacity:var(--mdc-switch-disabled-handle-opacity, 1)}.mdc-switch.mdc-switch--selected:disabled .mdc-switch__icon{fill:GrayText;fill:var(--mdc-switch-disabled-selected-icon-color,GrayText)}.mdc-switch.mdc-switch--unselected:disabled .mdc-switch__icon{fill:GrayText;fill:var(--mdc-switch-disabled-unselected-icon-color,GrayText)}.mdc-switch.mdc-switch--selected:disabled .mdc-switch__icons{opacity:1;opacity:var(--mdc-switch-disabled-selected-icon-opacity, 1)}.mdc-switch.mdc-switch--unselected:disabled .mdc-switch__icons{opacity:1;opacity:var(--mdc-switch-disabled-unselected-icon-opacity, 1)}.mdc-switch:disabled .mdc-switch__track{opacity:1;opacity:var(--mdc-switch-disabled-track-opacity, 1)}}.forge-form-field{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-body2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:.875rem;font-size:var(--mdc-typography-body2-font-size, .875rem);line-height:1.25rem;line-height:var(--mdc-typography-body2-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-body2-font-weight,400);letter-spacing:.0178571429em;letter-spacing:var(--mdc-typography-body2-letter-spacing, .0178571429em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-body2-text-decoration,inherit);text-decoration:var(--mdc-typography-body2-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-body2-text-transform,inherit);color:rgba(0,0,0,.87);color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87));display:-webkit-inline-box;display:inline-flex;-webkit-box-align:center;align-items:center;vertical-align:middle}.forge-form-field>label{-webkit-box-ordinal-group:1;order:0;margin-right:auto;padding-left:4px}.forge-form-field forge-switch~label{padding-left:8px}.forge-form-field--align-end>label{-webkit-box-ordinal-group:0;order:-1;margin-left:auto;padding-right:4px}.forge-switch__container{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center}.forge-switch__container.forge-switch--label-position-start{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;flex-flow:row-reverse}.forge-switch__container.forge-switch--label-position-start .forge-switch__label{margin-left:auto;padding-right:8px}:host{display:inline-block}:host *{cursor:pointer}:host .forge-switch__label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:.75rem;font-size:var(--mdc-typography-caption-font-size, .75rem);line-height:1.25rem;line-height:var(--mdc-typography-caption-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-caption-font-weight,400);letter-spacing:.0333333333em;letter-spacing:var(--mdc-typography-caption-letter-spacing, .0333333333em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-caption-text-transform,inherit);padding-left:8px}:host([hidden]){display:none}:host([dense]) .mdc-switch__ripple{height:28px;width:28px}:host([disabled]) *{cursor:not-allowed}:host([disabled]) .forge-switch__label{color:rgba(0,0,0,.38);color:var(--forge-theme-label-disabled-on-background,rgba(0,0,0,.38))}';
14
- import { createUserInteractionListener } from '../core/utils';
15
- class ForgeMDCSwitch extends MDCSwitch {
16
- initialize() {
17
- // Do not call super.initialize()
18
- // We defer instantiation of the ripple until first user interaction
19
- this._deferRippleInitialization();
20
- }
21
- destroy() {
22
- var _a;
23
- // We are not calling super.destroy() because it expects `ripple` to be set when it might not be yet
24
- // We instead just replicate all existing functionality, but allow for `ripple` to be undefined
25
- this.foundation.destroy();
26
- (_a = this.ripple) === null || _a === void 0 ? void 0 : _a.destroy();
27
- this.root.removeEventListener('click', this.foundation.handleClick);
28
- if (typeof this._destroyUserInteractionListener === 'function') {
29
- this._destroyUserInteractionListener();
30
- this._destroyUserInteractionListener = undefined;
31
- }
32
- }
33
- async _deferRippleInitialization() {
34
- const { userInteraction, destroy } = createUserInteractionListener(this.root);
35
- this._destroyUserInteractionListener = destroy;
36
- const { type } = await userInteraction;
37
- this._destroyUserInteractionListener = undefined;
38
- this.ripple = new MDCRipple(this.root, this.createRippleFoundation());
39
- if (type === 'focusin') {
40
- // eslint-disable-next-line @typescript-eslint/dot-notation
41
- this.ripple['foundation'].handleFocus();
42
- }
43
- }
44
- }
13
+ import { SwitchFoundation } from './switch-foundation';
14
+ const template = '<template><div class=\"forge-switch\" part=\"switch\"><div class=\"container\" part=\"input-container\"><input id=\"input\" class=\"input\" type=\"checkbox\" role=\"switch\" part=\"input\"><div class=\"track\" part=\"track\"></div><div class=\"handle\" part=\"handle\"><div id=\"icon-off\" class=\"icon icon__off\" part=\"icon-off\"><slot name=\"icon-off\"><svg aria-hidden=\"true\" viewBox=\"0 0 24 24\"><path d=\"M20 13H4v-2h16v2z\" part=\"icon-off-path\"/></svg></slot></div><div id=\"icon-on\" class=\"icon icon__on\" part=\"icon-on\"><slot name=\"icon-on\"><svg aria-hidden=\"true\" viewBox=\"0 0 24 24\"><path d=\"M19.69,5.23L8.96,15.96l-4.23-4.23L2.96,13.5l6,6L21.46,7L19.69,5.23z\" part=\"icon-on-path\"/></svg></slot></div><forge-state-layer target=\"input\" part=\"state-layer\"></forge-state-layer></div><forge-focus-indicator target=\"input\" part=\"focus-indicator\"></forge-focus-indicator></div><label id=\"label\" for=\"input\" class=\"label\" part=\"label\"><slot></slot></label></div></template>';
15
+ const styles = ':host{display:inline-block;cursor:pointer}:host([hidden]){display:none}:host([disabled]){opacity:var(--_disabled-opacity);cursor:not-allowed}:host([disabled]) .forge-switch{pointer-events:none}:host([disabled]) .handle::before{-webkit-box-shadow:none;box-shadow:none}.forge-switch{--_handle-size:var(--forge-switch-handle-size, 20px);--_handle-scale:var(--forge-switch-handle-scale, 1);--_handle-elevation:var(--forge-switch-handle-elevation, 0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12));--_track-border-width:var(--forge-switch-track-border-width, 0);--_track-border-color:var(--forge-switch-track-border-color, transparent);--_icon-color:var(--forge-switch-icon-color, var(--forge-theme-on-tertiary, #ffffff));--_icon-scale:var(--forge-switch-icon-scale, 1);--_state-layer-size:var(--forge-switch-state-layer-size, 40px);--_state-layer-dense-size:var(--forge-switch-handle-dense-size, 28px);--_handle-on-color:var(--forge-switch-handle-on-color, var(--forge-theme-tertiary, #3d5afe));--_handle-off-color:var(--forge-switch-handle-off-color, var(--forge-theme-surface-container-high, #9e9e9e));--_handle-width:var(--forge-switch-handle-width, var(--_handle-size));--_handle-height:var(--forge-switch-handle-height, var(--_handle-size));--_handle-on-scale:var(--forge-switch-handle-on-scale, var(--_handle-scale));--_handle-off-scale:var(--forge-switch-handle-off-scale, var(--_handle-scale));--_handle-shape:var(--forge-switch-handle-shape, var(--forge-shape-round, 50%));--_handle-on-elevation:var(--forge-switch-handle-on-elevation, var(--_handle-elevation));--_handle-off-elevation:var(--forge-switch-handle-off-elevation, var(--_handle-elevation));--_track-on-color:var(--forge-switch-track-on-color, var(--forge-theme-tertiary-container, #d0d7ff));--_track-off-color:var(--forge-switch-track-off-color, var(--forge-theme-surface-container, #e0e0e0));--_track-width:var(--forge-switch-track-width, 36px);--_track-height:var(--forge-switch-track-height, 14px);--_track-shape:var(--forge-switch-track-shape, var(--forge-shape-full, 9999px));--_track-on-border-width:var(--forge-switch-track-on-border-width, var(--_track-border-width));--_track-off-border-width:var(--forge-switch-track-off-border-width, var(--_track-border-width));--_track-on-border-color:var(--forge-switch-track-on-border-color, var(--_track-border-color));--_track-off-border-color:var(--forge-switch-track-off-border-color, var(--_track-border-color));--_icon-on-color:var(--forge-switch-icon-on-color, var(--_icon-color));--_icon-off-color:var(--forge-switch-icon-off-color, var(--_icon-color));--_icon-on-size:var(--forge-switch-icon-on-size, var(--_handle-size));--_icon-off-size:var(--forge-switch-icon-off-size, var(--_handle-size));--_icon-on-scale:var(--forge-switch-icon-on-scale, var(--_icon-scale));--_icon-off-scale:var(--forge-switch-icon-off-scale, var(--_icon-scale));--_gap:var(--forge-switch-gap, 0);--_justify:var(--forge-switch-justify, space-between);--_direction:var(--forge-switch-direction, initial);--_state-layer-width:var(--forge-switch-state-layer-width, var(--_state-layer-size));--_state-layer-height:var(--forge-switch-state-layer-height, var(--_state-layer-size));--_state-layer-on-color:var(--forge-switch-state-layer-on-color, var(--_handle-on-color));--_state-layer-off-color:var(--forge-state-layer-state-layer-off-color, var(--_color));--_state-layer-dense-width:var(--forge-switch-state-layer-dense-width, var(--_state-layer-dense-size));--_state-layer-dense-height:var(--forge-switch-state-layer-dense-height, var(--_state-layer-dense-size));--_disabled-opacity:var(--forge-switch-disabled-opacity, 0.38);--_handle-active-on-color:var(--forge-switch-handle-active-on-color, var(--_handle-on-color));--_handle-active-off-color:var(--forge-switch-handle-active-off-color, var(--_handle-off-color));--_handle-active-scale:var(--forge-switch-handle-active-scale, 1.2);--_handle-active-on-scale:var(--forge-switch-handle-active-on-scale, var(--_handle-active-scale));--_handle-active-off-scale:var(--forge-switch-handle-active-off-scale, var(--_handle-active-scale));--_handle-active-elevation:var(--forge-switch-handle-active-elevation, var(--_handle-elevation));--_handle-active-on-elevation:var(--forge-switch-handle-active-on-elevation, var(--_handle-active-elevation));--_handle-active-off-elevation:var(--forge-switch-handle-active-on-elevation, var(--_handle-active-elevation));--_track-active-on-color:var(--forge-switch-track-active-on-color, var(--_track-on-color));--_track-active-off-color:var(--forge-switch-track-active-off-color, var(--_track-off-color));--_track-active-on-border-width:var(--forge-switch-track-active-on-border-width, var(--_track-on-border-width));--_track-active-off-border-width:var(--forge-switch-track-active-off-border-width, var(--_track-off-border-width));--_track-active-on-border-color:var(--forge-switch-track-active-on-border-color, var(--_track-on-border-color));--_track-active-off-border-color:var(--forge-switch-track-active-off-border-color, var(--_track-off-border-color));--_icon-active-on-color:var(--forge-switch-icon-active-on-color, var(--_icon-on-color));--_icon-active-off-color:var(--forge-switch-icon-active-off-color, var(--_icon-off-color));--_icon-active-scale: ;--_icon-active-on-scale:var(--forge-switch-icon-active-on-scale, var(--_icon-on-scale));--_icon-active-off-scale:var(--forge-switch-icon-active-off-scale, var(--_icon-off-scale));--_animation-duration:var(--forge-switch-animation-duration, var(--forge-animation-duration-short2, 100ms));--_animation-timing:var(--forge-switch-animation-timing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)));--_active-animation-timing:var(--forge-switch-active-animation-timing, var(--forge-animation-easing-linear, cubic-bezier(0, 0, 1, 1)));position:relative;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:var(--_direction);flex-shrink:0;-webkit-box-align:center;align-items:center;-webkit-box-pack:var(--_justify);justify-content:var(--_justify);gap:var(--_gap);display:-webkit-box;display:flex;cursor:unset;--_current-state-layer-width:var(--_state-layer-width);--_current-state-layer-height:var(--_state-layer-height)}.forge-switch .container{position:relative;-webkit-box-align:center;align-items:center;display:-webkit-box;display:flex;block-size:max(var(--_handle-height),var(--_track-height),var(--_current-state-layer-height))}.forge-switch .input{position:absolute;z-index:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:0;margin:0;inline-size:100%;block-size:100%;cursor:unset}.forge-switch .input:checked~.track{border-width:var(--_track-on-border-width);border-color:var(--_track-on-border-color);background-color:var(--_track-on-color)}.forge-switch .input:checked~.handle{translate:calc(var(--_track-width) - calc(var(--_track-height)/ 2) * 2)}.forge-switch .input:checked~.handle::before{scale:var(--_handle-on-scale);-webkit-box-shadow:var(--_handle-on-elevation);box-shadow:var(--_handle-on-elevation);background-color:var(--_handle-on-color)}.forge-switch .input:checked~.handle .icon__on{opacity:1;scale:var(--_icon-on-scale)}.forge-switch .input:checked~.handle .icon__off{opacity:0;scale:0.4}.forge-switch .input:checked~.handle forge-state-layer{--forge-state-layer-color:var(--_state-layer-on-color)}.forge-switch .input:active~.track{border-width:var(--_track-active-off-border-width);border-color:var(--_track-active-off-border-color);background-color:var(--_track-active-off-color)}.forge-switch .input:active~.handle::before{scale:var(--_handle-active-off-scale);-webkit-box-shadow:var(--_handle-active-off-elevation);box-shadow:var(--_handle-active-off-elevation);background-color:var(--_handle-active-off-color)}.forge-switch .input:active~.handle .icon{scale:var(--_icon-active-off-scale);color:var(--_icon-active-off-color);fill:var(--_icon-active-off-color)}.forge-switch .input:active:checked~.track{border-width:var(--_track-active-on-border-width);border-color:var(--_track-active-on-border-color);background-color:var(--_track-active-on-color)}.forge-switch .input:active:checked~.handle::before{scale:var(--_handle-active-on-scale);-webkit-box-shadow:var(--_handle-active-on-elevation);box-shadow:var(--_handle-active-on-elevation);background-color:var(--_handle-active-on-color)}.forge-switch .input:active:checked~.handle .icon{scale:var(--_icon-active-on-scale);color:var(--_icon-active-on-color);fill:var(--_icon-active-on-color)}.forge-switch .track{-webkit-transition-property:background-color,border-color,border-width;transition-property:background-color,border-color,border-width;-webkit-transition-duration:var(--_animation-duration);transition-duration:var(--_animation-duration);-webkit-transition-timing-function:var(--_animation-timing);transition-timing-function:var(--_animation-timing);-webkit-box-sizing:border-box;box-sizing:border-box;margin-inline:calc(max(var(--_handle-width),var(--_current-state-layer-width))/ 2 - calc(var(--_track-height)/ 2));border-width:var(--_track-off-border-width);border-color:var(--_track-off-border-color);border-style:solid;border-radius:var(--_track-shape);inline-size:var(--_track-width);block-size:var(--_track-height);background-color:var(--_track-off-color)}.forge-switch .handle{position:absolute;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center;display:-webkit-box;display:flex;-webkit-transition-property:translate;transition-property:translate;-webkit-transition-duration:var(--_animation-duration);transition-duration:var(--_animation-duration);-webkit-transition-timing-function:var(--_animation-timing);transition-timing-function:var(--_animation-timing);border-radius:var(--_handle-shape);inline-size:var(--_current-state-layer-width);block-size:var(--_current-state-layer-height)}.forge-switch .handle::before{content:\"\";position:relative;display:block;scale:var(--_handle-off-scale);-webkit-transition:background-color var(--_animation-duration) var(--_animation-timing),scale var(--_animation-duration) var(--_active-animation-timing),-webkit-box-shadow var(--_animation-duration) var(--_animation-timing);transition:background-color var(--_animation-duration) var(--_animation-timing),scale var(--_animation-duration) var(--_active-animation-timing),-webkit-box-shadow var(--_animation-duration) var(--_animation-timing);transition:background-color var(--_animation-duration) var(--_animation-timing),box-shadow var(--_animation-duration) var(--_animation-timing),scale var(--_animation-duration) var(--_active-animation-timing);transition:background-color var(--_animation-duration) var(--_animation-timing),box-shadow var(--_animation-duration) var(--_animation-timing),scale var(--_animation-duration) var(--_active-animation-timing),-webkit-box-shadow var(--_animation-duration) var(--_animation-timing);-webkit-box-shadow:var(--_handle-off-elevation);box-shadow:var(--_handle-off-elevation);border-radius:var(--_handle-shape);inline-size:var(--_handle-width);block-size:var(--_handle-height);background-color:var(--_handle-off-color)}.forge-switch .icon{--forge-icon-font-size:var(--_icon-off-size);position:absolute;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;display:-webkit-box;display:flex;-webkit-transition-property:opacity,scale;transition-property:opacity,scale;-webkit-transition-duration:var(--_animation-duration);transition-duration:var(--_animation-duration);-webkit-transition-timing-function:var(--_animation-timing);transition-timing-function:var(--_animation-timing);inline-size:var(--_icon-off-size);block-size:var(--_icon-off-size);color:var(--_icon-off-color);fill:var(--_icon-off-color);font-size:var(--_icon-off-size)}.forge-switch .icon__on{--forge-icon-font-size:var(--_icon-on-size);inline-size:var(--_icon-on-size);block-size:var(--_icon-on-size);color:var(--_icon-on-color);fill:var(--_icon-on-color);font-size:var(--_icon-on-size);opacity:0;scale:0.4}.forge-switch .icon__off{opacity:1;scale:var(--_icon-off-scale)}.forge-switch .label{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-label-font-family, var(--forge-typography-font-family, \"Roboto\", sans-serif));font-size:var(--forge-typography-label-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-label-font-size-scale, .75)));font-weight:var(--forge-typography-label-font-weight,400);line-height:var(--forge-typography-label-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-label-line-height-scale, 1.25)));letter-spacing:var(--forge-typography-label-letter-spacing, .0357142857em);text-transform:var(--forge-typography-label-text-transform,inherit);-webkit-text-decoration:var(--forge-typography-label-text-decoration,inherit);text-decoration:var(--forge-typography-label-text-decoration,inherit)}.forge-switch .label:empty{display:none}.forge-switch .hidden{display:none}:host([dense]) .forge-switch{--_current-state-layer-width:var(--_state-layer-dense-width);--_current-state-layer-height:var(--_state-layer-dense-height)}@media (prefers-reduced-motion){.switch{--_animation-duration:0s}}forge-state-layer{--forge-state-layer-color:var(--_state-layer-off-color)}forge-focus-indicator{--forge-focus-indicator-shape:var(--_track-shape);--forge-focus-indicator-outward-offset:0px}';
45
16
  /**
46
- * The custom element class behind the `<forge-switch>` element.
47
- *
48
17
  * @tag forge-switch
18
+ *
19
+ * @summary Switches toggle the state of a single setting on or off.
20
+ *
21
+ * @description
22
+ * Use switches to:
23
+ * - Toggle a single item on or off, on mobile and tablet
24
+ * - Immediately activate or deactivate something
25
+ *
26
+ * @property {boolean} on - Whether the switch is on the on or off state.
27
+ * @property {boolean} selected - Deprecated. Alias for `on`.
28
+ * @property {boolean} disabled - Controls if the switch is disabled.
29
+ * @property {boolean} required = Controls if the switch is required.
30
+ * @property {boolean} dense - The density state.
31
+ * @property {SwitchIconVisibility} icon - Controls the presence of the off and on icons.
32
+ * @property {SwitchLabelPosition} labelPosition - Whether the label appears before or after the switch.
33
+ *
34
+ * @attribute {string} on - Controls whether the switch is in the on or off state.
35
+ * @attribute {string} selected - Alias for `on`.
36
+ * @attribute {string} disabled - Controls if the switch is disabled.
37
+ * @attribute {string} required - Controls if the switch is required.
38
+ * @attribute {string} dense - Sets the density state.
39
+ * @attribute {string} icon - Controls the presence of the off and on icons.
40
+ * @attribute {string} label-position - Sets whether the label appears before or after the switch.
41
+ *
42
+ * @method {(force?: boolean) => void} toggle - Toggles whether the switch is selected or forces a selected state.
43
+ *
44
+ * @event {CustomEvent} forge-switch-change - Dispatches when the switch's value changes.
45
+ *
46
+ * @cssproperty --forge-theme-primary - The primary color of the switch.
47
+ * @cssproperty --forge-theme-on-primary - The color of elements placed on top of the primary color (the handle icons for example).
48
+ * @cssproperty --forge-switch-handle-on-color - The color of the handle in the switch's on state.
49
+ * @cssproperty --forge-switch-handle-off-color - The color of the handle in the switch's off state.
50
+ * @cssproperty --forge-switch-handle-active-on-color - The color of the handle when the switch is active (pressed) in its on state.
51
+ * @cssproperty --forge-switch-handle-active-off-color - The color of the handle when the switch is active (pressed) in its off state.
52
+ * @cssproperty --forge-switch-handle-size - The inline and block size of the handle.
53
+ * @cssproperty --forge-switch-handle-width - The inline size of the handle.
54
+ * @cssproperty --forge-switch-handle-height - The block size of the handle.
55
+ * @cssproperty --forge-switch-handle-scale - The scale transformation applied to the handle.
56
+ * @cssproperty --forge-switch-handle-on-scale - The scale transformation applied to the handle in the switch's on state.
57
+ * @cssproperty --forge-switch-handle-off-scale - The scale transformation applied to the handle in the switch's off state.
58
+ * @cssproperty --forge-switch-handle-active-scale - The scale transformation applied to the handle when the switch is active (pressed).
59
+ * @cssproperty --forge-switch-handle-active-on-scale - The scale transformation applied to the handle when the switch is active (pressed) in its on state.
60
+ * @cssproperty --forge-switch-handle-active-off-scale - The scale transformation applied to the handle when the switch is active (pressed) in its off state.
61
+ * @cssproperty --forge-switch-handle-shape - The shape of the handle.
62
+ * @cssproperty --forge-switch-handle-elevation - The handle's shadow.
63
+ * @cssproperty --forge-switch-handle-on-elevation - The handle's shadow in the switch's on state.
64
+ * @cssproperty --forge-switch-handle-off-elevation - The handle's shadow in the switch's off state.
65
+ * @cssproperty --forge-switch-handle-active-elevation - The handle's shadow when the switch is active (pressed).
66
+ * @cssproperty --forge-switch-handle-active-on-elevation - The handle's shadow when the switch is active (pressed) in its on state.
67
+ * @cssproperty --forge-switch-handle-active-off-elevation - The handle's shadow when the switch is active (pressed) in its off state.
68
+ * @cssproperty --forge-switch-track-on-color - The color of the track in the switch's on state.
69
+ * @cssproperty --forge-switch-track-off-color - The color fo the track in the switch's off state.
70
+ * @cssproperty --forge-switch-track-active-on-color - The color of the track when the switch is active (pressed) in its on state.
71
+ * @cssproperty --forge-switch-track-active-off-color - The color fo the track when the switch is active (pressed) in its off state.
72
+ * @cssproperty --forge-switch-track-width - The inline size of the track.
73
+ * @cssproperty --forge-switch-track-height - The block size of the track.
74
+ * @cssproperty --forge-switch-track-shape - The shape of the track.
75
+ * @cssproperty --forge-switch-track-border-width - The width of the track border.
76
+ * @cssproperty --forge-switch-track-on-border-width - The width of the track border in the switch's on state.
77
+ * @cssproperty --forge-switch-track-off-border-width - The width of the track border in the switch's off state.
78
+ * @cssproperty --forge-switch-track-active-on-border-width - The width of the track border when the switch is active (pressed) in its on state.
79
+ * @cssproperty --forge-switch-track-active-off-border-width - The width of the track border when the switch is active (pressed) in its off state.
80
+ * @cssproperty --forge-switch-track-border-color - The color of the track border.
81
+ * @cssproperty --forge-switch-track-on-border-color - The color of the track border in the switch's on state.
82
+ * @cssproperty --forge-switch-track-off-border-color - The color of the track border in the switch's off state.
83
+ * @cssproperty --forge-switch-track-active-on-border-color - The color of the track border when the switch is active (pressed) in its on state.
84
+ * @cssproperty --forge-switch-track-active-off-border-color - The color of the track border when the switch is active (pressed) in its off state.
85
+ * @cssproperty --forge-switch-icon-color - The color of the handle icons.
86
+ * @cssproperty --forge-switch-icon-on-color - The color of the handle icon in the switch's on state.
87
+ * @cssproperty --forge-switch-icon-off-color - The color of the handle icon in the switch's off state.
88
+ * @cssproperty --forge-switch-icon-active-on-color - The color of the handle icon when the switch is active (pressed) in its on state.
89
+ * @cssproperty --forge-switch-icon-active-off-color - The color of the handle icon when the switch is active (pressed) in its off state.
90
+ * @cssproperty --forge-switch-icon-on-size - The size of the handle icon in the switch's on state.
91
+ * @cssproperty --forge-switch-icon-off-size - The size of the handle icon in the switch's off state.
92
+ * @cssproperty --forge-switch-icon-scale - The scale transformation applied to the handle icons.
93
+ * @cssproperty --forge-switch-icon-active-scale - The scale transformation applied to the handle icons when the switch is active (pressed).
94
+ * @cssproperty --forge-switch-icon-on-scale - The scale transformation applied to the handle icons in the switch's on state.
95
+ * @cssproperty --forge-switch-icon-off-scale - The scale transformation applied to the handle icons in the switch's off state.
96
+ * @cssproperty --forge-switch-icon-active-on-scale - The scale transformation applied to the handle icons when the switch is active (pressed) in its on state.
97
+ * @cssproperty --forge-switch-icon-active-off-scale - The scale transformation applied to the handle icons when the switch is active (pressed) in its off state.
98
+ * @cssproperty --forge-switch-gap - The space between the switch and label.
99
+ * @cssproperty --forge-switch-justify - How the switch and label are distributed along their main axis.
100
+ * @cssproperty --forge-switch-direction - Whether the switch and label are arranged along the inline or block axis.
101
+ * @cssproperty --forge-switch-state-layer-size - The inline and block size of the handle's state layer.
102
+ * @cssproperty --forge-switch-state-layer-width - The inline size of the handle's state layer.
103
+ * @cssproperty --forge-switch-state-layer-height - The block size of the handle's state layer.
104
+ * @cssproperty --forge-switch-state-layer-on-color - The color of the handle's state layer when the switch is in its on state.
105
+ * @cssproperty --forge-switch-state-layer-off-color - The color of the handle's state layer when the switch is in its off state.
106
+ * @cssproperty --forge-switch-state-layer-dense-size - The inline and block size of the handle's state layer when the dense switch is used.
107
+ * @cssproperty --forge-switch-state-layer-dense-width - The inline size of the handle's state layer when the dense switch is used.
108
+ * @cssproperty --forge-switch-state-layer-dense-height - The block size of the handle's state layer when the dense switch is used.
109
+ * @cssproperty --forge-switch-disabled-opacity - The opacity of the switch when disabled.
110
+ * @cssproperty --forge-switch-animation-duration - The duration of animations.
111
+ * @cssproperty --forge-switch-animation-timing - The timing function used in most animations.
112
+ * @cssproperty --forge-switch-active-animation-timing - The timing function used in active state animations.
113
+ *
114
+ * @csspart switch - Styles the switch container element.
115
+ * @csspart input-container - Styles the wrapper element of the input, track and handle.
116
+ * @csspart input - Styles the input element.
117
+ * @csspart track - Styles the track element.
118
+ * @csspart handle - Styles the handle element.
119
+ * @csspart icon-on - Styles the on icon element.
120
+ * @csspart icon-off - Styles the off icon element.
121
+ * @csspart icon-on-path - Styles the default on icon path.
122
+ * @csspart icon-off-path - Styles the default off icon path.
123
+ * @csspart label - Styles the label element.
124
+ * @csspart state-layer - Styles the state layer element.
125
+ * @csspart focus-indicator - Styles the focus indicator element.
49
126
  */
50
- let SwitchComponent = class SwitchComponent extends BaseComponent {
127
+ let SwitchComponent = class SwitchComponent extends BaseFormComponent {
51
128
  static get observedAttributes() {
52
129
  return [
53
- SWITCH_CONSTANTS.attributes.DENSE,
54
- SWITCH_CONSTANTS.attributes.DISABLED,
130
+ SWITCH_CONSTANTS.attributes.ON,
55
131
  SWITCH_CONSTANTS.attributes.SELECTED,
56
- SWITCH_CONSTANTS.attributes.LABEL_POSITION,
57
- SWITCH_CONSTANTS.attributes.BUTTON_ARIA_LABEL
132
+ SWITCH_CONSTANTS.attributes.DISABLED,
133
+ SWITCH_CONSTANTS.attributes.REQUIRED,
134
+ SWITCH_CONSTANTS.attributes.DENSE,
135
+ SWITCH_CONSTANTS.attributes.ICON,
136
+ SWITCH_CONSTANTS.attributes.LABEL_POSITION
58
137
  ];
59
138
  }
139
+ get form() {
140
+ return this.internals.form;
141
+ }
142
+ get labels() {
143
+ return this.internals.labels;
144
+ }
145
+ get name() {
146
+ var _a;
147
+ return (_a = this.getAttribute('name')) !== null && _a !== void 0 ? _a : '';
148
+ }
149
+ set name(value) {
150
+ toggleAttribute(this, !!value, 'name', value !== null && value !== void 0 ? value : '');
151
+ }
152
+ get validity() {
153
+ this._foundation.syncValidity(this._hasCustomValidityError);
154
+ return this.internals.validity;
155
+ }
156
+ get validationMessage() {
157
+ this._foundation.syncValidity(this._hasCustomValidityError);
158
+ return this.internals.validationMessage;
159
+ }
160
+ get willValidate() {
161
+ return this.internals.willValidate;
162
+ }
60
163
  constructor() {
61
164
  super();
62
- this._dense = false;
63
- this._disabled = false;
64
- this._selected = false;
65
- this._labelPosition = 'end';
66
- attachShadowTemplate(this, template, styles);
67
- this._initialize();
68
- }
69
- _initialize() {
70
- this._buttonElement = getShadowElement(this, SWITCH_CONSTANTS.selectors.BUTTON);
71
- this._containerElement = getShadowElement(this, SWITCH_CONSTANTS.selectors.CONTAINER);
72
- this._clickListener = evt => this._onClick(evt);
165
+ // Needed for Safari, see https://bugs.webkit.org/show_bug.cgi?id=261432
166
+ // Replace with this.internals.validity.customError when resolved.
167
+ this._hasCustomValidityError = false;
168
+ attachShadowTemplate(this, template, styles, true);
169
+ this.internals = this.attachInternals();
170
+ this._foundation = new SwitchFoundation(new SwitchAdapter(this));
73
171
  }
74
172
  connectedCallback() {
75
- // Add our click listener before initializing MDCSwitch to ensure we receive the event **first**
76
- this._buttonElement.addEventListener('click', this._clickListener);
77
- this._mdcSwitch = new ForgeMDCSwitch(this._buttonElement);
78
- this._applyInitialState();
79
- }
80
- disconnectedCallback() {
81
- var _a;
82
- (_a = this._mdcSwitch) === null || _a === void 0 ? void 0 : _a.destroy();
173
+ this._foundation.initialize();
83
174
  }
84
175
  attributeChangedCallback(name, oldValue, newValue) {
85
176
  switch (name) {
86
- case SWITCH_CONSTANTS.attributes.DENSE:
87
- this.dense = coerceBoolean(newValue);
177
+ case SWITCH_CONSTANTS.attributes.ON:
178
+ this.on = coerceBoolean(newValue);
179
+ break;
180
+ case SWITCH_CONSTANTS.attributes.SELECTED:
181
+ this.selected = coerceBoolean(newValue);
88
182
  break;
89
183
  case SWITCH_CONSTANTS.attributes.DISABLED:
90
184
  this.disabled = coerceBoolean(newValue);
91
185
  break;
92
- case SWITCH_CONSTANTS.attributes.SELECTED:
93
- this.selected = coerceBoolean(newValue);
186
+ case SWITCH_CONSTANTS.attributes.REQUIRED:
187
+ this.required = coerceBoolean(newValue);
188
+ break;
189
+ case SWITCH_CONSTANTS.attributes.DENSE:
190
+ this.dense = coerceBoolean(newValue);
191
+ break;
192
+ case SWITCH_CONSTANTS.attributes.ICON:
193
+ this.icon = newValue;
94
194
  break;
95
195
  case SWITCH_CONSTANTS.attributes.LABEL_POSITION:
96
196
  this.labelPosition = newValue;
97
197
  break;
98
- case SWITCH_CONSTANTS.attributes.BUTTON_ARIA_LABEL:
99
- this._applyButtonLabel(newValue);
100
- break;
101
198
  }
102
199
  }
103
- _applyInitialState() {
104
- var _a;
105
- if (this._mdcSwitch) {
106
- this._mdcSwitch.disabled = this._disabled;
107
- this._mdcSwitch.selected = this._selected;
200
+ setFormValue(value, state) {
201
+ this.internals.setFormValue(value, state);
202
+ if (isString(value)) {
203
+ this.on = coerceBoolean(value);
108
204
  }
109
- this._applyDense();
110
- this._applyLabelPosition();
111
- this._applyButtonLabel((_a = this.getAttribute(SWITCH_CONSTANTS.attributes.BUTTON_ARIA_LABEL)) !== null && _a !== void 0 ? _a : '');
112
- }
113
- _onClick(evt) {
114
- var _a;
115
- if ((_a = this._mdcSwitch) === null || _a === void 0 ? void 0 : _a.disabled) {
116
- return;
205
+ else if (value === null || value === void 0 ? void 0 : value[this.name]) {
206
+ this.on = coerceBoolean(value[this.name]);
117
207
  }
118
- // Prevents MDCSwitch from receiving the click event in the targeting phase.
119
- // We will handle updating the selected state of MDCSwitch based on the result of our own event.
120
- evt.stopImmediatePropagation();
121
- const newValue = !this._selected;
122
- const isCancelled = !emitEvent(this, SWITCH_CONSTANTS.events.SELECT, newValue, true, true);
123
- if (!isCancelled) {
124
- this._applySelected(newValue);
208
+ else {
209
+ this.on = false;
125
210
  }
126
211
  }
127
- _applySelected(value) {
128
- this._selected = value;
129
- if (this._mdcSwitch) {
130
- this._mdcSwitch.selected = this._selected;
131
- }
212
+ checkValidity() {
213
+ this._foundation.syncValidity(this._hasCustomValidityError);
214
+ return this.internals.checkValidity();
132
215
  }
133
- _applyDense() {
134
- var _a, _b;
135
- toggleAttribute(this, this._dense, SWITCH_CONSTANTS.attributes.DENSE);
136
- (_b = (_a = this._mdcSwitch) === null || _a === void 0 ? void 0 : _a.ripple) === null || _b === void 0 ? void 0 : _b.layout();
216
+ reportValidity() {
217
+ this._foundation.syncValidity(this._hasCustomValidityError);
218
+ return this.internals.reportValidity();
137
219
  }
138
- _applyLabelPosition() {
139
- toggleClass(this._containerElement, this._labelPosition === 'start', SWITCH_CONSTANTS.classes.LABEL_START);
220
+ setCustomValidity(error) {
221
+ this._hasCustomValidityError = !!error;
222
+ this._foundation.setValidity({ customError: !!error }, error);
140
223
  }
141
- _applyButtonLabel(value) {
142
- if (!this._buttonElement) {
143
- return;
144
- }
145
- toggleAttribute(this._buttonElement, !!value, 'aria-label', value);
224
+ formResetCallback() {
225
+ this.on = false;
146
226
  }
147
- get dense() {
148
- return this._dense;
227
+ formStateRestoreCallback(state) {
228
+ this.on = coerceBoolean(state);
149
229
  }
150
- set dense(value) {
151
- if (this._dense !== value) {
152
- this._dense = value;
153
- this._applyDense();
154
- }
230
+ formDisabledCallback(isDisabled) {
231
+ this.disabled = isDisabled;
155
232
  }
156
- get disabled() {
157
- return this._disabled;
158
- }
159
- set disabled(value) {
160
- if (this._disabled !== value) {
161
- this._disabled = value;
162
- if (this._mdcSwitch) {
163
- this._mdcSwitch.disabled = this._disabled;
164
- }
165
- toggleAttribute(this, this._disabled, SWITCH_CONSTANTS.attributes.DISABLED);
166
- }
167
- }
168
- get selected() {
169
- return this._selected;
170
- }
171
- set selected(value) {
172
- if (this._selected !== value) {
173
- this._applySelected(value);
174
- toggleAttribute(this, this._selected, SWITCH_CONSTANTS.attributes.SELECTED);
233
+ /**
234
+ * Toggles the switch on or off.
235
+ * @param force Whether to set the switch on or off.
236
+ */
237
+ toggle(force) {
238
+ if (isDefined(force)) {
239
+ this._foundation.on = force;
175
240
  }
176
- }
177
- get labelPosition() {
178
- return this._labelPosition;
179
- }
180
- set labelPosition(value) {
181
- if (this._labelPosition !== value) {
182
- this._labelPosition = value;
183
- this._applyLabelPosition();
184
- this.setAttribute(SWITCH_CONSTANTS.attributes.LABEL_POSITION, this._labelPosition);
241
+ else {
242
+ this._foundation.on = !this._foundation.on;
185
243
  }
186
244
  }
187
245
  };
246
+ SwitchComponent.formAssociated = true;
247
+ __decorate([
248
+ FoundationProperty()
249
+ ], SwitchComponent.prototype, "on", void 0);
250
+ __decorate([
251
+ FoundationProperty({ name: 'on' })
252
+ ], SwitchComponent.prototype, "selected", void 0);
253
+ __decorate([
254
+ FoundationProperty()
255
+ ], SwitchComponent.prototype, "dense", void 0);
256
+ __decorate([
257
+ FoundationProperty()
258
+ ], SwitchComponent.prototype, "disabled", void 0);
259
+ __decorate([
260
+ FoundationProperty()
261
+ ], SwitchComponent.prototype, "required", void 0);
262
+ __decorate([
263
+ FoundationProperty()
264
+ ], SwitchComponent.prototype, "icon", void 0);
265
+ __decorate([
266
+ FoundationProperty()
267
+ ], SwitchComponent.prototype, "labelPosition", void 0);
188
268
  SwitchComponent = __decorate([
189
269
  CustomElement({
190
- name: SWITCH_CONSTANTS.elementName
270
+ name: SWITCH_CONSTANTS.elementName,
271
+ dependencies: [
272
+ FocusIndicatorComponent,
273
+ StateLayerComponent
274
+ ]
191
275
  })
192
276
  ], SwitchComponent);
193
277
  export { SwitchComponent };
@@ -11,8 +11,8 @@ import { TAB_CONSTANTS } from './tab-constants';
11
11
  import { BaseComponent } from '../../core/base/base-component';
12
12
  import { FocusIndicatorComponent } from '../../focus-indicator/focus-indicator';
13
13
  import { StateLayerComponent } from '../../state-layer/state-layer';
14
- const template = '<template><div class=\"forge-tab\" part=\"container\"><span class=\"content\" part=\"content\"><slot name=\"leading\"></slot><span class=\"label\" part=\"label\"><slot></slot></span><slot name=\"trailing\"></slot><span class=\"indicator\" part=\"indicator\"></span></span><forge-state-layer target=\":host\"></forge-state-layer><forge-focus-indicator target=\":host\" inward></forge-focus-indicator></div></template>';
15
- const styles = ':host{display:-webkit-inline-box;display:inline-flex;outline:0;-webkit-tap-highlight-color:transparent;vertical-align:middle}:host([hidden]){display:none}:host(:focus) .forge-tab{color:var(--_focus-label-text-color)}:host(:focus) .forge-tab ::slotted([slot=leading]),:host(:focus) .forge-tab ::slotted([slot=trailing]){color:var(--_focus-icon-color)}:host(:active) .forge-tab{color:var(--_pressed-label-text-color);outline:0}:host(:active) .forge-tab ::slotted([slot=leading]),:host(:active) .forge-tab ::slotted([slot=trailing]){color:var(--_pressed-icon-color)}:host([disabled]){cursor:not-allowed;opacity:var(--forge-tab-disabled-opacity, .38)}:host([disabled]) .forge-tab{pointer-events:none}:host([selected]) .forge-tab{color:var(--_active-label-text-color)}:host([selected]) .forge-tab ::slotted([slot=leading]),:host([selected]) .forge-tab ::slotted([slot=trailing]){color:var(--_active-icon-color)}:host([selected]) .forge-tab:hover{color:var(--_active-hover-label-text-color)}:host([selected]) .forge-tab:hover ::slotted([slot=leading]),:host([selected]) .forge-tab:hover ::slotted([slot=trailing]){color:var(--_active-hover-icon-color)}:host([selected]) .forge-tab .indicator{opacity:1}:host([selected]:not([vertical])) forge-focus-indicator{--forge-focus-indicator-offset-block:0 calc(var(--_active-indicator-height) + 1px)}:host([selected]:focus) .forge-tab{color:var(--_active-focus-label-text-color)}:host([selected]:focus) .forge-tab ::slotted([slot=leading]),:host([selected]:focus) .forge-tab ::slotted([slot=trailing]){color:var(--_active-focus-icon-color)}:host([selected]:active) .forge-tab{color:var(--_active-pressed-label-text-color)}:host([selected]:active) .forge-tab ::slotted([slot=leading]),:host([selected]:active) .forge-tab ::slotted([slot=trailing]){color:var(--_active-pressed-icon-color)}:host([stacked]) .forge-tab{--_height:var(--forge-tab-stacked-height, 64px)}:host([stacked]) .forge-tab .content{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column}:host([secondary]) .forge-tab{--_active-indicator-height:var(--forge-tab-indicator-height, 2px);--_active-indicator-shape:var(--forge-tab-indicator-shape, 0)}:host([secondary]) .content{width:100%}:host([secondary]) .indicator{min-width:100%}:host([vertical]) .forge-tab{width:100%;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;border-bottom:none}:host([vertical]) .forge-tab .content{width:100%}:host([vertical]) .forge-tab .indicator{height:100%;min-width:var(--_active-indicator-height);inset:0 0 0 auto}:host([vertical]) forge-focus-indicator{--forge-focus-indicator-offset-inline:0 calc(var(--_active-indicator-height) + 1px)}:host([vertical][secondary]) .content{min-height:100%}:host([vertical]:not([secondary])) .forge-tab{--_active-indicator-shape:var(--forge-tab-indicator-shape, 3px 0 0 3px)}:host([inverted]) .forge-tab{--_active-indicator-shape:var(--forge-tab-indicator-shape, 0 0 3px 3px)}:host([inverted]) .indicator{inset:0 0 auto;-webkit-transform-origin:top left;transform-origin:top left}:host([inverted][vertical]) .forge-tab{--_active-indicator-shape:var(--forge-tab-indicator-shape, 0 3px 3px 0)}:host([inverted][vertical]) .indicator{inset:0 auto 0 0}.forge-tab{--_active-color:var(--forge-tab-active-color, var(--forge-theme-primary, #3f51b5));--_inactive-color:var(--forge-tab-inactive-color, var(--forge-theme-text-secondary, rgba(0, 0, 0, 0.54)));--_height:var(--forge-tab-height, 48px);--_active-indicator-color:var(--forge-tab-indicator-color, var(--_active-color));--_active-indicator-height:var(--forge-tab-indicator-height, 3px);--_active-indicator-shape:var(--forge-tab-indicator-shape, 3px 3px 0 0);--_container-color:var(--forge-tab-container-color, transparent);--_container-height:var(--forge-tab-container-height, var(--_height));--_container-shape:var(--forge-tab-container-shape, 0);--_content-height:var(--forge-tab-content-height, var(--_height));--_active-focus-icon-color:var(--forge-tab-active-focus-icon-color, var(--_active-color));--_active-hover-icon-color:var(--forge-tab-active-hover-icon-color, var(--_active-color));--_active-icon-color:var(--forge-tab-active-icon-color, var(--_active-color));--_active-pressed-icon-color:var(--forge-tab-active-pressed-icon-color, var(--_active-color));--_icon-size:var(--forge-tab-icon-size, 24px);--_focus-icon-color:var(--forge-tab-focus-icon-color, var(--_inactive-color));--_hover-icon-color:var(--forge-tab-hover-icon-color, var(--_inactive-color));--_icon-color:var(--forge-tab-icon-color, var(--_inactive-color));--_pressed-icon-color:var(--forge-tab-pressed-icon-color, var(--_inactive-color));--_active-focus-label-text-color:var(--forge-tab-active-focus-label-text-color, var(--_active-color));--_active-hover-label-text-color:var(--forge-tab-active-hover-label-text-color, var(--_active-color));--_active-label-text-color:var(--forge-tab-active-label-text-color, var(--_active-color));--_active-pressed-label-text-color:var(--forge-tab-active-pressed-label-text-color, var(--_active-color));--_focus-label-text-color:var(--forge-tab-focus-label-text-color, var(--_inactive-color));--_hover-label-text-color:var(--forge-tab-hover-label-text-color, var(--_inactive-color));--_label-text-color:var(--forge-tab-label-text-color, var(--_inactive-color));--_pressed-label-text-color:var(--forge-tab-pressed-label-text-color, var(--_inactive-color));-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-button-font-family, var(--forge-typography-font-family, Roboto, sans-serif));font-size:var(--forge-typography-button-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-button-font-size-scale, .875)));font-weight:var(--forge-typography-button-font-weight,500);line-height:var(--forge-typography-button-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-button-line-height-scale, 2.25)));letter-spacing:var(--forge-typography-button-letter-spacing, .0892857143em);text-transform:var(--forge-typography-button-text-transform,inherit);-webkit-text-decoration:var(--forge-typography-button-text-decoration,inherit);text-decoration:var(--forge-typography-button-text-decoration,inherit);color:var(--forge-typography-button-color,var(--forge-theme-text-primary,rgba(0,0,0,.87)));display:-webkit-inline-box;display:inline-flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;-webkit-box-sizing:border-box;box-sizing:border-box;border:none;outline:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-appearance:none;vertical-align:middle;background:0 0;text-decoration:none;width:100%;position:relative;padding:0;margin:0;z-index:0;background-color:var(--_container-color);color:var(--_label-text-color);min-height:var(--_container-height)}.forge-tab::-moz-focus-inner{padding:0;border:0}.forge-tab ::slotted([slot=leading]),.forge-tab ::slotted([slot=trailing]){display:-webkit-inline-box;display:inline-flex;position:relative;-webkit-writing-mode:horizontal-tb;-ms-writing-mode:lr-tb;writing-mode:horizontal-tb;fill:currentColor;color:var(--_icon-color);font-size:var(--_icon-size);width:var(--_icon-size);height:var(--_icon-size)}.forge-tab:hover{color:var(--_hover-label-text-color);cursor:pointer}.forge-tab:hover ::slotted([slot=leading]),.forge-tab:hover ::slotted([slot=trailing]){color:var(--_hover-icon-color)}.forge-tab .content{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;display:-webkit-inline-box;display:inline-flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;white-space:nowrap;-webkit-transition:150ms color linear;transition:150ms color linear;max-height:calc(var(--_content-height) + 2 * var(--forge-spacing-100,8px));min-height:var(--_content-height);padding:var(--forge-spacing-100,8px) calc(2 * var(--forge-spacing-100,8px));gap:var(--forge-spacing-050,4px)}.forge-tab .content .label{display:inline-block;line-height:1}.forge-tab .indicator{position:absolute;-webkit-box-sizing:border-box;box-sizing:border-box;z-index:-1;-webkit-transform-origin:bottom left;transform-origin:bottom left;background:var(--_active-indicator-color);border-radius:var(--_active-indicator-shape);height:var(--_active-indicator-height);inset:auto 0 0;opacity:0}::slotted(*),host{white-space:nowrap}forge-focus-indicator{--forge-focus-indicator-color:var(--_active-color);--forge-focus-indicator-shape:8px}forge-state-layer{--forge-state-layer-color:var(--_inactive-color)}';
14
+ const template = '<template><div class=\"forge-tab\" part=\"container\"><span class=\"content\" part=\"content\"><slot name=\"leading\"></slot><span class=\"label\" part=\"label\"><slot></slot></span><slot name=\"trailing\"></slot><span class=\"indicator\" part=\"indicator\"></span></span><forge-state-layer exportparts=\"surface:state-layer__surface\" target=\":host\"></forge-state-layer><forge-focus-indicator exportparts=\"indicator:focus-indicator__indicator\" target=\":host\" inward></forge-focus-indicator></div></template>';
15
+ const styles = ':host{display:-webkit-inline-box;display:inline-flex;outline:0;-webkit-tap-highlight-color:transparent;vertical-align:middle}:host([hidden]){display:none}:host(:focus) .forge-tab{color:var(--_focus-label-text-color)}:host(:focus) .forge-tab ::slotted([slot=leading]),:host(:focus) .forge-tab ::slotted([slot=trailing]){color:var(--_focus-icon-color)}:host(:active) .forge-tab{color:var(--_pressed-label-text-color);outline:0}:host(:active) .forge-tab ::slotted([slot=leading]),:host(:active) .forge-tab ::slotted([slot=trailing]){color:var(--_pressed-icon-color)}:host([disabled]){cursor:not-allowed}:host([disabled]) .forge-tab{opacity:var(--_disabled-opacity);pointer-events:none}:host([selected]) .forge-tab{color:var(--_active-label-text-color)}:host([selected]) .forge-tab ::slotted([slot=leading]),:host([selected]) .forge-tab ::slotted([slot=trailing]){color:var(--_active-icon-color)}:host([selected]) .forge-tab:hover{color:var(--_active-hover-label-text-color)}:host([selected]) .forge-tab:hover ::slotted([slot=leading]),:host([selected]) .forge-tab:hover ::slotted([slot=trailing]){color:var(--_active-hover-icon-color)}:host([selected]) .forge-tab .indicator{opacity:1}:host([selected]:not([vertical])) forge-focus-indicator{--forge-focus-indicator-offset-block:0 calc(var(--_active-indicator-height) + 1px)}:host([selected]:focus) .forge-tab{color:var(--_active-focus-label-text-color)}:host([selected]:focus) .forge-tab ::slotted([slot=leading]),:host([selected]:focus) .forge-tab ::slotted([slot=trailing]){color:var(--_active-focus-icon-color)}:host([selected]:active) .forge-tab{color:var(--_active-pressed-label-text-color)}:host([selected]:active) .forge-tab ::slotted([slot=leading]),:host([selected]:active) .forge-tab ::slotted([slot=trailing]){color:var(--_active-pressed-icon-color)}:host([stacked]) .forge-tab{--_height:var(--_stacked-height)}:host([stacked]) .forge-tab .content{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column}:host([secondary]) .forge-tab{--_active-indicator-height:var(--forge-tab-indicator-height, 2px);--_active-indicator-shape:var(--forge-tab-indicator-shape, 0)}:host([secondary]) .content{width:100%}:host([secondary]) .indicator{min-width:100%}:host([vertical]) .forge-tab{width:100%;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;border-bottom:none}:host([vertical]) .forge-tab .content{width:100%}:host([vertical]) .forge-tab .indicator{height:100%;min-width:var(--_active-indicator-height);inset:0 0 0 auto}:host([vertical]) forge-focus-indicator{--forge-focus-indicator-offset-inline:0 calc(var(--_active-indicator-height) + 1px)}:host([vertical][secondary]) .content{min-height:100%}:host([vertical]:not([secondary])) .forge-tab{--_active-indicator-shape:var(--forge-tab-indicator-shape, 3px 0 0 3px)}:host([inverted]) .forge-tab{--_active-indicator-shape:var(--forge-tab-indicator-shape, 0 0 3px 3px)}:host([inverted]) .indicator{inset:0 0 auto;-webkit-transform-origin:top left;transform-origin:top left}:host([inverted][vertical]) .forge-tab{--_active-indicator-shape:var(--forge-tab-indicator-shape, 0 3px 3px 0)}:host([inverted][vertical]) .indicator{inset:0 auto 0 0}.forge-tab{--_active-color:var(--forge-tab-active-color, var(--forge-theme-primary, #3f51b5));--_inactive-color:var(--forge-tab-inactive-color, var(--forge-theme-text-medium, rgba(0, 0, 0, 0.54)));--_height:var(--forge-tab-height, 48px);--_stacked-height:var(--forge-tab-stacked-height, 64px);--_disabled-opacity:var(--forge-tab-disabled-opacity, 0.38);--_active-indicator-color:var(--forge-tab-indicator-color, var(--_active-color));--_active-indicator-height:var(--forge-tab-indicator-height, 3px);--_active-indicator-shape:var(--forge-tab-indicator-shape, 3px 3px 0 0);--_container-color:var(--forge-tab-container-color, transparent);--_container-height:var(--forge-tab-container-height, var(--_height));--_container-shape:var(--forge-tab-container-shape, 0);--_content-height:var(--forge-tab-content-height, var(--_height));--_content-padding:var(--forge-tab-content-padding, var(--forge-spacing-025, 4px));--_active-focus-icon-color:var(--forge-tab-active-focus-icon-color, var(--_active-color));--_active-hover-icon-color:var(--forge-tab-active-hover-icon-color, var(--_active-color));--_active-icon-color:var(--forge-tab-active-icon-color, var(--_active-color));--_active-pressed-icon-color:var(--forge-tab-active-pressed-icon-color, var(--_active-color));--_icon-size:var(--forge-tab-icon-size, 24px);--_focus-icon-color:var(--forge-tab-focus-icon-color, var(--_inactive-color));--_hover-icon-color:var(--forge-tab-hover-icon-color, var(--_inactive-color));--_icon-color:var(--forge-tab-icon-color, var(--_inactive-color));--_pressed-icon-color:var(--forge-tab-pressed-icon-color, var(--_inactive-color));--_active-focus-label-text-color:var(--forge-tab-active-focus-label-text-color, var(--_active-color));--_active-hover-label-text-color:var(--forge-tab-active-hover-label-text-color, var(--_active-color));--_active-label-text-color:var(--forge-tab-active-label-text-color, var(--_active-color));--_active-pressed-label-text-color:var(--forge-tab-active-pressed-label-text-color, var(--_active-color));--_focus-label-text-color:var(--forge-tab-focus-label-text-color, var(--_inactive-color));--_hover-label-text-color:var(--forge-tab-hover-label-text-color, var(--_inactive-color));--_label-text-color:var(--forge-tab-label-text-color, var(--_inactive-color));--_pressed-label-text-color:var(--forge-tab-pressed-label-text-color, var(--_inactive-color));-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-button-font-family, var(--forge-typography-font-family, \"Roboto\", sans-serif));font-size:var(--forge-typography-button-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-button-font-size-scale, .875)));font-weight:var(--forge-typography-button-font-weight,500);line-height:var(--forge-typography-button-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-button-line-height-scale, 2.25)));letter-spacing:var(--forge-typography-button-letter-spacing, .0714285714em);text-transform:var(--forge-typography-button-text-transform,inherit);-webkit-text-decoration:var(--forge-typography-button-text-decoration,inherit);text-decoration:var(--forge-typography-button-text-decoration,inherit);display:-webkit-inline-box;display:inline-flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;-webkit-box-sizing:border-box;box-sizing:border-box;border:none;outline:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-appearance:none;vertical-align:middle;background:0 0;text-decoration:none;width:100%;position:relative;padding:0;margin:0;z-index:0;background-color:var(--_container-color);color:var(--_label-text-color);min-height:var(--_container-height)}.forge-tab::-moz-focus-inner{padding:0;border:0}.forge-tab ::slotted([slot=leading]),.forge-tab ::slotted([slot=trailing]){display:-webkit-inline-box;display:inline-flex;position:relative;-webkit-writing-mode:horizontal-tb;-ms-writing-mode:lr-tb;writing-mode:horizontal-tb;fill:currentColor;color:var(--_icon-color);font-size:var(--_icon-size);width:var(--_icon-size);height:var(--_icon-size)}.forge-tab:hover{color:var(--_hover-label-text-color);cursor:pointer}.forge-tab:hover ::slotted([slot=leading]),.forge-tab:hover ::slotted([slot=trailing]){color:var(--_hover-icon-color)}.forge-tab .content{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;display:-webkit-inline-box;display:inline-flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;white-space:nowrap;-webkit-transition:150ms color linear;transition:150ms color linear;max-height:calc(var(--_content-height) + 2 * var(--_content-padding));min-height:var(--_content-height);padding:var(--_content-padding) calc(2 * var(--_content-padding));gap:var(--_content-padding)}.forge-tab .content .label{display:inline-block;line-height:1}.forge-tab .indicator{position:absolute;-webkit-box-sizing:border-box;box-sizing:border-box;z-index:-1;-webkit-transform-origin:bottom left;transform-origin:bottom left;background:var(--_active-indicator-color);border-radius:var(--_active-indicator-shape);height:var(--_active-indicator-height);inset:auto 0 0;opacity:0}::slotted(*),host{white-space:nowrap}forge-focus-indicator{--forge-focus-indicator-color:var(--_active-color);--forge-focus-indicator-shape:8px}forge-state-layer{--forge-state-layer-color:var(--_inactive-color)}';
16
16
  /**
17
17
  * @tag forge-tab
18
18
  *
@@ -14,7 +14,7 @@ import { TAB_BAR_CONSTANTS } from './tab-bar-constants';
14
14
  import { TabBarFoundation } from './tab-bar-foundation';
15
15
  import { tylIconKeyboardArrowLeft, tylIconKeyboardArrowRight, tylIconKeyboardArrowUp, tylIconKeyboardArrowDown } from '@tylertech/tyler-icons/standard';
16
16
  const template = '<template><div class=\"container\" part=\"container\"><div role=\"tablist\" class=\"scroll-container\" part=\"scroll-container\"><slot></slot></div></div></template>';
17
- const styles = '.forge-icon-button{display:-webkit-inline-box;display:inline-flex;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;border:none;outline:0;background-color:transparent;fill:currentColor;color:inherit;font-size:24px;text-decoration:none;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:48px;height:48px;padding:12px}.forge-icon-button forge-icon,.forge-icon-button img,.forge-icon-button svg{width:24px;height:24px}.forge-icon-button:disabled{color:rgba(0,0,0,.38);color:var(--mdc-theme-text-disabled-on-light,rgba(0,0,0,.38))}.forge-icon-button:disabled{cursor:default;pointer-events:none}.forge-icon-button__icon{display:inline-block}.forge-icon-button__icon.forge-icon-button__icon--on{display:none}.forge-icon-button--on .forge-icon-button__icon{display:none}.forge-icon-button--on .forge-icon-button__icon.forge-icon-button__icon--on{display:inline-block}@-webkit-keyframes mdc-ripple-fg-radius-in{from{-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);-webkit-transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1);transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1)}to{-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}}@keyframes mdc-ripple-fg-radius-in{from{-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);-webkit-transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1);transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1)}to{-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}}@-webkit-keyframes mdc-ripple-fg-opacity-in{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@keyframes mdc-ripple-fg-opacity-in{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@-webkit-keyframes mdc-ripple-fg-opacity-out{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}@keyframes mdc-ripple-fg-opacity-out{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}.forge-icon-button{--mdc-ripple-fg-size:0;--mdc-ripple-left:0;--mdc-ripple-top:0;--mdc-ripple-fg-scale:1;--mdc-ripple-fg-translate-end:0;--mdc-ripple-fg-translate-start:0;-webkit-tap-highlight-color:transparent;will-change:transform,opacity}.forge-icon-button::after,.forge-icon-button::before{position:absolute;border-radius:50%;opacity:0;pointer-events:none;content:\"\"}.forge-icon-button::before{-webkit-transition:opacity 15ms linear,background-color 15ms linear;transition:opacity 15ms linear,background-color 15ms linear;z-index:1;z-index:var(--mdc-ripple-z-index,1)}.forge-icon-button::after{z-index:0;z-index:var(--mdc-ripple-z-index,0)}.forge-icon-button.mdc-ripple-upgraded::before{-webkit-transform:scale(var(--mdc-ripple-fg-scale,1));transform:scale(var(--mdc-ripple-fg-scale,1))}.forge-icon-button.mdc-ripple-upgraded::after{top:0;left:0;-webkit-transform:scale(0);transform:scale(0);-webkit-transform-origin:center center;transform-origin:center center}.forge-icon-button.mdc-ripple-upgraded--unbounded::after{top:var(--mdc-ripple-top,0);left:var(--mdc-ripple-left,0)}.forge-icon-button.mdc-ripple-upgraded--foreground-activation::after{-webkit-animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards;animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards}.forge-icon-button.mdc-ripple-upgraded--foreground-deactivation::after{-webkit-animation:mdc-ripple-fg-opacity-out 150ms;animation:mdc-ripple-fg-opacity-out 150ms;-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}.forge-icon-button::after,.forge-icon-button::before{top:calc(50% - 50%);left:calc(50% - 50%);width:100%;height:100%}.forge-icon-button.mdc-ripple-upgraded::after,.forge-icon-button.mdc-ripple-upgraded::before{top:var(--mdc-ripple-top,calc(50% - 50%));left:var(--mdc-ripple-left,calc(50% - 50%));width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.forge-icon-button.mdc-ripple-upgraded::after{width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.forge-icon-button::after,.forge-icon-button::before{background-color:#000;background-color:var(--mdc-ripple-color,var(--mdc-theme-on-surface,#000))}.forge-icon-button.mdc-ripple-surface--hover::before,.forge-icon-button:hover::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.forge-icon-button.mdc-ripple-upgraded--background-focused::before,.forge-icon-button:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.forge-icon-button:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-icon-button:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.forge-icon-button.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}forge-icon-button{position:relative;display:inline-block;overflow:visible}.forge-icon-button--on{color:#6200ee;color:var(--mdc-theme-primary,#6200ee)}.forge-icon-button--on::after,.forge-icon-button--on::before{background-color:#6200ee;background-color:var(--mdc-ripple-color,var(--mdc-theme-primary,#6200ee))}.forge-icon-button--on.mdc-ripple-surface--hover::before,.forge-icon-button--on:hover::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.forge-icon-button--on.mdc-ripple-upgraded--background-focused::before,.forge-icon-button--on:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.forge-icon-button--on:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-icon-button--on:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.forge-icon-button--on.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}.forge-icon-button--on::before{background-color:#6200ee;background-color:var(--mdc-theme-primary,#6200ee);opacity:.08}.forge-icon-button--dense{width:28px;height:28px;padding:2px;padding:0}.forge-icon-button--dense-1{width:44px;height:44px;padding:10px}.forge-icon-button--dense-2{width:40px;height:40px;padding:8px}.forge-icon-button--dense-3{width:36px;height:36px;padding:6px}.forge-icon-button--dense-4{width:32px;height:32px;padding:4px}.forge-icon-button--dense-5{width:28px;height:28px;padding:2px}.forge-icon-button--dense-6{width:24px;height:24px;padding:0}.forge-icon-button--with-badge forge-badge{z-index:1;z-index:var(--forge-z-index-surface,1);pointer-events:none;--forge-badge-max-width:32px;--forge-badge-border:1px solid transparent}.forge-icon-button--with-badge forge-badge[app-bar-context]{--forge-badge-border:2px solid var(--forge-app-bar-theme-background)}:host{position:relative;display:block}:host([vertical]) .container{grid-template-columns:none;grid-template-rows:auto 1fr auto;-webkit-box-align:initial;align-items:initial;border-bottom:none;border-right:var(--_divider-thickness) solid var(--_divider-color);height:100%}:host([vertical]) .scroll-container{display:-webkit-inline-box;display:inline-flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-align:stretch;align-items:stretch;gap:0;grid-column:auto;grid-row:2}:host([vertical]) .scroll-button{justify-self:center}:host([inverted]:not([vertical])) .container{border-bottom:none;border-top:var(--_divider-thickness) solid var(--_divider-color)}:host([inverted][vertical]) .container{border-right:none;border-left:var(--_divider-thickness) solid var(--_divider-color)}:host([clustered]){--forge-tab-bar-justify:flex-start;--forge-tab-bar-stretch:0}:host([clustered=start]){--forge-tab-bar-justify:flex-start}:host([clustered=center]){--forge-tab-bar-justify:center}:host([clustered=end]){--forge-tab-bar-justify:flex-end}:host([hidden]){display:none}.container{--_container-justify:var(--forge-tab-bar-justify, space-between);--_tab-flex:var(--forge-tab-bar-stretch, 1);--_divider-color:var(--forge-tab-bar-divider-color, var(--forge-theme-border-color, #e0e0e0));--_divider-thickness:var(--forge-tab-bar-divider-thickness, 1px);position:relative;display:grid;grid-template-columns:auto 1fr auto;max-width:100%;max-height:100%;-webkit-box-align:center;align-items:center;border-bottom:var(--_divider-thickness) solid var(--_divider-color)}.scroll-container{position:relative;display:-webkit-box;display:flex;-webkit-box-pack:var(--_container-justify);justify-content:var(--_container-justify);-webkit-box-align:end;align-items:flex-end;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:auto;scroll-behavior:smooth;scrollbar-width:none;grid-column:2}.scroll-container::-webkit-scrollbar{display:none}::slotted(*){-webkit-box-flex:var(--_tab-flex);flex:var(--_tab-flex)}::slotted([selected]){z-index:1}';
17
+ const styles = '.forge-icon-button{display:-webkit-inline-box;display:inline-flex;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;border:none;outline:0;background-color:transparent;fill:currentColor;color:inherit;font-size:24px;text-decoration:none;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:48px;height:48px;padding:12px}.forge-icon-button forge-icon,.forge-icon-button img,.forge-icon-button svg{width:24px;height:24px}.forge-icon-button:disabled{color:rgba(0,0,0,.38);color:var(--mdc-theme-text-disabled-on-light,rgba(0,0,0,.38))}.forge-icon-button:disabled{cursor:default;pointer-events:none}.forge-icon-button__icon{display:inline-block}.forge-icon-button__icon.forge-icon-button__icon--on{display:none}.forge-icon-button--on .forge-icon-button__icon{display:none}.forge-icon-button--on .forge-icon-button__icon.forge-icon-button__icon--on{display:inline-block}@-webkit-keyframes mdc-ripple-fg-radius-in{from{-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);-webkit-transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1);transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1)}to{-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}}@keyframes mdc-ripple-fg-radius-in{from{-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);-webkit-transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1);transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1)}to{-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}}@-webkit-keyframes mdc-ripple-fg-opacity-in{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@keyframes mdc-ripple-fg-opacity-in{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@-webkit-keyframes mdc-ripple-fg-opacity-out{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}@keyframes mdc-ripple-fg-opacity-out{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}.forge-icon-button{--mdc-ripple-fg-size:0;--mdc-ripple-left:0;--mdc-ripple-top:0;--mdc-ripple-fg-scale:1;--mdc-ripple-fg-translate-end:0;--mdc-ripple-fg-translate-start:0;-webkit-tap-highlight-color:transparent;will-change:transform,opacity}.forge-icon-button::after,.forge-icon-button::before{position:absolute;border-radius:50%;opacity:0;pointer-events:none;content:\"\"}.forge-icon-button::before{-webkit-transition:opacity 15ms linear,background-color 15ms linear;transition:opacity 15ms linear,background-color 15ms linear;z-index:1;z-index:var(--mdc-ripple-z-index,1)}.forge-icon-button::after{z-index:0;z-index:var(--mdc-ripple-z-index,0)}.forge-icon-button.mdc-ripple-upgraded::before{-webkit-transform:scale(var(--mdc-ripple-fg-scale,1));transform:scale(var(--mdc-ripple-fg-scale,1))}.forge-icon-button.mdc-ripple-upgraded::after{top:0;left:0;-webkit-transform:scale(0);transform:scale(0);-webkit-transform-origin:center center;transform-origin:center center}.forge-icon-button.mdc-ripple-upgraded--unbounded::after{top:var(--mdc-ripple-top,0);left:var(--mdc-ripple-left,0)}.forge-icon-button.mdc-ripple-upgraded--foreground-activation::after{-webkit-animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards;animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards}.forge-icon-button.mdc-ripple-upgraded--foreground-deactivation::after{-webkit-animation:mdc-ripple-fg-opacity-out 150ms;animation:mdc-ripple-fg-opacity-out 150ms;-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}.forge-icon-button::after,.forge-icon-button::before{top:calc(50% - 50%);left:calc(50% - 50%);width:100%;height:100%}.forge-icon-button.mdc-ripple-upgraded::after,.forge-icon-button.mdc-ripple-upgraded::before{top:var(--mdc-ripple-top,calc(50% - 50%));left:var(--mdc-ripple-left,calc(50% - 50%));width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.forge-icon-button.mdc-ripple-upgraded::after{width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.forge-icon-button::after,.forge-icon-button::before{background-color:#000;background-color:var(--mdc-ripple-color,var(--mdc-theme-on-surface,#000))}.forge-icon-button.mdc-ripple-surface--hover::before,.forge-icon-button:hover::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.forge-icon-button.mdc-ripple-upgraded--background-focused::before,.forge-icon-button:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.forge-icon-button:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-icon-button:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.forge-icon-button.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}forge-icon-button{position:relative;display:inline-block;overflow:visible}.forge-icon-button--on{color:#6200ee;color:var(--mdc-theme-primary,#6200ee)}.forge-icon-button--on::after,.forge-icon-button--on::before{background-color:#6200ee;background-color:var(--mdc-ripple-color,var(--mdc-theme-primary,#6200ee))}.forge-icon-button--on.mdc-ripple-surface--hover::before,.forge-icon-button--on:hover::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.forge-icon-button--on.mdc-ripple-upgraded--background-focused::before,.forge-icon-button--on:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.forge-icon-button--on:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-icon-button--on:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.forge-icon-button--on.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}.forge-icon-button--on::before{background-color:#6200ee;background-color:var(--mdc-theme-primary,#6200ee);opacity:.08}.forge-icon-button--dense{width:28px;height:28px;padding:2px;padding:0}.forge-icon-button--dense-1{width:44px;height:44px;padding:10px}.forge-icon-button--dense-2{width:40px;height:40px;padding:8px}.forge-icon-button--dense-3{width:36px;height:36px;padding:6px}.forge-icon-button--dense-4{width:32px;height:32px;padding:4px}.forge-icon-button--dense-5{width:28px;height:28px;padding:2px}.forge-icon-button--dense-6{width:24px;height:24px;padding:0}.forge-icon-button--with-badge forge-badge{z-index:1;z-index:var(--forge-z-index-surface,1);pointer-events:none;--forge-badge-max-width:32px;--forge-badge-border:1px solid transparent}.forge-icon-button--with-badge forge-badge[app-bar-context]{--forge-badge-border:2px solid var(--forge-app-bar-theme-background)}:host{position:relative;display:block}:host([vertical]) .container{grid-template-columns:none;grid-template-rows:auto 1fr auto;-webkit-box-align:initial;align-items:initial;border-bottom:none;border-right:var(--_divider-thickness) solid var(--_divider-color);height:100%}:host([vertical]) .scroll-container{display:-webkit-inline-box;display:inline-flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-align:stretch;align-items:stretch;gap:0;grid-column:auto;grid-row:2}:host([vertical]) .scroll-button{justify-self:center}:host([inverted]:not([vertical])) .container{border-bottom:none;border-top:var(--_divider-thickness) solid var(--_divider-color)}:host([inverted][vertical]) .container{border-right:none;border-left:var(--_divider-thickness) solid var(--_divider-color)}:host([clustered]){--forge-tab-bar-justify:flex-start;--forge-tab-bar-stretch:0}:host([clustered=start]){--forge-tab-bar-justify:flex-start}:host([clustered=center]){--forge-tab-bar-justify:center}:host([clustered=end]){--forge-tab-bar-justify:flex-end}:host([hidden]){display:none}.container{--_container-justify:var(--forge-tab-bar-justify, space-between);--_tab-flex:var(--forge-tab-bar-stretch, 1);--_divider-color:var(--forge-tab-bar-divider-color, var(--forge-theme-outline, #e0e0e0));--_divider-thickness:var(--forge-tab-bar-divider-thickness, 1px);position:relative;display:grid;grid-template-columns:auto 1fr auto;max-width:100%;max-height:100%;-webkit-box-align:center;align-items:center;border-bottom:var(--_divider-thickness) solid var(--_divider-color)}.scroll-container{position:relative;display:-webkit-box;display:flex;-webkit-box-pack:var(--_container-justify);justify-content:var(--_container-justify);-webkit-box-align:end;align-items:flex-end;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:auto;scroll-behavior:smooth;scrollbar-width:none;grid-column:2}.scroll-container::-webkit-scrollbar{display:none}::slotted(*){-webkit-box-flex:var(--_tab-flex);flex:var(--_tab-flex)}::slotted([selected]){z-index:1}';
18
18
  /**
19
19
  * @tag forge-tab-bar
20
20
  *
@@ -220,12 +220,12 @@ export class TimePickerFoundation {
220
220
  }
221
221
  }
222
222
  _onInputFocus(evt) {
223
- if (this._allowInput) {
224
- this._adapter.selectInputText();
225
- }
226
223
  if (this.masked && this._showMaskFormat) {
227
224
  this._applyMask();
228
225
  }
226
+ if (this._allowInput) {
227
+ this._adapter.selectInputText();
228
+ }
229
229
  }
230
230
  _onInputBlur(evt) {
231
231
  if (this.masked && this._showMaskFormat) {