@tylertech/forge 2.3.0 → 2.6.0

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 (438) hide show
  1. package/README.md +5 -5
  2. package/custom-elements.json +114521 -0
  3. package/dist/esm/accordion/index.js +6 -5
  4. package/dist/esm/app-bar/help-button/index.js +16 -15
  5. package/dist/esm/app-bar/index.js +26 -25
  6. package/dist/esm/app-bar/menu-button/index.js +7 -6
  7. package/dist/esm/app-bar/notification-button/index.js +8 -7
  8. package/dist/esm/app-bar/profile-button/index.js +12 -11
  9. package/dist/esm/app-bar/search/index.js +5 -4
  10. package/dist/esm/autocomplete/index.js +18 -17
  11. package/dist/esm/avatar/index.js +1 -1
  12. package/dist/esm/backdrop/index.js +1 -1
  13. package/dist/esm/badge/index.js +1 -1
  14. package/dist/esm/banner/index.js +7 -6
  15. package/dist/esm/bottom-sheet/index.js +10 -9
  16. package/dist/esm/busy-indicator/index.js +8 -7
  17. package/dist/esm/button/index.js +4 -3
  18. package/dist/esm/button-toggle/button-toggle/index.js +3 -3
  19. package/dist/esm/button-toggle/button-toggle-group/index.js +3 -3
  20. package/dist/esm/button-toggle/index.js +4 -4
  21. package/dist/esm/calendar/calendar-dropdown/index.js +5 -4
  22. package/dist/esm/calendar/calendar-menu/index.js +3 -2
  23. package/dist/esm/calendar/index.js +11 -10
  24. package/dist/esm/card/index.js +1 -1
  25. package/dist/esm/checkbox/index.js +4 -3
  26. package/dist/esm/chip-field/index.js +8 -7
  27. package/dist/esm/chips/chip/index.js +6 -5
  28. package/dist/esm/chips/chip-set/index.js +6 -5
  29. package/dist/esm/chips/index.js +7 -6
  30. package/dist/esm/chunks/{chunk.PZ25GQD2.js → chunk.2MBI5DLT.js} +6 -6
  31. package/dist/esm/chunks/{chunk.PZ25GQD2.js.map → chunk.2MBI5DLT.js.map} +2 -2
  32. package/dist/esm/chunks/{chunk.B425FZOZ.js → chunk.2WBHHTUM.js} +2 -2
  33. package/dist/esm/chunks/{chunk.B425FZOZ.js.map → chunk.2WBHHTUM.js.map} +2 -2
  34. package/dist/esm/chunks/{chunk.WXFCZJJI.js → chunk.3EHQ3YHJ.js} +1 -1
  35. package/dist/esm/chunks/{chunk.WXFCZJJI.js.map → chunk.3EHQ3YHJ.js.map} +2 -2
  36. package/dist/esm/chunks/{chunk.LKUKESRQ.js → chunk.3QXCVTCP.js} +2 -2
  37. package/dist/esm/chunks/{chunk.LKUKESRQ.js.map → chunk.3QXCVTCP.js.map} +0 -0
  38. package/dist/esm/chunks/{chunk.ZIFMMVW6.js → chunk.46BED43J.js} +3 -3
  39. package/dist/esm/chunks/{chunk.ZIFMMVW6.js.map → chunk.46BED43J.js.map} +2 -2
  40. package/dist/esm/chunks/{chunk.VTXXZ5KT.js → chunk.4PF7WRP4.js} +2 -2
  41. package/dist/esm/chunks/{chunk.VTXXZ5KT.js.map → chunk.4PF7WRP4.js.map} +2 -2
  42. package/dist/esm/chunks/{chunk.KZ2QNQK2.js → chunk.4WLVFWKI.js} +2 -2
  43. package/dist/esm/chunks/{chunk.KZ2QNQK2.js.map → chunk.4WLVFWKI.js.map} +0 -0
  44. package/dist/esm/chunks/{chunk.C2MR3RDF.js → chunk.56BNM7F2.js} +1 -1
  45. package/dist/esm/chunks/{chunk.C2MR3RDF.js.map → chunk.56BNM7F2.js.map} +2 -2
  46. package/dist/esm/chunks/{chunk.HNKH3ZP5.js → chunk.5H65ASFE.js} +74 -74
  47. package/dist/esm/chunks/{chunk.HNKH3ZP5.js.map → chunk.5H65ASFE.js.map} +0 -0
  48. package/dist/esm/chunks/{chunk.3AK3VGRT.js → chunk.5OYAJ36F.js} +2 -2
  49. package/dist/esm/chunks/{chunk.3AK3VGRT.js.map → chunk.5OYAJ36F.js.map} +0 -0
  50. package/dist/esm/chunks/{chunk.4UKSUUTX.js → chunk.5U6ZT6MC.js} +2 -2
  51. package/dist/esm/chunks/{chunk.4UKSUUTX.js.map → chunk.5U6ZT6MC.js.map} +2 -2
  52. package/dist/esm/chunks/{chunk.3NOZRZ7R.js → chunk.65GHMPX2.js} +3 -3
  53. package/dist/esm/chunks/{chunk.3NOZRZ7R.js.map → chunk.65GHMPX2.js.map} +2 -2
  54. package/dist/esm/chunks/{chunk.C44LSSHS.js → chunk.67B6JDOJ.js} +3 -3
  55. package/dist/esm/chunks/{chunk.C44LSSHS.js.map → chunk.67B6JDOJ.js.map} +2 -2
  56. package/dist/esm/chunks/chunk.6EGTLHJS.js +16 -0
  57. package/dist/esm/chunks/chunk.6EGTLHJS.js.map +7 -0
  58. package/dist/esm/chunks/{chunk.EL6B2ODN.js → chunk.6ZBFCE2A.js} +1 -1
  59. package/dist/esm/chunks/{chunk.EL6B2ODN.js.map → chunk.6ZBFCE2A.js.map} +2 -2
  60. package/dist/esm/chunks/{chunk.VAPJ75PS.js → chunk.7FWTBD6Y.js} +2 -2
  61. package/dist/esm/chunks/{chunk.VAPJ75PS.js.map → chunk.7FWTBD6Y.js.map} +0 -0
  62. package/dist/esm/chunks/{chunk.KCK3G74Y.js → chunk.7UAH67PT.js} +2 -2
  63. package/dist/esm/chunks/{chunk.KCK3G74Y.js.map → chunk.7UAH67PT.js.map} +2 -2
  64. package/dist/esm/chunks/{chunk.BORNGK7Q.js → chunk.ANME7BKM.js} +2 -2
  65. package/dist/esm/chunks/{chunk.BORNGK7Q.js.map → chunk.ANME7BKM.js.map} +2 -2
  66. package/dist/esm/chunks/{chunk.5INCRYSV.js → chunk.BEAJZPWS.js} +2 -2
  67. package/dist/esm/chunks/{chunk.5INCRYSV.js.map → chunk.BEAJZPWS.js.map} +0 -0
  68. package/dist/esm/chunks/{chunk.Y2ORADJS.js → chunk.BVGJFMEG.js} +8 -8
  69. package/dist/esm/chunks/{chunk.Y2ORADJS.js.map → chunk.BVGJFMEG.js.map} +2 -2
  70. package/dist/esm/chunks/{chunk.L65L5VJ6.js → chunk.C73AZRT4.js} +4 -4
  71. package/dist/esm/chunks/{chunk.L65L5VJ6.js.map → chunk.C73AZRT4.js.map} +2 -2
  72. package/dist/esm/chunks/{chunk.4ZBBOR4H.js → chunk.CLEUHAZ6.js} +2 -2
  73. package/dist/esm/chunks/{chunk.4ZBBOR4H.js.map → chunk.CLEUHAZ6.js.map} +2 -2
  74. package/dist/esm/chunks/{chunk.V3FSZDTW.js → chunk.CMXAORYF.js} +5 -5
  75. package/dist/esm/chunks/{chunk.V3FSZDTW.js.map → chunk.CMXAORYF.js.map} +2 -2
  76. package/dist/esm/chunks/{chunk.U35QQZVK.js → chunk.D33KLIFD.js} +1 -1
  77. package/dist/esm/chunks/{chunk.U35QQZVK.js.map → chunk.D33KLIFD.js.map} +2 -2
  78. package/dist/esm/chunks/{chunk.5EEEKOOK.js → chunk.DLF5JAQO.js} +1 -1
  79. package/dist/esm/chunks/{chunk.5EEEKOOK.js.map → chunk.DLF5JAQO.js.map} +2 -2
  80. package/dist/esm/chunks/{chunk.ZUM5YLB2.js → chunk.E26BROOG.js} +1 -1
  81. package/dist/esm/chunks/{chunk.ZUM5YLB2.js.map → chunk.E26BROOG.js.map} +2 -2
  82. package/dist/esm/chunks/{chunk.UM3J4AZ7.js → chunk.EBC2HGO3.js} +4 -4
  83. package/dist/esm/chunks/chunk.EBC2HGO3.js.map +7 -0
  84. package/dist/esm/chunks/{chunk.YCW56AVX.js → chunk.FJJVIMZ2.js} +1 -1
  85. package/dist/esm/chunks/{chunk.YCW56AVX.js.map → chunk.FJJVIMZ2.js.map} +2 -2
  86. package/dist/esm/chunks/{chunk.HHHMDDTU.js → chunk.FZ6KICMD.js} +1 -1
  87. package/dist/esm/chunks/{chunk.HHHMDDTU.js.map → chunk.FZ6KICMD.js.map} +2 -2
  88. package/dist/esm/chunks/{chunk.D4VIYWFB.js → chunk.GHZ75UPO.js} +3 -3
  89. package/dist/esm/chunks/{chunk.D4VIYWFB.js.map → chunk.GHZ75UPO.js.map} +2 -2
  90. package/dist/esm/chunks/{chunk.SJZ54RE3.js → chunk.GL72QT42.js} +1 -1
  91. package/dist/esm/chunks/{chunk.SJZ54RE3.js.map → chunk.GL72QT42.js.map} +2 -2
  92. package/dist/esm/chunks/{chunk.PCYIY5OY.js → chunk.GNAIKBO6.js} +2 -2
  93. package/dist/esm/chunks/{chunk.PCYIY5OY.js.map → chunk.GNAIKBO6.js.map} +2 -2
  94. package/dist/esm/chunks/{chunk.IWXT6VVJ.js → chunk.GOWHXADJ.js} +15 -1
  95. package/dist/esm/chunks/chunk.GOWHXADJ.js.map +7 -0
  96. package/dist/esm/chunks/{chunk.G6FY472A.js → chunk.GWNR3UUX.js} +2 -2
  97. package/dist/esm/chunks/{chunk.G6FY472A.js.map → chunk.GWNR3UUX.js.map} +2 -2
  98. package/dist/esm/chunks/{chunk.2NUAEZY7.js → chunk.GXTNND2M.js} +1 -1
  99. package/dist/esm/chunks/{chunk.2NUAEZY7.js.map → chunk.GXTNND2M.js.map} +2 -2
  100. package/dist/esm/chunks/{chunk.YJ5X3WZ4.js → chunk.HASAPJMX.js} +1 -1
  101. package/dist/esm/chunks/{chunk.YJ5X3WZ4.js.map → chunk.HASAPJMX.js.map} +2 -2
  102. package/dist/esm/chunks/{chunk.EWQENJ4W.js → chunk.HMM7PGGZ.js} +2 -2
  103. package/dist/esm/chunks/{chunk.EWQENJ4W.js.map → chunk.HMM7PGGZ.js.map} +2 -2
  104. package/dist/esm/chunks/{chunk.IYOZSEZ3.js → chunk.I6PJGNJS.js} +2 -2
  105. package/dist/esm/chunks/{chunk.IYOZSEZ3.js.map → chunk.I6PJGNJS.js.map} +2 -2
  106. package/dist/esm/chunks/{chunk.3ZKORL4I.js → chunk.I7BQUB7Z.js} +2 -2
  107. package/dist/esm/chunks/chunk.I7BQUB7Z.js.map +7 -0
  108. package/dist/esm/chunks/{chunk.XY3ZHN7Y.js → chunk.IBED5TWL.js} +1 -1
  109. package/dist/esm/chunks/{chunk.XY3ZHN7Y.js.map → chunk.IBED5TWL.js.map} +2 -2
  110. package/dist/esm/chunks/{chunk.47D77ELY.js → chunk.IGBDDH3J.js} +6 -6
  111. package/dist/esm/chunks/{chunk.47D77ELY.js.map → chunk.IGBDDH3J.js.map} +0 -0
  112. package/dist/esm/chunks/{chunk.RF5UPII7.js → chunk.IJW2YKP3.js} +13 -13
  113. package/dist/esm/chunks/{chunk.RF5UPII7.js.map → chunk.IJW2YKP3.js.map} +2 -2
  114. package/dist/esm/chunks/{chunk.5CZWANU6.js → chunk.ITQ55IPH.js} +4 -4
  115. package/dist/esm/chunks/{chunk.5CZWANU6.js.map → chunk.ITQ55IPH.js.map} +2 -2
  116. package/dist/esm/chunks/{chunk.IBH5GL7A.js → chunk.IUNON3UL.js} +2 -2
  117. package/dist/esm/chunks/{chunk.IBH5GL7A.js.map → chunk.IUNON3UL.js.map} +2 -2
  118. package/dist/esm/chunks/{chunk.5VNEDRVC.js → chunk.J5NUYQ4D.js} +6 -6
  119. package/dist/esm/chunks/{chunk.5VNEDRVC.js.map → chunk.J5NUYQ4D.js.map} +0 -0
  120. package/dist/esm/chunks/{chunk.DWURTRGM.js → chunk.JC2PZ4TS.js} +8 -8
  121. package/dist/esm/chunks/{chunk.DWURTRGM.js.map → chunk.JC2PZ4TS.js.map} +2 -2
  122. package/dist/esm/chunks/{chunk.7M3P4QES.js → chunk.JUXKYUD4.js} +9 -9
  123. package/dist/esm/chunks/{chunk.7M3P4QES.js.map → chunk.JUXKYUD4.js.map} +2 -2
  124. package/dist/esm/chunks/{chunk.6V463G4I.js → chunk.KCVJDJ6K.js} +1 -1
  125. package/dist/esm/chunks/{chunk.6V463G4I.js.map → chunk.KCVJDJ6K.js.map} +2 -2
  126. package/dist/esm/chunks/{chunk.DKHOY6QU.js → chunk.KNR5DXE4.js} +2 -2
  127. package/dist/esm/chunks/{chunk.DKHOY6QU.js.map → chunk.KNR5DXE4.js.map} +2 -2
  128. package/dist/esm/chunks/{chunk.C64YUJHS.js → chunk.L344BPCW.js} +2 -2
  129. package/dist/esm/chunks/{chunk.C64YUJHS.js.map → chunk.L344BPCW.js.map} +2 -2
  130. package/dist/esm/chunks/{chunk.HWWCD755.js → chunk.L4OUV7W6.js} +5 -5
  131. package/dist/esm/chunks/{chunk.HWWCD755.js.map → chunk.L4OUV7W6.js.map} +2 -2
  132. package/dist/esm/chunks/{chunk.EQCPRLUV.js → chunk.LHWZ4KZU.js} +3 -3
  133. package/dist/esm/chunks/{chunk.EQCPRLUV.js.map → chunk.LHWZ4KZU.js.map} +2 -2
  134. package/dist/esm/chunks/{chunk.KQB2BYBK.js → chunk.LK2DN5KX.js} +4 -4
  135. package/dist/esm/chunks/{chunk.KQB2BYBK.js.map → chunk.LK2DN5KX.js.map} +2 -2
  136. package/dist/esm/chunks/{chunk.7G2S3DCM.js → chunk.LX2HDAIF.js} +2 -2
  137. package/dist/esm/chunks/{chunk.7G2S3DCM.js.map → chunk.LX2HDAIF.js.map} +2 -2
  138. package/dist/esm/chunks/{chunk.YDPSV74L.js → chunk.M3O5VPDD.js} +3 -3
  139. package/dist/esm/chunks/{chunk.YDPSV74L.js.map → chunk.M3O5VPDD.js.map} +0 -0
  140. package/dist/esm/chunks/{chunk.NJRPAX7P.js → chunk.MBZLA635.js} +30 -29
  141. package/dist/esm/chunks/chunk.MBZLA635.js.map +7 -0
  142. package/dist/esm/chunks/{chunk.XJVLHRVJ.js → chunk.MF3IZXQG.js} +2 -2
  143. package/dist/esm/chunks/{chunk.XJVLHRVJ.js.map → chunk.MF3IZXQG.js.map} +2 -2
  144. package/dist/esm/chunks/{chunk.HFELDK4X.js → chunk.MUP3NY6M.js} +9 -9
  145. package/dist/esm/chunks/{chunk.HFELDK4X.js.map → chunk.MUP3NY6M.js.map} +2 -2
  146. package/dist/esm/chunks/{chunk.2F6PST3N.js → chunk.OXS2O7RG.js} +1 -1
  147. package/dist/esm/chunks/{chunk.2F6PST3N.js.map → chunk.OXS2O7RG.js.map} +2 -2
  148. package/dist/esm/chunks/{chunk.RMVJBNCY.js → chunk.PKZ43JNW.js} +4 -4
  149. package/dist/esm/chunks/{chunk.RMVJBNCY.js.map → chunk.PKZ43JNW.js.map} +2 -2
  150. package/dist/esm/chunks/{chunk.3VR7VHL5.js → chunk.PM7D2SUE.js} +1 -1
  151. package/dist/esm/chunks/{chunk.3VR7VHL5.js.map → chunk.PM7D2SUE.js.map} +0 -0
  152. package/dist/esm/chunks/{chunk.WAJDLUSQ.js → chunk.QHHYCB7N.js} +1 -1
  153. package/dist/esm/chunks/{chunk.WAJDLUSQ.js.map → chunk.QHHYCB7N.js.map} +2 -2
  154. package/dist/esm/chunks/{chunk.I5JCM7RT.js → chunk.QWW6A7AF.js} +6 -6
  155. package/dist/esm/chunks/{chunk.I5JCM7RT.js.map → chunk.QWW6A7AF.js.map} +2 -2
  156. package/dist/esm/chunks/{chunk.OYO6NUZY.js → chunk.QXZZ2MTF.js} +1 -1
  157. package/dist/esm/chunks/{chunk.OYO6NUZY.js.map → chunk.QXZZ2MTF.js.map} +2 -2
  158. package/dist/esm/chunks/{chunk.P477KUJ4.js → chunk.QYWAZCBX.js} +3 -3
  159. package/dist/esm/chunks/chunk.QYWAZCBX.js.map +7 -0
  160. package/dist/esm/chunks/{chunk.Y2TDQIA4.js → chunk.RD4RIFOZ.js} +1 -1
  161. package/dist/esm/chunks/{chunk.Y2TDQIA4.js.map → chunk.RD4RIFOZ.js.map} +2 -2
  162. package/dist/esm/chunks/{chunk.YKNYR3NX.js → chunk.RL7ZFLMG.js} +6 -6
  163. package/dist/esm/chunks/{chunk.YKNYR3NX.js.map → chunk.RL7ZFLMG.js.map} +2 -2
  164. package/dist/esm/chunks/{chunk.VEC77KBM.js → chunk.S3UVF647.js} +2 -2
  165. package/dist/esm/chunks/{chunk.VEC77KBM.js.map → chunk.S3UVF647.js.map} +2 -2
  166. package/dist/esm/chunks/{chunk.RWCC6E4O.js → chunk.THKWQXBJ.js} +1 -1
  167. package/dist/esm/chunks/{chunk.RWCC6E4O.js.map → chunk.THKWQXBJ.js.map} +2 -2
  168. package/dist/esm/chunks/{chunk.DVYPTR7X.js → chunk.TIUNGGBF.js} +4 -4
  169. package/dist/esm/chunks/{chunk.DVYPTR7X.js.map → chunk.TIUNGGBF.js.map} +0 -0
  170. package/dist/esm/chunks/{chunk.ZPABBQEA.js → chunk.TM46MNYN.js} +4 -4
  171. package/dist/esm/chunks/{chunk.ZPABBQEA.js.map → chunk.TM46MNYN.js.map} +2 -2
  172. package/dist/esm/chunks/{chunk.7XGNGXLR.js → chunk.TYU4RLZG.js} +1 -1
  173. package/dist/esm/chunks/{chunk.7XGNGXLR.js.map → chunk.TYU4RLZG.js.map} +2 -2
  174. package/dist/esm/chunks/{chunk.MSCWHFJZ.js → chunk.U37G47LH.js} +8 -8
  175. package/dist/esm/chunks/{chunk.MSCWHFJZ.js.map → chunk.U37G47LH.js.map} +2 -2
  176. package/dist/esm/chunks/{chunk.OZAKUOZA.js → chunk.U5ECVIX5.js} +5 -5
  177. package/dist/esm/chunks/{chunk.OZAKUOZA.js.map → chunk.U5ECVIX5.js.map} +2 -2
  178. package/dist/esm/chunks/{chunk.O7DYWQD7.js → chunk.UPW5HUKB.js} +5 -5
  179. package/dist/esm/chunks/{chunk.O7DYWQD7.js.map → chunk.UPW5HUKB.js.map} +2 -2
  180. package/dist/esm/chunks/{chunk.NL6CT7BU.js → chunk.UQ3QTUUB.js} +2 -2
  181. package/dist/esm/chunks/{chunk.NL6CT7BU.js.map → chunk.UQ3QTUUB.js.map} +2 -2
  182. package/dist/esm/chunks/{chunk.JVQP6BJ3.js → chunk.V2ELLBDP.js} +1 -1
  183. package/dist/esm/chunks/{chunk.JVQP6BJ3.js.map → chunk.V2ELLBDP.js.map} +2 -2
  184. package/dist/esm/chunks/{chunk.2LQMHAC7.js → chunk.V6Q2SM6Y.js} +1 -1
  185. package/dist/esm/chunks/{chunk.2LQMHAC7.js.map → chunk.V6Q2SM6Y.js.map} +2 -2
  186. package/dist/esm/chunks/{chunk.U7HKGOBR.js → chunk.VXAPRFMK.js} +4 -4
  187. package/dist/esm/chunks/{chunk.U7HKGOBR.js.map → chunk.VXAPRFMK.js.map} +2 -2
  188. package/dist/esm/chunks/{chunk.H3WRHPWA.js → chunk.VXVE7KEM.js} +4 -4
  189. package/dist/esm/chunks/{chunk.H3WRHPWA.js.map → chunk.VXVE7KEM.js.map} +2 -2
  190. package/dist/esm/chunks/{chunk.P7NOYP4O.js → chunk.WDD2GTIH.js} +1 -1
  191. package/dist/esm/chunks/{chunk.P7NOYP4O.js.map → chunk.WDD2GTIH.js.map} +2 -2
  192. package/dist/esm/chunks/{chunk.RNPIV3BY.js → chunk.WNVZQDNS.js} +1 -1
  193. package/dist/esm/chunks/{chunk.RNPIV3BY.js.map → chunk.WNVZQDNS.js.map} +2 -2
  194. package/dist/esm/chunks/{chunk.V6TRG2CM.js → chunk.WSH4S3GM.js} +2 -2
  195. package/dist/esm/chunks/{chunk.V6TRG2CM.js.map → chunk.WSH4S3GM.js.map} +2 -2
  196. package/dist/esm/chunks/{chunk.HVD3BBQG.js → chunk.XHMNHBZD.js} +2 -2
  197. package/dist/esm/chunks/{chunk.HVD3BBQG.js.map → chunk.XHMNHBZD.js.map} +2 -2
  198. package/dist/esm/chunks/{chunk.DB7ZQBES.js → chunk.YL2NAVJW.js} +1 -1
  199. package/dist/esm/chunks/{chunk.DB7ZQBES.js.map → chunk.YL2NAVJW.js.map} +2 -2
  200. package/dist/esm/chunks/{chunk.FF2RETWV.js → chunk.ZLF2G3YT.js} +11 -11
  201. package/dist/esm/chunks/{chunk.FF2RETWV.js.map → chunk.ZLF2G3YT.js.map} +2 -2
  202. package/dist/esm/chunks/{chunk.EKIW7VYG.js → chunk.ZXIDTDRC.js} +1 -1
  203. package/dist/esm/chunks/{chunk.EKIW7VYG.js.map → chunk.ZXIDTDRC.js.map} +2 -2
  204. package/dist/esm/circular-progress/index.js +1 -1
  205. package/dist/esm/color-picker/index.js +7 -6
  206. package/dist/esm/core/index.js +5 -1
  207. package/dist/esm/core/utils/index.js +5 -1
  208. package/dist/esm/date-picker/index.js +14 -13
  209. package/dist/esm/date-range-picker/index.js +14 -13
  210. package/dist/esm/dialog/index.js +10 -9
  211. package/dist/esm/divider/index.js +1 -1
  212. package/dist/esm/drawer/base/index.js +2 -1
  213. package/dist/esm/drawer/drawer/index.js +3 -2
  214. package/dist/esm/drawer/index.js +6 -5
  215. package/dist/esm/drawer/mini-drawer/index.js +3 -2
  216. package/dist/esm/drawer/modal-drawer/index.js +4 -3
  217. package/dist/esm/expansion-panel/index.js +5 -4
  218. package/dist/esm/file-picker/index.js +5 -4
  219. package/dist/esm/floating-action-button/index.js +2 -2
  220. package/dist/esm/icon/index.js +3 -2
  221. package/dist/esm/icon-button/index.js +5 -4
  222. package/dist/esm/index.js +90 -86
  223. package/dist/esm/inline-message/index.js +1 -1
  224. package/dist/esm/keyboard-shortcut/index.js +1 -1
  225. package/dist/esm/label-value/index.js +1 -1
  226. package/dist/esm/linear-progress/index.js +1 -1
  227. package/dist/esm/list/index.js +3 -3
  228. package/dist/esm/list/list/index.js +3 -3
  229. package/dist/esm/list/list-item/index.js +2 -2
  230. package/dist/esm/list-dropdown/index.js +10 -9
  231. package/dist/esm/menu/index.js +13 -12
  232. package/dist/esm/open-icon/index.js +4 -3
  233. package/dist/esm/page-state/index.js +1 -1
  234. package/dist/esm/paginator/index.js +23 -22
  235. package/dist/esm/popup/index.js +1 -1
  236. package/dist/esm/product-icon/index.js +1 -1
  237. package/dist/esm/profile-card/index.js +7 -6
  238. package/dist/esm/quantity-field/index.js +6 -5
  239. package/dist/esm/radio/index.js +2 -2
  240. package/dist/esm/ripple/index.js +1 -1
  241. package/dist/esm/scaffold/index.js +1 -1
  242. package/dist/esm/select/core/index.js +14 -13
  243. package/dist/esm/select/index.js +21 -20
  244. package/dist/esm/select/option/index.js +1 -1
  245. package/dist/esm/select/option-group/index.js +1 -1
  246. package/dist/esm/select/select/index.js +19 -18
  247. package/dist/esm/select/select-dropdown/index.js +19 -18
  248. package/dist/esm/skeleton/index.js +1 -1
  249. package/dist/esm/slider/index.js +3 -2
  250. package/dist/esm/stepper/index.js +6 -5
  251. package/dist/esm/stepper/step/index.js +5 -4
  252. package/dist/esm/stepper/stepper/index.js +6 -5
  253. package/dist/esm/switch/index.js +3 -2
  254. package/dist/esm/table/index.js +9 -8
  255. package/dist/esm/tabs/index.js +8 -7
  256. package/dist/esm/tabs/tab/index.js +3 -3
  257. package/dist/esm/tabs/tab-bar/index.js +7 -6
  258. package/dist/esm/text-field/index.js +1 -1
  259. package/dist/esm/time-picker/index.js +18 -17
  260. package/dist/esm/toast/index.js +7 -6
  261. package/dist/esm/toolbar/index.js +1 -1
  262. package/dist/esm/tooltip/index.js +1 -1
  263. package/dist/esm/view-switcher/index.js +2 -2
  264. package/dist/esm/view-switcher/view/index.js +1 -1
  265. package/dist/forge-dark.css +1 -1
  266. package/esm/accordion/accordion.d.ts +2 -0
  267. package/esm/accordion/accordion.js +2 -0
  268. package/esm/app-bar/app-bar.d.ts +5 -1
  269. package/esm/app-bar/app-bar.js +5 -1
  270. package/esm/app-bar/help-button/app-bar-help-button.d.ts +5 -0
  271. package/esm/app-bar/help-button/app-bar-help-button.js +5 -0
  272. package/esm/app-bar/menu-button/app-bar-menu-button.d.ts +5 -0
  273. package/esm/app-bar/menu-button/app-bar-menu-button.js +5 -0
  274. package/esm/app-bar/notification-button/app-bar-notification-button.d.ts +5 -0
  275. package/esm/app-bar/notification-button/app-bar-notification-button.js +5 -0
  276. package/esm/app-bar/profile-button/app-bar-profile-button.d.ts +5 -0
  277. package/esm/app-bar/profile-button/app-bar-profile-button.js +5 -0
  278. package/esm/app-bar/search/app-bar-search.d.ts +26 -0
  279. package/esm/app-bar/search/app-bar-search.js +26 -0
  280. package/esm/autocomplete/autocomplete.d.ts +2 -0
  281. package/esm/autocomplete/autocomplete.js +2 -0
  282. package/esm/avatar/avatar.d.ts +2 -0
  283. package/esm/avatar/avatar.js +2 -0
  284. package/esm/backdrop/backdrop.d.ts +2 -0
  285. package/esm/backdrop/backdrop.js +2 -0
  286. package/esm/badge/badge.d.ts +5 -0
  287. package/esm/badge/badge.js +5 -0
  288. package/esm/banner/banner.d.ts +2 -0
  289. package/esm/banner/banner.js +2 -0
  290. package/esm/bottom-sheet/bottom-sheet.d.ts +5 -0
  291. package/esm/bottom-sheet/bottom-sheet.js +5 -0
  292. package/esm/busy-indicator/busy-indicator.d.ts +5 -1
  293. package/esm/busy-indicator/busy-indicator.js +5 -1
  294. package/esm/button/button.d.ts +2 -0
  295. package/esm/button/button.js +2 -0
  296. package/esm/button-toggle/button-toggle/button-toggle.d.ts +5 -0
  297. package/esm/button-toggle/button-toggle/button-toggle.js +5 -0
  298. package/esm/button-toggle/button-toggle-group/button-toggle-group.d.ts +5 -0
  299. package/esm/button-toggle/button-toggle-group/button-toggle-group.js +5 -0
  300. package/esm/calendar/calendar-menu/calendar-menu.d.ts +6 -0
  301. package/esm/calendar/calendar-menu/calendar-menu.js +6 -0
  302. package/esm/calendar/calendar.d.ts +5 -0
  303. package/esm/calendar/calendar.js +5 -0
  304. package/esm/card/card.d.ts +5 -1
  305. package/esm/card/card.js +5 -1
  306. package/esm/checkbox/checkbox.d.ts +2 -0
  307. package/esm/checkbox/checkbox.js +2 -0
  308. package/esm/chip-field/chip-field.d.ts +5 -0
  309. package/esm/chip-field/chip-field.js +5 -0
  310. package/esm/chips/chip/chip.d.ts +2 -0
  311. package/esm/chips/chip/chip.js +2 -0
  312. package/esm/chips/chip-set/chip-set.d.ts +5 -0
  313. package/esm/chips/chip-set/chip-set.js +5 -0
  314. package/esm/circular-progress/circular-progress.d.ts +5 -0
  315. package/esm/circular-progress/circular-progress.js +5 -0
  316. package/esm/color-picker/color-picker.d.ts +5 -0
  317. package/esm/color-picker/color-picker.js +5 -0
  318. package/esm/core/utils/event-utils.d.ts +12 -0
  319. package/esm/core/utils/event-utils.js +16 -0
  320. package/esm/core/utils/index.d.ts +1 -0
  321. package/esm/core/utils/index.js +1 -0
  322. package/esm/date-picker/date-picker.d.ts +5 -1
  323. package/esm/date-picker/date-picker.js +5 -1
  324. package/esm/date-range-picker/date-range-picker.d.ts +5 -1
  325. package/esm/date-range-picker/date-range-picker.js +5 -1
  326. package/esm/dialog/dialog.d.ts +5 -0
  327. package/esm/dialog/dialog.js +5 -0
  328. package/esm/divider/divider.d.ts +2 -0
  329. package/esm/divider/divider.js +2 -0
  330. package/esm/drawer/base/base-drawer-adapter.d.ts +5 -0
  331. package/esm/drawer/base/base-drawer-adapter.js +13 -0
  332. package/esm/drawer/base/base-drawer-foundation.js +2 -0
  333. package/esm/drawer/drawer/drawer.d.ts +5 -0
  334. package/esm/drawer/drawer/drawer.js +5 -0
  335. package/esm/drawer/mini-drawer/mini-drawer.d.ts +5 -0
  336. package/esm/drawer/mini-drawer/mini-drawer.js +5 -0
  337. package/esm/drawer/modal-drawer/modal-drawer.d.ts +5 -0
  338. package/esm/drawer/modal-drawer/modal-drawer.js +5 -0
  339. package/esm/expansion-panel/expansion-panel.d.ts +2 -0
  340. package/esm/expansion-panel/expansion-panel.js +2 -0
  341. package/esm/file-picker/file-picker.d.ts +5 -0
  342. package/esm/file-picker/file-picker.js +5 -0
  343. package/esm/floating-action-button/floating-action-button.d.ts +5 -1
  344. package/esm/floating-action-button/floating-action-button.js +5 -1
  345. package/esm/icon/icon.d.ts +5 -0
  346. package/esm/icon/icon.js +5 -0
  347. package/esm/icon-button/icon-button.d.ts +2 -0
  348. package/esm/icon-button/icon-button.js +2 -0
  349. package/esm/inline-message/inline-message.d.ts +5 -0
  350. package/esm/inline-message/inline-message.js +5 -0
  351. package/esm/keyboard-shortcut/keyboard-shortcut.d.ts +5 -0
  352. package/esm/keyboard-shortcut/keyboard-shortcut.js +5 -0
  353. package/esm/label-value/label-value.d.ts +5 -0
  354. package/esm/label-value/label-value.js +6 -1
  355. package/esm/linear-progress/linear-progress.d.ts +5 -0
  356. package/esm/linear-progress/linear-progress.js +5 -0
  357. package/esm/list/list/list.d.ts +2 -0
  358. package/esm/list/list/list.js +2 -0
  359. package/esm/list/list-item/list-item.d.ts +5 -1
  360. package/esm/list/list-item/list-item.js +5 -1
  361. package/esm/menu/menu.d.ts +5 -0
  362. package/esm/menu/menu.js +5 -0
  363. package/esm/open-icon/open-icon.d.ts +5 -0
  364. package/esm/open-icon/open-icon.js +5 -0
  365. package/esm/page-state/page-state.d.ts +5 -0
  366. package/esm/page-state/page-state.js +5 -0
  367. package/esm/paginator/paginator.d.ts +2 -0
  368. package/esm/paginator/paginator.js +2 -0
  369. package/esm/popup/popup.d.ts +5 -0
  370. package/esm/popup/popup.js +5 -0
  371. package/esm/product-icon/product-icon.d.ts +5 -0
  372. package/esm/product-icon/product-icon.js +5 -0
  373. package/esm/profile-card/profile-card.d.ts +5 -0
  374. package/esm/profile-card/profile-card.js +5 -0
  375. package/esm/quantity-field/quantity-field.d.ts +5 -0
  376. package/esm/quantity-field/quantity-field.js +5 -0
  377. package/esm/radio/radio.d.ts +2 -0
  378. package/esm/radio/radio.js +2 -0
  379. package/esm/ripple/ripple.d.ts +5 -0
  380. package/esm/ripple/ripple.js +5 -0
  381. package/esm/scaffold/scaffold.d.ts +2 -0
  382. package/esm/scaffold/scaffold.js +2 -0
  383. package/esm/select/option/option.d.ts +2 -0
  384. package/esm/select/option/option.js +2 -0
  385. package/esm/select/option-group/option-group.d.ts +2 -0
  386. package/esm/select/option-group/option-group.js +2 -0
  387. package/esm/select/select/select-adapter.js +12 -10
  388. package/esm/select/select/select-foundation.d.ts +2 -0
  389. package/esm/select/select/select-foundation.js +6 -2
  390. package/esm/select/select/select.d.ts +2 -2
  391. package/esm/select/select/select.js +4 -6
  392. package/esm/select/select-dropdown/select-dropdown.d.ts +5 -0
  393. package/esm/select/select-dropdown/select-dropdown.js +5 -0
  394. package/esm/skeleton/skeleton.d.ts +5 -0
  395. package/esm/skeleton/skeleton.js +5 -0
  396. package/esm/slider/slider.d.ts +2 -0
  397. package/esm/slider/slider.js +2 -0
  398. package/esm/stepper/step/step.d.ts +5 -0
  399. package/esm/stepper/step/step.js +5 -0
  400. package/esm/stepper/stepper/stepper.d.ts +5 -0
  401. package/esm/stepper/stepper/stepper.js +5 -0
  402. package/esm/switch/switch.d.ts +2 -0
  403. package/esm/switch/switch.js +2 -0
  404. package/esm/table/table.d.ts +3 -1
  405. package/esm/table/table.js +3 -1
  406. package/esm/tabs/tab/tab.d.ts +5 -0
  407. package/esm/tabs/tab/tab.js +5 -0
  408. package/esm/tabs/tab-bar/tab-bar.d.ts +2 -0
  409. package/esm/tabs/tab-bar/tab-bar.js +2 -0
  410. package/esm/text-field/text-field.d.ts +5 -0
  411. package/esm/text-field/text-field.js +5 -0
  412. package/esm/time-picker/time-picker.d.ts +5 -0
  413. package/esm/time-picker/time-picker.js +5 -0
  414. package/esm/toast/toast.d.ts +2 -0
  415. package/esm/toast/toast.js +2 -0
  416. package/esm/toolbar/toolbar.d.ts +5 -0
  417. package/esm/toolbar/toolbar.js +5 -0
  418. package/esm/tooltip/tooltip.d.ts +5 -1
  419. package/esm/tooltip/tooltip.js +5 -1
  420. package/esm/view-switcher/view/view.d.ts +5 -0
  421. package/esm/view-switcher/view/view.js +5 -0
  422. package/esm/view-switcher/view-switcher.d.ts +5 -0
  423. package/esm/view-switcher/view-switcher.js +5 -0
  424. package/package.json +3 -2
  425. package/styles/label-value/_mixins.scss +10 -7
  426. package/styles/label-value/_variables.scss +1 -0
  427. package/styles/select/select/_selector.scss +4 -2
  428. package/styles/select/select/select.scss +4 -0
  429. package/styles/theme/_theme-values.scss +1 -1
  430. package/styles/theme/_theme.scss +2 -1
  431. package/dist/esm/chunks/chunk.3ZKORL4I.js.map +0 -7
  432. package/dist/esm/chunks/chunk.IWXT6VVJ.js.map +0 -7
  433. package/dist/esm/chunks/chunk.NJRPAX7P.js.map +0 -7
  434. package/dist/esm/chunks/chunk.P477KUJ4.js.map +0 -7
  435. package/dist/esm/chunks/chunk.UM3J4AZ7.js.map +0 -7
  436. package/styles/label-value/_base.scss +0 -252
  437. package/styles/label-value/_core.scss +0 -15
  438. package/styles/label-value/_selector.scss +0 -167
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/tabs/tab-bar/tab-bar-constants.ts", "../../src/tabs/tab-bar/tab-bar-foundation.ts", "../../../../../../node_modules/@material/tab-scroller/constants.ts", "../../../../../../node_modules/@material/tab-scroller/util.ts", "../../../../../../node_modules/@material/tab-scroller/rtl-scroller.ts", "../../../../../../node_modules/@material/tab-scroller/rtl-default-scroller.ts", "../../../../../../node_modules/@material/tab-scroller/rtl-negative-scroller.ts", "../../../../../../node_modules/@material/tab-scroller/rtl-reverse-scroller.ts", "../../../../../../node_modules/@material/tab-scroller/foundation.ts", "../../../../../../node_modules/@material/tab-scroller/component.ts", "../../src/tabs/tab-bar/tab-bar-adapter.ts", "../../src/tabs/tab-bar/tab-bar.ts", "../../src/tabs/tab-bar/index.ts"],
4
- "sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../../constants';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}tab-bar`;\n\nconst attributes = {\n ACTIVE_TAB: 'active-tab',\n LAYOUT_MODE: 'layout-mode',\n LAYOUT_ALIGN: 'layout-align',\n UNDERLINE: 'underline',\n AUTO_ACTIVATE: 'auto-activate',\n STACKED: 'stacked',\n SCROLL_BUTTONS: 'scroll-buttons',\n FORCE_SCROLL_BUTTONS: 'force-scroll-buttons'\n};\n\nconst classes = {\n UNDERLINED: 'forge-tab-bar--underlined',\n ALIGN_CENTER: 'forge-tab-bar--align-center',\n ALIGN_END: 'forge-tab-bar--align-end',\n FIXED: 'forge-tab-bar--fixed',\n STACKED: 'forge-tab-bar--stacked'\n};\n\nconst selectors = {\n ROOT: '.forge-tab-bar',\n TAB_SCROLLER: '.mdc-tab-scroller',\n TAB_SCROLLER_AREA: '.mdc-tab-scroller__scroll-area',\n TAB_SCROLLER_CONTENT: '.mdc-tab-scroller__scroll-content',\n PREV_BUTTON_CONTAINER: '.forge-tab-bar__scroll-prev-container',\n PREV_BUTTON: '#scroll-prev-btn',\n NEXT_BUTTON_CONTAINER: '.forge-tab-bar__scroll-next-container',\n NEXT_BUTTON: '#scroll-next-btn'\n};\n\nconst events = {\n ACTIVATE: `${elementName}-activate`\n};\n\nconst strings = {\n ARROW_LEFT_KEY: 'ArrowLeft',\n ARROW_RIGHT_KEY: 'ArrowRight',\n END_KEY: 'End',\n ENTER_KEY: 'Enter',\n HOME_KEY: 'Home',\n SPACE_KEY: 'Space'\n};\n\nconst numbers = {\n ARROW_LEFT_KEYCODE: 37,\n ARROW_RIGHT_KEYCODE: 39,\n END_KEYCODE: 35,\n ENTER_KEYCODE: 13,\n EXTRA_SCROLL_AMOUNT: 20,\n HOME_KEYCODE: 36,\n SPACE_KEYCODE: 32\n};\n\nexport const TAB_BAR_CONSTANTS = {\n attributes,\n elementName,\n classes,\n selectors,\n events,\n strings,\n numbers\n};\n\nexport interface ITabBarActivateEventData {\n index: number;\n}\n\nexport declare type TabBarLayoutMode = 'fixed' | 'clustered';\nexport declare type TabBarLayoutAlign = 'start' | 'center' | 'end';\n\nexport const ACCEPTABLE_KEYS = [\n strings.ARROW_LEFT_KEY,\n strings.ARROW_RIGHT_KEY,\n strings.END_KEY,\n strings.HOME_KEY,\n strings.ENTER_KEY,\n strings.SPACE_KEY\n];\n\nexport const KEYCODE_MAP = {\n [numbers.ARROW_LEFT_KEYCODE]: strings.ARROW_LEFT_KEY,\n [numbers.ARROW_RIGHT_KEYCODE]: strings.ARROW_RIGHT_KEY,\n [numbers.END_KEYCODE]: strings.END_KEY,\n [numbers.HOME_KEYCODE]: strings.HOME_KEY,\n [numbers.ENTER_KEYCODE]: strings.ENTER_KEY,\n [numbers.SPACE_KEYCODE]: strings.SPACE_KEY\n};\n", "import { ICustomElementFoundation, Platform, isNumber } from '@tylertech/forge-core';\n\nimport { ITabBarAdapter } from './tab-bar-adapter';\nimport { TabBarLayoutMode, TabBarLayoutAlign, TAB_BAR_CONSTANTS, ITabBarActivateEventData, ACCEPTABLE_KEYS, KEYCODE_MAP } from './tab-bar-constants';\nimport { TAB_CONSTANTS, ITabDimensions } from '../tab/tab-constants';\nimport { ITabComponent } from '../tab/tab';\n\nexport interface ITabBarFoundation extends ICustomElementFoundation {\n activeTab: number;\n layoutMode: TabBarLayoutMode;\n layoutAlign: TabBarLayoutAlign;\n underline: boolean;\n autoActivate: boolean;\n stacked: boolean;\n scrollButtons: boolean;\n forceScrollButtons: boolean;\n activateTab(index: number): void;\n scrollIntoView(index: number): void;\n}\n\nexport class TabBarFoundation implements ITabBarFoundation {\n private _isInitialized = false;\n private _activeTab = -1;\n private _layoutMode: TabBarLayoutMode = 'fixed';\n private _layoutAlign: TabBarLayoutAlign = 'start';\n private _underline = false;\n private _autoActivate = false;\n private _stacked = false;\n private _scrollButtons = true;\n private _forceScrollButtons = false;\n private _tabsChangedListener: (evt: Event) => void;\n private _tabInteractedListener: (evt: CustomEvent<void>) => void;\n private _keydownListener: (evt: KeyboardEvent) => void;\n private _scrollPrevClickListener: (evt: MouseEvent) => void;\n private _scrollPrevMousedownListener: (evt: MouseEvent) => void;\n private _scrollNextClickListener: (evt: MouseEvent) => void;\n private _scrollNextMousedownListener: (evt: MouseEvent) => void;\n private _scrollListener: (evt: Event) => void;\n\n constructor(private _adapter: ITabBarAdapter) {\n this._tabsChangedListener = evt => this._onTabsChanged(evt);\n this._tabInteractedListener = evt => this._onTabInteracted(evt);\n this._keydownListener = evt => this._onKeydown(evt);\n this._scrollPrevClickListener = evt => this._onScrollPrevious(evt);\n this._scrollPrevMousedownListener = evt => evt.preventDefault();\n this._scrollNextClickListener = evt => this._onScrollNext(evt);\n this._scrollNextMousedownListener = evt => evt.preventDefault();\n this._scrollListener = evt => this._onScroll(evt);\n }\n\n public initialize(): void {\n this._adapter.initializeTabs(this._activeTab, this._isFixed);\n this._adapter.initializeTabScroller();\n this._adapter.initializeAccessibility();\n this._adapter.addTabChangeListener(this._tabsChangedListener);\n this._adapter.addScrollPreviousListener('click', this._scrollPrevClickListener);\n this._adapter.addScrollPreviousListener('mousedown', this._scrollPrevMousedownListener);\n this._adapter.addScrollNextListener('click', this._scrollNextClickListener);\n this._adapter.addScrollNextListener('mousedown', this._scrollNextMousedownListener);\n this._adapter.addHostListener(TAB_CONSTANTS.events.INTERACTED, this._tabInteractedListener);\n this._adapter.addHostListener('keydown', this._keydownListener);\n this._adapter.addScrollListener(this._scrollListener);\n this._adapter.setUnderline(this._underline);\n this._adapter.setLayoutMode(this._layoutMode);\n this._adapter.setLayoutAlign(this._layoutAlign);\n window.requestAnimationFrame(() => {\n this._syncScrollButtons();\n this._adapter.ensureFocusableTab();\n });\n this._isInitialized = true;\n }\n \n public disconnect(): void {\n this._adapter.destroyTabScroller();\n this._adapter.removeTabChangeListener(this._tabsChangedListener);\n this._adapter.removeHostListener(TAB_CONSTANTS.events.INTERACTED, this._tabInteractedListener);\n this._adapter.removeHostListener('keydown', this._keydownListener);\n this._isInitialized = false;\n }\n\n private _onTabsChanged(evt: Event): void {\n this._adapter.initializeTabs(this._activeTab, this._isFixed);\n this._adapter.ensureFocusableTab();\n\n // We need to wait a full cycle to scroll the active tab into view\n window.setTimeout(() => {\n window.requestAnimationFrame(() => {\n this.scrollIntoView(this._activeTab);\n this._syncScrollButtons();\n });\n });\n }\n\n private _onTabInteracted(evt: CustomEvent<void>): void {\n const activatedTab = evt.target as ITabComponent;\n const activatedTabIndex = this._adapter.getTabIndex(activatedTab);\n \n // Check if the event and requested tab index is valid\n const isTabEvent = activatedTab.tagName.toLowerCase() === TAB_CONSTANTS.elementName;\n const isValidTabIndex = activatedTabIndex !== this._activeTab && this._indexIsInRange(activatedTabIndex);\n if (!isTabEvent || !isValidTabIndex) {\n return;\n }\n\n // Emit the activate event\n const activateEventData: ITabBarActivateEventData = { index: activatedTabIndex };\n const canActivate = this._adapter.emitHostEvent(TAB_BAR_CONSTANTS.events.ACTIVATE, activateEventData, true, true);\n \n // Check if listener prevented default on the activate event, and stop now if so\n if (!canActivate) {\n return;\n }\n\n this.activateTab(activatedTabIndex);\n this._adapter.focusTabAtIndex(activatedTabIndex);\n }\n\n private _onKeydown(evt: KeyboardEvent): void {\n const key = this._getKeyFromEvent(evt);\n\n // Early exit if the event key isn't one of the keyboard navigation keys\n if (!key) {\n return;\n }\n\n // Prevent default behavior for movement keys, but not for activation keys, since :active is used to apply ripple\n if (!this._isActivationKey(key)) {\n evt.preventDefault();\n }\n\n if (this._autoActivate) {\n if (this._isActivationKey(key)) {\n return;\n }\n\n const index = this._determineTargetFromKey(this._activeTab, key);\n if (this._activeTab === index) {\n return;\n }\n\n const activateEventData: ITabBarActivateEventData = { index };\n const canActivate = this._adapter.emitHostEvent(TAB_BAR_CONSTANTS.events.ACTIVATE, activateEventData, true, true);\n\n if (canActivate) {\n this.activateTab(index);\n this._adapter.focusTabAtIndex(index);\n }\n } else {\n const focusedTabIndex = this._adapter.getFocusedTabIndex();\n if (focusedTabIndex === -1) {\n return;\n }\n\n if (this._isActivationKey(key)) {\n const activateEventData: ITabBarActivateEventData = { index: focusedTabIndex };\n const canActivate = this._adapter.emitHostEvent(TAB_BAR_CONSTANTS.events.ACTIVATE, activateEventData, true, true);\n if (canActivate) {\n this.activateTab(focusedTabIndex);\n }\n } else {\n const index = this._determineTargetFromKey(focusedTabIndex, key);\n if (focusedTabIndex === index) {\n return;\n }\n this._adapter.focusTabAtIndex(index);\n this.scrollIntoView(index);\n }\n }\n }\n\n private _onScrollPrevious(evt: MouseEvent): void {\n const scrollAmount = -this._adapter.getOffsetWidth();\n this._adapter.incrementScroll(scrollAmount);\n this._syncScrollButtons();\n }\n \n private _onScrollNext(evt: MouseEvent): void {\n const scrollAmount = this._adapter.getOffsetWidth();\n this._adapter.incrementScroll(scrollAmount);\n this._syncScrollButtons();\n }\n\n private _onScroll(evt: Event): void {\n this._syncScrollButtons();\n }\n\n private _syncScrollButtons(): void {\n const isScrollable = this._isScrollable();\n this._adapter.setPreviousButtonVisibility(isScrollable);\n this._adapter.setNextButtonVisibility(isScrollable);\n if (isScrollable) {\n this._adapter.setPreviousButtonEnabled(this._adapter.isScrolled());\n this._adapter.setNextButtonEnabled(!this._adapter.isScrolledEnd());\n }\n }\n\n /**\n * Determines the index of the adjacent tab closest to either edge of the Tab Bar\n * @param index The index of the tab\n * @param tabDimensions The dimensions of the tab\n * @param scrollPosition The current scroll position\n * @param barWidth The width of the tab bar\n */\n private _findAdjacentTabIndexClosestToEdge(index: number, tabDimensions: ITabDimensions, scrollPosition: number, barWidth: number): number {\n const relativeRootLeft = tabDimensions.rootLeft - scrollPosition;\n const relativeRootRight = tabDimensions.rootRight - scrollPosition - barWidth;\n const relativeRootDelta = relativeRootLeft + relativeRootRight;\n const leftEdgeIsCloser = relativeRootLeft < 0 || relativeRootDelta < 0;\n const rightEdgeIsCloser = relativeRootRight > 0 || relativeRootDelta > 0;\n\n if (leftEdgeIsCloser) {\n return index - 1;\n }\n\n if (rightEdgeIsCloser) {\n return index + 1;\n }\n\n return -1;\n }\n\n /**\n * Calculates the scroll increment that will make the tab at the given index visible\n * @param index The index of the tab\n * @param nextIndex The index of the next tab\n * @param scrollPosition The current scroll position\n * @param barWidth The width of the tab-bar\n */\n private _calculateScrollIncrement(index: number, nextIndex: number, scrollPosition: number, barWidth: number): number {\n const nextTabDimensions = this._adapter.getTabDimensionsAtIndex(nextIndex);\n const relativeContentLeft = nextTabDimensions.contentLeft - scrollPosition - barWidth;\n const relativeContentRight = nextTabDimensions.contentRight - scrollPosition;\n const leftIncrement = relativeContentRight - TAB_BAR_CONSTANTS.numbers.EXTRA_SCROLL_AMOUNT;\n const rightIncrement = relativeContentLeft + TAB_BAR_CONSTANTS.numbers.EXTRA_SCROLL_AMOUNT;\n\n if (nextIndex < index) {\n return Math.min(leftIncrement, 0);\n }\n\n return Math.max(rightIncrement, 0);\n }\n\n /**\n * Private method for determining the index of the destination tab based on what key was pressed\n * @param origin The original index from which to determine the destination\n * @param key The name of the key\n */\n private _determineTargetFromKey(origin: number, key: string, nextIndex?: number): number {\n if (origin === nextIndex) {\n return origin;\n }\n\n const maxIndex = this._adapter.getTabCount() - 1;\n const shouldGoToEnd = key === TAB_BAR_CONSTANTS.strings.END_KEY;\n const shouldDecrement = key === TAB_BAR_CONSTANTS.strings.ARROW_LEFT_KEY;\n const shouldIncrement = key === TAB_BAR_CONSTANTS.strings.ARROW_RIGHT_KEY;\n let index = nextIndex !== undefined ? nextIndex : origin;\n\n if (shouldGoToEnd) {\n index = maxIndex;\n } else if (shouldDecrement) {\n index -= 1;\n } else if (shouldIncrement) {\n index += 1;\n } else {\n index = 0;\n }\n\n if (index < 0) {\n index = maxIndex;\n } else if (index > maxIndex) {\n index = 0;\n }\n\n // If this tab is disabled, then we'll try again...\n if (this._adapter.isTabDisabled(index)) {\n return this._determineTargetFromKey(origin, key, index);\n }\n\n return index;\n }\n\n private _isScrollable(): boolean {\n return this._forceScrollButtons ||\n (this._scrollButtons &&\n !Platform.isMobile &&\n !this._isFixed &&\n this._adapter.getScrollContentWidth() > this._adapter.getOffsetWidth());\n }\n\n private _getKeyFromEvent(evt: KeyboardEvent): string {\n if (ACCEPTABLE_KEYS.includes(evt.key)) {\n return evt.key;\n }\n return KEYCODE_MAP[evt.keyCode];\n }\n\n private _isActivationKey(key: string): boolean {\n return key === TAB_BAR_CONSTANTS.strings.SPACE_KEY || key === TAB_BAR_CONSTANTS.strings.ENTER_KEY;\n }\n\n private _indexIsInRange(index: number): boolean {\n return index >= 0 && index < this._adapter.getTabCount();\n }\n\n public activateTab(index: number): void {\n if (!isNumber(index)) {\n index = -1;\n }\n\n // If we have a currently selected tab we need to deactivate that now\n if (this._activeTab !== -1) {\n this._adapter.deactivateTab(this._activeTab);\n }\n\n // Activate the requested tab\n const previousTabBounds = this._adapter.getTabBounds(this._activeTab);\n this._adapter.activateTab(index, previousTabBounds);\n this._adapter.syncTabIndex(index);\n this._adapter.ensureFocusableTab();\n this.scrollIntoView(index);\n this._activeTab = index;\n this._syncScrollButtons();\n this._adapter.setHostAttribute(TAB_BAR_CONSTANTS.attributes.ACTIVE_TAB, this._activeTab.toString());\n }\n\n public scrollIntoView(index: number): void {\n if (!this._indexIsInRange(index)) {\n return;\n }\n\n if (index === 0) {\n return this._adapter.scrollTo(0);\n }\n\n if (index === this._adapter.getTabCount() - 1) {\n return this._adapter.scrollTo(this._adapter.getScrollContentWidth());\n }\n\n const scrollPosition = this._adapter.getScrollPosition();\n const barWidth = this._adapter.getOffsetWidth();\n const tabDimensions = this._adapter.getTabDimensionsAtIndex(index);\n const nextIndex = this._findAdjacentTabIndexClosestToEdge(index, tabDimensions, scrollPosition, barWidth);\n\n if (!this._indexIsInRange(nextIndex)) {\n return;\n }\n\n const scrollIncrement = this._calculateScrollIncrement(index, nextIndex, scrollPosition, barWidth);\n this._adapter.incrementScroll(scrollIncrement);\n }\n\n /** Gets and sets the active tab index. */\n public get activeTab(): number {\n return this._activeTab;\n }\n public set activeTab(value: number) {\n if (this._activeTab !== value) {\n if (!this._isInitialized) {\n this._activeTab = value;\n this._adapter.setHostAttribute(TAB_BAR_CONSTANTS.attributes.ACTIVE_TAB, this._activeTab.toString());\n } else {\n this.activateTab(value);\n }\n }\n }\n\n private get _isFixed(): boolean {\n return this._layoutMode === 'fixed';\n }\n\n public get layoutMode(): TabBarLayoutMode {\n return this._layoutMode;\n }\n public set layoutMode(value: TabBarLayoutMode) {\n if (this._layoutMode !== value) {\n this._layoutMode = value;\n this._adapter.setLayoutMode(this._layoutMode);\n this._syncScrollButtons();\n }\n }\n\n public get layoutAlign(): TabBarLayoutAlign {\n return this._layoutAlign;\n }\n public set layoutAlign(value: TabBarLayoutAlign) {\n if (this._layoutAlign !== value) {\n this._layoutAlign = value;\n this._adapter.setLayoutAlign(this._layoutAlign);\n }\n }\n\n public get underline(): boolean {\n return this._underline;\n }\n public set underline(value: boolean) {\n if (this._underline !== value) {\n this._underline = value;\n this._adapter.setUnderline(this._underline);\n this._adapter.toggleHostAttribute(TAB_BAR_CONSTANTS.attributes.UNDERLINE, this._underline);\n }\n }\n\n public get stacked(): boolean {\n return this._stacked;\n }\n public set stacked(value: boolean) {\n if (this._stacked !== value) {\n this._stacked = value;\n this._adapter.setStacked(this._stacked);\n if (this._stacked) {\n this._adapter.setHostAttribute(TAB_BAR_CONSTANTS.attributes.STACKED);\n } else {\n this._adapter.removeHostAttribute(TAB_BAR_CONSTANTS.attributes.STACKED);\n }\n }\n }\n\n public get scrollButtons(): boolean {\n return this._scrollButtons;\n }\n public set scrollButtons(value: boolean) {\n if (this._scrollButtons !== value) {\n this._scrollButtons = value;\n this._adapter.setHostAttribute(TAB_BAR_CONSTANTS.attributes.SCROLL_BUTTONS, this._scrollButtons.toString());\n if (this._isInitialized) {\n this._syncScrollButtons();\n }\n }\n }\n\n public get forceScrollButtons(): boolean {\n return this._forceScrollButtons;\n }\n public set forceScrollButtons(value: boolean) {\n if (this._forceScrollButtons !== value) {\n this._forceScrollButtons = value;\n if (this._isInitialized) {\n this._syncScrollButtons();\n }\n }\n }\n\n public get autoActivate(): boolean {\n return this._autoActivate;\n }\n public set autoActivate(value: boolean) {\n if (this._autoActivate !== value) {\n this._autoActivate = value;\n this._adapter.setHostAttribute(TAB_BAR_CONSTANTS.attributes.AUTO_ACTIVATE, this._autoActivate.toString());\n }\n }\n}\n", null, null, null, null, null, null, null, null, "import { MDCTabScroller } from '@material/tab-scroller';\nimport { getShadowElement, removeClass, isFunction, getActiveElement, toggleClass } from '@tylertech/forge-core';\n\nimport { IBaseAdapter, BaseAdapter } from '../../core/base/base-adapter';\nimport { ITabBarComponent } from './tab-bar';\nimport { TAB_BAR_CONSTANTS, TabBarLayoutMode, TabBarLayoutAlign } from './tab-bar-constants';\nimport { ITabComponent } from '../tab/tab';\nimport { TAB_CONSTANTS, ITabDimensions } from '../tab/tab-constants';\n\nexport interface ITabBarAdapter extends IBaseAdapter {\n initializeTabs(activeTabIndex: number, stretch: boolean): void;\n initializeTabScroller(): void;\n initializeAccessibility(): void;\n destroyTabScroller(): void;\n addTabChangeListener(listener: (evt: Event) => void): void;\n removeTabChangeListener(listener: (evt: Event) => void): void;\n addScrollListener(listener: (evt: Event) => void): void;\n getTabIndex(tab: ITabComponent): number;\n getTabCount(): number;\n activateTab(index: number, previousTabBounds?: DOMRect): void;\n deactivateTab(index: number): void;\n syncTabIndex(index: number): void;\n getTabBounds(index: number): DOMRect | undefined;\n setUnderline(value: boolean): void;\n setStacked(value: boolean): void;\n scrollTo(scrollX: number): void;\n getScrollContentWidth(): number;\n getScrollPosition(): number;\n getOffsetWidth(): number;\n getTabDimensionsAtIndex(index: number): ITabDimensions;\n incrementScroll(scrollXIncrement: number): void;\n isScrolled(): boolean;\n isScrolledEnd(): boolean;\n getFocusedTabIndex(): number;\n focusTabAtIndex(index: number): void;\n setLayoutMode(value: TabBarLayoutMode): void;\n setLayoutAlign(value: TabBarLayoutAlign): void;\n setPreviousButtonVisibility(value: boolean): void;\n setPreviousButtonEnabled(value: boolean): void;\n setNextButtonVisibility(value: boolean): void;\n setNextButtonEnabled(value: boolean): void;\n addScrollPreviousListener(type: string, listener: (evt: MouseEvent) => void): void;\n addScrollNextListener(type: string, listener: (evt: MouseEvent) => void): void;\n isTabDisabled(index: number): boolean;\n ensureFocusableTab(): void;\n}\n\nexport class TabBarAdapter extends BaseAdapter<ITabBarComponent> implements ITabBarAdapter {\n private _rootElement: HTMLElement;\n private _defaultSlotElement: HTMLSlotElement;\n private _tabScrollElement: HTMLElement;\n private _tabScrollAreaElement: HTMLElement;\n private _tabScrollContentElement: HTMLElement;\n private _tabScroller: MDCTabScroller | undefined;\n private _tabs: ITabComponent[] = [];\n private _prevButtonContainerElement: HTMLElement;\n private _nextButtonContainerElement: HTMLElement;\n private _prevButtonElement: HTMLButtonElement;\n private _nextButtonElement: HTMLButtonElement;\n\n constructor(component: ITabBarComponent) {\n super(component);\n this._rootElement = getShadowElement(this._component, TAB_BAR_CONSTANTS.selectors.ROOT);\n this._tabScrollElement = getShadowElement(this._component, TAB_BAR_CONSTANTS.selectors.TAB_SCROLLER);\n this._tabScrollAreaElement = getShadowElement(this._component, TAB_BAR_CONSTANTS.selectors.TAB_SCROLLER_AREA);\n this._tabScrollContentElement = getShadowElement(this._component, TAB_BAR_CONSTANTS.selectors.TAB_SCROLLER_CONTENT);\n this._defaultSlotElement = getShadowElement(this._component, TAB_CONSTANTS.selectors.DEFAULT_SLOT) as HTMLSlotElement;\n this._prevButtonContainerElement = getShadowElement(this._component, TAB_BAR_CONSTANTS.selectors.PREV_BUTTON_CONTAINER);\n this._prevButtonElement = getShadowElement(this._component, TAB_BAR_CONSTANTS.selectors.PREV_BUTTON) as HTMLButtonElement;\n this._nextButtonContainerElement = getShadowElement(this._component, TAB_BAR_CONSTANTS.selectors.NEXT_BUTTON_CONTAINER);\n this._nextButtonElement = getShadowElement(this._component, TAB_BAR_CONSTANTS.selectors.NEXT_BUTTON) as HTMLButtonElement;\n }\n\n public initializeTabs(activeTabIndex: number, stretch: boolean): void {\n this._tabs = this._getTabs();\n\n if (!this._tabs.length) {\n return;\n }\n\n this._tabs.forEach(tab => {\n tab.active = false;\n tab.stretch = stretch;\n });\n\n // Set the initial active tab\n if (activeTabIndex >= 0 && activeTabIndex < this._tabs.length) {\n this._tabs[activeTabIndex].active = true;\n } else {\n this.ensureFocusableTab();\n }\n }\n\n public initializeTabScroller(): void {\n this._tabScroller = new MDCTabScroller(this._tabScrollElement);\n }\n\n public initializeAccessibility(): void {\n if (!this._component.hasAttribute('role')) {\n this._component.setAttribute('role', 'tablist');\n }\n }\n\n public destroyTabScroller(): void {\n if (this._tabScroller) {\n this._tabScroller.destroy();\n }\n }\n\n public addTabChangeListener(listener: (evt: Event) => void): void {\n this._defaultSlotElement.addEventListener('slotchange', listener);\n }\n\n public removeTabChangeListener(listener: (evt: Event) => void): void {\n this._defaultSlotElement.removeEventListener('slotchange', listener);\n }\n\n public addScrollListener(listener: (evt: Event) => void): void {\n this._tabScrollAreaElement.addEventListener('scroll', listener);\n }\n\n public getTabIndex(tab: ITabComponent): number {\n return this._tabs.indexOf(tab);\n }\n\n public getTabCount(): number {\n return this._tabs.length;\n }\n\n public activateTab(index: number, previousTabBounds?: DOMRect): void {\n const tab = this._getTabByIndex(index);\n if (tab) {\n tab.activate(previousTabBounds);\n }\n }\n\n public deactivateTab(index: number): void {\n const tab = this._getTabByIndex(index);\n if (tab) {\n tab.deactivate();\n }\n }\n\n public syncTabIndex(index: number): void {\n const tabs = this._getTabs();\n const activeTab = tabs[index];\n tabs.filter(t => t !== activeTab)\n .forEach(t => t.setTabIndex(-1));\n }\n\n public getTabBounds(index: number): DOMRect | undefined {\n const tab = this._getTabByIndex(index);\n if (tab) {\n return tab.computeIndicatorBounds();\n }\n return undefined;\n }\n\n public setUnderline(value: boolean): void {\n toggleClass(this._rootElement, value, TAB_BAR_CONSTANTS.classes.UNDERLINED);\n }\n \n public setStacked(value: boolean): void {\n toggleClass(this._rootElement, value, TAB_BAR_CONSTANTS.classes.STACKED);\n }\n\n public scrollTo(scrollX: number): void {\n if (this._tabScroller) {\n this._tabScroller.scrollTo(scrollX);\n }\n }\n\n public getScrollContentWidth(): number {\n return this._tabScroller ? this._tabScroller.getScrollContentWidth() : 0;\n }\n\n public getScrollPosition(): number {\n return this._tabScroller ? this._tabScroller.getScrollPosition() : 0;\n }\n\n public getOffsetWidth(): number {\n return this._tabScrollElement.offsetWidth;\n }\n\n public getTabDimensionsAtIndex(index: number): ITabDimensions {\n const tab = this._getTabByIndex(index);\n if (tab) {\n return tab.computeDimensions();\n }\n return {\n rootLeft: 0,\n rootRight: 0,\n contentLeft: 0,\n contentRight: 0\n };\n }\n\n public incrementScroll(scrollXIncrement: number): void {\n if (this._tabScroller) {\n this._tabScroller.incrementScroll(scrollXIncrement);\n }\n }\n\n public isScrolled(): boolean {\n const position = this._tabScrollAreaElement.scrollLeft;\n return position > 0;\n }\n\n public isScrolledEnd(): boolean {\n const position = Math.round(this._tabScrollAreaElement.scrollLeft);\n const scrollWidth = Math.round(this._tabScrollContentElement.scrollWidth - this._tabScrollElement.offsetWidth);\n return position >= scrollWidth;\n }\n\n public getFocusedTabIndex(): number {\n const activeElement = getActiveElement() as ITabComponent;\n return this._tabs.findIndex(tab => {\n if (tab === activeElement) {\n return true;\n }\n return !!(tab.shadowRoot as ShadowRoot).contains(activeElement);\n });\n }\n\n public focusTabAtIndex(index: number): void {\n const tab = this._getTabByIndex(index);\n if (tab) {\n return tab.focus();\n }\n }\n\n public setLayoutMode(value: TabBarLayoutMode): void {\n const isFixed = value === 'fixed';\n toggleClass(this._rootElement, isFixed, TAB_BAR_CONSTANTS.classes.FIXED);\n this._tabs.forEach(tab => tab.stretch = isFixed);\n }\n\n public setLayoutAlign(value: TabBarLayoutAlign): void {\n removeClass([\n TAB_BAR_CONSTANTS.classes.ALIGN_CENTER,\n TAB_BAR_CONSTANTS.classes.ALIGN_END\n ], this._rootElement);\n switch (value) {\n case 'center':\n this._rootElement.classList.add(TAB_BAR_CONSTANTS.classes.ALIGN_CENTER);\n break;\n case 'end':\n this._rootElement.classList.add(TAB_BAR_CONSTANTS.classes.ALIGN_END);\n break;\n }\n }\n\n public setPreviousButtonVisibility(value: boolean): void {\n if (value) {\n this._prevButtonContainerElement.style.removeProperty('display');\n } else {\n this._prevButtonContainerElement.style.display = 'none';\n }\n }\n\n public setPreviousButtonEnabled(value: boolean): void {\n this._prevButtonElement.disabled = !value;\n }\n\n public setNextButtonVisibility(value: boolean): void {\n if (value) {\n this._nextButtonContainerElement.style.removeProperty('display');\n } else {\n this._nextButtonContainerElement.style.display = 'none';\n }\n }\n\n public setNextButtonEnabled(value: boolean): void {\n this._nextButtonElement.disabled = !value;\n }\n\n public addScrollPreviousListener(type: string, listener: (evt: MouseEvent) => void): void {\n this._prevButtonElement.addEventListener(type, listener);\n }\n \n public addScrollNextListener(type: string, listener: (evt: MouseEvent) => void): void {\n this._nextButtonElement.addEventListener(type, listener);\n }\n\n public isTabDisabled(index: number): boolean {\n const tab = this._getTabByIndex(index);\n return tab ? tab.disabled : true;\n }\n\n public ensureFocusableTab(): void {\n const tabs = this._getTabs();\n const hasActiveTab = tabs.some(tab => tab.active);\n if (!hasActiveTab && tabs.length) {\n const firstTab = tabs[0];\n if (isFunction(firstTab.setTabIndex)) {\n tabs[0].setTabIndex(0);\n }\n }\n }\n\n private _getTabs(): ITabComponent[] {\n return Array.from(this._component.querySelectorAll(TAB_CONSTANTS.elementName));\n }\n\n private _getTabByIndex(index: number): ITabComponent {\n return this._tabs[index];\n }\n}\n", "import { CustomElement, attachShadowTemplate, coerceNumber, coerceBoolean, FoundationProperty } from '@tylertech/forge-core';\nimport { tylIconKeyboardArrowLeft, tylIconKeyboardArrowRight } from '@tylertech/tyler-icons/standard';\nimport { TabComponent } from '../tab/tab';\nimport { IconButtonComponent } from '../../icon-button';\nimport { TAB_BAR_CONSTANTS, TabBarLayoutMode, TabBarLayoutAlign, ITabBarActivateEventData } from './tab-bar-constants';\nimport { TabBarFoundation } from './tab-bar-foundation';\nimport { TabBarAdapter } from './tab-bar-adapter';\nimport { IconComponent, IconRegistry } from '../../icon';\nimport { BaseComponent, IBaseComponent } from '../../core/base/base-component';\n\nconst template = '<template><div class=\\\"forge-tab-bar\\\" part=\\\"root\\\"><div class=\\\"forge-tab-bar__scroll-prev-container\\\" part=\\\"previous-container\\\"><forge-icon-button part=\\\"previous-button\\\"><button type=\\\"button\\\" tabindex=\\\"-1\\\" aria-label=\\\"Scroll left\\\" id=\\\"scroll-prev-btn\\\" part=\\\"previous-button-element\\\"><forge-icon name=\\\"keyboard_arrow_left\\\" part=\\\"previous-button-icon\\\"></forge-icon></button></forge-icon-button></div><div class=\\\"mdc-tab-scroller\\\" part=\\\"tab-scroller\\\"><div class=\\\"mdc-tab-scroller__scroll-area\\\" part=\\\"scroll-area\\\"><div class=\\\"mdc-tab-scroller__scroll-content\\\" part=\\\"scroll-content\\\"><slot></slot></div></div></div><div class=\\\"forge-tab-bar__scroll-next-container\\\" part=\\\"next-container\\\"><forge-icon-button part=\\\"next-button\\\"><button type=\\\"button\\\" tabindex=\\\"-1\\\" aria-label=\\\"Scroll right\\\" id=\\\"scroll-next-btn\\\" part=\\\"next-button-element\\\"><forge-icon name=\\\"keyboard_arrow_right\\\" part=\\\"next-button-icon\\\"></forge-icon></button></forge-icon-button></div></div></template>';\nconst 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:#3f51b5;color:var(--mdc-theme-primary,#3f51b5)}.forge-icon-button--on::after,.forge-icon-button--on::before{background-color:#3f51b5;background-color:var(--mdc-ripple-color,var(--mdc-theme-primary,#3f51b5))}.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:#3f51b5;background-color:var(--mdc-theme-primary,#3f51b5);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)}.mdc-tab-scroller{overflow-y:hidden}.mdc-tab-scroller.mdc-tab-scroller--animating .mdc-tab-scroller__scroll-content{-webkit-transition:250ms -webkit-transform cubic-bezier(.4, 0, .2, 1);transition:250ms -webkit-transform cubic-bezier(.4, 0, .2, 1);transition:250ms transform cubic-bezier(.4, 0, .2, 1);transition:250ms transform cubic-bezier(.4, 0, .2, 1),250ms -webkit-transform cubic-bezier(.4, 0, .2, 1)}.mdc-tab-scroller__test{position:absolute;top:-9999px;width:100px;height:100px;overflow-x:scroll}.mdc-tab-scroller__scroll-area{-webkit-overflow-scrolling:touch;display:-webkit-box;display:flex;overflow-x:hidden}.mdc-tab-scroller__scroll-area::-webkit-scrollbar,.mdc-tab-scroller__test::-webkit-scrollbar{display:none}.mdc-tab-scroller__scroll-area--scroll{overflow-x:scroll}.mdc-tab-scroller__scroll-content{position:relative;display:-webkit-box;display:flex;-webkit-box-flex:1;flex:1 0 auto;-webkit-transform:none;transform:none;will-change:transform}.mdc-tab-scroller--align-start .mdc-tab-scroller__scroll-content{-webkit-box-pack:start;justify-content:flex-start}.mdc-tab-scroller--align-end .mdc-tab-scroller__scroll-content{-webkit-box-pack:end;justify-content:flex-end}.mdc-tab-scroller--align-center .mdc-tab-scroller__scroll-content{-webkit-box-pack:center;justify-content:center}.mdc-tab-scroller--animating .mdc-tab-scroller__scroll-area{-webkit-overflow-scrolling:auto}.forge-tab-bar{height:48px;height:var(--forge-tab-bar-height,48px);display:-webkit-box;display:flex;position:relative}.forge-tab-bar--underlined::after{border-bottom-color:#e0e0e0;border-bottom-color:var(--forge-theme-border-color,#e0e0e0);content:\\\"\\\";border-bottom-width:1px;border-bottom-style:solid;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;position:absolute;bottom:0;left:0;right:0}.forge-tab-bar--align-center .mdc-tab-scroller__scroll-content{-webkit-box-pack:center;justify-content:center}.forge-tab-bar--align-end .mdc-tab-scroller__scroll-content{-webkit-box-pack:end;justify-content:flex-end}.forge-tab-bar--stacked{height:72px;height:var(--forge-tab-bar-height,72px);-webkit-box-align:center;align-items:center}.forge-tab-bar--stacked .mdc-tab-scroller{height:100%}.mdc-tab-scroller{z-index:1;width:100%}.mdc-tab-scroller__scroll-area{height:100%;overflow-x:auto;scrollbar-width:none}:host{display:block;overflow:hidden}:host([hidden]){display:none}';\n\nexport interface ITabBarComponent extends IBaseComponent {\n activeTab: number;\n layoutMode: TabBarLayoutMode;\n layoutAlign: TabBarLayoutAlign;\n underline: boolean;\n autoActivate: boolean;\n stacked: boolean;\n scrollButtons: boolean;\n forceScrollButtons: boolean;\n activateTab(index: number): void;\n scrollTabIntoView(index: number): void;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-tab-bar': ITabBarComponent;\n }\n\n interface HTMLElementEventMap {\n 'forge-tab-bar-activate': CustomEvent<ITabBarActivateEventData>;\n }\n}\n\n/**\n * The custom element class behind the `<forge-tab-bar>` element.\n */\n@CustomElement({\n name: TAB_BAR_CONSTANTS.elementName,\n dependencies: [\n TabComponent,\n IconButtonComponent,\n IconComponent\n ]\n})\nexport class TabBarComponent extends BaseComponent implements ITabBarComponent {\n public static get observedAttributes(): string[] {\n return [\n TAB_BAR_CONSTANTS.attributes.ACTIVE_TAB,\n TAB_BAR_CONSTANTS.attributes.LAYOUT_MODE,\n TAB_BAR_CONSTANTS.attributes.LAYOUT_ALIGN,\n TAB_BAR_CONSTANTS.attributes.UNDERLINE,\n TAB_BAR_CONSTANTS.attributes.AUTO_ACTIVATE,\n TAB_BAR_CONSTANTS.attributes.STACKED,\n TAB_BAR_CONSTANTS.attributes.SCROLL_BUTTONS,\n TAB_BAR_CONSTANTS.attributes.FORCE_SCROLL_BUTTONS\n ];\n }\n\n private _foundation: TabBarFoundation;\n\n constructor() {\n super();\n IconRegistry.define([tylIconKeyboardArrowLeft, tylIconKeyboardArrowRight]);\n attachShadowTemplate(this, template, styles);\n this._foundation = new TabBarFoundation(new TabBarAdapter(this));\n }\n\n public connectedCallback(): void {\n this._foundation.initialize();\n }\n\n public disconnectedCallback(): void {\n this._foundation.disconnect();\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n switch (name) {\n case TAB_BAR_CONSTANTS.attributes.ACTIVE_TAB:\n this.activeTab = coerceNumber(newValue);\n break;\n case TAB_BAR_CONSTANTS.attributes.LAYOUT_MODE:\n this.layoutMode = newValue as TabBarLayoutMode;\n break;\n case TAB_BAR_CONSTANTS.attributes.LAYOUT_ALIGN:\n this.layoutAlign = newValue as TabBarLayoutAlign;\n break;\n case TAB_BAR_CONSTANTS.attributes.UNDERLINE:\n this.underline = coerceBoolean(newValue);\n break;\n case TAB_BAR_CONSTANTS.attributes.AUTO_ACTIVATE:\n this.autoActivate = coerceBoolean(newValue);\n break;\n case TAB_BAR_CONSTANTS.attributes.STACKED:\n this.stacked = coerceBoolean(newValue);\n break;\n case TAB_BAR_CONSTANTS.attributes.SCROLL_BUTTONS:\n this.scrollButtons = coerceBoolean(newValue);\n break;\n case TAB_BAR_CONSTANTS.attributes.FORCE_SCROLL_BUTTONS:\n this.forceScrollButtons = coerceBoolean(newValue);\n break;\n }\n }\n\n /** Gets and sets the active tab index. */\n @FoundationProperty()\n public activeTab: number;\n\n /** Gets/sets the layout mode that controls how the tabs are sized and rendered. */\n @FoundationProperty()\n public layoutMode: TabBarLayoutMode;\n\n /** Gets/sets the layout alignment. Only pertains to non-full width layout modes. */\n @FoundationProperty()\n public layoutAlign: TabBarLayoutAlign;\n\n /** Gets/sets whether the component displays an underline or not. Default is `false`. */\n @FoundationProperty()\n public underline: boolean;\n\n /** Gets/sets whether tabs are auto-activated when using arrow keys. Default is `true` */\n @FoundationProperty()\n public autoActivate: boolean;\n\n /** Gets/sets whether the tabs are displayed with as their stacked variant. Default is `false`. */\n @FoundationProperty()\n public stacked: boolean;\n\n /** Gets/sets whether the scroll buttons can be displayed or not. Default is `true`. The component handles visibility automatically. */\n @FoundationProperty()\n public scrollButtons: boolean;\n\n /** Gets/sets whether the scroll buttons are visible indefinitely or not. Default is `false`. */\n @FoundationProperty()\n public forceScrollButtons: boolean;\n\n /**\n * Activates the tab at the given index.\n * @param index The index of the tab.\n */\n public activateTab(index: number): void {\n this._foundation.activateTab(index);\n }\n\n /**\n * Scrolls the tab at the given index into view.\n * @param index The index of the tab.\n */\n public scrollTabIntoView(index: number): void {\n this._foundation.scrollIntoView(index);\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { TabBarComponent } from './tab-bar';\n\nexport * from './tab-bar-adapter';\nexport * from './tab-bar-constants';\nexport * from './tab-bar-foundation';\nexport * from './tab-bar';\n\nexport function defineTabBarComponent(): void {\n defineCustomElement(TabBarComponent);\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../../constants';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}tab-bar`;\n\nconst attributes = {\n ACTIVE_TAB: 'active-tab',\n LAYOUT_MODE: 'layout-mode',\n LAYOUT_ALIGN: 'layout-align',\n UNDERLINE: 'underline',\n AUTO_ACTIVATE: 'auto-activate',\n STACKED: 'stacked',\n SCROLL_BUTTONS: 'scroll-buttons',\n FORCE_SCROLL_BUTTONS: 'force-scroll-buttons'\n};\n\nconst classes = {\n UNDERLINED: 'forge-tab-bar--underlined',\n ALIGN_CENTER: 'forge-tab-bar--align-center',\n ALIGN_END: 'forge-tab-bar--align-end',\n FIXED: 'forge-tab-bar--fixed',\n STACKED: 'forge-tab-bar--stacked'\n};\n\nconst selectors = {\n ROOT: '.forge-tab-bar',\n TAB_SCROLLER: '.mdc-tab-scroller',\n TAB_SCROLLER_AREA: '.mdc-tab-scroller__scroll-area',\n TAB_SCROLLER_CONTENT: '.mdc-tab-scroller__scroll-content',\n PREV_BUTTON_CONTAINER: '.forge-tab-bar__scroll-prev-container',\n PREV_BUTTON: '#scroll-prev-btn',\n NEXT_BUTTON_CONTAINER: '.forge-tab-bar__scroll-next-container',\n NEXT_BUTTON: '#scroll-next-btn'\n};\n\nconst events = {\n ACTIVATE: `${elementName}-activate`\n};\n\nconst strings = {\n ARROW_LEFT_KEY: 'ArrowLeft',\n ARROW_RIGHT_KEY: 'ArrowRight',\n END_KEY: 'End',\n ENTER_KEY: 'Enter',\n HOME_KEY: 'Home',\n SPACE_KEY: 'Space'\n};\n\nconst numbers = {\n ARROW_LEFT_KEYCODE: 37,\n ARROW_RIGHT_KEYCODE: 39,\n END_KEYCODE: 35,\n ENTER_KEYCODE: 13,\n EXTRA_SCROLL_AMOUNT: 20,\n HOME_KEYCODE: 36,\n SPACE_KEYCODE: 32\n};\n\nexport const TAB_BAR_CONSTANTS = {\n attributes,\n elementName,\n classes,\n selectors,\n events,\n strings,\n numbers\n};\n\nexport interface ITabBarActivateEventData {\n index: number;\n}\n\nexport declare type TabBarLayoutMode = 'fixed' | 'clustered';\nexport declare type TabBarLayoutAlign = 'start' | 'center' | 'end';\n\nexport const ACCEPTABLE_KEYS = [\n strings.ARROW_LEFT_KEY,\n strings.ARROW_RIGHT_KEY,\n strings.END_KEY,\n strings.HOME_KEY,\n strings.ENTER_KEY,\n strings.SPACE_KEY\n];\n\nexport const KEYCODE_MAP = {\n [numbers.ARROW_LEFT_KEYCODE]: strings.ARROW_LEFT_KEY,\n [numbers.ARROW_RIGHT_KEYCODE]: strings.ARROW_RIGHT_KEY,\n [numbers.END_KEYCODE]: strings.END_KEY,\n [numbers.HOME_KEYCODE]: strings.HOME_KEY,\n [numbers.ENTER_KEYCODE]: strings.ENTER_KEY,\n [numbers.SPACE_KEYCODE]: strings.SPACE_KEY\n};\n", "import { ICustomElementFoundation, Platform, isNumber } from '@tylertech/forge-core';\n\nimport { ITabBarAdapter } from './tab-bar-adapter';\nimport { TabBarLayoutMode, TabBarLayoutAlign, TAB_BAR_CONSTANTS, ITabBarActivateEventData, ACCEPTABLE_KEYS, KEYCODE_MAP } from './tab-bar-constants';\nimport { TAB_CONSTANTS, ITabDimensions } from '../tab/tab-constants';\nimport { ITabComponent } from '../tab/tab';\n\nexport interface ITabBarFoundation extends ICustomElementFoundation {\n activeTab: number;\n layoutMode: TabBarLayoutMode;\n layoutAlign: TabBarLayoutAlign;\n underline: boolean;\n autoActivate: boolean;\n stacked: boolean;\n scrollButtons: boolean;\n forceScrollButtons: boolean;\n activateTab(index: number): void;\n scrollIntoView(index: number): void;\n}\n\nexport class TabBarFoundation implements ITabBarFoundation {\n private _isInitialized = false;\n private _activeTab = -1;\n private _layoutMode: TabBarLayoutMode = 'fixed';\n private _layoutAlign: TabBarLayoutAlign = 'start';\n private _underline = false;\n private _autoActivate = false;\n private _stacked = false;\n private _scrollButtons = true;\n private _forceScrollButtons = false;\n private _tabsChangedListener: (evt: Event) => void;\n private _tabInteractedListener: (evt: CustomEvent<void>) => void;\n private _keydownListener: (evt: KeyboardEvent) => void;\n private _scrollPrevClickListener: (evt: MouseEvent) => void;\n private _scrollPrevMousedownListener: (evt: MouseEvent) => void;\n private _scrollNextClickListener: (evt: MouseEvent) => void;\n private _scrollNextMousedownListener: (evt: MouseEvent) => void;\n private _scrollListener: (evt: Event) => void;\n\n constructor(private _adapter: ITabBarAdapter) {\n this._tabsChangedListener = evt => this._onTabsChanged(evt);\n this._tabInteractedListener = evt => this._onTabInteracted(evt);\n this._keydownListener = evt => this._onKeydown(evt);\n this._scrollPrevClickListener = evt => this._onScrollPrevious(evt);\n this._scrollPrevMousedownListener = evt => evt.preventDefault();\n this._scrollNextClickListener = evt => this._onScrollNext(evt);\n this._scrollNextMousedownListener = evt => evt.preventDefault();\n this._scrollListener = evt => this._onScroll(evt);\n }\n\n public initialize(): void {\n this._adapter.initializeTabs(this._activeTab, this._isFixed);\n this._adapter.initializeTabScroller();\n this._adapter.initializeAccessibility();\n this._adapter.addTabChangeListener(this._tabsChangedListener);\n this._adapter.addScrollPreviousListener('click', this._scrollPrevClickListener);\n this._adapter.addScrollPreviousListener('mousedown', this._scrollPrevMousedownListener);\n this._adapter.addScrollNextListener('click', this._scrollNextClickListener);\n this._adapter.addScrollNextListener('mousedown', this._scrollNextMousedownListener);\n this._adapter.addHostListener(TAB_CONSTANTS.events.INTERACTED, this._tabInteractedListener);\n this._adapter.addHostListener('keydown', this._keydownListener);\n this._adapter.addScrollListener(this._scrollListener);\n this._adapter.setUnderline(this._underline);\n this._adapter.setLayoutMode(this._layoutMode);\n this._adapter.setLayoutAlign(this._layoutAlign);\n window.requestAnimationFrame(() => {\n this._syncScrollButtons();\n this._adapter.ensureFocusableTab();\n });\n this._isInitialized = true;\n }\n \n public disconnect(): void {\n this._adapter.destroyTabScroller();\n this._adapter.removeTabChangeListener(this._tabsChangedListener);\n this._adapter.removeHostListener(TAB_CONSTANTS.events.INTERACTED, this._tabInteractedListener);\n this._adapter.removeHostListener('keydown', this._keydownListener);\n this._isInitialized = false;\n }\n\n private _onTabsChanged(evt: Event): void {\n this._adapter.initializeTabs(this._activeTab, this._isFixed);\n this._adapter.ensureFocusableTab();\n\n // We need to wait a full cycle to scroll the active tab into view\n window.setTimeout(() => {\n window.requestAnimationFrame(() => {\n this.scrollIntoView(this._activeTab);\n this._syncScrollButtons();\n });\n });\n }\n\n private _onTabInteracted(evt: CustomEvent<void>): void {\n const activatedTab = evt.target as ITabComponent;\n const activatedTabIndex = this._adapter.getTabIndex(activatedTab);\n \n // Check if the event and requested tab index is valid\n const isTabEvent = activatedTab.tagName.toLowerCase() === TAB_CONSTANTS.elementName;\n const isValidTabIndex = activatedTabIndex !== this._activeTab && this._indexIsInRange(activatedTabIndex);\n if (!isTabEvent || !isValidTabIndex) {\n return;\n }\n\n // Emit the activate event\n const activateEventData: ITabBarActivateEventData = { index: activatedTabIndex };\n const canActivate = this._adapter.emitHostEvent(TAB_BAR_CONSTANTS.events.ACTIVATE, activateEventData, true, true);\n \n // Check if listener prevented default on the activate event, and stop now if so\n if (!canActivate) {\n return;\n }\n\n this.activateTab(activatedTabIndex);\n this._adapter.focusTabAtIndex(activatedTabIndex);\n }\n\n private _onKeydown(evt: KeyboardEvent): void {\n const key = this._getKeyFromEvent(evt);\n\n // Early exit if the event key isn't one of the keyboard navigation keys\n if (!key) {\n return;\n }\n\n // Prevent default behavior for movement keys, but not for activation keys, since :active is used to apply ripple\n if (!this._isActivationKey(key)) {\n evt.preventDefault();\n }\n\n if (this._autoActivate) {\n if (this._isActivationKey(key)) {\n return;\n }\n\n const index = this._determineTargetFromKey(this._activeTab, key);\n if (this._activeTab === index) {\n return;\n }\n\n const activateEventData: ITabBarActivateEventData = { index };\n const canActivate = this._adapter.emitHostEvent(TAB_BAR_CONSTANTS.events.ACTIVATE, activateEventData, true, true);\n\n if (canActivate) {\n this.activateTab(index);\n this._adapter.focusTabAtIndex(index);\n }\n } else {\n const focusedTabIndex = this._adapter.getFocusedTabIndex();\n if (focusedTabIndex === -1) {\n return;\n }\n\n if (this._isActivationKey(key)) {\n const activateEventData: ITabBarActivateEventData = { index: focusedTabIndex };\n const canActivate = this._adapter.emitHostEvent(TAB_BAR_CONSTANTS.events.ACTIVATE, activateEventData, true, true);\n if (canActivate) {\n this.activateTab(focusedTabIndex);\n }\n } else {\n const index = this._determineTargetFromKey(focusedTabIndex, key);\n if (focusedTabIndex === index) {\n return;\n }\n this._adapter.focusTabAtIndex(index);\n this.scrollIntoView(index);\n }\n }\n }\n\n private _onScrollPrevious(evt: MouseEvent): void {\n const scrollAmount = -this._adapter.getOffsetWidth();\n this._adapter.incrementScroll(scrollAmount);\n this._syncScrollButtons();\n }\n \n private _onScrollNext(evt: MouseEvent): void {\n const scrollAmount = this._adapter.getOffsetWidth();\n this._adapter.incrementScroll(scrollAmount);\n this._syncScrollButtons();\n }\n\n private _onScroll(evt: Event): void {\n this._syncScrollButtons();\n }\n\n private _syncScrollButtons(): void {\n const isScrollable = this._isScrollable();\n this._adapter.setPreviousButtonVisibility(isScrollable);\n this._adapter.setNextButtonVisibility(isScrollable);\n if (isScrollable) {\n this._adapter.setPreviousButtonEnabled(this._adapter.isScrolled());\n this._adapter.setNextButtonEnabled(!this._adapter.isScrolledEnd());\n }\n }\n\n /**\n * Determines the index of the adjacent tab closest to either edge of the Tab Bar\n * @param index The index of the tab\n * @param tabDimensions The dimensions of the tab\n * @param scrollPosition The current scroll position\n * @param barWidth The width of the tab bar\n */\n private _findAdjacentTabIndexClosestToEdge(index: number, tabDimensions: ITabDimensions, scrollPosition: number, barWidth: number): number {\n const relativeRootLeft = tabDimensions.rootLeft - scrollPosition;\n const relativeRootRight = tabDimensions.rootRight - scrollPosition - barWidth;\n const relativeRootDelta = relativeRootLeft + relativeRootRight;\n const leftEdgeIsCloser = relativeRootLeft < 0 || relativeRootDelta < 0;\n const rightEdgeIsCloser = relativeRootRight > 0 || relativeRootDelta > 0;\n\n if (leftEdgeIsCloser) {\n return index - 1;\n }\n\n if (rightEdgeIsCloser) {\n return index + 1;\n }\n\n return -1;\n }\n\n /**\n * Calculates the scroll increment that will make the tab at the given index visible\n * @param index The index of the tab\n * @param nextIndex The index of the next tab\n * @param scrollPosition The current scroll position\n * @param barWidth The width of the tab-bar\n */\n private _calculateScrollIncrement(index: number, nextIndex: number, scrollPosition: number, barWidth: number): number {\n const nextTabDimensions = this._adapter.getTabDimensionsAtIndex(nextIndex);\n const relativeContentLeft = nextTabDimensions.contentLeft - scrollPosition - barWidth;\n const relativeContentRight = nextTabDimensions.contentRight - scrollPosition;\n const leftIncrement = relativeContentRight - TAB_BAR_CONSTANTS.numbers.EXTRA_SCROLL_AMOUNT;\n const rightIncrement = relativeContentLeft + TAB_BAR_CONSTANTS.numbers.EXTRA_SCROLL_AMOUNT;\n\n if (nextIndex < index) {\n return Math.min(leftIncrement, 0);\n }\n\n return Math.max(rightIncrement, 0);\n }\n\n /**\n * Private method for determining the index of the destination tab based on what key was pressed\n * @param origin The original index from which to determine the destination\n * @param key The name of the key\n */\n private _determineTargetFromKey(origin: number, key: string, nextIndex?: number): number {\n if (origin === nextIndex) {\n return origin;\n }\n\n const maxIndex = this._adapter.getTabCount() - 1;\n const shouldGoToEnd = key === TAB_BAR_CONSTANTS.strings.END_KEY;\n const shouldDecrement = key === TAB_BAR_CONSTANTS.strings.ARROW_LEFT_KEY;\n const shouldIncrement = key === TAB_BAR_CONSTANTS.strings.ARROW_RIGHT_KEY;\n let index = nextIndex !== undefined ? nextIndex : origin;\n\n if (shouldGoToEnd) {\n index = maxIndex;\n } else if (shouldDecrement) {\n index -= 1;\n } else if (shouldIncrement) {\n index += 1;\n } else {\n index = 0;\n }\n\n if (index < 0) {\n index = maxIndex;\n } else if (index > maxIndex) {\n index = 0;\n }\n\n // If this tab is disabled, then we'll try again...\n if (this._adapter.isTabDisabled(index)) {\n return this._determineTargetFromKey(origin, key, index);\n }\n\n return index;\n }\n\n private _isScrollable(): boolean {\n return this._forceScrollButtons ||\n (this._scrollButtons &&\n !Platform.isMobile &&\n !this._isFixed &&\n this._adapter.getScrollContentWidth() > this._adapter.getOffsetWidth());\n }\n\n private _getKeyFromEvent(evt: KeyboardEvent): string {\n if (ACCEPTABLE_KEYS.includes(evt.key)) {\n return evt.key;\n }\n return KEYCODE_MAP[evt.keyCode];\n }\n\n private _isActivationKey(key: string): boolean {\n return key === TAB_BAR_CONSTANTS.strings.SPACE_KEY || key === TAB_BAR_CONSTANTS.strings.ENTER_KEY;\n }\n\n private _indexIsInRange(index: number): boolean {\n return index >= 0 && index < this._adapter.getTabCount();\n }\n\n public activateTab(index: number): void {\n if (!isNumber(index)) {\n index = -1;\n }\n\n // If we have a currently selected tab we need to deactivate that now\n if (this._activeTab !== -1) {\n this._adapter.deactivateTab(this._activeTab);\n }\n\n // Activate the requested tab\n const previousTabBounds = this._adapter.getTabBounds(this._activeTab);\n this._adapter.activateTab(index, previousTabBounds);\n this._adapter.syncTabIndex(index);\n this._adapter.ensureFocusableTab();\n this.scrollIntoView(index);\n this._activeTab = index;\n this._syncScrollButtons();\n this._adapter.setHostAttribute(TAB_BAR_CONSTANTS.attributes.ACTIVE_TAB, this._activeTab.toString());\n }\n\n public scrollIntoView(index: number): void {\n if (!this._indexIsInRange(index)) {\n return;\n }\n\n if (index === 0) {\n return this._adapter.scrollTo(0);\n }\n\n if (index === this._adapter.getTabCount() - 1) {\n return this._adapter.scrollTo(this._adapter.getScrollContentWidth());\n }\n\n const scrollPosition = this._adapter.getScrollPosition();\n const barWidth = this._adapter.getOffsetWidth();\n const tabDimensions = this._adapter.getTabDimensionsAtIndex(index);\n const nextIndex = this._findAdjacentTabIndexClosestToEdge(index, tabDimensions, scrollPosition, barWidth);\n\n if (!this._indexIsInRange(nextIndex)) {\n return;\n }\n\n const scrollIncrement = this._calculateScrollIncrement(index, nextIndex, scrollPosition, barWidth);\n this._adapter.incrementScroll(scrollIncrement);\n }\n\n /** Gets and sets the active tab index. */\n public get activeTab(): number {\n return this._activeTab;\n }\n public set activeTab(value: number) {\n if (this._activeTab !== value) {\n if (!this._isInitialized) {\n this._activeTab = value;\n this._adapter.setHostAttribute(TAB_BAR_CONSTANTS.attributes.ACTIVE_TAB, this._activeTab.toString());\n } else {\n this.activateTab(value);\n }\n }\n }\n\n private get _isFixed(): boolean {\n return this._layoutMode === 'fixed';\n }\n\n public get layoutMode(): TabBarLayoutMode {\n return this._layoutMode;\n }\n public set layoutMode(value: TabBarLayoutMode) {\n if (this._layoutMode !== value) {\n this._layoutMode = value;\n this._adapter.setLayoutMode(this._layoutMode);\n this._syncScrollButtons();\n }\n }\n\n public get layoutAlign(): TabBarLayoutAlign {\n return this._layoutAlign;\n }\n public set layoutAlign(value: TabBarLayoutAlign) {\n if (this._layoutAlign !== value) {\n this._layoutAlign = value;\n this._adapter.setLayoutAlign(this._layoutAlign);\n }\n }\n\n public get underline(): boolean {\n return this._underline;\n }\n public set underline(value: boolean) {\n if (this._underline !== value) {\n this._underline = value;\n this._adapter.setUnderline(this._underline);\n this._adapter.toggleHostAttribute(TAB_BAR_CONSTANTS.attributes.UNDERLINE, this._underline);\n }\n }\n\n public get stacked(): boolean {\n return this._stacked;\n }\n public set stacked(value: boolean) {\n if (this._stacked !== value) {\n this._stacked = value;\n this._adapter.setStacked(this._stacked);\n if (this._stacked) {\n this._adapter.setHostAttribute(TAB_BAR_CONSTANTS.attributes.STACKED);\n } else {\n this._adapter.removeHostAttribute(TAB_BAR_CONSTANTS.attributes.STACKED);\n }\n }\n }\n\n public get scrollButtons(): boolean {\n return this._scrollButtons;\n }\n public set scrollButtons(value: boolean) {\n if (this._scrollButtons !== value) {\n this._scrollButtons = value;\n this._adapter.setHostAttribute(TAB_BAR_CONSTANTS.attributes.SCROLL_BUTTONS, this._scrollButtons.toString());\n if (this._isInitialized) {\n this._syncScrollButtons();\n }\n }\n }\n\n public get forceScrollButtons(): boolean {\n return this._forceScrollButtons;\n }\n public set forceScrollButtons(value: boolean) {\n if (this._forceScrollButtons !== value) {\n this._forceScrollButtons = value;\n if (this._isInitialized) {\n this._syncScrollButtons();\n }\n }\n }\n\n public get autoActivate(): boolean {\n return this._autoActivate;\n }\n public set autoActivate(value: boolean) {\n if (this._autoActivate !== value) {\n this._autoActivate = value;\n this._adapter.setHostAttribute(TAB_BAR_CONSTANTS.attributes.AUTO_ACTIVATE, this._autoActivate.toString());\n }\n }\n}\n", null, null, null, null, null, null, null, null, "import { MDCTabScroller } from '@material/tab-scroller';\nimport { getShadowElement, removeClass, isFunction, getActiveElement, toggleClass } from '@tylertech/forge-core';\n\nimport { IBaseAdapter, BaseAdapter } from '../../core/base/base-adapter';\nimport { ITabBarComponent } from './tab-bar';\nimport { TAB_BAR_CONSTANTS, TabBarLayoutMode, TabBarLayoutAlign } from './tab-bar-constants';\nimport { ITabComponent } from '../tab/tab';\nimport { TAB_CONSTANTS, ITabDimensions } from '../tab/tab-constants';\n\nexport interface ITabBarAdapter extends IBaseAdapter {\n initializeTabs(activeTabIndex: number, stretch: boolean): void;\n initializeTabScroller(): void;\n initializeAccessibility(): void;\n destroyTabScroller(): void;\n addTabChangeListener(listener: (evt: Event) => void): void;\n removeTabChangeListener(listener: (evt: Event) => void): void;\n addScrollListener(listener: (evt: Event) => void): void;\n getTabIndex(tab: ITabComponent): number;\n getTabCount(): number;\n activateTab(index: number, previousTabBounds?: DOMRect): void;\n deactivateTab(index: number): void;\n syncTabIndex(index: number): void;\n getTabBounds(index: number): DOMRect | undefined;\n setUnderline(value: boolean): void;\n setStacked(value: boolean): void;\n scrollTo(scrollX: number): void;\n getScrollContentWidth(): number;\n getScrollPosition(): number;\n getOffsetWidth(): number;\n getTabDimensionsAtIndex(index: number): ITabDimensions;\n incrementScroll(scrollXIncrement: number): void;\n isScrolled(): boolean;\n isScrolledEnd(): boolean;\n getFocusedTabIndex(): number;\n focusTabAtIndex(index: number): void;\n setLayoutMode(value: TabBarLayoutMode): void;\n setLayoutAlign(value: TabBarLayoutAlign): void;\n setPreviousButtonVisibility(value: boolean): void;\n setPreviousButtonEnabled(value: boolean): void;\n setNextButtonVisibility(value: boolean): void;\n setNextButtonEnabled(value: boolean): void;\n addScrollPreviousListener(type: string, listener: (evt: MouseEvent) => void): void;\n addScrollNextListener(type: string, listener: (evt: MouseEvent) => void): void;\n isTabDisabled(index: number): boolean;\n ensureFocusableTab(): void;\n}\n\nexport class TabBarAdapter extends BaseAdapter<ITabBarComponent> implements ITabBarAdapter {\n private _rootElement: HTMLElement;\n private _defaultSlotElement: HTMLSlotElement;\n private _tabScrollElement: HTMLElement;\n private _tabScrollAreaElement: HTMLElement;\n private _tabScrollContentElement: HTMLElement;\n private _tabScroller: MDCTabScroller | undefined;\n private _tabs: ITabComponent[] = [];\n private _prevButtonContainerElement: HTMLElement;\n private _nextButtonContainerElement: HTMLElement;\n private _prevButtonElement: HTMLButtonElement;\n private _nextButtonElement: HTMLButtonElement;\n\n constructor(component: ITabBarComponent) {\n super(component);\n this._rootElement = getShadowElement(this._component, TAB_BAR_CONSTANTS.selectors.ROOT);\n this._tabScrollElement = getShadowElement(this._component, TAB_BAR_CONSTANTS.selectors.TAB_SCROLLER);\n this._tabScrollAreaElement = getShadowElement(this._component, TAB_BAR_CONSTANTS.selectors.TAB_SCROLLER_AREA);\n this._tabScrollContentElement = getShadowElement(this._component, TAB_BAR_CONSTANTS.selectors.TAB_SCROLLER_CONTENT);\n this._defaultSlotElement = getShadowElement(this._component, TAB_CONSTANTS.selectors.DEFAULT_SLOT) as HTMLSlotElement;\n this._prevButtonContainerElement = getShadowElement(this._component, TAB_BAR_CONSTANTS.selectors.PREV_BUTTON_CONTAINER);\n this._prevButtonElement = getShadowElement(this._component, TAB_BAR_CONSTANTS.selectors.PREV_BUTTON) as HTMLButtonElement;\n this._nextButtonContainerElement = getShadowElement(this._component, TAB_BAR_CONSTANTS.selectors.NEXT_BUTTON_CONTAINER);\n this._nextButtonElement = getShadowElement(this._component, TAB_BAR_CONSTANTS.selectors.NEXT_BUTTON) as HTMLButtonElement;\n }\n\n public initializeTabs(activeTabIndex: number, stretch: boolean): void {\n this._tabs = this._getTabs();\n\n if (!this._tabs.length) {\n return;\n }\n\n this._tabs.forEach(tab => {\n tab.active = false;\n tab.stretch = stretch;\n });\n\n // Set the initial active tab\n if (activeTabIndex >= 0 && activeTabIndex < this._tabs.length) {\n this._tabs[activeTabIndex].active = true;\n } else {\n this.ensureFocusableTab();\n }\n }\n\n public initializeTabScroller(): void {\n this._tabScroller = new MDCTabScroller(this._tabScrollElement);\n }\n\n public initializeAccessibility(): void {\n if (!this._component.hasAttribute('role')) {\n this._component.setAttribute('role', 'tablist');\n }\n }\n\n public destroyTabScroller(): void {\n if (this._tabScroller) {\n this._tabScroller.destroy();\n }\n }\n\n public addTabChangeListener(listener: (evt: Event) => void): void {\n this._defaultSlotElement.addEventListener('slotchange', listener);\n }\n\n public removeTabChangeListener(listener: (evt: Event) => void): void {\n this._defaultSlotElement.removeEventListener('slotchange', listener);\n }\n\n public addScrollListener(listener: (evt: Event) => void): void {\n this._tabScrollAreaElement.addEventListener('scroll', listener);\n }\n\n public getTabIndex(tab: ITabComponent): number {\n return this._tabs.indexOf(tab);\n }\n\n public getTabCount(): number {\n return this._tabs.length;\n }\n\n public activateTab(index: number, previousTabBounds?: DOMRect): void {\n const tab = this._getTabByIndex(index);\n if (tab) {\n tab.activate(previousTabBounds);\n }\n }\n\n public deactivateTab(index: number): void {\n const tab = this._getTabByIndex(index);\n if (tab) {\n tab.deactivate();\n }\n }\n\n public syncTabIndex(index: number): void {\n const tabs = this._getTabs();\n const activeTab = tabs[index];\n tabs.filter(t => t !== activeTab)\n .forEach(t => t.setTabIndex(-1));\n }\n\n public getTabBounds(index: number): DOMRect | undefined {\n const tab = this._getTabByIndex(index);\n if (tab) {\n return tab.computeIndicatorBounds();\n }\n return undefined;\n }\n\n public setUnderline(value: boolean): void {\n toggleClass(this._rootElement, value, TAB_BAR_CONSTANTS.classes.UNDERLINED);\n }\n \n public setStacked(value: boolean): void {\n toggleClass(this._rootElement, value, TAB_BAR_CONSTANTS.classes.STACKED);\n }\n\n public scrollTo(scrollX: number): void {\n if (this._tabScroller) {\n this._tabScroller.scrollTo(scrollX);\n }\n }\n\n public getScrollContentWidth(): number {\n return this._tabScroller ? this._tabScroller.getScrollContentWidth() : 0;\n }\n\n public getScrollPosition(): number {\n return this._tabScroller ? this._tabScroller.getScrollPosition() : 0;\n }\n\n public getOffsetWidth(): number {\n return this._tabScrollElement.offsetWidth;\n }\n\n public getTabDimensionsAtIndex(index: number): ITabDimensions {\n const tab = this._getTabByIndex(index);\n if (tab) {\n return tab.computeDimensions();\n }\n return {\n rootLeft: 0,\n rootRight: 0,\n contentLeft: 0,\n contentRight: 0\n };\n }\n\n public incrementScroll(scrollXIncrement: number): void {\n if (this._tabScroller) {\n this._tabScroller.incrementScroll(scrollXIncrement);\n }\n }\n\n public isScrolled(): boolean {\n const position = this._tabScrollAreaElement.scrollLeft;\n return position > 0;\n }\n\n public isScrolledEnd(): boolean {\n const position = Math.round(this._tabScrollAreaElement.scrollLeft);\n const scrollWidth = Math.round(this._tabScrollContentElement.scrollWidth - this._tabScrollElement.offsetWidth);\n return position >= scrollWidth;\n }\n\n public getFocusedTabIndex(): number {\n const activeElement = getActiveElement() as ITabComponent;\n return this._tabs.findIndex(tab => {\n if (tab === activeElement) {\n return true;\n }\n return !!(tab.shadowRoot as ShadowRoot).contains(activeElement);\n });\n }\n\n public focusTabAtIndex(index: number): void {\n const tab = this._getTabByIndex(index);\n if (tab) {\n return tab.focus();\n }\n }\n\n public setLayoutMode(value: TabBarLayoutMode): void {\n const isFixed = value === 'fixed';\n toggleClass(this._rootElement, isFixed, TAB_BAR_CONSTANTS.classes.FIXED);\n this._tabs.forEach(tab => tab.stretch = isFixed);\n }\n\n public setLayoutAlign(value: TabBarLayoutAlign): void {\n removeClass([\n TAB_BAR_CONSTANTS.classes.ALIGN_CENTER,\n TAB_BAR_CONSTANTS.classes.ALIGN_END\n ], this._rootElement);\n switch (value) {\n case 'center':\n this._rootElement.classList.add(TAB_BAR_CONSTANTS.classes.ALIGN_CENTER);\n break;\n case 'end':\n this._rootElement.classList.add(TAB_BAR_CONSTANTS.classes.ALIGN_END);\n break;\n }\n }\n\n public setPreviousButtonVisibility(value: boolean): void {\n if (value) {\n this._prevButtonContainerElement.style.removeProperty('display');\n } else {\n this._prevButtonContainerElement.style.display = 'none';\n }\n }\n\n public setPreviousButtonEnabled(value: boolean): void {\n this._prevButtonElement.disabled = !value;\n }\n\n public setNextButtonVisibility(value: boolean): void {\n if (value) {\n this._nextButtonContainerElement.style.removeProperty('display');\n } else {\n this._nextButtonContainerElement.style.display = 'none';\n }\n }\n\n public setNextButtonEnabled(value: boolean): void {\n this._nextButtonElement.disabled = !value;\n }\n\n public addScrollPreviousListener(type: string, listener: (evt: MouseEvent) => void): void {\n this._prevButtonElement.addEventListener(type, listener);\n }\n \n public addScrollNextListener(type: string, listener: (evt: MouseEvent) => void): void {\n this._nextButtonElement.addEventListener(type, listener);\n }\n\n public isTabDisabled(index: number): boolean {\n const tab = this._getTabByIndex(index);\n return tab ? tab.disabled : true;\n }\n\n public ensureFocusableTab(): void {\n const tabs = this._getTabs();\n const hasActiveTab = tabs.some(tab => tab.active);\n if (!hasActiveTab && tabs.length) {\n const firstTab = tabs[0];\n if (isFunction(firstTab.setTabIndex)) {\n tabs[0].setTabIndex(0);\n }\n }\n }\n\n private _getTabs(): ITabComponent[] {\n return Array.from(this._component.querySelectorAll(TAB_CONSTANTS.elementName));\n }\n\n private _getTabByIndex(index: number): ITabComponent {\n return this._tabs[index];\n }\n}\n", "import { CustomElement, attachShadowTemplate, coerceNumber, coerceBoolean, FoundationProperty } from '@tylertech/forge-core';\nimport { tylIconKeyboardArrowLeft, tylIconKeyboardArrowRight } from '@tylertech/tyler-icons/standard';\nimport { TabComponent } from '../tab/tab';\nimport { IconButtonComponent } from '../../icon-button';\nimport { TAB_BAR_CONSTANTS, TabBarLayoutMode, TabBarLayoutAlign, ITabBarActivateEventData } from './tab-bar-constants';\nimport { TabBarFoundation } from './tab-bar-foundation';\nimport { TabBarAdapter } from './tab-bar-adapter';\nimport { IconComponent, IconRegistry } from '../../icon';\nimport { BaseComponent, IBaseComponent } from '../../core/base/base-component';\n\nconst template = '<template><div class=\\\"forge-tab-bar\\\" part=\\\"root\\\"><div class=\\\"forge-tab-bar__scroll-prev-container\\\" part=\\\"previous-container\\\"><forge-icon-button part=\\\"previous-button\\\"><button type=\\\"button\\\" tabindex=\\\"-1\\\" aria-label=\\\"Scroll left\\\" id=\\\"scroll-prev-btn\\\" part=\\\"previous-button-element\\\"><forge-icon name=\\\"keyboard_arrow_left\\\" part=\\\"previous-button-icon\\\"></forge-icon></button></forge-icon-button></div><div class=\\\"mdc-tab-scroller\\\" part=\\\"tab-scroller\\\"><div class=\\\"mdc-tab-scroller__scroll-area\\\" part=\\\"scroll-area\\\"><div class=\\\"mdc-tab-scroller__scroll-content\\\" part=\\\"scroll-content\\\"><slot></slot></div></div></div><div class=\\\"forge-tab-bar__scroll-next-container\\\" part=\\\"next-container\\\"><forge-icon-button part=\\\"next-button\\\"><button type=\\\"button\\\" tabindex=\\\"-1\\\" aria-label=\\\"Scroll right\\\" id=\\\"scroll-next-btn\\\" part=\\\"next-button-element\\\"><forge-icon name=\\\"keyboard_arrow_right\\\" part=\\\"next-button-icon\\\"></forge-icon></button></forge-icon-button></div></div></template>';\nconst 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:#3f51b5;color:var(--mdc-theme-primary,#3f51b5)}.forge-icon-button--on::after,.forge-icon-button--on::before{background-color:#3f51b5;background-color:var(--mdc-ripple-color,var(--mdc-theme-primary,#3f51b5))}.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:#3f51b5;background-color:var(--mdc-theme-primary,#3f51b5);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)}.mdc-tab-scroller{overflow-y:hidden}.mdc-tab-scroller.mdc-tab-scroller--animating .mdc-tab-scroller__scroll-content{-webkit-transition:250ms -webkit-transform cubic-bezier(.4, 0, .2, 1);transition:250ms -webkit-transform cubic-bezier(.4, 0, .2, 1);transition:250ms transform cubic-bezier(.4, 0, .2, 1);transition:250ms transform cubic-bezier(.4, 0, .2, 1),250ms -webkit-transform cubic-bezier(.4, 0, .2, 1)}.mdc-tab-scroller__test{position:absolute;top:-9999px;width:100px;height:100px;overflow-x:scroll}.mdc-tab-scroller__scroll-area{-webkit-overflow-scrolling:touch;display:-webkit-box;display:flex;overflow-x:hidden}.mdc-tab-scroller__scroll-area::-webkit-scrollbar,.mdc-tab-scroller__test::-webkit-scrollbar{display:none}.mdc-tab-scroller__scroll-area--scroll{overflow-x:scroll}.mdc-tab-scroller__scroll-content{position:relative;display:-webkit-box;display:flex;-webkit-box-flex:1;flex:1 0 auto;-webkit-transform:none;transform:none;will-change:transform}.mdc-tab-scroller--align-start .mdc-tab-scroller__scroll-content{-webkit-box-pack:start;justify-content:flex-start}.mdc-tab-scroller--align-end .mdc-tab-scroller__scroll-content{-webkit-box-pack:end;justify-content:flex-end}.mdc-tab-scroller--align-center .mdc-tab-scroller__scroll-content{-webkit-box-pack:center;justify-content:center}.mdc-tab-scroller--animating .mdc-tab-scroller__scroll-area{-webkit-overflow-scrolling:auto}.forge-tab-bar{height:48px;height:var(--forge-tab-bar-height,48px);display:-webkit-box;display:flex;position:relative}.forge-tab-bar--underlined::after{border-bottom-color:#e0e0e0;border-bottom-color:var(--forge-theme-border-color,#e0e0e0);content:\\\"\\\";border-bottom-width:1px;border-bottom-style:solid;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;position:absolute;bottom:0;left:0;right:0}.forge-tab-bar--align-center .mdc-tab-scroller__scroll-content{-webkit-box-pack:center;justify-content:center}.forge-tab-bar--align-end .mdc-tab-scroller__scroll-content{-webkit-box-pack:end;justify-content:flex-end}.forge-tab-bar--stacked{height:72px;height:var(--forge-tab-bar-height,72px);-webkit-box-align:center;align-items:center}.forge-tab-bar--stacked .mdc-tab-scroller{height:100%}.mdc-tab-scroller{z-index:1;width:100%}.mdc-tab-scroller__scroll-area{height:100%;overflow-x:auto;scrollbar-width:none}:host{display:block;overflow:hidden}:host([hidden]){display:none}';\n\nexport interface ITabBarComponent extends IBaseComponent {\n activeTab: number;\n layoutMode: TabBarLayoutMode;\n layoutAlign: TabBarLayoutAlign;\n underline: boolean;\n autoActivate: boolean;\n stacked: boolean;\n scrollButtons: boolean;\n forceScrollButtons: boolean;\n activateTab(index: number): void;\n scrollTabIntoView(index: number): void;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-tab-bar': ITabBarComponent;\n }\n\n interface HTMLElementEventMap {\n 'forge-tab-bar-activate': CustomEvent<ITabBarActivateEventData>;\n }\n}\n\n/**\n * The custom element class behind the `<forge-tab-bar>` element.\n * \n * @tag forge-tab-bar\n */\n@CustomElement({\n name: TAB_BAR_CONSTANTS.elementName,\n dependencies: [\n TabComponent,\n IconButtonComponent,\n IconComponent\n ]\n})\nexport class TabBarComponent extends BaseComponent implements ITabBarComponent {\n public static get observedAttributes(): string[] {\n return [\n TAB_BAR_CONSTANTS.attributes.ACTIVE_TAB,\n TAB_BAR_CONSTANTS.attributes.LAYOUT_MODE,\n TAB_BAR_CONSTANTS.attributes.LAYOUT_ALIGN,\n TAB_BAR_CONSTANTS.attributes.UNDERLINE,\n TAB_BAR_CONSTANTS.attributes.AUTO_ACTIVATE,\n TAB_BAR_CONSTANTS.attributes.STACKED,\n TAB_BAR_CONSTANTS.attributes.SCROLL_BUTTONS,\n TAB_BAR_CONSTANTS.attributes.FORCE_SCROLL_BUTTONS\n ];\n }\n\n private _foundation: TabBarFoundation;\n\n constructor() {\n super();\n IconRegistry.define([tylIconKeyboardArrowLeft, tylIconKeyboardArrowRight]);\n attachShadowTemplate(this, template, styles);\n this._foundation = new TabBarFoundation(new TabBarAdapter(this));\n }\n\n public connectedCallback(): void {\n this._foundation.initialize();\n }\n\n public disconnectedCallback(): void {\n this._foundation.disconnect();\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n switch (name) {\n case TAB_BAR_CONSTANTS.attributes.ACTIVE_TAB:\n this.activeTab = coerceNumber(newValue);\n break;\n case TAB_BAR_CONSTANTS.attributes.LAYOUT_MODE:\n this.layoutMode = newValue as TabBarLayoutMode;\n break;\n case TAB_BAR_CONSTANTS.attributes.LAYOUT_ALIGN:\n this.layoutAlign = newValue as TabBarLayoutAlign;\n break;\n case TAB_BAR_CONSTANTS.attributes.UNDERLINE:\n this.underline = coerceBoolean(newValue);\n break;\n case TAB_BAR_CONSTANTS.attributes.AUTO_ACTIVATE:\n this.autoActivate = coerceBoolean(newValue);\n break;\n case TAB_BAR_CONSTANTS.attributes.STACKED:\n this.stacked = coerceBoolean(newValue);\n break;\n case TAB_BAR_CONSTANTS.attributes.SCROLL_BUTTONS:\n this.scrollButtons = coerceBoolean(newValue);\n break;\n case TAB_BAR_CONSTANTS.attributes.FORCE_SCROLL_BUTTONS:\n this.forceScrollButtons = coerceBoolean(newValue);\n break;\n }\n }\n\n /** Gets and sets the active tab index. */\n @FoundationProperty()\n public activeTab: number;\n\n /** Gets/sets the layout mode that controls how the tabs are sized and rendered. */\n @FoundationProperty()\n public layoutMode: TabBarLayoutMode;\n\n /** Gets/sets the layout alignment. Only pertains to non-full width layout modes. */\n @FoundationProperty()\n public layoutAlign: TabBarLayoutAlign;\n\n /** Gets/sets whether the component displays an underline or not. Default is `false`. */\n @FoundationProperty()\n public underline: boolean;\n\n /** Gets/sets whether tabs are auto-activated when using arrow keys. Default is `true` */\n @FoundationProperty()\n public autoActivate: boolean;\n\n /** Gets/sets whether the tabs are displayed with as their stacked variant. Default is `false`. */\n @FoundationProperty()\n public stacked: boolean;\n\n /** Gets/sets whether the scroll buttons can be displayed or not. Default is `true`. The component handles visibility automatically. */\n @FoundationProperty()\n public scrollButtons: boolean;\n\n /** Gets/sets whether the scroll buttons are visible indefinitely or not. Default is `false`. */\n @FoundationProperty()\n public forceScrollButtons: boolean;\n\n /**\n * Activates the tab at the given index.\n * @param index The index of the tab.\n */\n public activateTab(index: number): void {\n this._foundation.activateTab(index);\n }\n\n /**\n * Scrolls the tab at the given index into view.\n * @param index The index of the tab.\n */\n public scrollTabIntoView(index: number): void {\n this._foundation.scrollIntoView(index);\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { TabBarComponent } from './tab-bar';\n\nexport * from './tab-bar-adapter';\nexport * from './tab-bar-constants';\nexport * from './tab-bar-foundation';\nexport * from './tab-bar';\n\nexport function defineTabBarComponent(): void {\n defineCustomElement(TabBarComponent);\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -5,7 +5,7 @@
5
5
  */
6
6
  import {
7
7
  ForgeRipple
8
- } from "./chunk.C2MR3RDF.js";
8
+ } from "./chunk.56BNM7F2.js";
9
9
  import {
10
10
  BaseAdapter
11
11
  } from "./chunk.KZATVOA6.js";
@@ -255,4 +255,4 @@ export {
255
255
  ButtonToggleFoundation,
256
256
  ButtonToggleComponent
257
257
  };
258
- //# sourceMappingURL=chunk.IBH5GL7A.js.map
258
+ //# sourceMappingURL=chunk.IUNON3UL.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/button-toggle/button-toggle/button-toggle-constants.ts", "../../src/button-toggle/button-toggle/button-toggle-adapter.ts", "../../src/button-toggle/button-toggle/button-toggle-foundation.ts", "../../src/button-toggle/button-toggle/button-toggle.ts"],
4
- "sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../../constants';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}button-toggle`;\n\nconst attributes = {\n VALUE: 'value',\n SELECTED: 'selected',\n DISABLED: 'disabled',\n DENSE: 'dense',\n BUTTON_ARIA_LABEL: 'button-aria-label',\n SELECTED_ADJACENT: 'selected-adjacent',\n SELECTED_ADJACENT_VERTICAL: 'selected-adjacent-vertical',\n STRETCH: 'stretch'\n};\n\nconst classes = {\n SELECTED: 'forge-button-toggle__selected',\n DENSE: 'forge-button-toggle--dense'\n};\n\nconst selectors = {\n BUTTON: '.forge-button-toggle',\n SELECTED: `.${classes.SELECTED}`\n};\n\nconst events = {\n SELECT: `${elementName}-select`\n};\n\nexport const BUTTON_TOGGLE_CONSTANTS = {\n elementName,\n attributes,\n classes,\n selectors,\n events\n};\n\nexport interface IButtonToggleSelectEventData {\n value: string;\n selected: boolean;\n}\n", "import { getShadowElement } from '@tylertech/forge-core';\nimport { ForgeRipple } from '../../ripple';\nimport { BaseAdapter, IBaseAdapter } from '../../core/base/base-adapter';\nimport { IButtonToggleGroupComponent } from '../button-toggle-group';\nimport { IButtonToggleComponent } from './button-toggle';\nimport { BUTTON_TOGGLE_CONSTANTS } from './button-toggle-constants';\n\nexport interface IButtonToggleAdapter extends IBaseAdapter {\n setSelected(value: boolean): void;\n addEventListener(type: string, listener: (evt: Event) => void): void;\n removeEventListener(type: string, listener: (evt: Event) => void): void;\n initializeRipple(): ForgeRipple;\n setDisabled(value: boolean): void;\n setDense(value: boolean): void;\n requestFocus(): void;\n detectStretchState(): void;\n}\n\nexport class ButtonToggleAdapter extends BaseAdapter<IButtonToggleComponent> implements IButtonToggleAdapter {\n private _buttonElement: HTMLButtonElement;\n\n constructor(component: IButtonToggleComponent) {\n super(component);\n this._buttonElement = getShadowElement(component, BUTTON_TOGGLE_CONSTANTS.selectors.BUTTON) as HTMLButtonElement;\n }\n\n public setSelected(value: boolean): void {\n if (value) {\n this._buttonElement.classList.add(BUTTON_TOGGLE_CONSTANTS.classes.SELECTED);\n } else {\n this._buttonElement.classList.remove(BUTTON_TOGGLE_CONSTANTS.classes.SELECTED);\n }\n this._buttonElement.setAttribute('aria-pressed', value.toString());\n }\n\n public addEventListener(type: string, listener: (evt: Event) => void): void {\n this._buttonElement.addEventListener(type, listener);\n }\n\n public removeEventListener(type: string, listener: (evt: Event) => void): void {\n this._buttonElement.removeEventListener(type, listener);\n }\n\n public initializeRipple(): ForgeRipple {\n return new ForgeRipple(this._buttonElement);\n }\n\n public setDisabled(value: boolean): void {\n this._buttonElement.disabled = value;\n if (value) {\n this._buttonElement.setAttribute('aria-disabled', value.toString());\n } else {\n this._buttonElement.removeAttribute('aria-disabled');\n }\n }\n\n public setDense(value: boolean): void {\n if (value) {\n this._buttonElement.classList.add(BUTTON_TOGGLE_CONSTANTS.classes.DENSE);\n } else {\n this._buttonElement.classList.remove(BUTTON_TOGGLE_CONSTANTS.classes.DENSE);\n }\n }\n\n public requestFocus(): void {\n this._buttonElement.focus();\n }\n\n public detectStretchState(): void {\n if (this._component.hasAttribute(BUTTON_TOGGLE_CONSTANTS.attributes.STRETCH)) {\n return;\n }\n const buttonToggleGroup = this._component.parentElement as IButtonToggleGroupComponent;\n if (buttonToggleGroup && buttonToggleGroup.hasAttribute(BUTTON_TOGGLE_CONSTANTS.attributes.STRETCH) && buttonToggleGroup.stretch) {\n this._component.setAttribute(BUTTON_TOGGLE_CONSTANTS.attributes.STRETCH, '');\n }\n }\n}\n", "import { ICustomElementFoundation } from '@tylertech/forge-core';\nimport { ForgeRipple } from '../../ripple';\nimport { IButtonToggleAdapter } from './button-toggle-adapter';\nimport { BUTTON_TOGGLE_CONSTANTS, IButtonToggleSelectEventData } from './button-toggle-constants';\n\n\nexport interface IButtonToggleFoundation extends ICustomElementFoundation {\n value: any;\n selected: boolean;\n disabled: boolean;\n dense: boolean;\n setFocus(): void;\n}\n\nexport class ButtonToggleFoundation implements IButtonToggleFoundation {\n private _value: any;\n private _selected = false;\n private _disabled = false;\n private _dense = false;\n private _clickListener: (evt: MouseEvent) => void;\n private _rippleInstance: ForgeRipple;\n\n constructor(private _adapter: IButtonToggleAdapter) {\n this._clickListener = evt => this._onClick(evt);\n }\n\n public initialize(): void {\n this._rippleInstance = this._adapter.initializeRipple();\n this._adapter.addEventListener('click', this._clickListener);\n this._adapter.setSelected(this._selected);\n this._adapter.setDisabled(this._disabled);\n this._adapter.setDense(this._dense);\n this._adapter.detectStretchState();\n }\n\n public disconnect(): void {\n if (this._rippleInstance) {\n this._rippleInstance.destroy();\n }\n this._adapter.removeEventListener('click', this._clickListener);\n }\n\n private _onClick(evt: MouseEvent): void {\n this._selected = !this._selected;\n this._updateSelectedState();\n this._adapter.emitHostEvent(BUTTON_TOGGLE_CONSTANTS.events.SELECT, { value: this._value, selected: this._selected } as IButtonToggleSelectEventData);\n }\n\n private _updateSelectedState(): void {\n this._adapter.setSelected(this._selected);\n this._adapter.setHostAttribute(BUTTON_TOGGLE_CONSTANTS.attributes.SELECTED, this._selected.toString());\n }\n\n public get value(): any {\n return this._value;\n }\n public set value(value: any) {\n this._value = value;\n }\n\n public get selected(): boolean {\n return this._selected;\n }\n public set selected(value: boolean) {\n if (this._selected !== value) {\n this._selected = value;\n this._updateSelectedState();\n }\n }\n\n public get disabled(): boolean {\n return this._disabled;\n }\n public set disabled(value: boolean) {\n if (this._disabled !== value) {\n this._disabled = value;\n this._adapter.setDisabled(this._disabled);\n }\n }\n\n public get dense(): boolean {\n return this._dense;\n }\n public set dense(value: boolean) {\n if (this._dense !== value) {\n this._dense = value;\n this._adapter.setDense(this._dense);\n }\n }\n\n public setFocus(): void {\n this._adapter.requestFocus();\n }\n}\n", "import { attachShadowTemplate, coerceBoolean, CustomElement, FoundationProperty, getShadowElement } from '@tylertech/forge-core';\nimport { BaseComponent, IBaseComponent } from '../../core/base/base-component';\nimport { ButtonToggleAdapter } from './button-toggle-adapter';\nimport { BUTTON_TOGGLE_CONSTANTS, IButtonToggleSelectEventData } from './button-toggle-constants';\nimport { ButtonToggleFoundation } from './button-toggle-foundation';\n\nconst template = '<template><button type=\\\"button\\\" class=\\\"forge-button-toggle\\\" aria-pressed=\\\"false\\\" part=\\\"button\\\"><slot name=\\\"leading\\\"></slot><slot></slot><slot name=\\\"trailing\\\"></slot></button></template>';\nconst styles = '@-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-ripple-surface{--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;position:relative;outline:0;overflow:hidden}.mdc-ripple-surface::after,.mdc-ripple-surface::before{position:absolute;border-radius:50%;opacity:0;pointer-events:none;content:\\\"\\\"}.mdc-ripple-surface::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-ripple-surface::after{z-index:0;z-index:var(--mdc-ripple-z-index,0)}.mdc-ripple-surface.mdc-ripple-upgraded::before{-webkit-transform:scale(var(--mdc-ripple-fg-scale,1));transform:scale(var(--mdc-ripple-fg-scale,1))}.mdc-ripple-surface.mdc-ripple-upgraded::after{top:0;left:0;-webkit-transform:scale(0);transform:scale(0);-webkit-transform-origin:center center;transform-origin:center center}.mdc-ripple-surface.mdc-ripple-upgraded--unbounded::after{top:var(--mdc-ripple-top,0);left:var(--mdc-ripple-left,0)}.mdc-ripple-surface.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}.mdc-ripple-surface.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))}.mdc-ripple-surface::after,.mdc-ripple-surface::before{top:calc(50% - 100%);left:calc(50% - 100%);width:200%;height:200%}.mdc-ripple-surface.mdc-ripple-upgraded::after{width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.mdc-ripple-surface[data-mdc-ripple-is-unbounded],.mdc-ripple-upgraded--unbounded{overflow:visible}.mdc-ripple-surface[data-mdc-ripple-is-unbounded]::after,.mdc-ripple-surface[data-mdc-ripple-is-unbounded]::before,.mdc-ripple-upgraded--unbounded::after,.mdc-ripple-upgraded--unbounded::before{top:calc(50% - 50%);left:calc(50% - 50%);width:100%;height:100%}.mdc-ripple-surface[data-mdc-ripple-is-unbounded].mdc-ripple-upgraded::after,.mdc-ripple-surface[data-mdc-ripple-is-unbounded].mdc-ripple-upgraded::before,.mdc-ripple-upgraded--unbounded.mdc-ripple-upgraded::after,.mdc-ripple-upgraded--unbounded.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%)}.mdc-ripple-surface[data-mdc-ripple-is-unbounded].mdc-ripple-upgraded::after,.mdc-ripple-upgraded--unbounded.mdc-ripple-upgraded::after{width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.mdc-ripple-surface::after,.mdc-ripple-surface::before{background-color:#000;background-color:var(--mdc-ripple-color,#000)}.mdc-ripple-surface.mdc-ripple-surface--hover::before,.mdc-ripple-surface:hover::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.mdc-ripple-surface.mdc-ripple-upgraded--background-focused::before,.mdc-ripple-surface:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.mdc-ripple-surface:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.mdc-ripple-surface:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.mdc-ripple-surface.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}.mdc-ripple-surface::after,.mdc-ripple-surface::before{--mdc-ripple-color:var(--mdc-theme-on-surface)}.forge-button-toggle{--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;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-button-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:.875rem;font-size:var(--mdc-typography-button-font-size, .875rem);line-height:2.25rem;line-height:var(--mdc-typography-button-line-height, 2.25rem);font-weight:500;font-weight:var(--mdc-typography-button-font-weight,500);letter-spacing:.0892857143em;letter-spacing:var(--mdc-typography-button-letter-spacing, .0892857143em);text-decoration:none;-webkit-text-decoration:var(--mdc-typography-button-text-decoration,none);text-decoration:var(--mdc-typography-button-text-decoration,none);text-transform:uppercase;text-transform:var(--mdc-typography-button-text-transform,uppercase);position:relative;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;min-width:64px;border:none;outline:0;line-height:inherit;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:0 0;border-radius:4px;border-radius:var(--mdc-shape-small,4px);height:36px;text-transform:none;box-sizing:border-box;overflow:hidden;border-style:solid;-webkit-transition:border 280ms cubic-bezier(.4, 0, .2, 1);transition:border 280ms cubic-bezier(.4, 0, .2, 1);font-family:Roboto,sans-serif;font-family:var(--mdc-outlined-button-label-text-font, var(--mdc-typography-button-font-family, var(--mdc-typography-font-family, Roboto, sans-serif)));font-size:.875rem;font-size:var(--mdc-outlined-button-label-text-size, var(--mdc-typography-button-font-size, .875rem));letter-spacing:.0892857143em;letter-spacing:var(--mdc-outlined-button-label-text-tracking, var(--mdc-typography-button-letter-spacing, .0892857143em));font-weight:500;font-weight:var(--mdc-outlined-button-label-text-weight,var(--mdc-typography-button-font-weight,500));text-transform:uppercase;text-transform:var(--mdc-outlined-button-label-text-transform,var(--mdc-typography-button-text-transform,uppercase));height:36px;height:var(--mdc-outlined-button-container-height,36px);border-radius:4px;border-radius:var(--mdc-outlined-button-container-shape,var(--mdc-shape-small,4px));padding:0 15px 0 15px;border-width:1px;border-width:var(--mdc-outlined-button-outline-width,1px);padding:0 15px 0 15px;border-width:1px;width:100%;box-sizing:border-box;-webkit-transition:background-color 150ms 0s cubic-bezier(0, 0, .2, 1);transition:background-color 150ms 0s cubic-bezier(0, 0, .2, 1);border-radius:0;border-bottom-width:var(--forge-button-toggle-border-bottom-width,1px);border-right-width:var(--forge-button-toggle-border-right-width,1px);border-top-left-radius:var(--forge-button-toggle-border-top-left-radius,4px);border-bottom-left-radius:var(--forge-button-toggle-border-bottom-left-radius,4px);border-top-right-radius:var(--forge-button-toggle-border-top-right-radius,4px);border-bottom-right-radius:var(--forge-button-toggle-border-bottom-right-radius,4px)}.forge-button-toggle::after,.forge-button-toggle::before{position:absolute;border-radius:50%;opacity:0;pointer-events:none;content:\\\"\\\"}.forge-button-toggle::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-button-toggle::after{z-index:0;z-index:var(--mdc-ripple-z-index,0)}.forge-button-toggle.mdc-ripple-upgraded::before{-webkit-transform:scale(var(--mdc-ripple-fg-scale,1));transform:scale(var(--mdc-ripple-fg-scale,1))}.forge-button-toggle.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-button-toggle.mdc-ripple-upgraded--unbounded::after{top:var(--mdc-ripple-top,0);left:var(--mdc-ripple-left,0)}.forge-button-toggle.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-button-toggle.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-button-toggle::after,.forge-button-toggle::before{top:calc(50% - 100%);left:calc(50% - 100%);width:200%;height:200%}.forge-button-toggle.mdc-ripple-upgraded::after{width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.forge-button-toggle::after,.forge-button-toggle::before{background-color:#3f51b5;background-color:var(--mdc-ripple-color,var(--mdc-theme-primary,#3f51b5))}.forge-button-toggle.mdc-ripple-surface--hover::before,.forge-button-toggle:hover::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.forge-button-toggle.mdc-ripple-upgraded--background-focused::before,.forge-button-toggle:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.forge-button-toggle:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-button-toggle:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.forge-button-toggle.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}.forge-button-toggle .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.forge-button-toggle::-moz-focus-inner{padding:0;border:0}.forge-button-toggle:active{outline:0}.forge-button-toggle:hover{cursor:pointer}.forge-button-toggle:disabled{cursor:default;pointer-events:none}.forge-button-toggle .mdc-button__ripple{border-radius:4px;border-radius:var(--mdc-shape-small,4px)}.forge-button-toggle:not(:disabled){background-color:transparent}.forge-button-toggle:not(:disabled){color:#3f51b5;color:var(--mdc-theme-primary,#3f51b5)}.forge-button-toggle .mdc-button__ripple{border-style:solid;border-color:transparent}.forge-button-toggle:not(:disabled){color:#3f51b5;color:var(--mdc-outlined-button-label-text-color,var(--mdc-theme-primary,#3f51b5))}.forge-button-toggle:disabled{color:rgba(0,0,0,.38);color:var(--mdc-outlined-button-disabled-label-text-color,rgba(0,0,0,.38))}.forge-button-toggle .mdc-button__icon{font-size:1.125rem;font-size:var(--mdc-outlined-button-with-icon-icon-size, 1.125rem);width:1.125rem;width:var(--mdc-outlined-button-with-icon-icon-size,1.125rem);height:1.125rem;height:var(--mdc-outlined-button-with-icon-icon-size,1.125rem)}.forge-button-toggle .mdc-button__ripple::after,.forge-button-toggle .mdc-button__ripple::before{background-color:#3f51b5;background-color:var(--mdc-outlined-button-hover-state-layer-color,var(--mdc-theme-primary,#3f51b5))}.forge-button-toggle.mdc-ripple-surface--hover .mdc-button__ripple::before,.forge-button-toggle:hover .mdc-button__ripple::before{opacity:.04;opacity:var(--mdc-outlined-button-hover-state-layer-opacity, .04)}.forge-button-toggle.mdc-ripple-upgraded--background-focused .mdc-button__ripple::before,.forge-button-toggle:not(.mdc-ripple-upgraded):focus .mdc-button__ripple::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-outlined-button-focus-state-layer-opacity, .12)}.forge-button-toggle:not(.mdc-ripple-upgraded) .mdc-button__ripple::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-button-toggle:not(.mdc-ripple-upgraded):active .mdc-button__ripple::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-outlined-button-pressed-state-layer-opacity, .12)}.forge-button-toggle.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-outlined-button-pressed-state-layer-opacity, 0.12)}.forge-button-toggle .mdc-button__ripple{border-radius:4px;border-radius:var(--mdc-outlined-button-container-shape,var(--mdc-shape-small,4px))}.forge-button-toggle:not(:disabled){border-color:rgba(0,0,0,.12);border-color:var(--mdc-outlined-button-outline-color,rgba(0,0,0,.12))}.forge-button-toggle:disabled{border-color:rgba(0,0,0,.12);border-color:var(--mdc-outlined-button-disabled-outline-color,rgba(0,0,0,.12))}.forge-button-toggle.mdc-button--icon-trailing{padding:0 11px 0 15px}.forge-button-toggle.mdc-button--icon-leading{padding:0 15px 0 11px}.forge-button-toggle .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:1px;border-width:var(--mdc-outlined-button-outline-width,1px)}.forge-button-toggle .mdc-button__touch{left:calc(-1 * 1px);left:calc(-1 * var(--mdc-outlined-button-outline-width,1px));width:calc(100% + 2 * 1px);width:calc(100% + 2 * var(--mdc-outlined-button-outline-width,1px))}.forge-button-toggle.mdc-button--icon-trailing{padding:0 11px 0 15px}.forge-button-toggle.mdc-button--icon-leading{padding:0 15px 0 11px}.forge-button-toggle .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:1px}.forge-button-toggle .mdc-button__touch{left:calc(-1 * 1px);width:calc(100% + 2 * 1px)}.forge-button-toggle:not(:disabled){border-color:#3f51b5;border-color:var(--mdc-theme-primary,#3f51b5)}.forge-button-toggle:disabled{border-color:#e0e0e0;border-color:var(--forge-theme-border-color,#e0e0e0);color:rgba(0,0,0,.38);color:var(--mdc-theme-text-disabled-on-light,rgba(0,0,0,.38))}.forge-button-toggle__selected:not(:disabled){background-color:#3f51b5;background-color:var(--mdc-theme-primary,#3f51b5);color:rgba(255,255,255,.87);color:var(--mdc-theme-text-primary-on-dark,rgba(255,255,255,.87))}.forge-button-toggle__selected:not(:disabled)::after,.forge-button-toggle__selected:not(:disabled)::before{background-color:#fff;background-color:var(--mdc-ripple-color,var(--mdc-theme-on-primary,#fff))}.forge-button-toggle__selected:not(:disabled).mdc-ripple-surface--hover::before,.forge-button-toggle__selected:not(:disabled):hover::before{opacity:.08;opacity:var(--mdc-ripple-hover-opacity, .08)}.forge-button-toggle__selected:not(:disabled).mdc-ripple-upgraded--background-focused::before,.forge-button-toggle__selected:not(:disabled):not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.24;opacity:var(--mdc-ripple-focus-opacity, .24)}.forge-button-toggle__selected:not(:disabled):not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-button-toggle__selected:not(:disabled):not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.24;opacity:var(--mdc-ripple-press-opacity, .24)}.forge-button-toggle__selected:not(:disabled).mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.24)}.forge-button-toggle__selected:disabled{background-color:#3f51b5;background-color:var(--mdc-theme-primary,#3f51b5);color:rgba(255,255,255,.87);color:var(--mdc-theme-text-primary-on-dark,rgba(255,255,255,.87));opacity:.37}.forge-button-toggle__selected:disabled::after,.forge-button-toggle__selected:disabled::before{background-color:#fff;background-color:var(--mdc-ripple-color,var(--mdc-theme-on-primary,#fff))}.forge-button-toggle__selected:disabled.mdc-ripple-surface--hover::before,.forge-button-toggle__selected:disabled:hover::before{opacity:.08;opacity:var(--mdc-ripple-hover-opacity, .08)}.forge-button-toggle__selected:disabled.mdc-ripple-upgraded--background-focused::before,.forge-button-toggle__selected:disabled:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.24;opacity:var(--mdc-ripple-focus-opacity, .24)}.forge-button-toggle__selected:disabled:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-button-toggle__selected:disabled:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.24;opacity:var(--mdc-ripple-press-opacity, .24)}.forge-button-toggle__selected:disabled.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.24)}.forge-button-toggle ::slotted([slot=leading]){display:inline-block;width:1.125rem;height:1.125rem;font-size:1.125rem!important;vertical-align:top;margin-right:4px}.forge-button-toggle ::slotted([slot=trailing]){display:inline-block;width:1.125rem;height:1.125rem;font-size:1.125rem!important;vertical-align:top;margin-left:4px}.forge-button-toggle--dense{height:24px;margin-top:0;margin-bottom:0;height:1.5rem;font-size:.75rem}.forge-button-toggle--dense .mdc-button__touch{height:100%}.forge-button-toggle--dense ::slotted([slot=leading]){width:.875rem;height:.875rem;font-size:.875rem!important}.forge-button-toggle--dense ::slotted([slot=trailing]){width:.875rem;height:.875rem;font-size:.875rem!important}:host{display:inline-block}:host([hidden]){display:none}:host([stretch]){width:100%;-webkit-box-flex:1;flex:1}:host([selected-adjacent]) .forge-button-toggle{border-left-color:var(--mdc-theme-text-primary-on-dark)}:host([selected-adjacent-vertical]) .forge-button-toggle{border-top-color:var(--mdc-theme-text-primary-on-dark)}';\n\nexport interface IButtonToggleComponent extends IBaseComponent {\n value: any;\n selected: boolean;\n disabled: boolean;\n dense: boolean;\n}\n\nexport interface IButtonToggleComponentEventMap extends HTMLElementEventMap {}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-button-toggle': IButtonToggleComponent;\n }\n\n interface HTMLElementEventMap {\n 'forge-button-toggle-select': CustomEvent<IButtonToggleSelectEventData>;\n }\n}\n\n@CustomElement({\n name: BUTTON_TOGGLE_CONSTANTS.elementName\n})\nexport class ButtonToggleComponent extends BaseComponent implements IButtonToggleComponent {\n public static get observedAttributes(): string[] {\n return [\n BUTTON_TOGGLE_CONSTANTS.attributes.VALUE,\n BUTTON_TOGGLE_CONSTANTS.attributes.SELECTED,\n BUTTON_TOGGLE_CONSTANTS.attributes.DISABLED,\n BUTTON_TOGGLE_CONSTANTS.attributes.DENSE,\n BUTTON_TOGGLE_CONSTANTS.attributes.BUTTON_ARIA_LABEL\n ];\n }\n\n private _foundation: ButtonToggleFoundation;\n private _buttonElement: HTMLButtonElement;\n\n constructor() {\n super();\n attachShadowTemplate(this, template, styles);\n this._foundation = new ButtonToggleFoundation(new ButtonToggleAdapter(this));\n this._buttonElement = getShadowElement(this, BUTTON_TOGGLE_CONSTANTS.selectors.BUTTON) as HTMLButtonElement;\n }\n\n public initializedCallback(): void {\n this._foundation.initialize();\n }\n\n public disconnectedCallback(): void {\n this._foundation.disconnect();\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n switch (name) {\n case BUTTON_TOGGLE_CONSTANTS.attributes.VALUE:\n this.value = newValue;\n break;\n case BUTTON_TOGGLE_CONSTANTS.attributes.SELECTED:\n this.selected = coerceBoolean(newValue);\n break;\n case BUTTON_TOGGLE_CONSTANTS.attributes.DISABLED:\n this.disabled = coerceBoolean(newValue);\n break;\n case BUTTON_TOGGLE_CONSTANTS.attributes.DENSE:\n this.dense = coerceBoolean(newValue);\n break;\n case BUTTON_TOGGLE_CONSTANTS.attributes.BUTTON_ARIA_LABEL:\n this._buttonElement.setAttribute('aria-label', newValue);\n break;\n }\n }\n\n @FoundationProperty()\n public value: any;\n\n @FoundationProperty()\n public selected: boolean;\n\n @FoundationProperty()\n public disabled: boolean;\n\n @FoundationProperty()\n public dense: boolean;\n\n public override focus(): void {\n this._foundation.setFocus();\n }\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../../constants';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}button-toggle`;\n\nconst attributes = {\n VALUE: 'value',\n SELECTED: 'selected',\n DISABLED: 'disabled',\n DENSE: 'dense',\n BUTTON_ARIA_LABEL: 'button-aria-label',\n SELECTED_ADJACENT: 'selected-adjacent',\n SELECTED_ADJACENT_VERTICAL: 'selected-adjacent-vertical',\n STRETCH: 'stretch'\n};\n\nconst classes = {\n SELECTED: 'forge-button-toggle__selected',\n DENSE: 'forge-button-toggle--dense'\n};\n\nconst selectors = {\n BUTTON: '.forge-button-toggle',\n SELECTED: `.${classes.SELECTED}`\n};\n\nconst events = {\n SELECT: `${elementName}-select`\n};\n\nexport const BUTTON_TOGGLE_CONSTANTS = {\n elementName,\n attributes,\n classes,\n selectors,\n events\n};\n\nexport interface IButtonToggleSelectEventData {\n value: string;\n selected: boolean;\n}\n", "import { getShadowElement } from '@tylertech/forge-core';\nimport { ForgeRipple } from '../../ripple';\nimport { BaseAdapter, IBaseAdapter } from '../../core/base/base-adapter';\nimport { IButtonToggleGroupComponent } from '../button-toggle-group';\nimport { IButtonToggleComponent } from './button-toggle';\nimport { BUTTON_TOGGLE_CONSTANTS } from './button-toggle-constants';\n\nexport interface IButtonToggleAdapter extends IBaseAdapter {\n setSelected(value: boolean): void;\n addEventListener(type: string, listener: (evt: Event) => void): void;\n removeEventListener(type: string, listener: (evt: Event) => void): void;\n initializeRipple(): ForgeRipple;\n setDisabled(value: boolean): void;\n setDense(value: boolean): void;\n requestFocus(): void;\n detectStretchState(): void;\n}\n\nexport class ButtonToggleAdapter extends BaseAdapter<IButtonToggleComponent> implements IButtonToggleAdapter {\n private _buttonElement: HTMLButtonElement;\n\n constructor(component: IButtonToggleComponent) {\n super(component);\n this._buttonElement = getShadowElement(component, BUTTON_TOGGLE_CONSTANTS.selectors.BUTTON) as HTMLButtonElement;\n }\n\n public setSelected(value: boolean): void {\n if (value) {\n this._buttonElement.classList.add(BUTTON_TOGGLE_CONSTANTS.classes.SELECTED);\n } else {\n this._buttonElement.classList.remove(BUTTON_TOGGLE_CONSTANTS.classes.SELECTED);\n }\n this._buttonElement.setAttribute('aria-pressed', value.toString());\n }\n\n public addEventListener(type: string, listener: (evt: Event) => void): void {\n this._buttonElement.addEventListener(type, listener);\n }\n\n public removeEventListener(type: string, listener: (evt: Event) => void): void {\n this._buttonElement.removeEventListener(type, listener);\n }\n\n public initializeRipple(): ForgeRipple {\n return new ForgeRipple(this._buttonElement);\n }\n\n public setDisabled(value: boolean): void {\n this._buttonElement.disabled = value;\n if (value) {\n this._buttonElement.setAttribute('aria-disabled', value.toString());\n } else {\n this._buttonElement.removeAttribute('aria-disabled');\n }\n }\n\n public setDense(value: boolean): void {\n if (value) {\n this._buttonElement.classList.add(BUTTON_TOGGLE_CONSTANTS.classes.DENSE);\n } else {\n this._buttonElement.classList.remove(BUTTON_TOGGLE_CONSTANTS.classes.DENSE);\n }\n }\n\n public requestFocus(): void {\n this._buttonElement.focus();\n }\n\n public detectStretchState(): void {\n if (this._component.hasAttribute(BUTTON_TOGGLE_CONSTANTS.attributes.STRETCH)) {\n return;\n }\n const buttonToggleGroup = this._component.parentElement as IButtonToggleGroupComponent;\n if (buttonToggleGroup && buttonToggleGroup.hasAttribute(BUTTON_TOGGLE_CONSTANTS.attributes.STRETCH) && buttonToggleGroup.stretch) {\n this._component.setAttribute(BUTTON_TOGGLE_CONSTANTS.attributes.STRETCH, '');\n }\n }\n}\n", "import { ICustomElementFoundation } from '@tylertech/forge-core';\nimport { ForgeRipple } from '../../ripple';\nimport { IButtonToggleAdapter } from './button-toggle-adapter';\nimport { BUTTON_TOGGLE_CONSTANTS, IButtonToggleSelectEventData } from './button-toggle-constants';\n\n\nexport interface IButtonToggleFoundation extends ICustomElementFoundation {\n value: any;\n selected: boolean;\n disabled: boolean;\n dense: boolean;\n setFocus(): void;\n}\n\nexport class ButtonToggleFoundation implements IButtonToggleFoundation {\n private _value: any;\n private _selected = false;\n private _disabled = false;\n private _dense = false;\n private _clickListener: (evt: MouseEvent) => void;\n private _rippleInstance: ForgeRipple;\n\n constructor(private _adapter: IButtonToggleAdapter) {\n this._clickListener = evt => this._onClick(evt);\n }\n\n public initialize(): void {\n this._rippleInstance = this._adapter.initializeRipple();\n this._adapter.addEventListener('click', this._clickListener);\n this._adapter.setSelected(this._selected);\n this._adapter.setDisabled(this._disabled);\n this._adapter.setDense(this._dense);\n this._adapter.detectStretchState();\n }\n\n public disconnect(): void {\n if (this._rippleInstance) {\n this._rippleInstance.destroy();\n }\n this._adapter.removeEventListener('click', this._clickListener);\n }\n\n private _onClick(evt: MouseEvent): void {\n this._selected = !this._selected;\n this._updateSelectedState();\n this._adapter.emitHostEvent(BUTTON_TOGGLE_CONSTANTS.events.SELECT, { value: this._value, selected: this._selected } as IButtonToggleSelectEventData);\n }\n\n private _updateSelectedState(): void {\n this._adapter.setSelected(this._selected);\n this._adapter.setHostAttribute(BUTTON_TOGGLE_CONSTANTS.attributes.SELECTED, this._selected.toString());\n }\n\n public get value(): any {\n return this._value;\n }\n public set value(value: any) {\n this._value = value;\n }\n\n public get selected(): boolean {\n return this._selected;\n }\n public set selected(value: boolean) {\n if (this._selected !== value) {\n this._selected = value;\n this._updateSelectedState();\n }\n }\n\n public get disabled(): boolean {\n return this._disabled;\n }\n public set disabled(value: boolean) {\n if (this._disabled !== value) {\n this._disabled = value;\n this._adapter.setDisabled(this._disabled);\n }\n }\n\n public get dense(): boolean {\n return this._dense;\n }\n public set dense(value: boolean) {\n if (this._dense !== value) {\n this._dense = value;\n this._adapter.setDense(this._dense);\n }\n }\n\n public setFocus(): void {\n this._adapter.requestFocus();\n }\n}\n", "import { attachShadowTemplate, coerceBoolean, CustomElement, FoundationProperty, getShadowElement } from '@tylertech/forge-core';\nimport { BaseComponent, IBaseComponent } from '../../core/base/base-component';\nimport { ButtonToggleAdapter } from './button-toggle-adapter';\nimport { BUTTON_TOGGLE_CONSTANTS, IButtonToggleSelectEventData } from './button-toggle-constants';\nimport { ButtonToggleFoundation } from './button-toggle-foundation';\n\nconst template = '<template><button type=\\\"button\\\" class=\\\"forge-button-toggle\\\" aria-pressed=\\\"false\\\" part=\\\"button\\\"><slot name=\\\"leading\\\"></slot><slot></slot><slot name=\\\"trailing\\\"></slot></button></template>';\nconst styles = '@-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-ripple-surface{--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;position:relative;outline:0;overflow:hidden}.mdc-ripple-surface::after,.mdc-ripple-surface::before{position:absolute;border-radius:50%;opacity:0;pointer-events:none;content:\\\"\\\"}.mdc-ripple-surface::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-ripple-surface::after{z-index:0;z-index:var(--mdc-ripple-z-index,0)}.mdc-ripple-surface.mdc-ripple-upgraded::before{-webkit-transform:scale(var(--mdc-ripple-fg-scale,1));transform:scale(var(--mdc-ripple-fg-scale,1))}.mdc-ripple-surface.mdc-ripple-upgraded::after{top:0;left:0;-webkit-transform:scale(0);transform:scale(0);-webkit-transform-origin:center center;transform-origin:center center}.mdc-ripple-surface.mdc-ripple-upgraded--unbounded::after{top:var(--mdc-ripple-top,0);left:var(--mdc-ripple-left,0)}.mdc-ripple-surface.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}.mdc-ripple-surface.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))}.mdc-ripple-surface::after,.mdc-ripple-surface::before{top:calc(50% - 100%);left:calc(50% - 100%);width:200%;height:200%}.mdc-ripple-surface.mdc-ripple-upgraded::after{width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.mdc-ripple-surface[data-mdc-ripple-is-unbounded],.mdc-ripple-upgraded--unbounded{overflow:visible}.mdc-ripple-surface[data-mdc-ripple-is-unbounded]::after,.mdc-ripple-surface[data-mdc-ripple-is-unbounded]::before,.mdc-ripple-upgraded--unbounded::after,.mdc-ripple-upgraded--unbounded::before{top:calc(50% - 50%);left:calc(50% - 50%);width:100%;height:100%}.mdc-ripple-surface[data-mdc-ripple-is-unbounded].mdc-ripple-upgraded::after,.mdc-ripple-surface[data-mdc-ripple-is-unbounded].mdc-ripple-upgraded::before,.mdc-ripple-upgraded--unbounded.mdc-ripple-upgraded::after,.mdc-ripple-upgraded--unbounded.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%)}.mdc-ripple-surface[data-mdc-ripple-is-unbounded].mdc-ripple-upgraded::after,.mdc-ripple-upgraded--unbounded.mdc-ripple-upgraded::after{width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.mdc-ripple-surface::after,.mdc-ripple-surface::before{background-color:#000;background-color:var(--mdc-ripple-color,#000)}.mdc-ripple-surface.mdc-ripple-surface--hover::before,.mdc-ripple-surface:hover::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.mdc-ripple-surface.mdc-ripple-upgraded--background-focused::before,.mdc-ripple-surface:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.mdc-ripple-surface:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.mdc-ripple-surface:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.mdc-ripple-surface.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}.mdc-ripple-surface::after,.mdc-ripple-surface::before{--mdc-ripple-color:var(--mdc-theme-on-surface)}.forge-button-toggle{--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;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-button-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:.875rem;font-size:var(--mdc-typography-button-font-size, .875rem);line-height:2.25rem;line-height:var(--mdc-typography-button-line-height, 2.25rem);font-weight:500;font-weight:var(--mdc-typography-button-font-weight,500);letter-spacing:.0892857143em;letter-spacing:var(--mdc-typography-button-letter-spacing, .0892857143em);text-decoration:none;-webkit-text-decoration:var(--mdc-typography-button-text-decoration,none);text-decoration:var(--mdc-typography-button-text-decoration,none);text-transform:uppercase;text-transform:var(--mdc-typography-button-text-transform,uppercase);position:relative;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;min-width:64px;border:none;outline:0;line-height:inherit;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:0 0;border-radius:4px;border-radius:var(--mdc-shape-small,4px);height:36px;text-transform:none;box-sizing:border-box;overflow:hidden;border-style:solid;-webkit-transition:border 280ms cubic-bezier(.4, 0, .2, 1);transition:border 280ms cubic-bezier(.4, 0, .2, 1);font-family:Roboto,sans-serif;font-family:var(--mdc-outlined-button-label-text-font, var(--mdc-typography-button-font-family, var(--mdc-typography-font-family, Roboto, sans-serif)));font-size:.875rem;font-size:var(--mdc-outlined-button-label-text-size, var(--mdc-typography-button-font-size, .875rem));letter-spacing:.0892857143em;letter-spacing:var(--mdc-outlined-button-label-text-tracking, var(--mdc-typography-button-letter-spacing, .0892857143em));font-weight:500;font-weight:var(--mdc-outlined-button-label-text-weight,var(--mdc-typography-button-font-weight,500));text-transform:uppercase;text-transform:var(--mdc-outlined-button-label-text-transform,var(--mdc-typography-button-text-transform,uppercase));height:36px;height:var(--mdc-outlined-button-container-height,36px);border-radius:4px;border-radius:var(--mdc-outlined-button-container-shape,var(--mdc-shape-small,4px));padding:0 15px 0 15px;border-width:1px;border-width:var(--mdc-outlined-button-outline-width,1px);padding:0 15px 0 15px;border-width:1px;width:100%;box-sizing:border-box;-webkit-transition:background-color 150ms 0s cubic-bezier(0, 0, .2, 1);transition:background-color 150ms 0s cubic-bezier(0, 0, .2, 1);border-radius:0;border-bottom-width:var(--forge-button-toggle-border-bottom-width,1px);border-right-width:var(--forge-button-toggle-border-right-width,1px);border-top-left-radius:var(--forge-button-toggle-border-top-left-radius,4px);border-bottom-left-radius:var(--forge-button-toggle-border-bottom-left-radius,4px);border-top-right-radius:var(--forge-button-toggle-border-top-right-radius,4px);border-bottom-right-radius:var(--forge-button-toggle-border-bottom-right-radius,4px)}.forge-button-toggle::after,.forge-button-toggle::before{position:absolute;border-radius:50%;opacity:0;pointer-events:none;content:\\\"\\\"}.forge-button-toggle::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-button-toggle::after{z-index:0;z-index:var(--mdc-ripple-z-index,0)}.forge-button-toggle.mdc-ripple-upgraded::before{-webkit-transform:scale(var(--mdc-ripple-fg-scale,1));transform:scale(var(--mdc-ripple-fg-scale,1))}.forge-button-toggle.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-button-toggle.mdc-ripple-upgraded--unbounded::after{top:var(--mdc-ripple-top,0);left:var(--mdc-ripple-left,0)}.forge-button-toggle.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-button-toggle.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-button-toggle::after,.forge-button-toggle::before{top:calc(50% - 100%);left:calc(50% - 100%);width:200%;height:200%}.forge-button-toggle.mdc-ripple-upgraded::after{width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.forge-button-toggle::after,.forge-button-toggle::before{background-color:#3f51b5;background-color:var(--mdc-ripple-color,var(--mdc-theme-primary,#3f51b5))}.forge-button-toggle.mdc-ripple-surface--hover::before,.forge-button-toggle:hover::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.forge-button-toggle.mdc-ripple-upgraded--background-focused::before,.forge-button-toggle:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.forge-button-toggle:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-button-toggle:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.forge-button-toggle.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}.forge-button-toggle .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.forge-button-toggle::-moz-focus-inner{padding:0;border:0}.forge-button-toggle:active{outline:0}.forge-button-toggle:hover{cursor:pointer}.forge-button-toggle:disabled{cursor:default;pointer-events:none}.forge-button-toggle .mdc-button__ripple{border-radius:4px;border-radius:var(--mdc-shape-small,4px)}.forge-button-toggle:not(:disabled){background-color:transparent}.forge-button-toggle:not(:disabled){color:#3f51b5;color:var(--mdc-theme-primary,#3f51b5)}.forge-button-toggle .mdc-button__ripple{border-style:solid;border-color:transparent}.forge-button-toggle:not(:disabled){color:#3f51b5;color:var(--mdc-outlined-button-label-text-color,var(--mdc-theme-primary,#3f51b5))}.forge-button-toggle:disabled{color:rgba(0,0,0,.38);color:var(--mdc-outlined-button-disabled-label-text-color,rgba(0,0,0,.38))}.forge-button-toggle .mdc-button__icon{font-size:1.125rem;font-size:var(--mdc-outlined-button-with-icon-icon-size, 1.125rem);width:1.125rem;width:var(--mdc-outlined-button-with-icon-icon-size,1.125rem);height:1.125rem;height:var(--mdc-outlined-button-with-icon-icon-size,1.125rem)}.forge-button-toggle .mdc-button__ripple::after,.forge-button-toggle .mdc-button__ripple::before{background-color:#3f51b5;background-color:var(--mdc-outlined-button-hover-state-layer-color,var(--mdc-theme-primary,#3f51b5))}.forge-button-toggle.mdc-ripple-surface--hover .mdc-button__ripple::before,.forge-button-toggle:hover .mdc-button__ripple::before{opacity:.04;opacity:var(--mdc-outlined-button-hover-state-layer-opacity, .04)}.forge-button-toggle.mdc-ripple-upgraded--background-focused .mdc-button__ripple::before,.forge-button-toggle:not(.mdc-ripple-upgraded):focus .mdc-button__ripple::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-outlined-button-focus-state-layer-opacity, .12)}.forge-button-toggle:not(.mdc-ripple-upgraded) .mdc-button__ripple::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-button-toggle:not(.mdc-ripple-upgraded):active .mdc-button__ripple::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-outlined-button-pressed-state-layer-opacity, .12)}.forge-button-toggle.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-outlined-button-pressed-state-layer-opacity, 0.12)}.forge-button-toggle .mdc-button__ripple{border-radius:4px;border-radius:var(--mdc-outlined-button-container-shape,var(--mdc-shape-small,4px))}.forge-button-toggle:not(:disabled){border-color:rgba(0,0,0,.12);border-color:var(--mdc-outlined-button-outline-color,rgba(0,0,0,.12))}.forge-button-toggle:disabled{border-color:rgba(0,0,0,.12);border-color:var(--mdc-outlined-button-disabled-outline-color,rgba(0,0,0,.12))}.forge-button-toggle.mdc-button--icon-trailing{padding:0 11px 0 15px}.forge-button-toggle.mdc-button--icon-leading{padding:0 15px 0 11px}.forge-button-toggle .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:1px;border-width:var(--mdc-outlined-button-outline-width,1px)}.forge-button-toggle .mdc-button__touch{left:calc(-1 * 1px);left:calc(-1 * var(--mdc-outlined-button-outline-width,1px));width:calc(100% + 2 * 1px);width:calc(100% + 2 * var(--mdc-outlined-button-outline-width,1px))}.forge-button-toggle.mdc-button--icon-trailing{padding:0 11px 0 15px}.forge-button-toggle.mdc-button--icon-leading{padding:0 15px 0 11px}.forge-button-toggle .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px;border-width:1px}.forge-button-toggle .mdc-button__touch{left:calc(-1 * 1px);width:calc(100% + 2 * 1px)}.forge-button-toggle:not(:disabled){border-color:#3f51b5;border-color:var(--mdc-theme-primary,#3f51b5)}.forge-button-toggle:disabled{border-color:#e0e0e0;border-color:var(--forge-theme-border-color,#e0e0e0);color:rgba(0,0,0,.38);color:var(--mdc-theme-text-disabled-on-light,rgba(0,0,0,.38))}.forge-button-toggle__selected:not(:disabled){background-color:#3f51b5;background-color:var(--mdc-theme-primary,#3f51b5);color:rgba(255,255,255,.87);color:var(--mdc-theme-text-primary-on-dark,rgba(255,255,255,.87))}.forge-button-toggle__selected:not(:disabled)::after,.forge-button-toggle__selected:not(:disabled)::before{background-color:#fff;background-color:var(--mdc-ripple-color,var(--mdc-theme-on-primary,#fff))}.forge-button-toggle__selected:not(:disabled).mdc-ripple-surface--hover::before,.forge-button-toggle__selected:not(:disabled):hover::before{opacity:.08;opacity:var(--mdc-ripple-hover-opacity, .08)}.forge-button-toggle__selected:not(:disabled).mdc-ripple-upgraded--background-focused::before,.forge-button-toggle__selected:not(:disabled):not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.24;opacity:var(--mdc-ripple-focus-opacity, .24)}.forge-button-toggle__selected:not(:disabled):not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-button-toggle__selected:not(:disabled):not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.24;opacity:var(--mdc-ripple-press-opacity, .24)}.forge-button-toggle__selected:not(:disabled).mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.24)}.forge-button-toggle__selected:disabled{background-color:#3f51b5;background-color:var(--mdc-theme-primary,#3f51b5);color:rgba(255,255,255,.87);color:var(--mdc-theme-text-primary-on-dark,rgba(255,255,255,.87));opacity:.37}.forge-button-toggle__selected:disabled::after,.forge-button-toggle__selected:disabled::before{background-color:#fff;background-color:var(--mdc-ripple-color,var(--mdc-theme-on-primary,#fff))}.forge-button-toggle__selected:disabled.mdc-ripple-surface--hover::before,.forge-button-toggle__selected:disabled:hover::before{opacity:.08;opacity:var(--mdc-ripple-hover-opacity, .08)}.forge-button-toggle__selected:disabled.mdc-ripple-upgraded--background-focused::before,.forge-button-toggle__selected:disabled:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.24;opacity:var(--mdc-ripple-focus-opacity, .24)}.forge-button-toggle__selected:disabled:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-button-toggle__selected:disabled:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.24;opacity:var(--mdc-ripple-press-opacity, .24)}.forge-button-toggle__selected:disabled.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.24)}.forge-button-toggle ::slotted([slot=leading]){display:inline-block;width:1.125rem;height:1.125rem;font-size:1.125rem!important;vertical-align:top;margin-right:4px}.forge-button-toggle ::slotted([slot=trailing]){display:inline-block;width:1.125rem;height:1.125rem;font-size:1.125rem!important;vertical-align:top;margin-left:4px}.forge-button-toggle--dense{height:24px;margin-top:0;margin-bottom:0;height:1.5rem;font-size:.75rem}.forge-button-toggle--dense .mdc-button__touch{height:100%}.forge-button-toggle--dense ::slotted([slot=leading]){width:.875rem;height:.875rem;font-size:.875rem!important}.forge-button-toggle--dense ::slotted([slot=trailing]){width:.875rem;height:.875rem;font-size:.875rem!important}:host{display:inline-block}:host([hidden]){display:none}:host([stretch]){width:100%;-webkit-box-flex:1;flex:1}:host([selected-adjacent]) .forge-button-toggle{border-left-color:var(--mdc-theme-text-primary-on-dark)}:host([selected-adjacent-vertical]) .forge-button-toggle{border-top-color:var(--mdc-theme-text-primary-on-dark)}';\n\nexport interface IButtonToggleComponent extends IBaseComponent {\n value: any;\n selected: boolean;\n disabled: boolean;\n dense: boolean;\n}\n\nexport interface IButtonToggleComponentEventMap extends HTMLElementEventMap {}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-button-toggle': IButtonToggleComponent;\n }\n\n interface HTMLElementEventMap {\n 'forge-button-toggle-select': CustomEvent<IButtonToggleSelectEventData>;\n }\n}\n\n/**\n * The web component class behind the `<forge-button-toggle>` custom element.\n * \n * @tag forge-button-toggle\n */\n@CustomElement({\n name: BUTTON_TOGGLE_CONSTANTS.elementName\n})\nexport class ButtonToggleComponent extends BaseComponent implements IButtonToggleComponent {\n public static get observedAttributes(): string[] {\n return [\n BUTTON_TOGGLE_CONSTANTS.attributes.VALUE,\n BUTTON_TOGGLE_CONSTANTS.attributes.SELECTED,\n BUTTON_TOGGLE_CONSTANTS.attributes.DISABLED,\n BUTTON_TOGGLE_CONSTANTS.attributes.DENSE,\n BUTTON_TOGGLE_CONSTANTS.attributes.BUTTON_ARIA_LABEL\n ];\n }\n\n private _foundation: ButtonToggleFoundation;\n private _buttonElement: HTMLButtonElement;\n\n constructor() {\n super();\n attachShadowTemplate(this, template, styles);\n this._foundation = new ButtonToggleFoundation(new ButtonToggleAdapter(this));\n this._buttonElement = getShadowElement(this, BUTTON_TOGGLE_CONSTANTS.selectors.BUTTON) as HTMLButtonElement;\n }\n\n public initializedCallback(): void {\n this._foundation.initialize();\n }\n\n public disconnectedCallback(): void {\n this._foundation.disconnect();\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n switch (name) {\n case BUTTON_TOGGLE_CONSTANTS.attributes.VALUE:\n this.value = newValue;\n break;\n case BUTTON_TOGGLE_CONSTANTS.attributes.SELECTED:\n this.selected = coerceBoolean(newValue);\n break;\n case BUTTON_TOGGLE_CONSTANTS.attributes.DISABLED:\n this.disabled = coerceBoolean(newValue);\n break;\n case BUTTON_TOGGLE_CONSTANTS.attributes.DENSE:\n this.dense = coerceBoolean(newValue);\n break;\n case BUTTON_TOGGLE_CONSTANTS.attributes.BUTTON_ARIA_LABEL:\n this._buttonElement.setAttribute('aria-label', newValue);\n break;\n }\n }\n\n @FoundationProperty()\n public value: any;\n\n @FoundationProperty()\n public selected: boolean;\n\n @FoundationProperty()\n public disabled: boolean;\n\n @FoundationProperty()\n public dense: boolean;\n\n public override focus(): void {\n this._foundation.setFocus();\n }\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAM,cAA2C,GAAG;AAEpD,IAAM,aAAa;AAAA,EACjB,OAAO;AAAA,EACP,UAAU;AAAA,EACV,UAAU;AAAA,EACV,OAAO;AAAA,EACP,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,4BAA4B;AAAA,EAC5B,SAAS;AACX;AAEA,IAAM,UAAU;AAAA,EACd,UAAU;AAAA,EACV,OAAO;AACT;AAEA,IAAM,YAAY;AAAA,EAChB,QAAQ;AAAA,EACR,UAAU,IAAI,QAAQ;AACxB;AAEA,IAAM,SAAS;AAAA,EACb,QAAQ,GAAG;AACb;AAEO,IAAM,0BAA0B;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;;;ACjBO,IAAM,sBAAN,cAAkC,YAAoE;AAAA,EAG3G,YAAY,WAAmC;AAC7C,UAAM,SAAS;AACf,SAAK,iBAAiB,iBAAiB,WAAW,wBAAwB,UAAU,MAAM;AAAA,EAC5F;AAAA,EAEA,AAAO,YAAY,OAAsB;AACvC,QAAI,OAAO;AACT,WAAK,eAAe,UAAU,IAAI,wBAAwB,QAAQ,QAAQ;AAAA,IAC5E,OAAO;AACL,WAAK,eAAe,UAAU,OAAO,wBAAwB,QAAQ,QAAQ;AAAA,IAC/E;AACA,SAAK,eAAe,aAAa,gBAAgB,MAAM,SAAS,CAAC;AAAA,EACnE;AAAA,EAEA,AAAO,iBAAiB,MAAc,UAAsC;AAC1E,SAAK,eAAe,iBAAiB,MAAM,QAAQ;AAAA,EACrD;AAAA,EAEA,AAAO,oBAAoB,MAAc,UAAsC;AAC7E,SAAK,eAAe,oBAAoB,MAAM,QAAQ;AAAA,EACxD;AAAA,EAEA,AAAO,mBAAgC;AACrC,WAAO,IAAI,YAAY,KAAK,cAAc;AAAA,EAC5C;AAAA,EAEA,AAAO,YAAY,OAAsB;AACvC,SAAK,eAAe,WAAW;AAC/B,QAAI,OAAO;AACT,WAAK,eAAe,aAAa,iBAAiB,MAAM,SAAS,CAAC;AAAA,IACpE,OAAO;AACL,WAAK,eAAe,gBAAgB,eAAe;AAAA,IACrD;AAAA,EACF;AAAA,EAEA,AAAO,SAAS,OAAsB;AACpC,QAAI,OAAO;AACT,WAAK,eAAe,UAAU,IAAI,wBAAwB,QAAQ,KAAK;AAAA,IACzE,OAAO;AACL,WAAK,eAAe,UAAU,OAAO,wBAAwB,QAAQ,KAAK;AAAA,IAC5E;AAAA,EACF;AAAA,EAEA,AAAO,eAAqB;AAC1B,SAAK,eAAe,MAAM;AAAA,EAC5B;AAAA,EAEA,AAAO,qBAA2B;AAChC,QAAI,KAAK,WAAW,aAAa,wBAAwB,WAAW,OAAO,GAAG;AAC5E;AAAA,IACF;AACA,UAAM,oBAAoB,KAAK,WAAW;AAC1C,QAAI,qBAAqB,kBAAkB,aAAa,wBAAwB,WAAW,OAAO,KAAK,kBAAkB,SAAS;AAChI,WAAK,WAAW,aAAa,wBAAwB,WAAW,SAAS,EAAE;AAAA,IAC7E;AAAA,EACF;AACF;;;AC/DO,IAAM,yBAAN,MAAgE;AAAA,EAQrE,YAAoB,UAAgC;AAAhC;AANpB,SAAQ,YAAY;AACpB,SAAQ,YAAY;AACpB,SAAQ,SAAS;AAKf,SAAK,iBAAiB,SAAO,KAAK,SAAS,GAAG;AAAA,EAChD;AAAA,EAEA,AAAO,aAAmB;AACxB,SAAK,kBAAkB,KAAK,SAAS,iBAAiB;AACtD,SAAK,SAAS,iBAAiB,SAAS,KAAK,cAAc;AAC3D,SAAK,SAAS,YAAY,KAAK,SAAS;AACxC,SAAK,SAAS,YAAY,KAAK,SAAS;AACxC,SAAK,SAAS,SAAS,KAAK,MAAM;AAClC,SAAK,SAAS,mBAAmB;AAAA,EACnC;AAAA,EAEA,AAAO,aAAmB;AACxB,QAAI,KAAK,iBAAiB;AACxB,WAAK,gBAAgB,QAAQ;AAAA,IAC/B;AACA,SAAK,SAAS,oBAAoB,SAAS,KAAK,cAAc;AAAA,EAChE;AAAA,EAEA,AAAQ,SAAS,KAAuB;AACtC,SAAK,YAAY,CAAC,KAAK;AACvB,SAAK,qBAAqB;AAC1B,SAAK,SAAS,cAAc,wBAAwB,OAAO,QAAQ,EAAE,OAAO,KAAK,QAAQ,UAAU,KAAK,UAAU,CAAiC;AAAA,EACrJ;AAAA,EAEA,AAAQ,uBAA6B;AACnC,SAAK,SAAS,YAAY,KAAK,SAAS;AACxC,SAAK,SAAS,iBAAiB,wBAAwB,WAAW,UAAU,KAAK,UAAU,SAAS,CAAC;AAAA,EACvG;AAAA,EAEA,IAAW,QAAa;AACtB,WAAO,KAAK;AAAA,EACd;AAAA,EACA,IAAW,MAAM,OAAY;AAC3B,SAAK,SAAS;AAAA,EAChB;AAAA,EAEA,IAAW,WAAoB;AAC7B,WAAO,KAAK;AAAA,EACd;AAAA,EACA,IAAW,SAAS,OAAgB;AAClC,QAAI,KAAK,cAAc,OAAO;AAC5B,WAAK,YAAY;AACjB,WAAK,qBAAqB;AAAA,IAC5B;AAAA,EACF;AAAA,EAEA,IAAW,WAAoB;AAC7B,WAAO,KAAK;AAAA,EACd;AAAA,EACA,IAAW,SAAS,OAAgB;AAClC,QAAI,KAAK,cAAc,OAAO;AAC5B,WAAK,YAAY;AACjB,WAAK,SAAS,YAAY,KAAK,SAAS;AAAA,IAC1C;AAAA,EACF;AAAA,EAEA,IAAW,QAAiB;AAC1B,WAAO,KAAK;AAAA,EACd;AAAA,EACA,IAAW,MAAM,OAAgB;AAC/B,QAAI,KAAK,WAAW,OAAO;AACzB,WAAK,SAAS;AACd,WAAK,SAAS,SAAS,KAAK,MAAM;AAAA,IACpC;AAAA,EACF;AAAA,EAEA,AAAO,WAAiB;AACtB,SAAK,SAAS,aAAa;AAAA,EAC7B;AACF;;;ACvFA,IAAM,WAAW;AACjB,IAAM,SAAS;AA6BR,IAAM,wBAAN,cAAoC,cAAgD;AAAA,EAczF,cAAc;AACZ,UAAM;AACN,yBAAqB,MAAM,UAAU,MAAM;AAC3C,SAAK,cAAc,IAAI,uBAAuB,IAAI,oBAAoB,IAAI,CAAC;AAC3E,SAAK,iBAAiB,iBAAiB,MAAM,wBAAwB,UAAU,MAAM;AAAA,EACvF;AAAA,EAlBA,WAAkB,qBAA+B;AAC/C,WAAO;AAAA,MACL,wBAAwB,WAAW;AAAA,MACnC,wBAAwB,WAAW;AAAA,MACnC,wBAAwB,WAAW;AAAA,MACnC,wBAAwB,WAAW;AAAA,MACnC,wBAAwB,WAAW;AAAA,IACrC;AAAA,EACF;AAAA,EAYA,AAAO,sBAA4B;AACjC,SAAK,YAAY,WAAW;AAAA,EAC9B;AAAA,EAEA,AAAO,uBAA6B;AAClC,SAAK,YAAY,WAAW;AAAA,EAC9B;AAAA,EAEA,AAAO,yBAAyB,MAAc,UAAkB,UAAwB;AACtF,YAAQ;AAAA,WACD,wBAAwB,WAAW;AACtC,aAAK,QAAQ;AACb;AAAA,WACG,wBAAwB,WAAW;AACtC,aAAK,WAAW,cAAc,QAAQ;AACtC;AAAA,WACG,wBAAwB,WAAW;AACtC,aAAK,WAAW,cAAc,QAAQ;AACtC;AAAA,WACG,wBAAwB,WAAW;AACtC,aAAK,QAAQ,cAAc,QAAQ;AACnC;AAAA,WACG,wBAAwB,WAAW;AACtC,aAAK,eAAe,aAAa,cAAc,QAAQ;AACvD;AAAA;AAAA,EAEN;AAAA,EAcA,AAAgB,QAAc;AAC5B,SAAK,YAAY,SAAS;AAAA,EAC5B;AACF;AAdS;AAAA,EADP,AAAC,mBAAmB;AAAA,GACb,AAlDI,sBAkDJ;AAGA;AAAA,EADP,AAAC,mBAAmB;AAAA,GACb,AArDI,sBAqDJ;AAGA;AAAA,EADP,AAAC,mBAAmB;AAAA,GACb,AAxDI,sBAwDJ;AAGA;AAAA,EADP,AAAC,mBAAmB;AAAA,GACb,AA3DI,sBA2DJ;AA3DI,wBAAN;AAAA,EAHP,AAAC,cAAc;AAAA,IACb,MAAM,wBAAwB;AAAA,EAChC,CAAC;AAAA,GACY;",
6
6
  "names": []
7
7
  }
@@ -5,20 +5,20 @@
5
5
  */
6
6
  import {
7
7
  OPTION_GROUP_CONSTANTS
8
- } from "./chunk.P7NOYP4O.js";
8
+ } from "./chunk.WDD2GTIH.js";
9
9
  import {
10
10
  OPTION_CONSTANTS
11
- } from "./chunk.Y2TDQIA4.js";
11
+ } from "./chunk.RD4RIFOZ.js";
12
12
  import {
13
13
  ListDropdownAware
14
- } from "./chunk.LKUKESRQ.js";
14
+ } from "./chunk.3QXCVTCP.js";
15
15
  import {
16
16
  ListDropdown,
17
17
  ListDropdownAwareFoundation
18
- } from "./chunk.47D77ELY.js";
18
+ } from "./chunk.IGBDDH3J.js";
19
19
  import {
20
20
  POPUP_CONSTANTS
21
- } from "./chunk.5EEEKOOK.js";
21
+ } from "./chunk.DLF5JAQO.js";
22
22
  import {
23
23
  BaseAdapter
24
24
  } from "./chunk.KZATVOA6.js";
@@ -837,4 +837,4 @@ export {
837
837
  BaseSelectComponent,
838
838
  BaseSelectAdapter
839
839
  };
840
- //# sourceMappingURL=chunk.5VNEDRVC.js.map
840
+ //# sourceMappingURL=chunk.J5NUYQ4D.js.map