@tylertech/forge 3.0.0-next.19 → 3.0.0-next.20

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 (705) hide show
  1. package/custom-elements.json +33314 -31340
  2. package/dist/esm/accordion/index.js +1 -1
  3. package/dist/esm/app-bar/app-bar/index.js +1 -1
  4. package/dist/esm/app-bar/help-button/index.js +1 -1
  5. package/dist/esm/app-bar/index.js +1 -1
  6. package/dist/esm/app-bar/menu-button/index.js +1 -1
  7. package/dist/esm/app-bar/notification-button/index.js +1 -1
  8. package/dist/esm/app-bar/profile-button/index.js +1 -1
  9. package/dist/esm/app-bar/search/index.js +1 -1
  10. package/dist/esm/autocomplete/index.js +1 -1
  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 +1 -1
  15. package/dist/esm/bottom-sheet/index.js +1 -1
  16. package/dist/esm/busy-indicator/index.js +1 -1
  17. package/dist/esm/button/index.js +1 -1
  18. package/dist/esm/button-area/index.js +1 -1
  19. package/dist/esm/button-toggle/button-toggle/index.js +1 -1
  20. package/dist/esm/button-toggle/button-toggle-group/index.js +1 -1
  21. package/dist/esm/button-toggle/index.js +1 -1
  22. package/dist/esm/calendar/calendar-dropdown/index.js +1 -1
  23. package/dist/esm/calendar/calendar-menu/index.js +1 -1
  24. package/dist/esm/calendar/index.js +1 -1
  25. package/dist/esm/card/index.js +1 -1
  26. package/dist/esm/checkbox/index.js +1 -1
  27. package/dist/esm/chip-field/index.js +1 -1
  28. package/dist/esm/chips/chip/index.js +1 -1
  29. package/dist/esm/chips/chip-set/index.js +1 -1
  30. package/dist/esm/chips/index.js +1 -1
  31. package/dist/esm/chunks/{chunk.WJ26N3FC.js → chunk.22C7GQLX.js} +2 -2
  32. package/dist/esm/chunks/{chunk.CPD4RUF2.js → chunk.24MZM3AY.js} +2 -2
  33. package/dist/esm/chunks/{chunk.O6WN2UP6.js → chunk.2537XOFQ.js} +2 -2
  34. package/dist/esm/chunks/{chunk.KZMXTOLO.js → chunk.2AM2BKEO.js} +2 -2
  35. package/dist/esm/chunks/chunk.2N5KNNQX.js +7 -0
  36. package/dist/esm/chunks/chunk.2N5KNNQX.js.map +7 -0
  37. package/dist/esm/chunks/chunk.2W276VOR.js +7 -0
  38. package/dist/esm/chunks/chunk.2W276VOR.js.map +7 -0
  39. package/dist/esm/chunks/{chunk.KD4DVSJR.js → chunk.2WRAXA3H.js} +2 -2
  40. package/dist/esm/chunks/{chunk.ZYYPOLIG.js → chunk.2XPAYTK4.js} +2 -2
  41. package/dist/esm/chunks/chunk.35MHQH7Z.js +7 -0
  42. package/dist/esm/chunks/chunk.35MHQH7Z.js.map +7 -0
  43. package/dist/esm/chunks/chunk.3L77JY5H.js +7 -0
  44. package/dist/esm/chunks/chunk.3TIBP6QT.js +7 -0
  45. package/dist/esm/chunks/chunk.3TIBP6QT.js.map +7 -0
  46. package/dist/esm/chunks/{chunk.W2W3NTFC.js → chunk.3U222LE4.js} +2 -2
  47. package/dist/esm/chunks/{chunk.W2W3NTFC.js.map → chunk.3U222LE4.js.map} +2 -2
  48. package/dist/esm/chunks/{chunk.JPOTN7LL.js → chunk.45PPQY45.js} +2 -2
  49. package/dist/esm/chunks/{chunk.JPOTN7LL.js.map → chunk.45PPQY45.js.map} +1 -1
  50. package/dist/esm/chunks/{chunk.MBXBM6UI.js → chunk.47U6GVGZ.js} +2 -2
  51. package/dist/esm/chunks/chunk.4AEQ7KVU.js +7 -0
  52. package/dist/esm/chunks/chunk.4AEQ7KVU.js.map +7 -0
  53. package/dist/esm/chunks/{chunk.KWP42KR7.js → chunk.4NABD6XG.js} +2 -2
  54. package/dist/esm/chunks/{chunk.KWP42KR7.js.map → chunk.4NABD6XG.js.map} +2 -2
  55. package/dist/esm/chunks/{chunk.WKLDPPHS.js → chunk.4UU6PWR2.js} +2 -2
  56. package/dist/esm/chunks/{chunk.WKLDPPHS.js.map → chunk.4UU6PWR2.js.map} +1 -1
  57. package/dist/esm/chunks/{chunk.UYAP5GFT.js → chunk.5A34DJLZ.js} +2 -2
  58. package/dist/esm/chunks/{chunk.GAHE4QVB.js → chunk.5S7XNYRQ.js} +2 -2
  59. package/dist/esm/chunks/chunk.66YURKP2.js +7 -0
  60. package/dist/esm/chunks/chunk.66YURKP2.js.map +7 -0
  61. package/dist/esm/chunks/chunk.6GSVB5NB.js +7 -0
  62. package/dist/esm/chunks/chunk.6GSVB5NB.js.map +7 -0
  63. package/dist/esm/chunks/{chunk.DOAQODLZ.js → chunk.6XLTVIUD.js} +2 -2
  64. package/dist/esm/chunks/{chunk.4YKLCBP2.js → chunk.7IJUN75W.js} +2 -2
  65. package/dist/esm/chunks/chunk.7UBIT4NP.js +7 -0
  66. package/dist/esm/chunks/chunk.7UBIT4NP.js.map +7 -0
  67. package/dist/esm/chunks/{chunk.66RZ2CUB.js → chunk.A4UH52SA.js} +2 -2
  68. package/dist/esm/chunks/chunk.AFJ7QEVI.js +7 -0
  69. package/dist/esm/chunks/chunk.AFJ7QEVI.js.map +7 -0
  70. package/dist/esm/chunks/{chunk.KIQZLNDG.js → chunk.AN2E2SSN.js} +2 -2
  71. package/dist/esm/chunks/{chunk.XH63INIK.js → chunk.AOSBUJWW.js} +2 -2
  72. package/dist/esm/chunks/chunk.BETICEYY.js +7 -0
  73. package/dist/esm/chunks/chunk.BETICEYY.js.map +7 -0
  74. package/dist/esm/chunks/chunk.BEUQVZKZ.js +7 -0
  75. package/dist/esm/chunks/chunk.BEUQVZKZ.js.map +7 -0
  76. package/dist/esm/chunks/chunk.BIQTNLIF.js +7 -0
  77. package/dist/esm/chunks/chunk.BIQTNLIF.js.map +7 -0
  78. package/dist/esm/chunks/{chunk.CLODJYSW.js → chunk.BSV27GU7.js} +2 -2
  79. package/dist/esm/chunks/{chunk.FOQH2SSU.js → chunk.CBLUXYH2.js} +2 -2
  80. package/dist/esm/chunks/{chunk.L7BSLZCB.js → chunk.CIUPY66Y.js} +2 -2
  81. package/dist/esm/chunks/chunk.CSCZRSDT.js +7 -0
  82. package/dist/esm/chunks/chunk.CSCZRSDT.js.map +7 -0
  83. package/dist/esm/chunks/{chunk.OUIWXKO2.js → chunk.CSOKFDFQ.js} +2 -2
  84. package/dist/esm/chunks/{chunk.4HZ6SNRV.js → chunk.CWBDPBYO.js} +2 -2
  85. package/dist/esm/chunks/{chunk.4HZ6SNRV.js.map → chunk.CWBDPBYO.js.map} +2 -2
  86. package/dist/esm/chunks/{chunk.E2FS4PJS.js → chunk.D7RH43XD.js} +2 -2
  87. package/dist/esm/chunks/{chunk.E2FS4PJS.js.map → chunk.D7RH43XD.js.map} +2 -2
  88. package/dist/esm/chunks/{chunk.HZUQXCOQ.js → chunk.DCCFF327.js} +2 -2
  89. package/dist/esm/chunks/{chunk.HZUQXCOQ.js.map → chunk.DCCFF327.js.map} +2 -2
  90. package/dist/esm/chunks/{chunk.YLJTJKN4.js → chunk.EO3HELQ2.js} +2 -2
  91. package/dist/esm/chunks/{chunk.YGXXWF52.js → chunk.FB4MXEIW.js} +2 -2
  92. package/dist/esm/chunks/{chunk.YGXXWF52.js.map → chunk.FB4MXEIW.js.map} +2 -2
  93. package/dist/esm/chunks/{chunk.RKG66YKS.js → chunk.FBDRM4YN.js} +2 -2
  94. package/dist/esm/chunks/{chunk.GAQ3POUT.js → chunk.FOSKVNVV.js} +2 -2
  95. package/dist/esm/chunks/{chunk.Z7JF5PPO.js → chunk.FRTSXX33.js} +2 -2
  96. package/dist/esm/chunks/{chunk.253H47GA.js → chunk.G2HRYIIZ.js} +2 -2
  97. package/dist/esm/chunks/chunk.G3GTO5ZC.js +7 -0
  98. package/dist/esm/chunks/chunk.G3GTO5ZC.js.map +7 -0
  99. package/dist/esm/chunks/{chunk.D7L2IMHJ.js → chunk.GA6AO6FJ.js} +2 -2
  100. package/dist/esm/chunks/{chunk.YOKBWEXF.js → chunk.GBGGUYTE.js} +2 -2
  101. package/dist/esm/chunks/{chunk.CISGGM56.js → chunk.GTKYO6VB.js} +2 -2
  102. package/dist/esm/chunks/{chunk.STIZCKQA.js → chunk.HBAC6E7O.js} +2 -2
  103. package/dist/esm/chunks/{chunk.WM6ZUVDR.js → chunk.IM36A2ZI.js} +2 -2
  104. package/dist/esm/chunks/{chunk.YHIHHGMQ.js → chunk.IWVAI6XM.js} +2 -2
  105. package/dist/esm/chunks/chunk.IZ63EJ32.js +7 -0
  106. package/dist/esm/chunks/{chunk.VN7JOJVU.js.map → chunk.IZ63EJ32.js.map} +1 -1
  107. package/dist/esm/chunks/{chunk.J5MWS2KZ.js → chunk.IZRURH7C.js} +2 -2
  108. package/dist/esm/chunks/chunk.JCEKCW4B.js +7 -0
  109. package/dist/esm/chunks/chunk.JCEKCW4B.js.map +7 -0
  110. package/dist/esm/chunks/{chunk.E7TIN4JS.js → chunk.JLSFTWPE.js} +2 -2
  111. package/dist/esm/chunks/{chunk.HP4333ZN.js → chunk.JSTCCUKZ.js} +2 -2
  112. package/dist/esm/chunks/chunk.JVWJHSPM.js +7 -0
  113. package/dist/esm/chunks/{chunk.JUXSSZ3B.js.map → chunk.JVWJHSPM.js.map} +1 -1
  114. package/dist/esm/chunks/chunk.KDUH2DUE.js +7 -0
  115. package/dist/esm/chunks/{chunk.54DNA2QP.js → chunk.KEFJZO5K.js} +2 -2
  116. package/dist/esm/chunks/{chunk.54DNA2QP.js.map → chunk.KEFJZO5K.js.map} +1 -1
  117. package/dist/esm/chunks/chunk.KRKKMTXR.js +7 -0
  118. package/dist/esm/chunks/chunk.KRKKMTXR.js.map +7 -0
  119. package/dist/esm/chunks/chunk.LGEZI5SZ.js +7 -0
  120. package/dist/esm/chunks/chunk.LGEZI5SZ.js.map +7 -0
  121. package/dist/esm/chunks/{chunk.M7RYU4HQ.js → chunk.LKA5HQQY.js} +2 -2
  122. package/dist/esm/chunks/{chunk.IC4DLKE3.js → chunk.MC3UAHWS.js} +2 -2
  123. package/dist/esm/chunks/chunk.MCR34SZQ.js +7 -0
  124. package/dist/esm/chunks/{chunk.5NHGVUVR.js.map → chunk.MCR34SZQ.js.map} +1 -1
  125. package/dist/esm/chunks/{chunk.B2RYZJGJ.js → chunk.MDDX4MJU.js} +2 -2
  126. package/dist/esm/chunks/{chunk.B2RYZJGJ.js.map → chunk.MDDX4MJU.js.map} +3 -3
  127. package/dist/esm/chunks/chunk.MPUP6QAP.js +7 -0
  128. package/dist/esm/chunks/chunk.MZRAL4MY.js +7 -0
  129. package/dist/esm/chunks/chunk.MZRAL4MY.js.map +7 -0
  130. package/dist/esm/chunks/{chunk.KPNGLSCU.js → chunk.N632SJ7X.js} +2 -2
  131. package/dist/esm/chunks/{chunk.WJLHVUHN.js → chunk.O56VP4OZ.js} +2 -2
  132. package/dist/esm/chunks/{chunk.ULZJYWM2.js → chunk.OFXSMOV6.js} +2 -2
  133. package/dist/esm/chunks/chunk.OT4AIOMN.js +7 -0
  134. package/dist/esm/chunks/chunk.OT4AIOMN.js.map +7 -0
  135. package/dist/esm/chunks/{chunk.SWDOKJUF.js → chunk.OY3TG55O.js} +2 -2
  136. package/dist/esm/chunks/chunk.PDDBNHVU.js +7 -0
  137. package/dist/esm/chunks/chunk.PDDBNHVU.js.map +7 -0
  138. package/dist/esm/chunks/{chunk.IO3A5OM6.js → chunk.PXRGQHWR.js} +2 -2
  139. package/dist/esm/chunks/chunk.QCRO5NSG.js +7 -0
  140. package/dist/esm/chunks/chunk.QCRO5NSG.js.map +7 -0
  141. package/dist/esm/chunks/chunk.QKYCMDLB.js +7 -0
  142. package/dist/esm/chunks/{chunk.WINWKU4K.js → chunk.QUWEAFGI.js} +2 -2
  143. package/dist/esm/chunks/{chunk.LNMQ5A25.js → chunk.R3AWIPPK.js} +2 -2
  144. package/dist/esm/chunks/{chunk.KYACLC66.js → chunk.R66CYS27.js} +2 -2
  145. package/dist/esm/chunks/chunk.R6VPRRTT.js +7 -0
  146. package/dist/esm/chunks/{chunk.4EBFMRTJ.js.map → chunk.R6VPRRTT.js.map} +1 -1
  147. package/dist/esm/chunks/{chunk.V7HN24VV.js → chunk.RFCIELJM.js} +2 -2
  148. package/dist/esm/chunks/chunk.RLQB7224.js +7 -0
  149. package/dist/esm/chunks/{chunk.EWT2PBEP.js.map → chunk.RLQB7224.js.map} +2 -2
  150. package/dist/esm/chunks/chunk.ROMRJIFR.js +7 -0
  151. package/dist/esm/chunks/chunk.ROMRJIFR.js.map +7 -0
  152. package/dist/esm/chunks/chunk.SB2LOK2R.js +7 -0
  153. package/dist/esm/chunks/{chunk.4SP42UG3.js.map → chunk.SB2LOK2R.js.map} +3 -3
  154. package/dist/esm/chunks/chunk.SHBDQPPH.js +7 -0
  155. package/dist/esm/chunks/chunk.SHBDQPPH.js.map +7 -0
  156. package/dist/esm/chunks/{chunk.LFLIYBAB.js → chunk.SIGRWU4V.js} +2 -2
  157. package/dist/esm/chunks/{chunk.LFLIYBAB.js.map → chunk.SIGRWU4V.js.map} +2 -2
  158. package/dist/esm/chunks/chunk.SKBOB2BD.js +7 -0
  159. package/dist/esm/chunks/chunk.SKBOB2BD.js.map +7 -0
  160. package/dist/esm/chunks/chunk.SOKORSUV.js +7 -0
  161. package/dist/esm/chunks/{chunk.GDKJ4RZX.js → chunk.STSAE2XP.js} +2 -2
  162. package/dist/esm/chunks/{chunk.CJUX3PL5.js → chunk.SWKKDBO6.js} +2 -2
  163. package/dist/esm/chunks/chunk.SYKZ74SL.js +7 -0
  164. package/dist/esm/chunks/chunk.SYKZ74SL.js.map +7 -0
  165. package/dist/esm/chunks/chunk.TPNZYEC7.js +12 -0
  166. package/dist/esm/chunks/chunk.TPNZYEC7.js.map +7 -0
  167. package/dist/esm/chunks/{chunk.QQUSMJIM.js → chunk.UEYPCCFG.js} +2 -2
  168. package/dist/esm/chunks/chunk.UKVC23E5.js +7 -0
  169. package/dist/esm/chunks/chunk.UKVC23E5.js.map +7 -0
  170. package/dist/esm/chunks/chunk.UOD3A7M4.js +7 -0
  171. package/dist/esm/chunks/{chunk.OXGCNOUY.js.map → chunk.UOD3A7M4.js.map} +1 -1
  172. package/dist/esm/chunks/{chunk.UVXKHQQZ.js → chunk.UQQQSJVM.js} +2 -2
  173. package/dist/esm/chunks/{chunk.UVXKHQQZ.js.map → chunk.UQQQSJVM.js.map} +2 -2
  174. package/dist/esm/chunks/chunk.USO2XVOI.js +7 -0
  175. package/dist/esm/chunks/{chunk.Y7ZZ7HDC.js.map → chunk.USO2XVOI.js.map} +1 -1
  176. package/dist/esm/chunks/chunk.USQEIRST.js +7 -0
  177. package/dist/esm/chunks/chunk.USQEIRST.js.map +7 -0
  178. package/dist/esm/chunks/chunk.V3X77TCO.js +7 -0
  179. package/dist/esm/chunks/chunk.V3X77TCO.js.map +7 -0
  180. package/dist/esm/chunks/{chunk.F3FWXBDS.js → chunk.VBJ4WUVH.js} +2 -2
  181. package/dist/esm/chunks/chunk.VOTT5COZ.js +7 -0
  182. package/dist/esm/chunks/chunk.VOTT5COZ.js.map +7 -0
  183. package/dist/esm/chunks/{chunk.AQOLBID6.js → chunk.VZ2XONDI.js} +2 -2
  184. package/dist/esm/chunks/{chunk.AQOLBID6.js.map → chunk.VZ2XONDI.js.map} +2 -2
  185. package/dist/esm/chunks/chunk.WAMFFIMP.js +7 -0
  186. package/dist/esm/chunks/chunk.WAMFFIMP.js.map +7 -0
  187. package/dist/esm/chunks/{chunk.U7S4DJTU.js → chunk.WBCQTZPS.js} +2 -2
  188. package/dist/esm/chunks/chunk.WBI34ZVP.js +7 -0
  189. package/dist/esm/chunks/chunk.WPVGFQNY.js +7 -0
  190. package/dist/esm/chunks/{chunk.RN634NOB.js.map → chunk.WPVGFQNY.js.map} +1 -1
  191. package/dist/esm/chunks/{chunk.SZETPZGY.js → chunk.WTUXAH7Z.js} +2 -2
  192. package/dist/esm/chunks/chunk.XAZ6EDIZ.js +7 -0
  193. package/dist/esm/chunks/{chunk.QIMAHW7V.js.map → chunk.XAZ6EDIZ.js.map} +1 -1
  194. package/dist/esm/chunks/{chunk.2F2N4WBN.js → chunk.XCI7O2KJ.js} +2 -2
  195. package/dist/esm/chunks/{chunk.2F2N4WBN.js.map → chunk.XCI7O2KJ.js.map} +2 -2
  196. package/dist/esm/chunks/chunk.XNJROSDZ.js +7 -0
  197. package/dist/esm/chunks/chunk.XNJROSDZ.js.map +7 -0
  198. package/dist/esm/chunks/chunk.XU3YSZPA.js +7 -0
  199. package/dist/esm/chunks/chunk.XYBVD3IE.js +7 -0
  200. package/dist/esm/chunks/chunk.XYBVD3IE.js.map +7 -0
  201. package/dist/esm/chunks/chunk.YNXWVL4B.js +7 -0
  202. package/dist/esm/chunks/chunk.YNXWVL4B.js.map +7 -0
  203. package/dist/esm/chunks/{chunk.5JSCGQ7H.js → chunk.YS5JZHJ6.js} +2 -2
  204. package/dist/esm/chunks/{chunk.QXZ3AAXD.js → chunk.YXHMD73U.js} +2 -2
  205. package/dist/esm/chunks/{chunk.6DPDC4ON.js → chunk.Z6GRWPPN.js} +2 -2
  206. package/dist/esm/chunks/chunk.ZAREP2QH.js +7 -0
  207. package/dist/esm/chunks/chunk.ZAREP2QH.js.map +7 -0
  208. package/dist/esm/chunks/{chunk.2K3T63I2.js → chunk.ZIGVO6FN.js} +2 -2
  209. package/dist/esm/chunks/{chunk.2K3T63I2.js.map → chunk.ZIGVO6FN.js.map} +2 -2
  210. package/dist/esm/chunks/{chunk.4JEBLMI3.js → chunk.ZLNI2M3F.js} +2 -2
  211. package/dist/esm/chunks/chunk.ZPXMKY72.js +7 -0
  212. package/dist/esm/chunks/chunk.ZPXMKY72.js.map +7 -0
  213. package/dist/esm/chunks/chunk.ZYKP23JP.js +7 -0
  214. package/dist/esm/chunks/chunk.ZYKP23JP.js.map +7 -0
  215. package/dist/esm/circular-progress/index.js +1 -1
  216. package/dist/esm/color-picker/index.js +1 -1
  217. package/dist/esm/core/base/index.js +1 -1
  218. package/dist/esm/core/delegates/index.js +1 -1
  219. package/dist/esm/core/index.js +1 -1
  220. package/dist/esm/core/utils/index.js +1 -1
  221. package/dist/esm/date-picker/index.js +1 -1
  222. package/dist/esm/date-range-picker/index.js +1 -1
  223. package/dist/esm/deprecated/button/index.js +1 -1
  224. package/dist/esm/deprecated/index.js +1 -1
  225. package/dist/esm/dialog/index.js +1 -1
  226. package/dist/esm/divider/index.js +1 -1
  227. package/dist/esm/drawer/base/index.js +1 -1
  228. package/dist/esm/drawer/drawer/index.js +1 -1
  229. package/dist/esm/drawer/index.js +1 -1
  230. package/dist/esm/drawer/mini-drawer/index.js +1 -1
  231. package/dist/esm/drawer/modal-drawer/index.js +1 -1
  232. package/dist/esm/expansion-panel/index.js +1 -1
  233. package/dist/esm/field-next/base/index.js +7 -0
  234. package/dist/esm/field-next/index.js +7 -0
  235. package/dist/esm/file-picker/index.js +1 -1
  236. package/dist/esm/floating-action-button/index.js +1 -1
  237. package/dist/esm/floating-label/index.js +1 -1
  238. package/dist/esm/focus-indicator/index.js +1 -1
  239. package/dist/esm/icon/index.js +1 -1
  240. package/dist/esm/icon-button/index.js +1 -1
  241. package/dist/esm/index.js +1 -1
  242. package/dist/esm/inline-message/index.js +1 -1
  243. package/dist/esm/keyboard-shortcut/index.js +1 -1
  244. package/dist/esm/label/index.js +1 -1
  245. package/dist/esm/label-value/index.js +1 -1
  246. package/dist/esm/linear-progress/index.js +1 -1
  247. package/dist/esm/list/index.js +1 -1
  248. package/dist/esm/list/list/index.js +1 -1
  249. package/dist/esm/list/list-item/index.js +1 -1
  250. package/dist/esm/list-dropdown/index.js +1 -1
  251. package/dist/esm/menu/index.js +1 -1
  252. package/dist/esm/open-icon/index.js +1 -1
  253. package/dist/esm/overlay/index.js +1 -1
  254. package/dist/esm/page-state/index.js +1 -1
  255. package/dist/esm/paginator/index.js +1 -1
  256. package/dist/esm/popover/index.js +1 -1
  257. package/dist/esm/popup/index.js +1 -1
  258. package/dist/esm/profile-card/index.js +1 -1
  259. package/dist/esm/quantity-field/index.js +1 -1
  260. package/dist/esm/radio/index.js +1 -1
  261. package/dist/esm/radio/radio/index.js +1 -1
  262. package/dist/esm/radio/radio-group/index.js +1 -1
  263. package/dist/esm/ripple/index.js +1 -1
  264. package/dist/esm/scaffold/index.js +1 -1
  265. package/dist/esm/select/core/index.js +1 -1
  266. package/dist/esm/select/index.js +1 -1
  267. package/dist/esm/select/option/index.js +1 -1
  268. package/dist/esm/select/option-group/index.js +1 -1
  269. package/dist/esm/select/select/index.js +1 -1
  270. package/dist/esm/select/select-dropdown/index.js +1 -1
  271. package/dist/esm/skeleton/index.js +1 -1
  272. package/dist/esm/slider/index.js +1 -1
  273. package/dist/esm/split-button/index.js +1 -1
  274. package/dist/esm/split-view/index.js +1 -1
  275. package/dist/esm/split-view/split-view/index.js +1 -1
  276. package/dist/esm/split-view/split-view-panel/index.js +1 -1
  277. package/dist/esm/stack/index.js +1 -1
  278. package/dist/esm/state-layer/index.js +1 -1
  279. package/dist/esm/stepper/index.js +1 -1
  280. package/dist/esm/stepper/step/index.js +1 -1
  281. package/dist/esm/stepper/stepper/index.js +1 -1
  282. package/dist/esm/switch/index.js +1 -1
  283. package/dist/esm/table/index.js +1 -1
  284. package/dist/esm/tabs/index.js +1 -1
  285. package/dist/esm/tabs/tab/index.js +1 -1
  286. package/dist/esm/tabs/tab-bar/index.js +1 -1
  287. package/dist/esm/text-field/index.js +1 -1
  288. package/dist/esm/time-picker/index.js +1 -1
  289. package/dist/esm/toast/index.js +1 -1
  290. package/dist/esm/toolbar/index.js +1 -1
  291. package/dist/esm/tooltip/index.js +1 -1
  292. package/dist/esm/view-switcher/index.js +1 -1
  293. package/dist/esm/view-switcher/view/index.js +1 -1
  294. package/dist/forge-dark.css +1 -1
  295. package/dist/forge.css +1 -1
  296. package/dist/typography/forge-typography.css +1 -1
  297. package/esm/autocomplete/autocomplete-adapter.js +6 -9
  298. package/esm/autocomplete/autocomplete.d.ts +8 -2
  299. package/esm/badge/badge.js +1 -1
  300. package/esm/button-area/button-area-adapter.d.ts +20 -21
  301. package/esm/button-area/button-area-adapter.js +32 -74
  302. package/esm/button-area/button-area-constants.d.ts +3 -1
  303. package/esm/button-area/button-area-constants.js +5 -3
  304. package/esm/button-area/button-area-foundation.d.ts +2 -0
  305. package/esm/button-area/button-area-foundation.js +31 -11
  306. package/esm/button-area/button-area.d.ts +19 -2
  307. package/esm/button-area/button-area.js +25 -6
  308. package/esm/calendar/calendar-foundation.js +14 -6
  309. package/esm/calendar/calendar.d.ts +1 -0
  310. package/esm/card/card.js +1 -1
  311. package/esm/checkbox/checkbox.js +1 -1
  312. package/esm/chip-field/chip-field-foundation.js +1 -1
  313. package/esm/chips/chip/chip-adapter.d.ts +45 -50
  314. package/esm/chips/chip/chip-adapter.js +150 -129
  315. package/esm/chips/chip/chip-constants.d.ts +28 -20
  316. package/esm/chips/chip/chip-constants.js +14 -23
  317. package/esm/chips/chip/chip-foundation.d.ts +42 -34
  318. package/esm/chips/chip/chip-foundation.js +177 -171
  319. package/esm/chips/chip/chip.d.ts +106 -21
  320. package/esm/chips/chip/chip.js +142 -35
  321. package/esm/chips/chip-set/chip-set-constants.d.ts +9 -3
  322. package/esm/chips/chip-set/chip-set-constants.js +7 -8
  323. package/esm/chips/chip-set/chip-set.d.ts +46 -9
  324. package/esm/chips/chip-set/chip-set.js +128 -33
  325. package/esm/chips/chip-set/index.d.ts +0 -2
  326. package/esm/chips/chip-set/index.js +0 -2
  327. package/esm/constants.d.ts +8 -3
  328. package/esm/constants.js +8 -3
  329. package/esm/core/base/base-adapter.d.ts +2 -1
  330. package/esm/core/base/base-adapter.js +1 -0
  331. package/esm/core/utils/utils.d.ts +11 -0
  332. package/esm/core/utils/utils.js +35 -0
  333. package/esm/date-picker/base/base-date-picker-adapter.js +7 -12
  334. package/esm/date-picker/base/base-date-picker-foundation.js +6 -0
  335. package/esm/date-picker/base/base-date-picker-utils.js +1 -2
  336. package/esm/date-range-picker/date-range-picker-adapter.d.ts +1 -0
  337. package/esm/date-range-picker/date-range-picker-adapter.js +11 -1
  338. package/esm/date-range-picker/date-range-picker-component-delegate.d.ts +3 -3
  339. package/esm/date-range-picker/date-range-picker-component-delegate.js +2 -2
  340. package/esm/dialog/dialog-adapter.d.ts +2 -0
  341. package/esm/dialog/dialog-adapter.js +14 -0
  342. package/esm/dialog/dialog-foundation.js +1 -0
  343. package/esm/divider/divider-constants.d.ts +2 -2
  344. package/esm/divider/divider-constants.js +3 -3
  345. package/esm/divider/divider.d.ts +26 -5
  346. package/esm/divider/divider.js +42 -6
  347. package/esm/drawer/drawer/drawer.js +1 -1
  348. package/esm/drawer/mini-drawer/mini-drawer.js +1 -1
  349. package/esm/drawer/modal-drawer/modal-drawer.js +1 -1
  350. package/esm/expansion-panel/expansion-panel.js +1 -1
  351. package/esm/field-next/base/base-field-adapter.d.ts +27 -0
  352. package/esm/field-next/base/base-field-adapter.js +14 -0
  353. package/esm/field-next/base/base-field-constants.d.ts +56 -0
  354. package/esm/field-next/base/base-field-constants.js +36 -0
  355. package/esm/field-next/base/base-field-foundation.d.ts +79 -0
  356. package/esm/field-next/base/base-field-foundation.js +176 -0
  357. package/esm/field-next/base/base-field.d.ts +52 -0
  358. package/esm/field-next/base/base-field.js +116 -0
  359. package/esm/field-next/base/index.d.ts +9 -0
  360. package/esm/field-next/base/index.js +9 -0
  361. package/esm/field-next/field-adapter.d.ts +56 -0
  362. package/esm/field-next/field-adapter.js +132 -0
  363. package/esm/field-next/field-constants.d.ts +95 -0
  364. package/esm/field-next/field-constants.js +64 -0
  365. package/esm/field-next/field-foundation.d.ts +86 -0
  366. package/esm/field-next/field-foundation.js +221 -0
  367. package/esm/field-next/field.d.ts +205 -0
  368. package/esm/field-next/field.js +287 -0
  369. package/esm/field-next/index.d.ts +11 -0
  370. package/esm/field-next/index.js +15 -0
  371. package/esm/file-picker/file-picker-adapter.js +1 -1
  372. package/esm/file-picker/file-picker.d.ts +46 -2
  373. package/esm/file-picker/file-picker.js +48 -4
  374. package/esm/index.d.ts +1 -1
  375. package/esm/index.js +3 -3
  376. package/esm/label/label-constants.d.ts +9 -3
  377. package/esm/label/label-constants.js +5 -3
  378. package/esm/label/label-foundation.d.ts +7 -4
  379. package/esm/label/label-foundation.js +20 -10
  380. package/esm/label/label.d.ts +6 -4
  381. package/esm/label/label.js +11 -12
  382. package/esm/list/list/list-adapter.d.ts +1 -1
  383. package/esm/list/list/list-adapter.js +22 -9
  384. package/esm/list/list/list-constants.d.ts +3 -0
  385. package/esm/list/list/list-constants.js +5 -1
  386. package/esm/list/list/list-foundation.js +6 -0
  387. package/esm/list/list-item/list-item-constants.js +1 -1
  388. package/esm/list/list-item/list-item.d.ts +33 -38
  389. package/esm/list/list-item/list-item.js +34 -39
  390. package/esm/menu/menu-foundation.js +1 -0
  391. package/esm/menu/menu.d.ts +4 -1
  392. package/esm/page-state/page-state.d.ts +24 -1
  393. package/esm/page-state/page-state.js +26 -3
  394. package/esm/paginator/paginator-adapter.d.ts +6 -2
  395. package/esm/paginator/paginator-adapter.js +34 -54
  396. package/esm/paginator/paginator-constants.d.ts +1 -1
  397. package/esm/paginator/paginator-foundation.js +7 -17
  398. package/esm/popover/popover-constants.d.ts +2 -0
  399. package/esm/popover/popover-constants.js +3 -1
  400. package/esm/popover/popover-foundation.d.ts +5 -0
  401. package/esm/popover/popover-foundation.js +26 -1
  402. package/esm/popover/popover.d.ts +4 -0
  403. package/esm/popover/popover.js +9 -0
  404. package/esm/profile-card/profile-card.js +1 -1
  405. package/esm/radio/radio/radio.js +2 -2
  406. package/esm/radio/radio-group/radio-group-adapter.js +1 -1
  407. package/{styles/stack/_variables.scss → esm/radio/radio-group/radio-group-component-delegate.d.ts} +0 -1
  408. package/{styles/chips/chip-set/_variables.scss → esm/radio/radio-group/radio-group-component-delegate.js} +0 -1
  409. package/esm/ripple/forge-ripple.d.ts +1 -1
  410. package/esm/ripple/forge-ripple.js +1 -1
  411. package/esm/select/core/base-select.d.ts +4 -1
  412. package/esm/skeleton/skeleton.d.ts +32 -2
  413. package/esm/skeleton/skeleton.js +33 -3
  414. package/esm/slider/slider.js +1 -1
  415. package/esm/split-view/split-view-panel/split-view-panel.js +1 -1
  416. package/esm/stack/stack-constants.d.ts +1 -0
  417. package/esm/stack/stack-constants.js +2 -1
  418. package/esm/stack/stack-foundation.d.ts +6 -1
  419. package/esm/stack/stack-foundation.js +12 -1
  420. package/esm/stack/stack.d.ts +37 -3
  421. package/esm/stack/stack.js +42 -4
  422. package/esm/switch/switch.js +1 -1
  423. package/esm/text-field/index.d.ts +2 -2
  424. package/esm/text-field/index.js +2 -2
  425. package/esm/text-field/text-field-adapter.d.ts +42 -25
  426. package/esm/text-field/text-field-adapter.js +125 -84
  427. package/esm/text-field/text-field-component-delegate.d.ts +11 -3
  428. package/esm/text-field/text-field-component-delegate.js +66 -36
  429. package/esm/text-field/text-field-constants.d.ts +19 -8
  430. package/esm/text-field/text-field-constants.js +21 -11
  431. package/esm/text-field/text-field-foundation.d.ts +28 -6
  432. package/esm/text-field/text-field-foundation.js +97 -4
  433. package/esm/text-field/text-field.d.ts +43 -5
  434. package/esm/text-field/text-field.js +73 -9
  435. package/esm/time-picker/time-picker-adapter.js +8 -10
  436. package/esm/toolbar/toolbar-constants.d.ts +5 -5
  437. package/esm/toolbar/toolbar-constants.js +9 -10
  438. package/esm/toolbar/toolbar.d.ts +35 -6
  439. package/esm/toolbar/toolbar.js +44 -26
  440. package/esm/tooltip/tooltip.js +1 -1
  441. package/package.json +2 -2
  442. package/{dist/esm/chunks/chunk.SKLCDWYQ.js → styles/avatar/index.scss} +1 -1
  443. package/styles/badge/_core.scss +1 -1
  444. package/styles/button/button.scss +1 -1
  445. package/styles/button-area/_core.scss +25 -0
  446. package/styles/button-area/_token-utils.scss +30 -0
  447. package/styles/button-area/button-area.scss +48 -3
  448. package/styles/{divider/_variables.scss → button-area/index.scss} +1 -2
  449. package/styles/card/_mixins.scss +1 -0
  450. package/styles/checkbox/_core.scss +1 -1
  451. package/styles/chips/chip/_core.scss +137 -0
  452. package/styles/chips/chip/_token-utils.scss +30 -0
  453. package/styles/chips/chip/chip.scss +259 -7
  454. package/styles/chips/chip/index.scss +6 -0
  455. package/styles/chips/chip-set/_core.scss +22 -0
  456. package/styles/chips/chip-set/_token-utils.scss +30 -0
  457. package/styles/chips/chip-set/chip-set.scss +27 -3
  458. package/styles/chips/chip-set/index.scss +6 -0
  459. package/styles/core/styles/tokens/_token-utils.scss +3 -2
  460. package/styles/core/styles/tokens/button-area/_tokens.scss +28 -0
  461. package/styles/core/styles/tokens/chips/chip/_tokens.scss +87 -0
  462. package/styles/core/styles/tokens/chips/chip-set/_tokens.scss +16 -0
  463. package/styles/core/styles/tokens/divider/_tokens.scss +20 -0
  464. package/styles/core/styles/tokens/field/_tokens.scss +148 -0
  465. package/styles/core/styles/tokens/file-picker/_tokens.scss +42 -0
  466. package/styles/core/styles/tokens/list/list-item/_tokens.scss +5 -12
  467. package/styles/core/styles/tokens/page-state/_tokens.scss +43 -0
  468. package/styles/core/styles/tokens/skeleton/_tokens.scss +55 -0
  469. package/styles/core/styles/tokens/stack/_tokens.scss +21 -0
  470. package/styles/core/styles/tokens/toolbar/_tokens.scss +41 -0
  471. package/styles/core/styles/tokens/typography/_scale.scss +1 -0
  472. package/styles/core/styles/tokens/typography/_tokens.label.scss +9 -2
  473. package/styles/divider/_core.scss +39 -0
  474. package/styles/divider/_token-utils.scss +30 -0
  475. package/styles/divider/divider.scss +16 -9
  476. package/styles/divider/index.scss +6 -0
  477. package/styles/drawer/drawer/drawer.scss +2 -0
  478. package/styles/drawer/mini-drawer/mini-drawer.scss +2 -0
  479. package/styles/drawer/modal-drawer/modal-drawer.scss +5 -0
  480. package/styles/expansion-panel/_mixins.scss +1 -0
  481. package/styles/field-next/_core.layout.scss +350 -0
  482. package/styles/field-next/_core.scss +212 -0
  483. package/styles/field-next/_core.shape.scss +25 -0
  484. package/styles/field-next/_core.slotted.scss +60 -0
  485. package/styles/field-next/_core.state.scss +198 -0
  486. package/styles/field-next/_core.variant.scss +225 -0
  487. package/styles/field-next/_token-utils.scss +30 -0
  488. package/styles/field-next/field.scss +770 -0
  489. package/styles/{product-icon/_variables.scss → field-next/index.scss} +2 -2
  490. package/styles/file-picker/_core.scss +85 -0
  491. package/styles/file-picker/_token-utils.scss +30 -0
  492. package/styles/file-picker/file-picker.scss +68 -3
  493. package/styles/file-picker/index.scss +6 -0
  494. package/styles/label/_core.scss +1 -1
  495. package/styles/list/list-item/_core.scss +4 -20
  496. package/styles/list/list-item/list-item.scss +0 -12
  497. package/styles/page-state/_core.scss +79 -0
  498. package/styles/page-state/_token-utils.scss +30 -0
  499. package/styles/page-state/index.scss +6 -0
  500. package/styles/page-state/page-state.scss +51 -3
  501. package/styles/profile-card/profile-card.scss +10 -10
  502. package/styles/radio/radio/_core.scss +1 -1
  503. package/styles/radio/radio-group/_core.scss +5 -0
  504. package/styles/radio/radio-group/index.scss +5 -0
  505. package/styles/radio/radio-group/radio-group.scss +5 -0
  506. package/styles/skeleton/_animations.scss +10 -0
  507. package/styles/skeleton/_core.scss +78 -0
  508. package/styles/skeleton/_token-utils.scss +30 -0
  509. package/styles/skeleton/index.scss +6 -0
  510. package/styles/skeleton/skeleton.scss +55 -4
  511. package/styles/slider/_core.scss +1 -1
  512. package/styles/stack/_core.scss +29 -0
  513. package/styles/stack/_token-utils.scss +30 -0
  514. package/styles/stack/stack.scss +38 -12
  515. package/styles/switch/_core.scss +1 -1
  516. package/styles/text-field/_core.scss +5 -12
  517. package/styles/text-field/index.scss +6 -0
  518. package/styles/text-field/text-field.scss +14 -5
  519. package/styles/theme/_theme-dark.scss +6 -3
  520. package/styles/toolbar/_core.scss +73 -0
  521. package/styles/toolbar/_token-utils.scss +30 -0
  522. package/styles/toolbar/index.scss +6 -0
  523. package/styles/toolbar/toolbar.scss +64 -17
  524. package/styles/tooltip/_core.scss +1 -0
  525. package/styles/utils/_mixins-container.scss +38 -0
  526. package/dist/esm/chunks/chunk.2AVJJJNS.js +0 -7
  527. package/dist/esm/chunks/chunk.2AVJJJNS.js.map +0 -7
  528. package/dist/esm/chunks/chunk.2UVBQKJI.js +0 -7
  529. package/dist/esm/chunks/chunk.2UVBQKJI.js.map +0 -7
  530. package/dist/esm/chunks/chunk.3WT7HPA7.js +0 -12
  531. package/dist/esm/chunks/chunk.3WT7HPA7.js.map +0 -7
  532. package/dist/esm/chunks/chunk.4EBFMRTJ.js +0 -7
  533. package/dist/esm/chunks/chunk.4SP42UG3.js +0 -7
  534. package/dist/esm/chunks/chunk.5BQT3E7Y.js +0 -7
  535. package/dist/esm/chunks/chunk.5BQT3E7Y.js.map +0 -7
  536. package/dist/esm/chunks/chunk.5NHGVUVR.js +0 -7
  537. package/dist/esm/chunks/chunk.5PNJOQDZ.js +0 -7
  538. package/dist/esm/chunks/chunk.5PNJOQDZ.js.map +0 -7
  539. package/dist/esm/chunks/chunk.6P4G73VL.js +0 -7
  540. package/dist/esm/chunks/chunk.6P4G73VL.js.map +0 -7
  541. package/dist/esm/chunks/chunk.7AE3ATT3.js +0 -7
  542. package/dist/esm/chunks/chunk.7AE3ATT3.js.map +0 -7
  543. package/dist/esm/chunks/chunk.AXBMJBED.js +0 -7
  544. package/dist/esm/chunks/chunk.DYBD4IRT.js +0 -7
  545. package/dist/esm/chunks/chunk.EWT2PBEP.js +0 -7
  546. package/dist/esm/chunks/chunk.F2327OUE.js +0 -7
  547. package/dist/esm/chunks/chunk.F2327OUE.js.map +0 -7
  548. package/dist/esm/chunks/chunk.FXDHZCID.js +0 -7
  549. package/dist/esm/chunks/chunk.FZC3WXSY.js +0 -7
  550. package/dist/esm/chunks/chunk.FZC3WXSY.js.map +0 -7
  551. package/dist/esm/chunks/chunk.GYGIU62J.js +0 -7
  552. package/dist/esm/chunks/chunk.GYGIU62J.js.map +0 -7
  553. package/dist/esm/chunks/chunk.IE42X2LV.js +0 -7
  554. package/dist/esm/chunks/chunk.IE42X2LV.js.map +0 -7
  555. package/dist/esm/chunks/chunk.JBQXD3FJ.js +0 -7
  556. package/dist/esm/chunks/chunk.JBQXD3FJ.js.map +0 -7
  557. package/dist/esm/chunks/chunk.JLDKNU5Q.js +0 -7
  558. package/dist/esm/chunks/chunk.JLDKNU5Q.js.map +0 -7
  559. package/dist/esm/chunks/chunk.JO6GPIMF.js +0 -7
  560. package/dist/esm/chunks/chunk.JO6GPIMF.js.map +0 -7
  561. package/dist/esm/chunks/chunk.JUXSSZ3B.js +0 -7
  562. package/dist/esm/chunks/chunk.LEN33O6V.js +0 -7
  563. package/dist/esm/chunks/chunk.LEN33O6V.js.map +0 -7
  564. package/dist/esm/chunks/chunk.N2DHFDXD.js +0 -7
  565. package/dist/esm/chunks/chunk.N2DHFDXD.js.map +0 -7
  566. package/dist/esm/chunks/chunk.NSKIEZWE.js +0 -7
  567. package/dist/esm/chunks/chunk.NY3N6KUZ.js +0 -7
  568. package/dist/esm/chunks/chunk.NY3N6KUZ.js.map +0 -7
  569. package/dist/esm/chunks/chunk.O5HBMTSZ.js +0 -7
  570. package/dist/esm/chunks/chunk.O5HBMTSZ.js.map +0 -7
  571. package/dist/esm/chunks/chunk.OJFSECZE.js +0 -7
  572. package/dist/esm/chunks/chunk.OR5GB6X3.js +0 -7
  573. package/dist/esm/chunks/chunk.OWYOZF53.js +0 -7
  574. package/dist/esm/chunks/chunk.OWYOZF53.js.map +0 -7
  575. package/dist/esm/chunks/chunk.OXGCNOUY.js +0 -7
  576. package/dist/esm/chunks/chunk.PZAL7VQF.js +0 -7
  577. package/dist/esm/chunks/chunk.PZAL7VQF.js.map +0 -7
  578. package/dist/esm/chunks/chunk.QIMAHW7V.js +0 -7
  579. package/dist/esm/chunks/chunk.RB435MRJ.js +0 -7
  580. package/dist/esm/chunks/chunk.RB435MRJ.js.map +0 -7
  581. package/dist/esm/chunks/chunk.RBG6AMLV.js +0 -7
  582. package/dist/esm/chunks/chunk.RBG6AMLV.js.map +0 -7
  583. package/dist/esm/chunks/chunk.RCYIHHYO.js +0 -7
  584. package/dist/esm/chunks/chunk.RCYIHHYO.js.map +0 -7
  585. package/dist/esm/chunks/chunk.RLOZYTNN.js +0 -7
  586. package/dist/esm/chunks/chunk.RLOZYTNN.js.map +0 -7
  587. package/dist/esm/chunks/chunk.RN634NOB.js +0 -7
  588. package/dist/esm/chunks/chunk.RQ3RHGLB.js +0 -7
  589. package/dist/esm/chunks/chunk.RQ3RHGLB.js.map +0 -7
  590. package/dist/esm/chunks/chunk.S2KPWTRW.js +0 -7
  591. package/dist/esm/chunks/chunk.S2KPWTRW.js.map +0 -7
  592. package/dist/esm/chunks/chunk.TPXXHX5J.js +0 -7
  593. package/dist/esm/chunks/chunk.TPXXHX5J.js.map +0 -7
  594. package/dist/esm/chunks/chunk.UCIVBX64.js +0 -7
  595. package/dist/esm/chunks/chunk.UCIVBX64.js.map +0 -7
  596. package/dist/esm/chunks/chunk.VGKNQYHG.js +0 -7
  597. package/dist/esm/chunks/chunk.VGKNQYHG.js.map +0 -7
  598. package/dist/esm/chunks/chunk.VN7JOJVU.js +0 -7
  599. package/dist/esm/chunks/chunk.VNFATHAQ.js +0 -7
  600. package/dist/esm/chunks/chunk.VNFATHAQ.js.map +0 -7
  601. package/dist/esm/chunks/chunk.VRTR7WMN.js +0 -7
  602. package/dist/esm/chunks/chunk.VRTR7WMN.js.map +0 -7
  603. package/dist/esm/chunks/chunk.WXFJYCGO.js +0 -7
  604. package/dist/esm/chunks/chunk.WXFJYCGO.js.map +0 -7
  605. package/dist/esm/chunks/chunk.Y7ZZ7HDC.js +0 -7
  606. package/dist/esm/chunks/chunk.YTBNAGLS.js +0 -7
  607. package/dist/esm/chunks/chunk.ZY3ETQ3D.js +0 -7
  608. package/dist/esm/chunks/chunk.ZY3ETQ3D.js.map +0 -7
  609. package/dist/esm/product-icon/index.js +0 -7
  610. package/esm/chips/chip-set/chip-set-adapter.d.ts +0 -27
  611. package/esm/chips/chip-set/chip-set-adapter.js +0 -57
  612. package/esm/chips/chip-set/chip-set-foundation.d.ts +0 -38
  613. package/esm/chips/chip-set/chip-set-foundation.js +0 -82
  614. package/esm/product-icon/index.d.ts +0 -10
  615. package/esm/product-icon/index.js +0 -14
  616. package/esm/product-icon/product-icon-adapter.d.ts +0 -27
  617. package/esm/product-icon/product-icon-adapter.js +0 -50
  618. package/esm/product-icon/product-icon-constants.d.ts +0 -38
  619. package/esm/product-icon/product-icon-constants.js +0 -46
  620. package/esm/product-icon/product-icon-foundation.d.ts +0 -40
  621. package/esm/product-icon/product-icon-foundation.js +0 -116
  622. package/esm/product-icon/product-icon.d.ts +0 -37
  623. package/esm/product-icon/product-icon.js +0 -70
  624. package/styles/button-area/_mixins.scss +0 -47
  625. package/styles/chips/chip/_mixins.scss +0 -306
  626. package/styles/chips/chip/_variables.scss +0 -8
  627. package/styles/chips/chip-set/_mixins.scss +0 -40
  628. package/styles/divider/_mixins.scss +0 -47
  629. package/styles/file-picker/_mixins.scss +0 -155
  630. package/styles/file-picker/_variables.scss +0 -8
  631. package/styles/page-state/_mixins.scss +0 -123
  632. package/styles/page-state/_variables.scss +0 -9
  633. package/styles/product-icon/_mixins.scss +0 -49
  634. package/styles/product-icon/product-icon.scss +0 -16
  635. package/styles/skeleton/_mixins.scss +0 -132
  636. package/styles/skeleton/_variables.scss +0 -45
  637. package/styles/stack/_mixins.scss +0 -49
  638. package/styles/text-field/_base.scss +0 -76
  639. package/styles/text-field/_mixins.scss +0 -28
  640. package/styles/text-field/_selector.scss +0 -57
  641. package/styles/text-field/_variables.scss +0 -20
  642. package/styles/toolbar/_mixins.scss +0 -78
  643. package/styles/toolbar/_variables.scss +0 -10
  644. /package/dist/esm/chunks/{chunk.WJ26N3FC.js.map → chunk.22C7GQLX.js.map} +0 -0
  645. /package/dist/esm/chunks/{chunk.CPD4RUF2.js.map → chunk.24MZM3AY.js.map} +0 -0
  646. /package/dist/esm/chunks/{chunk.O6WN2UP6.js.map → chunk.2537XOFQ.js.map} +0 -0
  647. /package/dist/esm/chunks/{chunk.KZMXTOLO.js.map → chunk.2AM2BKEO.js.map} +0 -0
  648. /package/dist/esm/chunks/{chunk.KD4DVSJR.js.map → chunk.2WRAXA3H.js.map} +0 -0
  649. /package/dist/esm/chunks/{chunk.ZYYPOLIG.js.map → chunk.2XPAYTK4.js.map} +0 -0
  650. /package/dist/esm/chunks/{chunk.OJFSECZE.js.map → chunk.3L77JY5H.js.map} +0 -0
  651. /package/dist/esm/chunks/{chunk.MBXBM6UI.js.map → chunk.47U6GVGZ.js.map} +0 -0
  652. /package/dist/esm/chunks/{chunk.UYAP5GFT.js.map → chunk.5A34DJLZ.js.map} +0 -0
  653. /package/dist/esm/chunks/{chunk.GAHE4QVB.js.map → chunk.5S7XNYRQ.js.map} +0 -0
  654. /package/dist/esm/chunks/{chunk.DOAQODLZ.js.map → chunk.6XLTVIUD.js.map} +0 -0
  655. /package/dist/esm/chunks/{chunk.4YKLCBP2.js.map → chunk.7IJUN75W.js.map} +0 -0
  656. /package/dist/esm/chunks/{chunk.66RZ2CUB.js.map → chunk.A4UH52SA.js.map} +0 -0
  657. /package/dist/esm/chunks/{chunk.KIQZLNDG.js.map → chunk.AN2E2SSN.js.map} +0 -0
  658. /package/dist/esm/chunks/{chunk.XH63INIK.js.map → chunk.AOSBUJWW.js.map} +0 -0
  659. /package/dist/esm/chunks/{chunk.CLODJYSW.js.map → chunk.BSV27GU7.js.map} +0 -0
  660. /package/dist/esm/chunks/{chunk.FOQH2SSU.js.map → chunk.CBLUXYH2.js.map} +0 -0
  661. /package/dist/esm/chunks/{chunk.L7BSLZCB.js.map → chunk.CIUPY66Y.js.map} +0 -0
  662. /package/dist/esm/chunks/{chunk.OUIWXKO2.js.map → chunk.CSOKFDFQ.js.map} +0 -0
  663. /package/dist/esm/chunks/{chunk.YLJTJKN4.js.map → chunk.EO3HELQ2.js.map} +0 -0
  664. /package/dist/esm/chunks/{chunk.RKG66YKS.js.map → chunk.FBDRM4YN.js.map} +0 -0
  665. /package/dist/esm/chunks/{chunk.GAQ3POUT.js.map → chunk.FOSKVNVV.js.map} +0 -0
  666. /package/dist/esm/chunks/{chunk.Z7JF5PPO.js.map → chunk.FRTSXX33.js.map} +0 -0
  667. /package/dist/esm/chunks/{chunk.253H47GA.js.map → chunk.G2HRYIIZ.js.map} +0 -0
  668. /package/dist/esm/chunks/{chunk.D7L2IMHJ.js.map → chunk.GA6AO6FJ.js.map} +0 -0
  669. /package/dist/esm/chunks/{chunk.YOKBWEXF.js.map → chunk.GBGGUYTE.js.map} +0 -0
  670. /package/dist/esm/chunks/{chunk.CISGGM56.js.map → chunk.GTKYO6VB.js.map} +0 -0
  671. /package/dist/esm/chunks/{chunk.STIZCKQA.js.map → chunk.HBAC6E7O.js.map} +0 -0
  672. /package/dist/esm/chunks/{chunk.WM6ZUVDR.js.map → chunk.IM36A2ZI.js.map} +0 -0
  673. /package/dist/esm/chunks/{chunk.YHIHHGMQ.js.map → chunk.IWVAI6XM.js.map} +0 -0
  674. /package/dist/esm/chunks/{chunk.J5MWS2KZ.js.map → chunk.IZRURH7C.js.map} +0 -0
  675. /package/dist/esm/chunks/{chunk.E7TIN4JS.js.map → chunk.JLSFTWPE.js.map} +0 -0
  676. /package/dist/esm/chunks/{chunk.HP4333ZN.js.map → chunk.JSTCCUKZ.js.map} +0 -0
  677. /package/dist/esm/chunks/{chunk.AXBMJBED.js.map → chunk.KDUH2DUE.js.map} +0 -0
  678. /package/dist/esm/chunks/{chunk.M7RYU4HQ.js.map → chunk.LKA5HQQY.js.map} +0 -0
  679. /package/dist/esm/chunks/{chunk.IC4DLKE3.js.map → chunk.MC3UAHWS.js.map} +0 -0
  680. /package/dist/esm/chunks/{chunk.DYBD4IRT.js.map → chunk.MPUP6QAP.js.map} +0 -0
  681. /package/dist/esm/chunks/{chunk.KPNGLSCU.js.map → chunk.N632SJ7X.js.map} +0 -0
  682. /package/dist/esm/chunks/{chunk.WJLHVUHN.js.map → chunk.O56VP4OZ.js.map} +0 -0
  683. /package/dist/esm/chunks/{chunk.ULZJYWM2.js.map → chunk.OFXSMOV6.js.map} +0 -0
  684. /package/dist/esm/chunks/{chunk.SWDOKJUF.js.map → chunk.OY3TG55O.js.map} +0 -0
  685. /package/dist/esm/chunks/{chunk.IO3A5OM6.js.map → chunk.PXRGQHWR.js.map} +0 -0
  686. /package/dist/esm/chunks/{chunk.FXDHZCID.js.map → chunk.QKYCMDLB.js.map} +0 -0
  687. /package/dist/esm/chunks/{chunk.WINWKU4K.js.map → chunk.QUWEAFGI.js.map} +0 -0
  688. /package/dist/esm/chunks/{chunk.LNMQ5A25.js.map → chunk.R3AWIPPK.js.map} +0 -0
  689. /package/dist/esm/chunks/{chunk.KYACLC66.js.map → chunk.R66CYS27.js.map} +0 -0
  690. /package/dist/esm/chunks/{chunk.V7HN24VV.js.map → chunk.RFCIELJM.js.map} +0 -0
  691. /package/dist/esm/chunks/{chunk.OR5GB6X3.js.map → chunk.SOKORSUV.js.map} +0 -0
  692. /package/dist/esm/chunks/{chunk.GDKJ4RZX.js.map → chunk.STSAE2XP.js.map} +0 -0
  693. /package/dist/esm/chunks/{chunk.CJUX3PL5.js.map → chunk.SWKKDBO6.js.map} +0 -0
  694. /package/dist/esm/chunks/{chunk.QQUSMJIM.js.map → chunk.UEYPCCFG.js.map} +0 -0
  695. /package/dist/esm/chunks/{chunk.F3FWXBDS.js.map → chunk.VBJ4WUVH.js.map} +0 -0
  696. /package/dist/esm/chunks/{chunk.U7S4DJTU.js.map → chunk.WBCQTZPS.js.map} +0 -0
  697. /package/dist/esm/chunks/{chunk.NSKIEZWE.js.map → chunk.WBI34ZVP.js.map} +0 -0
  698. /package/dist/esm/chunks/{chunk.SZETPZGY.js.map → chunk.WTUXAH7Z.js.map} +0 -0
  699. /package/dist/esm/chunks/{chunk.YTBNAGLS.js.map → chunk.XU3YSZPA.js.map} +0 -0
  700. /package/dist/esm/chunks/{chunk.5JSCGQ7H.js.map → chunk.YS5JZHJ6.js.map} +0 -0
  701. /package/dist/esm/chunks/{chunk.QXZ3AAXD.js.map → chunk.YXHMD73U.js.map} +0 -0
  702. /package/dist/esm/chunks/{chunk.6DPDC4ON.js.map → chunk.Z6GRWPPN.js.map} +0 -0
  703. /package/dist/esm/chunks/{chunk.4JEBLMI3.js.map → chunk.ZLNI2M3F.js.map} +0 -0
  704. /package/dist/esm/{product-icon → field-next/base}/index.js.map +0 -0
  705. /package/dist/esm/{chunks/chunk.SKLCDWYQ.js.map → field-next/index.js.map} +0 -0
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/field/field-adapter.ts", "../../src/field/field-foundation.ts", "../../src/field/field.ts"],
4
- "sourcesContent": ["import { addClass, calculateFontWidth, getShadowElement, IFontInfo, listenOwnProperty, Platform, removeClass, getActiveElement, createElementAttributeObserver, toggleClass, toggleAttribute } from '@tylertech/forge-core';\nimport { BaseAdapter, IBaseAdapter } from '../core/base/base-adapter';\nimport { FloatingLabel, IFloatingLabel } from '../floating-label/floating-label';\nimport { IFieldComponent } from './field';\nimport { FIELD_CONSTANTS } from './field-constants';\n\nexport interface IFieldAdapter extends IBaseAdapter {\n // root\n setRootClass(classes: string | string[]): void;\n removeRootClass(classes: string | string[]): void;\n\n // input\n addInputListener(type: string, listener: (evt: Event) => void): void;\n removeInputListener(type: string, listener: (evt: Event) => void): void;\n setInputClass(className: string): void;\n removeInputClass(className: string): void;\n\n // label\n addLabelSlotListener(listener: (evt: Event) => void): void;\n removeLabelSlotListener(listener: (evt: Event) => void): void;\n setLabelClass(name: string): void;\n removeLabelClass(name: string): void;\n isLabelFloating(): boolean;\n\n // leading\n addLeadingSlotListener(listener: (evt: Event) => void): void;\n removeLeadingSlotListener(listener: (evt: Event) => void): void;\n\n // trailing\n addTrailingSlotListener(listener: (evt: Event) => void): void;\n removeTrailingSlotListener(listener: (evt: Event) => void): void;\n\n // add on end\n addAddonEndSlotListener(listener: (evt: Event) => void): void;\n removeAddonEndSlotListener(listener: (evt: Event) => void): void;\n\n // state selectors\n hasAddonEndNodes(): boolean;\n hasLabel(): boolean;\n hasLeadingNodes(): boolean;\n hasPlaceholder(): boolean;\n hasTrailingNodes(): boolean;\n inputHasFocus(target?: EventTarget | null): boolean;\n inputHasValue(): boolean;\n fieldHasValue(): boolean;\n isDisabled(): boolean;\n isReadonly(): boolean;\n getLabelFontMetrics(): IFontInfo;\n getLabelWidth(fontSize: number, fontFamily: string): number;\n\n // state actions\n initialize(rootSelector: string): void;\n initializeFloatingLabel(): IFloatingLabel;\n ensureLabelOrder(): void;\n ensureSlottedLabel(): void;\n destroy(): void;\n setValueChangedListener(context: any, listener: (value: any) => void): void;\n destroyValueChangeListener(): void;\n detectLabel(): void;\n setRoomy(isRoomy: boolean): void;\n setDense(isDense: boolean): void;\n setInputAttributeObserver(listener: (name: string, value: string | null) => void): void;\n}\n\nexport class FieldAdapter extends BaseAdapter<IFieldComponent> implements IFieldAdapter {\n protected _rootElement: HTMLElement;\n protected _labelSlot: HTMLSlotElement;\n protected _leadingSlot: HTMLSlotElement;\n protected _trailingSlot: HTMLSlotElement;\n protected _addonEndSlot: HTMLSlotElement;\n protected _labelElement: HTMLLabelElement;\n protected _inputElement: HTMLInputElement;\n protected _inputMutationObserver: MutationObserver;\n protected _valueChangeListeners: Array<() => void> = [];\n\n constructor(component: IFieldComponent) {\n super(component);\n }\n\n public initialize(rootSelector: string): void {\n this._rootElement = getShadowElement(this._component, rootSelector);\n this._labelSlot = getShadowElement(this._component, 'slot[name=label]') as HTMLSlotElement;\n this._leadingSlot = getShadowElement(this._component, 'slot[name=leading]') as HTMLSlotElement;\n this._trailingSlot = getShadowElement(this._component, 'slot[name=trailing]') as HTMLSlotElement;\n this._addonEndSlot = getShadowElement(this._component, 'slot[name=addon-end]') as HTMLSlotElement;\n this._inputElement = this._component.querySelector('input:not([type=checkbox]):not([type=radio])') as HTMLInputElement;\n this.detectLabel();\n }\n\n public destroy(): void {\n if (this._inputMutationObserver) {\n this._inputMutationObserver.disconnect();\n }\n }\n\n public hasLabel(): boolean {\n return !!this._labelElement;\n }\n\n public ensureSlottedLabel(): void {\n this._labelElement.slot = 'label';\n }\n\n public ensureLabelOrder(): void {\n if (this._labelElement) {\n const children = Array.from(this._component.children);\n if (children.length > 1 && children.indexOf(this._labelElement) < children.indexOf(this._inputElement)) {\n this._component.appendChild(this._labelElement);\n }\n }\n }\n\n public addLabelSlotListener(listener: (evt: Event) => void): void {\n this._labelSlot.addEventListener('slotchange', listener);\n }\n\n public removeLabelSlotListener(listener: (evt: Event) => void): void {\n if (this._labelSlot) {\n this._labelSlot.removeEventListener('slotchange', listener);\n }\n }\n\n public addLeadingSlotListener(listener: (evt: Event) => void): void {\n this._leadingSlot.addEventListener('slotchange', listener);\n }\n\n public removeLeadingSlotListener(listener: (evt: Event) => void): void {\n if (this._leadingSlot) {\n this._leadingSlot.removeEventListener('slotchange', listener);\n }\n }\n\n public addTrailingSlotListener(listener: (evt: Event) => void): void {\n this._trailingSlot.addEventListener('slotchange', listener);\n }\n\n public removeTrailingSlotListener(listener: (evt: Event) => void): void {\n if (this._trailingSlot) {\n this._trailingSlot.removeEventListener('slotchange', listener);\n }\n }\n\n public addAddonEndSlotListener(listener: (evt: Event) => void): void {\n this._addonEndSlot.addEventListener('slotchange', listener);\n }\n\n public removeAddonEndSlotListener(listener: (evt: Event) => void): void {\n if (this._addonEndSlot) {\n this._addonEndSlot.removeEventListener('slotchange', listener);\n }\n }\n\n public addInputListener(type: string, listener: (evt: Event) => void): void {\n this._inputElement.addEventListener(type, listener);\n }\n public removeInputListener(type: string, listener: (evt: Event) => void): void {\n if (this._inputElement) {\n this._inputElement.removeEventListener(type, listener);\n }\n }\n\n public setValueChangedListener(context: any, listener: (value: any) => void): void {\n this.destroyValueChangeListener();\n const destroyListener = listenOwnProperty(context, this._inputElement, 'value', listener);\n this._valueChangeListeners.push(destroyListener);\n }\n\n public destroyValueChangeListener(): void {\n this._valueChangeListeners.forEach(cb => cb());\n }\n\n public detectLabel(): void {\n this._labelElement = this._component.querySelector('label') as HTMLLabelElement;\n }\n\n public initializeFloatingLabel(): IFloatingLabel {\n return new FloatingLabel(this._labelElement);\n }\n\n public inputHasValue(): boolean {\n return this._inputElement.value ? this._inputElement.value.trim().length > 0 : false;\n }\n\n // An overrideable method for more generic field values where input.value is not the value.\n public fieldHasValue(): boolean {\n return this.inputHasValue();\n }\n\n public hasPlaceholder(): boolean {\n return this._inputElement.placeholder ? this._inputElement.placeholder.trim().length > 0 : false;\n }\n\n public inputHasFocus(target?: EventTarget | null): boolean {\n return this._inputElement === target || this._inputElement === getActiveElement(this._component.ownerDocument);\n }\n\n public setLabelClass(name: string): void {\n if (this._labelElement) {\n this._labelElement.classList.add(name);\n }\n }\n\n public removeLabelClass(name: string): void {\n if (this._labelElement) {\n this._labelElement.classList.remove(name);\n }\n }\n\n public isLabelFloating(): boolean {\n return this._component.hasAttribute(FIELD_CONSTANTS.attributes.HOST_LABEL_FLOATING);\n }\n\n public setRoomy(isRoomy: boolean): void {\n toggleClass(this._rootElement, isRoomy, FIELD_CONSTANTS.classes.ROOMY);\n }\n\n public setDense(isDense: boolean): void {\n toggleClass(this._rootElement, isDense, FIELD_CONSTANTS.classes.DENSE);\n }\n\n public hasLeadingNodes(): boolean {\n if (!this._leadingSlot) {\n return false;\n }\n return this._leadingSlot.assignedNodes().length > 0;\n }\n\n public hasTrailingNodes(): boolean {\n if (!this._trailingSlot) {\n return false;\n }\n return this._trailingSlot.assignedNodes().length > 0;\n }\n\n public hasAddonEndNodes(): boolean {\n if (!this._addonEndSlot) {\n return false;\n }\n return this._addonEndSlot.assignedNodes().length > 0;\n }\n\n public setInputClass(className: string): void {\n this._inputElement.classList.add(className);\n }\n\n public removeInputClass(className: string): void {\n this._inputElement.classList.remove(className);\n }\n\n public setRootClass(classes: string | string[]): void {\n addClass(classes, this._rootElement);\n }\n\n public removeRootClass(classes: string | string[]): void {\n removeClass(classes, this._rootElement);\n }\n\n public setInputAttributeObserver(listener: (name: string, value: string | null) => void): void {\n this._inputMutationObserver = createElementAttributeObserver(this._inputElement, listener, FIELD_CONSTANTS.observedInputAttributes);\n }\n\n public isDisabled(): boolean {\n return this._inputElement.hasAttribute('disabled');\n }\n\n public isReadonly(): boolean {\n return this._inputElement.hasAttribute('readonly');\n }\n\n public getLabelWidth(fontSize: number, fontFamily: string): number {\n return calculateFontWidth(this._labelElement.innerText, { fontSize, fontFamily });\n }\n\n public getLabelFontMetrics(): IFontInfo {\n const style = getComputedStyle(this._labelElement);\n return {\n fontSize: parseInt(style.fontSize || '16', 10),\n fontFamily: style.fontFamily || 'Roboto'\n };\n }\n}\n", "import { ICustomElementFoundation } from '@tylertech/forge-core';\nimport { IFloatingLabel } from '../floating-label/floating-label';\nimport { IFieldAdapter } from './field-adapter';\nimport { FIELD_CONSTANTS, FieldFloatLabelType, FieldShapeType, FieldDensityType } from './field-constants';\n\nexport interface IFieldFoundation extends ICustomElementFoundation {\n density: FieldDensityType;\n floatLabelType: FieldFloatLabelType;\n shape: FieldShapeType;\n invalid: boolean;\n required: boolean;\n floatLabel(value: boolean, alwaysFloat?: boolean): void;\n}\n\nexport class FieldFoundation {\n protected _density: FieldDensityType = 'default';\n protected _floatingLabel: IFloatingLabel | undefined;\n protected _shape: FieldShapeType = 'default';\n protected _invalid = false;\n protected _required = false;\n protected _floatLabelType: FieldFloatLabelType = 'auto';\n protected _isInitialized = false;\n protected _labelSlotListener: (evt: Event) => void;\n protected _leadingSlotListener: (evt: Event) => void;\n protected _trailingSlotListener: (evt: Event) => void;\n protected _addonEndSlotListener: (evt: Event) => void;\n protected _focusListener: (evt: Event) => void;\n protected _blurListener: (evt: Event) => void;\n protected _valueChangedListener: (value: any) => void;\n protected _inputAttributeChangedListener: (name: string, value: string) => void;\n\n constructor(protected _adapter: IFieldAdapter) {\n this._labelSlotListener = evt => this._onLabelSlotChanged(evt);\n this._leadingSlotListener = evt => this._onLeadingSlotChanged(evt);\n this._trailingSlotListener = evt => this._onTrailingSlotChanged(evt);\n this._addonEndSlotListener = evt => this._onAddonEndSlotChanged(evt);\n this._focusListener = (evt: FocusEvent) => this._onFocus(evt);\n this._blurListener = (evt: FocusEvent) => this._onBlur(evt);\n this._valueChangedListener = (value: any) => this._onValueChanged(value);\n this._inputAttributeChangedListener = (name, value) => this._onInputAttributeChanged(name, value);\n }\n\n //\n // Public\n //\n\n public initialize(): void {\n this._adapter.initialize('');\n\n if (this._adapter.hasLabel()) {\n this._adapter.ensureSlottedLabel();\n }\n\n this._initializeLabel();\n\n if (this._adapter.hasPlaceholder()) {\n this._floatLabelType = 'always';\n }\n\n this._detectSlottedContent();\n this._adapter.addLabelSlotListener(this._labelSlotListener);\n this._adapter.addLeadingSlotListener(this._leadingSlotListener);\n this._adapter.addTrailingSlotListener(this._trailingSlotListener);\n this._adapter.addAddonEndSlotListener(this._addonEndSlotListener);\n this._adapter.setValueChangedListener(this, this._valueChangedListener);\n this._adapter.addInputListener('focus', this._focusListener);\n this._adapter.addInputListener('blur', this._blurListener);\n this._adapter.setInputAttributeObserver(this._inputAttributeChangedListener);\n this._applyDensity();\n this._setShapeType();\n this._setValidity();\n\n if (this._adapter.isDisabled()) {\n this._adapter.setRootClass(FIELD_CONSTANTS.classes.DISABLED);\n } else {\n this._adapter.removeRootClass(FIELD_CONSTANTS.classes.DISABLED);\n }\n\n if (this._adapter.isReadonly()) {\n this._adapter.setRootClass(FIELD_CONSTANTS.classes.READONLY);\n } else {\n this._adapter.removeRootClass(FIELD_CONSTANTS.classes.READONLY);\n }\n\n if (this._floatLabelType === 'always') {\n this.floatLabel(true);\n }\n\n this._isInitialized = true;\n }\n\n public disconnect(): void {\n this._isInitialized = false;\n this._adapter.destroy();\n\n this._adapter.removeHostAttribute(FIELD_CONSTANTS.attributes.HOST_LABEL_FLOATING);\n this._adapter.removeRootClass(FIELD_CONSTANTS.classes.LABEL);\n\n if (this._floatingLabel) {\n this._floatingLabel.destroy();\n this._floatingLabel = undefined;\n }\n\n this._adapter.removeLabelSlotListener(this._labelSlotListener);\n this._adapter.removeLeadingSlotListener(this._leadingSlotListener);\n this._adapter.removeTrailingSlotListener(this._trailingSlotListener);\n this._adapter.removeAddonEndSlotListener(this._addonEndSlotListener);\n this._adapter.removeInputListener('focus', this._focusListener);\n this._adapter.removeInputListener('blur', this._blurListener);\n this._adapter.destroyValueChangeListener();\n }\n\n public get density(): FieldDensityType {\n return this._density;\n }\n public set density(value: FieldDensityType) {\n if (this._density !== value) {\n const prevDensity = this._density;\n this._density = value;\n\n if (this._isInitialized) {\n this._applyDensity();\n\n if (this._density === 'dense') {\n this._destroyFloatingLabel({ cancelFloat: true });\n } else if (prevDensity === 'dense') {\n this._initializeLabel();\n }\n }\n\n this._adapter.setHostAttribute(FIELD_CONSTANTS.attributes.DENSITY, this._density.toString());\n }\n }\n\n public get floatLabelType(): FieldFloatLabelType {\n return this._floatLabelType;\n }\n public set floatLabelType(value: FieldFloatLabelType) {\n if (this._floatLabelType !== value) {\n this._floatLabelType = value;\n\n if (this._isInitialized) {\n this.floatLabel(this._floatLabelType === 'always');\n }\n\n this._adapter.setHostAttribute(FIELD_CONSTANTS.attributes.FLOAT_LABEL_TYPE, this._floatLabelType);\n }\n }\n\n public get shape(): FieldShapeType {\n return this._shape;\n }\n public set shape(value: FieldShapeType) {\n if (this._shape !== value) {\n this._shape = value;\n\n if (this._isInitialized) {\n this._setShapeType();\n }\n\n this._adapter.setHostAttribute(FIELD_CONSTANTS.attributes.SHAPE, this._shape);\n }\n }\n\n public get invalid(): boolean {\n return this._invalid;\n }\n public set invalid(value: boolean) {\n if (this._invalid !== value) {\n this._invalid = value;\n\n if (this._isInitialized) {\n this._setValidity();\n }\n }\n }\n\n public get required(): boolean {\n return this._required;\n }\n public set required(value: boolean) {\n if (this._required !== value) {\n this._required = value;\n\n if (this._isInitialized) {\n this._setValidity();\n }\n\n if (this._required) {\n this._adapter.setHostAttribute(FIELD_CONSTANTS.attributes.REQUIRED);\n } else {\n this._adapter.removeHostAttribute(FIELD_CONSTANTS.attributes.REQUIRED);\n }\n }\n }\n\n public floatLabel(value: boolean): void {\n if (this._floatingLabel?.isFloating === value || this._adapter.isLabelFloating() === value) {\n if (value) {\n this._adapter.setHostAttribute(FIELD_CONSTANTS.attributes.HOST_LABEL_FLOATING, '');\n }\n return;\n }\n\n if (!value && this._floatLabelType === 'always') {\n this._floatingLabel?.float(true, true);\n this._adapter.setHostAttribute(FIELD_CONSTANTS.attributes.HOST_LABEL_FLOATING, '');\n return;\n }\n\n if (this._floatingLabel) {\n this._floatingLabel.float(value, this._floatLabelType === 'always');\n\n if (value) {\n this._adapter.setInputClass(FIELD_CONSTANTS.classes.INPUT_FOCUSED);\n this._adapter.setHostAttribute(FIELD_CONSTANTS.attributes.HOST_LABEL_FLOATING, '');\n } else {\n this._adapter.removeInputClass(FIELD_CONSTANTS.classes.INPUT_FOCUSED);\n this._adapter.removeHostAttribute(FIELD_CONSTANTS.attributes.HOST_LABEL_FLOATING);\n }\n }\n }\n\n //\n // Protected\n //\n\n protected _onLabelSlotChanged(evt: Event): void {\n this._initializeLabel();\n }\n\n protected _onLeadingSlotChanged(evt: Event): void {\n this._detectLeadingContent();\n }\n\n protected _onTrailingSlotChanged(evt: Event): void {\n this._detectTrailingContent();\n }\n\n protected _onAddonEndSlotChanged(evt: Event): void {\n this._detectAddonEndContent();\n }\n\n protected _initializeLabel(): void {\n this._floatingLabel?.destroy();\n this._adapter.detectLabel();\n \n if (this._adapter.hasLabel() && this._density !== 'dense') {\n this._floatingLabel = this._adapter.initializeFloatingLabel();\n this._adapter.ensureLabelOrder();\n this.floatLabel(this._floatLabelType === 'always' || this._adapter.fieldHasValue() || this._adapter.hasPlaceholder());\n this._adapter.setRootClass(FIELD_CONSTANTS.classes.LABEL);\n } else {\n this._destroyFloatingLabel();\n }\n }\n\n private _destroyFloatingLabel({ cancelFloat = false } = {}): void {\n this._adapter.removeHostAttribute(FIELD_CONSTANTS.attributes.HOST_LABEL_FLOATING);\n this._adapter.removeRootClass(FIELD_CONSTANTS.classes.LABEL);\n this._floatingLabel?.destroy({ cancelFloat });\n this._floatingLabel = undefined;\n }\n\n protected _detectLeadingContent(): void {\n if (this._adapter.hasLeadingNodes()) {\n this._adapter.setRootClass(FIELD_CONSTANTS.classes.LEADING);\n } else {\n this._adapter.removeRootClass(FIELD_CONSTANTS.classes.LEADING);\n }\n }\n\n protected _detectTrailingContent(): void {\n if (this._adapter.hasTrailingNodes()) {\n this._adapter.setRootClass(FIELD_CONSTANTS.classes.TRAILING);\n } else {\n this._adapter.removeRootClass(FIELD_CONSTANTS.classes.TRAILING);\n }\n }\n\n protected _detectAddonEndContent(): void {\n if (this._adapter.hasAddonEndNodes()) {\n this._adapter.setRootClass(FIELD_CONSTANTS.classes.ADDON_END);\n } else {\n this._adapter.removeRootClass(FIELD_CONSTANTS.classes.ADDON_END);\n }\n }\n\n protected _detectSlottedContent(): void {\n this._detectLeadingContent();\n this._detectTrailingContent();\n this._detectAddonEndContent();\n }\n\n protected _onFocus(evt: FocusEvent): void {\n this._adapter.setRootClass(FIELD_CONSTANTS.classes.FOCUSED);\n this._adapter.setLabelClass(FIELD_CONSTANTS.classes.LABEL_FOCUSED);\n this.floatLabel(true);\n }\n\n protected _onBlur(evt: FocusEvent): void {\n if (this._adapter.inputHasFocus(evt.relatedTarget)) {\n return;\n }\n\n this._adapter.removeRootClass(FIELD_CONSTANTS.classes.FOCUSED);\n this._adapter.removeLabelClass(FIELD_CONSTANTS.classes.LABEL_FOCUSED);\n\n if (!this._adapter.fieldHasValue() && !this._adapter.hasPlaceholder()) {\n this.floatLabel(false);\n this._adapter.removeHostAttribute(FIELD_CONSTANTS.attributes.HOST_LABEL_FLOATING);\n }\n }\n\n protected _onValueChanged(value: any): void {\n if (this._adapter.fieldHasValue()) {\n this.floatLabel(true);\n } else if (!this._adapter.inputHasFocus() && !this._adapter.hasPlaceholder()) {\n this.floatLabel(false);\n }\n }\n\n protected _onInputAttributeChanged(name: string, value: string | null): void {\n if (this._adapter.isDisabled()) {\n this._adapter.setRootClass(FIELD_CONSTANTS.classes.DISABLED);\n this._adapter.removeRootClass(FIELD_CONSTANTS.classes.FOCUSED);\n this._adapter.removeInputClass(FIELD_CONSTANTS.classes.INPUT_FOCUSED);\n this._adapter.removeLabelClass(FIELD_CONSTANTS.classes.LABEL_FOCUSED);\n\n if (!this._adapter.fieldHasValue() && !this._adapter.hasPlaceholder() && this._floatingLabel) {\n this.floatLabel(false);\n }\n } else {\n this._adapter.removeRootClass(FIELD_CONSTANTS.classes.DISABLED);\n }\n\n if (this._adapter.isReadonly()) {\n this._adapter.setRootClass(FIELD_CONSTANTS.classes.READONLY);\n } else {\n this._adapter.removeRootClass(FIELD_CONSTANTS.classes.READONLY);\n this._adapter.removeRootClass(FIELD_CONSTANTS.classes.FOCUSED);\n this._adapter.removeInputClass(FIELD_CONSTANTS.classes.INPUT_FOCUSED);\n }\n\n switch (name) {\n case 'readonly':\n case 'disabled':\n // If we are changing the readonly or disabled attribute, we want to make sure that we apply\n // the focus state properly if the input element also now has focus\n if (this._adapter.inputHasFocus()) {\n this._adapter.setRootClass(FIELD_CONSTANTS.classes.FOCUSED);\n this._adapter.setInputClass(FIELD_CONSTANTS.classes.INPUT_FOCUSED);\n this._adapter.setLabelClass(FIELD_CONSTANTS.classes.LABEL_FOCUSED);\n }\n break;\n case 'value':\n if (this._floatingLabel) {\n this.floatLabel(this._adapter.fieldHasValue());\n }\n break;\n case 'placeholder':\n if (this._floatingLabel) {\n const float = (!!value && !!value.trim()) || this._adapter.fieldHasValue();\n if (float !== this._floatingLabel.isFloating) {\n this.floatLabel(float);\n }\n }\n break;\n }\n }\n\n protected _setShapeType(): void {\n if (this._shape === 'rounded') {\n this._adapter.setRootClass(FIELD_CONSTANTS.classes.SHAPE_ROUNDED);\n } else {\n this._adapter.removeRootClass(FIELD_CONSTANTS.classes.SHAPE_ROUNDED);\n }\n }\n\n protected _setValidity(): void {\n if (this._invalid) {\n this._adapter.setRootClass(FIELD_CONSTANTS.classes.INVALID);\n } else {\n this._adapter.removeRootClass(FIELD_CONSTANTS.classes.INVALID);\n }\n\n if (this._required) {\n this._adapter.setRootClass(FIELD_CONSTANTS.classes.REQUIRED);\n } else {\n this._adapter.removeRootClass(FIELD_CONSTANTS.classes.REQUIRED);\n }\n }\n\n protected _applyDensity(): void {\n this._adapter.setRoomy(this._density === 'roomy');\n this._adapter.setDense(this._density === 'dense');\n }\n}\n", "import { FieldDensityType, FieldFloatLabelType, FieldShapeType, FIELD_CONSTANTS } from './field-constants';\nimport { BaseComponent, IBaseComponent } from '../core/base/base-component';\nimport { FieldFoundation } from './field-foundation';\nimport { coerceBoolean, ensureChild, FoundationProperty } from '@tylertech/forge-core';\n\nexport interface IFieldComponent extends IBaseComponent {\n density: FieldDensityType;\n floatLabelType: FieldFloatLabelType;\n shape: FieldShapeType;\n invalid: boolean;\n required: boolean;\n floatLabel(value: boolean): void;\n}\n\nexport abstract class FieldComponent<T extends FieldFoundation> extends BaseComponent implements IFieldComponent {\n public static get observedAttributes(): string[] {\n return [\n FIELD_CONSTANTS.attributes.DENSITY,\n FIELD_CONSTANTS.attributes.FLOAT_LABEL_TYPE,\n FIELD_CONSTANTS.attributes.SHAPE,\n FIELD_CONSTANTS.attributes.INVALID,\n FIELD_CONSTANTS.attributes.REQUIRED\n ];\n }\n\n protected _foundation: T;\n\n constructor() {\n super();\n }\n\n public connectedCallback(): void {\n if (this.querySelector(FIELD_CONSTANTS.selectors.INPUT)) {\n this._initialize();\n } else {\n ensureChild(this, FIELD_CONSTANTS.selectors.INPUT).then(() => this._initialize());\n }\n }\n\n private _initialize(): 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 FIELD_CONSTANTS.attributes.DENSITY:\n this.density = newValue as FieldDensityType;\n break;\n case FIELD_CONSTANTS.attributes.FLOAT_LABEL_TYPE:\n this.floatLabelType = newValue as FieldFloatLabelType;\n break;\n case FIELD_CONSTANTS.attributes.SHAPE:\n this.shape = newValue as FieldShapeType;\n break;\n case FIELD_CONSTANTS.attributes.INVALID:\n this.invalid = coerceBoolean(newValue);\n break;\n case FIELD_CONSTANTS.attributes.REQUIRED:\n this.required = coerceBoolean(newValue);\n break;\n }\n }\n\n /** Controls the density type. */\n @FoundationProperty()\n public declare density: FieldDensityType;\n\n /** Whether the label should always float, never float or float as the user types. */\n @FoundationProperty()\n public declare floatLabelType: FieldFloatLabelType;\n\n /** The shape type to use. */\n @FoundationProperty()\n public declare shape: FieldShapeType;\n\n /** Gets/sets the invalid state. */\n @FoundationProperty()\n public declare invalid: boolean;\n\n /** Gets/sets the required state which controls the visibility of the asterisk in the label. */\n @FoundationProperty()\n public declare required: boolean;\n\n /**\n * Controls whether the label should be floating or not.\n * @param {boolean} value\n */\n public floatLabel(value: boolean): void {\n this._foundation.floatLabel(value);\n }\n}\n\n"],
5
- "mappings": "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",
6
- "names": ["FieldAdapter", "BaseAdapter", "component", "rootSelector", "getShadowElement", "children", "listener", "type", "context", "destroyListener", "listenOwnProperty", "cb", "FloatingLabel", "target", "getActiveElement", "name", "FIELD_CONSTANTS", "isRoomy", "toggleClass", "isDense", "className", "classes", "addClass", "removeClass", "createElementAttributeObserver", "fontSize", "fontFamily", "calculateFontWidth", "style", "FieldFoundation", "_adapter", "evt", "value", "name", "FIELD_CONSTANTS", "prevDensity", "_a", "_b", "cancelFloat", "float", "FieldComponent", "BaseComponent", "FIELD_CONSTANTS", "ensureChild", "name", "oldValue", "newValue", "coerceBoolean", "value", "__decorateClass", "FoundationProperty"]
7
- }
@@ -1,7 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2023 Tyler Technologies, Inc.
4
- * License: Apache-2.0
5
- */
6
- import{a as R}from"./chunk.DOAQODLZ.js";import{a as c,b as i,h as C}from"./chunk.GAQ3POUT.js";import{c as H}from"./chunk.BX4AQRHB.js";import{m as x}from"./chunk.4SP42UG3.js";import{a as D}from"./chunk.ZY3ETQ3D.js";import{a as s}from"./chunk.NVUMRW44.js";import{a as S,b as k}from"./chunk.UVXKHQQZ.js";import{a as P,e as O,f as L,k as I}from"./chunk.TPXXHX5J.js";import{k as m,l as T}from"./chunk.J2M2MXP2.js";import{d as a}from"./chunk.M3QDAYD2.js";var _=class extends D{constructor(e){super(e);this._initializeOverlayElement()}get overlayElement(){return this._overlayElement}};var w=`${k}popover`,z={OPEN:"open",ARROW:"arrow",ANIMATION_TYPE:"animation-type",TRIGGER_TYPE:"trigger-type",LONGPRESS_DELAY:"longpress-delay",PERSISTENT_HOVER:"persistent-hover",HOVER_DISMISS_DELAY:"hover-dismiss-delay"},N={ARROW:"arrow"},F={SURFACE:".forge-popover"},B={ARROW:"arrow"},Y={BEFORETOGGLE:`${w}-beforetoggle`,TOGGLE:`${w}-toggle`},G={TRIGGER_TYPE:"click"},n={elementName:w,attributes:z,classes:N,selectors:F,parts:B,events:Y,defaults:G},M=500;var g=class extends _{constructor(e){super(e);this._surfaceElement=L(this._component,n.selectors.SURFACE)}_initializeOverlayElement(){this._overlayElement=L(this._component,i.elementName)}tryLocateAnchorElement(e){this._overlayElement.anchorElement=this._tryFindAnchorElement(e)}addAnchorListener(e,r){var t;this._overlayElement.anchorElement instanceof c||(t=this._overlayElement.anchorElement)==null||t.addEventListener(e,r)}removeAnchorListener(e,r){var t;this._overlayElement.anchorElement instanceof c||(t=this._overlayElement.anchorElement)==null||t.removeEventListener(e,r)}addSurfaceListener(e,r){this._surfaceElement.addEventListener(e,r)}removeSurfaceListener(e,r){this._surfaceElement.removeEventListener(e,r)}setOverlayOpen(e){this._overlayElement.open=e}toggleArrow(e){var r;e?(this._arrowElement||(this._arrowElement=document.createElement("div"),this._arrowElement.classList.add(n.classes.ARROW),this._arrowElement.setAttribute("part",n.parts.ARROW)),this._surfaceElement.appendChild(this._arrowElement),this._overlayElement.arrowElement=this._arrowElement):((r=this._arrowElement)==null||r.remove(),this._arrowElement=void 0,this._overlayElement.arrowElement=void 0)}isChildElement(e){return this._component.contains(e)}tryAutofocus(){window.requestAnimationFrame(()=>{window.requestAnimationFrame(()=>{if(this._component.open&&this._overlayElement.isConnected&&!this._component.matches(":focus-within")){let e=this._component.querySelector("[autofocus]");e&&e.focus()}})})}hasFocus(){return this._component.matches(":focus-within")}captureFocusedElement(){return this._component.ownerDocument.activeElement}_tryFindAnchorElement(e){if(e){let t=this._component.getRootNode().querySelector(`#${e}`);if(t)return t}return this._component.previousElementSibling?this._component.previousElementSibling:null}};var f=class{constructor(o){this._adapter=o;this._lightDismissListener=e=>this._onOverlayLightDismiss(e)}initialize(){this.persistent||this._adapter.overlayElement.addEventListener(i.events.LIGHT_DISMISS,this._lightDismissListener)}destroy(){this._adapter.overlayElement.removeEventListener(i.events.LIGHT_DISMISS,this._lightDismissListener)}get overlayElement(){return this._adapter.overlayElement}get anchorElement(){return this._adapter.overlayElement.anchorElement}set anchorElement(o){this._adapter.overlayElement.anchorElement=o}get anchor(){return this._adapter.overlayElement.anchor}set anchor(o){this._adapter.overlayElement.anchor=o}get noAnchor(){return this._adapter.overlayElement.noAnchor}set noAnchor(o){this._adapter.overlayElement.noAnchor!==o&&(this._adapter.overlayElement.noAnchor=o,this._adapter.toggleHostAttribute(i.attributes.NO_ANCHOR,this._adapter.overlayElement.noAnchor))}get open(){return this._adapter.overlayElement.open}set open(o){this._adapter.overlayElement.open===o&&(this._adapter.overlayElement.open=o,this._adapter.toggleHostAttribute(i.attributes.OPEN,this._adapter.overlayElement.open))}get inline(){return this._adapter.overlayElement.inline}set inline(o){this._adapter.overlayElement.inline!==o&&(this._adapter.overlayElement.inline=o,this._adapter.toggleHostAttribute(i.attributes.INLINE,this._adapter.overlayElement.inline))}get placement(){return this._adapter.overlayElement.placement}set placement(o){this._adapter.overlayElement.placement!==o&&(this._adapter.overlayElement.placement=o,this._adapter.setHostAttribute(i.attributes.PLACEMENT,this._adapter.overlayElement.placement))}get positionStrategy(){return this._adapter.overlayElement.positionStrategy}set positionStrategy(o){this._adapter.overlayElement.positionStrategy!==o&&(this._adapter.overlayElement.positionStrategy=o,this._adapter.setHostAttribute(i.attributes.POSITION_STRATEGY,this._adapter.overlayElement.positionStrategy))}get offset(){return this._adapter.overlayElement.offset}set offset(o){this._adapter.overlayElement.offset!==o&&(this._adapter.overlayElement.offset=o)}get hide(){return this._adapter.overlayElement.hide}set hide(o){this._adapter.overlayElement.hide!==o&&(this._adapter.overlayElement.hide=o,this._adapter.toggleHostAttribute(i.attributes.HIDE,this._adapter.overlayElement.hide!==i.defaults.HIDE,String(this._adapter.overlayElement.hide)))}get persistent(){return this._adapter.overlayElement.persistent}set persistent(o){this._adapter.overlayElement.persistent!==o&&(this._adapter.overlayElement.persistent=o,this.persistent?this._adapter.overlayElement.removeEventListener(i.events.LIGHT_DISMISS,this._lightDismissListener):this._adapter.overlayElement.addEventListener(i.events.LIGHT_DISMISS,this._lightDismissListener),this._adapter.toggleHostAttribute(i.attributes.PERSISTENT,this._adapter.overlayElement.persistent))}get shift(){return this._adapter.overlayElement.shift}set shift(o){this._adapter.overlayElement.shift!==o&&(this._adapter.overlayElement.shift=o,this._adapter.toggleHostAttribute(i.attributes.SHIFT,this._adapter.overlayElement.shift))}get flip(){return this._adapter.overlayElement.flip}set flip(o){this._adapter.overlayElement.flip!==o&&(this._adapter.overlayElement.flip=o,this._adapter.toggleHostAttribute(i.attributes.FLIP,this._adapter.overlayElement.flip!==i.defaults.FLIP,String(this._adapter.overlayElement.flip)))}get boundary(){return this._adapter.overlayElement.boundary}set boundary(o){this._adapter.overlayElement.boundary!==o&&(this._adapter.overlayElement.boundary=o,this._adapter.toggleHostAttribute(i.attributes.BOUNDARY,!!this._adapter.overlayElement.boundary,this._adapter.overlayElement.boundary))}get boundaryElement(){return this._adapter.overlayElement.boundaryElement}set boundaryElement(o){this._adapter.overlayElement.boundaryElement!==o&&(this._adapter.overlayElement.boundaryElement=o)}get fallbackPlacements(){return this._adapter.overlayElement.fallbackPlacements}set fallbackPlacements(o){this._adapter.overlayElement.fallbackPlacements!==o&&(this._adapter.overlayElement.fallbackPlacements=o)}position(){this._adapter.overlayElement.position()}};var b=class{constructor(){this.promise=new Promise((o,e)=>{this._resolveFn=o,this._rejectFn=e})}resolve(o){this._resolveFn(o)}reject(o){this._rejectFn(o)}};var y=Symbol("tryDismiss"),A=Symbol("forgeDismissibleStack"),h=class d{constructor(){this._dismissibleElements=new Set;this._elementsRequestingDismiss=new Map}get dismissing(){var o,e;return(e=(o=this._deferredDismiss)==null?void 0:o.promise)!=null?e:Promise.resolve()}static get instance(){return window[A]||(window[A]=new d),window[A]}async dismiss(o,e){let r=Array.from(this._dismissibleElements),t=r.slice(r.indexOf(o)).reverse();for(let v of t)if(!v[y](e))break}async requestDismiss(o,e){var t;if(this._deferredDismiss||(this._deferredDismiss=new b),this._elementsRequestingDismiss.set(o,e),await H(),!this.isRequestingLightDismiss(o))return;let r=Array.from(this._elementsRequestingDismiss).reverse();this._elementsRequestingDismiss.clear();try{for(let[v,u]of r)if(!v[y](u))break}finally{(t=this._deferredDismiss)==null||t.resolve(),this._deferredDismiss=void 0}}add(o){this._dismissibleElements.add(o)}remove(o){this._dismissibleElements.delete(o),this._elementsRequestingDismiss.delete(o)}has(o){return this._dismissibleElements.has(o)}isRequestingLightDismiss(o){return this._elementsRequestingDismiss.has(o)}};var q=R(f),E=class extends q{constructor(e){super(e);this._anchor=null;this._arrow=!1;this._animationType="zoom";this._triggerTypes=[n.defaults.TRIGGER_TYPE];this._persistentHover=!1;this._hoverDismissDelay=M;this._previouslyFocusedElement=null;this._anchorClickListener=this._onAnchorClick.bind(this);this._anchorDoubleClickListener=this._onAnchorDoubleClick.bind(this);this._anchorMouseenterListener=this._onAnchorMouseenter.bind(this);this._anchorMouseleaveListener=this._onAnchorMouseleave.bind(this);this._popoverMouseenterListener=this._onPopoverMouseenter.bind(this);this._popoverMouseleaveListener=this._onPopoverMouseleave.bind(this);this._mousemoveListener=this._onMousemove.bind(this);this._anchorFocusListener=this._onAnchorFocus.bind(this);this._anchorBlurListener=this._onAnchorBlur.bind(this);this._popoverBlurListener=this._onPopoverBlur.bind(this);this._contextmenuListener=this._onContextmenu.bind(this)}initialize(){super.initialize(),this.anchorElement||this._adapter.tryLocateAnchorElement(this._anchor),this._initializeTriggerListeners()}destroy(){super.destroy(),this._previouslyFocusedElement=null,this.open&&this._closePopover(),this._removeTriggerListeners()}async _onOverlayLightDismiss(e){e.preventDefault(),this._requestDismiss(e.detail.reason)}dispatchBeforeToggleEvent({reason:e}){if(this._dispatchBeforetoggleEvent().defaultPrevented)return!1;let t=this._previouslyFocusedElement;return this._closePopover(),this._dispatchToggleEvent(),e==="escape"&&t&&this._adapter.hasFocus()&&t.focus(),!0}_openPopover({dispatchEvents:e=!0,fromKeyboard:r=!1}={}){e&&this._dispatchBeforetoggleEvent().defaultPrevented||(this._previouslyFocusedElement=this._adapter.captureFocusedElement(),this._adapter.setOverlayOpen(!0),this.overlayElement.persistent||h.instance.add(this._adapter.hostElement),this._adapter.toggleHostAttribute(n.attributes.OPEN,this.open),r&&this._adapter.tryAutofocus(),e&&this._dispatchToggleEvent())}_closePopover(){this._previouslyFocusedElement=null,this._adapter.setOverlayOpen(!1),h.instance.remove(this._adapter.hostElement),this._adapter.toggleHostAttribute(n.attributes.OPEN,this.open)}_dispatchBeforetoggleEvent(){let e=new CustomEvent(n.events.BEFORETOGGLE,{detail:{oldState:this.open?"open":"closed",newState:this.open?"closed":"open"},bubbles:!1,cancelable:!0});return this._adapter.dispatchHostEvent(e),e}_dispatchToggleEvent(){this._adapter.dispatchHostEvent(new CustomEvent(n.events.TOGGLE,{detail:{oldState:this.open?"closed":"open",newState:this.open?"open":"closed"},bubbles:!1}))}_initializeTriggerListeners(){if(this._triggerTypes.includes("manual"))return;let e=[...this._triggerTypes];e.includes("contextmenu")?e=["contextmenu"]:(e.includes("hover")&&e.includes("focus")&&e.splice(e.indexOf("focus"),1),e.includes("click")&&e.includes("doubleclick")&&e.splice(e.indexOf("doubleclick"),1));let r={click:()=>this._adapter.addAnchorListener("click",this._anchorClickListener),hover:()=>{this._adapter.addAnchorListener("mouseenter",this._anchorMouseenterListener),this._adapter.addAnchorListener("focusin",this._anchorFocusListener)},focus:()=>this._adapter.addAnchorListener("focusin",this._anchorFocusListener),longpress:()=>{this._adapter.overlayElement.anchorElement&&!(this._adapter.overlayElement.anchorElement instanceof c)&&this._startLongpressListener(this._adapter.overlayElement.anchorElement)},doubleclick:()=>this._adapter.addAnchorListener("dblclick",this._anchorDoubleClickListener),contextmenu:()=>this._adapter.addDocumentListener("contextmenu",this._contextmenuListener)};e.forEach(t=>{var v;return(v=r[t])==null?void 0:v.call(r)})}_removeTriggerListeners(){let e={click:()=>this._adapter.removeAnchorListener("click",this._anchorClickListener),hover:()=>{this._adapter.removeAnchorListener("mouseenter",this._anchorMouseenterListener),this._adapter.removeAnchorListener("mouseleave",this._anchorMouseleaveListener),this._adapter.removeAnchorListener("focusin",this._anchorFocusListener),this._adapter.removeAnchorListener("focusout",this._anchorBlurListener),this._adapter.removeHostListener("focusout",this._popoverBlurListener),this._tryRemoveHoverListeners()},focus:()=>{this._adapter.removeAnchorListener("focusin",this._anchorFocusListener),this._adapter.removeAnchorListener("focusout",this._anchorBlurListener),this._adapter.removeHostListener("focusout",this._popoverBlurListener)},longpress:()=>{this._adapter.overlayElement.anchorElement&&!(this._adapter.overlayElement.anchorElement instanceof c)&&this._stopLongpressListener(this._adapter.overlayElement.anchorElement)},doubleclick:()=>this._adapter.removeAnchorListener("dblclick",this._anchorDoubleClickListener),contextmenu:()=>this._adapter.removeDocumentListener("contextmenu",this._contextmenuListener)};this._triggerTypes.forEach(r=>{var t;return(t=e[r])==null?void 0:t.call(e)})}_startHoverListeners(){this._adapter.addDocumentListener("mousemove",this._mousemoveListener),this._adapter.addSurfaceListener("mouseenter",this._popoverMouseenterListener),this._adapter.addSurfaceListener("mouseleave",this._popoverMouseleaveListener)}_tryRemoveHoverListeners(){this._adapter.removeDocumentListener("mousemove",this._mousemoveListener),this._adapter.removeSurfaceListener("mouseenter",this._popoverMouseenterListener),this._adapter.removeSurfaceListener("mouseleave",this._popoverMouseleaveListener)}_requestDismiss(e){h.instance.requestDismiss(this._adapter.hostElement,{reason:e})}_requestClose(e){h.instance.dismiss(this._adapter.hostElement,{reason:e})}_onHoverClose(){var e;if(this.open){if(this._currentHoverCoords){let r=document.elementFromPoint(this._currentHoverCoords.x,this._currentHoverCoords.y);if(r&&(this._adapter.isChildElement(r)||!(this._adapter.overlayElement.anchorElement instanceof c)&&((e=this._adapter.overlayElement.anchorElement)==null?void 0:e.contains(r))))return}this._tryRemoveHoverListeners(),this._requestClose("hover")}}_onAnchorClick(e){if(this.open)this._requestClose("click");else{let r=e.detail===0&&!e.pointerType;this._openPopover({fromKeyboard:r})}}_onAnchorDoubleClick(){this.open?this._requestClose("doubleclick"):this._openPopover()}_onAnchorMouseenter(){window.clearTimeout(this._hoverAnchorLeaveTimeout),this._adapter.overlayElement.open||(this._persistentHover||this._adapter.addAnchorListener("mouseleave",this._anchorMouseleaveListener),this._openPopover())}_onAnchorMouseleave(){this._startHoverListeners(),this._hoverAnchorLeaveTimeout=window.setTimeout(()=>{this._hoverAnchorLeaveTimeout=void 0,this._onHoverClose()},this._hoverDismissDelay)}_onPopoverMouseenter(){window.clearTimeout(this._hoverAnchorLeaveTimeout),window.clearTimeout(this._popoverMouseleaveTimeout)}_onPopoverMouseleave(){this._popoverMouseleaveTimeout=window.setTimeout(()=>{this._popoverMouseleaveTimeout=void 0,this._onHoverClose()},this._hoverDismissDelay)}_onMousemove(e){this._currentHoverCoords={x:e.pageX,y:e.pageY}}_onAnchorFocus(e){this._adapter.overlayElement.open||(this._adapter.addAnchorListener("focusout",this._anchorBlurListener),this._openPopover({fromKeyboard:!0}))}_onAnchorBlur(e){this._adapter.isChildElement(e.relatedTarget)?this._adapter.addHostListener("focusout",this._popoverBlurListener):this._requestClose("focus")}_onPopoverBlur({relatedTarget:e}){var v,u;let r=this._adapter.hasFocus(),t=!(this._adapter.overlayElement.anchorElement instanceof c)&&(((v=this._adapter.overlayElement.anchorElement)==null?void 0:v.matches(":focus-within"))||((u=this._adapter.overlayElement.anchorElement)==null?void 0:u.contains(e)));!r&&!t&&this._requestClose("focus")}_onLongpress(){this.open||this._openPopover()}_onContextmenu(e){e.preventDefault(),this.anchorElement=c.fromEvent(e),this.open||this._openPopover()}get open(){return this._adapter.overlayElement.open}set open(e){this._adapter.overlayElement.open!==e&&(e?this._openPopover({dispatchEvents:!1}):this._closePopover())}get anchorElement(){return this._adapter.overlayElement.anchorElement}set anchorElement(e){this._adapter.overlayElement.anchorElement!==e&&(this._adapter.isConnected&&this._removeTriggerListeners(),this._adapter.overlayElement.anchorElement=e,this._adapter.isConnected&&this._initializeTriggerListeners())}get anchor(){return this._anchor}set anchor(e){this._anchor!==e&&(this._anchor=e,this._adapter.isConnected&&(this._removeTriggerListeners(),this._adapter.tryLocateAnchorElement(this._anchor),this._initializeTriggerListeners()))}get arrow(){return this._arrow}set arrow(e){e=!!e,this._arrow!==e&&(this._arrow=e,this._adapter.toggleArrow(e),this._adapter.toggleHostAttribute(n.attributes.ARROW,e))}get animationType(){return this._animationType}set animationType(e){this._animationType!==e&&(this._animationType=e,this._adapter.toggleHostAttribute(n.attributes.ANIMATION_TYPE,!!this._animationType,this._animationType))}get triggerType(){return this._triggerTypes.length===1?this._triggerTypes[0]:this._triggerTypes}set triggerType(e){this._triggerTypes!==e&&(this._adapter.isConnected&&this._removeTriggerListeners(),this._triggerTypes=Array.isArray(e)?e:[e],this._triggerTypes=this._triggerTypes.filter(r=>!!r),this._triggerTypes.length||(this._triggerTypes=[n.defaults.TRIGGER_TYPE]),this._adapter.isConnected&&this._initializeTriggerListeners())}get longpressDelay(){return this._longpressDelay}set longpressDelay(e){this._longpressDelay!==e&&(this._longpressDelay=e,this._adapter.setHostAttribute(n.attributes.LONGPRESS_DELAY,String(this._longpressDelay)))}get persistentHover(){return this._persistentHover}set persistentHover(e){e=!!e,this._persistentHover!==e&&(this._persistentHover=e,this._persistentHover&&this._triggerTypes.includes("hover")&&this._adapter.isConnected&&(this._removeTriggerListeners(),this._initializeTriggerListeners()),this._adapter.toggleHostAttribute(n.attributes.PERSISTENT_HOVER,e))}get hoverDismissDelay(){return this._hoverDismissDelay}set hoverDismissDelay(e){this._hoverDismissDelay!==e&&(this._hoverDismissDelay=e,this._adapter.setHostAttribute(n.attributes.HOVER_DISMISS_DELAY,String(this._hoverDismissDelay)))}};var p=class extends I{constructor(){super()}position(){this._foundation.position()}attributeChangedCallback(e,r,t){switch(e){case i.observedAttributes.ANCHOR:this.anchor=t;break;case i.observedAttributes.NO_ANCHOR:this.noAnchor=m(t);break;case i.observedAttributes.OPEN:this.open=m(t);break;case i.observedAttributes.INLINE:this.inline=m(t);break;case i.observedAttributes.PLACEMENT:this.placement=t;break;case i.observedAttributes.POSITION_STRATEGY:this.positionStrategy=t;break;case i.observedAttributes.HIDE:this.hide=t;break;case i.observedAttributes.PERSISTENT:this.persistent=m(t);break;case i.observedAttributes.SHIFT:this.shift=m(t);break;case i.observedAttributes.FLIP:this.flip=t;break;case i.observedAttributes.BOUNDARY:this.boundary=t;break}}get overlay(){return this._foundation.overlayElement}};a([s()],p.prototype,"anchorElement",2),a([s()],p.prototype,"anchor",2),a([s()],p.prototype,"noAnchor",2),a([s()],p.prototype,"open",2),a([s()],p.prototype,"inline",2),a([s()],p.prototype,"placement",2),a([s()],p.prototype,"positionStrategy",2),a([s()],p.prototype,"offset",2),a([s()],p.prototype,"shift",2),a([s()],p.prototype,"hide",2),a([s()],p.prototype,"persistent",2),a([s()],p.prototype,"flip",2),a([s()],p.prototype,"boundary",2),a([s()],p.prototype,"boundaryElement",2),a([s()],p.prototype,"fallbackPlacements",2);var $='<template><forge-overlay exportparts="root:overlay"><div class="forge-popover" part="surface"><slot></slot></div></forge-overlay></template>',X='@-webkit-keyframes zoomin{from{-webkit-transform:scale(.8);transform:scale(.8)}to{-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomin{from{-webkit-transform:scale(.8);transform:scale(.8)}to{-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes slidein{from{-webkit-transform:translateX(var(--_popover-slidein-x)) translateY(var(--_popover-slidein-y));transform:translateX(var(--_popover-slidein-x)) translateY(var(--_popover-slidein-y))}to{-webkit-transform:translateX(0) translateY(0);transform:translateX(0) translateY(0)}}@keyframes slidein{from{-webkit-transform:translateX(var(--_popover-slidein-x)) translateY(var(--_popover-slidein-y));transform:translateX(var(--_popover-slidein-x)) translateY(var(--_popover-slidein-y))}to{-webkit-transform:translateX(0) translateY(0);transform:translateX(0) translateY(0)}}@-webkit-keyframes fadein{from{opacity:0}to{opacity:1}}@keyframes fadein{from{opacity:0}to{opacity:1}}:host{display:contents;--forge-theme-surface:var(--forge-theme-surface-bright, #ffffff)}:host([hidden]){display:none}forge-overlay{--_popover-background:var(--forge-popover-background, var(--forge-theme-surface-bright, #ffffff));--_popover-border-radius:var(--forge-popover-border-radius, var(--forge-shape-medium, 4px));--_popover-box-shadow:var(--forge-popover-box-shadow, var(--forge-theme-popup-elevation, var(--forge-theme-surface-bright-shadow)));--_popover-border-width:var(--forge-popover-border-width, 0);--_popover-border-style:var(--forge-popover-border-style, solid);--_popover-border-color:var(--forge-popover-border-color, var(--forge-theme-outline, #e0e0e0));--_popover-arrow-size:var(--forge-popover-arrow-size, 12px);--_popover-arrow-height:var(--forge-popover-arrow-height, var(--_popover-arrow-size));--_popover-arrow-width:var(--forge-popover-arrow-width, var(--_popover-arrow-size));--_popover-arrow-background-color:var(--forge-popover-arrow-background-color, var(--_popover-background));--_popover-arrow-top-rotation:var(--forge-popover-arrow-top-rotation, 135deg);--_popover-arrow-right-rotation:var(--forge-popover-arrow-right-rotation, 225deg);--_popover-arrow-bottom-rotation:var(--forge-popover-arrow-bottom-rotation, 315deg);--_popover-arrow-left-rotation:var(--forge-popover-arrow-left-rotation, 45deg);--_popover-arrow-border-width:var(--forge-popover-arrow-border-width, var(--forge-border-thin, 1px));--_popover-animation-timing:var(--forge-popover-animation-timing, var(--forge-animation-easing-decelerate, cubic-bezier(0, 0, 0, 1)));--_popover-zoom-duration:var(--forge-popover-zoom-duration, var(--forge-animation-duration-short3, 150ms));--_popover-zoom-timing:var(--forge-popover-zoom-timing, var(--_popover-animating-timing));--_popover-slide-duration:var(--forge-popover-slide-duration, var(--forge-animation-duration-short3, 150ms));--_popover-slide-timing:var(--forge-popover-slide-timing, var(--_popover-animating-timing));--_popover-slide-offset:var(--forge-popover-slide-offset, 24px);--_popover-fade-duration:var(--forge-popover-fade-duration, var(--forge-animation-duration-medium2, 300ms));--_popover-fade-timing:var(--forge-popover-fade-timing, var(--_popover-animating-timing));--_popover-position-inline-start:var(--forge-popover-position-inline-start, auto);--_popover-position-inline-end:var(--forge-popover-position-inline-end, auto);--_popover-position-block-start:var(--forge-popover-position-block-start, auto);--_popover-position-block-end:var(--forge-popover-position-block-end, auto)}.forge-popover{--_popover-arrow-translate-x:0;--_popover-arrow-translate-y:0;--_popover-arrow-rotation:0;--_popover-slidein-x:0;--_popover-slidein-y:0;--_popover-zoomin-origin:50% 50% 0;--_popover-arrow-clip-path:polygon(calc(var(--_popover-border-width) * -1) calc(var(--_popover-border-width) * -1), calc(100% + var(--_popover-border-width)) calc(var(--_popover-border-width) * -1), calc(100% + var(--_popover-border-width)) calc(100% + var(--_popover-border-width)))}.forge-popover{position:relative;background:var(--_popover-background);border-radius:var(--_popover-border-radius);-webkit-box-shadow:var(--_popover-box-shadow);box-shadow:var(--_popover-box-shadow);border-width:var(--_popover-border-width);border-style:var(--_popover-border-style);border-color:var(--_popover-border-color)}:host([open][no-anchor]) forge-overlay{--forge-overlay-position-inline-start:var(--_popover-position-inline-start);--forge-overlay-position-inline-end:var(--_popover-position-inline-end);--forge-overlay-position-block-start:var(--_popover-position-block-start);--forge-overlay-position-block-end:var(--_popover-position-block-end)}:host([arrow]) .forge-popover{--_popover-border-width:var(--_popover-arrow-border-width)}:host([arrow]) .arrow{position:absolute;background-color:var(--_popover-arrow-background-color);height:var(--_popover-arrow-height);width:var(--_popover-arrow-width);-webkit-box-shadow:var(--_popover-box-shadow);box-shadow:var(--_popover-box-shadow);border-width:var(--_popover-border-width);border-style:var(--_popover-border-style);border-color:var(--_popover-border-color);-webkit-transform:translate(var(--_popover-arrow-translate-x),var(--_popover-arrow-translate-y)) rotate(var(--_popover-arrow-rotation));transform:translate(var(--_popover-arrow-translate-x),var(--_popover-arrow-translate-y)) rotate(var(--_popover-arrow-rotation));-webkit-clip-path:var(--_popover-arrow-clip-path);clip-path:var(--_popover-arrow-clip-path)}:host([arrow]) forge-overlay[position-placement^=top] .arrow{--_popover-arrow-translate-y:var(--forge-popover-arrow-translate-y, calc(var(--_popover-border-width) * -1));--_popover-arrow-rotation:var(--forge-popover-arrow-rotation, var(--_popover-arrow-top-rotation))}:host([arrow]) forge-overlay[position-placement^=right] .arrow{--_popover-arrow-translate-x:var(--forge-popover-arrow-translate-x, var(--_popover-border-width));--_popover-arrow-rotation:var(--forge-popover-arrow-rotation, var(--_popover-arrow-right-rotation))}:host([arrow]) forge-overlay[position-placement^=bottom] .arrow{--_popover-arrow-translate-y:var(--forge-popover-arrow-translate-y, var(--_popover-border-width));--_popover-arrow-rotation:var(--forge-popover-arrow-rotation, var(--_popover-arrow-bottom-rotation))}:host([arrow]) forge-overlay[position-placement^=left] .arrow{--_popover-arrow-translate-x:var(--forge-popover-arrow-translate-x, calc(var(--_popover-border-width) * -1));--_popover-arrow-rotation:var(--forge-popover-arrow-rotation, var(--_popover-arrow-left-rotation))}:host(:not([animation-type])) .forge-popover,:host([animation-type=zoom]) .forge-popover{-webkit-animation-duration:var(--_popover-zoom-duration);animation-duration:var(--_popover-zoom-duration);-webkit-animation-timing-function:var(--_popover-zoom-timing);animation-timing-function:var(--_popover-zoom-timing);-webkit-animation-name:fadein,zoomin;animation-name:fadein,zoomin;-webkit-transform-origin:var(--_popover-zoomin-origin);transform-origin:var(--_popover-zoomin-origin)}:host(:not([animation-type])) forge-overlay[open][position-placement^=top]:not([position-placement*="-"]) .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=top]:not([position-placement*="-"]) .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, bottom center)}:host(:not([animation-type])) forge-overlay[open][position-placement^=top][position-placement$=-start] .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=top][position-placement$=-start] .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, bottom left)}:host(:not([animation-type])) forge-overlay[open][position-placement^=top][position-placement$=-end] .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=top][position-placement$=-end] .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, bottom right)}:host(:not([animation-type])) forge-overlay[open][position-placement^=right]:not([position-placement*="-"]) .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=right]:not([position-placement*="-"]) .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, left center)}:host(:not([animation-type])) forge-overlay[open][position-placement^=right][position-placement$=-start] .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=right][position-placement$=-start] .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, left top)}:host(:not([animation-type])) forge-overlay[open][position-placement^=right][position-placement$=-end] .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=right][position-placement$=-end] .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, left bottom)}:host(:not([animation-type])) forge-overlay[open][position-placement^=bottom]:not([position-placement*="-"]) .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=bottom]:not([position-placement*="-"]) .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, top center)}:host(:not([animation-type])) forge-overlay[open][position-placement^=bottom][position-placement$=-start] .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=bottom][position-placement$=-start] .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, top left)}:host(:not([animation-type])) forge-overlay[open][position-placement^=bottom][position-placement$=-end] .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=bottom][position-placement$=-end] .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, top right)}:host(:not([animation-type])) forge-overlay[open][position-placement^=left]:not([position-placement*="-"]) .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=left]:not([position-placement*="-"]) .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, right center)}:host(:not([animation-type])) forge-overlay[open][position-placement^=left][position-placement$=-start] .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=left][position-placement$=-start] .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, right top)}:host(:not([animation-type])) forge-overlay[open][position-placement^=left][position-placement$=-end] .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=left][position-placement$=-end] .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, right bottom)}:host([animation-type=slide]) .forge-popover{-webkit-animation-duration:var(--_popover-slide-duration);animation-duration:var(--_popover-slide-duration);-webkit-animation-timing-function:var(--_popover-slide-timing);animation-timing-function:var(--_popover-slide-timing);-webkit-animation-name:fadein,slidein;animation-name:fadein,slidein}:host([animation-type=slide]) forge-overlay[open][position-placement^=top] .forge-popover{--_popover-slidein-y:var(--forge-popover-slidein-y, var(--_popover-slide-offset))}:host([animation-type=slide]) forge-overlay[open][position-placement^=right] .forge-popover{--_popover-slidein-x:var(--forge-popover-slidein-x, calc(var(--_popover-slide-offset) * -1))}:host([animation-type=slide]) forge-overlay[open][position-placement^=bottom] .forge-popover{--_popover-slidein-y:var(--forge-popover-slidein-y, calc(var(--_popover-slide-offset) * -1))}:host([animation-type=slide]) forge-overlay[open][position-placement^=left] .forge-popover{--_popover-slidein-x:var(--forge-popover-slidein-x, var(--_popover-slide-offset))}:host([animation-type=fade]) .forge-popover{-webkit-animation-duration:var(--_popover-fade-duration);animation-duration:var(--_popover-fade-duration);-webkit-animation-timing-function:var(--_popover-fade-timing);animation-timing-function:var(--_popover-fade-timing);-webkit-animation-name:fadein;animation-name:fadein}',l=class extends p{constructor(){super();O(this,$,X),this._foundation=new E(new g(this))}static get observedAttributes(){return[...Object.values(i.observedAttributes),n.attributes.ARROW,n.attributes.ANIMATION_TYPE,n.attributes.TRIGGER_TYPE,n.attributes.LONGPRESS_DELAY,n.attributes.PERSISTENT_HOVER,n.attributes.HOVER_DISMISS_DELAY]}[y](e){return this._foundation.dispatchBeforeToggleEvent(e)}connectedCallback(){this._foundation.initialize()}disconnectedCallback(){this._foundation.destroy()}attributeChangedCallback(e,r,t){switch(e){case n.attributes.ARROW:this.arrow=m(t);return;case n.attributes.ANIMATION_TYPE:this.animationType=t;return;case n.attributes.TRIGGER_TYPE:this.triggerType=t!=null&&t.trim()?x(t):n.defaults.TRIGGER_TYPE;return;case n.attributes.LONGPRESS_DELAY:this.longpressDelay=T(t);return;case n.attributes.PERSISTENT_HOVER:this.persistentHover=m(t);return;case n.attributes.HOVER_DISMISS_DELAY:this.hoverDismissDelay=T(t);return}super.attributeChangedCallback(e,r,t)}};a([s()],l.prototype,"arrow",2),a([s()],l.prototype,"animationType",2),a([s()],l.prototype,"triggerType",2),a([s()],l.prototype,"longpressDelay",2),a([s()],l.prototype,"persistentHover",2),a([s()],l.prototype,"hoverDismissDelay",2),l=a([S({name:n.elementName,dependencies:[C]})],l);function io(){P(l)}export{n as a,M as b,g as c,E as d,l as e,io as f};
7
- //# sourceMappingURL=chunk.VRTR7WMN.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/overlay/base/overlay-aware-adapter.ts", "../../src/popover/popover-constants.ts", "../../src/popover/popover-adapter.ts", "../../src/overlay/base/overlay-aware-foundation.ts", "../../src/core/utils/deferred.ts", "../../src/core/utils/dismissible-stack.ts", "../../src/popover/popover-foundation.ts", "../../src/overlay/base/overlay-aware.ts", "../../src/popover/popover.ts", "../../src/popover/index.ts"],
4
- "sourcesContent": ["import { BaseAdapter, IBaseAdapter } from '../../core';\nimport { IOverlayComponent } from '..';\nimport { IOverlayAware } from '../base/overlay-aware';\n\nexport interface IOverlayAwareAdapter extends IBaseAdapter {\n readonly overlayElement: IOverlayComponent;\n}\n\nexport abstract class OverlayAwareAdapter<T extends IOverlayAware> extends BaseAdapter<T> implements IOverlayAwareAdapter {\n protected _overlayElement: IOverlayComponent;\n\n constructor(component: T) {\n super(component);\n this._initializeOverlayElement();\n }\n\n protected abstract _initializeOverlayElement(): void;\n\n public get overlayElement(): IOverlayComponent {\n return this._overlayElement;\n }\n}\n", "import { COMPONENT_NAME_PREFIX } from '../constants';\nimport { OverlayLightDismissReason } from '../overlay';\n\nconst elementName = `${COMPONENT_NAME_PREFIX}popover`;\n\nconst attributes = {\n OPEN: 'open',\n ARROW: 'arrow',\n ANIMATION_TYPE: 'animation-type',\n TRIGGER_TYPE: 'trigger-type',\n LONGPRESS_DELAY: 'longpress-delay',\n PERSISTENT_HOVER: 'persistent-hover',\n HOVER_DISMISS_DELAY: 'hover-dismiss-delay'\n};\n\nconst classes = {\n ARROW: 'arrow'\n};\n\nconst selectors = {\n SURFACE: '.forge-popover'\n};\n\nconst parts = {\n ARROW: 'arrow'\n};\n\nconst events = {\n BEFORETOGGLE: `${elementName}-beforetoggle`,\n TOGGLE: `${elementName}-toggle`\n};\n\nconst defaults = {\n TRIGGER_TYPE: 'click' as PopoverTriggerType\n};\n\nexport const POPOVER_CONSTANTS = {\n elementName,\n attributes,\n classes,\n selectors,\n parts,\n events,\n defaults\n};\n\nexport const POPOVER_HOVER_TIMEOUT = 500;\n\nexport type PopoverAnimationType = 'none' | 'zoom' | 'slide' | 'fade';\nexport type PopoverTriggerType = 'click' | 'hover' | 'focus' | 'longpress' | 'doubleclick' | 'contextmenu' | 'manual';\nexport type PopoverDismissReason = OverlayLightDismissReason | PopoverTriggerType | 'destroy';\n\nexport interface IPopoverToggleEventData {\n newState: 'closed' | 'open';\n oldState: 'closed' | 'open';\n}\n", "import { getShadowElement } from '@tylertech/forge-core';\nimport { VirtualElement } from '../core/utils/position-utils';\nimport { IOverlayComponent, OVERLAY_CONSTANTS } from '../overlay';\nimport { IOverlayAwareAdapter, OverlayAwareAdapter } from '../overlay/base/overlay-aware-adapter';\nimport { IPopoverComponent } from './popover';\nimport { POPOVER_CONSTANTS } from './popover-constants';\n\nexport interface IPopoverAdapter extends IOverlayAwareAdapter {\n readonly hostElement: IPopoverComponent;\n tryLocateAnchorElement(id: string | null): void;\n addAnchorListener(type: string, listener: EventListener): void;\n removeAnchorListener(type: string, listener: EventListener): void;\n addSurfaceListener(type: string, listener: EventListener): void;\n removeSurfaceListener(type: string, listener: EventListener): void;\n setOverlayOpen(newState: boolean): void;\n toggleArrow(value: boolean): void;\n isChildElement(element: HTMLElement): boolean;\n tryAutofocus(): void;\n hasFocus(): boolean;\n captureFocusedElement(): HTMLElement | null;\n}\n\nexport class PopoverAdapter extends OverlayAwareAdapter<IPopoverComponent> implements IPopoverAdapter {\n private _surfaceElement: HTMLElement;\n private _arrowElement: HTMLElement | undefined;\n\n constructor(component: IPopoverComponent) {\n super(component);\n this._surfaceElement = getShadowElement(this._component, POPOVER_CONSTANTS.selectors.SURFACE);\n }\n \n protected _initializeOverlayElement(): void {\n this._overlayElement = getShadowElement(this._component, OVERLAY_CONSTANTS.elementName) as IOverlayComponent;\n }\n\n public tryLocateAnchorElement(id: string | null): void {\n this._overlayElement.anchorElement = this._tryFindAnchorElement(id);\n }\n\n public addAnchorListener(type: string, listener: EventListener): void {\n if (this._overlayElement.anchorElement instanceof VirtualElement) {\n return;\n }\n this._overlayElement.anchorElement?.addEventListener(type, listener);\n }\n\n public removeAnchorListener(type: string, listener: EventListener): void {\n if (this._overlayElement.anchorElement instanceof VirtualElement) {\n return;\n }\n this._overlayElement.anchorElement?.removeEventListener(type, listener);\n }\n\n public addSurfaceListener(type: string, listener: EventListener): void {\n this._surfaceElement.addEventListener(type, listener);\n }\n\n public removeSurfaceListener(type: string, listener: EventListener): void {\n this._surfaceElement.removeEventListener(type, listener);\n }\n\n public setOverlayOpen(newState: boolean): void {\n this._overlayElement.open = newState;\n }\n\n public toggleArrow(value: boolean): void {\n if (value) {\n if (!this._arrowElement) {\n this._arrowElement = document.createElement('div');\n this._arrowElement.classList.add(POPOVER_CONSTANTS.classes.ARROW);\n this._arrowElement.setAttribute('part', POPOVER_CONSTANTS.parts.ARROW);\n }\n this._surfaceElement.appendChild(this._arrowElement);\n this._overlayElement.arrowElement = this._arrowElement;\n } else {\n this._arrowElement?.remove();\n this._arrowElement = undefined;\n this._overlayElement.arrowElement = undefined;\n }\n }\n\n public isChildElement(element: HTMLElement): boolean {\n return this._component.contains(element);\n }\n\n public tryAutofocus(): void {\n window.requestAnimationFrame(() => {\n window.requestAnimationFrame(() => {\n if (this._component.open && this._overlayElement.isConnected && !this._component.matches(':focus-within')) {\n const autofocusElement = this._component.querySelector<HTMLElement>('[autofocus]');\n if (autofocusElement) {\n autofocusElement.focus();\n }\n }\n });\n });\n }\n\n public hasFocus(): boolean {\n return this._component.matches(':focus-within');\n }\n\n public captureFocusedElement(): HTMLElement | null {\n return this._component.ownerDocument.activeElement as HTMLElement | null;\n }\n\n /**\n * Attempts to find the anchor element by first checking for an element with the provided id, and if not found,\n * then implicitly assumes the previous element sibling is the anchor.\n * \n * @param [id] - The id of the anchor element to locate.\n * @returns The anchor element if found, otherwise null.\n */\n private _tryFindAnchorElement(id?: string | null): HTMLElement | null {\n if (id) {\n // First we attempt to locate the target element based on the id reference provided\n const rootNode = this._component.getRootNode() as Document | ShadowRoot;\n const targetEl = rootNode.querySelector<HTMLElement>(`#${id}`);\n if (targetEl) {\n return targetEl;\n }\n }\n\n // If still not found, we'll implicitly assume the previous element sibling is our anchor\n if (this._component.previousElementSibling) {\n return this._component.previousElementSibling as HTMLElement;\n }\n\n return null;\n }\n}\n", "import { IBaseOverlayFoundation } from './base-overlay-foundation';\nimport { IOverlayComponent } from '../overlay';\nimport { IOverlayAwareAdapter } from './overlay-aware-adapter';\nimport { IOverlayOffset, OverlayFlipState, OverlayHideState, OverlayPlacement, OverlayPositionStrategy, OVERLAY_CONSTANTS } from '../overlay-constants';\nimport { PositionPlacement, VirtualElement } from '../../core/utils/position-utils';\n\nexport interface IOverlayAwareFoundation extends IBaseOverlayFoundation {\n readonly overlayElement: IOverlayComponent;\n}\n\nexport abstract class OverlayAwareFoundation<T extends IOverlayAwareAdapter> implements IOverlayAwareFoundation {\n private _lightDismissListener: (evt: CustomEvent) => void;\n\n constructor(protected _adapter: T) {\n this._lightDismissListener = (evt: CustomEvent) => this._onOverlayLightDismiss(evt);\n }\n\n protected abstract _onOverlayLightDismiss(evt: CustomEvent): void;\n\n public initialize(): void {\n if (!this.persistent) {\n this._adapter.overlayElement.addEventListener(OVERLAY_CONSTANTS.events.LIGHT_DISMISS, this._lightDismissListener);\n }\n }\n\n public destroy(): void {\n this._adapter.overlayElement.removeEventListener(OVERLAY_CONSTANTS.events.LIGHT_DISMISS, this._lightDismissListener);\n }\n\n public get overlayElement(): IOverlayComponent {\n return this._adapter.overlayElement;\n }\n\n public get anchorElement(): HTMLElement | VirtualElement | null {\n return this._adapter.overlayElement.anchorElement;\n }\n public set anchorElement(value: HTMLElement | VirtualElement | null) {\n this._adapter.overlayElement.anchorElement = value;\n }\n\n public get anchor(): string | null {\n return this._adapter.overlayElement.anchor;\n }\n public set anchor(value: string | null) {\n this._adapter.overlayElement.anchor = value;\n }\n\n public get noAnchor(): boolean {\n return this._adapter.overlayElement.noAnchor;\n }\n public set noAnchor(value: boolean) {\n if (this._adapter.overlayElement.noAnchor !== value) {\n this._adapter.overlayElement.noAnchor = value;\n this._adapter.toggleHostAttribute(OVERLAY_CONSTANTS.attributes.NO_ANCHOR, this._adapter.overlayElement.noAnchor);\n }\n }\n\n public get open(): boolean {\n return this._adapter.overlayElement.open;\n }\n public set open(value: boolean) {\n if (this._adapter.overlayElement.open === value) {\n this._adapter.overlayElement.open = value;\n this._adapter.toggleHostAttribute(OVERLAY_CONSTANTS.attributes.OPEN, this._adapter.overlayElement.open);\n }\n }\n\n public get inline(): boolean {\n return this._adapter.overlayElement.inline;\n }\n public set inline(value: boolean) {\n if (this._adapter.overlayElement.inline !== value) {\n this._adapter.overlayElement.inline = value;\n this._adapter.toggleHostAttribute(OVERLAY_CONSTANTS.attributes.INLINE, this._adapter.overlayElement.inline);\n }\n }\n\n public get placement(): OverlayPlacement {\n return this._adapter.overlayElement.placement;\n }\n public set placement(value: OverlayPlacement) {\n if (this._adapter.overlayElement.placement !== value) {\n this._adapter.overlayElement.placement = value;\n this._adapter.setHostAttribute(OVERLAY_CONSTANTS.attributes.PLACEMENT, this._adapter.overlayElement.placement);\n }\n }\n\n public get positionStrategy(): OverlayPositionStrategy {\n return this._adapter.overlayElement.positionStrategy;\n }\n public set positionStrategy(value: OverlayPositionStrategy) {\n if (this._adapter.overlayElement.positionStrategy !== value) {\n this._adapter.overlayElement.positionStrategy = value;\n this._adapter.setHostAttribute(OVERLAY_CONSTANTS.attributes.POSITION_STRATEGY, this._adapter.overlayElement.positionStrategy);\n }\n }\n\n public get offset(): IOverlayOffset {\n return this._adapter.overlayElement.offset;\n }\n public set offset(value: IOverlayOffset) {\n if (this._adapter.overlayElement.offset !== value) {\n this._adapter.overlayElement.offset = value;\n }\n }\n\n public get hide(): OverlayHideState {\n return this._adapter.overlayElement.hide;\n }\n public set hide(value: OverlayHideState) {\n if (this._adapter.overlayElement.hide !== value) {\n this._adapter.overlayElement.hide = value;\n this._adapter.toggleHostAttribute(OVERLAY_CONSTANTS.attributes.HIDE, this._adapter.overlayElement.hide !== OVERLAY_CONSTANTS.defaults.HIDE, String(this._adapter.overlayElement.hide));\n }\n }\n\n public get persistent(): boolean {\n return this._adapter.overlayElement.persistent;\n }\n public set persistent(value: boolean) {\n if (this._adapter.overlayElement.persistent !== value) {\n this._adapter.overlayElement.persistent = value;\n\n if (!this.persistent) {\n this._adapter.overlayElement.addEventListener(OVERLAY_CONSTANTS.events.LIGHT_DISMISS, this._lightDismissListener);\n } else {\n this._adapter.overlayElement.removeEventListener(OVERLAY_CONSTANTS.events.LIGHT_DISMISS, this._lightDismissListener);\n }\n\n this._adapter.toggleHostAttribute(OVERLAY_CONSTANTS.attributes.PERSISTENT, this._adapter.overlayElement.persistent);\n }\n }\n\n public get shift(): boolean {\n return this._adapter.overlayElement.shift;\n }\n public set shift(value: boolean) {\n if (this._adapter.overlayElement.shift !== value) {\n this._adapter.overlayElement.shift = value;\n this._adapter.toggleHostAttribute(OVERLAY_CONSTANTS.attributes.SHIFT, this._adapter.overlayElement.shift);\n }\n }\n\n public get flip(): OverlayFlipState {\n return this._adapter.overlayElement.flip;\n }\n public set flip(value: OverlayFlipState) {\n if (this._adapter.overlayElement.flip !== value) {\n this._adapter.overlayElement.flip = value;\n this._adapter.toggleHostAttribute(OVERLAY_CONSTANTS.attributes.FLIP, this._adapter.overlayElement.flip !== OVERLAY_CONSTANTS.defaults.FLIP, String(this._adapter.overlayElement.flip));\n }\n }\n \n public get boundary(): string | null {\n return this._adapter.overlayElement.boundary;\n }\n public set boundary(value: string | null) {\n if (this._adapter.overlayElement.boundary !== value) {\n this._adapter.overlayElement.boundary = value;\n this._adapter.toggleHostAttribute(OVERLAY_CONSTANTS.attributes.BOUNDARY, !!this._adapter.overlayElement.boundary, this._adapter.overlayElement.boundary as string);\n }\n }\n\n public get boundaryElement(): HTMLElement | null {\n return this._adapter.overlayElement.boundaryElement;\n }\n public set boundaryElement(value: HTMLElement | null) {\n if (this._adapter.overlayElement.boundaryElement !== value) {\n this._adapter.overlayElement.boundaryElement = value;\n }\n }\n\n public get fallbackPlacements(): PositionPlacement[] | null {\n return this._adapter.overlayElement.fallbackPlacements;\n }\n public set fallbackPlacements(value: PositionPlacement[] | null) {\n if (this._adapter.overlayElement.fallbackPlacements !== value) {\n this._adapter.overlayElement.fallbackPlacements = value;\n }\n }\n\n public position(): void {\n this._adapter.overlayElement.position();\n }\n}\n", "/**\n * Represents a deferred promise.\n * \n * Use deferred promises when you need to return a promise but you don't have the result yet.\n */\nexport class Deferred<T = void> {\n /**\n * The promise to be resolved or rejected.\n */\n public readonly promise: Promise<T>;\n\n private _resolveFn: (value: T | PromiseLike<T>) => void;\n private _rejectFn: (reason?: any) => void;\n\n constructor() {\n this.promise = new Promise<T>((resolve, reject) => {\n this._resolveFn = resolve;\n this._rejectFn = reject;\n });\n }\n\n /**\n * Resolves the promise.\n * @param param The value to resolve the promise with.\n */\n public resolve(param: T): void {\n this._resolveFn(param);\n }\n\n /**\n * Rejects the promise.\n * @param reason The reason for rejecting the promise.\n */\n public reject(reason?: any): void {\n this._rejectFn(reason);\n }\n}\n", "import { Deferred } from './deferred';\nimport { task } from './event-utils';\n\n// The symbol to use for the tryDismiss method on dismissible elements\nexport const tryDismiss = Symbol('tryDismiss');\n\n// The key to use for storing the dismissible stack on the window object\nconst DISMISSIBLE_STACK_INSTANCE_KEY = Symbol('forgeDismissibleStack');\n\nexport interface IDismissibleStackState<T = string> {\n [key: string]: T;\n}\n\nexport interface IDismissible {\n [tryDismiss](state?: IDismissibleStackState): boolean;\n}\n\nexport class DismissibleStack<T extends IDismissible> {\n private _deferredDismiss: Deferred | undefined;\n\n /**\n * A promise that resolves when all elements in the stack have finished dismissing.\n * \n * Resolves immediately if there are no elements in the stack.\n */\n public get dismissing(): Promise<void> {\n return this._deferredDismiss?.promise ?? Promise.resolve();\n }\n\n /**\n * A set of all elements that are currently eligible for dismissal.\n * \n * Typically used when a user is force dismissing an element, such as when they click\n * an element that triggered it to open.\n */\n private _dismissibleElements = new Set<T>();\n\n /**\n * A map of all elements that are requesting to be dismissed, and the state that they\n * are requesting to dismiss with.\n * \n * This is used to queue up dismiss requests so that we can wait for all other elements\n * to dispatch their dismiss events, typically used with light dismiss.\n */\n private _elementsRequestingDismiss = new Map<T, IDismissibleStackState | undefined>();\n\n // eslint-disable-next-line @tylertech-eslint/require-private-modifier\n private constructor() {}\n\n public static get instance(): DismissibleStack<IDismissible> {\n // We store our instance on the window object so that it can be shared across multiple\n // instances of Forge components\n if (!window[DISMISSIBLE_STACK_INSTANCE_KEY]) {\n window[DISMISSIBLE_STACK_INSTANCE_KEY] = new DismissibleStack();\n }\n return window[DISMISSIBLE_STACK_INSTANCE_KEY];\n }\n\n /**\n * Dismisses all elements in the stack that have been presented after the provided element.\n * @param el The element to dismiss\n * @param state The state to pass to the dismiss method of each element\n */\n public async dismiss(el: T, state: IDismissibleStackState): Promise<void> {\n const elements = Array.from(this._dismissibleElements);\n const elementsAfter = elements.slice(elements.indexOf(el)).reverse();\n for (const element of elementsAfter) {\n if (!element[tryDismiss](state)) {\n break;\n }\n }\n }\n\n /**\n * Queues an element to be dismissed. This allows for us to asynchronously wait for all\n * other elements to dispatch their dismiss events so that consumers can cancel the dismiss\n * if they want to, without closing their parent dismissible elements.\n * @param el \n * @param dismissState \n * @returns \n */\n public async requestDismiss(el: T, dismissState: IDismissibleStackState): Promise<void> {\n if (!this._deferredDismiss) {\n this._deferredDismiss = new Deferred();\n }\n\n this._elementsRequestingDismiss.set(el, dismissState);\n\n // Wait for all other element to finish queuing their dismiss events\n await task();\n\n // The first element to call this method will handle attempting to dismiss the rest of\n // elements, and will clear the queue when it is done. All other subsequent elements will\n // just return here if called within the same task.\n if (!this.isRequestingLightDismiss(el)) {\n return;\n }\n\n // Get all elements that are requesting to be dismissed, and reverse the order so that\n // we can attempt to dismiss them in a top-down order (most recently opened first)\n const elements = Array.from(this._elementsRequestingDismiss).reverse();\n \n // Clear all elements from the stack since we are don't need references to them anymore\n this._elementsRequestingDismiss.clear();\n\n // Attempt to dismiss each element in the queue (most recently opened first), if any of\n // them are prevented, stop trying to dismiss the rest\n try {\n for (const [element, state] of elements) {\n if (!element[tryDismiss](state)) {\n break;\n }\n }\n } finally {\n this._deferredDismiss?.resolve();\n this._deferredDismiss = undefined;\n }\n }\n\n /**\n * Adds an element to the dismissible queue.\n * \n * Use this when an element is opened and should be eligible for dismissal in a stack of other\n * dismissible elements.\n */\n public add(el: T): void {\n this._dismissibleElements.add(el);\n }\n\n /**\n * Removes an element from the dismissible queue.\n * \n * Use this when an element is closed and should no longer be eligible for dismissal in a stack.\n */\n public remove(el: T): void {\n this._dismissibleElements.delete(el);\n this._elementsRequestingDismiss.delete(el);\n }\n\n /**\n * Checks if an element is in the dismissible queue.\n */\n public has(el: T): boolean {\n return this._dismissibleElements.has(el);\n }\n\n /**\n * Checks if an element is requesting to be dismissed.\n */\n public isRequestingLightDismiss(el: T): boolean {\n return this._elementsRequestingDismiss.has(el);\n }\n}\n", "import { IOverlayAwareFoundation, OverlayAwareFoundation } from '../overlay/base/overlay-aware-foundation';\nimport { OverlayLightDismissEventData } from '../overlay/overlay-constants';\nimport { WithLongpressListener } from '../core/mixins/interactions/longpress/with-longpress-listener';\nimport { IPopoverAdapter } from './popover-adapter';\nimport { PopoverAnimationType, IPopoverToggleEventData, PopoverTriggerType, POPOVER_CONSTANTS, PopoverDismissReason, POPOVER_HOVER_TIMEOUT } from './popover-constants';\nimport { IDismissibleStackState, DismissibleStack } from '../core/utils/dismissible-stack';\nimport { VirtualElement } from '../core/utils/position-utils';\n\nexport interface IPopoverFoundation extends IOverlayAwareFoundation {\n arrow: boolean;\n animationType: PopoverAnimationType;\n triggerType: PopoverTriggerType | PopoverTriggerType[];\n longpressDelay: number;\n persistentHover: boolean;\n hoverDismissDelay: number;\n dispatchBeforeToggleEvent(state: IDismissibleStackState): boolean;\n}\n\nconst BaseClass = WithLongpressListener(OverlayAwareFoundation<IPopoverAdapter>);\n\nexport class PopoverFoundation extends BaseClass implements IPopoverFoundation {\n private _anchor: string | null = null;\n private _arrow = false;\n private _animationType: PopoverAnimationType = 'zoom';\n private _triggerTypes: PopoverTriggerType[] = [POPOVER_CONSTANTS.defaults.TRIGGER_TYPE];\n private _persistentHover = false;\n private _hoverDismissDelay = POPOVER_HOVER_TIMEOUT;\n private _previouslyFocusedElement: HTMLElement | null = null;\n\n // Hover trigger state\n private _hoverAnchorLeaveTimeout: undefined | number;\n private _popoverMouseleaveTimeout: undefined | number;\n private _currentHoverCoords: undefined | { x: number; y: number };\n\n // Click trigger listeners\n private _anchorClickListener = this._onAnchorClick.bind(this);\n\n // Double click trigger listeners\n private _anchorDoubleClickListener = this._onAnchorDoubleClick.bind(this);\n\n // Hover trigger listeners\n private _anchorMouseenterListener = this._onAnchorMouseenter.bind(this);\n private _anchorMouseleaveListener = this._onAnchorMouseleave.bind(this);\n private _popoverMouseenterListener = this._onPopoverMouseenter.bind(this);\n private _popoverMouseleaveListener = this._onPopoverMouseleave.bind(this);\n private _mousemoveListener = this._onMousemove.bind(this);\n\n // Focus trigger listeners\n private _anchorFocusListener = this._onAnchorFocus.bind(this);\n private _anchorBlurListener = this._onAnchorBlur.bind(this);\n private _popoverBlurListener = this._onPopoverBlur.bind(this);\n\n // Contextmenu listener\n private _contextmenuListener = this._onContextmenu.bind(this);\n\n constructor(adapter: IPopoverAdapter) {\n super(adapter);\n }\n\n public override initialize(): void {\n super.initialize();\n\n if (!this.anchorElement) {\n this._adapter.tryLocateAnchorElement(this._anchor);\n }\n\n this._initializeTriggerListeners();\n }\n\n public override destroy(): void {\n super.destroy();\n this._previouslyFocusedElement = null;\n\n if (this.open) {\n this._closePopover();\n }\n\n this._removeTriggerListeners();\n }\n\n protected async _onOverlayLightDismiss(evt: CustomEvent<OverlayLightDismissEventData>): Promise<void> {\n evt.preventDefault();\n this._requestDismiss(evt.detail.reason);\n }\n\n public dispatchBeforeToggleEvent({ reason }: IDismissibleStackState): boolean {\n const evt = this._dispatchBeforetoggleEvent();\n\n if (evt.defaultPrevented) {\n return false;\n }\n\n const previousFocusedEl = this._previouslyFocusedElement;\n\n this._closePopover();\n this._dispatchToggleEvent();\n\n if (reason === 'escape' && previousFocusedEl && this._adapter.hasFocus()) {\n previousFocusedEl.focus();\n }\n\n return true;\n }\n\n private _openPopover({ dispatchEvents = true, fromKeyboard = false } = {}): void {\n if (dispatchEvents) {\n const evt = this._dispatchBeforetoggleEvent();\n if (evt.defaultPrevented) {\n return;\n }\n }\n\n this._previouslyFocusedElement = this._adapter.captureFocusedElement();\n this._adapter.setOverlayOpen(true);\n\n if (!this.overlayElement.persistent) {\n DismissibleStack.instance.add(this._adapter.hostElement);\n }\n\n this._adapter.toggleHostAttribute(POPOVER_CONSTANTS.attributes.OPEN, this.open);\n\n // We only attempt to set initial focus if the event was triggered by a keyboard interaction\n if (fromKeyboard) {\n this._adapter.tryAutofocus();\n }\n\n if (dispatchEvents) {\n this._dispatchToggleEvent();\n }\n }\n\n private _closePopover(): void {\n this._previouslyFocusedElement = null;\n this._adapter.setOverlayOpen(false);\n DismissibleStack.instance.remove(this._adapter.hostElement);\n this._adapter.toggleHostAttribute(POPOVER_CONSTANTS.attributes.OPEN, this.open);\n }\n\n private _dispatchBeforetoggleEvent(): CustomEvent<IPopoverToggleEventData> {\n const evt = new CustomEvent<IPopoverToggleEventData>(POPOVER_CONSTANTS.events.BEFORETOGGLE, {\n detail: {\n oldState: this.open ? 'open' : 'closed',\n newState: this.open ? 'closed' : 'open'\n },\n bubbles: false,\n cancelable: true\n });\n this._adapter.dispatchHostEvent(evt);\n return evt;\n }\n\n private _dispatchToggleEvent(): void {\n this._adapter.dispatchHostEvent(new CustomEvent<IPopoverToggleEventData>(POPOVER_CONSTANTS.events.TOGGLE, {\n detail: {\n oldState: this.open ? 'closed' : 'open',\n newState: this.open ? 'open' : 'closed'\n },\n bubbles: false\n }));\n }\n\n private _initializeTriggerListeners(): void {\n if (this._triggerTypes.includes('manual')) {\n return;\n }\n\n let types = [...this._triggerTypes];\n\n // When contextmenu is used, we ignore all other trigger types\n if (types.includes('contextmenu')) {\n types = ['contextmenu'];\n } else {\n // Hover triggers already listen to focus by default\n if (types.includes('hover') && types.includes('focus')) {\n types.splice(types.indexOf('focus'), 1);\n }\n\n // We don't support both click and doubleclick together; click takes precedence\n if (types.includes('click') && types.includes('doubleclick')) {\n types.splice(types.indexOf('doubleclick'), 1);\n }\n }\n\n const triggerInitializers: Record<Exclude<PopoverTriggerType, 'manual'>, () => void> = {\n click: () => this._adapter.addAnchorListener('click', this._anchorClickListener),\n hover: () => {\n this._adapter.addAnchorListener('mouseenter', this._anchorMouseenterListener);\n this._adapter.addAnchorListener('focusin', this._anchorFocusListener);\n },\n focus: () => this._adapter.addAnchorListener('focusin', this._anchorFocusListener),\n longpress: () => {\n if (this._adapter.overlayElement.anchorElement && !(this._adapter.overlayElement.anchorElement instanceof VirtualElement)) {\n this._startLongpressListener(this._adapter.overlayElement.anchorElement);\n }\n },\n doubleclick: () => this._adapter.addAnchorListener('dblclick', this._anchorDoubleClickListener),\n contextmenu: () => this._adapter.addDocumentListener('contextmenu', this._contextmenuListener)\n };\n\n types.forEach(triggerType => triggerInitializers[triggerType]?.());\n }\n\n private _removeTriggerListeners(): void {\n const triggerRemovers: Record<Exclude<PopoverTriggerType, 'manual'>, () => void> = {\n click: () => this._adapter.removeAnchorListener('click', this._anchorClickListener),\n hover: () => {\n this._adapter.removeAnchorListener('mouseenter', this._anchorMouseenterListener);\n this._adapter.removeAnchorListener('mouseleave', this._anchorMouseleaveListener);\n this._adapter.removeAnchorListener('focusin', this._anchorFocusListener);\n this._adapter.removeAnchorListener('focusout', this._anchorBlurListener);\n this._adapter.removeHostListener('focusout', this._popoverBlurListener);\n this._tryRemoveHoverListeners();\n },\n focus: () => {\n this._adapter.removeAnchorListener('focusin', this._anchorFocusListener);\n this._adapter.removeAnchorListener('focusout', this._anchorBlurListener);\n this._adapter.removeHostListener('focusout', this._popoverBlurListener);\n },\n longpress: () => {\n if (this._adapter.overlayElement.anchorElement && !(this._adapter.overlayElement.anchorElement instanceof VirtualElement)) {\n this._stopLongpressListener(this._adapter.overlayElement.anchorElement);\n }\n },\n doubleclick: () => this._adapter.removeAnchorListener('dblclick', this._anchorDoubleClickListener),\n contextmenu: () => this._adapter.removeDocumentListener('contextmenu', this._contextmenuListener)\n };\n this._triggerTypes.forEach(triggerType => triggerRemovers[triggerType]?.());\n }\n\n private _startHoverListeners(): void {\n this._adapter.addDocumentListener('mousemove', this._mousemoveListener);\n this._adapter.addSurfaceListener('mouseenter', this._popoverMouseenterListener);\n this._adapter.addSurfaceListener('mouseleave', this._popoverMouseleaveListener);\n }\n\n private _tryRemoveHoverListeners(): void {\n this._adapter.removeDocumentListener('mousemove', this._mousemoveListener);\n this._adapter.removeSurfaceListener('mouseenter', this._popoverMouseenterListener);\n this._adapter.removeSurfaceListener('mouseleave', this._popoverMouseleaveListener);\n }\n\n private _requestDismiss(reason: PopoverDismissReason): void {\n DismissibleStack.instance.requestDismiss(this._adapter.hostElement, { reason });\n }\n \n private _requestClose(reason: PopoverDismissReason): void {\n DismissibleStack.instance.dismiss(this._adapter.hostElement, { reason });\n }\n\n private _onHoverClose(): void {\n /* c8 ignore next 3 */\n if (!this.open) {\n return;\n }\n \n if (this._currentHoverCoords) {\n const mouseElement = document.elementFromPoint(this._currentHoverCoords.x, this._currentHoverCoords.y) as HTMLElement;\n const isOwnElement = mouseElement &&\n (this._adapter.isChildElement(mouseElement) ||\n (!(this._adapter.overlayElement.anchorElement instanceof VirtualElement) && this._adapter.overlayElement.anchorElement?.contains(mouseElement)));\n /* c8 ignore next 3 */\n if (isOwnElement) {\n return;\n }\n }\n\n this._tryRemoveHoverListeners();\n this._requestClose('hover');\n }\n\n /**\n * Handles `click` events on the anchor element.\n * \n * Only called when using the \"click\" (default) trigger type.\n */\n private _onAnchorClick(evt: PointerEvent): void {\n if (!this.open) {\n const fromKeyboard = evt.detail === 0 && !evt.pointerType;\n this._openPopover({ fromKeyboard });\n } else {\n this._requestClose('click');\n }\n }\n\n /**\n * Handles `dblclick` events on the anchor element.\n */\n private _onAnchorDoubleClick(): void {\n if (!this.open) {\n this._openPopover();\n } else {\n this._requestClose('doubleclick');\n }\n }\n\n /**\n * Handles `mouseenter` events on the anchor element. This is used to determine if the popover should be opened.\n * \n * Only called when using the \"hover\" trigger type.\n */\n private _onAnchorMouseenter(): void {\n window.clearTimeout(this._hoverAnchorLeaveTimeout);\n if (!this._adapter.overlayElement.open) {\n if (!this._persistentHover) {\n this._adapter.addAnchorListener('mouseleave', this._anchorMouseleaveListener);\n }\n this._openPopover();\n }\n }\n\n /**\n * Handles `mouseleave` events on the anchor element. This is used to determine if the popover should be closed.\n * \n * Only called when using the \"hover\" trigger type.\n * \n * We use a timeout here to allow for the user to take an indirect path toward the popover.\n */\n private _onAnchorMouseleave(): void {\n this._startHoverListeners();\n\n this._hoverAnchorLeaveTimeout = window.setTimeout(() => {\n this._hoverAnchorLeaveTimeout = undefined;\n this._onHoverClose();\n }, this._hoverDismissDelay);\n }\n\n /**\n * Handles `mouseenter` events on the popover element. This is used to determine if the mouse has entered the popover element, \n * only after the mouse leaves the anchor element..\n */\n private _onPopoverMouseenter(): void {\n window.clearTimeout(this._hoverAnchorLeaveTimeout);\n window.clearTimeout(this._popoverMouseleaveTimeout);\n }\n\n /**\n * Handles `mouseleave` events on the popover element. This is used to determine if the mouse has moved outside of the popover.\n * \n * Only called when using the \"hover\" trigger type.\n * \n * We use a timeout here to allow for the user to take an indirect path toward an open child menu.\n * This allows for the popup to stay open while the user is moving their mouse to it to avoid closing immediately.\n */\n private _onPopoverMouseleave(): void {\n this._popoverMouseleaveTimeout = window.setTimeout(() => {\n this._popoverMouseleaveTimeout = undefined;\n this._onHoverClose();\n }, this._hoverDismissDelay);\n }\n\n /**\n * Handles `mousemove` events on the document. This is used to determine if the mouse has moved outside of the popover.\n * \n * This listener is only initialized once the mouse leaves the anchor element.\n * \n * Only called when using the \"hover\" trigger type.\n */\n private _onMousemove(evt: MouseEvent): void {\n this._currentHoverCoords = { x: evt.pageX, y: evt.pageY };\n }\n \n /**\n * Handles `focusin` events on the anchor element. This is used to determine if focus has been received on the anchor element when using the \"focus\" trigger type.\n */\n private _onAnchorFocus(_evt: FocusEvent): void {\n if (!this._adapter.overlayElement.open) {\n this._adapter.addAnchorListener('focusout', this._anchorBlurListener);\n this._openPopover({ fromKeyboard: true });\n }\n }\n\n /**\n * Handles `focusout` events on the anchor element. This is used to determine if focus has been moved outside of the anchor element when using the \"focus\" trigger type.\n */\n private _onAnchorBlur(evt: FocusEvent): void {\n if (!this._adapter.isChildElement(evt.relatedTarget as HTMLElement)) {\n // Focus was moved outside of the popover element, so let's assume we need to close\n this._requestClose('focus');\n } else {\n // Focus was moved to within the popover element, now we must listen for focus to move outside of the popover\n this._adapter.addHostListener('focusout', this._popoverBlurListener);\n }\n }\n\n private _onPopoverBlur({ relatedTarget }: FocusEvent): void {\n const popoverHasFocus = this._adapter.hasFocus();\n const anchorHasFocus = !(this._adapter.overlayElement.anchorElement instanceof VirtualElement) &&\n (this._adapter.overlayElement.anchorElement?.matches(':focus-within') ||\n this._adapter.overlayElement.anchorElement?.contains(relatedTarget as HTMLElement));\n if (!popoverHasFocus && !anchorHasFocus) {\n this._requestClose('focus');\n }\n }\n\n protected _onLongpress(): void {\n if (!this.open) {\n this._openPopover();\n }\n }\n\n private _onContextmenu(evt: MouseEvent): void {\n evt.preventDefault();\n this.anchorElement = VirtualElement.fromEvent(evt);\n if (!this.open) {\n this._openPopover();\n }\n }\n\n /**\n * Public API\n */\n\n public override get open(): boolean {\n return this._adapter.overlayElement.open;\n }\n public override set open(value: boolean) {\n if (this._adapter.overlayElement.open !== value) {\n if (value) {\n this._openPopover({ dispatchEvents: false });\n } else {\n this._closePopover();\n }\n }\n }\n\n public override get anchorElement(): HTMLElement | VirtualElement | null {\n return this._adapter.overlayElement.anchorElement;\n }\n public override set anchorElement(value: HTMLElement | VirtualElement | null) {\n if (this._adapter.overlayElement.anchorElement !== value) {\n if (this._adapter.isConnected) {\n this._removeTriggerListeners();\n }\n\n this._adapter.overlayElement.anchorElement = value;\n\n if (this._adapter.isConnected) {\n this._initializeTriggerListeners();\n }\n }\n }\n\n public override get anchor(): string | null {\n return this._anchor;\n }\n public override set anchor(value: string | null) {\n if (this._anchor !== value) {\n this._anchor = value;\n \n if (this._adapter.isConnected) {\n this._removeTriggerListeners();\n this._adapter.tryLocateAnchorElement(this._anchor);\n this._initializeTriggerListeners();\n }\n }\n }\n\n public get arrow(): boolean {\n return this._arrow;\n }\n public set arrow(value: boolean) {\n value = Boolean(value);\n if (this._arrow !== value) {\n this._arrow = value;\n this._adapter.toggleArrow(value);\n this._adapter.toggleHostAttribute(POPOVER_CONSTANTS.attributes.ARROW, value);\n }\n }\n\n public get animationType(): PopoverAnimationType {\n return this._animationType;\n }\n public set animationType(value: PopoverAnimationType) {\n if (this._animationType !== value) {\n this._animationType = value;\n this._adapter.toggleHostAttribute(POPOVER_CONSTANTS.attributes.ANIMATION_TYPE, !!this._animationType, this._animationType);\n }\n }\n\n public get triggerType(): PopoverTriggerType | PopoverTriggerType[] {\n return this._triggerTypes.length === 1 ? this._triggerTypes[0] : this._triggerTypes;\n }\n public set triggerType(value: PopoverTriggerType | PopoverTriggerType[]) {\n if (this._triggerTypes !== value) {\n if (this._adapter.isConnected) {\n this._removeTriggerListeners();\n }\n\n this._triggerTypes = Array.isArray(value) ? value : [value];\n this._triggerTypes = this._triggerTypes.filter(type => !!type);\n\n if (!this._triggerTypes.length) {\n this._triggerTypes = [POPOVER_CONSTANTS.defaults.TRIGGER_TYPE];\n }\n\n if (this._adapter.isConnected) {\n this._initializeTriggerListeners();\n }\n }\n }\n\n public get longpressDelay(): number {\n return this._longpressDelay;\n }\n public set longpressDelay(value: number) {\n if (this._longpressDelay !== value) {\n this._longpressDelay = value;\n this._adapter.setHostAttribute(POPOVER_CONSTANTS.attributes.LONGPRESS_DELAY, String(this._longpressDelay));\n }\n }\n\n public get persistentHover(): boolean {\n return this._persistentHover;\n }\n public set persistentHover(value: boolean) {\n value = Boolean(value);\n if (this._persistentHover !== value) {\n this._persistentHover = value;\n\n if (this._persistentHover && this._triggerTypes.includes('hover') && this._adapter.isConnected) {\n this._removeTriggerListeners();\n this._initializeTriggerListeners();\n }\n\n this._adapter.toggleHostAttribute(POPOVER_CONSTANTS.attributes.PERSISTENT_HOVER, value);\n }\n }\n\n public get hoverDismissDelay(): number {\n return this._hoverDismissDelay;\n }\n public set hoverDismissDelay(value: number) {\n if (this._hoverDismissDelay !== value) {\n this._hoverDismissDelay = value;\n this._adapter.setHostAttribute(POPOVER_CONSTANTS.attributes.HOVER_DISMISS_DELAY, String(this._hoverDismissDelay));\n }\n }\n}\n", "import { coerceBoolean, FoundationProperty } from '@tylertech/forge-core';\nimport { BaseComponent, IBaseComponent } from '../../core/base/base-component';\nimport { IOverlayComponent } from '../overlay';\nimport { IOverlayAwareFoundation } from './overlay-aware-foundation';\nimport { IOverlayOffset, OverlayFlipState, OverlayHideState, OverlayPlacement, OverlayPositionStrategy, OVERLAY_CONSTANTS } from '../overlay-constants';\nimport { PositionPlacement, VirtualElement } from '../../core/utils/position-utils';\nimport { IBaseOverlay } from './base-overlay';\n\nexport interface IOverlayAware extends IBaseComponent, IBaseOverlay {\n readonly overlay: IOverlayComponent;\n}\n\nexport abstract class OverlayAware<T extends IOverlayAwareFoundation> extends BaseComponent implements IOverlayAware {\n protected _foundation: T;\n\n constructor() {\n super();\n }\n\n public position(): void {\n this._foundation.position();\n }\n\n public attributeChangedCallback(name: string, _oldValue: string, newValue: string): void {\n switch (name) {\n case OVERLAY_CONSTANTS.observedAttributes.ANCHOR:\n this.anchor = newValue;\n break;\n case OVERLAY_CONSTANTS.observedAttributes.NO_ANCHOR:\n this.noAnchor = coerceBoolean(newValue);\n break;\n case OVERLAY_CONSTANTS.observedAttributes.OPEN:\n this.open = coerceBoolean(newValue);\n break;\n case OVERLAY_CONSTANTS.observedAttributes.INLINE:\n this.inline = coerceBoolean(newValue);\n break;\n case OVERLAY_CONSTANTS.observedAttributes.PLACEMENT:\n this.placement = newValue as OverlayPlacement;\n break;\n case OVERLAY_CONSTANTS.observedAttributes.POSITION_STRATEGY:\n this.positionStrategy = newValue as OverlayPositionStrategy;\n break;\n case OVERLAY_CONSTANTS.observedAttributes.HIDE:\n this.hide = newValue as OverlayHideState;\n break;\n case OVERLAY_CONSTANTS.observedAttributes.PERSISTENT:\n this.persistent = coerceBoolean(newValue);\n break;\n case OVERLAY_CONSTANTS.observedAttributes.SHIFT:\n this.shift = coerceBoolean(newValue);\n break;\n case OVERLAY_CONSTANTS.observedAttributes.FLIP:\n this.flip = newValue as OverlayFlipState;\n break;\n case OVERLAY_CONSTANTS.observedAttributes.BOUNDARY:\n this.boundary = newValue;\n break;\n }\n }\n\n public get overlay(): IOverlayComponent {\n return this._foundation.overlayElement;\n }\n\n @FoundationProperty()\n public declare anchorElement: HTMLElement | VirtualElement | null;\n\n @FoundationProperty()\n public declare anchor: string | null;\n\n @FoundationProperty()\n public declare noAnchor: boolean;\n\n @FoundationProperty()\n public declare open: boolean;\n\n @FoundationProperty()\n public declare inline: boolean;\n\n @FoundationProperty()\n public declare placement: OverlayPlacement;\n\n @FoundationProperty()\n public declare positionStrategy: OverlayPositionStrategy;\n\n @FoundationProperty()\n public declare offset: IOverlayOffset;\n\n @FoundationProperty()\n public declare shift: boolean;\n\n @FoundationProperty()\n public declare hide: OverlayHideState;\n\n @FoundationProperty()\n public declare persistent: boolean;\n\n @FoundationProperty()\n public declare flip: OverlayFlipState;\n\n @FoundationProperty()\n public declare boundary: string | null;\n\n @FoundationProperty()\n public declare boundaryElement: HTMLElement | null;\n\n @FoundationProperty()\n public declare fallbackPlacements: PositionPlacement[] | null;\n}\n", "import { attachShadowTemplate, coerceBoolean, coerceNumber, CustomElement, FoundationProperty } from '@tylertech/forge-core';\nimport { PopoverAdapter } from './popover-adapter';\nimport { IPopoverToggleEventData, PopoverAnimationType, PopoverTriggerType, POPOVER_CONSTANTS } from './popover-constants';\nimport { IPopoverFoundation, PopoverFoundation } from './popover-foundation';\nimport { OverlayComponent, OVERLAY_CONSTANTS } from '../overlay';\nimport { IOverlayAware, OverlayAware } from '../overlay/base/overlay-aware';\nimport { coerceStringToArray } from '../core/utils/utils';\nimport { IDismissible, tryDismiss, IDismissibleStackState } from '../core/utils/dismissible-stack';\n\nconst template = '<template><forge-overlay exportparts=\\\"root:overlay\\\"><div class=\\\"forge-popover\\\" part=\\\"surface\\\"><slot></slot></div></forge-overlay></template>';\nconst styles = '@-webkit-keyframes zoomin{from{-webkit-transform:scale(.8);transform:scale(.8)}to{-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomin{from{-webkit-transform:scale(.8);transform:scale(.8)}to{-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes slidein{from{-webkit-transform:translateX(var(--_popover-slidein-x)) translateY(var(--_popover-slidein-y));transform:translateX(var(--_popover-slidein-x)) translateY(var(--_popover-slidein-y))}to{-webkit-transform:translateX(0) translateY(0);transform:translateX(0) translateY(0)}}@keyframes slidein{from{-webkit-transform:translateX(var(--_popover-slidein-x)) translateY(var(--_popover-slidein-y));transform:translateX(var(--_popover-slidein-x)) translateY(var(--_popover-slidein-y))}to{-webkit-transform:translateX(0) translateY(0);transform:translateX(0) translateY(0)}}@-webkit-keyframes fadein{from{opacity:0}to{opacity:1}}@keyframes fadein{from{opacity:0}to{opacity:1}}:host{display:contents;--forge-theme-surface:var(--forge-theme-surface-bright, #ffffff)}:host([hidden]){display:none}forge-overlay{--_popover-background:var(--forge-popover-background, var(--forge-theme-surface-bright, #ffffff));--_popover-border-radius:var(--forge-popover-border-radius, var(--forge-shape-medium, 4px));--_popover-box-shadow:var(--forge-popover-box-shadow, var(--forge-theme-popup-elevation, var(--forge-theme-surface-bright-shadow)));--_popover-border-width:var(--forge-popover-border-width, 0);--_popover-border-style:var(--forge-popover-border-style, solid);--_popover-border-color:var(--forge-popover-border-color, var(--forge-theme-outline, #e0e0e0));--_popover-arrow-size:var(--forge-popover-arrow-size, 12px);--_popover-arrow-height:var(--forge-popover-arrow-height, var(--_popover-arrow-size));--_popover-arrow-width:var(--forge-popover-arrow-width, var(--_popover-arrow-size));--_popover-arrow-background-color:var(--forge-popover-arrow-background-color, var(--_popover-background));--_popover-arrow-top-rotation:var(--forge-popover-arrow-top-rotation, 135deg);--_popover-arrow-right-rotation:var(--forge-popover-arrow-right-rotation, 225deg);--_popover-arrow-bottom-rotation:var(--forge-popover-arrow-bottom-rotation, 315deg);--_popover-arrow-left-rotation:var(--forge-popover-arrow-left-rotation, 45deg);--_popover-arrow-border-width:var(--forge-popover-arrow-border-width, var(--forge-border-thin, 1px));--_popover-animation-timing:var(--forge-popover-animation-timing, var(--forge-animation-easing-decelerate, cubic-bezier(0, 0, 0, 1)));--_popover-zoom-duration:var(--forge-popover-zoom-duration, var(--forge-animation-duration-short3, 150ms));--_popover-zoom-timing:var(--forge-popover-zoom-timing, var(--_popover-animating-timing));--_popover-slide-duration:var(--forge-popover-slide-duration, var(--forge-animation-duration-short3, 150ms));--_popover-slide-timing:var(--forge-popover-slide-timing, var(--_popover-animating-timing));--_popover-slide-offset:var(--forge-popover-slide-offset, 24px);--_popover-fade-duration:var(--forge-popover-fade-duration, var(--forge-animation-duration-medium2, 300ms));--_popover-fade-timing:var(--forge-popover-fade-timing, var(--_popover-animating-timing));--_popover-position-inline-start:var(--forge-popover-position-inline-start, auto);--_popover-position-inline-end:var(--forge-popover-position-inline-end, auto);--_popover-position-block-start:var(--forge-popover-position-block-start, auto);--_popover-position-block-end:var(--forge-popover-position-block-end, auto)}.forge-popover{--_popover-arrow-translate-x:0;--_popover-arrow-translate-y:0;--_popover-arrow-rotation:0;--_popover-slidein-x:0;--_popover-slidein-y:0;--_popover-zoomin-origin:50% 50% 0;--_popover-arrow-clip-path:polygon(calc(var(--_popover-border-width) * -1) calc(var(--_popover-border-width) * -1), calc(100% + var(--_popover-border-width)) calc(var(--_popover-border-width) * -1), calc(100% + var(--_popover-border-width)) calc(100% + var(--_popover-border-width)))}.forge-popover{position:relative;background:var(--_popover-background);border-radius:var(--_popover-border-radius);-webkit-box-shadow:var(--_popover-box-shadow);box-shadow:var(--_popover-box-shadow);border-width:var(--_popover-border-width);border-style:var(--_popover-border-style);border-color:var(--_popover-border-color)}:host([open][no-anchor]) forge-overlay{--forge-overlay-position-inline-start:var(--_popover-position-inline-start);--forge-overlay-position-inline-end:var(--_popover-position-inline-end);--forge-overlay-position-block-start:var(--_popover-position-block-start);--forge-overlay-position-block-end:var(--_popover-position-block-end)}:host([arrow]) .forge-popover{--_popover-border-width:var(--_popover-arrow-border-width)}:host([arrow]) .arrow{position:absolute;background-color:var(--_popover-arrow-background-color);height:var(--_popover-arrow-height);width:var(--_popover-arrow-width);-webkit-box-shadow:var(--_popover-box-shadow);box-shadow:var(--_popover-box-shadow);border-width:var(--_popover-border-width);border-style:var(--_popover-border-style);border-color:var(--_popover-border-color);-webkit-transform:translate(var(--_popover-arrow-translate-x),var(--_popover-arrow-translate-y)) rotate(var(--_popover-arrow-rotation));transform:translate(var(--_popover-arrow-translate-x),var(--_popover-arrow-translate-y)) rotate(var(--_popover-arrow-rotation));-webkit-clip-path:var(--_popover-arrow-clip-path);clip-path:var(--_popover-arrow-clip-path)}:host([arrow]) forge-overlay[position-placement^=top] .arrow{--_popover-arrow-translate-y:var(--forge-popover-arrow-translate-y, calc(var(--_popover-border-width) * -1));--_popover-arrow-rotation:var(--forge-popover-arrow-rotation, var(--_popover-arrow-top-rotation))}:host([arrow]) forge-overlay[position-placement^=right] .arrow{--_popover-arrow-translate-x:var(--forge-popover-arrow-translate-x, var(--_popover-border-width));--_popover-arrow-rotation:var(--forge-popover-arrow-rotation, var(--_popover-arrow-right-rotation))}:host([arrow]) forge-overlay[position-placement^=bottom] .arrow{--_popover-arrow-translate-y:var(--forge-popover-arrow-translate-y, var(--_popover-border-width));--_popover-arrow-rotation:var(--forge-popover-arrow-rotation, var(--_popover-arrow-bottom-rotation))}:host([arrow]) forge-overlay[position-placement^=left] .arrow{--_popover-arrow-translate-x:var(--forge-popover-arrow-translate-x, calc(var(--_popover-border-width) * -1));--_popover-arrow-rotation:var(--forge-popover-arrow-rotation, var(--_popover-arrow-left-rotation))}:host(:not([animation-type])) .forge-popover,:host([animation-type=zoom]) .forge-popover{-webkit-animation-duration:var(--_popover-zoom-duration);animation-duration:var(--_popover-zoom-duration);-webkit-animation-timing-function:var(--_popover-zoom-timing);animation-timing-function:var(--_popover-zoom-timing);-webkit-animation-name:fadein,zoomin;animation-name:fadein,zoomin;-webkit-transform-origin:var(--_popover-zoomin-origin);transform-origin:var(--_popover-zoomin-origin)}:host(:not([animation-type])) forge-overlay[open][position-placement^=top]:not([position-placement*=\\\"-\\\"]) .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=top]:not([position-placement*=\\\"-\\\"]) .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, bottom center)}:host(:not([animation-type])) forge-overlay[open][position-placement^=top][position-placement$=-start] .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=top][position-placement$=-start] .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, bottom left)}:host(:not([animation-type])) forge-overlay[open][position-placement^=top][position-placement$=-end] .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=top][position-placement$=-end] .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, bottom right)}:host(:not([animation-type])) forge-overlay[open][position-placement^=right]:not([position-placement*=\\\"-\\\"]) .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=right]:not([position-placement*=\\\"-\\\"]) .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, left center)}:host(:not([animation-type])) forge-overlay[open][position-placement^=right][position-placement$=-start] .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=right][position-placement$=-start] .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, left top)}:host(:not([animation-type])) forge-overlay[open][position-placement^=right][position-placement$=-end] .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=right][position-placement$=-end] .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, left bottom)}:host(:not([animation-type])) forge-overlay[open][position-placement^=bottom]:not([position-placement*=\\\"-\\\"]) .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=bottom]:not([position-placement*=\\\"-\\\"]) .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, top center)}:host(:not([animation-type])) forge-overlay[open][position-placement^=bottom][position-placement$=-start] .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=bottom][position-placement$=-start] .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, top left)}:host(:not([animation-type])) forge-overlay[open][position-placement^=bottom][position-placement$=-end] .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=bottom][position-placement$=-end] .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, top right)}:host(:not([animation-type])) forge-overlay[open][position-placement^=left]:not([position-placement*=\\\"-\\\"]) .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=left]:not([position-placement*=\\\"-\\\"]) .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, right center)}:host(:not([animation-type])) forge-overlay[open][position-placement^=left][position-placement$=-start] .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=left][position-placement$=-start] .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, right top)}:host(:not([animation-type])) forge-overlay[open][position-placement^=left][position-placement$=-end] .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=left][position-placement$=-end] .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, right bottom)}:host([animation-type=slide]) .forge-popover{-webkit-animation-duration:var(--_popover-slide-duration);animation-duration:var(--_popover-slide-duration);-webkit-animation-timing-function:var(--_popover-slide-timing);animation-timing-function:var(--_popover-slide-timing);-webkit-animation-name:fadein,slidein;animation-name:fadein,slidein}:host([animation-type=slide]) forge-overlay[open][position-placement^=top] .forge-popover{--_popover-slidein-y:var(--forge-popover-slidein-y, var(--_popover-slide-offset))}:host([animation-type=slide]) forge-overlay[open][position-placement^=right] .forge-popover{--_popover-slidein-x:var(--forge-popover-slidein-x, calc(var(--_popover-slide-offset) * -1))}:host([animation-type=slide]) forge-overlay[open][position-placement^=bottom] .forge-popover{--_popover-slidein-y:var(--forge-popover-slidein-y, calc(var(--_popover-slide-offset) * -1))}:host([animation-type=slide]) forge-overlay[open][position-placement^=left] .forge-popover{--_popover-slidein-x:var(--forge-popover-slidein-x, var(--_popover-slide-offset))}:host([animation-type=fade]) .forge-popover{-webkit-animation-duration:var(--_popover-fade-duration);animation-duration:var(--_popover-fade-duration);-webkit-animation-timing-function:var(--_popover-fade-timing);animation-timing-function:var(--_popover-fade-timing);-webkit-animation-name:fadein;animation-name:fadein}';\n\nexport interface IPopoverComponent extends IOverlayAware, IDismissible {\n arrow: boolean;\n animationType: PopoverAnimationType;\n triggerType: PopoverTriggerType | PopoverTriggerType[];\n longpressDelay: number;\n persistentHover: boolean;\n hoverDismissDelay: number;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-popover': IPopoverComponent;\n }\n\n interface HTMLElementEventMap {\n 'forge-popover-beforetoggle': CustomEvent<IPopoverToggleEventData>;\n 'forge-popover-toggle': CustomEvent<IPopoverToggleEventData>;\n }\n}\n\n/**\n * @tag forge-popover\n * \n * @summary Popovers are used to render content in an element that is above all other content on the page.\n * \n * @property {boolean} arrow - Whether or not the popover should render an arrow.\n * @property {PopoverAnimationType} animationType - The animation type to use for the popover. Valid values are `'none'`, `'fade'`, `'slide'`, and `'zoom'` (default).\n * @property {PopoverTriggerType | PopoverTriggerType[]} triggerType - The trigger type(s) to use for the popover. Valid values are `'click'` (default), `'hover'`, `'focus'`, and `'longpress'`. Multiple can be specified.\n * @property {number} longpressDelay - The delay in milliseconds before a longpress event is detected.\n * @property {boolean} persistentHover - Whether or not the popover should remain open when the user hovers outside the popover.\n * @property {number} hoverDismissDelay - The delay in milliseconds before the popover is dismissed when the user hovers outside of the popover.\n * \n * @attribute {string} arrow - Whether or not the popover should render an arrow.\n * @attribute {string} animation-type - The animation type to use for the popover. Valid values are `'none'`, `'fade'`, `'slide'`, and `'zoom'` (default).\n * @attribute {string} trigger-type - The trigger type(s) to use for the popover. Valid values are `'click'` (default), `'hover'`, `'focus'`, and `'longpress'`. Multiple can be specified.\n * @attribute {string} longpress-delay - The delay in milliseconds before a longpress event is detected.\n * @attribute {string} persistent-hover - Whether or not the popover should remain open when the user hovers outside the popover.\n * @attribute {string} hover-dismiss-delay - The delay in milliseconds before the popover is dismissed when the user hovers outside of the popover.\n * \n * @event {CustomEvent<IPopoverToggleEventData} forge-popover-beforetoggle - Dispatches before the popover is toggled, and is cancelable.\n * @event {CustomEvent<IPopoverToggleEventData} forge-popover-toggle - Dispatches after the popover is toggled.\n * \n * @cssproperty --forge-popover-background - The background color of the popover surface.\n * @cssproperty --forge-popover-border-radius - The border radius of the popover surface.\n * @cssproperty --forge-popover-box-shadow - The box shadow of the popover surface.\n * @cssproperty --forge-popover-border-width - The border width of the popover surface.\n * @cssproperty --forge-popover-border-style - The border style of the popover surface.\n * @cssproperty --forge-popover-border-color - The border color of the popover surface.\n * @cssproperty --forge-popover-arrow-size - The size of the arrow.\n * @cssproperty --forge-popover-arrow-height - The height of the arrow.\n * @cssproperty --forge-popover-arrow-width - The width of the arrow.\n * @cssproperty --forge-popover-arrow-background-color - The background color of the arrow. Defaults to the background color of the popover surface.\n * @cssproperty --forge-popover-arrow-top-rotation - The rotation of the arrow when the popover is placed on the top.\n * @cssproperty --forge-popover-arrow-right-rotation - The rotation of the arrow when the popover is placed on the right.\n * @cssproperty --forge-popover-arrow-bottom-rotation - The rotation of the arrow when the popover is placed on the bottom.\n * @cssproperty --forge-popover-arrow-left-rotation - The rotation of the arrow when the popover is placed on the left.\n * @cssproperty --forge-popover-arrow-border-width - The border width of the popover surface and arrow when an arrow is applied.\n * @cssproperty --forge-popover-arrow-clip-path - The clip path to use for the arrow element.\n * @cssproperty --forge-popover-animation-timing - The animation timing function to use for the popover animation.\n * @cssproperty --forge-popover-zoom-duration - The duration of the zoom animation.\n * @cssproperty --forge-popover-zoom-timing - The timing function to use for the zoom animation.\n * @cssproperty --forge-popover-slide-duration - The duration of the slide animation.\n * @cssproperty --forge-popover-slide-timing - The timing function to use for the slide animation.\n * @cssproperty --forge-popover-slide-offset - The start offset to use for the slide animation.\n * @cssproperty --forge-popover-fade-duration - The duration of the fade animation.\n * @cssproperty --forge-popover-fade-timing - The timing function to use for the fade animation.\n * @cssproperty --forge-popover-position-block-start - The `block-start` position of the popover.\n * @cssproperty --forge-popover-position-block-end - The `block-end` position of the popover.\n * @cssproperty --forge-popover-position-inline-start - The `inline-start` position of the popover.\n * @cssproperty --forge-popover-position-inline-end - The `inline-end` position of the popover.\n * \n * @slot - The content to render inside the popover.\n * \n * @csspart overlay - The overlay root element.\n * @csspart surface - The surface container element for the slotted content.\n */\n@CustomElement({\n name: POPOVER_CONSTANTS.elementName,\n dependencies: [OverlayComponent]\n})\nexport class PopoverComponent extends OverlayAware<IPopoverFoundation> implements IPopoverComponent {\n public static get observedAttributes(): string[] {\n return [\n ...Object.values(OVERLAY_CONSTANTS.observedAttributes),\n POPOVER_CONSTANTS.attributes.ARROW,\n POPOVER_CONSTANTS.attributes.ANIMATION_TYPE,\n POPOVER_CONSTANTS.attributes.TRIGGER_TYPE,\n POPOVER_CONSTANTS.attributes.LONGPRESS_DELAY,\n POPOVER_CONSTANTS.attributes.PERSISTENT_HOVER,\n POPOVER_CONSTANTS.attributes.HOVER_DISMISS_DELAY\n ];\n }\n\n public [tryDismiss](state: IDismissibleStackState): boolean {\n return this._foundation.dispatchBeforeToggleEvent(state);\n }\n\n constructor() {\n super();\n attachShadowTemplate(this, template, styles);\n this._foundation = new PopoverFoundation(new PopoverAdapter(this));\n }\n\n public connectedCallback(): void {\n this._foundation.initialize();\n }\n\n public disconnectedCallback(): void {\n this._foundation.destroy();\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n switch (name) {\n case POPOVER_CONSTANTS.attributes.ARROW:\n this.arrow = coerceBoolean(newValue);\n return;\n case POPOVER_CONSTANTS.attributes.ANIMATION_TYPE:\n this.animationType = newValue as PopoverAnimationType;\n return;\n case POPOVER_CONSTANTS.attributes.TRIGGER_TYPE:\n this.triggerType = newValue?.trim() ? coerceStringToArray<PopoverTriggerType>(newValue) : POPOVER_CONSTANTS.defaults.TRIGGER_TYPE;\n return;\n case POPOVER_CONSTANTS.attributes.LONGPRESS_DELAY:\n this.longpressDelay = coerceNumber(newValue);\n return;\n case POPOVER_CONSTANTS.attributes.PERSISTENT_HOVER:\n this.persistentHover = coerceBoolean(newValue);\n return;\n case POPOVER_CONSTANTS.attributes.HOVER_DISMISS_DELAY:\n this.hoverDismissDelay = coerceNumber(newValue);\n return;\n }\n super.attributeChangedCallback(name, oldValue, newValue);\n }\n\n @FoundationProperty()\n public declare arrow: boolean;\n\n @FoundationProperty()\n public declare animationType: PopoverAnimationType;\n\n @FoundationProperty()\n public declare triggerType: PopoverTriggerType | PopoverTriggerType[];\n\n @FoundationProperty()\n public declare longpressDelay: number;\n\n @FoundationProperty()\n public declare persistentHover: boolean;\n\n @FoundationProperty()\n public declare hoverDismissDelay: number;\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { PopoverComponent } from './popover';\n\nexport * from './popover-adapter';\nexport * from './popover-constants';\nexport * from './popover-foundation';\nexport * from './popover';\n\nexport function definePopoverComponent(): void {\n defineCustomElement(PopoverComponent);\n}\n"],
5
- "mappings": "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",
6
- "names": ["OverlayAwareAdapter", "BaseAdapter", "component", "elementName", "COMPONENT_NAME_PREFIX", "attributes", "classes", "selectors", "parts", "events", "defaults", "POPOVER_CONSTANTS", "POPOVER_HOVER_TIMEOUT", "PopoverAdapter", "OverlayAwareAdapter", "component", "getShadowElement", "POPOVER_CONSTANTS", "OVERLAY_CONSTANTS", "id", "type", "listener", "_a", "VirtualElement", "newState", "value", "element", "autofocusElement", "targetEl", "OverlayAwareFoundation", "_adapter", "evt", "OVERLAY_CONSTANTS", "value", "Deferred", "resolve", "reject", "param", "reason", "tryDismiss", "DISMISSIBLE_STACK_INSTANCE_KEY", "DismissibleStack", "_DismissibleStack", "_a", "_b", "el", "state", "elements", "elementsAfter", "element", "dismissState", "Deferred", "task", "BaseClass", "WithLongpressListener", "OverlayAwareFoundation", "PopoverFoundation", "adapter", "POPOVER_CONSTANTS", "POPOVER_HOVER_TIMEOUT", "evt", "reason", "previousFocusedEl", "dispatchEvents", "fromKeyboard", "DismissibleStack", "types", "triggerInitializers", "VirtualElement", "triggerType", "_a", "triggerRemovers", "mouseElement", "_evt", "relatedTarget", "_b", "popoverHasFocus", "anchorHasFocus", "value", "type", "OverlayAware", "BaseComponent", "name", "_oldValue", "newValue", "OVERLAY_CONSTANTS", "coerceBoolean", "__decorateClass", "FoundationProperty", "template", "styles", "PopoverComponent", "OverlayAware", "attachShadowTemplate", "PopoverFoundation", "PopoverAdapter", "OVERLAY_CONSTANTS", "POPOVER_CONSTANTS", "tryDismiss", "state", "name", "oldValue", "newValue", "coerceBoolean", "coerceStringToArray", "coerceNumber", "__decorateClass", "FoundationProperty", "CustomElement", "OverlayComponent", "definePopoverComponent", "defineCustomElement", "PopoverComponent"]
7
- }
@@ -1,7 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2023 Tyler Technologies, Inc.
4
- * License: Apache-2.0
5
- */
6
- import{a as n}from"./chunk.3CTKWBV2.js";import{a as g}from"./chunk.ZY3ETQ3D.js";import{a as l}from"./chunk.NVUMRW44.js";import{a as I,b as S}from"./chunk.UVXKHQQZ.js";import{a as T,e as E,f as _,k as f}from"./chunk.TPXXHX5J.js";import{g as h,q as O}from"./chunk.HZUQXCOQ.js";import{k as C,l as c}from"./chunk.J2M2MXP2.js";import{d as s}from"./chunk.M3QDAYD2.js";var A=`${S}product-icon`,d={PRODUCT_ICON_BACKGROUND:"forge-product-icon__background",PRODUCT_ICON:"forge-product-icon__icon",PRODUCT_TEXT:"forge-product-icon__text"},x={PRODUCT_ICON_BACKGROUND:`.${d.PRODUCT_ICON_BACKGROUND}`,PRODUCT_ICON:`.${d.PRODUCT_ICON}`,PRODUCT_TEXT:`.${d.PRODUCT_TEXT}`,SLOT:"slot"},R={COLOR:"color",SIZE:"size",SHADOW:"shadow",ITERATIONS:"iterations"},v={DEFAULT_SIZE:64,DEFAULT_ITERATIONS:32,ACCESSIBILITY_COLOR_THRESHOLD:300,ICON_FONT_SIZE_MODIFIER:.75,TEXT_FONT_SIZE_MODIFIER:.5},N={DEFAULT_COLOR_VALUE:"indigo-500",DEFAULT_COLOR_PALETTE:"indigo",DEFAULT_COLOR_SHADE:500,DEFAULT_BACKGROUND_COLOR:n.indigoPalette[500]},t={elementName:A,attributes:R,classes:d,selectors:x,numbers:v,strings:N};var p=class extends g{constructor(e){super(e);this._backgroundElement=_(e,t.selectors.PRODUCT_ICON_BACKGROUND),this._iconElement=_(e,t.selectors.PRODUCT_ICON),this._textElement=_(e,t.selectors.PRODUCT_TEXT)}setBackgroundColor(e){this._backgroundElement.style.backgroundColor=e}setIconColor(e){this._iconElement.style.color=e,this._textElement.style.color=e}setElementSize(e){this._backgroundElement.style.height=`${e}px`,this._backgroundElement.style.width=`${e}px`}setFontSize(e){let a=e*t.numbers.TEXT_FONT_SIZE_MODIFIER,r=e*t.numbers.ICON_FONT_SIZE_MODIFIER;this._iconElement.style.setProperty("--forge-product-icon-font-size",`${r}px`),this._textElement.style.setProperty("--forge-product-icon-font-size",`${a}px`),this._iconElement.style.fontSize=`var(--forge-product-icon-font-size, ${r}px)`,this._textElement.style.fontSize=`var(--forge-product-icon-font-size, ${a}px)`}removeIconClass(e){h(e,this._iconElement),h(e,this._textElement)}setTextShadow(e,a,r){if(e){let b=O(a,r);this._iconElement.style.textShadow=b,this._textElement.style.textShadow=b}else this._iconElement.style.removeProperty("text-shadow"),this._textElement.style.removeProperty("text-shadow")}};var u=class{constructor(o){this._adapter=o;this._colorValue=t.strings.DEFAULT_COLOR_VALUE;this._colorPalette=t.strings.DEFAULT_COLOR_PALETTE;this._colorShade=t.strings.DEFAULT_COLOR_SHADE;this._size=t.numbers.DEFAULT_SIZE;this._shadow=!0;this._backgroundColor=t.strings.DEFAULT_BACKGROUND_COLOR;this._iterations=t.numbers.DEFAULT_ITERATIONS;this._usingCustomIterations=!1}initialize(){this._adapter.setElementSize(this._size),this._updateFontSize(),this._parseColor(),this._render()}_parseColor(){this._colorValue.includes("-")?(this._colorPalette=this._colorValue.split("-")[0],this._colorShade=c(this._colorValue.split("-")[1])):(this._colorPalette=this._colorValue,this._colorShade=t.strings.DEFAULT_COLOR_SHADE)}_updateSize(){this._adapter.setElementSize(this._size),this._usingCustomIterations||(this._iterations=this._size/2,this._updateShadow())}_updateFontSize(){this._adapter.setFontSize(this._size)}_updateShadow(){this._shadow&&this._adapter.setTextShadow(this._shadow,this._iterations,this._shadowColor)}_render(){if(!this._colorValue)return;let o=this._colorShade<=t.numbers.ACCESSIBILITY_COLOR_THRESHOLD?"#000000":"#ffffff",e=this._colorShade+300;n[`${this._colorPalette}Palette`]||(this._colorPalette=t.strings.DEFAULT_COLOR_PALETTE),this._backgroundColor=n[`${this._colorPalette}Palette`][this._colorShade],this._shadowColor=n[`${this._colorPalette}Palette`][e],this._adapter.setBackgroundColor(this._backgroundColor),this._adapter.setIconColor(o),this._updateShadow()}get color(){return this._colorValue}set color(o){this._colorValue!==o&&(this._colorValue=o,this._parseColor(),this._render(),this._adapter.setHostAttribute(t.attributes.COLOR,this._colorValue))}get size(){return this._size}set size(o){this._size!==o&&(this._size=o,this._updateSize(),this._updateFontSize(),this._adapter.setHostAttribute(t.attributes.SIZE,this._size.toString()))}get shadow(){return this._shadow}set shadow(o){this._shadow!==o&&(this._shadow=o,this._adapter.setTextShadow(this._shadow,this._iterations,this._shadowColor),this._shadow?this._adapter.setHostAttribute(t.attributes.SHADOW,""):this._adapter.removeIconClass(t.attributes.SHADOW))}get iterations(){return this._iterations}set iterations(o){this._iterations!==o&&(this._usingCustomIterations=!0,this._iterations=o,this._updateShadow(),this._adapter.setHostAttribute(t.attributes.ITERATIONS,this._iterations.toString()))}};var D='<template><div class="forge-product-icon__background" part="root"><div class="forge-product-icon__container" part="container"><span class="forge-product-icon__icon" part="icon-container"><slot></slot></span><span class="forge-product-icon__text" part="text-container"><slot name="text"></slot></span></div></div></template>',L=".forge-product-icon__background{border-radius:50%;border-radius:var(--forge-product-icon-border-radius,50%);height:64px;width:64px;overflow:hidden}.forge-product-icon__container{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;height:100%;width:100%}.forge-product-icon__icon ::slotted(*),.forge-product-icon__text ::slotted(*){display:-webkit-box!important;display:flex!important;color:#fff!important;font-size:var(--forge-product-icon-font-size, 48px)!important}:host{display:inline-block}:host([hidden]){display:none}",i=class extends f{constructor(){super();E(this,D,L),this._foundation=new u(new p(this))}static get observedAttributes(){return[t.attributes.COLOR,t.attributes.SIZE,t.attributes.SHADOW,t.attributes.ITERATIONS]}connectedCallback(){this._foundation.initialize()}attributeChangedCallback(e,a,r){switch(e){case t.attributes.COLOR:this.color=r;break;case t.attributes.SIZE:this.size=c(r);break;case t.attributes.SHADOW:this.shadow=C(r);break;case t.attributes.ITERATIONS:this.iterations=c(r);break}}};s([l()],i.prototype,"color",2),s([l()],i.prototype,"size",2),s([l()],i.prototype,"shadow",2),s([l()],i.prototype,"iterations",2),i=s([I({name:t.elementName})],i);function it(){T(i)}export{t as a,p as b,u as c,i as d,it as e};
7
- //# sourceMappingURL=chunk.WXFJYCGO.js.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/product-icon/product-icon-constants.ts", "../../src/product-icon/product-icon-adapter.ts", "../../src/product-icon/product-icon-foundation.ts", "../../src/product-icon/product-icon.ts", "../../src/product-icon/index.ts"],
4
- "sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../constants';\r\nimport { COLOR_CONSTANTS } from '../theme/color-constants';\r\n\r\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}product-icon`;\r\n\r\nconst classes = {\r\n PRODUCT_ICON_BACKGROUND: 'forge-product-icon__background',\r\n PRODUCT_ICON: 'forge-product-icon__icon',\r\n PRODUCT_TEXT: 'forge-product-icon__text'\r\n};\r\n\r\nconst selectors = {\r\n PRODUCT_ICON_BACKGROUND: `.${classes.PRODUCT_ICON_BACKGROUND}`,\r\n PRODUCT_ICON: `.${classes.PRODUCT_ICON}`,\r\n PRODUCT_TEXT: `.${classes.PRODUCT_TEXT}`,\r\n SLOT: 'slot'\r\n};\r\n\r\nconst attributes = {\r\n COLOR: 'color',\r\n SIZE: 'size',\r\n SHADOW: 'shadow',\r\n ITERATIONS: 'iterations'\r\n};\r\n\r\nconst numbers = {\r\n DEFAULT_SIZE: 64,\r\n DEFAULT_ITERATIONS: 32,\r\n ACCESSIBILITY_COLOR_THRESHOLD: 300,\r\n ICON_FONT_SIZE_MODIFIER: 0.75,\r\n TEXT_FONT_SIZE_MODIFIER: 0.5\r\n};\r\n\r\nconst strings = {\r\n DEFAULT_COLOR_VALUE: 'indigo-500',\r\n DEFAULT_COLOR_PALETTE: 'indigo',\r\n DEFAULT_COLOR_SHADE: 500,\r\n DEFAULT_BACKGROUND_COLOR: COLOR_CONSTANTS.indigoPalette[500]\r\n};\r\n\r\nexport const PRODUCT_ICON_CONSTANTS = {\r\n elementName,\r\n attributes,\r\n classes,\r\n selectors,\r\n numbers,\r\n strings\r\n};\r\n", "import { addClass, generateTextShadow, getShadowElement, Platform, removeClass } from '@tylertech/forge-core';\r\nimport { BaseAdapter, IBaseAdapter } from '../core/base/base-adapter';\r\nimport { IProductIconComponent } from './product-icon';\r\nimport { PRODUCT_ICON_CONSTANTS } from './product-icon-constants';\r\n\r\nexport interface IProductIconAdapter extends IBaseAdapter {\r\n setBackgroundColor(color: string): void;\r\n setIconColor(color: string): void;\r\n setElementSize(value: number): void;\r\n setFontSize(value: number): void;\r\n setTextShadow(hasShadow: boolean, iterations: number, shadowColor: string): void;\r\n removeIconClass(classes: string | string[]): void;\r\n}\r\n\r\nexport class ProductIconAdapter extends BaseAdapter<IProductIconComponent> implements IProductIconAdapter {\r\n private _backgroundElement: HTMLElement;\r\n private _iconElement: HTMLElement;\r\n private _textElement: HTMLElement;\r\n\r\n constructor(component: IProductIconComponent) {\r\n super(component);\r\n this._backgroundElement = getShadowElement(component, PRODUCT_ICON_CONSTANTS.selectors.PRODUCT_ICON_BACKGROUND);\r\n this._iconElement = getShadowElement(component, PRODUCT_ICON_CONSTANTS.selectors.PRODUCT_ICON);\r\n this._textElement = getShadowElement(component, PRODUCT_ICON_CONSTANTS.selectors.PRODUCT_TEXT);\r\n }\r\n\r\n public setBackgroundColor(color: string): void {\r\n this._backgroundElement.style.backgroundColor = color;\r\n }\r\n\r\n public setIconColor(color: string): void {\r\n this._iconElement.style.color = color;\r\n this._textElement.style.color = color;\r\n }\r\n\r\n public setElementSize(value: number): void {\r\n this._backgroundElement.style.height = `${value}px`;\r\n this._backgroundElement.style.width = `${value}px`;\r\n }\r\n\r\n public setFontSize(value: number): void {\r\n const textFontSize = value * PRODUCT_ICON_CONSTANTS.numbers.TEXT_FONT_SIZE_MODIFIER;\r\n const iconFontSize = value * PRODUCT_ICON_CONSTANTS.numbers.ICON_FONT_SIZE_MODIFIER;\r\n\r\n this._iconElement.style.setProperty('--forge-product-icon-font-size', `${iconFontSize}px`);\r\n this._textElement.style.setProperty('--forge-product-icon-font-size', `${textFontSize}px`);\r\n\r\n this._iconElement.style.fontSize = `var(--forge-product-icon-font-size, ${iconFontSize}px)`;\r\n this._textElement.style.fontSize = `var(--forge-product-icon-font-size, ${textFontSize}px)`;\r\n }\r\n\r\n public removeIconClass(classes: string | string[]): void {\r\n removeClass(classes, this._iconElement);\r\n removeClass(classes, this._textElement);\r\n }\r\n\r\n public setTextShadow(hasShadow: boolean, iterations: number, shadowColor: string): void {\r\n if (hasShadow) {\r\n const shadow = generateTextShadow(iterations, shadowColor);\r\n this._iconElement.style.textShadow = shadow;\r\n this._textElement.style.textShadow = shadow;\r\n } else {\r\n this._iconElement.style.removeProperty('text-shadow');\r\n this._textElement.style.removeProperty('text-shadow');\r\n }\r\n }\r\n}\r\n", "import { ICustomElementFoundation, coerceNumber } from '@tylertech/forge-core';\r\n\r\nimport { COLOR_CONSTANTS } from '../theme';\r\nimport { IProductIconAdapter } from './product-icon-adapter';\r\nimport { PRODUCT_ICON_CONSTANTS } from './product-icon-constants';\r\n\r\nexport interface IProductIconFoundation extends ICustomElementFoundation {\r\n color: string;\r\n size: number;\r\n shadow: boolean;\r\n iterations: number;\r\n}\r\n\r\nexport class ProductIconFoundation implements IProductIconFoundation {\r\n private _colorValue = PRODUCT_ICON_CONSTANTS.strings.DEFAULT_COLOR_VALUE;\r\n private _colorPalette = PRODUCT_ICON_CONSTANTS.strings.DEFAULT_COLOR_PALETTE;\r\n private _colorShade = PRODUCT_ICON_CONSTANTS.strings.DEFAULT_COLOR_SHADE;\r\n private _size = PRODUCT_ICON_CONSTANTS.numbers.DEFAULT_SIZE;\r\n private _shadow = true;\r\n private _backgroundColor = PRODUCT_ICON_CONSTANTS.strings.DEFAULT_BACKGROUND_COLOR;\r\n private _shadowColor: string;\r\n private _iterations = PRODUCT_ICON_CONSTANTS.numbers.DEFAULT_ITERATIONS;\r\n private _usingCustomIterations = false;\r\n\r\n constructor(private _adapter: IProductIconAdapter) {}\r\n\r\n public initialize(): void {\r\n this._adapter.setElementSize(this._size);\r\n this._updateFontSize();\r\n this._parseColor();\r\n this._render();\r\n }\r\n\r\n private _parseColor(): void {\r\n if (this._colorValue.includes('-')) {\r\n this._colorPalette = this._colorValue.split('-')[0];\r\n this._colorShade = coerceNumber(this._colorValue.split('-')[1]);\r\n } else {\r\n this._colorPalette = this._colorValue;\r\n this._colorShade = PRODUCT_ICON_CONSTANTS.strings.DEFAULT_COLOR_SHADE;\r\n }\r\n }\r\n\r\n private _updateSize(): void {\r\n this._adapter.setElementSize(this._size);\r\n\r\n // If not using a custom iteration value, then we need to adjust the shadow length\r\n if (!this._usingCustomIterations) {\r\n this._iterations = this._size / 2;\r\n this._updateShadow();\r\n }\r\n }\r\n\r\n private _updateFontSize(): void {\r\n this._adapter.setFontSize(this._size);\r\n }\r\n\r\n private _updateShadow(): void {\r\n if (this._shadow) {\r\n this._adapter.setTextShadow(this._shadow, this._iterations, this._shadowColor);\r\n }\r\n }\r\n\r\n private _render(): void {\r\n if (!this._colorValue) {\r\n return;\r\n }\r\n\r\n const iconColor = this._colorShade <= PRODUCT_ICON_CONSTANTS.numbers.ACCESSIBILITY_COLOR_THRESHOLD ? '#000000' : '#ffffff';\r\n const shadowIncrement = this._colorShade + 300;\r\n\r\n if (!COLOR_CONSTANTS[`${this._colorPalette}Palette`]) {\r\n this._colorPalette = PRODUCT_ICON_CONSTANTS.strings.DEFAULT_COLOR_PALETTE;\r\n }\r\n\r\n this._backgroundColor = COLOR_CONSTANTS[`${this._colorPalette}Palette`][this._colorShade];\r\n this._shadowColor = COLOR_CONSTANTS[`${this._colorPalette}Palette`][shadowIncrement];\r\n\r\n this._adapter.setBackgroundColor(this._backgroundColor);\r\n this._adapter.setIconColor(iconColor);\r\n this._updateShadow();\r\n }\r\n\r\n public get color(): string {\r\n return this._colorValue;\r\n }\r\n public set color(value: string) {\r\n if (this._colorValue !== value) {\r\n this._colorValue = value;\r\n this._parseColor();\r\n this._render();\r\n this._adapter.setHostAttribute(PRODUCT_ICON_CONSTANTS.attributes.COLOR, this._colorValue);\r\n }\r\n }\r\n\r\n public get size(): number {\r\n return this._size;\r\n }\r\n public set size(value: number) {\r\n if (this._size !== value) {\r\n this._size = value;\r\n this._updateSize();\r\n this._updateFontSize();\r\n this._adapter.setHostAttribute(PRODUCT_ICON_CONSTANTS.attributes.SIZE, this._size.toString());\r\n }\r\n }\r\n\r\n public get shadow(): boolean {\r\n return this._shadow;\r\n }\r\n public set shadow(value: boolean) {\r\n if (this._shadow !== value) {\r\n this._shadow = value;\r\n this._adapter.setTextShadow(this._shadow, this._iterations, this._shadowColor);\r\n if (this._shadow) {\r\n this._adapter.setHostAttribute(PRODUCT_ICON_CONSTANTS.attributes.SHADOW, '');\r\n } else {\r\n this._adapter.removeIconClass(PRODUCT_ICON_CONSTANTS.attributes.SHADOW);\r\n }\r\n }\r\n }\r\n\r\n public get iterations(): number {\r\n return this._iterations;\r\n }\r\n public set iterations(value: number) {\r\n if (this._iterations !== value) {\r\n this._usingCustomIterations = true;\r\n this._iterations = value;\r\n this._updateShadow();\r\n this._adapter.setHostAttribute(PRODUCT_ICON_CONSTANTS.attributes.ITERATIONS, this._iterations.toString());\r\n }\r\n }\r\n}\r\n", "import { CustomElement, attachShadowTemplate, coerceNumber, coerceBoolean, FoundationProperty } from '@tylertech/forge-core';\r\nimport { ProductIconAdapter } from './product-icon-adapter';\r\nimport { ProductIconFoundation } from './product-icon-foundation';\r\nimport { PRODUCT_ICON_CONSTANTS } from './product-icon-constants';\r\nimport { BaseComponent, IBaseComponent } from '../core/base/base-component';\r\n\r\nconst template = '<template><div class=\\\"forge-product-icon__background\\\" part=\\\"root\\\"><div class=\\\"forge-product-icon__container\\\" part=\\\"container\\\"><span class=\\\"forge-product-icon__icon\\\" part=\\\"icon-container\\\"><slot></slot></span><span class=\\\"forge-product-icon__text\\\" part=\\\"text-container\\\"><slot name=\\\"text\\\"></slot></span></div></div></template>';\r\nconst styles = '.forge-product-icon__background{border-radius:50%;border-radius:var(--forge-product-icon-border-radius,50%);height:64px;width:64px;overflow:hidden}.forge-product-icon__container{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;height:100%;width:100%}.forge-product-icon__icon ::slotted(*),.forge-product-icon__text ::slotted(*){display:-webkit-box!important;display:flex!important;color:#fff!important;font-size:var(--forge-product-icon-font-size, 48px)!important}:host{display:inline-block}:host([hidden]){display:none}';\r\n\r\nexport interface IProductIconComponent extends IBaseComponent {\r\n color: string;\r\n size: number;\r\n shadow: boolean;\r\n iterations: number;\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n 'forge-product-icon': IProductIconComponent;\r\n }\r\n}\r\n\r\n/**\r\n * The web component class behind the `<forge-product-icon>` custom element.\r\n * \r\n * @tag forge-product-icon\r\n */\r\n@CustomElement({\r\n name: PRODUCT_ICON_CONSTANTS.elementName\r\n})\r\nexport class ProductIconComponent extends BaseComponent implements IProductIconComponent {\r\n public static get observedAttributes(): string[] {\r\n return [\r\n PRODUCT_ICON_CONSTANTS.attributes.COLOR,\r\n PRODUCT_ICON_CONSTANTS.attributes.SIZE,\r\n PRODUCT_ICON_CONSTANTS.attributes.SHADOW,\r\n PRODUCT_ICON_CONSTANTS.attributes.ITERATIONS\r\n ];\r\n }\r\n\r\n private _foundation: ProductIconFoundation;\r\n\r\n constructor() {\r\n super();\r\n attachShadowTemplate(this, template, styles);\r\n this._foundation = new ProductIconFoundation(new ProductIconAdapter(this));\r\n }\r\n\r\n public connectedCallback(): void {\r\n this._foundation.initialize();\r\n }\r\n\r\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\r\n switch (name) {\r\n case PRODUCT_ICON_CONSTANTS.attributes.COLOR:\r\n this.color = newValue;\r\n break;\r\n case PRODUCT_ICON_CONSTANTS.attributes.SIZE:\r\n this.size = coerceNumber(newValue);\r\n break;\r\n case PRODUCT_ICON_CONSTANTS.attributes.SHADOW:\r\n this.shadow = coerceBoolean(newValue);\r\n break;\r\n case PRODUCT_ICON_CONSTANTS.attributes.ITERATIONS:\r\n this.iterations = coerceNumber(newValue);\r\n break;\r\n }\r\n }\r\n\r\n /** The color of the container element from the material color palette. */\r\n @FoundationProperty()\r\n public declare color: string;\r\n\r\n /** Controls the height and width of the container element. */\r\n @FoundationProperty()\r\n public declare size: number;\r\n\r\n /** Controls the visibility of the text shadow. */\r\n @FoundationProperty()\r\n public declare shadow: boolean;\r\n\r\n /** The number of iterations to apply the text shadow. */\r\n @FoundationProperty()\r\n public declare iterations: number;\r\n}\r\n", "import { defineCustomElement } from '@tylertech/forge-core';\r\n\r\nimport { ProductIconComponent } from './product-icon';\r\n\r\nexport * from './product-icon-adapter';\r\nexport * from './product-icon-constants';\r\nexport * from './product-icon-foundation';\r\nexport * from './product-icon';\r\n\r\nexport function defineProductIconComponent(): void {\r\n defineCustomElement(ProductIconComponent);\r\n}\r\n"],
5
- "mappings": "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",
6
- "names": ["elementName", "COMPONENT_NAME_PREFIX", "classes", "selectors", "attributes", "numbers", "strings", "COLOR_CONSTANTS", "PRODUCT_ICON_CONSTANTS", "ProductIconAdapter", "BaseAdapter", "component", "getShadowElement", "PRODUCT_ICON_CONSTANTS", "color", "value", "textFontSize", "iconFontSize", "classes", "removeClass", "hasShadow", "iterations", "shadowColor", "shadow", "generateTextShadow", "ProductIconFoundation", "_adapter", "PRODUCT_ICON_CONSTANTS", "coerceNumber", "iconColor", "shadowIncrement", "COLOR_CONSTANTS", "value", "template", "styles", "ProductIconComponent", "BaseComponent", "attachShadowTemplate", "ProductIconFoundation", "ProductIconAdapter", "PRODUCT_ICON_CONSTANTS", "name", "oldValue", "newValue", "coerceNumber", "coerceBoolean", "__decorateClass", "FoundationProperty", "CustomElement", "defineProductIconComponent", "defineCustomElement", "ProductIconComponent"]
7
- }