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

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 (849) hide show
  1. package/README.md +1 -6
  2. package/custom-elements.json +63803 -41782
  3. package/dist/esm/accordion/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 +7 -0
  19. package/dist/esm/button-area/index.js.map +7 -0
  20. package/dist/esm/button-toggle/button-toggle/index.js +1 -1
  21. package/dist/esm/button-toggle/button-toggle-group/index.js +1 -1
  22. package/dist/esm/button-toggle/index.js +1 -1
  23. package/dist/esm/calendar/calendar-dropdown/index.js +1 -1
  24. package/dist/esm/calendar/calendar-menu/index.js +1 -1
  25. package/dist/esm/calendar/index.js +1 -1
  26. package/dist/esm/card/index.js +1 -1
  27. package/dist/esm/checkbox/index.js +1 -1
  28. package/dist/esm/chip-field/index.js +1 -1
  29. package/dist/esm/chips/chip/index.js +1 -1
  30. package/dist/esm/chips/chip-set/index.js +1 -1
  31. package/dist/esm/chips/index.js +1 -1
  32. package/dist/esm/chunks/{chunk.SMGXXR6K.js → chunk.2MSL7CYM.js} +2 -2
  33. package/dist/esm/chunks/chunk.2ZU6LWHE.js +7 -0
  34. package/dist/esm/chunks/chunk.2ZU6LWHE.js.map +7 -0
  35. package/dist/esm/chunks/{chunk.COVTBIQQ.js → chunk.36C6SIPW.js} +2 -2
  36. package/dist/esm/chunks/{chunk.COVTBIQQ.js.map → chunk.36C6SIPW.js.map} +2 -2
  37. package/dist/esm/chunks/chunk.36F2GVWS.js +7 -0
  38. package/dist/esm/chunks/chunk.36F2GVWS.js.map +7 -0
  39. package/dist/esm/chunks/{chunk.M56LSSPW.js → chunk.3HCYRDRI.js} +2 -2
  40. package/dist/esm/chunks/{chunk.4ZKX3SO5.js → chunk.3R4BUIQP.js} +2 -2
  41. package/dist/esm/chunks/{chunk.YWNCJ7XP.js → chunk.3ZPSN2QG.js} +2 -2
  42. package/dist/esm/chunks/chunk.4SPEX2GJ.js +7 -0
  43. package/dist/esm/chunks/chunk.4SPEX2GJ.js.map +7 -0
  44. package/dist/esm/chunks/chunk.4YFJVHXN.js +7 -0
  45. package/dist/esm/chunks/chunk.4YFJVHXN.js.map +7 -0
  46. package/dist/esm/chunks/chunk.5A2PA7TL.js +7 -0
  47. package/dist/esm/chunks/chunk.5A2PA7TL.js.map +7 -0
  48. package/dist/esm/chunks/chunk.5CSXPRL3.js +7 -0
  49. package/dist/esm/chunks/chunk.5CSXPRL3.js.map +7 -0
  50. package/dist/esm/chunks/chunk.5LVZVQXB.js +7 -0
  51. package/dist/esm/chunks/{chunk.MGLL67VO.js.map → chunk.5LVZVQXB.js.map} +2 -2
  52. package/dist/esm/chunks/{chunk.LFODKHUO.js → chunk.5N4N6DL6.js} +2 -2
  53. package/dist/esm/chunks/chunk.5PG6WIIX.js +7 -0
  54. package/dist/esm/chunks/chunk.5PG6WIIX.js.map +7 -0
  55. package/dist/esm/chunks/{chunk.JIKSKUDW.js → chunk.5RM65QPN.js} +2 -2
  56. package/dist/esm/chunks/{chunk.JIKSKUDW.js.map → chunk.5RM65QPN.js.map} +3 -3
  57. package/dist/esm/chunks/chunk.5WMYF27O.js +7 -0
  58. package/dist/esm/chunks/chunk.5WMYF27O.js.map +7 -0
  59. package/dist/esm/chunks/{chunk.QOJESHEV.js → chunk.675V42JS.js} +2 -2
  60. package/dist/esm/chunks/chunk.6M27ERWW.js +12 -0
  61. package/dist/esm/chunks/chunk.6M27ERWW.js.map +7 -0
  62. package/dist/esm/chunks/chunk.6NTYTHAL.js +7 -0
  63. package/dist/esm/chunks/chunk.6NTYTHAL.js.map +7 -0
  64. package/dist/esm/chunks/chunk.6ZNBFKNP.js +7 -0
  65. package/dist/esm/chunks/chunk.6ZNBFKNP.js.map +7 -0
  66. package/dist/esm/chunks/{chunk.7TMLILLW.js → chunk.72JVXGHF.js} +2 -2
  67. package/dist/esm/chunks/{chunk.7TMLILLW.js.map → chunk.72JVXGHF.js.map} +1 -1
  68. package/dist/esm/chunks/chunk.7V4BDSA5.js +7 -0
  69. package/dist/esm/chunks/chunk.7V4BDSA5.js.map +7 -0
  70. package/dist/esm/chunks/chunk.7VMJLHQY.js +7 -0
  71. package/dist/esm/chunks/chunk.7VMJLHQY.js.map +7 -0
  72. package/dist/esm/chunks/chunk.7ZROQ6D3.js +7 -0
  73. package/dist/esm/chunks/chunk.7ZROQ6D3.js.map +7 -0
  74. package/dist/esm/chunks/{chunk.DG4ZM3AW.js → chunk.AMLT6XJP.js} +2 -2
  75. package/dist/esm/chunks/chunk.AMZZKEAE.js +7 -0
  76. package/dist/esm/chunks/chunk.AMZZKEAE.js.map +7 -0
  77. package/dist/esm/chunks/{chunk.MTKSU2BV.js → chunk.APPY5AYL.js} +2 -2
  78. package/dist/esm/chunks/{chunk.4YFVG4KP.js → chunk.ARQMMZJL.js} +2 -2
  79. package/dist/esm/chunks/chunk.AUBOJZQ7.js +7 -0
  80. package/dist/esm/chunks/chunk.AUBOJZQ7.js.map +7 -0
  81. package/dist/esm/chunks/chunk.AUCBR6CC.js +7 -0
  82. package/dist/esm/chunks/{chunk.SFCGOCQK.js.map → chunk.AUCBR6CC.js.map} +2 -2
  83. package/dist/esm/chunks/{chunk.5MZ5SGMO.js → chunk.BB4UF5RX.js} +2 -2
  84. package/dist/esm/chunks/chunk.BBCZNGT3.js +7 -0
  85. package/dist/esm/chunks/chunk.BBCZNGT3.js.map +7 -0
  86. package/dist/esm/chunks/chunk.BQ2X5SBP.js +7 -0
  87. package/dist/esm/chunks/{chunk.TYLOAD7R.js.map → chunk.BQ2X5SBP.js.map} +2 -2
  88. package/dist/esm/chunks/chunk.BTXY3XMJ.js +7 -0
  89. package/dist/esm/chunks/chunk.BTXY3XMJ.js.map +7 -0
  90. package/dist/esm/chunks/{chunk.Q7Z3SJ5F.js → chunk.DTLZOIUQ.js} +2 -2
  91. package/dist/esm/chunks/chunk.EJX6RI4I.js +7 -0
  92. package/dist/esm/chunks/chunk.EJX6RI4I.js.map +7 -0
  93. package/dist/esm/chunks/chunk.EWK76SPH.js +7 -0
  94. package/dist/esm/chunks/chunk.EWK76SPH.js.map +7 -0
  95. package/dist/esm/chunks/chunk.FAXYCG55.js +7 -0
  96. package/dist/esm/chunks/chunk.FAXYCG55.js.map +7 -0
  97. package/dist/esm/chunks/chunk.FFHSUJFM.js +7 -0
  98. package/dist/esm/chunks/chunk.FFHSUJFM.js.map +7 -0
  99. package/dist/esm/chunks/{chunk.OWCYRSI3.js → chunk.FLWNOP42.js} +2 -2
  100. package/dist/esm/chunks/{chunk.S3JMOOWC.js → chunk.FXIWCHLW.js} +2 -2
  101. package/dist/esm/chunks/chunk.FYVDTZLF.js +7 -0
  102. package/dist/esm/chunks/{chunk.CDGZYUQS.js.map → chunk.FYVDTZLF.js.map} +2 -2
  103. package/dist/esm/chunks/chunk.G73KL7P2.js +7 -0
  104. package/dist/esm/chunks/{chunk.7DB3XVPI.js.map → chunk.G73KL7P2.js.map} +3 -3
  105. package/dist/esm/chunks/chunk.G7SMCLHQ.js +7 -0
  106. package/dist/esm/chunks/chunk.G7SMCLHQ.js.map +7 -0
  107. package/dist/esm/chunks/chunk.GHR7T6U2.js +7 -0
  108. package/dist/esm/chunks/chunk.GHR7T6U2.js.map +7 -0
  109. package/dist/esm/chunks/{chunk.CWTV3TB3.js → chunk.GNDKQPDV.js} +2 -2
  110. package/dist/esm/chunks/{chunk.ULY4H76N.js → chunk.HAKF2T2D.js} +2 -2
  111. package/dist/esm/chunks/chunk.HDG2GHKC.js +7 -0
  112. package/dist/esm/chunks/{chunk.SBYX7VZ4.js.map → chunk.HDG2GHKC.js.map} +2 -2
  113. package/dist/esm/chunks/{chunk.WPG7NNQX.js → chunk.HOLCNJXC.js} +2 -2
  114. package/dist/esm/chunks/{chunk.W4247Q2P.js → chunk.HRRJIFC5.js} +2 -2
  115. package/dist/esm/chunks/chunk.HSI7B43D.js +7 -0
  116. package/dist/esm/chunks/chunk.HSI7B43D.js.map +7 -0
  117. package/dist/esm/chunks/chunk.IAWYYNUU.js +7 -0
  118. package/dist/esm/chunks/chunk.IAWYYNUU.js.map +7 -0
  119. package/dist/esm/chunks/{chunk.SU4FU7GK.js → chunk.IDMDBMBR.js} +2 -2
  120. package/dist/esm/chunks/{chunk.FCATJM34.js → chunk.IHAHJPMB.js} +2 -2
  121. package/dist/esm/chunks/chunk.IISWKFCX.js +7 -0
  122. package/dist/esm/chunks/chunk.IISWKFCX.js.map +7 -0
  123. package/dist/esm/chunks/{chunk.XKI46BH2.js → chunk.IMLJD35R.js} +2 -2
  124. package/dist/esm/chunks/{chunk.624UKZFU.js → chunk.IT7XPDAV.js} +2 -2
  125. package/dist/esm/chunks/{chunk.MVTBJPO2.js → chunk.JAWV5Y5T.js} +1 -1
  126. package/dist/esm/chunks/{chunk.MVTBJPO2.js.map → chunk.JAWV5Y5T.js.map} +2 -2
  127. package/dist/esm/chunks/{chunk.JLLHDJSO.js → chunk.JVLJH6PR.js} +2 -2
  128. package/dist/esm/chunks/chunk.KPJWP77R.js +7 -0
  129. package/dist/esm/chunks/{chunk.2EWV2XBP.js → chunk.KV5IKYG2.js} +2 -2
  130. package/dist/esm/chunks/chunk.KV67JXOC.js +7 -0
  131. package/dist/esm/chunks/{chunk.B4T3R53C.js.map → chunk.KV67JXOC.js.map} +2 -2
  132. package/dist/esm/chunks/{chunk.A62DE5PD.js → chunk.LCR4YH3O.js} +2 -2
  133. package/dist/esm/chunks/{chunk.FWFOOQMA.js → chunk.LOG6GQOK.js} +2 -2
  134. package/dist/esm/chunks/chunk.LUIKMPQR.js +7 -0
  135. package/dist/esm/chunks/chunk.LUIKMPQR.js.map +7 -0
  136. package/dist/esm/chunks/chunk.LUNKNRRH.js +7 -0
  137. package/dist/esm/chunks/chunk.LUNKNRRH.js.map +7 -0
  138. package/dist/esm/chunks/chunk.MKJCHUJH.js +7 -0
  139. package/dist/esm/chunks/chunk.MKJCHUJH.js.map +7 -0
  140. package/dist/esm/chunks/chunk.MWYQRG5W.js +7 -0
  141. package/dist/esm/chunks/{chunk.YX7WLO5Y.js.map → chunk.MWYQRG5W.js.map} +2 -2
  142. package/dist/esm/chunks/{chunk.YLG6ZC5K.js → chunk.NUMKGUCK.js} +2 -2
  143. package/dist/esm/chunks/{chunk.XI3MJSIS.js → chunk.O6V3YNMO.js} +2 -2
  144. package/dist/esm/chunks/chunk.OWZREAT6.js +15 -0
  145. package/dist/esm/chunks/chunk.OWZREAT6.js.map +7 -0
  146. package/dist/esm/chunks/chunk.PMYQY3D3.js +7 -0
  147. package/dist/esm/chunks/chunk.PMYQY3D3.js.map +7 -0
  148. package/dist/esm/chunks/chunk.PYR2OCCH.js +7 -0
  149. package/dist/esm/chunks/{chunk.5565ZSTH.js.map → chunk.PYR2OCCH.js.map} +2 -2
  150. package/dist/esm/chunks/chunk.QJCNMYD3.js +7 -0
  151. package/dist/esm/chunks/{chunk.SJJS4LYN.js.map → chunk.QJCNMYD3.js.map} +2 -2
  152. package/dist/esm/chunks/{chunk.TK5I4RHF.js → chunk.QLCVRJ3Q.js} +2 -2
  153. package/dist/esm/chunks/chunk.QLOYOZN3.js +7 -0
  154. package/dist/esm/chunks/{chunk.F5SY2D4B.js.map → chunk.QLOYOZN3.js.map} +3 -3
  155. package/dist/esm/chunks/chunk.QN5T26HH.js +7 -0
  156. package/dist/esm/chunks/chunk.QN5T26HH.js.map +7 -0
  157. package/dist/esm/chunks/chunk.QQRPV4RN.js +7 -0
  158. package/dist/esm/chunks/{chunk.PEBT47AU.js.map → chunk.QQRPV4RN.js.map} +2 -2
  159. package/dist/esm/chunks/chunk.R6LQBI42.js +177 -0
  160. package/dist/esm/chunks/chunk.R6LQBI42.js.map +7 -0
  161. package/dist/esm/chunks/chunk.RES7WDKH.js +7 -0
  162. package/dist/esm/chunks/chunk.RES7WDKH.js.map +7 -0
  163. package/dist/esm/chunks/chunk.RP674CRC.js +7 -0
  164. package/dist/esm/chunks/chunk.S5QL4SPT.js +7 -0
  165. package/dist/esm/chunks/chunk.S5QL4SPT.js.map +7 -0
  166. package/dist/esm/chunks/chunk.SIRXAA3O.js +7 -0
  167. package/dist/esm/chunks/chunk.SIRXAA3O.js.map +7 -0
  168. package/dist/esm/chunks/{chunk.LTT67HTW.js → chunk.SLJ6HDK7.js} +2 -2
  169. package/dist/esm/chunks/chunk.STB2FEUA.js +7 -0
  170. package/dist/esm/chunks/chunk.STB2FEUA.js.map +7 -0
  171. package/dist/esm/chunks/chunk.TBGMJQYJ.js +7 -0
  172. package/dist/esm/chunks/chunk.TBGMJQYJ.js.map +7 -0
  173. package/dist/esm/chunks/{chunk.6OW6Q3EW.js → chunk.TU74SREL.js} +2 -2
  174. package/dist/esm/chunks/{chunk.EK24Y56W.js → chunk.URJQNB3S.js} +2 -2
  175. package/dist/esm/chunks/{chunk.AEKOP3XT.js → chunk.V24M62MC.js} +2 -2
  176. package/dist/esm/chunks/{chunk.AEKOP3XT.js.map → chunk.V24M62MC.js.map} +2 -2
  177. package/dist/esm/chunks/chunk.VFKHRAWD.js +7 -0
  178. package/dist/esm/chunks/chunk.VFKHRAWD.js.map +7 -0
  179. package/dist/esm/chunks/chunk.VO6YJCEU.js +7 -0
  180. package/dist/esm/chunks/chunk.VO6YJCEU.js.map +7 -0
  181. package/dist/esm/chunks/{chunk.K3KAM2PL.js → chunk.W2LN45WY.js} +2 -2
  182. package/dist/esm/chunks/{chunk.MHBBMC6O.js → chunk.WMVYRDUJ.js} +2 -2
  183. package/dist/esm/chunks/{chunk.MHBBMC6O.js.map → chunk.WMVYRDUJ.js.map} +2 -2
  184. package/dist/esm/chunks/chunk.WY3E33CW.js +7 -0
  185. package/dist/esm/chunks/chunk.WY3E33CW.js.map +7 -0
  186. package/dist/esm/chunks/{chunk.Z6FCL3G3.js → chunk.XEFWZKHQ.js} +2 -2
  187. package/dist/esm/chunks/{chunk.NR3MLTXF.js → chunk.XLL7L2UB.js} +2 -2
  188. package/dist/esm/chunks/chunk.XNFS7YIB.js +7 -0
  189. package/dist/esm/chunks/chunk.XNFS7YIB.js.map +7 -0
  190. package/dist/esm/chunks/chunk.XYAZVLPR.js +7 -0
  191. package/dist/esm/chunks/chunk.YA3RDJCV.js +7 -0
  192. package/dist/esm/chunks/chunk.YA3RDJCV.js.map +7 -0
  193. package/dist/esm/chunks/{chunk.2QHD3DCR.js → chunk.YAERJVPL.js} +2 -2
  194. package/dist/esm/chunks/chunk.YBZK6LJZ.js +7 -0
  195. package/dist/esm/chunks/chunk.YKIBREM5.js +7 -0
  196. package/dist/esm/chunks/chunk.YKIBREM5.js.map +7 -0
  197. package/dist/esm/chunks/chunk.YWAUEUAH.js +7 -0
  198. package/dist/esm/chunks/chunk.YWAUEUAH.js.map +7 -0
  199. package/dist/esm/chunks/chunk.Z5RROENA.js +7 -0
  200. package/dist/esm/chunks/{chunk.6OUJSOJY.js.map → chunk.Z5RROENA.js.map} +3 -3
  201. package/dist/esm/chunks/{chunk.ZJC2DSNM.js → chunk.Z5ZLKM7W.js} +2 -2
  202. package/dist/esm/chunks/chunk.ZGRQDDHO.js +7 -0
  203. package/dist/esm/chunks/{chunk.BY25RT52.js.map → chunk.ZGRQDDHO.js.map} +2 -2
  204. package/dist/esm/chunks/{chunk.VSQOTSAO.js → chunk.ZKM667OT.js} +2 -2
  205. package/dist/esm/chunks/{chunk.VSQOTSAO.js.map → chunk.ZKM667OT.js.map} +2 -2
  206. package/dist/esm/chunks/chunk.ZRSDTCSD.js +7 -0
  207. package/dist/esm/chunks/chunk.ZRSDTCSD.js.map +7 -0
  208. package/dist/esm/chunks/chunk.ZSZFWZAI.js +7 -0
  209. package/dist/esm/chunks/chunk.ZSZFWZAI.js.map +7 -0
  210. package/dist/esm/circular-progress/index.js +1 -1
  211. package/dist/esm/color-picker/index.js +1 -1
  212. package/dist/esm/core/base/index.js +1 -1
  213. package/dist/esm/core/index.js +1 -1
  214. package/dist/esm/core/utils/index.js +1 -1
  215. package/dist/esm/date-picker/index.js +1 -1
  216. package/dist/esm/date-range-picker/index.js +1 -1
  217. package/dist/esm/dialog/index.js +1 -1
  218. package/dist/esm/divider/index.js +1 -1
  219. package/dist/esm/drawer/base/index.js +1 -1
  220. package/dist/esm/drawer/drawer/index.js +1 -1
  221. package/dist/esm/drawer/index.js +1 -1
  222. package/dist/esm/drawer/mini-drawer/index.js +1 -1
  223. package/dist/esm/drawer/modal-drawer/index.js +1 -1
  224. package/dist/esm/expansion-panel/index.js +1 -1
  225. package/dist/esm/file-picker/index.js +1 -1
  226. package/dist/esm/floating-action-button/index.js +1 -1
  227. package/dist/esm/floating-label/index.js +1 -1
  228. package/dist/esm/focus-indicator/index.js +1 -1
  229. package/dist/esm/icon/index.js +1 -1
  230. package/dist/esm/icon-button/index.js +1 -1
  231. package/dist/esm/index.js +1 -1
  232. package/dist/esm/inline-message/index.js +1 -1
  233. package/dist/esm/keyboard-shortcut/index.js +1 -1
  234. package/dist/esm/label/index.js +7 -0
  235. package/dist/esm/label/index.js.map +7 -0
  236. package/dist/esm/label-value/index.js +1 -1
  237. package/dist/esm/linear-progress/index.js +1 -1
  238. package/dist/esm/list/index.js +1 -1
  239. package/dist/esm/list/list/index.js +1 -1
  240. package/dist/esm/list/list-item/index.js +1 -1
  241. package/dist/esm/list-dropdown/index.js +1 -1
  242. package/dist/esm/menu/index.js +1 -1
  243. package/dist/esm/open-icon/index.js +1 -1
  244. package/dist/esm/page-state/index.js +1 -1
  245. package/dist/esm/paginator/index.js +1 -1
  246. package/dist/esm/popup/index.js +1 -1
  247. package/dist/esm/product-icon/index.js +1 -1
  248. package/dist/esm/profile-card/index.js +1 -1
  249. package/dist/esm/quantity-field/index.js +1 -1
  250. package/dist/esm/radio/index.js +1 -1
  251. package/dist/esm/ripple/index.js +1 -1
  252. package/dist/esm/scaffold/index.js +1 -1
  253. package/dist/esm/select/core/index.js +1 -1
  254. package/dist/esm/select/index.js +1 -1
  255. package/dist/esm/select/option/index.js +1 -1
  256. package/dist/esm/select/option-group/index.js +1 -1
  257. package/dist/esm/select/select/index.js +1 -1
  258. package/dist/esm/select/select-dropdown/index.js +1 -1
  259. package/dist/esm/skeleton/index.js +1 -1
  260. package/dist/esm/slider/index.js +1 -1
  261. package/dist/esm/split-button/index.js +7 -0
  262. package/dist/esm/split-button/index.js.map +7 -0
  263. package/dist/esm/split-view/index.js +1 -1
  264. package/dist/esm/split-view/split-view/index.js +1 -1
  265. package/dist/esm/split-view/split-view-panel/index.js +1 -1
  266. package/dist/esm/stack/index.js +1 -1
  267. package/dist/esm/state-layer/index.js +1 -1
  268. package/dist/esm/stepper/index.js +1 -1
  269. package/dist/esm/stepper/step/index.js +1 -1
  270. package/dist/esm/stepper/stepper/index.js +1 -1
  271. package/dist/esm/switch/index.js +1 -1
  272. package/dist/esm/table/index.js +1 -1
  273. package/dist/esm/tabs/index.js +1 -1
  274. package/dist/esm/tabs/tab/index.js +1 -1
  275. package/dist/esm/tabs/tab-bar/index.js +1 -1
  276. package/dist/esm/text-field/index.js +1 -1
  277. package/dist/esm/time-picker/index.js +1 -1
  278. package/dist/esm/toast/index.js +1 -1
  279. package/dist/esm/toolbar/index.js +1 -1
  280. package/dist/esm/tooltip/index.js +1 -1
  281. package/dist/esm/view-switcher/index.js +1 -1
  282. package/dist/esm/view-switcher/view/index.js +1 -1
  283. package/dist/forge-dark.css +1 -1
  284. package/dist/forge.css +1 -1
  285. package/dist/table/forge-table.css +1 -1
  286. package/dist/theme/forge-theme.css +1 -1
  287. package/dist/typography/forge-typography-legacy.css +1 -1
  288. package/dist/typography/forge-typography.css +1 -1
  289. package/esm/app-bar/app-bar.js +1 -1
  290. package/esm/app-bar/help-button/app-bar-help-button.js +1 -1
  291. package/esm/app-bar/menu-button/app-bar-menu-button.js +1 -1
  292. package/esm/app-bar/notification-button/app-bar-notification-button.js +1 -1
  293. package/esm/app-bar/profile-button/app-bar-profile-button-constants.js +1 -1
  294. package/esm/app-bar/profile-button/app-bar-profile-button.js +1 -1
  295. package/esm/autocomplete/autocomplete-constants.d.ts +3 -0
  296. package/esm/autocomplete/autocomplete-foundation.d.ts +3 -1
  297. package/esm/autocomplete/autocomplete-foundation.js +16 -2
  298. package/esm/autocomplete/autocomplete.d.ts +7 -1
  299. package/esm/autocomplete/autocomplete.js +7 -0
  300. package/esm/banner/banner-constants.js +1 -1
  301. package/esm/banner/banner.js +2 -2
  302. package/esm/bottom-sheet/bottom-sheet.js +1 -1
  303. package/esm/busy-indicator/busy-indicator.js +2 -2
  304. package/esm/button/base/base-button-adapter.d.ts +72 -0
  305. package/esm/button/base/base-button-adapter.js +250 -0
  306. package/esm/button/base/base-button-constants.d.ts +41 -0
  307. package/esm/button/base/base-button-constants.js +32 -0
  308. package/esm/button/base/base-button-foundation.d.ts +75 -0
  309. package/esm/button/base/base-button-foundation.js +234 -0
  310. package/esm/button/base/base-button.d.ts +51 -0
  311. package/esm/button/base/base-button.js +106 -0
  312. package/esm/button/button-adapter.d.ts +14 -0
  313. package/esm/button/button-adapter.js +14 -0
  314. package/esm/button/button-component-delegate.d.ts +4 -4
  315. package/esm/button/button-component-delegate.js +13 -17
  316. package/esm/button/button-constants.d.ts +10 -18
  317. package/esm/button/button-constants.js +6 -22
  318. package/esm/button/button-foundation.d.ts +25 -0
  319. package/esm/button/button-foundation.js +49 -0
  320. package/esm/button/button.d.ts +126 -30
  321. package/esm/button/button.js +160 -159
  322. package/esm/button/index.d.ts +3 -1
  323. package/esm/button/index.js +3 -1
  324. package/esm/button-area/button-area-adapter.d.ts +48 -0
  325. package/esm/button-area/button-area-adapter.js +121 -0
  326. package/esm/button-area/button-area-constants.d.ts +24 -0
  327. package/esm/button-area/button-area-constants.js +30 -0
  328. package/esm/button-area/button-area-foundation.d.ts +29 -0
  329. package/esm/button-area/button-area-foundation.js +94 -0
  330. package/esm/button-area/button-area.d.ts +29 -0
  331. package/esm/button-area/button-area.js +55 -0
  332. package/esm/button-area/index.d.ts +10 -0
  333. package/esm/button-area/index.js +14 -0
  334. package/esm/button-toggle/button-toggle/button-toggle.js +1 -1
  335. package/esm/calendar/calendar-dom-utils.js +18 -30
  336. package/esm/calendar/calendar-foundation.js +6 -0
  337. package/esm/calendar/calendar-menu/calendar-menu.js +1 -1
  338. package/esm/calendar/calendar.js +1 -1
  339. package/esm/checkbox/checkbox-adapter.d.ts +50 -59
  340. package/esm/checkbox/checkbox-adapter.js +104 -186
  341. package/esm/checkbox/checkbox-component-delegate.d.ts +18 -9
  342. package/esm/checkbox/checkbox-component-delegate.js +58 -51
  343. package/esm/checkbox/checkbox-constants.d.ts +14 -56
  344. package/esm/checkbox/checkbox-constants.js +17 -50
  345. package/esm/checkbox/checkbox-foundation.d.ts +48 -18
  346. package/esm/checkbox/checkbox-foundation.js +139 -139
  347. package/esm/checkbox/checkbox.d.ts +120 -9
  348. package/esm/checkbox/checkbox.js +235 -36
  349. package/esm/checkbox/index.d.ts +1 -1
  350. package/esm/checkbox/index.js +1 -1
  351. package/esm/chip-field/chip-field-adapter.js +1 -1
  352. package/esm/chip-field/chip-field-constants.d.ts +3 -0
  353. package/esm/chip-field/chip-field-constants.js +4 -0
  354. package/esm/chip-field/chip-field-foundation.d.ts +5 -0
  355. package/esm/chip-field/chip-field-foundation.js +20 -1
  356. package/esm/chip-field/chip-field.d.ts +5 -0
  357. package/esm/chip-field/chip-field.js +21 -3
  358. package/esm/chips/chip/chip.js +1 -1
  359. package/esm/circular-progress/circular-progress-constants.d.ts +4 -0
  360. package/esm/circular-progress/circular-progress-constants.js +2 -0
  361. package/esm/circular-progress/circular-progress-foundation.d.ts +9 -0
  362. package/esm/circular-progress/circular-progress-foundation.js +21 -0
  363. package/esm/circular-progress/circular-progress.d.ts +15 -2
  364. package/esm/circular-progress/circular-progress.js +25 -3
  365. package/esm/color-picker/color-picker.js +2 -2
  366. package/esm/constants.d.ts +7 -0
  367. package/esm/constants.js +4 -0
  368. package/esm/core/base/base-adapter.d.ts +18 -3
  369. package/esm/core/base/base-adapter.js +30 -2
  370. package/esm/core/base/base-component.d.ts +0 -1
  371. package/esm/core/base/base-component.js +0 -1
  372. package/esm/core/base/base-focusable-component.d.ts +49 -0
  373. package/esm/core/base/base-focusable-component.js +90 -0
  374. package/esm/core/base/base-form-component.d.ts +45 -0
  375. package/esm/core/base/base-form-component.js +19 -0
  376. package/esm/core/base/base-nullable-form-component.d.ts +35 -0
  377. package/esm/core/base/base-nullable-form-component.js +20 -0
  378. package/esm/core/keyboard/key-manager.d.ts +18 -0
  379. package/esm/core/keyboard/key-manager.js +47 -0
  380. package/esm/core/utils/feature-detection.d.ts +10 -0
  381. package/esm/core/utils/feature-detection.js +12 -0
  382. package/esm/core/utils/index.d.ts +2 -0
  383. package/esm/core/utils/index.js +2 -0
  384. package/esm/core/utils/reflect-utils.d.ts +107 -0
  385. package/esm/core/utils/reflect-utils.js +227 -0
  386. package/esm/core/utils/utils.d.ts +8 -0
  387. package/esm/core/utils/utils.js +15 -0
  388. package/esm/date-picker/base/base-date-picker-foundation.js +1 -1
  389. package/esm/date-picker/base/base-date-picker-utils.js +5 -8
  390. package/esm/date-range-picker/date-range-picker-foundation.js +2 -2
  391. package/esm/drawer/drawer/drawer.js +1 -1
  392. package/esm/drawer/mini-drawer/mini-drawer.js +1 -1
  393. package/esm/drawer/modal-drawer/modal-drawer.js +1 -1
  394. package/esm/expansion-panel/expansion-panel-adapter.d.ts +1 -0
  395. package/esm/expansion-panel/expansion-panel-adapter.js +7 -2
  396. package/esm/expansion-panel/expansion-panel.js +1 -1
  397. package/esm/field/field-constants.d.ts +8 -0
  398. package/esm/field/field-constants.js +10 -8
  399. package/esm/field/field-foundation.d.ts +1 -0
  400. package/esm/field/field-foundation.js +17 -7
  401. package/esm/file-picker/file-picker-component-delegate.js +1 -1
  402. package/esm/file-picker/file-picker.js +1 -1
  403. package/esm/floating-label/floating-label-foundation.d.ts +4 -1
  404. package/esm/floating-label/floating-label-foundation.js +9 -6
  405. package/esm/floating-label/floating-label.d.ts +6 -2
  406. package/esm/floating-label/floating-label.js +2 -2
  407. package/esm/focus-indicator/focus-indicator-adapter.d.ts +2 -2
  408. package/esm/focus-indicator/focus-indicator-adapter.js +3 -3
  409. package/esm/focus-indicator/focus-indicator-foundation.js +4 -3
  410. package/esm/focus-indicator/focus-indicator.js +1 -1
  411. package/esm/icon/icon-adapter.d.ts +0 -2
  412. package/esm/icon/icon-adapter.js +4 -5
  413. package/esm/icon/icon-foundation.js +0 -1
  414. package/esm/icon-button/icon-button-adapter.d.ts +12 -0
  415. package/esm/icon-button/icon-button-adapter.js +11 -0
  416. package/esm/icon-button/icon-button-component-delegate.d.ts +0 -4
  417. package/esm/icon-button/icon-button-component-delegate.js +8 -18
  418. package/esm/icon-button/icon-button-constants.d.ts +26 -17
  419. package/esm/icon-button/icon-button-constants.js +17 -28
  420. package/esm/icon-button/icon-button-foundation.d.ts +39 -0
  421. package/esm/icon-button/icon-button-foundation.js +122 -0
  422. package/esm/icon-button/icon-button.d.ts +69 -41
  423. package/esm/icon-button/icon-button.js +107 -213
  424. package/esm/index.d.ts +3 -0
  425. package/esm/index.js +8 -1
  426. package/esm/keyboard-shortcut/keyboard-shortcut-constants.d.ts +1 -0
  427. package/esm/keyboard-shortcut/keyboard-shortcut-foundation.d.ts +6 -0
  428. package/esm/keyboard-shortcut/keyboard-shortcut-foundation.js +9 -0
  429. package/esm/keyboard-shortcut/keyboard-shortcut.d.ts +4 -0
  430. package/esm/keyboard-shortcut/keyboard-shortcut.js +3 -0
  431. package/esm/label/index.d.ts +11 -0
  432. package/esm/label/index.js +15 -0
  433. package/esm/label/label-adapter.d.ts +51 -0
  434. package/esm/label/label-adapter.js +102 -0
  435. package/esm/label/label-aware.d.ts +15 -0
  436. package/esm/label/label-aware.js +13 -0
  437. package/esm/label/label-constants.d.ts +17 -0
  438. package/esm/label/label-constants.js +31 -0
  439. package/esm/label/label-foundation.d.ts +40 -0
  440. package/esm/label/label-foundation.js +106 -0
  441. package/esm/label/label.d.ts +49 -0
  442. package/esm/label/label.js +80 -0
  443. package/esm/linear-progress/linear-progress-constants.d.ts +3 -0
  444. package/esm/linear-progress/linear-progress-constants.js +1 -0
  445. package/esm/linear-progress/linear-progress-foundation.d.ts +5 -0
  446. package/esm/linear-progress/linear-progress-foundation.js +13 -3
  447. package/esm/linear-progress/linear-progress.d.ts +8 -1
  448. package/esm/linear-progress/linear-progress.js +13 -2
  449. package/esm/list/list/list-adapter.d.ts +17 -41
  450. package/esm/list/list/list-adapter.js +42 -60
  451. package/esm/list/list/list-constants.d.ts +13 -5
  452. package/esm/list/list/list-constants.js +15 -7
  453. package/esm/list/list/list-foundation.d.ts +24 -16
  454. package/esm/list/list/list-foundation.js +84 -75
  455. package/esm/list/list/list.d.ts +47 -8
  456. package/esm/list/list/list.js +83 -11
  457. package/esm/list/list-item/list-item-adapter.d.ts +39 -90
  458. package/esm/list/list-item/list-item-adapter.js +147 -127
  459. package/esm/list/list-item/list-item-constants.d.ts +31 -27
  460. package/esm/list/list-item/list-item-constants.js +19 -32
  461. package/esm/list/list-item/list-item-foundation.d.ts +41 -56
  462. package/esm/list/list-item/list-item-foundation.js +139 -204
  463. package/esm/list/list-item/list-item.d.ts +120 -37
  464. package/esm/list/list-item/list-item.js +171 -84
  465. package/esm/list-dropdown/list-dropdown-adapter.js +1 -6
  466. package/esm/list-dropdown/list-dropdown-constants.d.ts +4 -0
  467. package/esm/list-dropdown/list-dropdown-utils.js +23 -24
  468. package/esm/menu/menu-constants.js +1 -1
  469. package/esm/menu/menu-foundation.js +0 -4
  470. package/esm/menu/menu.js +1 -1
  471. package/esm/paginator/paginator-adapter.d.ts +30 -24
  472. package/esm/paginator/paginator-adapter.js +68 -0
  473. package/esm/paginator/paginator-constants.js +4 -4
  474. package/esm/paginator/paginator-foundation.d.ts +35 -80
  475. package/esm/paginator/paginator-foundation.js +221 -255
  476. package/esm/paginator/paginator.d.ts +1 -2
  477. package/esm/paginator/paginator.js +5 -4
  478. package/esm/popup/popup-adapter.d.ts +3 -1
  479. package/esm/popup/popup-adapter.js +3 -0
  480. package/esm/popup/popup-foundation.js +5 -3
  481. package/esm/popup/popup.d.ts +4 -1
  482. package/esm/popup/popup.js +1 -1
  483. package/esm/profile-card/profile-card.js +2 -2
  484. package/esm/quantity-field/quantity-field-constants.js +2 -2
  485. package/esm/select/core/base-select-adapter.js +3 -0
  486. package/esm/select/core/base-select-foundation.js +3 -1
  487. package/esm/select/option/option-constants.d.ts +1 -0
  488. package/esm/select/option/option-constants.js +1 -0
  489. package/esm/select/option/option-foundation.d.ts +13 -0
  490. package/esm/select/option/option-foundation.js +28 -0
  491. package/esm/select/option/option.d.ts +7 -0
  492. package/esm/select/option/option.js +13 -0
  493. package/esm/slider/slider-adapter.d.ts +1 -1
  494. package/esm/slider/slider-adapter.js +3 -2
  495. package/esm/slider/slider-constants.js +3 -3
  496. package/esm/slider/slider.d.ts +6 -11
  497. package/esm/slider/slider.js +11 -7
  498. package/esm/split-button/index.d.ts +10 -0
  499. package/esm/split-button/index.js +14 -0
  500. package/esm/split-button/split-button-adapter.d.ts +30 -0
  501. package/esm/split-button/split-button-adapter.js +84 -0
  502. package/esm/split-button/split-button-constants.d.ts +21 -0
  503. package/esm/split-button/split-button-constants.js +23 -0
  504. package/esm/split-button/split-button-foundation.d.ts +37 -0
  505. package/esm/split-button/split-button-foundation.js +77 -0
  506. package/esm/split-button/split-button.d.ts +57 -0
  507. package/esm/split-button/split-button.js +103 -0
  508. package/esm/split-view/split-view-panel/split-view-panel.js +1 -1
  509. package/esm/state-layer/state-layer-adapter.js +1 -0
  510. package/esm/state-layer/state-layer-foundation.js +10 -1
  511. package/esm/state-layer/state-layer.js +1 -1
  512. package/esm/stepper/stepper/stepper-foundation.js +1 -1
  513. package/esm/switch/index.d.ts +2 -0
  514. package/esm/switch/index.js +2 -0
  515. package/esm/switch/switch-adapter.d.ts +64 -0
  516. package/esm/switch/switch-adapter.js +151 -0
  517. package/esm/switch/switch-component-delegate.d.ts +22 -6
  518. package/esm/switch/switch-component-delegate.js +64 -29
  519. package/esm/switch/switch-constants.d.ts +23 -6
  520. package/esm/switch/switch-constants.js +29 -10
  521. package/esm/switch/switch-foundation.d.ts +65 -0
  522. package/esm/switch/switch-foundation.js +162 -0
  523. package/esm/switch/switch.d.ts +162 -33
  524. package/esm/switch/switch.js +249 -136
  525. package/esm/table/table-foundation.d.ts +2 -0
  526. package/esm/table/table-foundation.js +17 -6
  527. package/esm/table/table-utils.js +13 -1
  528. package/esm/table/types.d.ts +1 -0
  529. package/esm/tabs/tab/tab.js +2 -2
  530. package/esm/tabs/tab-bar/tab-bar-adapter.js +17 -20
  531. package/esm/tabs/tab-bar/tab-bar.js +1 -1
  532. package/esm/time-picker/time-picker-adapter.js +5 -8
  533. package/esm/time-picker/time-picker-foundation.js +3 -3
  534. package/esm/toast/toast-adapter.d.ts +1 -1
  535. package/esm/toast/toast-adapter.js +1 -1
  536. package/esm/toast/toast.js +2 -2
  537. package/package.json +1 -7
  538. package/styles/app-bar/_mixins.scss +9 -4
  539. package/styles/banner/banner.scss +0 -1
  540. package/styles/bottom-sheet/bottom-sheet.scss +0 -1
  541. package/styles/busy-indicator/_mixins.scss +1 -1
  542. package/styles/busy-indicator/busy-indicator.scss +0 -1
  543. package/styles/button/_configuration.scss +16 -0
  544. package/styles/button/_core.scss +183 -0
  545. package/styles/button/_token-utils.scss +30 -0
  546. package/styles/button/button.scss +208 -0
  547. package/styles/button/index.scss +8 -0
  548. package/styles/button-area/_mixins.scss +47 -0
  549. package/styles/button-area/button-area.scss +16 -0
  550. package/styles/button-toggle/button-toggle/_mixins.scss +26 -7
  551. package/styles/calendar/calendar-menu/_mixins.scss +48 -2
  552. package/styles/calendar/calendar.scss +0 -4
  553. package/styles/{button/forge-button.scss → checkbox/_configuration.scss} +4 -3
  554. package/styles/checkbox/_core.scss +157 -0
  555. package/styles/checkbox/_token-utils.scss +30 -0
  556. package/styles/checkbox/checkbox.scss +143 -7
  557. package/styles/checkbox/index.scss +8 -0
  558. package/styles/chip-field/_base.scss +1 -0
  559. package/styles/chip-field/_selector.scss +2 -2
  560. package/styles/chips/chip/_mixins.scss +21 -7
  561. package/styles/circular-progress/_configuration.scss +8 -15
  562. package/styles/circular-progress/_core.scss +19 -19
  563. package/styles/circular-progress/_token-utils.scss +30 -0
  564. package/styles/circular-progress/circular-progress.scss +51 -4
  565. package/styles/circular-progress/index.scss +1 -0
  566. package/styles/color-picker/color-picker.scss +0 -3
  567. package/styles/core/styles/_utils.scss +148 -11
  568. package/styles/core/styles/scrollbar/index.scss +45 -0
  569. package/styles/core/styles/spacing/index.scss +8 -1
  570. package/styles/core/styles/theme/_color-utils.scss +63 -0
  571. package/styles/core/styles/theme/_utils.scss +82 -0
  572. package/styles/core/styles/theme/index.scss +39 -13
  573. package/styles/core/styles/tokens/_token-utils.scss +118 -0
  574. package/styles/core/styles/tokens/button/_tokens.scss +115 -0
  575. package/styles/core/styles/tokens/checkbox/_tokens.scss +69 -0
  576. package/styles/core/styles/tokens/circular-progress/_tokens.scss +13 -3
  577. package/styles/core/styles/tokens/color-palette/_extended-color-palette.scss +88 -0
  578. package/styles/core/styles/tokens/color-palette/index.scss +7 -0
  579. package/styles/core/styles/tokens/focus-indicator/_tokens.scss +8 -5
  580. package/styles/core/styles/tokens/icon-button/_tokens.scss +106 -0
  581. package/styles/core/styles/tokens/index.scss +0 -1
  582. package/styles/core/styles/tokens/linear-progress/_tokens.scss +15 -4
  583. package/styles/core/styles/tokens/list/list/_tokens.scss +16 -0
  584. package/styles/core/styles/tokens/list/list-item/_tokens.scss +77 -0
  585. package/styles/core/styles/tokens/scrollbar/_tokens.scss +26 -0
  586. package/styles/core/styles/tokens/slider/_tokens.scss +9 -11
  587. package/styles/core/styles/tokens/spacing/_tokens.scss +25 -11
  588. package/styles/core/styles/tokens/split-button/_tokens.scss +21 -0
  589. package/styles/core/styles/tokens/state-layer/_tokens.scss +5 -5
  590. package/styles/core/styles/tokens/switch/_tokens.scss +108 -0
  591. package/styles/core/styles/tokens/tabs/tab/_tokens.scss +3 -1
  592. package/styles/core/styles/tokens/tabs/tab-bar/_tokens.scss +3 -3
  593. package/styles/core/styles/tokens/theme/_color-emphasis.scss +38 -0
  594. package/styles/core/styles/tokens/theme/_token-utils.scss +50 -0
  595. package/styles/core/styles/tokens/theme/_tokens.core.scss +45 -0
  596. package/styles/core/styles/tokens/theme/_tokens.scss +62 -117
  597. package/styles/core/styles/tokens/theme/_tokens.status.scss +49 -0
  598. package/styles/core/styles/tokens/theme/_tokens.surface.scss +65 -0
  599. package/styles/core/styles/tokens/theme/_tokens.text.scss +38 -0
  600. package/styles/core/styles/tokens/theme/_tokens.utilities.scss +30 -0
  601. package/styles/core/styles/tokens/typography/_scale.scss +39 -0
  602. package/styles/core/styles/tokens/typography/_tokens.body.scss +41 -0
  603. package/styles/core/styles/tokens/typography/_tokens.core.scss +31 -0
  604. package/styles/core/styles/tokens/typography/_tokens.display.scss +67 -0
  605. package/styles/core/styles/tokens/typography/_tokens.heading.scss +70 -0
  606. package/styles/core/styles/tokens/typography/_tokens.label.scss +36 -0
  607. package/styles/core/styles/tokens/typography/_tokens.scss +16 -211
  608. package/styles/core/styles/tokens/typography/_tokens.subheading.scss +66 -0
  609. package/styles/core/styles/tokens/typography/_type-utils.scss +37 -0
  610. package/styles/core/styles/tokens/typography/_weight.scss +20 -0
  611. package/styles/core/styles/typography/index.scss +56 -6
  612. package/styles/file-picker/_mixins.scss +1 -1
  613. package/styles/focus-indicator/_animations.scss +6 -4
  614. package/styles/focus-indicator/_configuration.scss +2 -15
  615. package/styles/focus-indicator/_core.scss +20 -25
  616. package/styles/focus-indicator/_token-utils.scss +31 -0
  617. package/styles/focus-indicator/focus-indicator.scss +28 -6
  618. package/styles/focus-indicator/index.scss +1 -0
  619. package/styles/forge.scss +0 -2
  620. package/styles/icon-button/_configuration.scss +16 -0
  621. package/styles/icon-button/_core.scss +145 -0
  622. package/styles/icon-button/_token-utils.scss +30 -0
  623. package/styles/icon-button/icon-button.scss +315 -0
  624. package/styles/icon-button/index.scss +8 -0
  625. package/styles/label/_core.scss +17 -0
  626. package/styles/{icon-button/forge-icon-button.scss → label/index.scss} +1 -3
  627. package/styles/label/label.scss +18 -0
  628. package/styles/linear-progress/_animations.scss +3 -1
  629. package/styles/linear-progress/_configuration.scss +15 -16
  630. package/styles/linear-progress/_core.scss +17 -19
  631. package/styles/linear-progress/_token-utils.scss +31 -0
  632. package/styles/linear-progress/index.scss +1 -0
  633. package/styles/linear-progress/linear-progress.scss +42 -6
  634. package/styles/list/list/_configuration.scss +10 -0
  635. package/styles/list/list/_core.scss +16 -0
  636. package/styles/list/list/_token-utils.scss +30 -0
  637. package/styles/list/list/index.scss +8 -0
  638. package/styles/list/list/list.scss +29 -3
  639. package/styles/list/list-item/_configuration.scss +16 -0
  640. package/styles/list/list-item/_core.scss +195 -0
  641. package/styles/list/list-item/_token-utils.scss +30 -0
  642. package/styles/list/list-item/index.scss +8 -0
  643. package/styles/list/list-item/list-item.scss +199 -12
  644. package/styles/menu/menu.scss +1 -1
  645. package/styles/paginator/paginator.scss +0 -1
  646. package/styles/profile-card/profile-card.scss +0 -1
  647. package/styles/slider/_configuration.scss +5 -50
  648. package/styles/slider/_core.scss +59 -70
  649. package/styles/slider/_token-utils.scss +30 -0
  650. package/styles/slider/index.scss +1 -0
  651. package/styles/slider/slider.scss +28 -5
  652. package/styles/split-button/_configuration.scss +12 -0
  653. package/styles/split-button/_token-utils.scss +30 -0
  654. package/styles/split-button/index.scss +7 -0
  655. package/styles/split-button/split-button.scss +97 -0
  656. package/styles/state-layer/_configuration.scss +2 -9
  657. package/styles/state-layer/_core.scss +11 -16
  658. package/styles/state-layer/_token-utils.scss +31 -0
  659. package/styles/state-layer/index.scss +1 -0
  660. package/styles/state-layer/state-layer.scss +7 -0
  661. package/styles/switch/_configuration.scss +10 -0
  662. package/styles/switch/_core.scss +252 -0
  663. package/styles/switch/_token-utils.scss +30 -0
  664. package/styles/switch/index.scss +8 -0
  665. package/styles/switch/switch.scss +167 -47
  666. package/styles/table/_mixins.scss +20 -2
  667. package/styles/tabs/tab/_configuration.scss +7 -44
  668. package/styles/tabs/tab/_core.scss +30 -35
  669. package/styles/tabs/tab/_token-utils.scss +30 -0
  670. package/styles/tabs/tab/index.scss +1 -0
  671. package/styles/tabs/tab/tab.scss +89 -45
  672. package/styles/tabs/tab-bar/_configuration.scss +2 -5
  673. package/styles/tabs/tab-bar/_core.scss +26 -9
  674. package/styles/tabs/tab-bar/_token-utils.scss +30 -0
  675. package/styles/tabs/tab-bar/index.scss +2 -1
  676. package/styles/tabs/tab-bar/tab-bar.scss +68 -34
  677. package/styles/theme/_theme-dark.scss +0 -2
  678. package/styles/theme/_theme.scss +3 -45
  679. package/styles/theme/forge-theme.scss +21 -3
  680. package/styles/toast/_mixins.scss +1 -1
  681. package/styles/toast/toast.scss +0 -2
  682. package/styles/typography/_mixins.scss +0 -20
  683. package/styles/typography/forge-typography.scss +5 -2
  684. package/dist/button/forge-button.css +0 -6
  685. package/dist/esm/chunks/chunk.2AJ7FFI6.js +0 -7
  686. package/dist/esm/chunks/chunk.2AJ7FFI6.js.map +0 -7
  687. package/dist/esm/chunks/chunk.3HB22HCX.js +0 -7
  688. package/dist/esm/chunks/chunk.4C6KHYUO.js +0 -7
  689. package/dist/esm/chunks/chunk.54OOOQ4R.js +0 -7
  690. package/dist/esm/chunks/chunk.54OOOQ4R.js.map +0 -7
  691. package/dist/esm/chunks/chunk.5565ZSTH.js +0 -7
  692. package/dist/esm/chunks/chunk.6GC5AJPE.js +0 -7
  693. package/dist/esm/chunks/chunk.6GC5AJPE.js.map +0 -7
  694. package/dist/esm/chunks/chunk.6OUJSOJY.js +0 -7
  695. package/dist/esm/chunks/chunk.7CGKFRBK.js +0 -7
  696. package/dist/esm/chunks/chunk.7CGKFRBK.js.map +0 -7
  697. package/dist/esm/chunks/chunk.7DB3XVPI.js +0 -7
  698. package/dist/esm/chunks/chunk.ALIYGJXA.js +0 -129
  699. package/dist/esm/chunks/chunk.ALIYGJXA.js.map +0 -7
  700. package/dist/esm/chunks/chunk.B4T3R53C.js +0 -7
  701. package/dist/esm/chunks/chunk.BH2TUG2V.js +0 -7
  702. package/dist/esm/chunks/chunk.BH2TUG2V.js.map +0 -7
  703. package/dist/esm/chunks/chunk.BKL2BAYW.js +0 -7
  704. package/dist/esm/chunks/chunk.BKL2BAYW.js.map +0 -7
  705. package/dist/esm/chunks/chunk.BY25RT52.js +0 -7
  706. package/dist/esm/chunks/chunk.CDGZYUQS.js +0 -7
  707. package/dist/esm/chunks/chunk.CKW7KKDW.js +0 -7
  708. package/dist/esm/chunks/chunk.CKW7KKDW.js.map +0 -7
  709. package/dist/esm/chunks/chunk.CXY6K7EI.js +0 -7
  710. package/dist/esm/chunks/chunk.CXY6K7EI.js.map +0 -7
  711. package/dist/esm/chunks/chunk.D5TAI6Q7.js +0 -7
  712. package/dist/esm/chunks/chunk.D5TAI6Q7.js.map +0 -7
  713. package/dist/esm/chunks/chunk.DBNJHUYY.js +0 -7
  714. package/dist/esm/chunks/chunk.DBNJHUYY.js.map +0 -7
  715. package/dist/esm/chunks/chunk.DMCBAYQX.js +0 -7
  716. package/dist/esm/chunks/chunk.DMCBAYQX.js.map +0 -7
  717. package/dist/esm/chunks/chunk.DXN7ZOH3.js +0 -7
  718. package/dist/esm/chunks/chunk.DXN7ZOH3.js.map +0 -7
  719. package/dist/esm/chunks/chunk.F4VXEE76.js +0 -7
  720. package/dist/esm/chunks/chunk.F4VXEE76.js.map +0 -7
  721. package/dist/esm/chunks/chunk.F5SY2D4B.js +0 -7
  722. package/dist/esm/chunks/chunk.F74YURLV.js +0 -7
  723. package/dist/esm/chunks/chunk.F74YURLV.js.map +0 -7
  724. package/dist/esm/chunks/chunk.FG2GNAM2.js +0 -7
  725. package/dist/esm/chunks/chunk.FG2GNAM2.js.map +0 -7
  726. package/dist/esm/chunks/chunk.GNG64TXK.js +0 -7
  727. package/dist/esm/chunks/chunk.GNG64TXK.js.map +0 -7
  728. package/dist/esm/chunks/chunk.GO5A4GKZ.js +0 -7
  729. package/dist/esm/chunks/chunk.GO5A4GKZ.js.map +0 -7
  730. package/dist/esm/chunks/chunk.HHCO64F3.js +0 -7
  731. package/dist/esm/chunks/chunk.HHCO64F3.js.map +0 -7
  732. package/dist/esm/chunks/chunk.ISC7SZSP.js +0 -7
  733. package/dist/esm/chunks/chunk.ISC7SZSP.js.map +0 -7
  734. package/dist/esm/chunks/chunk.IX25DYIM.js +0 -7
  735. package/dist/esm/chunks/chunk.IX25DYIM.js.map +0 -7
  736. package/dist/esm/chunks/chunk.JUJGROHA.js +0 -7
  737. package/dist/esm/chunks/chunk.JUJGROHA.js.map +0 -7
  738. package/dist/esm/chunks/chunk.KJP2VA6Q.js +0 -7
  739. package/dist/esm/chunks/chunk.KJP2VA6Q.js.map +0 -7
  740. package/dist/esm/chunks/chunk.LK4AAUOP.js +0 -7
  741. package/dist/esm/chunks/chunk.LK4AAUOP.js.map +0 -7
  742. package/dist/esm/chunks/chunk.LXPFG7MW.js +0 -7
  743. package/dist/esm/chunks/chunk.LXPFG7MW.js.map +0 -7
  744. package/dist/esm/chunks/chunk.MACPUZC2.js +0 -7
  745. package/dist/esm/chunks/chunk.MACPUZC2.js.map +0 -7
  746. package/dist/esm/chunks/chunk.MGLL67VO.js +0 -7
  747. package/dist/esm/chunks/chunk.MXEKIEJA.js +0 -7
  748. package/dist/esm/chunks/chunk.MXEKIEJA.js.map +0 -7
  749. package/dist/esm/chunks/chunk.N43BCJHN.js +0 -7
  750. package/dist/esm/chunks/chunk.N43BCJHN.js.map +0 -7
  751. package/dist/esm/chunks/chunk.P2CW5MQO.js +0 -12
  752. package/dist/esm/chunks/chunk.P2CW5MQO.js.map +0 -7
  753. package/dist/esm/chunks/chunk.P2ZCNO63.js +0 -7
  754. package/dist/esm/chunks/chunk.P2ZCNO63.js.map +0 -7
  755. package/dist/esm/chunks/chunk.PEBT47AU.js +0 -7
  756. package/dist/esm/chunks/chunk.PH3HUFJJ.js +0 -7
  757. package/dist/esm/chunks/chunk.PH3HUFJJ.js.map +0 -7
  758. package/dist/esm/chunks/chunk.Q7JUJNYD.js +0 -7
  759. package/dist/esm/chunks/chunk.QCRRHGBA.js +0 -7
  760. package/dist/esm/chunks/chunk.QCRRHGBA.js.map +0 -7
  761. package/dist/esm/chunks/chunk.SBYX7VZ4.js +0 -7
  762. package/dist/esm/chunks/chunk.SFCGOCQK.js +0 -7
  763. package/dist/esm/chunks/chunk.SJJS4LYN.js +0 -7
  764. package/dist/esm/chunks/chunk.TYLOAD7R.js +0 -7
  765. package/dist/esm/chunks/chunk.UJ2WQOLO.js +0 -7
  766. package/dist/esm/chunks/chunk.UJ2WQOLO.js.map +0 -7
  767. package/dist/esm/chunks/chunk.VVXSELXX.js +0 -7
  768. package/dist/esm/chunks/chunk.VVXSELXX.js.map +0 -7
  769. package/dist/esm/chunks/chunk.VZWNNK7A.js +0 -7
  770. package/dist/esm/chunks/chunk.VZWNNK7A.js.map +0 -7
  771. package/dist/esm/chunks/chunk.X3C3J5MH.js +0 -7
  772. package/dist/esm/chunks/chunk.X3C3J5MH.js.map +0 -7
  773. package/dist/esm/chunks/chunk.XGOAYMK2.js +0 -7
  774. package/dist/esm/chunks/chunk.XGOAYMK2.js.map +0 -7
  775. package/dist/esm/chunks/chunk.YRMR7IOS.js +0 -7
  776. package/dist/esm/chunks/chunk.YRMR7IOS.js.map +0 -7
  777. package/dist/esm/chunks/chunk.YX7WLO5Y.js +0 -7
  778. package/dist/esm/chunks/chunk.YZLASVCK.js +0 -177
  779. package/dist/esm/chunks/chunk.YZLASVCK.js.map +0 -7
  780. package/dist/esm/chunks/chunk.ZDD2NLGP.js +0 -7
  781. package/dist/esm/chunks/chunk.ZKGSQQGU.js +0 -12
  782. package/dist/esm/chunks/chunk.ZKGSQQGU.js.map +0 -7
  783. package/dist/esm/chunks/chunk.ZVBZ3LGP.js +0 -7
  784. package/dist/esm/chunks/chunk.ZVBZ3LGP.js.map +0 -7
  785. package/dist/icon-button/forge-icon-button.css +0 -6
  786. package/styles/button/_button-base.scss +0 -183
  787. package/styles/button/_button-filled-theme.scss +0 -60
  788. package/styles/button/_button-filled.scss +0 -71
  789. package/styles/button/_button-outlined-theme.scss +0 -175
  790. package/styles/button/_button-outlined.scss +0 -76
  791. package/styles/button/_button-protected-theme.scss +0 -60
  792. package/styles/button/_button-protected.scss +0 -88
  793. package/styles/button/_button-ripple.scss +0 -69
  794. package/styles/button/_button-shared-theme.scss +0 -447
  795. package/styles/button/_button-text-theme.scss +0 -60
  796. package/styles/button/_button-text.scss +0 -57
  797. package/styles/button/_button.mixins.scss +0 -148
  798. package/styles/button/_mixins.scss +0 -183
  799. package/styles/checkbox/_checkbox-custom-properties.scss +0 -11
  800. package/styles/checkbox/_checkbox-theme.scss +0 -577
  801. package/styles/checkbox/_checkbox.mixins.scss +0 -595
  802. package/styles/icon-button/_mixins.scss +0 -345
  803. package/styles/icon-button/_variables.scss +0 -42
  804. package/styles/list/list/_mixins.scss +0 -45
  805. package/styles/list/list-item/_mixins.scss +0 -413
  806. package/styles/list/list-item/_variables.scss +0 -43
  807. package/styles/switch/_switch-mixins.scss +0 -301
  808. package/styles/switch/_switch-theme.scss +0 -701
  809. /package/dist/esm/chunks/{chunk.SMGXXR6K.js.map → chunk.2MSL7CYM.js.map} +0 -0
  810. /package/dist/esm/chunks/{chunk.M56LSSPW.js.map → chunk.3HCYRDRI.js.map} +0 -0
  811. /package/dist/esm/chunks/{chunk.4ZKX3SO5.js.map → chunk.3R4BUIQP.js.map} +0 -0
  812. /package/dist/esm/chunks/{chunk.YWNCJ7XP.js.map → chunk.3ZPSN2QG.js.map} +0 -0
  813. /package/dist/esm/chunks/{chunk.LFODKHUO.js.map → chunk.5N4N6DL6.js.map} +0 -0
  814. /package/dist/esm/chunks/{chunk.QOJESHEV.js.map → chunk.675V42JS.js.map} +0 -0
  815. /package/dist/esm/chunks/{chunk.DG4ZM3AW.js.map → chunk.AMLT6XJP.js.map} +0 -0
  816. /package/dist/esm/chunks/{chunk.MTKSU2BV.js.map → chunk.APPY5AYL.js.map} +0 -0
  817. /package/dist/esm/chunks/{chunk.4YFVG4KP.js.map → chunk.ARQMMZJL.js.map} +0 -0
  818. /package/dist/esm/chunks/{chunk.5MZ5SGMO.js.map → chunk.BB4UF5RX.js.map} +0 -0
  819. /package/dist/esm/chunks/{chunk.Q7Z3SJ5F.js.map → chunk.DTLZOIUQ.js.map} +0 -0
  820. /package/dist/esm/chunks/{chunk.OWCYRSI3.js.map → chunk.FLWNOP42.js.map} +0 -0
  821. /package/dist/esm/chunks/{chunk.S3JMOOWC.js.map → chunk.FXIWCHLW.js.map} +0 -0
  822. /package/dist/esm/chunks/{chunk.CWTV3TB3.js.map → chunk.GNDKQPDV.js.map} +0 -0
  823. /package/dist/esm/chunks/{chunk.ULY4H76N.js.map → chunk.HAKF2T2D.js.map} +0 -0
  824. /package/dist/esm/chunks/{chunk.WPG7NNQX.js.map → chunk.HOLCNJXC.js.map} +0 -0
  825. /package/dist/esm/chunks/{chunk.W4247Q2P.js.map → chunk.HRRJIFC5.js.map} +0 -0
  826. /package/dist/esm/chunks/{chunk.SU4FU7GK.js.map → chunk.IDMDBMBR.js.map} +0 -0
  827. /package/dist/esm/chunks/{chunk.FCATJM34.js.map → chunk.IHAHJPMB.js.map} +0 -0
  828. /package/dist/esm/chunks/{chunk.XKI46BH2.js.map → chunk.IMLJD35R.js.map} +0 -0
  829. /package/dist/esm/chunks/{chunk.624UKZFU.js.map → chunk.IT7XPDAV.js.map} +0 -0
  830. /package/dist/esm/chunks/{chunk.JLLHDJSO.js.map → chunk.JVLJH6PR.js.map} +0 -0
  831. /package/dist/esm/chunks/{chunk.4C6KHYUO.js.map → chunk.KPJWP77R.js.map} +0 -0
  832. /package/dist/esm/chunks/{chunk.2EWV2XBP.js.map → chunk.KV5IKYG2.js.map} +0 -0
  833. /package/dist/esm/chunks/{chunk.A62DE5PD.js.map → chunk.LCR4YH3O.js.map} +0 -0
  834. /package/dist/esm/chunks/{chunk.FWFOOQMA.js.map → chunk.LOG6GQOK.js.map} +0 -0
  835. /package/dist/esm/chunks/{chunk.YLG6ZC5K.js.map → chunk.NUMKGUCK.js.map} +0 -0
  836. /package/dist/esm/chunks/{chunk.XI3MJSIS.js.map → chunk.O6V3YNMO.js.map} +0 -0
  837. /package/dist/esm/chunks/{chunk.TK5I4RHF.js.map → chunk.QLCVRJ3Q.js.map} +0 -0
  838. /package/dist/esm/chunks/{chunk.Q7JUJNYD.js.map → chunk.RP674CRC.js.map} +0 -0
  839. /package/dist/esm/chunks/{chunk.LTT67HTW.js.map → chunk.SLJ6HDK7.js.map} +0 -0
  840. /package/dist/esm/chunks/{chunk.6OW6Q3EW.js.map → chunk.TU74SREL.js.map} +0 -0
  841. /package/dist/esm/chunks/{chunk.EK24Y56W.js.map → chunk.URJQNB3S.js.map} +0 -0
  842. /package/dist/esm/chunks/{chunk.K3KAM2PL.js.map → chunk.W2LN45WY.js.map} +0 -0
  843. /package/dist/esm/chunks/{chunk.Z6FCL3G3.js.map → chunk.XEFWZKHQ.js.map} +0 -0
  844. /package/dist/esm/chunks/{chunk.NR3MLTXF.js.map → chunk.XLL7L2UB.js.map} +0 -0
  845. /package/dist/esm/chunks/{chunk.3HB22HCX.js.map → chunk.XYAZVLPR.js.map} +0 -0
  846. /package/dist/esm/chunks/{chunk.2QHD3DCR.js.map → chunk.YAERJVPL.js.map} +0 -0
  847. /package/dist/esm/chunks/{chunk.ZDD2NLGP.js.map → chunk.YBZK6LJZ.js.map} +0 -0
  848. /package/dist/esm/chunks/{chunk.ZJC2DSNM.js.map → chunk.Z5ZLKM7W.js.map} +0 -0
  849. /package/styles/core/styles/tokens/{_color-palette.scss → color-palette/_material-color-palette.scss} +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/menu/menu-constants.ts", "../../src/menu/menu-adapter.ts", "../../src/menu/menu-foundation.ts", "../../src/menu/menu.ts", "../../src/menu/index.ts"],
4
+ "sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../constants';\nimport { IListDropdownOption, IListDropdownOptionGroup } from '../list-dropdown';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}menu`;\n\nconst classes = {\n POPUP: 'forge-menu__popup',\n MENU: 'mdc-menu'\n};\n\nconst selectors = {\n TOGGLE: `.${elementName}__toggle,[${elementName}-toggle],forge-button,button,[type=button],[role=button],a,[tabindex]:not([tabindex^=\"-\"])`,\n MENU_LIST: 'forge-list'\n};\n\nconst attributes = {\n OPEN: 'open',\n PLACEMENT: 'placement',\n SELECTED_INDEX: 'selected-index',\n SELECTED_VALUE: 'selected-value',\n DENSE: 'dense',\n ICON_CLASS: 'icon-class',\n PERSIST_SELECTION: 'persist-selection',\n MODE: 'mode',\n SYNC_POPUP_WIDTH: 'sync-popup-width',\n POPUP_CLASSES: 'popup-classes',\n OPTION_LIMIT: 'option-limit',\n OBSERVE_SCROLL: 'observe-scroll',\n OBSERVE_SCROLL_THRESHOLD: 'observe-scroll-threshold'\n};\n\nconst events = {\n SELECT: `${elementName}-select`,\n OPEN: `${elementName}-open`,\n CLOSE: `${elementName}-close`,\n ACTIVE_CHANGE: `${elementName}-active-change`\n};\n\nconst numbers = {\n CHILD_MOUSE_LEAVE_TIMEOUT: 300,\n POPUP_MOUSE_LEAVE_TIMEOUT: 500\n};\n\nexport const MENU_CONSTANTS = {\n elementName,\n classes,\n selectors,\n attributes,\n events,\n numbers\n};\n\nexport interface IMenuSelectEventData<T = any, K = any> {\n index: number;\n value?: T;\n parentValue?: K;\n}\n\nexport interface IMenuActiveChangeEventData {\n id: string;\n}\n\nexport interface IMenuOption<T = any> extends IListDropdownOption<T> {\n icon?: string;\n selected?: boolean;\n}\n\nexport interface IMenuOptionGroup extends IListDropdownOptionGroup {}\n\nexport type MenuOptionBuilder = (option: IMenuOption, parentElement: HTMLElement) => HTMLElement | string | void;\nexport type MenuOptionFactory = (() => IMenuOption[]) | (() => Promise<IMenuOption[]>);\nexport type MenuMode = 'click' | 'cascade';\n", "import { BaseAdapter, IBaseAdapter } from '../core/base/base-adapter';\nimport { IMenuOption } from './index';\nimport { IMenuComponent } from './menu';\nimport { MENU_CONSTANTS, IMenuSelectEventData } from './menu-constants';\nimport { IListDropdownConfig, IListDropdown, ListDropdown } from '../list-dropdown';\nimport { IListComponent, IListItemComponent, LIST_CONSTANTS, LIST_ITEM_CONSTANTS } from '../list';\n\nexport interface IMenuAdapter extends IBaseAdapter {\n getDropdownElement(): HTMLElement | null;\n initializeTarget(): void;\n initializeAccessibility(id: string): void;\n hasTargetElement(): boolean;\n addTargetListener(event: string, callback: (event: Event) => void, bubbles?: boolean): void;\n removeTargetListener(event: string, callback: (event: Event) => void): void;\n attachMenu(config: IListDropdownConfig): void;\n detachMenu(): void;\n setOptions(options: IMenuOption[]): void;\n getActiveOptionIndex(): number;\n setActiveOption(index: number): void;\n activateFirstOption(): void;\n setCascadeTargetInactive(): void;\n propagateKey(key: string): void;\n proxyKeyboardEventToChild(evt: KeyboardEvent, id: string): void;\n toggleChildMenu(index: number, open?: boolean): void;\n focusTarget(): void;\n isTargetFocused(): boolean;\n updateActiveDescendant(id: string): void;\n isOwnElement(element: Element): boolean;\n addDropdownListener(type: string, listener: (evt: any) => void): void;\n createChildMenu(index: number, parentValue: any, openCb: (index: number) => void, closeCb: (index: number) => void, selectCb: (data: IMenuSelectEventData) => void): IMenuComponent;\n closeOtherChildMenus(excludeIndex?: number): void;\n setSelectedValues(values: any[]): void;\n}\n\nexport class MenuAdapter extends BaseAdapter<IMenuComponent> implements IMenuAdapter {\n private _targetElement: HTMLElement | null;\n private _listDropdown?: IListDropdown;\n private _childMenus = new Map<number, IMenuComponent>();\n\n constructor(component: IMenuComponent) {\n super(component);\n }\n\n public getDropdownElement(): HTMLElement | null {\n return this._listDropdown?.dropdownElement ?? null;\n }\n\n public hasTargetElement(): boolean {\n return !!this._targetElement;\n }\n\n public initializeTarget(): void {\n this._targetElement = this._component.querySelector(MENU_CONSTANTS.selectors.TOGGLE);\n if (!this._targetElement) {\n this._targetElement = this._component.firstElementChild as HTMLElement;\n }\n }\n\n public initializeAccessibility(id: string): void {\n if (!this._targetElement) {\n return;\n }\n\n this._targetElement.setAttribute('aria-atomic', 'true');\n this._targetElement.setAttribute('aria-live', 'assertive');\n this._targetElement.setAttribute('aria-haspopup', 'true');\n this._targetElement.setAttribute('aria-expanded', 'false');\n\n if (!this._targetElement.hasAttribute('aria-label')) {\n this._targetElement.setAttribute('aria-label', this._targetElement.textContent || '');\n }\n }\n\n public addTargetListener(event: string, callback: (event: Event) => void, bubbles = false): void {\n if (this._targetElement) {\n this._targetElement.addEventListener(event, callback, bubbles);\n }\n }\n\n public removeTargetListener(event: string, callback: (event: Event) => void): void {\n if (this._targetElement) {\n this._targetElement.removeEventListener(event, callback);\n }\n }\n\n public attachMenu(config: IListDropdownConfig): void {\n if (this._listDropdown || !this._targetElement) {\n return;\n }\n this._listDropdown = new ListDropdown(this._targetElement as HTMLElement, config);\n this._listDropdown.open();\n this._targetElement.setAttribute('aria-expanded', 'true');\n this._targetElement.setAttribute('aria-controls', `list-dropdown-popup-${config.id}`);\n }\n\n public setOptions(options: IMenuOption[]): void {\n if (this._listDropdown) {\n this._listDropdown.setOptions(options);\n }\n }\n\n public detachMenu(): void {\n if (this._targetElement) {\n this._targetElement.removeAttribute('aria-activedescendant');\n this._targetElement.removeAttribute('aria-expanded');\n this._targetElement.removeAttribute('aria-controls');\n }\n\n if (this._listDropdown) {\n this._listDropdown.close();\n this._listDropdown.destroy();\n this._listDropdown = undefined;\n }\n }\n\n public setActiveOption(index: number): void {\n this._listDropdown?.activateOption(index);\n }\n\n public activateFirstOption(): void {\n this._listDropdown?.activateFirstOption();\n }\n\n public setCascadeTargetInactive(): void {\n const listItem = this._targetElement as IListItemComponent;\n if (listItem?.active) {\n listItem.active = false;\n }\n }\n\n public getActiveOptionIndex(): number {\n return this._listDropdown?.getActiveOptionIndex() ?? -1;\n }\n\n public focusTarget(): void {\n if (this._targetElement) {\n this._targetElement.focus();\n }\n }\n\n public isTargetFocused(): boolean {\n return document.activeElement === this._targetElement;\n }\n\n public updateActiveDescendant(id: string): void {\n if (!this._targetElement) {\n return;\n }\n if (id) {\n this._targetElement.setAttribute('aria-activedescendant', id);\n } else {\n this._targetElement.removeAttribute('aria-activedescendant');\n }\n }\n\n public addDropdownListener(type: string, listener: (evt: any) => void): void {\n if (!this._listDropdown || !this._listDropdown.dropdownElement) {\n return;\n }\n this._listDropdown.dropdownElement.addEventListener(type, listener);\n }\n\n public isOwnElement(el: Element): boolean {\n if (!this._targetElement || !this._listDropdown || !this._listDropdown.dropdownElement) {\n return false;\n }\n return this._targetElement.contains(el) || !!this._listDropdown.dropdownElement.contains(el);\n }\n\n public propagateKey(key: string): void {\n this._listDropdown?.handleKey(key);\n }\n\n public proxyKeyboardEventToChild(evt: KeyboardEvent, id: string): void {\n if (!this.getDropdownElement()) {\n return;\n }\n const openMenu = this._getOpenChildMenu(id);\n if (openMenu) {\n openMenu.propagateKeyEvent(evt);\n }\n }\n\n public toggleChildMenu(index: number, open?: boolean): void {\n const listItems = this._getListItems();\n const listItem = listItems[index];\n const childMenu = listItem.parentElement as IMenuComponent;\n if (childMenu && childMenu.tagName.toLowerCase() === MENU_CONSTANTS.elementName) {\n if (open === undefined) {\n childMenu.open = !childMenu.open;\n } else {\n childMenu.open = open;\n }\n childMenu.activateFirstOption();\n }\n }\n\n public createChildMenu(index: number, parentValue: any, openCb: (index: number) => void, closeCb: (index: number) => void, selectCb: (data: IMenuSelectEventData) => void): IMenuComponent {\n const menu = document.createElement('forge-menu');\n menu.style.display = 'block';\n\n // Set listeners to notify the parent menu when anything important happens within a child menu that needs to be propagated to the root menu\n menu.addEventListener(MENU_CONSTANTS.events.OPEN, () => {\n this._childMenus.set(index, menu);\n openCb(index);\n });\n menu.addEventListener(MENU_CONSTANTS.events.CLOSE, () => {\n this._childMenus.delete(index);\n closeCb(index);\n });\n menu.addEventListener(MENU_CONSTANTS.events.SELECT, (evt: CustomEvent<IMenuSelectEventData>) => {\n evt.stopPropagation();\n selectCb({ ...evt.detail, parentValue });\n });\n\n return menu;\n }\n\n public closeOtherChildMenus(excludeIndex?: number): void {\n const menusToRemove: number[] = [];\n this._childMenus.forEach((menu, index) => {\n if (index !== excludeIndex) {\n menu.open = false;\n menusToRemove.push(index);\n }\n });\n menusToRemove.forEach(index => this._childMenus.delete(index));\n }\n\n public setSelectedValues(values: any[]): void {\n this._listDropdown?.setSelectedValues(values);\n }\n\n private _getOpenChildMenu(id: string): IMenuComponent | null {\n if (!this.getDropdownElement()) {\n return null;\n }\n const list = this._getOwnList(id);\n return list ? list.querySelector(`${MENU_CONSTANTS.elementName}[${MENU_CONSTANTS.attributes.OPEN}]`) : null;\n }\n\n private _getOwnList(id: string): IListComponent | null {\n const popup = this.getDropdownElement();\n if (!popup) {\n return null;\n }\n return popup.querySelector(`${LIST_CONSTANTS.elementName}[id=\"list-dropdown-list-${id}\"]`);\n }\n\n private _getListItems(): IListItemComponent[] {\n const popup = this.getDropdownElement();\n if (!popup) {\n return [];\n }\n const listElement = popup.querySelector(LIST_CONSTANTS.elementName);\n if (listElement) {\n return Array.from(listElement.querySelectorAll(LIST_ITEM_CONSTANTS.elementName)) as IListItemComponent[];\n }\n return [];\n }\n}\n", "import { ICustomElementFoundation, isArray, randomChars } from '@tylertech/forge-core';\nimport { ICON_CLASS_NAME } from '../constants';\nimport { CascadingListDropdownAwareFoundation, IListDropdownCascadingElementFactoryConfig, IListDropdownConfig, ListDropdownAsyncStyle, ListDropdownType } from '../list-dropdown';\nimport { isListDropdownOptionType, ListDropdownOptionType } from '../list-dropdown/list-dropdown-utils';\nimport { IPopupPosition, PopupPlacement } from '../popup';\nimport { IMenuOption } from './index';\nimport { IMenuAdapter } from './menu-adapter';\nimport { IMenuActiveChangeEventData, IMenuOptionGroup, IMenuSelectEventData, MenuMode, MenuOptionBuilder, MenuOptionFactory, MENU_CONSTANTS } from './menu-constants';\n\nexport interface IMenuFoundation extends ICustomElementFoundation {\n initialize(): void;\n disconnect(): void;\n onKeydown(evt: KeyboardEvent): void;\n open: boolean;\n options: Array<IMenuOption | IMenuOptionGroup>;\n optionsFactory: MenuOptionFactory | undefined;\n selectedIndex: number;\n selectedValue: any;\n placement: PopupPlacement;\n fallbackPlacements: PopupPlacement[];\n dense: boolean;\n iconClass: string;\n persistSelection: boolean;\n mode: MenuMode;\n popupOffset: IPopupPosition;\n optionBuilder: MenuOptionBuilder | undefined;\n activateFirstOption(): void;\n}\n\nexport class MenuFoundation extends CascadingListDropdownAwareFoundation<IMenuOption | IMenuOptionGroup> implements IMenuFoundation {\n private _optionsFactory: MenuOptionFactory | undefined;\n private _placement: PopupPlacement = 'bottom-start';\n private _fallbackPlacements: PopupPlacement[] = [];\n private _dense = false;\n private _selectedValue: any;\n private _iconClass = ICON_CLASS_NAME;\n private _persistSelection = false;\n private _mode: MenuMode = 'click';\n private _popupOffset: IPopupPosition;\n private _optionBuilder: MenuOptionBuilder | undefined;\n private _identifier: string;\n private _clickListener: (evt: MouseEvent) => void;\n private _blurListener: (evt: MouseEvent) => void;\n private _selectListener: (value: any) => void;\n private _keydownListener: (evt: KeyboardEvent) => void;\n private _activeChangeListener: (id: string) => void;\n \n constructor(private _adapter: IMenuAdapter) {\n super({\n popupTimeout: MENU_CONSTANTS.numbers.POPUP_MOUSE_LEAVE_TIMEOUT,\n targetTimeout: MENU_CONSTANTS.numbers.CHILD_MOUSE_LEAVE_TIMEOUT\n });\n this._identifier = randomChars();\n this._clickListener = evt => this._onTargetClick(evt);\n this._blurListener = evt => this._onTargetBlur(evt);\n this._selectListener = value => this._handleSelectEvent(value);\n this._keydownListener = evt => this.onKeydown(evt);\n this._activeChangeListener = id => this._onActiveOptionChanged(id);\n }\n\n public initialize(): void {\n this._adapter.initializeTarget();\n this._adapter.initializeAccessibility(this._identifier);\n this._initializeInteractionListeners();\n }\n\n public disconnect(): void {\n if (this._open) {\n this._closeDropdown();\n }\n this._destroyInteractionListeners();\n }\n\n public activateFirstOption(): void {\n this._adapter.activateFirstOption();\n }\n\n private _applyMode(): void {\n if (!this._adapter.hasTargetElement()) {\n return;\n }\n\n if (this._mode !== 'cascade') {\n this._adapter.addTargetListener('click', this._clickListener);\n } else {\n this._attachCascadingListeners();\n }\n }\n\n private _initializeInteractionListeners(): void {\n if (!this._adapter.hasTargetElement()) {\n return;\n }\n this._applyMode();\n this._adapter.addTargetListener('keydown', this._keydownListener, true);\n this._adapter.addTargetListener('focusout', this._blurListener);\n }\n\n private _destroyInteractionListeners(): void {\n if (!this._adapter.hasTargetElement()) {\n return;\n }\n this._adapter.removeTargetListener('keydown', this._clickListener);\n this._adapter.removeTargetListener('focusout', this._blurListener);\n this._adapter.removeTargetListener('click', this._clickListener);\n this._detachCascadingListeners();\n }\n\n protected _attachCascadingListeners(): void {\n this._adapter.addTargetListener('mouseenter', this._targetMouseEnterListener);\n this._adapter.addTargetListener('mouseleave', this._targetMouseLeaveListener);\n\n // We listen for document mousemove events only to track mouse coords for use when determining\n // if popups should open/close after specific delays\n this._adapter.addDocumentListener('mousemove', this._documentMouseMoveListener);\n }\n\n protected _detachCascadingListeners(): void {\n this._adapter.removeTargetListener('mouseenter', this._targetMouseEnterListener);\n this._adapter.removeTargetListener('mouseleave', this._targetMouseLeaveListener);\n this._adapter.removeDocumentListener('mousemove', this._documentMouseMoveListener);\n }\n\n private get _nonDividerOptions(): IMenuOption[] {\n return this._flatOptions.filter(o => !o.divider);\n }\n\n private get _flatOptions(): IMenuOption[] {\n if (isListDropdownOptionType(this._options, ListDropdownOptionType.Group)) {\n return (this._options as IMenuOptionGroup[]).reduce((previousValue, currentValue) => previousValue.concat(currentValue.options), [] as IMenuOption[]) as IMenuOption[];\n }\n return this._options as IMenuOption[];\n }\n\n private _onTargetClick(evt: MouseEvent): void {\n if (this._open) {\n this._closeDropdown();\n return;\n }\n this.open = !this._open;\n if (this._open) {\n this._adapter.focusTarget();\n }\n }\n\n private _onTargetBlur(evt: Event): void {\n if (this._open) {\n this._closeDropdown();\n }\n }\n\n private _onActiveOptionChanged(id: string): void {\n // We need to dispatch an event when the active descendant changes to propagate that to the proper target element\n const data: IMenuActiveChangeEventData = { id };\n const canSetActiveDescendant = this._adapter.emitHostEvent(MENU_CONSTANTS.events.ACTIVE_CHANGE, data, true, true);\n if (this._mode !== 'cascade' && canSetActiveDescendant) {\n this._adapter.updateActiveDescendant(id);\n }\n }\n\n public onKeydown(evt: KeyboardEvent): void {\n // If we have any child menus open, we need to proxy the keyboard events to those and exit\n if (this._childOpen) {\n this._adapter.proxyKeyboardEventToChild(evt, this._identifier);\n return;\n }\n\n switch (evt.code) {\n case 'Tab':\n if (this._open) {\n this._selectActiveOption();\n }\n break;\n case 'Escape':\n if (this._open) {\n evt.preventDefault();\n evt.stopPropagation();\n this._closeDropdown();\n }\n break;\n case 'Space':\n evt.preventDefault();\n\n if (this._open) {\n this._closeDropdown();\n } else {\n this._openDropdown({ fromKeyboard: true });\n }\n break;\n case 'Home':\n case 'End':\n if (this._open) {\n evt.preventDefault();\n this._adapter.propagateKey(evt.code);\n }\n break;\n case 'Enter':\n evt.preventDefault();\n\n if (!this._open) {\n evt.preventDefault();\n this._openDropdown({ fromKeyboard: true });\n return;\n }\n\n evt.stopImmediatePropagation();\n\n this._adapter.propagateKey(evt.code);\n\n // Check if we need to toggle the child menu open state\n const activeIndex = this._adapter.getActiveOptionIndex();\n const activeOption = this._nonDividerOptions[activeIndex];\n if (activeOption && activeOption.options && activeOption.options.length) {\n this._adapter.toggleChildMenu(activeIndex);\n }\n break;\n case 'ArrowUp':\n case 'ArrowDown':\n if (this._open) {\n evt.stopImmediatePropagation();\n }\n\n evt.preventDefault();\n\n if (!this._open && evt.code === 'ArrowDown') {\n this._openDropdown({ fromKeyboard: true });\n this._adapter.activateFirstOption();\n return;\n }\n\n this._adapter.propagateKey(evt.code);\n break;\n case 'ArrowLeft':\n if (this._open) {\n evt.stopImmediatePropagation();\n }\n if (this._mode === 'cascade' && this._open) {\n this._closeDropdown();\n }\n break;\n case 'ArrowRight':\n if (this._open) {\n evt.stopImmediatePropagation();\n }\n if (!this._open) {\n return;\n }\n const hoveredIndex = this._adapter.getActiveOptionIndex();\n const hoveredOption = this._nonDividerOptions[hoveredIndex];\n if (hoveredOption && hoveredOption.options) {\n this._adapter.toggleChildMenu(hoveredIndex, evt.code === 'ArrowRight');\n return;\n }\n break;\n }\n }\n\n private async _openMenu({ fromKeyboard }: { fromKeyboard?: boolean } = {}): Promise<void> {\n this._open = true;\n let options: IMenuOption[] = [];\n\n if (typeof this._optionsFactory === 'function') {\n this._loadOptionsAsync();\n this._options = [];\n } else {\n if (!this._options || !this._options.length) {\n return;\n }\n options = this._options as IMenuOption[];\n }\n\n if (!this._persistSelection) {\n options.forEach(o => o.selected = false);\n }\n\n this._mapIconToLeadingIcon();\n\n const selectedValues = this._persistSelection ? this._getSelectedValues() : [];\n\n const config: IListDropdownConfig = {\n id: this._identifier,\n type: ListDropdownType.Menu,\n options: this._options,\n selectedValues,\n iconClass: this._iconClass,\n dense: this._dense,\n multiple: false,\n popupStatic: true,\n allowBusy: true,\n asyncStyle: ListDropdownAsyncStyle.Spinner,\n optionBuilder: this._optionBuilder,\n optionLimit: this._optionLimit,\n headerBuilder: this._popupHeaderBuilder,\n footerBuilder: this._popupFooterBuilder,\n observeScroll: this._observeScroll,\n observeScrollThreshold: this._observeScrollThreshold,\n popupPlacement: this._placement,\n popupFallbackPlacements: this._fallbackPlacements,\n activeStartIndex: fromKeyboard ? 0 : undefined,\n popupClasses: [\n MENU_CONSTANTS.classes.POPUP,\n MENU_CONSTANTS.classes.MENU,\n ...this._popupClasses as string[]\n ],\n syncWidth: this._syncPopupWidth,\n activeChangeCallback: this._activeChangeListener,\n selectCallback: this._selectListener,\n popupOffset: this._popupOffset,\n cascadingElementFactory: params => this._createCascadingElement(params)\n };\n\n this._adapter.setHostAttribute(MENU_CONSTANTS.attributes.OPEN, '');\n this._adapter.attachMenu(config);\n\n // If this menu is in a hover mode, we need to listen for mouse enter/leave events to know when the user is hovering over the popup\n if (this._mode === 'cascade') {\n this._adapter.addDropdownListener('mouseenter', this._childPopupMouseEnterListener);\n this._adapter.addDropdownListener('mouseleave', this._childPopupMouseLeaveListener);\n }\n \n this._adapter.addDropdownListener(MENU_CONSTANTS.events.ACTIVE_CHANGE, (evt: CustomEvent<IMenuActiveChangeEventData>) => {\n this._onActiveOptionChanged(evt.detail.id);\n });\n this._adapter.emitHostEvent(MENU_CONSTANTS.events.OPEN);\n }\n\n private _closeMenu(): void {\n this._open = false;\n this._childOpen = false;\n this._adapter.detachMenu();\n\n if (this._activeMouseLeaveTimeout !== undefined) {\n window.clearTimeout(this._activeMouseLeaveTimeout);\n }\n\n this._adapter.removeHostAttribute(MENU_CONSTANTS.attributes.OPEN);\n this._adapter.emitHostEvent(MENU_CONSTANTS.events.CLOSE);\n }\n\n private _loadOptionsAsync(): Promise<void> {\n if (!this._optionsFactory) {\n if (this._open) {\n this._closeMenu();\n }\n return Promise.resolve();\n }\n\n return Promise.resolve(this._optionsFactory())\n .then(results => {\n if (!this._persistSelection) {\n results.forEach(o => o.selected = false);\n }\n\n if (this._open) {\n if (results && isArray(results) && results.length) {\n this._options = results;\n this._adapter.setOptions(results);\n const selectedValues = this._getSelectedValues();\n if (selectedValues.length) {\n this._adapter.setSelectedValues(selectedValues);\n }\n } else if (this._open) {\n this._closeDropdown();\n }\n }\n })\n .catch(e => {\n console.error('An unexpected error ocurred while opening the menu:', e);\n if (this._open) {\n this._closeDropdown();\n }\n });\n }\n\n private _handleSelectEvent(value: any): void {\n const index = this._nonDividerOptions.findIndex(o => o.value === value);\n if (index < 0) {\n return;\n }\n this._selectOptionByIndex(index);\n }\n\n private _selectActiveOption(): void {\n const index = this._adapter.getActiveOptionIndex();\n if (index >= 0 && this._nonDividerOptions[index]) {\n this._selectOptionByIndex(index);\n }\n }\n\n private _selectOptionByIndex(index: number): void {\n const { options, value } = this._nonDividerOptions[index];\n\n // We ignore selections if the option has child options\n if (options) {\n this._adapter.setActiveOption(index);\n return;\n }\n\n this._closeDropdown();\n \n const data: IMenuSelectEventData = { index, value };\n const isCancelled = !this._adapter.emitHostEvent(MENU_CONSTANTS.events.SELECT, data, true, true);\n if (!isCancelled) {\n this._selectedValue = this._persistSelection ? value : undefined;\n }\n }\n\n private _getSelectedValues(): any[] {\n const values = this._flatOptions.filter(o => o.selected).map(o => o.value);\n if (this._selectedValue !== undefined) {\n values.push(this._selectedValue);\n }\n return values;\n }\n\n /** Called when a child menu option is selected. */\n protected _onCascadingOptionSelected(data: IMenuSelectEventData): void {\n if (this._persistSelection) {\n this._selectedValue = data.value;\n }\n this._adapter.emitHostEvent(MENU_CONSTANTS.events.SELECT, data);\n this._closeDropdown();\n }\n\n /** Called when a child menu is opened off of one of our menu options. */\n protected _onCascadingChildOpen(index: number): void {\n super._clearMouseLeaveTimeout();\n this._adapter.closeOtherChildMenus(index);\n this._childOpen = true;\n this._adapter.setActiveOption(index);\n }\n\n /** Called when a child menu is closed off of one of our menu options. */\n protected _onCascadingChildClose(index: number): void {\n this._childOpen = false;\n }\n\n protected _closeDropdown(): void {\n this._closeMenu();\n }\n\n protected _openDropdown({ fromKeyboard }: { fromKeyboard?: boolean } = {}): void {\n this._openMenu({ fromKeyboard });\n }\n\n protected _setCascadeTargetInactive(): void {\n this._adapter.setCascadeTargetInactive();\n }\n\n protected _isOwnElement(element: Element): boolean {\n return this._adapter.isOwnElement(element);\n }\n\n private _createCascadingElement({ index, options, parentValue }: IListDropdownCascadingElementFactoryConfig): HTMLElement {\n const menu = this._adapter.createChildMenu(\n index,\n parentValue,\n this._onCascadingChildOpen.bind(this),\n this._onCascadingChildClose.bind(this),\n this._onCascadingOptionSelected.bind(this)\n );\n menu.mode = 'cascade';\n menu.popupOffset = { x: 0, y: -8 };\n menu.dense = this._dense;\n menu.placement = 'right-start';\n menu.fallbackPlacements = ['left-start', 'right-start']; // Cascading menus should only fallback to left or right placement if needed\n menu.persistSelection = this._persistSelection;\n if (this._persistSelection) {\n menu.selectedValue = this._selectedValue;\n }\n menu.options = options;\n menu.optionBuilder = this._optionBuilder;\n menu.iconClass = this._iconClass;\n\n return menu;\n }\n\n private _mapIconToLeadingIcon(): void {\n // For backwards compatibility with old API, map the old \"icon\" property to the new \"leadingIcon\" property (if exists)\n this._flatOptions.filter(o => o.icon).forEach(o => o.leadingIcon = o.icon);\n }\n\n public get open(): boolean {\n return this._open;\n }\n public set open(value: boolean) {\n value = Boolean(value);\n if (this._open !== value) {\n this._open = value;\n if (value) {\n this._openDropdown();\n } else {\n this._closeDropdown();\n }\n }\n }\n\n public set options(options: IMenuOption[]) {\n if (typeof options === 'function') {\n this.optionsFactory = options;\n } else {\n this.optionsFactory = undefined;\n // Intentional shallow copy of member properties. These member objects have properties that are references to functions.\n this._options = options.map(o => ({ ...o }));\n \n if (this._open) {\n this._mapIconToLeadingIcon();\n this._adapter.setOptions(this._options as IMenuOption[]);\n if (this._persistSelection) {\n const selectedValues = this._getSelectedValues();\n if (selectedValues.length) {\n this._adapter.setSelectedValues(selectedValues);\n }\n }\n }\n }\n }\n public get options(): IMenuOption[] {\n if (!this._options) {\n return [];\n }\n\n // Intentional shallow copy of member properties. These member objects have properties that are references to functions.\n return this._flatOptions.map(o => ({ ...o }));\n }\n\n public set optionsFactory(factory: MenuOptionFactory | undefined) {\n this._optionsFactory = factory;\n }\n\n public set selectedIndex(value: number) {\n const option = this._nonDividerOptions[value];\n if (option && option.value !== this._selectedValue) {\n this.selectedValue = option.value;\n }\n }\n public get selectedIndex(): number {\n return this._selectedValue !== undefined ? this._nonDividerOptions.findIndex(o => o.value === this._selectedValue) : -1;\n }\n\n public set selectedValue(value: any) {\n if (this._selectedValue !== value) {\n this._selectedValue = value;\n this._adapter.setSelectedValues(this._selectedValue);\n }\n }\n public get selectedValue(): any {\n return this._selectedValue;\n }\n\n public get placement(): PopupPlacement {\n return this._placement;\n }\n public set placement(value: PopupPlacement) {\n if (this._placement !== value) {\n this._placement = value || 'bottom-start';\n this._adapter.setHostAttribute(MENU_CONSTANTS.attributes.PLACEMENT, this._placement);\n }\n }\n\n public get fallbackPlacements(): PopupPlacement[] {\n return this._fallbackPlacements;\n }\n public set fallbackPlacements(value: PopupPlacement[]) {\n this._fallbackPlacements = Array.isArray(value) ? value : [];\n }\n\n public get dense(): boolean {\n return this._dense;\n }\n public set dense(value: boolean) {\n this._dense = value;\n }\n\n public get iconClass(): string {\n return this._iconClass;\n }\n public set iconClass(value: string) {\n this._iconClass = value;\n }\n\n public get persistSelection(): boolean {\n return this._persistSelection;\n }\n public set persistSelection(value: boolean) {\n if (this._persistSelection === value) {\n return;\n }\n\n this._persistSelection = value;\n this._adapter.toggleHostAttribute(MENU_CONSTANTS.attributes.PERSIST_SELECTION, this._persistSelection);\n\n if (!this._persistSelection) {\n this._flatOptions.forEach(o => o.selected = false);\n this._selectedValue = undefined;\n }\n }\n\n public get mode(): MenuMode {\n return this._mode;\n }\n public set mode(value: MenuMode) {\n if (this._mode !== value) {\n this._mode = value;\n this._destroyInteractionListeners();\n this._applyMode();\n this._adapter.setHostAttribute(MENU_CONSTANTS.attributes.MODE, this._mode);\n }\n }\n\n public get popupOffset(): IPopupPosition {\n return this._popupOffset;\n }\n public set popupOffset(value: IPopupPosition) {\n this._popupOffset = value;\n }\n\n public get optionBuilder(): MenuOptionBuilder | undefined {\n return this._optionBuilder;\n }\n public set optionBuilder(cb: MenuOptionBuilder | undefined) {\n this._optionBuilder = cb;\n }\n\n public get popupElement(): HTMLElement | null {\n return this._adapter.getDropdownElement();\n }\n}\n", "import { attachShadowTemplate, coerceBoolean, CustomElement, ensureChild, FoundationProperty, isDefined } from '@tylertech/forge-core';\nimport { tylIconArrowRight } from '@tylertech/tyler-icons/standard';\nimport { CircularProgressComponent } from '../circular-progress';\nimport { IconRegistry } from '../icon';\nimport { LinearProgressComponent } from '../linear-progress';\nimport { ListComponent } from '../list';\nimport { IListDropdownAware, ListDropdownAware } from '../list-dropdown/list-dropdown-aware';\nimport { IPopupPosition, PopupComponent, PopupPlacement } from '../popup';\nimport { MenuAdapter } from './menu-adapter';\nimport { IMenuActiveChangeEventData, IMenuOption, IMenuOptionGroup, IMenuSelectEventData, MenuMode, MenuOptionBuilder, MenuOptionFactory, MENU_CONSTANTS } from './menu-constants';\nimport { MenuFoundation } from './menu-foundation';\nconst template = '<template><slot></slot></template>';\nconst styles = ':host{display:-webkit-inline-box;display:inline-flex}:host([hidden]){display:none}';\n\nexport interface IMenuComponent extends IListDropdownAware {\n open: boolean;\n options: Array<IMenuOption | IMenuOptionGroup> | MenuOptionFactory;\n selectedIndex: number;\n selectedValue: number;\n placement: PopupPlacement;\n fallbackPlacements: PopupPlacement[];\n dense: boolean;\n iconClass: string;\n persistSelection: boolean;\n mode: MenuMode;\n popupOffset: IPopupPosition;\n optionBuilder: MenuOptionBuilder | undefined;\n popupElement: HTMLElement | undefined;\n propagateKeyEvent(evt: KeyboardEvent): void;\n activateFirstOption(): void;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-menu': IMenuComponent;\n }\n\n interface HTMLElementEventMap {\n 'forge-menu-select': CustomEvent<IMenuSelectEventData>;\n 'forge-menu-open': CustomEvent<void>;\n 'forge-menu-close': CustomEvent<void>;\n 'forge-menu-active-change': CustomEvent<IMenuActiveChangeEventData>;\n }\n}\n\n/**\n * The web component class behind the `<forge-menu>` custom element.\n * \n * @tag forge-menu\n */\n@CustomElement({\n name: MENU_CONSTANTS.elementName,\n dependencies: [\n PopupComponent,\n ListComponent,\n CircularProgressComponent,\n LinearProgressComponent\n ]\n})\nexport class MenuComponent extends ListDropdownAware implements IMenuComponent {\n public static get observedAttributes(): string[] {\n return [\n MENU_CONSTANTS.attributes.OPEN,\n MENU_CONSTANTS.attributes.PLACEMENT,\n MENU_CONSTANTS.attributes.SELECTED_INDEX,\n MENU_CONSTANTS.attributes.SELECTED_VALUE,\n MENU_CONSTANTS.attributes.DENSE,\n MENU_CONSTANTS.attributes.ICON_CLASS,\n MENU_CONSTANTS.attributes.PERSIST_SELECTION,\n MENU_CONSTANTS.attributes.MODE,\n MENU_CONSTANTS.attributes.SYNC_POPUP_WIDTH,\n MENU_CONSTANTS.attributes.POPUP_CLASSES,\n MENU_CONSTANTS.attributes.OPTION_LIMIT,\n MENU_CONSTANTS.attributes.OBSERVE_SCROLL,\n MENU_CONSTANTS.attributes.OBSERVE_SCROLL_THRESHOLD\n ];\n }\n\n private _foundation: MenuFoundation;\n\n constructor() {\n super();\n IconRegistry.define(tylIconArrowRight);\n this._foundation = new MenuFoundation(new MenuAdapter(this));\n attachShadowTemplate(this, template, styles);\n }\n\n public connectedCallback(): void {\n if (this.querySelector(MENU_CONSTANTS.selectors.TOGGLE)) {\n this._foundation.initialize();\n } else {\n ensureChild(this, MENU_CONSTANTS.selectors.TOGGLE).then(() => this._foundation.initialize());\n }\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n super.attributeChangedCallback(name, oldValue, newValue);\n switch (name) {\n case MENU_CONSTANTS.attributes.OPEN:\n this._foundation.open = isDefined(newValue);\n break;\n case MENU_CONSTANTS.attributes.PLACEMENT:\n this._foundation.placement = newValue as PopupPlacement;\n break;\n case MENU_CONSTANTS.attributes.SELECTED_INDEX:\n this._foundation.selectedIndex = Number(newValue);\n break;\n case MENU_CONSTANTS.attributes.SELECTED_VALUE:\n this._foundation.selectedValue = newValue;\n break;\n case MENU_CONSTANTS.attributes.DENSE:\n this._foundation.dense = coerceBoolean(newValue);\n break;\n case MENU_CONSTANTS.attributes.ICON_CLASS:\n this._foundation.iconClass = newValue;\n break;\n case MENU_CONSTANTS.attributes.PERSIST_SELECTION:\n this.persistSelection = coerceBoolean(newValue);\n break;\n case MENU_CONSTANTS.attributes.MODE:\n this.mode = newValue as MenuMode;\n break;\n }\n }\n\n public disconnectedCallback(): void {\n this._foundation.disconnect();\n }\n\n /** Gets/sets the open state. */\n @FoundationProperty()\n public declare open: boolean;\n\n /** Gets/sets the array of options to display in the menu. */\n @FoundationProperty()\n public declare options: Array<IMenuOption | IMenuOptionGroup> | MenuOptionFactory;\n\n /** Gets/sets the selected option to the index. Does not support cascading menus. */\n @FoundationProperty()\n public declare selectedIndex: number;\n\n /** Gets/sets the value of the option to select. */\n @FoundationProperty()\n public declare selectedValue: any;\n\n /** Gets/sets the menu placement (default is bottom-left). */\n @FoundationProperty()\n public declare placement: `${PopupPlacement}`;\n\n /** Gets/sets the fallback menu placement for overriding the default of any side. */\n @FoundationProperty()\n public declare fallbackPlacements: `${PopupPlacement}`[];\n\n /** Gets/sets dense state of the list options used in the menu popup. */\n @FoundationProperty()\n public declare dense: boolean;\n\n /** Gets/sets the class name to use for option icons. */\n @FoundationProperty()\n public declare iconClass: string;\n\n /**\n * Gets/sets whether selection of menu items is persisted.\n * @deprecated Please use `<forge-select-dropdown>` for handling selection states.\n */\n @FoundationProperty()\n public declare persistSelection: boolean;\n\n /** Gets/sets the mode that this menu is using. */\n @FoundationProperty()\n public declare mode: MenuMode;\n\n /** Sets the position adjustment on the internal popup element. */\n @FoundationProperty()\n public declare popupOffset: IPopupPosition;\n\n /** Sets the callback that will be executed for each option in the dropdown for producing custom option templates. */\n @FoundationProperty()\n public declare optionBuilder: MenuOptionBuilder;\n\n /** Gets the currently active popup element when the dropdown is open. */\n @FoundationProperty({ set: false })\n public declare popupElement: HTMLElement | undefined;\n\n /** Force propagates the key event from another element this component. */\n public propagateKeyEvent(evt: KeyboardEvent): void {\n this._foundation.onKeydown(evt);\n }\n\n public activateFirstOption(): void {\n this._foundation.activateFirstOption();\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { MenuComponent } from './menu';\n\nexport * from './menu-adapter';\nexport * from './menu-constants';\nexport * from './menu-foundation';\nexport * from './menu';\n\nexport function defineMenuComponent(): void {\n defineCustomElement(MenuComponent);\n}\n"],
5
+ "mappings": "wsBAGA,IAAMA,EAA2C,GAAGC,QAE9CC,EAAU,CACd,MAAO,oBACP,KAAM,UACR,EAEMC,EAAY,CAChB,OAAQ,IAAIH,cAAwBA,8FACpC,UAAW,YACb,EAEMI,EAAa,CACjB,KAAM,OACN,UAAW,YACX,eAAgB,iBAChB,eAAgB,iBAChB,MAAO,QACP,WAAY,aACZ,kBAAmB,oBACnB,KAAM,OACN,iBAAkB,mBAClB,cAAe,gBACf,aAAc,eACd,eAAgB,iBAChB,yBAA0B,0BAC5B,EAEMC,EAAS,CACb,OAAQ,GAAGL,WACX,KAAM,GAAGA,SACT,MAAO,GAAGA,UACV,cAAe,GAAGA,iBACpB,EAEMM,EAAU,CACd,0BAA2B,IAC3B,0BAA2B,GAC7B,EAEaC,EAAiB,CAC5B,YAAAP,EACA,QAAAE,EACA,UAAAC,EACA,WAAAC,EACA,OAAAC,EACA,QAAAC,CACF,EChBO,IAAME,EAAN,cAA0BC,CAAoD,CAKnF,YAAYC,EAA2B,CACrC,MAAMA,CAAS,EAHjB,KAAQ,YAAc,IAAI,GAI1B,CAEO,oBAAyC,CA3ClD,IAAAC,EAAAC,EA4CI,OAAOA,GAAAD,EAAA,KAAK,gBAAL,YAAAA,EAAoB,kBAApB,KAAAC,EAAuC,IAChD,CAEO,kBAA4B,CACjC,MAAO,CAAC,CAAC,KAAK,cAChB,CAEO,kBAAyB,CAC9B,KAAK,eAAiB,KAAK,WAAW,cAAcC,EAAe,UAAU,MAAM,EAC9E,KAAK,iBACR,KAAK,eAAiB,KAAK,WAAW,kBAE1C,CAEO,wBAAwBC,EAAkB,CAC1C,KAAK,iBAIV,KAAK,eAAe,aAAa,cAAe,MAAM,EACtD,KAAK,eAAe,aAAa,YAAa,WAAW,EACzD,KAAK,eAAe,aAAa,gBAAiB,MAAM,EACxD,KAAK,eAAe,aAAa,gBAAiB,OAAO,EAEpD,KAAK,eAAe,aAAa,YAAY,GAChD,KAAK,eAAe,aAAa,aAAc,KAAK,eAAe,aAAe,EAAE,EAExF,CAEO,kBAAkBC,EAAeC,EAAkCC,EAAU,GAAa,CAC3F,KAAK,gBACP,KAAK,eAAe,iBAAiBF,EAAOC,EAAUC,CAAO,CAEjE,CAEO,qBAAqBF,EAAeC,EAAwC,CAC7E,KAAK,gBACP,KAAK,eAAe,oBAAoBD,EAAOC,CAAQ,CAE3D,CAEO,WAAWE,EAAmC,CAC/C,KAAK,eAAiB,CAAC,KAAK,iBAGhC,KAAK,cAAgB,IAAIC,EAAa,KAAK,eAA+BD,CAAM,EAChF,KAAK,cAAc,KAAK,EACxB,KAAK,eAAe,aAAa,gBAAiB,MAAM,EACxD,KAAK,eAAe,aAAa,gBAAiB,uBAAuBA,EAAO,IAAI,EACtF,CAEO,WAAWE,EAA8B,CAC1C,KAAK,eACP,KAAK,cAAc,WAAWA,CAAO,CAEzC,CAEO,YAAmB,CACpB,KAAK,iBACP,KAAK,eAAe,gBAAgB,uBAAuB,EAC3D,KAAK,eAAe,gBAAgB,eAAe,EACnD,KAAK,eAAe,gBAAgB,eAAe,GAGjD,KAAK,gBACP,KAAK,cAAc,MAAM,EACzB,KAAK,cAAc,QAAQ,EAC3B,KAAK,cAAgB,OAEzB,CAEO,gBAAgBC,EAAqB,CAnH9C,IAAAV,GAoHIA,EAAA,KAAK,gBAAL,MAAAA,EAAoB,eAAeU,EACrC,CAEO,qBAA4B,CAvHrC,IAAAV,GAwHIA,EAAA,KAAK,gBAAL,MAAAA,EAAoB,qBACtB,CAEO,0BAAiC,CACtC,IAAMW,EAAW,KAAK,eAClBA,GAAA,MAAAA,EAAU,SACZA,EAAS,OAAS,GAEtB,CAEO,sBAA+B,CAlIxC,IAAAX,EAAAC,EAmII,OAAOA,GAAAD,EAAA,KAAK,gBAAL,YAAAA,EAAoB,yBAApB,KAAAC,EAA8C,EACvD,CAEO,aAAoB,CACrB,KAAK,gBACP,KAAK,eAAe,MAAM,CAE9B,CAEO,iBAA2B,CAChC,OAAO,SAAS,gBAAkB,KAAK,cACzC,CAEO,uBAAuBE,EAAkB,CACzC,KAAK,iBAGNA,EACF,KAAK,eAAe,aAAa,wBAAyBA,CAAE,EAE5D,KAAK,eAAe,gBAAgB,uBAAuB,EAE/D,CAEO,oBAAoBS,EAAcC,EAAoC,CACvE,CAAC,KAAK,eAAiB,CAAC,KAAK,cAAc,iBAG/C,KAAK,cAAc,gBAAgB,iBAAiBD,EAAMC,CAAQ,CACpE,CAEO,aAAaC,EAAsB,CACxC,MAAI,CAAC,KAAK,gBAAkB,CAAC,KAAK,eAAiB,CAAC,KAAK,cAAc,gBAC9D,GAEF,KAAK,eAAe,SAASA,CAAE,GAAK,CAAC,CAAC,KAAK,cAAc,gBAAgB,SAASA,CAAE,CAC7F,CAEO,aAAaC,EAAmB,CAzKzC,IAAAf,GA0KIA,EAAA,KAAK,gBAAL,MAAAA,EAAoB,UAAUe,EAChC,CAEO,0BAA0BC,EAAoBb,EAAkB,CACrE,GAAI,CAAC,KAAK,mBAAmB,EAC3B,OAEF,IAAMc,EAAW,KAAK,kBAAkBd,CAAE,EACtCc,GACFA,EAAS,kBAAkBD,CAAG,CAElC,CAEO,gBAAgBN,EAAeQ,EAAsB,CAG1D,IAAMC,EAFY,KAAK,cAAc,EACVT,CAAK,EACL,cACvBS,GAAaA,EAAU,QAAQ,YAAY,IAAMjB,EAAe,cAC9DgB,IAAS,OACXC,EAAU,KAAO,CAACA,EAAU,KAE5BA,EAAU,KAAOD,EAEnBC,EAAU,oBAAoB,EAElC,CAEO,gBAAgBT,EAAeU,EAAkBC,EAAiCC,EAAkCC,EAAgE,CACzL,IAAMC,EAAO,SAAS,cAAc,YAAY,EAChD,OAAAA,EAAK,MAAM,QAAU,QAGrBA,EAAK,iBAAiBtB,EAAe,OAAO,KAAM,IAAM,CACtD,KAAK,YAAY,IAAIQ,EAAOc,CAAI,EAChCH,EAAOX,CAAK,CACd,CAAC,EACDc,EAAK,iBAAiBtB,EAAe,OAAO,MAAO,IAAM,CACvD,KAAK,YAAY,OAAOQ,CAAK,EAC7BY,EAAQZ,CAAK,CACf,CAAC,EACDc,EAAK,iBAAiBtB,EAAe,OAAO,OAASc,GAA2C,CAC9FA,EAAI,gBAAgB,EACpBO,EAASE,EAAAC,EAAA,GAAKV,EAAI,QAAT,CAAiB,YAAAI,CAAY,EAAC,CACzC,CAAC,EAEMI,CACT,CAEO,qBAAqBG,EAA6B,CACvD,IAAMC,EAA0B,CAAC,EACjC,KAAK,YAAY,QAAQ,CAACJ,EAAMd,IAAU,CACpCA,IAAUiB,IACZH,EAAK,KAAO,GACZI,EAAc,KAAKlB,CAAK,EAE5B,CAAC,EACDkB,EAAc,QAAQlB,GAAS,KAAK,YAAY,OAAOA,CAAK,CAAC,CAC/D,CAEO,kBAAkBmB,EAAqB,CArOhD,IAAA7B,GAsOIA,EAAA,KAAK,gBAAL,MAAAA,EAAoB,kBAAkB6B,EACxC,CAEQ,kBAAkB1B,EAAmC,CAC3D,GAAI,CAAC,KAAK,mBAAmB,EAC3B,OAAO,KAET,IAAM2B,EAAO,KAAK,YAAY3B,CAAE,EAChC,OAAO2B,EAAOA,EAAK,cAAc,GAAG5B,EAAe,eAAeA,EAAe,WAAW,OAAO,EAAI,IACzG,CAEQ,YAAYC,EAAmC,CACrD,IAAM4B,EAAQ,KAAK,mBAAmB,EACtC,OAAKA,EAGEA,EAAM,cAAc,GAAGC,EAAe,sCAAsC7B,KAAM,EAFhF,IAGX,CAEQ,eAAsC,CAC5C,IAAM4B,EAAQ,KAAK,mBAAmB,EACtC,GAAI,CAACA,EACH,MAAO,CAAC,EAEV,IAAME,EAAcF,EAAM,cAAcC,EAAe,WAAW,EAClE,OAAIC,EACK,MAAM,KAAKA,EAAY,iBAAiBC,EAAoB,WAAW,CAAC,EAE1E,CAAC,CACV,CACF,ECvOO,IAAMC,EAAN,cAA6BC,CAAgG,CAkBlI,YAAoBC,EAAwB,CAC1C,MAAM,CACJ,aAAcC,EAAe,QAAQ,0BACrC,cAAeA,EAAe,QAAQ,yBACxC,CAAC,EAJiB,cAAAD,EAhBpB,KAAQ,WAA6B,eACrC,KAAQ,oBAAwC,CAAC,EACjD,KAAQ,OAAS,GAEjB,KAAQ,WAAaE,EACrB,KAAQ,kBAAoB,GAC5B,KAAQ,MAAkB,QAexB,KAAK,YAAcC,EAAY,EAC/B,KAAK,eAAiBC,GAAO,KAAK,eAAeA,CAAG,EACpD,KAAK,cAAgBA,GAAO,KAAK,cAAcA,CAAG,EAClD,KAAK,gBAAkBC,GAAS,KAAK,mBAAmBA,CAAK,EAC7D,KAAK,iBAAmBD,GAAO,KAAK,UAAUA,CAAG,EACjD,KAAK,sBAAwBE,GAAM,KAAK,uBAAuBA,CAAE,CACnE,CAEO,YAAmB,CACxB,KAAK,SAAS,iBAAiB,EAC/B,KAAK,SAAS,wBAAwB,KAAK,WAAW,EACtD,KAAK,gCAAgC,CACvC,CAEO,YAAmB,CACpB,KAAK,OACP,KAAK,eAAe,EAEtB,KAAK,6BAA6B,CACpC,CAEO,qBAA4B,CACjC,KAAK,SAAS,oBAAoB,CACpC,CAEQ,YAAmB,CACpB,KAAK,SAAS,iBAAiB,IAIhC,KAAK,QAAU,UACjB,KAAK,SAAS,kBAAkB,QAAS,KAAK,cAAc,EAE5D,KAAK,0BAA0B,EAEnC,CAEQ,iCAAwC,CACzC,KAAK,SAAS,iBAAiB,IAGpC,KAAK,WAAW,EAChB,KAAK,SAAS,kBAAkB,UAAW,KAAK,iBAAkB,EAAI,EACtE,KAAK,SAAS,kBAAkB,WAAY,KAAK,aAAa,EAChE,CAEQ,8BAAqC,CACtC,KAAK,SAAS,iBAAiB,IAGpC,KAAK,SAAS,qBAAqB,UAAW,KAAK,cAAc,EACjE,KAAK,SAAS,qBAAqB,WAAY,KAAK,aAAa,EACjE,KAAK,SAAS,qBAAqB,QAAS,KAAK,cAAc,EAC/D,KAAK,0BAA0B,EACjC,CAEU,2BAAkC,CAC1C,KAAK,SAAS,kBAAkB,aAAc,KAAK,yBAAyB,EAC5E,KAAK,SAAS,kBAAkB,aAAc,KAAK,yBAAyB,EAI5E,KAAK,SAAS,oBAAoB,YAAa,KAAK,0BAA0B,CAChF,CAEU,2BAAkC,CAC1C,KAAK,SAAS,qBAAqB,aAAc,KAAK,yBAAyB,EAC/E,KAAK,SAAS,qBAAqB,aAAc,KAAK,yBAAyB,EAC/E,KAAK,SAAS,uBAAuB,YAAa,KAAK,0BAA0B,CACnF,CAEA,IAAY,oBAAoC,CAC9C,OAAO,KAAK,aAAa,OAAOC,GAAK,CAACA,EAAE,OAAO,CACjD,CAEA,IAAY,cAA8B,CACxC,OAAIC,EAAyB,KAAK,UAAsC,EAC9D,KAAK,SAAgC,OAAO,CAACC,EAAeC,IAAiBD,EAAc,OAAOC,EAAa,OAAO,EAAG,CAAC,CAAkB,EAE/I,KAAK,QACd,CAEQ,eAAeN,EAAuB,CAC5C,GAAI,KAAK,MAAO,CACd,KAAK,eAAe,EACpB,OAEF,KAAK,KAAO,CAAC,KAAK,MACd,KAAK,OACP,KAAK,SAAS,YAAY,CAE9B,CAEQ,cAAcA,EAAkB,CAClC,KAAK,OACP,KAAK,eAAe,CAExB,CAEQ,uBAAuBE,EAAkB,CAE/C,IAAMK,EAAmC,CAAE,GAAAL,CAAG,EACxCM,EAAyB,KAAK,SAAS,cAAcX,EAAe,OAAO,cAAeU,EAAM,GAAM,EAAI,EAC5G,KAAK,QAAU,WAAaC,GAC9B,KAAK,SAAS,uBAAuBN,CAAE,CAE3C,CAEO,UAAUF,EAA0B,CAEzC,GAAI,KAAK,WAAY,CACnB,KAAK,SAAS,0BAA0BA,EAAK,KAAK,WAAW,EAC7D,OAGF,OAAQA,EAAI,KAAM,CAChB,IAAK,MACC,KAAK,OACP,KAAK,oBAAoB,EAE3B,MACF,IAAK,SACC,KAAK,QACPA,EAAI,eAAe,EACnBA,EAAI,gBAAgB,EACpB,KAAK,eAAe,GAEtB,MACF,IAAK,QACHA,EAAI,eAAe,EAEf,KAAK,MACP,KAAK,eAAe,EAEpB,KAAK,cAAc,CAAE,aAAc,EAAK,CAAC,EAE3C,MACF,IAAK,OACL,IAAK,MACC,KAAK,QACPA,EAAI,eAAe,EACnB,KAAK,SAAS,aAAaA,EAAI,IAAI,GAErC,MACF,IAAK,QAGH,GAFAA,EAAI,eAAe,EAEf,CAAC,KAAK,MAAO,CACfA,EAAI,eAAe,EACnB,KAAK,cAAc,CAAE,aAAc,EAAK,CAAC,EACzC,OAGFA,EAAI,yBAAyB,EAE7B,KAAK,SAAS,aAAaA,EAAI,IAAI,EAGnC,IAAMS,EAAc,KAAK,SAAS,qBAAqB,EACjDC,EAAe,KAAK,mBAAmBD,CAAW,EACpDC,GAAgBA,EAAa,SAAWA,EAAa,QAAQ,QAC/D,KAAK,SAAS,gBAAgBD,CAAW,EAE3C,MACF,IAAK,UACL,IAAK,YAOH,GANI,KAAK,OACPT,EAAI,yBAAyB,EAG/BA,EAAI,eAAe,EAEf,CAAC,KAAK,OAASA,EAAI,OAAS,YAAa,CAC3C,KAAK,cAAc,CAAE,aAAc,EAAK,CAAC,EACzC,KAAK,SAAS,oBAAoB,EAClC,OAGF,KAAK,SAAS,aAAaA,EAAI,IAAI,EACnC,MACF,IAAK,YACC,KAAK,OACPA,EAAI,yBAAyB,EAE3B,KAAK,QAAU,WAAa,KAAK,OACnC,KAAK,eAAe,EAEtB,MACF,IAAK,aAIH,GAHI,KAAK,OACPA,EAAI,yBAAyB,EAE3B,CAAC,KAAK,MACR,OAEF,IAAMW,EAAe,KAAK,SAAS,qBAAqB,EAClDC,EAAgB,KAAK,mBAAmBD,CAAY,EAC1D,GAAIC,GAAiBA,EAAc,QAAS,CAC1C,KAAK,SAAS,gBAAgBD,EAAcX,EAAI,OAAS,YAAY,EACrE,OAEF,KACJ,CACF,CAEA,MAAc,UAAU,CAAE,aAAAa,CAAa,EAAgC,CAAC,EAAkB,CACxF,KAAK,MAAQ,GACb,IAAIC,EAAyB,CAAC,EAE9B,GAAI,OAAO,KAAK,iBAAoB,WAClC,KAAK,kBAAkB,EACvB,KAAK,SAAW,CAAC,MACZ,CACL,GAAI,CAAC,KAAK,UAAY,CAAC,KAAK,SAAS,OACnC,OAEFA,EAAU,KAAK,SAGZ,KAAK,mBACRA,EAAQ,QAAQX,GAAKA,EAAE,SAAW,EAAK,EAGzC,KAAK,sBAAsB,EAE3B,IAAMY,EAAiB,KAAK,kBAAoB,KAAK,mBAAmB,EAAI,CAAC,EAEvEC,EAA8B,CAClC,GAAI,KAAK,YACT,YACA,QAAS,KAAK,SACd,eAAAD,EACA,UAAW,KAAK,WAChB,MAAO,KAAK,OACZ,SAAU,GACV,YAAa,GACb,UAAW,GACX,qBACA,cAAe,KAAK,eACpB,YAAa,KAAK,aAClB,cAAe,KAAK,oBACpB,cAAe,KAAK,oBACpB,cAAe,KAAK,eACpB,uBAAwB,KAAK,wBAC7B,eAAgB,KAAK,WACrB,wBAAyB,KAAK,oBAC9B,iBAAkBF,EAAe,EAAI,OACrC,aAAc,CACZhB,EAAe,QAAQ,MACvBA,EAAe,QAAQ,KACvB,GAAG,KAAK,aACV,EACA,UAAW,KAAK,gBAChB,qBAAsB,KAAK,sBAC3B,eAAgB,KAAK,gBACrB,YAAa,KAAK,aAClB,wBAAyBoB,GAAU,KAAK,wBAAwBA,CAAM,CACxE,EAEA,KAAK,SAAS,iBAAiBpB,EAAe,WAAW,KAAM,EAAE,EACjE,KAAK,SAAS,WAAWmB,CAAM,EAG3B,KAAK,QAAU,YACjB,KAAK,SAAS,oBAAoB,aAAc,KAAK,6BAA6B,EAClF,KAAK,SAAS,oBAAoB,aAAc,KAAK,6BAA6B,GAGpF,KAAK,SAAS,oBAAoBnB,EAAe,OAAO,cAAgBG,GAAiD,CACvH,KAAK,uBAAuBA,EAAI,OAAO,EAAE,CAC3C,CAAC,EACD,KAAK,SAAS,cAAcH,EAAe,OAAO,IAAI,CACxD,CAEQ,YAAmB,CACzB,KAAK,MAAQ,GACb,KAAK,WAAa,GAClB,KAAK,SAAS,WAAW,EAErB,KAAK,2BAA6B,QACpC,OAAO,aAAa,KAAK,wBAAwB,EAGnD,KAAK,SAAS,oBAAoBA,EAAe,WAAW,IAAI,EAChE,KAAK,SAAS,cAAcA,EAAe,OAAO,KAAK,CACzD,CAEQ,mBAAmC,CACzC,OAAK,KAAK,gBAOH,QAAQ,QAAQ,KAAK,gBAAgB,CAAC,EAC1C,KAAKqB,GAAW,CAKf,GAJK,KAAK,mBACRA,EAAQ,QAAQf,GAAKA,EAAE,SAAW,EAAK,EAGrC,KAAK,MACP,GAAIe,GAAWC,EAAQD,CAAO,GAAKA,EAAQ,OAAQ,CACjD,KAAK,SAAWA,EAChB,KAAK,SAAS,WAAWA,CAAO,EAChC,IAAMH,EAAiB,KAAK,mBAAmB,EAC3CA,EAAe,QACjB,KAAK,SAAS,kBAAkBA,CAAc,OAEvC,KAAK,OACd,KAAK,eAAe,CAG1B,CAAC,EACA,MAAM,GAAK,CACV,QAAQ,MAAM,sDAAuD,CAAC,EAClE,KAAK,OACP,KAAK,eAAe,CAExB,CAAC,GA9BG,KAAK,OACP,KAAK,WAAW,EAEX,QAAQ,QAAQ,EA4B3B,CAEQ,mBAAmBd,EAAkB,CAC3C,IAAMmB,EAAQ,KAAK,mBAAmB,UAAUjB,GAAKA,EAAE,QAAUF,CAAK,EAClEmB,EAAQ,GAGZ,KAAK,qBAAqBA,CAAK,CACjC,CAEQ,qBAA4B,CAClC,IAAMA,EAAQ,KAAK,SAAS,qBAAqB,EAC7CA,GAAS,GAAK,KAAK,mBAAmBA,CAAK,GAC7C,KAAK,qBAAqBA,CAAK,CAEnC,CAEQ,qBAAqBA,EAAqB,CAChD,GAAM,CAAE,QAAAN,EAAS,MAAAb,CAAM,EAAI,KAAK,mBAAmBmB,CAAK,EAGxD,GAAIN,EAAS,CACX,KAAK,SAAS,gBAAgBM,CAAK,EACnC,OAGF,KAAK,eAAe,EAEpB,IAAMb,EAA6B,CAAE,MAAAa,EAAO,MAAAnB,CAAM,EAC9B,CAAC,KAAK,SAAS,cAAcJ,EAAe,OAAO,OAAQU,EAAM,GAAM,EAAI,IAE7F,KAAK,eAAiB,KAAK,kBAAoBN,EAAQ,OAE3D,CAEQ,oBAA4B,CAClC,IAAMoB,EAAS,KAAK,aAAa,OAAOlB,GAAKA,EAAE,QAAQ,EAAE,IAAIA,GAAKA,EAAE,KAAK,EACzE,OAAI,KAAK,iBAAmB,QAC1BkB,EAAO,KAAK,KAAK,cAAc,EAE1BA,CACT,CAGU,2BAA2Bd,EAAkC,CACjE,KAAK,oBACP,KAAK,eAAiBA,EAAK,OAE7B,KAAK,SAAS,cAAcV,EAAe,OAAO,OAAQU,CAAI,EAC9D,KAAK,eAAe,CACtB,CAGU,sBAAsBa,EAAqB,CACnD,MAAM,wBAAwB,EAC9B,KAAK,SAAS,qBAAqBA,CAAK,EACxC,KAAK,WAAa,GAClB,KAAK,SAAS,gBAAgBA,CAAK,CACrC,CAGU,uBAAuBA,EAAqB,CACpD,KAAK,WAAa,EACpB,CAEU,gBAAuB,CAC/B,KAAK,WAAW,CAClB,CAEU,cAAc,CAAE,aAAAP,CAAa,EAAgC,CAAC,EAAS,CAC/E,KAAK,UAAU,CAAE,aAAAA,CAAa,CAAC,CACjC,CAEU,2BAAkC,CAC1C,KAAK,SAAS,yBAAyB,CACzC,CAEU,cAAcS,EAA2B,CACjD,OAAO,KAAK,SAAS,aAAaA,CAAO,CAC3C,CAEQ,wBAAwB,CAAE,MAAAF,EAAO,QAAAN,EAAS,YAAAS,CAAY,EAA4D,CACxH,IAAMC,EAAO,KAAK,SAAS,gBACzBJ,EACAG,EACA,KAAK,sBAAsB,KAAK,IAAI,EACpC,KAAK,uBAAuB,KAAK,IAAI,EACrC,KAAK,2BAA2B,KAAK,IAAI,CAC3C,EACA,OAAAC,EAAK,KAAO,UACZA,EAAK,YAAc,CAAE,EAAG,EAAG,EAAG,EAAG,EACjCA,EAAK,MAAQ,KAAK,OAClBA,EAAK,UAAY,cACjBA,EAAK,mBAAqB,CAAC,aAAc,aAAa,EACtDA,EAAK,iBAAmB,KAAK,kBACzB,KAAK,oBACPA,EAAK,cAAgB,KAAK,gBAE5BA,EAAK,QAAUV,EACfU,EAAK,cAAgB,KAAK,eAC1BA,EAAK,UAAY,KAAK,WAEfA,CACT,CAEQ,uBAA8B,CAEpC,KAAK,aAAa,OAAOrB,GAAKA,EAAE,IAAI,EAAE,QAAQA,GAAKA,EAAE,YAAcA,EAAE,IAAI,CAC3E,CAEA,IAAW,MAAgB,CACzB,OAAO,KAAK,KACd,CACA,IAAW,KAAKF,EAAgB,CAC9BA,EAAQ,EAAQA,EACZ,KAAK,QAAUA,IACjB,KAAK,MAAQA,EACTA,EACF,KAAK,cAAc,EAEnB,KAAK,eAAe,EAG1B,CAEA,IAAW,QAAQa,EAAwB,CACzC,GAAI,OAAOA,GAAY,WACrB,KAAK,eAAiBA,UAEtB,KAAK,eAAiB,OAEtB,KAAK,SAAWA,EAAQ,IAAIX,GAAMsB,EAAA,GAAKtB,EAAI,EAEvC,KAAK,QACP,KAAK,sBAAsB,EAC3B,KAAK,SAAS,WAAW,KAAK,QAAyB,EACnD,KAAK,mBAAmB,CAC1B,IAAMY,EAAiB,KAAK,mBAAmB,EAC3CA,EAAe,QACjB,KAAK,SAAS,kBAAkBA,CAAc,EAKxD,CACA,IAAW,SAAyB,CAClC,OAAK,KAAK,SAKH,KAAK,aAAa,IAAIZ,GAAMsB,EAAA,GAAKtB,EAAI,EAJnC,CAAC,CAKZ,CAEA,IAAW,eAAeuB,EAAwC,CAChE,KAAK,gBAAkBA,CACzB,CAEA,IAAW,cAAczB,EAAe,CACtC,IAAM0B,EAAS,KAAK,mBAAmB1B,CAAK,EACxC0B,GAAUA,EAAO,QAAU,KAAK,iBAClC,KAAK,cAAgBA,EAAO,MAEhC,CACA,IAAW,eAAwB,CACjC,OAAO,KAAK,iBAAmB,OAAY,KAAK,mBAAmB,UAAUxB,GAAKA,EAAE,QAAU,KAAK,cAAc,EAAI,EACvH,CAEA,IAAW,cAAcF,EAAY,CAC/B,KAAK,iBAAmBA,IAC1B,KAAK,eAAiBA,EACtB,KAAK,SAAS,kBAAkB,KAAK,cAAc,EAEvD,CACA,IAAW,eAAqB,CAC9B,OAAO,KAAK,cACd,CAEA,IAAW,WAA4B,CACrC,OAAO,KAAK,UACd,CACA,IAAW,UAAUA,EAAuB,CACtC,KAAK,aAAeA,IACtB,KAAK,WAAaA,GAAS,eAC3B,KAAK,SAAS,iBAAiBJ,EAAe,WAAW,UAAW,KAAK,UAAU,EAEvF,CAEA,IAAW,oBAAuC,CAChD,OAAO,KAAK,mBACd,CACA,IAAW,mBAAmBI,EAAyB,CACrD,KAAK,oBAAsB,MAAM,QAAQA,CAAK,EAAIA,EAAQ,CAAC,CAC7D,CAEA,IAAW,OAAiB,CAC1B,OAAO,KAAK,MACd,CACA,IAAW,MAAMA,EAAgB,CAC/B,KAAK,OAASA,CAChB,CAEA,IAAW,WAAoB,CAC7B,OAAO,KAAK,UACd,CACA,IAAW,UAAUA,EAAe,CAClC,KAAK,WAAaA,CACpB,CAEA,IAAW,kBAA4B,CACrC,OAAO,KAAK,iBACd,CACA,IAAW,iBAAiBA,EAAgB,CACtC,KAAK,oBAAsBA,IAI/B,KAAK,kBAAoBA,EACzB,KAAK,SAAS,oBAAoBJ,EAAe,WAAW,kBAAmB,KAAK,iBAAiB,EAEhG,KAAK,oBACR,KAAK,aAAa,QAAQM,GAAKA,EAAE,SAAW,EAAK,EACjD,KAAK,eAAiB,QAE1B,CAEA,IAAW,MAAiB,CAC1B,OAAO,KAAK,KACd,CACA,IAAW,KAAKF,EAAiB,CAC3B,KAAK,QAAUA,IACjB,KAAK,MAAQA,EACb,KAAK,6BAA6B,EAClC,KAAK,WAAW,EAChB,KAAK,SAAS,iBAAiBJ,EAAe,WAAW,KAAM,KAAK,KAAK,EAE7E,CAEA,IAAW,aAA8B,CACvC,OAAO,KAAK,YACd,CACA,IAAW,YAAYI,EAAuB,CAC5C,KAAK,aAAeA,CACtB,CAEA,IAAW,eAA+C,CACxD,OAAO,KAAK,cACd,CACA,IAAW,cAAc2B,EAAmC,CAC1D,KAAK,eAAiBA,CACxB,CAEA,IAAW,cAAmC,CAC5C,OAAO,KAAK,SAAS,mBAAmB,CAC1C,CACF,ECxmBA,IAAMC,EAAW,qCACXC,EAAS,qFA+CFC,EAAN,cAA4BC,CAA4C,CAqB7E,aAAc,CACZ,MAAM,EACNC,EAAa,OAAOC,CAAiB,EACrC,KAAK,YAAc,IAAIC,EAAe,IAAIC,EAAY,IAAI,CAAC,EAC3DC,EAAqB,KAAMR,EAAUC,CAAM,CAC7C,CAzBA,WAAkB,oBAA+B,CAC/C,MAAO,CACLQ,EAAe,WAAW,KAC1BA,EAAe,WAAW,UAC1BA,EAAe,WAAW,eAC1BA,EAAe,WAAW,eAC1BA,EAAe,WAAW,MAC1BA,EAAe,WAAW,WAC1BA,EAAe,WAAW,kBAC1BA,EAAe,WAAW,KAC1BA,EAAe,WAAW,iBAC1BA,EAAe,WAAW,cAC1BA,EAAe,WAAW,aAC1BA,EAAe,WAAW,eAC1BA,EAAe,WAAW,wBAC5B,CACF,CAWO,mBAA0B,CAC3B,KAAK,cAAcA,EAAe,UAAU,MAAM,EACpD,KAAK,YAAY,WAAW,EAE5BC,EAAY,KAAMD,EAAe,UAAU,MAAM,EAAE,KAAK,IAAM,KAAK,YAAY,WAAW,CAAC,CAE/F,CAEO,yBAAyBE,EAAcC,EAAkBC,EAAwB,CAEtF,OADA,MAAM,yBAAyBF,EAAMC,EAAUC,CAAQ,EAC/CF,EAAM,CACZ,KAAKF,EAAe,WAAW,KAC7B,KAAK,YAAY,KAAOK,EAAUD,CAAQ,EAC1C,MACF,KAAKJ,EAAe,WAAW,UAC7B,KAAK,YAAY,UAAYI,EAC7B,MACF,KAAKJ,EAAe,WAAW,eAC7B,KAAK,YAAY,cAAgB,OAAOI,CAAQ,EAChD,MACF,KAAKJ,EAAe,WAAW,eAC7B,KAAK,YAAY,cAAgBI,EACjC,MACF,KAAKJ,EAAe,WAAW,MAC7B,KAAK,YAAY,MAAQM,EAAcF,CAAQ,EAC/C,MACF,KAAKJ,EAAe,WAAW,WAC7B,KAAK,YAAY,UAAYI,EAC7B,MACF,KAAKJ,EAAe,WAAW,kBAC7B,KAAK,iBAAmBM,EAAcF,CAAQ,EAC9C,MACF,KAAKJ,EAAe,WAAW,KAC7B,KAAK,KAAOI,EACZ,KACJ,CACF,CAEO,sBAA6B,CAClC,KAAK,YAAY,WAAW,CAC9B,CA0DO,kBAAkBG,EAA0B,CACjD,KAAK,YAAY,UAAUA,CAAG,CAChC,CAEO,qBAA4B,CACjC,KAAK,YAAY,oBAAoB,CACvC,CACF,EA7DiBC,EAAA,CADdC,EAAmB,GAvEThB,EAwEI,oBAIAe,EAAA,CADdC,EAAmB,GA3EThB,EA4EI,uBAIAe,EAAA,CADdC,EAAmB,GA/EThB,EAgFI,6BAIAe,EAAA,CADdC,EAAmB,GAnFThB,EAoFI,6BAIAe,EAAA,CADdC,EAAmB,GAvFThB,EAwFI,yBAIAe,EAAA,CADdC,EAAmB,GA3FThB,EA4FI,kCAIAe,EAAA,CADdC,EAAmB,GA/FThB,EAgGI,qBAIAe,EAAA,CADdC,EAAmB,GAnGThB,EAoGI,yBAOAe,EAAA,CADdC,EAAmB,GA1GThB,EA2GI,gCAIAe,EAAA,CADdC,EAAmB,GA9GThB,EA+GI,oBAIAe,EAAA,CADdC,EAAmB,GAlHThB,EAmHI,2BAIAe,EAAA,CADdC,EAAmB,GAtHThB,EAuHI,6BAIAe,EAAA,CADdC,EAAmB,CAAE,IAAK,EAAM,CAAC,GA1HvBhB,EA2HI,4BA3HJA,EAANe,EAAA,CATNE,EAAc,CACb,KAAMV,EAAe,YACrB,aAAc,CACZW,EACAC,EACAC,EACAC,CACF,CACF,CAAC,GACYrB,GClDN,SAASsB,IAA4B,CAC1CC,EAAoBC,CAAa,CACnC",
6
+ "names": ["elementName", "COMPONENT_NAME_PREFIX", "classes", "selectors", "attributes", "events", "numbers", "MENU_CONSTANTS", "MenuAdapter", "BaseAdapter", "component", "_a", "_b", "MENU_CONSTANTS", "id", "event", "callback", "bubbles", "config", "ListDropdown", "options", "index", "listItem", "type", "listener", "el", "key", "evt", "openMenu", "open", "childMenu", "parentValue", "openCb", "closeCb", "selectCb", "menu", "__spreadProps", "__spreadValues", "excludeIndex", "menusToRemove", "values", "list", "popup", "LIST_CONSTANTS", "listElement", "LIST_ITEM_CONSTANTS", "MenuFoundation", "CascadingListDropdownAwareFoundation", "_adapter", "MENU_CONSTANTS", "ICON_CLASS_NAME", "randomChars", "evt", "value", "id", "o", "isListDropdownOptionType", "previousValue", "currentValue", "data", "canSetActiveDescendant", "activeIndex", "activeOption", "hoveredIndex", "hoveredOption", "fromKeyboard", "options", "selectedValues", "config", "params", "results", "isArray", "index", "values", "element", "parentValue", "menu", "__spreadValues", "factory", "option", "cb", "template", "styles", "MenuComponent", "ListDropdownAware", "IconRegistry", "tylIconArrowRight", "MenuFoundation", "MenuAdapter", "attachShadowTemplate", "MENU_CONSTANTS", "ensureChild", "name", "oldValue", "newValue", "isDefined", "coerceBoolean", "evt", "__decorateClass", "FoundationProperty", "CustomElement", "PopupComponent", "ListComponent", "CircularProgressComponent", "LinearProgressComponent", "defineMenuComponent", "defineCustomElement", "MenuComponent"]
7
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ import{a as h,d as b}from"./chunk.5CSXPRL3.js";import{d as C}from"./chunk.FXIWCHLW.js";import{b as M}from"./chunk.FAXYCG55.js";import{o as B}from"./chunk.FYWPZFLJ.js";import{d as _,l as A}from"./chunk.AMZZKEAE.js";import{a as f}from"./chunk.HSI7B43D.js";import{a as d}from"./chunk.NVUMRW44.js";import{a as u,b as I}from"./chunk.36F2GVWS.js";import{a,d as s,g as l,k as c}from"./chunk.JAWV5Y5T.js";import{a as m,d as p}from"./chunk.M3QDAYD2.js";var n=class extends f{constructor(o){super(o)}initialize(){this._menuElement=l(this._component,h.elementName)}setMenuOptions(o){this._menuElement.options=o}};var i=class{constructor(e){this._adapter=e;this._options=[];this._isInitialized=!1}initialize(){this._adapter.initialize(),this._adapter.setMenuOptions(this._options),this._isInitialized=!0}disconnect(){this._isInitialized=!1}get options(){return this._options}set options(e){this._options=e.map(o=>m({},o)),this._isInitialized&&this._adapter.setMenuOptions(e)}};var g=`${I}app-bar-help-button`,O={elementName:g};var x='<template><forge-menu placement="bottom-end"><forge-icon-button aria-label="Open help menu"><forge-icon name="help"></forge-icon></forge-icon-button><forge-tooltip delay="500" position="bottom">Help</forge-tooltip></forge-menu></template>',t=class extends c{constructor(){super();_.define(B),this._foundation=new i(new n(this))}initializedCallback(){s(this,x)}connectedCallback(){this._foundation.initialize()}disconnectedCallback(){this._foundation.disconnect()}};p([d()],t.prototype,"options",2),t=p([u({name:O.elementName,dependencies:[b,M,C,A]})],t);function Z(){a(t)}export{n as a,i as b,O as c,t as d,Z as e};
7
+ //# sourceMappingURL=chunk.5LVZVQXB.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/app-bar/help-button/app-bar-help-button-adapter.ts", "../../src/app-bar/help-button/app-bar-help-button-foundation.ts", "../../src/app-bar/help-button/app-bar-help-button-constants.ts", "../../src/app-bar/help-button/app-bar-help-button.ts", "../../src/app-bar/help-button/index.ts"],
4
- "sourcesContent": ["import { getLightElement } from '@tylertech/forge-core';\nimport { BaseAdapter, IBaseAdapter } from '../../core/base/base-adapter';\nimport { IMenuComponent, IMenuOption, MENU_CONSTANTS } from '../../menu';\nimport { IAppBarHelpButtonComponent } from './app-bar-help-button';\n\nexport interface IAppBarHelpButtonAdapter extends IBaseAdapter {\n initialize(): void;\n setMenuOptions(options: IMenuOption[]): void;\n}\n\nexport class AppBarHelpButtonAdapter extends BaseAdapter<IAppBarHelpButtonComponent> implements IAppBarHelpButtonAdapter {\n private _menuElement: IMenuComponent;\n\n constructor(component: IAppBarHelpButtonComponent) {\n super(component);\n }\n\n public initialize(): void {\n this._menuElement = getLightElement(this._component, MENU_CONSTANTS.elementName) as IMenuComponent;\n }\n\n public setMenuOptions(options: IMenuOption[]): void {\n this._menuElement.options = options;\n }\n}\n", "import { ICustomElementFoundation } from '@tylertech/forge-core';\nimport { IMenuOption } from '../../menu';\nimport { IAppBarHelpButtonAdapter } from './app-bar-help-button-adapter';\n\nexport interface IAppBarHelpButtonFoundation extends ICustomElementFoundation {\n options: IMenuOption[];\n}\n\nexport class AppBarHelpButtonFoundation implements IAppBarHelpButtonFoundation {\n private _options: IMenuOption[] = [];\n private _isInitialized = false;\n\n constructor(private _adapter: IAppBarHelpButtonAdapter) { }\n\n public initialize(): void {\n this._adapter.initialize();\n this._adapter.setMenuOptions(this._options);\n this._isInitialized = true;\n }\n\n public disconnect(): void {\n this._isInitialized = false;\n }\n\n public get options(): IMenuOption[] {\n return this._options;\n }\n public set options(value: IMenuOption[]) {\n this._options = value.map(o => ({ ...o }));\n if (this._isInitialized) {\n this._adapter.setMenuOptions(value);\n }\n }\n}\n", "import { COMPONENT_NAME_PREFIX } from '../../constants';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}app-bar-help-button`;\n\nexport const APP_BAR_HELP_BUTTON_CONSTANTS = {\n elementName\n};\n", "import { CustomElement, attachLightTemplate, FoundationProperty } from '@tylertech/forge-core';\nimport { tylIconHelp } from '@tylertech/tyler-icons/standard';\nimport { IMenuOption, MenuComponent } from '../../menu';\nimport { AppBarHelpButtonAdapter } from './app-bar-help-button-adapter';\nimport { AppBarHelpButtonFoundation } from './app-bar-help-button-foundation';\nimport { APP_BAR_HELP_BUTTON_CONSTANTS } from './app-bar-help-button-constants';\nimport { IconButtonComponent } from '../../icon-button';\nimport { TooltipComponent } from '../../tooltip';\nimport { IconComponent, IconRegistry } from '../../icon';\nimport { BaseComponent, IBaseComponent } from '../../core/base/base-component';\n\nconst template = '<template><forge-icon-button><forge-menu placement=\\\"bottom-end\\\"><button type=\\\"button\\\" aria-label=\\\"Open help menu\\\"><forge-icon name=\\\"help\\\"></forge-icon></button></forge-menu><forge-tooltip delay=\\\"500\\\" position=\\\"bottom\\\">Help</forge-tooltip></forge-icon-button></template>';\n\nexport interface IAppBarHelpButtonComponent extends IBaseComponent {\n options: IMenuOption[];\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-app-bar-help-button': IAppBarHelpButtonComponent;\n }\n}\n\n/**\n * The web component class behind the `<forge-app-bar-help-button>` custom element.\n * \n * @tag forge-app-bar-help-button\n */\n@CustomElement({\n name: APP_BAR_HELP_BUTTON_CONSTANTS.elementName,\n dependencies: [\n MenuComponent,\n IconButtonComponent,\n TooltipComponent,\n IconComponent\n ]\n})\nexport class AppBarHelpButtonComponent extends BaseComponent implements IAppBarHelpButtonComponent {\n private _foundation: AppBarHelpButtonFoundation;\n\n constructor() {\n super();\n IconRegistry.define(tylIconHelp);\n this._foundation = new AppBarHelpButtonFoundation(new AppBarHelpButtonAdapter(this));\n }\n\n public initializedCallback(): void {\n attachLightTemplate(this, template);\n }\n \n public connectedCallback(): void {\n this._foundation.initialize();\n }\n\n public disconnectedCallback(): void {\n this._foundation.disconnect();\n }\n\n @FoundationProperty()\n public declare options: IMenuOption[];\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { AppBarHelpButtonComponent } from './app-bar-help-button';\n\nexport * from './app-bar-help-button-adapter';\nexport * from './app-bar-help-button-constants';\nexport * from './app-bar-help-button-foundation';\nexport * from './app-bar-help-button';\n\nexport function defineAppBarHelpButtonComponent(): void {\n defineCustomElement(AppBarHelpButtonComponent);\n}\n"],
5
- "mappings": "4bAUO,IAAMA,EAAN,cAAsCC,CAA4E,CAGvH,YAAYC,EAAuC,CACjD,MAAMA,CAAS,CACjB,CAEO,YAAmB,CACxB,KAAK,aAAeC,EAAgB,KAAK,WAAYC,EAAe,WAAW,CACjF,CAEO,eAAeC,EAA8B,CAClD,KAAK,aAAa,QAAUA,CAC9B,CACF,EChBO,IAAMC,EAAN,KAAwE,CAI7E,YAAoBC,EAAoC,CAApC,cAAAA,EAHpB,KAAQ,SAA0B,CAAC,EACnC,KAAQ,eAAiB,EAEiC,CAEnD,YAAmB,CACxB,KAAK,SAAS,WAAW,EACzB,KAAK,SAAS,eAAe,KAAK,QAAQ,EAC1C,KAAK,eAAiB,EACxB,CAEO,YAAmB,CACxB,KAAK,eAAiB,EACxB,CAEA,IAAW,SAAyB,CAClC,OAAO,KAAK,QACd,CACA,IAAW,QAAQC,EAAsB,CACvC,KAAK,SAAWA,EAAM,IAAI,GAAMC,EAAA,GAAK,EAAI,EACrC,KAAK,gBACP,KAAK,SAAS,eAAeD,CAAK,CAEtC,CACF,EC/BA,IAAME,EAA2C,GAAGC,uBAEvCC,EAAgC,CAC3C,YAAAF,CACF,ECKA,IAAMG,EAAW,gRA0BJC,EAAN,cAAwCC,CAAoD,CAGjG,aAAc,CACZ,MAAM,EACNC,EAAa,OAAOC,CAAW,EAC/B,KAAK,YAAc,IAAIC,EAA2B,IAAIC,EAAwB,IAAI,CAAC,CACrF,CAEO,qBAA4B,CACjCC,EAAoB,KAAMP,CAAQ,CACpC,CAEO,mBAA0B,CAC/B,KAAK,YAAY,WAAW,CAC9B,CAEO,sBAA6B,CAClC,KAAK,YAAY,WAAW,CAC9B,CAIF,EADiBQ,EAAA,CADdC,EAAmB,GArBTR,EAsBI,uBAtBJA,EAANO,EAAA,CATNE,EAAc,CACb,KAAMC,EAA8B,YACpC,aAAc,CACZC,EACAC,EACAC,EACAC,CACF,CACF,CAAC,GACYd,GC5BN,SAASe,GAAwC,CACtDC,EAAoBC,CAAyB,CAC/C",
4
+ "sourcesContent": ["import { getLightElement } from '@tylertech/forge-core';\nimport { BaseAdapter, IBaseAdapter } from '../../core/base/base-adapter';\nimport { IMenuComponent, IMenuOption, MENU_CONSTANTS } from '../../menu';\nimport { IAppBarHelpButtonComponent } from './app-bar-help-button';\n\nexport interface IAppBarHelpButtonAdapter extends IBaseAdapter {\n initialize(): void;\n setMenuOptions(options: IMenuOption[]): void;\n}\n\nexport class AppBarHelpButtonAdapter extends BaseAdapter<IAppBarHelpButtonComponent> implements IAppBarHelpButtonAdapter {\n private _menuElement: IMenuComponent;\n\n constructor(component: IAppBarHelpButtonComponent) {\n super(component);\n }\n\n public initialize(): void {\n this._menuElement = getLightElement(this._component, MENU_CONSTANTS.elementName) as IMenuComponent;\n }\n\n public setMenuOptions(options: IMenuOption[]): void {\n this._menuElement.options = options;\n }\n}\n", "import { ICustomElementFoundation } from '@tylertech/forge-core';\nimport { IMenuOption } from '../../menu';\nimport { IAppBarHelpButtonAdapter } from './app-bar-help-button-adapter';\n\nexport interface IAppBarHelpButtonFoundation extends ICustomElementFoundation {\n options: IMenuOption[];\n}\n\nexport class AppBarHelpButtonFoundation implements IAppBarHelpButtonFoundation {\n private _options: IMenuOption[] = [];\n private _isInitialized = false;\n\n constructor(private _adapter: IAppBarHelpButtonAdapter) { }\n\n public initialize(): void {\n this._adapter.initialize();\n this._adapter.setMenuOptions(this._options);\n this._isInitialized = true;\n }\n\n public disconnect(): void {\n this._isInitialized = false;\n }\n\n public get options(): IMenuOption[] {\n return this._options;\n }\n public set options(value: IMenuOption[]) {\n this._options = value.map(o => ({ ...o }));\n if (this._isInitialized) {\n this._adapter.setMenuOptions(value);\n }\n }\n}\n", "import { COMPONENT_NAME_PREFIX } from '../../constants';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}app-bar-help-button`;\n\nexport const APP_BAR_HELP_BUTTON_CONSTANTS = {\n elementName\n};\n", "import { CustomElement, attachLightTemplate, FoundationProperty } from '@tylertech/forge-core';\nimport { tylIconHelp } from '@tylertech/tyler-icons/standard';\nimport { IMenuOption, MenuComponent } from '../../menu';\nimport { AppBarHelpButtonAdapter } from './app-bar-help-button-adapter';\nimport { AppBarHelpButtonFoundation } from './app-bar-help-button-foundation';\nimport { APP_BAR_HELP_BUTTON_CONSTANTS } from './app-bar-help-button-constants';\nimport { IconButtonComponent } from '../../icon-button';\nimport { TooltipComponent } from '../../tooltip';\nimport { IconComponent, IconRegistry } from '../../icon';\nimport { BaseComponent, IBaseComponent } from '../../core/base/base-component';\n\nconst template = '<template><forge-menu placement=\\\"bottom-end\\\"><forge-icon-button aria-label=\\\"Open help menu\\\"><forge-icon name=\\\"help\\\"></forge-icon></forge-icon-button><forge-tooltip delay=\\\"500\\\" position=\\\"bottom\\\">Help</forge-tooltip></forge-menu></template>';\n\nexport interface IAppBarHelpButtonComponent extends IBaseComponent {\n options: IMenuOption[];\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-app-bar-help-button': IAppBarHelpButtonComponent;\n }\n}\n\n/**\n * The web component class behind the `<forge-app-bar-help-button>` custom element.\n * \n * @tag forge-app-bar-help-button\n */\n@CustomElement({\n name: APP_BAR_HELP_BUTTON_CONSTANTS.elementName,\n dependencies: [\n MenuComponent,\n IconButtonComponent,\n TooltipComponent,\n IconComponent\n ]\n})\nexport class AppBarHelpButtonComponent extends BaseComponent implements IAppBarHelpButtonComponent {\n private _foundation: AppBarHelpButtonFoundation;\n\n constructor() {\n super();\n IconRegistry.define(tylIconHelp);\n this._foundation = new AppBarHelpButtonFoundation(new AppBarHelpButtonAdapter(this));\n }\n\n public initializedCallback(): void {\n attachLightTemplate(this, template);\n }\n \n public connectedCallback(): void {\n this._foundation.initialize();\n }\n\n public disconnectedCallback(): void {\n this._foundation.disconnect();\n }\n\n @FoundationProperty()\n public declare options: IMenuOption[];\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { AppBarHelpButtonComponent } from './app-bar-help-button';\n\nexport * from './app-bar-help-button-adapter';\nexport * from './app-bar-help-button-constants';\nexport * from './app-bar-help-button-foundation';\nexport * from './app-bar-help-button';\n\nexport function defineAppBarHelpButtonComponent(): void {\n defineCustomElement(AppBarHelpButtonComponent);\n}\n"],
5
+ "mappings": "4bAUO,IAAMA,EAAN,cAAsCC,CAA4E,CAGvH,YAAYC,EAAuC,CACjD,MAAMA,CAAS,CACjB,CAEO,YAAmB,CACxB,KAAK,aAAeC,EAAgB,KAAK,WAAYC,EAAe,WAAW,CACjF,CAEO,eAAeC,EAA8B,CAClD,KAAK,aAAa,QAAUA,CAC9B,CACF,EChBO,IAAMC,EAAN,KAAwE,CAI7E,YAAoBC,EAAoC,CAApC,cAAAA,EAHpB,KAAQ,SAA0B,CAAC,EACnC,KAAQ,eAAiB,EAEiC,CAEnD,YAAmB,CACxB,KAAK,SAAS,WAAW,EACzB,KAAK,SAAS,eAAe,KAAK,QAAQ,EAC1C,KAAK,eAAiB,EACxB,CAEO,YAAmB,CACxB,KAAK,eAAiB,EACxB,CAEA,IAAW,SAAyB,CAClC,OAAO,KAAK,QACd,CACA,IAAW,QAAQC,EAAsB,CACvC,KAAK,SAAWA,EAAM,IAAI,GAAMC,EAAA,GAAK,EAAI,EACrC,KAAK,gBACP,KAAK,SAAS,eAAeD,CAAK,CAEtC,CACF,EC/BA,IAAME,EAA2C,GAAGC,uBAEvCC,EAAgC,CAC3C,YAAAF,CACF,ECKA,IAAMG,EAAW,iPA0BJC,EAAN,cAAwCC,CAAoD,CAGjG,aAAc,CACZ,MAAM,EACNC,EAAa,OAAOC,CAAW,EAC/B,KAAK,YAAc,IAAIC,EAA2B,IAAIC,EAAwB,IAAI,CAAC,CACrF,CAEO,qBAA4B,CACjCC,EAAoB,KAAMP,CAAQ,CACpC,CAEO,mBAA0B,CAC/B,KAAK,YAAY,WAAW,CAC9B,CAEO,sBAA6B,CAClC,KAAK,YAAY,WAAW,CAC9B,CAIF,EADiBQ,EAAA,CADdC,EAAmB,GArBTR,EAsBI,uBAtBJA,EAANO,EAAA,CATNE,EAAc,CACb,KAAMC,EAA8B,YACpC,aAAc,CACZC,EACAC,EACAC,EACAC,CACF,CACF,CAAC,GACYd,GC5BN,SAASe,GAAwC,CACtDC,EAAoBC,CAAyB,CAC/C",
6
6
  "names": ["AppBarHelpButtonAdapter", "BaseAdapter", "component", "getLightElement", "MENU_CONSTANTS", "options", "AppBarHelpButtonFoundation", "_adapter", "value", "__spreadValues", "elementName", "COMPONENT_NAME_PREFIX", "APP_BAR_HELP_BUTTON_CONSTANTS", "template", "AppBarHelpButtonComponent", "BaseComponent", "IconRegistry", "tylIconHelp", "AppBarHelpButtonFoundation", "AppBarHelpButtonAdapter", "attachLightTemplate", "__decorateClass", "FoundationProperty", "CustomElement", "APP_BAR_HELP_BUTTON_CONSTANTS", "MenuComponent", "IconButtonComponent", "TooltipComponent", "IconComponent", "defineAppBarHelpButtonComponent", "defineCustomElement", "AppBarHelpButtonComponent"]
7
7
  }
@@ -3,5 +3,5 @@
3
3
  * Copyright 2023 Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- import{a as l,b as p}from"./chunk.DXN7ZOH3.js";import{a as i,k as n}from"./chunk.MVTBJPO2.js";import{d as r}from"./chunk.M3QDAYD2.js";var a=`${p}option-group`,m={LABEL:"label"},o={elementName:a,attributes:m};var e=class extends n{constructor(){super()}static get observedAttributes(){return[o.attributes.LABEL]}attributeChangedCallback(t,c,s){switch(t){case o.attributes.LABEL:this.label=s;break}}get label(){return this._label}set label(t){this._label!==t&&(this._label=t||"",this.setAttribute(o.attributes.LABEL,this._label))}get text(){return this._label}set text(t){this.label=t}};e=r([l({name:o.elementName})],e);function T(){i(e)}export{o as a,e as b,T as c};
7
- //# sourceMappingURL=chunk.LFODKHUO.js.map
6
+ import{a as l,b as p}from"./chunk.36F2GVWS.js";import{a as i,k as n}from"./chunk.JAWV5Y5T.js";import{d as r}from"./chunk.M3QDAYD2.js";var a=`${p}option-group`,m={LABEL:"label"},o={elementName:a,attributes:m};var e=class extends n{constructor(){super()}static get observedAttributes(){return[o.attributes.LABEL]}attributeChangedCallback(t,c,s){switch(t){case o.attributes.LABEL:this.label=s;break}}get label(){return this._label}set label(t){this._label!==t&&(this._label=t||"",this.setAttribute(o.attributes.LABEL,this._label))}get text(){return this._label}set text(t){this.label=t}};e=r([l({name:o.elementName})],e);function T(){i(e)}export{o as a,e as b,T as c};
7
+ //# sourceMappingURL=chunk.5N4N6DL6.js.map
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ import{a as y}from"./chunk.FDZSLGIW.js";import{a as O}from"./chunk.HSI7B43D.js";import{a as r}from"./chunk.NVUMRW44.js";import{a as L,b as S}from"./chunk.36F2GVWS.js";import{a as T,e as x,f as I,h,j as A,k as N}from"./chunk.JAWV5Y5T.js";import{a as m,c as g,f as d,g as C,i as k,r as w,s as b}from"./chunk.K7FPXAFS.js";import{b as P,k as l}from"./chunk.J2M2MXP2.js";import{a as _,b as E,d as s}from"./chunk.M3QDAYD2.js";var p=`${S}popup`,f={CONTAINER:"forge-popup",OPEN:"open",PLACEMENT:"placement",MANAGE_FOCUS:"manage-focus",ANIMATION_TYPE:"animation-type",STATIC:"static",HIDE_WHEN_CLIPPED:"hide-when-clipped",HOST:"forge-popup-host",INITIAL_FOCUS:"forge-popup-focus",CONSTRAIN_VIEWPORT_WIDTH:"constrain-viewport-width"},H={OPEN:"forge-popup--open",OPENING:"forge-popup--opening",CLOSED:"forge-popup--closed",SELECT:"forge-popup--select"},D={HOST:`.forge-popup-host, [${f.HOST}]`,CONTAINER:".forge-popup",INITIAL_FOCUS:`[${f.INITIAL_FOCUS}]`},B={OPEN:`${p}-open`,CLOSE:`${p}-close`,POSITION:`${p}-position`,BLUR:`${p}-blur`},W={ANIMATION_DURATION:120},i={elementName:p,classes:H,selectors:D,attributes:f,events:B,numbers:W},M=(o=>(o.None="none",o.Menu="menu",o.Dropdown="dropdown",o))(M||{});var c=class extends O{constructor(t){super(t);this._rootElement=I(t,i.selectors.CONTAINER)}setAttribute(t,o,a){a?a.setAttribute(t,o):this._component.setAttribute(t,o)}removeAttribute(t,o){o?o.removeAttribute(t):this._component.removeAttribute(t)}async positionPopup(){let t={element:this._component,targetElement:this._component.targetElement,placement:this._component.placement,hide:this._component.hideWhenClipped,flipOptions:{fallbackPlacements:["top-start","top","top-end","left-start","left","left-end","right-start","right","right-end"],fallbackStrategy:"initialPlacement"}},o=this._component.fallbackPlacements;o!=null&&o.length&&(t.flipOptions=E(_({},t.flipOptions),{fallbackPlacements:o})),this._component.offset&&(t.offset=this._component.offset);let a=await y(t);h(this._component,i.events.POSITION,a)}addPopup(t,o){this._component.setAttribute("tabindex","-1"),this._component.setAttribute(i.attributes.HOST,""),this._component.style.top="0",this._component.style.left="0";let a=t.ownerDocument||document;this._hostElement=A(i.selectors.HOST,t)||a.body,this._hostElement.appendChild(this._component),this.positionPopup(),o&&(this._previouslyFocusedElement=b(this._component.ownerDocument),this._component.focus())}removePopup(t){k(this._component),t&&window.requestAnimationFrame(()=>{if(this._previouslyFocusedElement){let o=b(this._component.ownerDocument);(!o||o===document.body)&&this._previouslyFocusedElement.focus(),this._previouslyFocusedElement=void 0}}),this._hostElement=void 0}manageWindowEvents(t=!1){t?(this._windowEventCallback=o=>this._windowInteraction(o),window.addEventListener("scroll",this._windowEventCallback,!0),window.addEventListener("resize",this._windowEventCallback,!0)):this._windowEventCallback&&(window.removeEventListener("scroll",this._windowEventCallback,!0),window.removeEventListener("resize",this._windowEventCallback,!0),this._windowEventCallback=void 0)}dispatchEvent(t,o,a,F){return this._component.targetElement?!h(this._component.targetElement,t,o,a,F):!1}getCloseEventData(){return{popup:this._component}}addClass(t){d(t,this._rootElement)}removeClass(t){C(t,this._rootElement)}setAnimationEndListener(t,o){window.requestAnimationFrame(()=>{o&&o.length&&d(o,this._rootElement),this._rootElement.addEventListener("transitionend",t)})}removeEventListener(t,o){this._rootElement.removeEventListener(t,o)}setBlurListener(t){return g(this._component,o=>{this._component.contains(o)||t()},!0)}trySetInitialFocus(){window.requestAnimationFrame(()=>{let t=w(this._component,i.selectors.INITIAL_FOCUS);t&&t.length&&t[t.length-1].focus()})}_windowInteraction(t){if(this._component.open)switch(t.type){case"scroll":case"resize":this.positionPopup();break;default:break}}};var u=class{constructor(e){this._adapter=e;this._placement="bottom-start";this._fallbackPlacements=[];this._open=!1;this._manageFocus=!1;this._animationType="none";this._static=!1;this._hideWhenClipped=!1;this._blurListener=()=>this._onBlur()}disconnect(){this.open&&(this.open=!1)}_openPopup(){this._animationType!=="none"?(this._applyOpenAnimation(),this._animationType==="dropdown"&&this._adapter.addClass(i.classes.SELECT)):this._adapter.addClass(i.classes.OPEN),this._adapter.setAttribute(i.attributes.OPEN,""),this._adapter.addPopup(this.targetElement,this._manageFocus),this._adapter.trySetInitialFocus(),this._destroyBlurListener&&this._destroyBlurListener(),this._static||(this._destroyBlurListener=this._adapter.setBlurListener(this._blurListener)),this._adapter.manageWindowEvents(!0),this._adapter.dispatchEvent(i.events.OPEN)}_closePopup(){this._destroyBlurListener&&(this._destroyBlurListener(),this._destroyBlurListener=void 0),this._animationType!=="none"?this._applyCloseAnimation():this._destroyPopup()}_destroyPopup(){this._adapter.manageWindowEvents(!1),this._adapter.removePopup(this._manageFocus);let e=this._adapter.getCloseEventData();this._adapter.dispatchEvent(i.events.CLOSE,e),this._adapter.emitHostEvent(i.events.CLOSE,e),this._adapter.removeAttribute(i.attributes.OPEN)}_applyOpenAnimation(){switch(this._animationType){case"dropdown":case"menu":this._adapter.addClass(i.classes.OPENING);let e=t=>{t.propertyName==="transform"&&(this._adapter.removeClass(i.classes.OPENING),this._adapter.removeEventListener("transitionend",e))};this._adapter.setAnimationEndListener(e,i.classes.OPEN);break}}_applyCloseAnimation(){switch(this._animationType){case"dropdown":case"menu":this._adapter.removeClass(i.classes.OPEN),this._adapter.addClass(i.classes.CLOSED);let e=o=>{o.propertyName==="opacity"&&(t&&clearTimeout(t),this._destroyPopup())};this._adapter.setAnimationEndListener(e);let t=setTimeout(()=>this._destroyPopup(),i.numbers.ANIMATION_DURATION);break}}_onBlur(){this._adapter.dispatchEvent(i.events.BLUR,void 0,!0,!0)||(this.open=!1)}_applyOpen(){if(this._open){if(!this.targetElement||!m(this.targetElement))throw new Error("targetElement on Popup component must be an HTMLElement");typeof this._openCallback=="function"?this._executeOpenCallback():this._openPopup()}else typeof this._closeCallback=="function"?this._executeCloseCallback():this._closePopup()}async _executeOpenCallback(){try{await Promise.resolve(this._openCallback())!==!1?this._openPopup():this._open=!1}catch(e){this._open=!1}}async _executeCloseCallback(){try{await Promise.resolve(this._closeCallback())!==!1?this._closePopup():this._open=!0}catch(e){this._open=!0}}get targetElement(){return this._targetElement}set targetElement(e){if(!e||!m(e))throw new Error("targetElement on Popup component must be an HTMLElement");this._targetElement=e}get placement(){return this._placement}set placement(e){this._placement!==e&&(this._placement=e||"bottom-start",this._adapter.setAttribute(i.attributes.PLACEMENT,this._placement))}get fallbackPlacements(){return this._fallbackPlacements}set fallbackPlacements(e){this._fallbackPlacements=Array.isArray(e)?e:[]}get open(){return this._open}set open(e){e=!!e,this._open!==e&&(this._open=e,this._applyOpen())}get manageFocus(){return this._manageFocus}set manageFocus(e){this._manageFocus!==e&&(this._manageFocus=e)}get animationType(){return this._animationType}set animationType(e){this._animationType!==e&&(this._animationType=e)}get static(){return this._static}set static(e){this._static!==e&&(this._static=e,this._static&&this._destroyBlurListener&&(this._destroyBlurListener(),this._destroyBlurListener=void 0))}get hideWhenClipped(){return this._hideWhenClipped}set hideWhenClipped(e){this._hideWhenClipped!==e&&(this._hideWhenClipped=e)}get offset(){var e;return(e=this._offset)!=null?e:{x:0,y:0}}set offset(e){var t,o;e?this._offset={x:(t=e.x)!=null?t:0,y:(o=e.y)!=null?o:0}:this._offset=void 0,this._open&&this._adapter.positionPopup()}get openCallback(){return this._openCallback}set openCallback(e){this._openCallback=e}get closeCallback(){return this._closeCallback}set closeCallback(e){this._closeCallback=e}position(){this._adapter.positionPopup()}};var z='<template><div class="forge-popup" part="root"><slot></slot></div></template>',U=".forge-popup{min-width:112px;min-width:var(--min-width,112px);background-color:#fff;background-color:var(--forge-theme-elevated-surface,#fff);-webkit-box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);-webkit-box-shadow:var(--forge-theme-popup-elevation,0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12));box-shadow:var(--forge-theme-popup-elevation,0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12));color:#000;color:var(--mdc-theme-on-surface,#000);border-radius:4px;border-radius:var(--mdc-shape-medium,4px);display:none;-webkit-box-sizing:border-box;box-sizing:border-box;min-width:100%;margin:0;padding:0;-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 24px 0;transform-origin:50% 24px 0;opacity:0;will-change:transform,opacity;-webkit-transition:opacity 120ms linear,-webkit-transform 120ms cubic-bezier(0, 0, .2, 1);transition:opacity 120ms linear,-webkit-transform 120ms cubic-bezier(0, 0, .2, 1);transition:opacity 120ms linear,transform 120ms cubic-bezier(0, 0, .2, 1);transition:opacity 120ms linear,transform 120ms cubic-bezier(0, 0, .2, 1),-webkit-transform 120ms cubic-bezier(0, 0, .2, 1)}.forge-popup::-webkit-scrollbar{height:var(--forge-scrollbar-height,16px);width:var(--forge-scrollbar-width,16px)}.forge-popup::-webkit-scrollbar-track{background-color:var(--forge-scrollbar-track-container,var(--forge-theme-surface-container-low,#ebebeb))}.forge-popup::-webkit-scrollbar-track:hover{background-color:var(--forge-scrollbar-track-container-hover,var(--forge-theme-surface-container-low,#ebebeb))}.forge-popup::-webkit-scrollbar-corner{background-color:var(--forge-scrollbar-track-container,var(--forge-theme-surface-container-low,#ebebeb))}.forge-popup::-webkit-scrollbar-thumb{height:var(--forge-scrollbar-thumb-min-height,32px);width:var(--forge-scrollbar-thumb-min-width,32px);border-radius:var(--forge-scrollbar-border-radius,var(--forge-shape-full,9999px));border-width:var(--forge-scrollbar-border-width,3px);border-style:solid;border-color:transparent;background-color:var(--forge-scrollbar-thumb-container,var(--forge-theme-surface-container-medium,#c2c2c2));background-clip:content-box}.forge-popup::-webkit-scrollbar-thumb:hover{background-color:var(--forge-scrollbar-thumb-container-hover,var(--forge-theme-surface-container-high,#9e9e9e))}.forge-popup--opening{display:block;-webkit-transform:scale(.8);transform:scale(.8);opacity:0}.forge-popup--closed{display:block;opacity:0;-webkit-transition:opacity 120ms linear;transition:opacity 120ms linear}.forge-popup--open{display:block;-webkit-transform:scale(1);transform:scale(1);opacity:1}.forge-popup--select{border-top-left-radius:0;border-top-right-radius:0;max-height:256px;overflow-y:auto}:host{z-index:10;z-index:var(--forge-z-index-popup,10);border-radius:4px;border-radius:var(--mdc-shape-medium,4px);display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;outline:0;position:absolute;overflow:visible}:host([hidden]){display:none}:host([constrain-viewport-width]){max-width:100vw}",n=class extends N{constructor(){super();x(this,z,U),this._foundation=new u(new c(this))}static get observedAttributes(){return[i.attributes.OPEN,i.attributes.PLACEMENT,i.attributes.MANAGE_FOCUS,i.attributes.ANIMATION_TYPE,i.attributes.STATIC,i.attributes.HIDE_WHEN_CLIPPED]}disconnectedCallback(){this._foundation.disconnect()}attributeChangedCallback(t,o,a){switch(t){case i.attributes.OPEN:this.open=P(a);break;case i.attributes.PLACEMENT:this.placement=a;break;case i.attributes.MANAGE_FOCUS:this.manageFocus=l(a);break;case i.attributes.ANIMATION_TYPE:this.animationType=a;break;case i.attributes.STATIC:this.static=l(a);break;case i.attributes.HIDE_WHEN_CLIPPED:this.hideWhenClipped=l(a);break}}position(){this._foundation.position()}};s([r()],n.prototype,"targetElement",2),s([r()],n.prototype,"placement",2),s([r()],n.prototype,"fallbackPlacements",2),s([r()],n.prototype,"open",2),s([r()],n.prototype,"manageFocus",2),s([r()],n.prototype,"animationType",2),s([r()],n.prototype,"static",2),s([r()],n.prototype,"hideWhenClipped",2),s([r()],n.prototype,"openCallback",2),s([r()],n.prototype,"closeCallback",2),s([r()],n.prototype,"offset",2),n=s([L({name:i.elementName})],n);function ge(){T(n)}export{i as a,M as b,c,u as d,n as e,ge as f};
7
+ //# sourceMappingURL=chunk.5PG6WIIX.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/popup/popup-constants.ts", "../../src/popup/popup-adapter.ts", "../../src/popup/popup-foundation.ts", "../../src/popup/popup.ts", "../../src/popup/index.ts"],
4
+ "sourcesContent": ["import { PositionPlacement } from '@tylertech/forge-core';\nimport { COMPONENT_NAME_PREFIX } from '../constants';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}popup`;\n\nconst attributes = {\n CONTAINER: 'forge-popup',\n OPEN: 'open',\n PLACEMENT: 'placement',\n MANAGE_FOCUS: 'manage-focus',\n ANIMATION_TYPE: 'animation-type',\n STATIC: 'static',\n HIDE_WHEN_CLIPPED: 'hide-when-clipped',\n HOST: 'forge-popup-host',\n INITIAL_FOCUS: 'forge-popup-focus',\n CONSTRAIN_VIEWPORT_WIDTH: 'constrain-viewport-width'\n};\n\nconst classes = {\n OPEN: 'forge-popup--open',\n OPENING: 'forge-popup--opening',\n CLOSED: 'forge-popup--closed',\n SELECT: 'forge-popup--select'\n};\n\nconst selectors = {\n HOST: `.forge-popup-host, [${attributes.HOST}]`,\n CONTAINER: '.forge-popup',\n INITIAL_FOCUS: `[${attributes.INITIAL_FOCUS}]`\n};\n\nconst events = {\n OPEN: `${elementName}-open`,\n CLOSE: `${elementName}-close`,\n POSITION: `${elementName}-position`,\n BLUR: `${elementName}-blur`\n};\n\nconst numbers = {\n ANIMATION_DURATION: 120\n};\n\nexport const POPUP_CONSTANTS = {\n elementName,\n classes,\n selectors,\n attributes,\n events,\n numbers\n};\n\nexport interface IPopupPosition {\n x: number;\n y: number;\n}\n\nexport type PopupPlacement = PositionPlacement;\n\nexport enum PopupAnimationType {\n None = 'none',\n Menu = 'menu',\n Dropdown = 'dropdown'\n}\n\nexport interface IPopupPositionEventData extends IPopupPosition {\n visibility: 'visible' | 'hidden';\n}\n\nexport type PopupStateCallback = () => boolean | void | Promise<boolean | void>;\n", "import { addClass, closestElement, emitEvent, getShadowElement, IPositionElementConfig, notChildEventListener, positionElementAsync, removeClass, removeElement, deepQuerySelectorAll, getActiveElement } from '@tylertech/forge-core';\nimport { BaseAdapter, IBaseAdapter } from '../core/base/base-adapter';\nimport { IPopupComponent, IPopupCloseEventData } from './popup';\nimport { IPopupPositionEventData, POPUP_CONSTANTS, PopupPlacement } from './popup-constants';\n\nexport interface IPopupAdapter extends IBaseAdapter {\n setAttribute(attribute: string, value: string, element?: HTMLElement): void;\n removeAttribute(attribute: string, element?: HTMLElement): void;\n positionPopup(): void;\n addPopup(targetElement: HTMLElement, manageFocus: boolean): void;\n removePopup(manageFocus: boolean): void;\n manageWindowEvents(add: boolean): void;\n dispatchEvent(type: string, data?: any, bubbles?: boolean, cancellable?: boolean): boolean;\n addClass(classes: string | string[]): void;\n removeClass(classes: string | string[]): void;\n setAnimationEndListener(listener: (evt: TransitionEvent) => void, classes?: string | string[]): void;\n removeEventListener(type: string, listener: (evt: Event) => void): void;\n setBlurListener(listener: () => void): () => void;\n trySetInitialFocus(): void;\n getCloseEventData(): IPopupCloseEventData;\n}\n\nexport class PopupAdapter extends BaseAdapter<IPopupComponent> implements IPopupAdapter {\n private _windowEventCallback?: (evt: Event) => void;\n private _previouslyFocusedElement?: HTMLElement;\n private _hostElement?: HTMLElement;\n private _rootElement: HTMLElement;\n\n constructor(component: IPopupComponent) {\n super(component);\n this._rootElement = getShadowElement(component, POPUP_CONSTANTS.selectors.CONTAINER);\n }\n\n public setAttribute(attribute: string, value: string, element?: HTMLElement): void {\n if (element) {\n element.setAttribute(attribute, value);\n } else {\n this._component.setAttribute(attribute, value);\n }\n }\n\n public removeAttribute(attribute: string, element?: HTMLElement): void {\n if (element) {\n element.removeAttribute(attribute);\n } else {\n this._component.removeAttribute(attribute);\n }\n }\n\n public async positionPopup(): Promise<void> {\n const config: IPositionElementConfig = {\n element: this._component,\n targetElement: this._component.targetElement,\n placement: this._component.placement,\n hide: this._component.hideWhenClipped,\n flipOptions: {\n fallbackPlacements: ['top-start', 'top', 'top-end', 'left-start', 'left', 'left-end', 'right-start', 'right', 'right-end'],\n fallbackStrategy: 'initialPlacement'\n }\n };\n\n const fallbackPlacements: PopupPlacement[] = this._component.fallbackPlacements;\n if (fallbackPlacements?.length) {\n config.flipOptions = { ...config.flipOptions, fallbackPlacements };\n }\n\n if (this._component.offset) {\n config.offset = this._component.offset;\n }\n const data: IPopupPositionEventData = await positionElementAsync(config);\n emitEvent(this._component, POPUP_CONSTANTS.events.POSITION, data);\n }\n\n public addPopup(targetElement: HTMLElement, manageFocus: boolean): void {\n this._component.setAttribute('tabindex', '-1');\n this._component.setAttribute(POPUP_CONSTANTS.attributes.HOST, '');\n\n // Set initial position to top-left of the host element while we wait for positioning.\n // This ensures that the element is not visible, nor does it affect layouts before it\n // is properly moved into its expected location.\n this._component.style.top = '0';\n this._component.style.left = '0';\n\n const hostDocument = targetElement.ownerDocument || document;\n this._hostElement = (closestElement(POPUP_CONSTANTS.selectors.HOST, targetElement) as HTMLElement) || hostDocument.body;\n this._hostElement.appendChild(this._component);\n this.positionPopup();\n\n if (manageFocus) {\n this._previouslyFocusedElement = getActiveElement(this._component.ownerDocument) as HTMLElement;\n this._component.focus();\n }\n }\n\n public removePopup(manageFocus: boolean): void {\n removeElement(this._component);\n\n if (manageFocus) {\n window.requestAnimationFrame(() => {\n if (this._previouslyFocusedElement) {\n const activeElement = getActiveElement(this._component.ownerDocument);\n if (!activeElement || activeElement === document.body) {\n this._previouslyFocusedElement.focus();\n }\n this._previouslyFocusedElement = undefined;\n }\n });\n }\n\n this._hostElement = undefined;\n }\n\n public manageWindowEvents(add = false): void {\n if (add) {\n this._windowEventCallback = evt => this._windowInteraction(evt);\n window.addEventListener('scroll', this._windowEventCallback, true);\n window.addEventListener('resize', this._windowEventCallback, true);\n } else {\n if (this._windowEventCallback) {\n window.removeEventListener('scroll', this._windowEventCallback, true);\n window.removeEventListener('resize', this._windowEventCallback, true);\n this._windowEventCallback = undefined;\n }\n }\n }\n\n public dispatchEvent(type: string, data?: any, bubbles?: boolean, cancelable?: boolean): boolean {\n if (this._component.targetElement) {\n return !emitEvent(this._component.targetElement, type, data, bubbles, cancelable);\n }\n return false;\n }\n\n public getCloseEventData(): IPopupCloseEventData {\n return { popup: this._component };\n }\n\n public addClass(classes: string | string[]): void {\n addClass(classes, this._rootElement);\n }\n\n public removeClass(classes: string | string[]): void {\n removeClass(classes, this._rootElement);\n }\n\n public setAnimationEndListener(listener: (evt: TransitionEvent) => void, classes?: string | string[]): void {\n window.requestAnimationFrame(() => {\n if (classes && classes.length) {\n addClass(classes, this._rootElement);\n }\n this._rootElement.addEventListener('transitionend', listener);\n });\n }\n\n public removeEventListener(type: string, listener: (evt: Event) => void): void {\n this._rootElement.removeEventListener(type, listener);\n }\n\n public setBlurListener(listener: () => void): () => void {\n return notChildEventListener(this._component, activeElement => {\n if (!this._component.contains(activeElement)) {\n listener();\n }\n }, true );\n }\n\n public trySetInitialFocus(): void {\n window.requestAnimationFrame(() => {\n const elements = deepQuerySelectorAll(this._component, POPUP_CONSTANTS.selectors.INITIAL_FOCUS);\n if (elements && elements.length) {\n const initialElement = elements[elements.length - 1] as HTMLElement;\n initialElement.focus();\n }\n });\n }\n\n private _windowInteraction(evt: Event): void {\n if (!this._component.open) {\n return;\n }\n\n switch (evt.type) {\n case 'scroll':\n case 'resize':\n this.positionPopup();\n break;\n default:\n break;\n }\n }\n}\n", "import { ICustomElementFoundation, isElement } from '@tylertech/forge-core';\nimport { IPopupAdapter } from './popup-adapter';\nimport { IPopupPosition, PopupAnimationType, PopupPlacement, PopupStateCallback, POPUP_CONSTANTS } from './popup-constants';\n\nexport interface IPopupFoundation extends ICustomElementFoundation {\n targetElement: HTMLElement;\n placement: PopupPlacement;\n fallbackPlacements: PopupPlacement[];\n open: boolean;\n manageFocus: boolean;\n animationType: PopupAnimationType;\n static: boolean;\n offset: IPopupPosition;\n hideWhenClipped: boolean;\n position(): void;\n openCallback: PopupStateCallback;\n closeCallback: PopupStateCallback;\n}\n\nexport class PopupFoundation implements IPopupFoundation {\n private _targetElement: HTMLElement;\n private _placement: PopupPlacement = 'bottom-start';\n private _fallbackPlacements: PopupPlacement[] = [];\n private _open = false;\n private _manageFocus = false;\n private _animationType = PopupAnimationType.None;\n private _static = false;\n private _offset?: IPopupPosition;\n private _hideWhenClipped = false;\n private _destroyBlurListener: (() => void) | undefined;\n private _openCallback: PopupStateCallback;\n private _closeCallback: PopupStateCallback;\n private _blurListener: () => void;\n\n constructor(private _adapter: IPopupAdapter) {\n this._blurListener = () => this._onBlur();\n }\n\n public disconnect(): void {\n if (this.open) {\n this.open = false;\n }\n }\n\n private _openPopup(): void {\n if (this._animationType !== PopupAnimationType.None) {\n this._applyOpenAnimation();\n\n if (this._animationType === PopupAnimationType.Dropdown) {\n this._adapter.addClass(POPUP_CONSTANTS.classes.SELECT);\n }\n } else {\n this._adapter.addClass(POPUP_CONSTANTS.classes.OPEN);\n }\n\n this._adapter.setAttribute(POPUP_CONSTANTS.attributes.OPEN, '');\n this._adapter.addPopup(this.targetElement, this._manageFocus);\n this._adapter.trySetInitialFocus();\n\n if (this._destroyBlurListener) {\n this._destroyBlurListener();\n }\n\n if (!this._static) {\n this._destroyBlurListener = this._adapter.setBlurListener(this._blurListener);\n }\n\n this._adapter.manageWindowEvents(true);\n this._adapter.dispatchEvent(POPUP_CONSTANTS.events.OPEN);\n }\n\n private _closePopup(): void {\n if (this._destroyBlurListener) {\n this._destroyBlurListener();\n this._destroyBlurListener = undefined;\n }\n\n if (this._animationType !== PopupAnimationType.None) {\n this._applyCloseAnimation();\n } else {\n this._destroyPopup();\n }\n }\n\n private _destroyPopup(): void {\n this._adapter.manageWindowEvents(false);\n this._adapter.removePopup(this._manageFocus);\n const eventData = this._adapter.getCloseEventData();\n this._adapter.dispatchEvent(POPUP_CONSTANTS.events.CLOSE, eventData);\n this._adapter.emitHostEvent(POPUP_CONSTANTS.events.CLOSE, eventData);\n this._adapter.removeAttribute(POPUP_CONSTANTS.attributes.OPEN);\n }\n\n private _applyOpenAnimation(): void {\n switch (this._animationType) {\n case PopupAnimationType.Dropdown:\n case PopupAnimationType.Menu:\n this._adapter.addClass(POPUP_CONSTANTS.classes.OPENING);\n const transitionEndListener = (evt: TransitionEvent): void => {\n if (evt.propertyName === 'transform') {\n this._adapter.removeClass(POPUP_CONSTANTS.classes.OPENING);\n this._adapter.removeEventListener('transitionend', transitionEndListener);\n }\n };\n this._adapter.setAnimationEndListener(transitionEndListener, POPUP_CONSTANTS.classes.OPEN);\n break;\n }\n }\n\n private _applyCloseAnimation(): void {\n switch (this._animationType) {\n case PopupAnimationType.Dropdown:\n case PopupAnimationType.Menu:\n this._adapter.removeClass(POPUP_CONSTANTS.classes.OPEN);\n this._adapter.addClass(POPUP_CONSTANTS.classes.CLOSED);\n const transitionEndListener = (evt: TransitionEvent): void => {\n if (evt.propertyName === 'opacity') {\n if (fallbackTimer) {\n clearTimeout(fallbackTimer);\n }\n this._destroyPopup();\n }\n };\n this._adapter.setAnimationEndListener(transitionEndListener);\n const fallbackTimer = setTimeout(() => this._destroyPopup(), POPUP_CONSTANTS.numbers.ANIMATION_DURATION);\n break;\n }\n }\n\n private _onBlur(): void {\n const cancelled = this._adapter.dispatchEvent(POPUP_CONSTANTS.events.BLUR, undefined, true, true);\n if (!cancelled) {\n this.open = false;\n }\n }\n\n private _applyOpen(): void {\n if (this._open) {\n if (!this.targetElement || !isElement(this.targetElement)) {\n throw new Error('targetElement on Popup component must be an HTMLElement');\n }\n\n if (typeof this._openCallback === 'function') {\n this._executeOpenCallback();\n } else {\n this._openPopup();\n }\n } else {\n if (typeof this._closeCallback === 'function') {\n this._executeCloseCallback();\n } else {\n this._closePopup();\n }\n }\n }\n\n private async _executeOpenCallback(): Promise<void> {\n try {\n if (await Promise.resolve(this._openCallback()) !== false) {\n this._openPopup();\n } else {\n this._open = false;\n }\n } catch (e) {\n this._open = false;\n }\n }\n\n private async _executeCloseCallback(): Promise<void> {\n try {\n if (await Promise.resolve(this._closeCallback()) !== false) {\n this._closePopup();\n } else {\n this._open = true;\n }\n } catch (e) {\n this._open = true;\n }\n }\n\n public get targetElement(): HTMLElement {\n return this._targetElement;\n }\n public set targetElement(element: HTMLElement) {\n if (!element || !isElement(element)) {\n throw new Error('targetElement on Popup component must be an HTMLElement');\n }\n this._targetElement = element;\n }\n\n public get placement(): PopupPlacement {\n return this._placement;\n }\n public set placement(value: PopupPlacement) {\n if (this._placement !== value) {\n this._placement = value || 'bottom-start';\n this._adapter.setAttribute(POPUP_CONSTANTS.attributes.PLACEMENT, this._placement);\n }\n }\n\n public get fallbackPlacements(): PopupPlacement[] {\n return this._fallbackPlacements;\n }\n public set fallbackPlacements(value: PopupPlacement[]) {\n this._fallbackPlacements = Array.isArray(value) ? value : [];\n }\n\n public get open(): boolean {\n return this._open;\n }\n public set open(value: boolean) {\n value = Boolean(value);\n if (this._open !== value) {\n this._open = value;\n this._applyOpen();\n }\n }\n\n public get manageFocus(): boolean {\n return this._manageFocus;\n }\n public set manageFocus(value: boolean) {\n if (this._manageFocus !== value) {\n this._manageFocus = value;\n }\n }\n\n public get animationType(): PopupAnimationType {\n return this._animationType;\n }\n public set animationType(value: PopupAnimationType) {\n if (this._animationType !== value) {\n this._animationType = value;\n }\n }\n\n public get static(): boolean {\n return this._static;\n }\n public set static(value: boolean) {\n if (this._static !== value) {\n this._static = value;\n if (this._static && this._destroyBlurListener) {\n this._destroyBlurListener();\n this._destroyBlurListener = undefined;\n }\n }\n }\n\n public get hideWhenClipped(): boolean {\n return this._hideWhenClipped;\n }\n public set hideWhenClipped(value: boolean) {\n if (this._hideWhenClipped !== value) {\n this._hideWhenClipped = value;\n }\n }\n\n public get offset(): IPopupPosition {\n return this._offset ?? { x: 0, y: 0 };\n }\n public set offset(value: IPopupPosition) {\n if (!value) {\n this._offset = undefined;\n } else {\n this._offset = {\n x: value.x ?? 0,\n y: value.y ?? 0\n };\n }\n if (this._open) {\n this._adapter.positionPopup();\n }\n }\n\n public get openCallback(): PopupStateCallback {\n return this._openCallback;\n }\n public set openCallback(callback: PopupStateCallback) {\n this._openCallback = callback;\n }\n\n public get closeCallback(): PopupStateCallback {\n return this._closeCallback;\n }\n public set closeCallback(callback: PopupStateCallback) {\n this._closeCallback = callback;\n }\n\n public position(): void {\n this._adapter.positionPopup();\n }\n}\n", "import { attachShadowTemplate, coerceBoolean, CustomElement, FoundationProperty, isDefined } from '@tylertech/forge-core';\nimport { BaseComponent, IBaseComponent } from '../core/base/base-component';\nimport { PopupAdapter } from './popup-adapter';\nimport { IPopupPosition, IPopupPositionEventData, PopupAnimationType, PopupPlacement, PopupStateCallback, POPUP_CONSTANTS } from './popup-constants';\nimport { PopupFoundation } from './popup-foundation';\n\n\nconst template = '<template><div class=\\\"forge-popup\\\" part=\\\"root\\\"><slot></slot></div></template>';\nconst styles = '.forge-popup{min-width:112px;min-width:var(--min-width,112px);background-color:#fff;background-color:var(--forge-theme-elevated-surface,#fff);-webkit-box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);-webkit-box-shadow:var(--forge-theme-popup-elevation,0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12));box-shadow:var(--forge-theme-popup-elevation,0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12));color:#000;color:var(--mdc-theme-on-surface,#000);border-radius:4px;border-radius:var(--mdc-shape-medium,4px);display:none;-webkit-box-sizing:border-box;box-sizing:border-box;min-width:100%;margin:0;padding:0;-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 24px 0;transform-origin:50% 24px 0;opacity:0;will-change:transform,opacity;-webkit-transition:opacity 120ms linear,-webkit-transform 120ms cubic-bezier(0, 0, .2, 1);transition:opacity 120ms linear,-webkit-transform 120ms cubic-bezier(0, 0, .2, 1);transition:opacity 120ms linear,transform 120ms cubic-bezier(0, 0, .2, 1);transition:opacity 120ms linear,transform 120ms cubic-bezier(0, 0, .2, 1),-webkit-transform 120ms cubic-bezier(0, 0, .2, 1)}.forge-popup::-webkit-scrollbar{height:var(--forge-scrollbar-height,16px);width:var(--forge-scrollbar-width,16px)}.forge-popup::-webkit-scrollbar-track{background-color:var(--forge-scrollbar-track-container,var(--forge-theme-surface-container-low,#ebebeb))}.forge-popup::-webkit-scrollbar-track:hover{background-color:var(--forge-scrollbar-track-container-hover,var(--forge-theme-surface-container-low,#ebebeb))}.forge-popup::-webkit-scrollbar-corner{background-color:var(--forge-scrollbar-track-container,var(--forge-theme-surface-container-low,#ebebeb))}.forge-popup::-webkit-scrollbar-thumb{height:var(--forge-scrollbar-thumb-min-height,32px);width:var(--forge-scrollbar-thumb-min-width,32px);border-radius:var(--forge-scrollbar-border-radius,var(--forge-shape-full,9999px));border-width:var(--forge-scrollbar-border-width,3px);border-style:solid;border-color:transparent;background-color:var(--forge-scrollbar-thumb-container,var(--forge-theme-surface-container-medium,#c2c2c2));background-clip:content-box}.forge-popup::-webkit-scrollbar-thumb:hover{background-color:var(--forge-scrollbar-thumb-container-hover,var(--forge-theme-surface-container-high,#9e9e9e))}.forge-popup--opening{display:block;-webkit-transform:scale(.8);transform:scale(.8);opacity:0}.forge-popup--closed{display:block;opacity:0;-webkit-transition:opacity 120ms linear;transition:opacity 120ms linear}.forge-popup--open{display:block;-webkit-transform:scale(1);transform:scale(1);opacity:1}.forge-popup--select{border-top-left-radius:0;border-top-right-radius:0;max-height:256px;overflow-y:auto}:host{z-index:10;z-index:var(--forge-z-index-popup,10);border-radius:4px;border-radius:var(--mdc-shape-medium,4px);display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;outline:0;position:absolute;overflow:visible}:host([hidden]){display:none}:host([constrain-viewport-width]){max-width:100vw}';\n\nexport interface IPopupComponent extends IBaseComponent {\n targetElement: HTMLElement;\n placement: PopupPlacement;\n fallbackPlacements: PopupPlacement[];\n open: boolean;\n manageFocus: boolean;\n animationType: `${PopupAnimationType}`;\n static: boolean;\n offset: IPopupPosition;\n hideWhenClipped: boolean;\n position(): void;\n openCallback: PopupStateCallback;\n closeCallback: PopupStateCallback;\n}\n\nexport interface IPopupCloseEventData {\n popup: IPopupComponent;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-popup': IPopupComponent;\n }\n\n interface HTMLElementEventMap {\n 'forge-popup-open': CustomEvent<void>;\n 'forge-popup-close': CustomEvent<IPopupCloseEventData>;\n 'forge-popup-position': CustomEvent<IPopupPositionEventData>;\n 'forge-popup-blur': CustomEvent<void>;\n }\n}\n\n/**\n * The web component class behind the `<forge-popup>` custom element.\n * \n * @tag forge-popup\n */\n@CustomElement({\n name: POPUP_CONSTANTS.elementName\n})\nexport class PopupComponent extends BaseComponent implements IPopupComponent {\n private _foundation: PopupFoundation;\n\n public static get observedAttributes(): string[] {\n return [\n POPUP_CONSTANTS.attributes.OPEN,\n POPUP_CONSTANTS.attributes.PLACEMENT,\n POPUP_CONSTANTS.attributes.MANAGE_FOCUS,\n POPUP_CONSTANTS.attributes.ANIMATION_TYPE,\n POPUP_CONSTANTS.attributes.STATIC,\n POPUP_CONSTANTS.attributes.HIDE_WHEN_CLIPPED\n ];\n }\n\n constructor() {\n super();\n attachShadowTemplate(this, template, styles);\n this._foundation = new PopupFoundation(new PopupAdapter(this));\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 POPUP_CONSTANTS.attributes.OPEN:\n this.open = isDefined(newValue);\n break;\n case POPUP_CONSTANTS.attributes.PLACEMENT:\n this.placement = newValue as PopupPlacement;\n break;\n case POPUP_CONSTANTS.attributes.MANAGE_FOCUS:\n this.manageFocus = coerceBoolean(newValue);\n break;\n case POPUP_CONSTANTS.attributes.ANIMATION_TYPE:\n this.animationType = newValue as PopupAnimationType;\n break;\n case POPUP_CONSTANTS.attributes.STATIC:\n this.static = coerceBoolean(newValue);\n break;\n case POPUP_CONSTANTS.attributes.HIDE_WHEN_CLIPPED:\n this.hideWhenClipped = coerceBoolean(newValue);\n break;\n }\n }\n\n @FoundationProperty()\n public declare targetElement: HTMLElement;\n\n @FoundationProperty()\n public declare placement: `${PopupPlacement}`;\n\n @FoundationProperty()\n public declare fallbackPlacements: `${PopupPlacement}`[];\n\n @FoundationProperty()\n public declare open: boolean;\n\n @FoundationProperty()\n public declare manageFocus: boolean;\n\n @FoundationProperty()\n public declare animationType: `${PopupAnimationType}`;\n\n @FoundationProperty()\n public declare static: boolean;\n\n @FoundationProperty()\n public declare hideWhenClipped: boolean;\n\n @FoundationProperty()\n public declare openCallback: PopupStateCallback;\n\n @FoundationProperty()\n public declare closeCallback: PopupStateCallback;\n\n @FoundationProperty()\n public declare offset: IPopupPosition;\n\n public position(): void {\n this._foundation.position();\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { PopupComponent } from './popup';\n\nexport * from './popup-adapter';\nexport * from './popup-constants';\nexport * from './popup-foundation';\nexport * from './popup';\n\nexport function definePopupComponent(): void {\n defineCustomElement(PopupComponent);\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["elementName", "COMPONENT_NAME_PREFIX", "attributes", "classes", "selectors", "events", "numbers", "POPUP_CONSTANTS", "PopupAnimationType", "PopupAdapter", "BaseAdapter", "component", "getShadowElement", "POPUP_CONSTANTS", "attribute", "value", "element", "config", "fallbackPlacements", "__spreadProps", "__spreadValues", "data", "positionElementAsync", "emitEvent", "targetElement", "manageFocus", "hostDocument", "closestElement", "getActiveElement", "removeElement", "activeElement", "add", "evt", "type", "bubbles", "cancelable", "classes", "addClass", "removeClass", "listener", "notChildEventListener", "elements", "deepQuerySelectorAll", "PopupFoundation", "_adapter", "POPUP_CONSTANTS", "eventData", "transitionEndListener", "evt", "fallbackTimer", "isElement", "element", "value", "_a", "_b", "callback", "template", "styles", "PopupComponent", "BaseComponent", "attachShadowTemplate", "PopupFoundation", "PopupAdapter", "POPUP_CONSTANTS", "name", "oldValue", "newValue", "isDefined", "coerceBoolean", "__decorateClass", "FoundationProperty", "CustomElement", "definePopupComponent", "defineCustomElement", "PopupComponent"]
7
+ }
@@ -3,5 +3,5 @@
3
3
  * Copyright 2023 Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- import{a,d as M}from"./chunk.TK5I4RHF.js";import{a as C}from"./chunk.LEVFMI2Q.js";import{a as y}from"./chunk.MGLWXAZO.js";import{a as d}from"./chunk.NVUMRW44.js";import{a as O}from"./chunk.BKL2BAYW.js";import{a as x,b as D}from"./chunk.DXN7ZOH3.js";import{a as T,e as R,f as E,k as N}from"./chunk.MVTBJPO2.js";import{l as A,s as I,t as L}from"./chunk.K7FPXAFS.js";import{b as m,d as f,k as _}from"./chunk.J2M2MXP2.js";import{a as v,d as l}from"./chunk.M3QDAYD2.js";var Y=`${D}stepper`,F={STEPPER:"forge-stepper",LINEAR:"forge-stepper--linear",ALTERNATIVE:"forge-stepper--alternative",CLUSTERED:"forge-stepper--clustered",FIXED:"forge-stepper--fixed",ALIGN_LEFT:"forge-stepper--align-left",ALIGN_CENTER:"forge-stepper--align-center",ALIGN_RIGHT:"forge-stepper--align-right",VERTICAL:"forge-stepper--vertical",FOCUSED:"forge-stepper--focused"},K={STEPPER:`.${F.STEPPER}`},k={SELECTED_INDEX:"selected-index",LINEAR:"linear",ALTERNATIVE:"alternative",LAYOUT_MODE:"layout-mode",LAYOUT_ALIGN:"layout-align",DISABLED:"disabled",VERTICAL:"vertical"},n={ARROW_LEFT_KEY:"ArrowLeft",ARROW_RIGHT_KEY:"ArrowRight",ARROW_UP_KEY:"ArrowUp",ARROW_DOWN_KEY:"ArrowDown",END_KEY:"End",ENTER_KEY:"Enter",HOME_KEY:"Home",SPACE_KEY:"Space",TAB_KEY:"Tab"},u={ARROW_LEFT_KEYCODE:37,ARROW_RIGHT_KEYCODE:39,END_KEYCODE:35,HOME_KEYCODE:36,ENTER_KEYCODE:13,SPACE_KEYCODE:32},P=[n.ARROW_LEFT_KEY,n.ARROW_RIGHT_KEY,n.ARROW_DOWN_KEY,n.ARROW_UP_KEY,n.END_KEY,n.HOME_KEY,n.ENTER_KEY,n.SPACE_KEY,n.TAB_KEY],H={[u.ARROW_LEFT_KEYCODE]:n.ARROW_LEFT_KEY,[u.ARROW_RIGHT_KEYCODE]:n.ARROW_RIGHT_KEY,[u.END_KEYCODE]:n.END_KEY,[u.HOME_KEYCODE]:n.HOME_KEY,[u.ENTER_KEYCODE]:n.ENTER_KEY,[u.SPACE_KEYCODE]:n.SPACE_KEY},i={elementName:Y,classes:F,selectors:K,attributes:k,numbers:u,strings:n,ACCEPTABLE_KEYS:P,KEYCODE_MAP:H};var c=class S{static createStepElement(t,e,s){var p,g;let o=document.createElement(a.elementName);return o.index=e,o.completed=t.completed||!1,o.editable=t.editable||!1,o.selected=s.selectedIndex===e,o.alternative=s.alternative,o.error=t.error||!1,o.disabled=t.disabled||!1,o.vertical=(g=(p=t.vertical)!=null?p:s.vertical)!=null?g:!1,o.ignoreUserExpansion=t.ignoreUserExpansion||!1,o.expanded=t.expanded||!1,s.linear&&e>s.selectedIndex&&(o.tabIndex=-1),o.textContent=t.label,t.optionalLabel&&o.appendChild(this.createStepOptionalLabel(t.optionalLabel)),o}static createStepOptionalLabel(t){let e=document.createElement("span");return e.slot="optional",e.textContent=t||"",e}static setLinearState(t,e){let s=t.classList.contains(i.classes.LINEAR);s&&!e&&(t.classList.remove(i.classes.LINEAR),s=!1),!s&&e&&t.classList.add(i.classes.LINEAR)}static setAlternativeState(t,e){let s=t.classList.contains(i.classes.ALTERNATIVE);s&&!e&&(t.classList.remove(i.classes.ALTERNATIVE),s=!1),!s&&e&&t.classList.add(i.classes.ALTERNATIVE)}static setLayoutMode(t,e){switch(e){case"clustered":t.classList.contains(i.classes.FIXED)&&t.classList.remove(i.classes.FIXED),t.classList.add(i.classes.CLUSTERED);break;case"fixed":t.classList.contains(i.classes.CLUSTERED)&&t.classList.remove(i.classes.CLUSTERED),t.classList.add(i.classes.FIXED);break}}static setLayoutAlign(t,e){switch(t.classList.contains(i.classes.ALIGN_LEFT)&&t.classList.remove(i.classes.ALIGN_LEFT),t.classList.contains(i.classes.ALIGN_CENTER)&&t.classList.remove(i.classes.ALIGN_CENTER),t.classList.contains(i.classes.ALIGN_RIGHT)&&t.classList.remove(i.classes.ALIGN_RIGHT),e){case"left":t.classList.add(i.classes.ALIGN_LEFT);break;case"center":t.classList.add(i.classes.ALIGN_CENTER);break;case"right":t.classList.add(i.classes.ALIGN_RIGHT);break}}static createSteps(t){let e=[];return t.steps.forEach((s,o)=>{let p=S.createStepElement(s,o,t);e.push(p)}),e[0].setAttribute(a.attributes.FIRST,""),e[e.length-1].setAttribute(a.attributes.LAST,""),e}};var h=class extends O{constructor(e){super(e);this._rootElement=E(e,i.selectors.STEPPER),this._slotElement=this._rootElement.querySelector("slot")}initializeAccessibility(){this._component.hasAttribute("role")||this._component.setAttribute("role","tablist")}patchSafari(){this._applyToSteps(e=>e.setAttribute("safari",""))}addSlotChangeListener(e){this._slotElement.addEventListener("slotchange",e)}removeSlotChangeListener(e){this._slotElement.addEventListener("slotchange",e)}getLastStep(){let e=this._getSteps();return e.item(e.length-1)}setSelected(e){this._getSteps().forEach(s=>{s===e?s.selected=!0:s.selected=!1})}assignIndices(){this._getSteps().forEach((s,o)=>{s.index=o})}assignFirstLastStep(){let e=this._getSteps();e&&e.length>1&&(e[0].setAttribute("first",""),e[e.length-1].setAttribute("last",""))}setLayoutAlign(e){c.setLayoutAlign(this._rootElement,e)}setLayoutMode(e){c.setLayoutMode(this._rootElement,e),this._applyToSteps(s=>s.setAttribute(a.attributes.CLUSTERED,""))}setAlternativeState(e){c.setAlternativeState(this._rootElement,e),this._applyToSteps(s=>s.alternative=e)}setVertical(e){L(this._rootElement,e,i.classes.VERTICAL),this._applyToSteps(s=>s.vertical=e)}setLinearState(e){c.setLinearState(this._rootElement,e)}removeRootListener(e,s){this._rootElement.removeEventListener("click",s)}addRootListener(e,s){this._rootElement.addEventListener(e,s)}setSelectedByIndex(e){this._applyToSteps(s=>{s.selected&&s.index!==e&&(s.selected=!1),s.index===e&&(s.selected=!0)})}applyConfiguredSteps(e){this._component.querySelectorAll(a.elementName).forEach(s=>{this._component.removeChild(s)}),e.forEach(s=>this._component.appendChild(s))}tryGetFocusedStep(){let e,s=I(this._component.ownerDocument);return this._applyToSteps(o=>{s===E(o,a.selectors.STEP)&&(e=o)}),e}getFocusedOrSelectedStep(){let e=this.tryGetFocusedStep();return e||(e=this._getSteps()[0],e.focus()),e}getStep(e){let s=0,o=this._getSteps();return e<0?o.item(o.length-1):(o.length>e&&(s=e),o.item(s))}toggleDisabled(e){this._applyToSteps(s=>s.disabled=e)}toggleRootClass(e,s){L(this._rootElement,s,e)}isStepperFocused(){return this._rootElement.classList.contains(i.classes.FOCUSED)}setStepsListener(e,s){this._applyToSteps(o=>o.addEventListener(e,s))}removeStepsListener(e,s){this._applyToSteps(o=>o.removeEventListener(e,s))}_applyToSteps(e){this._getSteps().forEach(e)}_getSteps(){return this._component.querySelectorAll(a.elementName)}};var b=class{constructor(t){this._adapter=t;this._steps=[];this._selectedIndex=0;this._linear=!1;this._alternative=!1;this._layoutMode="fixed";this._layoutAlign="center";this._initialize=!1;this._clickListener=e=>this._handleClick(e),this._keyListener=e=>this._onKeydown(e),this._stepFocusListener=()=>this._onStepFocus(),this._stepBlurListener=()=>this._onStepBlur(),this._stepExpandedContentFocusInListener=e=>this._onStepExpandedContentFocusIn(e),this._stepExpandedContentFocusOutListener=e=>this._onStepExpandedContentFocusOut(e),this._slotChangeListener=e=>this._onSlotChange(e)}initialize(){this._adapter.initializeAccessibility(),this._adapter.assignIndices(),this._adapter.setLinearState(this._linear),this._adapter.setAlternativeState(this._alternative),this._adapter.setLayoutAlign(this._layoutAlign),this._adapter.setLayoutMode(this._layoutMode),this._adapter.addRootListener("click",this._clickListener),this._adapter.addHostListener("keydown",this._keyListener),this._adapter.assignFirstLastStep(),this._adapter.addRootListener(a.events.EXPANDED_CONTENT_FOCUSIN,this._stepExpandedContentFocusInListener),this._adapter.addRootListener(a.events.EXPANDED_CONTENT_FOCUSOUT,this._stepExpandedContentFocusOutListener),this._applySelectedIndex(),this._patchBrowser(),this._adapter.setStepsListener("blur",this._stepBlurListener),this._adapter.setStepsListener("focus",this._stepFocusListener),this._initialize||this._adapter.addSlotChangeListener(this._slotChangeListener),this._initialize=!0}disconnect(){this._adapter.removeRootListener("click",this._clickListener),this._adapter.removeHostListener("keydown",this._keyListener),this._adapter.removeSlotChangeListener(this._slotChangeListener),this._adapter.removeStepsListener("blur",this._stepBlurListener),this._adapter.removeStepsListener("focus",this._stepFocusListener)}get steps(){return JSON.parse(JSON.stringify(this._steps))}set steps(t){if(Array.isArray(t)&&t.length>0)this._steps=[...t.map(e=>v({},e))];else{this._steps=[];return}this._renderConfiguration()}get selectedIndex(){return this._selectedIndex}set selectedIndex(t){if(!m(t))t=0;else if(!f(t)){let e=Number(t);t=isNaN(e)?0:e}this._selectedIndex!==t&&(this._selectedIndex=t,this._adapter.setHostAttribute(i.attributes.SELECTED_INDEX,this._selectedIndex.toString()),this._applySelectedIndex())}get linear(){return this._linear}set linear(t){t=!!t,this._linear!==t&&(this._linear=t,this._adapter.setLinearState(this._linear),this._adapter.setHostAttribute(i.attributes.LINEAR,this._linear.toString()))}get alternative(){return this._alternative}set alternative(t){t=!!t,this._alternative!==t&&(this._alternative=t,this._adapter.setAlternativeState(this._alternative),this._adapter.setHostAttribute(i.attributes.ALTERNATIVE,this._alternative.toString()))}get layoutMode(){return this._layoutMode}set layoutMode(t){/^(fixed|clustered)$/.test(t)&&this._layoutMode!==t&&(this._layoutMode=t,this._adapter.setHostAttribute(i.attributes.LAYOUT_MODE,this._layoutMode),this._adapter.setLayoutMode(this._layoutMode))}get layoutAlign(){return this._layoutAlign}set layoutAlign(t){/^(left|center|right)$/.test(t)&&this._layoutAlign!==t&&(this._layoutAlign=t,this._adapter.setLayoutAlign(this._layoutAlign),this._adapter.setHostAttribute(i.attributes.LAYOUT_ALIGN,this._layoutAlign))}get disabled(){return this._disabled}set disabled(t){t!==this._disabled&&(this._disabled=t,this._applyDisabled())}get vertical(){return this._vertical}set vertical(t){t!==this._vertical&&(this._vertical=t,this._applyVertical(),this._adapter.toggleHostAttribute(i.attributes.VERTICAL,this._vertical))}_applyVertical(){this._adapter.setVertical(this._vertical)}_applyDisabled(){this._disabled?this._adapter.setHostAttribute(i.attributes.DISABLED,"disabled"):this._adapter.removeHostAttribute(i.attributes.DISABLED),this._adapter.toggleDisabled(this._disabled)}_applySelectedIndex(){this._adapter.setSelectedByIndex(this._selectedIndex)}_handleClick(t){if(t.preventDefault(),this._linear)return;let e=C(t),s=e.find(p=>p.classList&&p.classList.contains(a.classes.STEP)),o=e.find(p=>p.localName===a.elementName);s&&o&&!o.selected&&!o.disabled&&this._adapter.emitHostEvent(a.events.SELECT,o.index,!0,!0)&&(this._adapter.setSelected(o),this.selectedIndex=o.index)}_renderConfiguration(){let t=c.createSteps({steps:this._steps,vertical:this._vertical,selectedIndex:this._selectedIndex,alternative:this._alternative,layoutAlign:this._layoutAlign,layoutMode:this._layoutMode,linear:this._linear});this.disconnect(),this._adapter.applyConfiguredSteps(t),this.initialize()}_onKeydown(t){if(this._linear)return;let e=this._getKeyFromEvent(t);if(!this._adapter.isStepperFocused()||!e)return;[a.strings.HOME_KEY,a.strings.END_KEY,a.strings.ARROW_DOWN_KEY,i.strings.ARROW_UP_KEY].includes(e)&&t.preventDefault();let s=this._vertical?this._determineVerticalMoveTarget(e):this._determineMoveTarget(e);s&&this._moveFocusTo(s)}_moveFocusTo(t){E(t,a.selectors.STEP).focus()}_getKeyFromEvent(t){return i.ACCEPTABLE_KEYS.includes(t.key)?t.key:i.KEYCODE_MAP[t.keyCode]}_determineMoveTarget(t){let e=this._adapter.getFocusedOrSelectedStep();if(e)switch(t){case i.strings.ARROW_RIGHT_KEY:return this._adapter.getStep(e.index+1);case i.strings.ARROW_LEFT_KEY:return this._adapter.getStep(e.index-1);case i.strings.HOME_KEY:return this._adapter.getStep(0);case i.strings.END_KEY:return this._adapter.getLastStep()}return e}_determineVerticalMoveTarget(t){let e=this._adapter.getFocusedOrSelectedStep();if(e)switch(t){case i.strings.ARROW_DOWN_KEY:return this._adapter.getStep(e.index+1);case i.strings.ARROW_UP_KEY:return this._adapter.getStep(e.index-1);case i.strings.HOME_KEY:return this._adapter.getStep(0);case i.strings.END_KEY:return this._adapter.getLastStep()}return e}_onSlotChange(t){this.disconnect(),this.initialize()}_onStepExpandedContentFocusIn(t){let e=this._adapter.getStep(t.detail.index+1);e&&e.setStepTabIndex(0),t.detail.setStepTabIndex(0)}_onStepExpandedContentFocusOut(t){let e=t.target,s=this._adapter.getStep(e.index+1);s&&s.setStepTabIndex(-1),e.setStepTabIndex(-1)}_onStepFocus(){this._adapter.toggleRootClass(i.classes.FOCUSED,!0)}_onStepBlur(){this._adapter.toggleRootClass(i.classes.FOCUSED,!1)}_patchBrowser(){new y().SAFARI()&&this._adapter.patchSafari()}};var w='<template><div class="forge-stepper" part="root"><slot></slot></div></template>',B=".forge-stepper{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;white-space:nowrap;overflow:hidden}.forge-stepper:not(.forge-stepper--vertical) ::slotted(*){display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;position:relative;min-width:112px}.forge-stepper--fixed ::slotted(*){-webkit-box-flex:1;flex:1}.forge-stepper--alternative{-webkit-box-align:start;align-items:flex-start}.forge-stepper--alternative ::slotted(*){min-width:160px}.forge-stepper--align-left{-webkit-box-pack:start;justify-content:flex-start}.forge-stepper--align-center{-webkit-box-pack:center;justify-content:center}.forge-stepper--align-right{-webkit-box-pack:end;justify-content:flex-end}:host{display:block}:host([hidden]){display:none}:host([vertical]) .forge-stepper{display:unset;-webkit-box-align:unset;align-items:unset;white-space:unset;overflow:unset}",r=class extends N{constructor(){super();R(this,w,B),this._foundation=new b(new h(this))}static get observedAttributes(){return[i.attributes.SELECTED_INDEX,i.attributes.LINEAR,i.attributes.ALTERNATIVE,i.attributes.LAYOUT_MODE,i.attributes.LAYOUT_ALIGN,i.attributes.DISABLED,i.attributes.VERTICAL]}async connectedCallback(){await A(this),this._foundation.initialize()}disconnectedCallback(){this._foundation.disconnect()}attributeChangedCallback(e,s,o){switch(e){case i.attributes.SELECTED_INDEX:this.selectedIndex=Number(o)||0;break;case i.attributes.LINEAR:this.linear=_(o);break;case i.attributes.ALTERNATIVE:this.alternative=_(o);break;case i.attributes.LAYOUT_MODE:this.layoutMode=o;break;case i.attributes.LAYOUT_ALIGN:this.layoutAlign=o;break;case i.attributes.DISABLED:this.disabled=_(o);break;case i.attributes.VERTICAL:this.vertical=_(o);break}}};l([d()],r.prototype,"steps",2),l([d()],r.prototype,"selectedIndex",2),l([d()],r.prototype,"linear",2),l([d()],r.prototype,"alternative",2),l([d()],r.prototype,"layoutMode",2),l([d()],r.prototype,"layoutAlign",2),l([d()],r.prototype,"disabled",2),l([d()],r.prototype,"vertical",2),r=l([x({name:i.elementName,dependencies:[M]})],r);function Re(){T(r)}export{i as a,h as b,b as c,r as d,Re as e};
7
- //# sourceMappingURL=chunk.JIKSKUDW.js.map
6
+ import{a,d as M}from"./chunk.QLCVRJ3Q.js";import{a as C}from"./chunk.LEVFMI2Q.js";import{a as y}from"./chunk.MGLWXAZO.js";import{a as O}from"./chunk.HSI7B43D.js";import{a as d}from"./chunk.NVUMRW44.js";import{a as x,b as D}from"./chunk.36F2GVWS.js";import{a as T,e as R,f as E,k as N}from"./chunk.JAWV5Y5T.js";import{l as A,s as I,t as g}from"./chunk.K7FPXAFS.js";import{b as m,d as f,k as _}from"./chunk.J2M2MXP2.js";import{a as L,d as l}from"./chunk.M3QDAYD2.js";var Y=`${D}stepper`,F={STEPPER:"forge-stepper",LINEAR:"forge-stepper--linear",ALTERNATIVE:"forge-stepper--alternative",CLUSTERED:"forge-stepper--clustered",FIXED:"forge-stepper--fixed",ALIGN_LEFT:"forge-stepper--align-left",ALIGN_CENTER:"forge-stepper--align-center",ALIGN_RIGHT:"forge-stepper--align-right",VERTICAL:"forge-stepper--vertical",FOCUSED:"forge-stepper--focused"},K={STEPPER:`.${F.STEPPER}`},k={SELECTED_INDEX:"selected-index",LINEAR:"linear",ALTERNATIVE:"alternative",LAYOUT_MODE:"layout-mode",LAYOUT_ALIGN:"layout-align",DISABLED:"disabled",VERTICAL:"vertical"},n={ARROW_LEFT_KEY:"ArrowLeft",ARROW_RIGHT_KEY:"ArrowRight",ARROW_UP_KEY:"ArrowUp",ARROW_DOWN_KEY:"ArrowDown",END_KEY:"End",ENTER_KEY:"Enter",HOME_KEY:"Home",SPACE_KEY:"Space",TAB_KEY:"Tab"},u={ARROW_LEFT_KEYCODE:37,ARROW_RIGHT_KEYCODE:39,END_KEYCODE:35,HOME_KEYCODE:36,ENTER_KEYCODE:13,SPACE_KEYCODE:32},P=[n.ARROW_LEFT_KEY,n.ARROW_RIGHT_KEY,n.ARROW_DOWN_KEY,n.ARROW_UP_KEY,n.END_KEY,n.HOME_KEY,n.ENTER_KEY,n.SPACE_KEY,n.TAB_KEY],H={[u.ARROW_LEFT_KEYCODE]:n.ARROW_LEFT_KEY,[u.ARROW_RIGHT_KEYCODE]:n.ARROW_RIGHT_KEY,[u.END_KEYCODE]:n.END_KEY,[u.HOME_KEYCODE]:n.HOME_KEY,[u.ENTER_KEYCODE]:n.ENTER_KEY,[u.SPACE_KEYCODE]:n.SPACE_KEY},i={elementName:Y,classes:F,selectors:K,attributes:k,numbers:u,strings:n,ACCEPTABLE_KEYS:P,KEYCODE_MAP:H};var c=class S{static createStepElement(t,e,s){var p,v;let o=document.createElement(a.elementName);return o.index=e,o.completed=t.completed||!1,o.editable=t.editable||!1,o.selected=s.selectedIndex===e,o.alternative=s.alternative,o.error=t.error||!1,o.disabled=t.disabled||!1,o.vertical=(v=(p=t.vertical)!=null?p:s.vertical)!=null?v:!1,o.ignoreUserExpansion=t.ignoreUserExpansion||!1,o.expanded=t.expanded||!1,s.linear&&e>s.selectedIndex&&(o.tabIndex=-1),o.textContent=t.label,t.optionalLabel&&o.appendChild(this.createStepOptionalLabel(t.optionalLabel)),o}static createStepOptionalLabel(t){let e=document.createElement("span");return e.slot="optional",e.textContent=t||"",e}static setLinearState(t,e){let s=t.classList.contains(i.classes.LINEAR);s&&!e&&(t.classList.remove(i.classes.LINEAR),s=!1),!s&&e&&t.classList.add(i.classes.LINEAR)}static setAlternativeState(t,e){let s=t.classList.contains(i.classes.ALTERNATIVE);s&&!e&&(t.classList.remove(i.classes.ALTERNATIVE),s=!1),!s&&e&&t.classList.add(i.classes.ALTERNATIVE)}static setLayoutMode(t,e){switch(e){case"clustered":t.classList.contains(i.classes.FIXED)&&t.classList.remove(i.classes.FIXED),t.classList.add(i.classes.CLUSTERED);break;case"fixed":t.classList.contains(i.classes.CLUSTERED)&&t.classList.remove(i.classes.CLUSTERED),t.classList.add(i.classes.FIXED);break}}static setLayoutAlign(t,e){switch(t.classList.contains(i.classes.ALIGN_LEFT)&&t.classList.remove(i.classes.ALIGN_LEFT),t.classList.contains(i.classes.ALIGN_CENTER)&&t.classList.remove(i.classes.ALIGN_CENTER),t.classList.contains(i.classes.ALIGN_RIGHT)&&t.classList.remove(i.classes.ALIGN_RIGHT),e){case"left":t.classList.add(i.classes.ALIGN_LEFT);break;case"center":t.classList.add(i.classes.ALIGN_CENTER);break;case"right":t.classList.add(i.classes.ALIGN_RIGHT);break}}static createSteps(t){let e=[];return t.steps.forEach((s,o)=>{let p=S.createStepElement(s,o,t);e.push(p)}),e[0].setAttribute(a.attributes.FIRST,""),e[e.length-1].setAttribute(a.attributes.LAST,""),e}};var h=class extends O{constructor(e){super(e);this._rootElement=E(e,i.selectors.STEPPER),this._slotElement=this._rootElement.querySelector("slot")}initializeAccessibility(){this._component.hasAttribute("role")||this._component.setAttribute("role","tablist")}patchSafari(){this._applyToSteps(e=>e.setAttribute("safari",""))}addSlotChangeListener(e){this._slotElement.addEventListener("slotchange",e)}removeSlotChangeListener(e){this._slotElement.addEventListener("slotchange",e)}getLastStep(){let e=this._getSteps();return e.item(e.length-1)}setSelected(e){this._getSteps().forEach(s=>{s===e?s.selected=!0:s.selected=!1})}assignIndices(){this._getSteps().forEach((s,o)=>{s.index=o})}assignFirstLastStep(){let e=this._getSteps();e&&e.length>1&&(e[0].setAttribute("first",""),e[e.length-1].setAttribute("last",""))}setLayoutAlign(e){c.setLayoutAlign(this._rootElement,e)}setLayoutMode(e){c.setLayoutMode(this._rootElement,e),this._applyToSteps(s=>s.setAttribute(a.attributes.CLUSTERED,""))}setAlternativeState(e){c.setAlternativeState(this._rootElement,e),this._applyToSteps(s=>s.alternative=e)}setVertical(e){g(this._rootElement,e,i.classes.VERTICAL),this._applyToSteps(s=>s.vertical=e)}setLinearState(e){c.setLinearState(this._rootElement,e)}removeRootListener(e,s){this._rootElement.removeEventListener("click",s)}addRootListener(e,s){this._rootElement.addEventListener(e,s)}setSelectedByIndex(e){this._applyToSteps(s=>{s.selected&&s.index!==e&&(s.selected=!1),s.index===e&&(s.selected=!0)})}applyConfiguredSteps(e){this._component.querySelectorAll(a.elementName).forEach(s=>{this._component.removeChild(s)}),e.forEach(s=>this._component.appendChild(s))}tryGetFocusedStep(){let e,s=I(this._component.ownerDocument);return this._applyToSteps(o=>{s===E(o,a.selectors.STEP)&&(e=o)}),e}getFocusedOrSelectedStep(){let e=this.tryGetFocusedStep();return e||(e=this._getSteps()[0],e.focus()),e}getStep(e){let s=0,o=this._getSteps();return e<0?o.item(o.length-1):(o.length>e&&(s=e),o.item(s))}toggleDisabled(e){this._applyToSteps(s=>s.disabled=e)}toggleRootClass(e,s){g(this._rootElement,s,e)}isStepperFocused(){return this._rootElement.classList.contains(i.classes.FOCUSED)}setStepsListener(e,s){this._applyToSteps(o=>o.addEventListener(e,s))}removeStepsListener(e,s){this._applyToSteps(o=>o.removeEventListener(e,s))}_applyToSteps(e){this._getSteps().forEach(e)}_getSteps(){return this._component.querySelectorAll(a.elementName)}};var b=class{constructor(t){this._adapter=t;this._steps=[];this._selectedIndex=0;this._linear=!1;this._alternative=!1;this._layoutMode="fixed";this._layoutAlign="center";this._initialize=!1;this._clickListener=e=>this._handleClick(e),this._keyListener=e=>this._onKeydown(e),this._stepFocusListener=()=>this._onStepFocus(),this._stepBlurListener=()=>this._onStepBlur(),this._stepExpandedContentFocusInListener=e=>this._onStepExpandedContentFocusIn(e),this._stepExpandedContentFocusOutListener=e=>this._onStepExpandedContentFocusOut(e),this._slotChangeListener=e=>this._onSlotChange(e)}initialize(){this._adapter.initializeAccessibility(),this._adapter.assignIndices(),this._adapter.setLinearState(this._linear),this._adapter.setAlternativeState(this._alternative),this._adapter.setLayoutAlign(this._layoutAlign),this._adapter.setLayoutMode(this._layoutMode),this._adapter.addRootListener("click",this._clickListener),this._adapter.addHostListener("keydown",this._keyListener),this._adapter.assignFirstLastStep(),this._adapter.addRootListener(a.events.EXPANDED_CONTENT_FOCUSIN,this._stepExpandedContentFocusInListener),this._adapter.addRootListener(a.events.EXPANDED_CONTENT_FOCUSOUT,this._stepExpandedContentFocusOutListener),this._applySelectedIndex(),this._patchBrowser(),this._adapter.setStepsListener("blur",this._stepBlurListener),this._adapter.setStepsListener("focus",this._stepFocusListener),this._initialize||this._adapter.addSlotChangeListener(this._slotChangeListener),this._initialize=!0}disconnect(){this._adapter.removeRootListener("click",this._clickListener),this._adapter.removeHostListener("keydown",this._keyListener),this._adapter.removeSlotChangeListener(this._slotChangeListener),this._adapter.removeStepsListener("blur",this._stepBlurListener),this._adapter.removeStepsListener("focus",this._stepFocusListener)}get steps(){return this._steps.map(t=>L({},t))}set steps(t){if(Array.isArray(t)&&t.length>0)this._steps=[...t.map(e=>L({},e))];else{this._steps=[];return}this._renderConfiguration()}get selectedIndex(){return this._selectedIndex}set selectedIndex(t){if(!m(t))t=0;else if(!f(t)){let e=Number(t);t=isNaN(e)?0:e}this._selectedIndex!==t&&(this._selectedIndex=t,this._adapter.setHostAttribute(i.attributes.SELECTED_INDEX,this._selectedIndex.toString()),this._applySelectedIndex())}get linear(){return this._linear}set linear(t){t=!!t,this._linear!==t&&(this._linear=t,this._adapter.setLinearState(this._linear),this._adapter.setHostAttribute(i.attributes.LINEAR,this._linear.toString()))}get alternative(){return this._alternative}set alternative(t){t=!!t,this._alternative!==t&&(this._alternative=t,this._adapter.setAlternativeState(this._alternative),this._adapter.setHostAttribute(i.attributes.ALTERNATIVE,this._alternative.toString()))}get layoutMode(){return this._layoutMode}set layoutMode(t){/^(fixed|clustered)$/.test(t)&&this._layoutMode!==t&&(this._layoutMode=t,this._adapter.setHostAttribute(i.attributes.LAYOUT_MODE,this._layoutMode),this._adapter.setLayoutMode(this._layoutMode))}get layoutAlign(){return this._layoutAlign}set layoutAlign(t){/^(left|center|right)$/.test(t)&&this._layoutAlign!==t&&(this._layoutAlign=t,this._adapter.setLayoutAlign(this._layoutAlign),this._adapter.setHostAttribute(i.attributes.LAYOUT_ALIGN,this._layoutAlign))}get disabled(){return this._disabled}set disabled(t){t!==this._disabled&&(this._disabled=t,this._applyDisabled())}get vertical(){return this._vertical}set vertical(t){t!==this._vertical&&(this._vertical=t,this._applyVertical(),this._adapter.toggleHostAttribute(i.attributes.VERTICAL,this._vertical))}_applyVertical(){this._adapter.setVertical(this._vertical)}_applyDisabled(){this._disabled?this._adapter.setHostAttribute(i.attributes.DISABLED,"disabled"):this._adapter.removeHostAttribute(i.attributes.DISABLED),this._adapter.toggleDisabled(this._disabled)}_applySelectedIndex(){this._adapter.setSelectedByIndex(this._selectedIndex)}_handleClick(t){if(t.preventDefault(),this._linear)return;let e=C(t),s=e.find(p=>p.classList&&p.classList.contains(a.classes.STEP)),o=e.find(p=>p.localName===a.elementName);s&&o&&!o.selected&&!o.disabled&&this._adapter.emitHostEvent(a.events.SELECT,o.index,!0,!0)&&(this._adapter.setSelected(o),this.selectedIndex=o.index)}_renderConfiguration(){let t=c.createSteps({steps:this._steps,vertical:this._vertical,selectedIndex:this._selectedIndex,alternative:this._alternative,layoutAlign:this._layoutAlign,layoutMode:this._layoutMode,linear:this._linear});this.disconnect(),this._adapter.applyConfiguredSteps(t),this.initialize()}_onKeydown(t){if(this._linear)return;let e=this._getKeyFromEvent(t);if(!this._adapter.isStepperFocused()||!e)return;[a.strings.HOME_KEY,a.strings.END_KEY,a.strings.ARROW_DOWN_KEY,i.strings.ARROW_UP_KEY].includes(e)&&t.preventDefault();let s=this._vertical?this._determineVerticalMoveTarget(e):this._determineMoveTarget(e);s&&this._moveFocusTo(s)}_moveFocusTo(t){E(t,a.selectors.STEP).focus()}_getKeyFromEvent(t){return i.ACCEPTABLE_KEYS.includes(t.key)?t.key:i.KEYCODE_MAP[t.keyCode]}_determineMoveTarget(t){let e=this._adapter.getFocusedOrSelectedStep();if(e)switch(t){case i.strings.ARROW_RIGHT_KEY:return this._adapter.getStep(e.index+1);case i.strings.ARROW_LEFT_KEY:return this._adapter.getStep(e.index-1);case i.strings.HOME_KEY:return this._adapter.getStep(0);case i.strings.END_KEY:return this._adapter.getLastStep()}return e}_determineVerticalMoveTarget(t){let e=this._adapter.getFocusedOrSelectedStep();if(e)switch(t){case i.strings.ARROW_DOWN_KEY:return this._adapter.getStep(e.index+1);case i.strings.ARROW_UP_KEY:return this._adapter.getStep(e.index-1);case i.strings.HOME_KEY:return this._adapter.getStep(0);case i.strings.END_KEY:return this._adapter.getLastStep()}return e}_onSlotChange(t){this.disconnect(),this.initialize()}_onStepExpandedContentFocusIn(t){let e=this._adapter.getStep(t.detail.index+1);e&&e.setStepTabIndex(0),t.detail.setStepTabIndex(0)}_onStepExpandedContentFocusOut(t){let e=t.target,s=this._adapter.getStep(e.index+1);s&&s.setStepTabIndex(-1),e.setStepTabIndex(-1)}_onStepFocus(){this._adapter.toggleRootClass(i.classes.FOCUSED,!0)}_onStepBlur(){this._adapter.toggleRootClass(i.classes.FOCUSED,!1)}_patchBrowser(){new y().SAFARI()&&this._adapter.patchSafari()}};var w='<template><div class="forge-stepper" part="root"><slot></slot></div></template>',B=".forge-stepper{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;white-space:nowrap;overflow:hidden}.forge-stepper:not(.forge-stepper--vertical) ::slotted(*){display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;position:relative;min-width:112px}.forge-stepper--fixed ::slotted(*){-webkit-box-flex:1;flex:1}.forge-stepper--alternative{-webkit-box-align:start;align-items:flex-start}.forge-stepper--alternative ::slotted(*){min-width:160px}.forge-stepper--align-left{-webkit-box-pack:start;justify-content:flex-start}.forge-stepper--align-center{-webkit-box-pack:center;justify-content:center}.forge-stepper--align-right{-webkit-box-pack:end;justify-content:flex-end}:host{display:block}:host([hidden]){display:none}:host([vertical]) .forge-stepper{display:unset;-webkit-box-align:unset;align-items:unset;white-space:unset;overflow:unset}",r=class extends N{constructor(){super();R(this,w,B),this._foundation=new b(new h(this))}static get observedAttributes(){return[i.attributes.SELECTED_INDEX,i.attributes.LINEAR,i.attributes.ALTERNATIVE,i.attributes.LAYOUT_MODE,i.attributes.LAYOUT_ALIGN,i.attributes.DISABLED,i.attributes.VERTICAL]}async connectedCallback(){await A(this),this._foundation.initialize()}disconnectedCallback(){this._foundation.disconnect()}attributeChangedCallback(e,s,o){switch(e){case i.attributes.SELECTED_INDEX:this.selectedIndex=Number(o)||0;break;case i.attributes.LINEAR:this.linear=_(o);break;case i.attributes.ALTERNATIVE:this.alternative=_(o);break;case i.attributes.LAYOUT_MODE:this.layoutMode=o;break;case i.attributes.LAYOUT_ALIGN:this.layoutAlign=o;break;case i.attributes.DISABLED:this.disabled=_(o);break;case i.attributes.VERTICAL:this.vertical=_(o);break}}};l([d()],r.prototype,"steps",2),l([d()],r.prototype,"selectedIndex",2),l([d()],r.prototype,"linear",2),l([d()],r.prototype,"alternative",2),l([d()],r.prototype,"layoutMode",2),l([d()],r.prototype,"layoutAlign",2),l([d()],r.prototype,"disabled",2),l([d()],r.prototype,"vertical",2),r=l([x({name:i.elementName,dependencies:[M]})],r);function Re(){T(r)}export{i as a,h as b,b as c,r as d,Re as e};
7
+ //# sourceMappingURL=chunk.5RM65QPN.js.map