@tylertech/forge 3.0.0-next.14 → 3.0.0-next.16

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 (814) hide show
  1. package/custom-elements.json +52540 -39351
  2. package/dist/esm/accordion/index.js +1 -1
  3. package/dist/esm/app-bar/app-bar/index.js +1 -1
  4. package/dist/esm/app-bar/help-button/index.js +1 -1
  5. package/dist/esm/app-bar/index.js +1 -1
  6. package/dist/esm/app-bar/menu-button/index.js +1 -1
  7. package/dist/esm/app-bar/notification-button/index.js +1 -1
  8. package/dist/esm/app-bar/profile-button/index.js +1 -1
  9. package/dist/esm/app-bar/search/index.js +1 -1
  10. package/dist/esm/autocomplete/index.js +1 -1
  11. package/dist/esm/avatar/index.js +1 -1
  12. package/dist/esm/backdrop/index.js +1 -1
  13. package/dist/esm/badge/index.js +1 -1
  14. package/dist/esm/banner/index.js +1 -1
  15. package/dist/esm/bottom-sheet/index.js +1 -1
  16. package/dist/esm/busy-indicator/index.js +1 -1
  17. package/dist/esm/button/index.js +1 -1
  18. package/dist/esm/button-area/index.js +1 -1
  19. package/dist/esm/button-toggle/button-toggle/index.js +1 -1
  20. package/dist/esm/button-toggle/button-toggle-group/index.js +1 -1
  21. package/dist/esm/button-toggle/index.js +1 -1
  22. package/dist/esm/calendar/calendar-dropdown/index.js +1 -1
  23. package/dist/esm/calendar/calendar-menu/index.js +1 -1
  24. package/dist/esm/calendar/index.js +1 -1
  25. package/dist/esm/card/index.js +1 -1
  26. package/dist/esm/checkbox/index.js +1 -1
  27. package/dist/esm/chip-field/index.js +1 -1
  28. package/dist/esm/chips/chip/index.js +1 -1
  29. package/dist/esm/chips/chip-set/index.js +1 -1
  30. package/dist/esm/chips/index.js +1 -1
  31. package/dist/esm/chunks/chunk.24NQGTNU.js +7 -0
  32. package/dist/esm/chunks/chunk.24NQGTNU.js.map +7 -0
  33. package/dist/esm/chunks/{chunk.PSTGTQVK.js → chunk.2JCTFKCR.js} +2 -2
  34. package/dist/esm/chunks/{chunk.3UO6S3IK.js → chunk.2OZ2HVBZ.js} +2 -2
  35. package/dist/esm/chunks/{chunk.3UO6S3IK.js.map → chunk.2OZ2HVBZ.js.map} +3 -3
  36. package/dist/esm/chunks/{chunk.4B5IOZAT.js → chunk.2YE556AM.js} +2 -2
  37. package/dist/esm/chunks/{chunk.YKZ25J6B.js → chunk.3U6A353B.js} +2 -2
  38. package/dist/esm/chunks/chunk.3VHQPHQP.js +7 -0
  39. package/dist/esm/chunks/chunk.3VHQPHQP.js.map +7 -0
  40. package/dist/esm/chunks/{chunk.LXX3YZYS.js → chunk.436USWLL.js} +2 -2
  41. package/dist/esm/chunks/{chunk.KLPF4CNX.js → chunk.4GMGQZOW.js} +2 -2
  42. package/dist/esm/chunks/{chunk.Z7PBGV4K.js → chunk.4JB3SESQ.js} +2 -2
  43. package/dist/esm/chunks/{chunk.QFY23EWU.js → chunk.4JL5LW5J.js} +2 -2
  44. package/dist/esm/chunks/chunk.4O6OEUGY.js +7 -0
  45. package/dist/esm/chunks/{chunk.RDW7Z4W5.js.map → chunk.4O6OEUGY.js.map} +2 -2
  46. package/dist/esm/chunks/chunk.4OG3OGVO.js +7 -0
  47. package/dist/esm/chunks/chunk.4OG3OGVO.js.map +7 -0
  48. package/dist/esm/chunks/chunk.4QOXI2GM.js +7 -0
  49. package/dist/esm/chunks/chunk.4QOXI2GM.js.map +7 -0
  50. package/dist/esm/chunks/chunk.55D2BMXX.js +7 -0
  51. package/dist/esm/chunks/{chunk.A72W7RW7.js → chunk.5LCWC3A7.js} +2 -2
  52. package/dist/esm/chunks/{chunk.RYNQDXFA.js → chunk.5T7TT3AB.js} +2 -2
  53. package/dist/esm/chunks/{chunk.2GYZM6ZG.js → chunk.5WVOPPBY.js} +2 -2
  54. package/dist/esm/chunks/{chunk.2GYZM6ZG.js.map → chunk.5WVOPPBY.js.map} +2 -2
  55. package/dist/esm/chunks/chunk.5XLCY232.js +7 -0
  56. package/dist/esm/chunks/chunk.5XLCY232.js.map +7 -0
  57. package/dist/esm/chunks/chunk.65WE722H.js +7 -0
  58. package/dist/esm/chunks/chunk.65WE722H.js.map +7 -0
  59. package/dist/esm/chunks/chunk.6IPX5C4B.js +7 -0
  60. package/dist/esm/chunks/chunk.6IPX5C4B.js.map +7 -0
  61. package/dist/esm/chunks/{chunk.TLFCQSJN.js → chunk.6PB5OWMP.js} +2 -2
  62. package/dist/esm/chunks/{chunk.TLFCQSJN.js.map → chunk.6PB5OWMP.js.map} +2 -2
  63. package/dist/esm/chunks/chunk.74HZVSDM.js +7 -0
  64. package/dist/esm/chunks/chunk.74HZVSDM.js.map +7 -0
  65. package/dist/esm/chunks/chunk.74JHE77R.js +7 -0
  66. package/dist/esm/chunks/{chunk.KTYYBWTN.js.map → chunk.74JHE77R.js.map} +2 -2
  67. package/dist/esm/chunks/chunk.7SYU6KRU.js +15 -0
  68. package/dist/esm/chunks/chunk.7SYU6KRU.js.map +7 -0
  69. package/dist/esm/chunks/{chunk.HHHBS6FB.js → chunk.B53Q676I.js} +2 -2
  70. package/dist/esm/chunks/{chunk.B46Q3AFP.js → chunk.BKQSLDMK.js} +2 -2
  71. package/dist/esm/chunks/{chunk.7XFU2W25.js → chunk.BX4AQRHB.js} +2 -2
  72. package/dist/esm/chunks/{chunk.7XFU2W25.js.map → chunk.BX4AQRHB.js.map} +3 -3
  73. package/dist/esm/chunks/{chunk.OUACQISE.js → chunk.BZG47SA5.js} +2 -2
  74. package/dist/esm/chunks/{chunk.OUACQISE.js.map → chunk.BZG47SA5.js.map} +1 -1
  75. package/dist/esm/chunks/{chunk.F2EBSV5Z.js → chunk.BZVLSWZR.js} +2 -2
  76. package/dist/esm/chunks/chunk.C72LM2AL.js +7 -0
  77. package/dist/esm/chunks/chunk.C72LM2AL.js.map +7 -0
  78. package/dist/esm/chunks/{chunk.BMQYEYCT.js → chunk.DGG5ABL3.js} +2 -2
  79. package/dist/esm/chunks/{chunk.PK7R6WDF.js → chunk.DPIWAXEW.js} +2 -2
  80. package/dist/esm/chunks/chunk.E62ZPQSM.js +7 -0
  81. package/dist/esm/chunks/chunk.E62ZPQSM.js.map +7 -0
  82. package/dist/esm/chunks/chunk.ECJBVX3D.js +7 -0
  83. package/dist/esm/chunks/{chunk.5VHUMZYS.js.map → chunk.ECJBVX3D.js.map} +1 -1
  84. package/dist/esm/chunks/chunk.EN2HVFJ4.js +7 -0
  85. package/dist/esm/chunks/chunk.EN2HVFJ4.js.map +7 -0
  86. package/dist/esm/chunks/chunk.EPRRK33O.js +7 -0
  87. package/dist/esm/chunks/chunk.EPRRK33O.js.map +7 -0
  88. package/dist/esm/chunks/{chunk.7PP6QHOM.js → chunk.ETDUW5K2.js} +2 -2
  89. package/dist/esm/chunks/chunk.EWFNM4WO.js +7 -0
  90. package/dist/esm/chunks/chunk.EWFNM4WO.js.map +7 -0
  91. package/dist/esm/chunks/{chunk.FYWPZFLJ.js → chunk.EWT2PBEP.js} +2 -2
  92. package/dist/esm/chunks/{chunk.FYWPZFLJ.js.map → chunk.EWT2PBEP.js.map} +2 -2
  93. package/dist/esm/chunks/{chunk.GHR7T6U2.js → chunk.FGHSNC2V.js} +2 -2
  94. package/dist/esm/chunks/{chunk.P7LC3YYW.js → chunk.FPRBYGET.js} +2 -2
  95. package/dist/esm/chunks/{chunk.7W2UWAZX.js → chunk.FQVR2QNF.js} +2 -2
  96. package/dist/esm/chunks/{chunk.IEB5KRFQ.js → chunk.FWWBFNQA.js} +2 -2
  97. package/dist/esm/chunks/{chunk.543K5Y4E.js → chunk.FZELFLPE.js} +2 -2
  98. package/dist/esm/chunks/{chunk.6Q3SV2R2.js → chunk.FZZUNYH5.js} +2 -2
  99. package/dist/esm/chunks/chunk.GHMAI3SM.js +15 -0
  100. package/dist/esm/chunks/chunk.GHMAI3SM.js.map +7 -0
  101. package/dist/esm/chunks/{chunk.CTZ3AWDW.js → chunk.GLUKTMQU.js} +2 -2
  102. package/dist/esm/chunks/{chunk.W324TWF2.js → chunk.GTBCTNMI.js} +2 -2
  103. package/dist/esm/chunks/chunk.GTGXHY4A.js +7 -0
  104. package/dist/esm/chunks/chunk.GTGXHY4A.js.map +7 -0
  105. package/dist/esm/chunks/{chunk.L4Y4RO5O.js → chunk.GURV4TDZ.js} +2 -2
  106. package/dist/esm/chunks/chunk.H6MMHAQI.js +15 -0
  107. package/dist/esm/chunks/chunk.H6MMHAQI.js.map +7 -0
  108. package/dist/esm/chunks/{chunk.FQSL747N.js → chunk.HJUFU2PV.js} +2 -2
  109. package/dist/esm/chunks/{chunk.FQSL747N.js.map → chunk.HJUFU2PV.js.map} +2 -2
  110. package/dist/esm/chunks/chunk.HPCXVNG6.js +7 -0
  111. package/dist/esm/chunks/{chunk.CZOABXEQ.js.map → chunk.HPCXVNG6.js.map} +3 -3
  112. package/dist/esm/chunks/{chunk.K7FPXAFS.js → chunk.HZUQXCOQ.js} +2 -2
  113. package/dist/esm/chunks/{chunk.K7FPXAFS.js.map → chunk.HZUQXCOQ.js.map} +2 -2
  114. package/dist/esm/chunks/{chunk.THWSN3X4.js → chunk.IA27LU2O.js} +2 -2
  115. package/dist/esm/chunks/chunk.INQZNXG6.js +7 -0
  116. package/dist/esm/chunks/chunk.INQZNXG6.js.map +7 -0
  117. package/dist/esm/chunks/chunk.IO3TM653.js +7 -0
  118. package/dist/esm/chunks/chunk.IO3TM653.js.map +7 -0
  119. package/dist/esm/chunks/{chunk.TZFUKJ24.js → chunk.JXJVPJRO.js} +2 -2
  120. package/dist/esm/chunks/{chunk.Z2RB75TN.js → chunk.K3STAW42.js} +2 -2
  121. package/dist/esm/chunks/chunk.KM5XYTE3.js +7 -0
  122. package/dist/esm/chunks/chunk.KM5XYTE3.js.map +7 -0
  123. package/dist/esm/chunks/{chunk.G2BNY5QQ.js → chunk.KPC6IS3C.js} +2 -2
  124. package/dist/esm/chunks/chunk.KPNGLSCU.js +7 -0
  125. package/dist/esm/chunks/chunk.KPNGLSCU.js.map +7 -0
  126. package/dist/esm/chunks/{chunk.VDZ7HBKM.js → chunk.KV7PGQJ7.js} +2 -2
  127. package/dist/esm/chunks/chunk.LCS2O4Y7.js +7 -0
  128. package/dist/esm/chunks/chunk.LCS2O4Y7.js.map +7 -0
  129. package/dist/esm/chunks/chunk.M4KCRUKW.js +7 -0
  130. package/dist/esm/chunks/chunk.M4KCRUKW.js.map +7 -0
  131. package/dist/esm/chunks/chunk.M5JGYRH4.js +7 -0
  132. package/dist/esm/chunks/chunk.M7RYU4HQ.js +7 -0
  133. package/dist/esm/chunks/chunk.M7RYU4HQ.js.map +7 -0
  134. package/dist/esm/chunks/chunk.N75VD4S4.js +7 -0
  135. package/dist/esm/chunks/chunk.NHOGZDLN.js +7 -0
  136. package/dist/esm/chunks/chunk.NHOGZDLN.js.map +7 -0
  137. package/dist/esm/chunks/{chunk.H7GW57Q6.js → chunk.NKEAMFO4.js} +2 -2
  138. package/dist/esm/chunks/{chunk.26E4L52W.js → chunk.NW54VA4E.js} +2 -2
  139. package/dist/esm/chunks/chunk.OJGPKHHC.js +7 -0
  140. package/dist/esm/chunks/{chunk.VD5ZL5ZN.js.map → chunk.OJGPKHHC.js.map} +2 -2
  141. package/dist/esm/chunks/chunk.OSCODMUG.js +7 -0
  142. package/dist/esm/chunks/chunk.OSCODMUG.js.map +7 -0
  143. package/dist/esm/chunks/chunk.OT3JZ6JO.js +7 -0
  144. package/dist/esm/chunks/chunk.OT3JZ6JO.js.map +7 -0
  145. package/dist/esm/chunks/{chunk.PADPL4L3.js → chunk.OUIWXKO2.js} +2 -2
  146. package/dist/esm/chunks/chunk.OXVCCHM5.js +7 -0
  147. package/dist/esm/chunks/{chunk.7ABZUBTT.js → chunk.P5XHGSJY.js} +2 -2
  148. package/dist/esm/chunks/chunk.Q5YXX4DU.js +7 -0
  149. package/dist/esm/chunks/chunk.Q5YXX4DU.js.map +7 -0
  150. package/dist/esm/chunks/chunk.QG5EYBS3.js +7 -0
  151. package/dist/esm/chunks/chunk.QG5EYBS3.js.map +7 -0
  152. package/dist/esm/chunks/{chunk.NZKIFXBU.js → chunk.QKTNCOVX.js} +2 -2
  153. package/dist/esm/chunks/{chunk.NG6UZ4OL.js → chunk.QZ57WM3D.js} +2 -2
  154. package/dist/esm/chunks/{chunk.OED5UCYT.js → chunk.R2QENXIL.js} +2 -2
  155. package/dist/esm/chunks/chunk.R53VHVKB.js +12 -0
  156. package/dist/esm/chunks/chunk.R53VHVKB.js.map +7 -0
  157. package/dist/esm/chunks/{chunk.DOEG3DWJ.js → chunk.RDQ3QGWS.js} +2 -2
  158. package/dist/esm/chunks/{chunk.GS72TBUD.js → chunk.RFKKHN7V.js} +2 -2
  159. package/dist/esm/chunks/{chunk.57PXXJA6.js → chunk.RKG66YKS.js} +2 -2
  160. package/dist/esm/chunks/chunk.RRNSZCVJ.js +7 -0
  161. package/dist/esm/chunks/chunk.RRNSZCVJ.js.map +7 -0
  162. package/dist/esm/chunks/chunk.S32JKL3M.js +7 -0
  163. package/dist/esm/chunks/chunk.S32JKL3M.js.map +7 -0
  164. package/dist/esm/chunks/chunk.SJQPD3CO.js +7 -0
  165. package/dist/esm/chunks/chunk.SJQPD3CO.js.map +7 -0
  166. package/dist/esm/chunks/{chunk.LMIKNDBS.js → chunk.T235SNYZ.js} +2 -2
  167. package/dist/esm/chunks/chunk.T4N7KZHZ.js +7 -0
  168. package/dist/esm/chunks/chunk.T4N7KZHZ.js.map +7 -0
  169. package/dist/esm/chunks/{chunk.J3B5CWKT.js → chunk.TE6ZNUAM.js} +2 -2
  170. package/dist/esm/chunks/{chunk.J3B5CWKT.js.map → chunk.TE6ZNUAM.js.map} +2 -2
  171. package/dist/esm/chunks/{chunk.DD35U4AA.js → chunk.TNEUDWZU.js} +2 -2
  172. package/dist/esm/chunks/{chunk.DD35U4AA.js.map → chunk.TNEUDWZU.js.map} +2 -2
  173. package/dist/esm/chunks/chunk.TPXXHX5J.js +7 -0
  174. package/dist/esm/chunks/{chunk.JAWV5Y5T.js.map → chunk.TPXXHX5J.js.map} +2 -2
  175. package/dist/esm/chunks/chunk.TZ67MC2N.js +7 -0
  176. package/dist/esm/chunks/{chunk.C5IB44HX.js.map → chunk.TZ67MC2N.js.map} +1 -1
  177. package/dist/esm/chunks/chunk.V3IHX6B2.js +7 -0
  178. package/dist/esm/chunks/{chunk.BFUGFHEH.js.map → chunk.V3IHX6B2.js.map} +1 -1
  179. package/dist/esm/chunks/chunk.V564JB6A.js +7 -0
  180. package/dist/esm/chunks/chunk.V564JB6A.js.map +7 -0
  181. package/dist/esm/chunks/chunk.VGIZJ32U.js +7 -0
  182. package/dist/esm/chunks/chunk.VZTV4GXC.js +7 -0
  183. package/dist/esm/chunks/chunk.VZTV4GXC.js.map +7 -0
  184. package/dist/esm/chunks/chunk.W5TDBDVY.js +7 -0
  185. package/dist/esm/chunks/{chunk.XDANTL6C.js.map → chunk.W5TDBDVY.js.map} +2 -2
  186. package/dist/esm/chunks/{chunk.U5WMRBSC.js → chunk.WA2YP4NC.js} +2 -2
  187. package/dist/esm/chunks/chunk.WFQYTXCB.js +7 -0
  188. package/dist/esm/chunks/chunk.WFQYTXCB.js.map +7 -0
  189. package/dist/esm/chunks/chunk.WNH7EHZP.js +7 -0
  190. package/dist/esm/chunks/{chunk.F6KM5FO6.js.map → chunk.WNH7EHZP.js.map} +2 -2
  191. package/dist/esm/chunks/{chunk.5C24LZNU.js → chunk.WQHKUNR7.js} +2 -2
  192. package/dist/esm/chunks/chunk.WYSUQK6Z.js +7 -0
  193. package/dist/esm/chunks/{chunk.3ZRQFXQU.js.map → chunk.WYSUQK6Z.js.map} +2 -2
  194. package/dist/esm/chunks/chunk.X57DRPFB.js +7 -0
  195. package/dist/esm/chunks/{chunk.DDXIHZFX.js → chunk.X7YTDVNT.js} +2 -2
  196. package/dist/esm/chunks/chunk.XBFH6M72.js +7 -0
  197. package/dist/esm/chunks/chunk.XBFH6M72.js.map +7 -0
  198. package/dist/esm/chunks/{chunk.7DHDFH5L.js → chunk.XOH2JCRS.js} +2 -2
  199. package/dist/esm/chunks/{chunk.IW7HALLT.js → chunk.Y6D5Z56X.js} +2 -2
  200. package/dist/esm/chunks/{chunk.IW7HALLT.js.map → chunk.Y6D5Z56X.js.map} +2 -2
  201. package/dist/esm/chunks/chunk.YBPAGWVG.js +7 -0
  202. package/dist/esm/chunks/chunk.YBPAGWVG.js.map +7 -0
  203. package/dist/esm/chunks/{chunk.KVCDAZ6B.js → chunk.YTBNAGLS.js} +2 -2
  204. package/dist/esm/chunks/chunk.YWDYBX3G.js +7 -0
  205. package/dist/esm/chunks/chunk.YWDYBX3G.js.map +7 -0
  206. package/dist/esm/chunks/{chunk.RZZBM3AW.js → chunk.ZHMV5SR4.js} +2 -2
  207. package/dist/esm/chunks/{chunk.GWJ4QCSW.js → chunk.ZLACSRD4.js} +2 -2
  208. package/dist/esm/chunks/{chunk.URCJO73M.js → chunk.ZPVRRFT7.js} +2 -2
  209. package/dist/esm/chunks/{chunk.URCJO73M.js.map → chunk.ZPVRRFT7.js.map} +1 -1
  210. package/dist/esm/chunks/chunk.ZS3T6MJS.js +7 -0
  211. package/dist/esm/chunks/{chunk.JVK64JDZ.js.map → chunk.ZS3T6MJS.js.map} +2 -2
  212. package/dist/esm/chunks/{chunk.DTKFE7YB.js → chunk.ZUTQPJ2B.js} +2 -2
  213. package/dist/esm/chunks/chunk.ZWIEYVZC.js +7 -0
  214. package/dist/esm/chunks/chunk.ZWIEYVZC.js.map +7 -0
  215. package/dist/esm/chunks/chunk.ZY3ETQ3D.js +7 -0
  216. package/dist/esm/chunks/chunk.ZY3ETQ3D.js.map +7 -0
  217. package/dist/esm/chunks/{chunk.PQQVUUHU.js → chunk.ZYCKD6K5.js} +2 -2
  218. package/dist/esm/circular-progress/index.js +1 -1
  219. package/dist/esm/color-picker/index.js +1 -1
  220. package/dist/esm/core/base/index.js +1 -1
  221. package/dist/esm/core/delegates/index.js +1 -1
  222. package/dist/esm/core/index.js +1 -1
  223. package/dist/esm/core/utils/index.js +1 -1
  224. package/dist/esm/date-picker/index.js +1 -1
  225. package/dist/esm/date-range-picker/index.js +1 -1
  226. package/dist/esm/dialog/index.js +1 -1
  227. package/dist/esm/divider/index.js +1 -1
  228. package/dist/esm/drawer/base/index.js +1 -1
  229. package/dist/esm/drawer/drawer/index.js +1 -1
  230. package/dist/esm/drawer/index.js +1 -1
  231. package/dist/esm/drawer/mini-drawer/index.js +1 -1
  232. package/dist/esm/drawer/modal-drawer/index.js +1 -1
  233. package/dist/esm/expansion-panel/index.js +1 -1
  234. package/dist/esm/file-picker/index.js +1 -1
  235. package/dist/esm/floating-action-button/index.js +1 -1
  236. package/dist/esm/floating-label/index.js +1 -1
  237. package/dist/esm/focus-indicator/index.js +1 -1
  238. package/dist/esm/icon/index.js +1 -1
  239. package/dist/esm/icon-button/index.js +1 -1
  240. package/dist/esm/index.js +1 -1
  241. package/dist/esm/inline-message/index.js +1 -1
  242. package/dist/esm/keyboard-shortcut/index.js +1 -1
  243. package/dist/esm/label/index.js +1 -1
  244. package/dist/esm/label-value/index.js +1 -1
  245. package/dist/esm/linear-progress/index.js +1 -1
  246. package/dist/esm/list/index.js +1 -1
  247. package/dist/esm/list/list/index.js +1 -1
  248. package/dist/esm/list/list-item/index.js +1 -1
  249. package/dist/esm/list-dropdown/index.js +1 -1
  250. package/dist/esm/menu/index.js +1 -1
  251. package/dist/esm/open-icon/index.js +1 -1
  252. package/dist/esm/overlay/index.js +7 -0
  253. package/dist/esm/overlay/index.js.map +7 -0
  254. package/dist/esm/page-state/index.js +1 -1
  255. package/dist/esm/paginator/index.js +1 -1
  256. package/dist/esm/popover/index.js +7 -0
  257. package/dist/esm/popover/index.js.map +7 -0
  258. package/dist/esm/popup/index.js +1 -1
  259. package/dist/esm/product-icon/index.js +1 -1
  260. package/dist/esm/profile-card/index.js +1 -1
  261. package/dist/esm/quantity-field/index.js +1 -1
  262. package/dist/esm/radio/index.js +1 -1
  263. package/dist/esm/radio/radio/index.js +7 -0
  264. package/dist/esm/radio/radio/index.js.map +7 -0
  265. package/dist/esm/radio/radio-group/index.js +7 -0
  266. package/dist/esm/radio/radio-group/index.js.map +7 -0
  267. package/dist/esm/ripple/index.js +1 -1
  268. package/dist/esm/scaffold/index.js +1 -1
  269. package/dist/esm/select/core/index.js +1 -1
  270. package/dist/esm/select/index.js +1 -1
  271. package/dist/esm/select/option/index.js +1 -1
  272. package/dist/esm/select/option-group/index.js +1 -1
  273. package/dist/esm/select/select/index.js +1 -1
  274. package/dist/esm/select/select-dropdown/index.js +1 -1
  275. package/dist/esm/skeleton/index.js +1 -1
  276. package/dist/esm/slider/index.js +1 -1
  277. package/dist/esm/split-button/index.js +1 -1
  278. package/dist/esm/split-view/index.js +1 -1
  279. package/dist/esm/split-view/split-view/index.js +1 -1
  280. package/dist/esm/split-view/split-view-panel/index.js +1 -1
  281. package/dist/esm/stack/index.js +1 -1
  282. package/dist/esm/state-layer/index.js +1 -1
  283. package/dist/esm/stepper/index.js +1 -1
  284. package/dist/esm/stepper/step/index.js +1 -1
  285. package/dist/esm/stepper/stepper/index.js +1 -1
  286. package/dist/esm/switch/index.js +1 -1
  287. package/dist/esm/table/index.js +1 -1
  288. package/dist/esm/tabs/index.js +1 -1
  289. package/dist/esm/tabs/tab/index.js +1 -1
  290. package/dist/esm/tabs/tab-bar/index.js +1 -1
  291. package/dist/esm/text-field/index.js +1 -1
  292. package/dist/esm/time-picker/index.js +1 -1
  293. package/dist/esm/toast/index.js +1 -1
  294. package/dist/esm/toolbar/index.js +1 -1
  295. package/dist/esm/tooltip/index.js +1 -1
  296. package/dist/esm/view-switcher/index.js +1 -1
  297. package/dist/esm/view-switcher/view/index.js +1 -1
  298. package/dist/forge-dark.css +1 -1
  299. package/dist/forge.css +1 -1
  300. package/dist/theme/forge-theme.css +1 -1
  301. package/esm/app-bar/app-bar/app-bar.js +1 -1
  302. package/esm/app-bar/help-button/app-bar-help-button-adapter.js +3 -3
  303. package/esm/app-bar/help-button/app-bar-help-button.js +1 -1
  304. package/esm/app-bar/menu-button/app-bar-menu-button.js +4 -4
  305. package/esm/app-bar/notification-button/app-bar-notification-button-adapter.js +3 -3
  306. package/esm/app-bar/notification-button/app-bar-notification-button.js +1 -1
  307. package/esm/app-bar/profile-button/app-bar-profile-button-adapter.js +3 -3
  308. package/esm/app-bar/profile-button/app-bar-profile-button-foundation.js +1 -0
  309. package/esm/app-bar/profile-button/app-bar-profile-button.js +1 -1
  310. package/esm/app-bar/search/app-bar-search-adapter.d.ts +8 -43
  311. package/esm/app-bar/search/app-bar-search-adapter.js +23 -53
  312. package/esm/app-bar/search/app-bar-search-constants.d.ts +0 -15
  313. package/esm/app-bar/search/app-bar-search-constants.js +3 -20
  314. package/esm/app-bar/search/app-bar-search-foundation.d.ts +3 -37
  315. package/esm/app-bar/search/app-bar-search-foundation.js +27 -88
  316. package/esm/app-bar/search/app-bar-search.d.ts +1 -21
  317. package/esm/app-bar/search/app-bar-search.js +13 -39
  318. package/esm/banner/banner.js +1 -1
  319. package/esm/button/base/base-button-adapter.d.ts +0 -5
  320. package/esm/button/base/base-button-adapter.js +18 -18
  321. package/esm/button/base/base-button-constants.d.ts +28 -28
  322. package/esm/button/base/base-button-foundation.d.ts +0 -2
  323. package/esm/button/base/base-button-foundation.js +9 -14
  324. package/esm/button/base/base-button.d.ts +11 -7
  325. package/esm/button/base/base-button.js +21 -14
  326. package/esm/button/button-constants.d.ts +2 -0
  327. package/esm/button/button-constants.js +2 -1
  328. package/esm/button/button-foundation.d.ts +4 -0
  329. package/esm/button/button-foundation.js +10 -0
  330. package/esm/button/button.d.ts +4 -0
  331. package/esm/button/button.js +10 -2
  332. package/esm/button-toggle/button-toggle/button-toggle-adapter.d.ts +6 -14
  333. package/esm/button-toggle/button-toggle/button-toggle-adapter.js +19 -45
  334. package/esm/button-toggle/button-toggle/button-toggle-constants.d.ts +11 -15
  335. package/esm/button-toggle/button-toggle/button-toggle-constants.js +6 -17
  336. package/esm/button-toggle/button-toggle/button-toggle-foundation.d.ts +18 -12
  337. package/esm/button-toggle/button-toggle/button-toggle-foundation.js +74 -30
  338. package/esm/button-toggle/button-toggle/button-toggle.d.ts +67 -14
  339. package/esm/button-toggle/button-toggle/button-toggle.js +82 -29
  340. package/esm/button-toggle/button-toggle-group/button-toggle-group-adapter.d.ts +7 -13
  341. package/esm/button-toggle/button-toggle-group/button-toggle-group-adapter.js +26 -91
  342. package/esm/button-toggle/button-toggle-group/button-toggle-group-constants.d.ts +20 -11
  343. package/esm/button-toggle/button-toggle-group/button-toggle-group-constants.js +8 -2
  344. package/esm/button-toggle/button-toggle-group/button-toggle-group-foundation.d.ts +20 -12
  345. package/esm/button-toggle/button-toggle-group/button-toggle-group-foundation.js +101 -97
  346. package/esm/button-toggle/button-toggle-group/button-toggle-group.d.ts +75 -9
  347. package/esm/button-toggle/button-toggle-group/button-toggle-group.js +134 -25
  348. package/esm/calendar/calendar-dom-utils.js +1 -2
  349. package/esm/calendar/calendar-foundation.d.ts +1 -1
  350. package/esm/calendar/calendar-foundation.js +13 -16
  351. package/esm/checkbox/checkbox.js +1 -1
  352. package/esm/circular-progress/circular-progress-adapter.js +8 -12
  353. package/esm/circular-progress/circular-progress.d.ts +7 -3
  354. package/esm/circular-progress/circular-progress.js +4 -2
  355. package/esm/color-picker/color-picker.js +1 -1
  356. package/esm/constants.d.ts +15 -2
  357. package/esm/constants.js +13 -0
  358. package/esm/core/base/base-adapter.d.ts +6 -0
  359. package/esm/core/base/base-adapter.js +13 -4
  360. package/esm/core/base/base-component.d.ts +4 -0
  361. package/esm/core/base/base-form-component.d.ts +0 -10
  362. package/esm/core/base/base-form-component.js +0 -6
  363. package/esm/core/base/base-nullable-form-component.d.ts +0 -10
  364. package/esm/core/base/base-nullable-form-component.js +0 -6
  365. package/esm/core/{base/base-focusable-component.d.ts → mixins/focus/with-focusable.d.ts} +11 -14
  366. package/esm/core/{base/base-focusable-component.js → mixins/focus/with-focusable.js} +15 -16
  367. package/esm/core/mixins/form/with-form-associated.d.ts +116 -0
  368. package/esm/core/mixins/form/with-form-associated.js +71 -0
  369. package/esm/core/mixins/form/with-form-validity.d.ts +35 -0
  370. package/esm/core/mixins/form/with-form-validity.js +43 -0
  371. package/esm/core/mixins/interactions/longpress/with-longpress-listener.d.ts +33 -0
  372. package/esm/core/mixins/interactions/longpress/with-longpress-listener.js +82 -0
  373. package/esm/core/mixins/internals/with-default-aria.d.ts +32 -0
  374. package/esm/core/mixins/internals/with-default-aria.js +22 -0
  375. package/esm/core/mixins/internals/with-element-internals.d.ts +26 -0
  376. package/esm/core/mixins/internals/with-element-internals.js +22 -0
  377. package/esm/core/mixins/label/with-label-aware.d.ts +33 -0
  378. package/esm/core/mixins/label/with-label-aware.js +17 -0
  379. package/esm/core/utils/a11y-utils.d.ts +126 -0
  380. package/esm/core/utils/a11y-utils.js +169 -0
  381. package/esm/core/utils/deferred.d.ts +29 -0
  382. package/esm/core/utils/deferred.js +32 -0
  383. package/esm/core/utils/dismissible-stack.d.ts +74 -0
  384. package/esm/core/utils/dismissible-stack.js +133 -0
  385. package/esm/core/utils/event-utils.d.ts +1 -0
  386. package/esm/core/utils/event-utils.js +3 -0
  387. package/esm/core/utils/feature-detection.d.ts +13 -0
  388. package/esm/core/utils/feature-detection.js +21 -0
  389. package/esm/core/utils/form-utils.d.ts +24 -0
  390. package/{styles/checkbox/_configuration.scss → esm/core/utils/form-utils.js} +1 -5
  391. package/esm/core/utils/index.d.ts +1 -0
  392. package/esm/core/utils/index.js +1 -0
  393. package/esm/core/utils/mixin-utils.d.ts +20 -0
  394. package/esm/core/utils/mixin-utils.js +15 -0
  395. package/esm/core/utils/position-utils.d.ts +78 -0
  396. package/esm/core/utils/position-utils.js +197 -0
  397. package/esm/core/utils/reflect-utils.d.ts +1 -1
  398. package/esm/core/utils/reflect-utils.js +2 -2
  399. package/esm/core/utils/utils.d.ts +14 -0
  400. package/esm/core/utils/utils.js +25 -7
  401. package/esm/date-picker/base/base-date-picker.d.ts +1 -1
  402. package/esm/date-picker/base/base-date-picker.js +4 -3
  403. package/esm/date-range-picker/date-range-picker-foundation.d.ts +1 -0
  404. package/esm/date-range-picker/date-range-picker-foundation.js +4 -0
  405. package/esm/dialog/dialog-constants.d.ts +1 -0
  406. package/esm/dialog/dialog-constants.js +2 -1
  407. package/esm/dialog/dialog-foundation.js +3 -6
  408. package/esm/dialog/dialog.js +1 -1
  409. package/esm/drawer/mini-drawer/mini-drawer.js +1 -1
  410. package/esm/expansion-panel/expansion-panel-adapter.js +0 -5
  411. package/esm/floating-action-button/floating-action-button.js +1 -1
  412. package/esm/icon-button/icon-button-component-delegate.js +1 -1
  413. package/esm/icon-button/icon-button.js +1 -1
  414. package/esm/index.d.ts +6 -4
  415. package/esm/index.js +36 -29
  416. package/esm/label/label-adapter.d.ts +2 -0
  417. package/esm/label/label-adapter.js +8 -5
  418. package/esm/label/label-aware.js +2 -1
  419. package/esm/label/label-constants.d.ts +6 -2
  420. package/esm/label/label-constants.js +13 -4
  421. package/esm/label/label-foundation.d.ts +16 -0
  422. package/esm/label/label-foundation.js +69 -6
  423. package/esm/label/label.d.ts +8 -0
  424. package/esm/label/label.js +21 -3
  425. package/esm/linear-progress/linear-progress-adapter.js +13 -12
  426. package/esm/linear-progress/linear-progress-constants.d.ts +6 -0
  427. package/esm/linear-progress/linear-progress-constants.js +4 -2
  428. package/esm/linear-progress/linear-progress-foundation.js +2 -1
  429. package/esm/linear-progress/linear-progress.d.ts +7 -3
  430. package/esm/linear-progress/linear-progress.js +8 -11
  431. package/esm/list/list/list.js +1 -1
  432. package/esm/list/list-item/list-item.js +1 -1
  433. package/esm/menu/menu-adapter.d.ts +3 -3
  434. package/esm/menu/menu-constants.d.ts +1 -1
  435. package/esm/menu/menu-foundation.d.ts +1 -0
  436. package/esm/menu/menu-foundation.js +11 -4
  437. package/esm/menu/menu.js +1 -5
  438. package/esm/open-icon/open-icon.js +2 -2
  439. package/esm/overlay/base/base-overlay-foundation.d.ts +50 -0
  440. package/esm/overlay/base/base-overlay-foundation.js +11 -0
  441. package/esm/overlay/base/base-overlay.d.ts +49 -0
  442. package/esm/overlay/base/base-overlay.js +106 -0
  443. package/esm/overlay/base/overlay-aware-adapter.d.ts +17 -0
  444. package/esm/overlay/base/overlay-aware-adapter.js +15 -0
  445. package/esm/overlay/base/overlay-aware-foundation.d.ts +53 -0
  446. package/esm/overlay/base/overlay-aware-foundation.js +158 -0
  447. package/esm/overlay/base/overlay-aware.d.ts +36 -0
  448. package/esm/overlay/base/overlay-aware.js +102 -0
  449. package/esm/overlay/index.d.ts +10 -0
  450. package/esm/overlay/index.js +14 -0
  451. package/esm/overlay/mixins/with-overlay-aware.d.ts +105 -0
  452. package/esm/overlay/mixins/with-overlay-aware.js +152 -0
  453. package/esm/overlay/overlay-adapter.d.ts +54 -0
  454. package/esm/overlay/overlay-adapter.js +182 -0
  455. package/esm/overlay/overlay-constants.d.ts +71 -0
  456. package/esm/overlay/overlay-constants.js +48 -0
  457. package/esm/overlay/overlay-foundation.d.ts +76 -0
  458. package/esm/overlay/overlay-foundation.js +288 -0
  459. package/esm/overlay/overlay.d.ts +90 -0
  460. package/esm/overlay/overlay.js +105 -0
  461. package/esm/paginator/paginator-constants.d.ts +9 -0
  462. package/esm/paginator/paginator-foundation.d.ts +5 -2
  463. package/esm/paginator/paginator-foundation.js +29 -8
  464. package/esm/paginator/paginator.d.ts +3 -1
  465. package/esm/paginator/paginator.js +4 -1
  466. package/esm/popover/index.d.ts +10 -0
  467. package/esm/popover/index.js +14 -0
  468. package/esm/popover/popover-adapter.d.ts +46 -0
  469. package/esm/popover/popover-adapter.js +105 -0
  470. package/esm/popover/popover-constants.d.ts +42 -0
  471. package/esm/popover/popover-constants.js +42 -0
  472. package/esm/popover/popover-foundation.d.ts +139 -0
  473. package/esm/popover/popover-foundation.js +458 -0
  474. package/esm/popover/popover.d.ts +96 -0
  475. package/esm/popover/popover.js +147 -0
  476. package/esm/popup/popup-constants.d.ts +1 -1
  477. package/esm/profile-card/profile-card.js +1 -1
  478. package/esm/radio/core/radio-group-manager.d.ts +83 -0
  479. package/esm/radio/core/radio-group-manager.js +201 -0
  480. package/esm/radio/index.d.ts +1 -2
  481. package/esm/radio/index.js +1 -6
  482. package/esm/radio/radio/index.d.ts +10 -0
  483. package/esm/radio/radio/index.js +14 -0
  484. package/esm/radio/radio/radio-adapter.d.ts +41 -0
  485. package/esm/radio/radio/radio-adapter.js +75 -0
  486. package/{styles/focus-indicator/_configuration.scss → esm/radio/radio/radio-component-delegate.d.ts} +0 -5
  487. package/{styles/list/list/_configuration.scss → esm/radio/radio/radio-component-delegate.js} +1 -5
  488. package/esm/radio/radio/radio-constants.d.ts +37 -0
  489. package/esm/radio/radio/radio-constants.js +40 -0
  490. package/esm/radio/radio/radio-foundation.d.ts +70 -0
  491. package/esm/radio/radio/radio-foundation.js +199 -0
  492. package/esm/radio/radio/radio.d.ts +115 -0
  493. package/esm/radio/radio/radio.js +204 -0
  494. package/esm/radio/radio-group/index.d.ts +10 -0
  495. package/esm/radio/radio-group/index.js +14 -0
  496. package/esm/radio/radio-group/radio-group-adapter.d.ts +18 -0
  497. package/esm/radio/radio-group/radio-group-adapter.js +26 -0
  498. package/esm/radio/radio-group/radio-group-constants.d.ts +11 -0
  499. package/esm/radio/radio-group/radio-group-constants.js +14 -0
  500. package/esm/radio/radio-group/radio-group-foundation.d.ts +20 -0
  501. package/esm/radio/radio-group/radio-group-foundation.js +32 -0
  502. package/esm/radio/radio-group/radio-group.d.ts +47 -0
  503. package/esm/radio/radio-group/radio-group.js +83 -0
  504. package/esm/slider/slider.d.ts +2 -2
  505. package/esm/slider/slider.js +2 -2
  506. package/esm/split-view/split-view-panel/split-view-panel.js +1 -1
  507. package/esm/state-layer/state-layer-foundation.js +9 -10
  508. package/esm/switch/switch.js +1 -1
  509. package/esm/table/table-utils.js +2 -3
  510. package/esm/tabs/tab/tab.js +1 -1
  511. package/esm/tabs/tab-bar/tab-bar-adapter.d.ts +1 -1
  512. package/esm/tabs/tab-bar/tab-bar-adapter.js +3 -3
  513. package/esm/tabs/tab-bar/tab-bar-constants.d.ts +1 -1
  514. package/esm/tabs/tab-bar/tab-bar-constants.js +1 -1
  515. package/esm/tabs/tab-bar/tab-bar.js +2 -2
  516. package/esm/toast/toast-constants.d.ts +1 -1
  517. package/esm/toolbar/toolbar.js +1 -1
  518. package/esm/tooltip/index.d.ts +0 -1
  519. package/esm/tooltip/index.js +0 -1
  520. package/esm/tooltip/tooltip-adapter.d.ts +30 -60
  521. package/esm/tooltip/tooltip-adapter.js +105 -97
  522. package/esm/tooltip/tooltip-constants.d.ts +44 -21
  523. package/esm/tooltip/tooltip-constants.js +27 -22
  524. package/esm/tooltip/tooltip-foundation.d.ts +72 -84
  525. package/esm/tooltip/tooltip-foundation.js +265 -192
  526. package/esm/tooltip/tooltip.d.ts +93 -26
  527. package/esm/tooltip/tooltip.js +129 -31
  528. package/package.json +2 -4
  529. package/styles/app-bar/app-bar/_core.scss +6 -0
  530. package/styles/app-bar/app-bar/app-bar.scss +31 -17
  531. package/styles/app-bar/app-bar/index.scss +0 -2
  532. package/styles/app-bar/search/_core.scss +75 -0
  533. package/styles/app-bar/search/_token-utils.scss +30 -0
  534. package/styles/app-bar/search/app-bar-search.scss +50 -4
  535. package/styles/{switch/_configuration.scss → app-bar/search/index.scss} +1 -5
  536. package/styles/button/_core.scss +2 -0
  537. package/styles/button/button.scss +40 -25
  538. package/styles/button/index.scss +0 -2
  539. package/styles/button-toggle/button-toggle/_core.scss +78 -0
  540. package/styles/button-toggle/button-toggle/_token-utils.scss +30 -0
  541. package/styles/button-toggle/button-toggle/button-toggle.scss +65 -11
  542. package/styles/button-toggle/button-toggle/index.scss +6 -0
  543. package/styles/button-toggle/button-toggle-group/_core.scss +62 -0
  544. package/styles/button-toggle/button-toggle-group/_token-utils.scss +30 -0
  545. package/styles/button-toggle/button-toggle-group/button-toggle-group.scss +123 -3
  546. package/styles/button-toggle/button-toggle-group/index.scss +8 -0
  547. package/styles/checkbox/_core.scss +3 -0
  548. package/styles/checkbox/checkbox.scss +24 -26
  549. package/styles/checkbox/index.scss +0 -2
  550. package/styles/circular-progress/_core.scss +2 -0
  551. package/styles/circular-progress/circular-progress.scss +36 -27
  552. package/styles/circular-progress/index.scss +0 -2
  553. package/styles/core/styles/elevation/index.scss +1 -1
  554. package/styles/core/styles/tokens/_token-utils.scss +14 -5
  555. package/styles/core/styles/tokens/app-bar/search/_tokens.scss +35 -0
  556. package/styles/core/styles/tokens/button/_tokens.scss +4 -4
  557. package/styles/core/styles/tokens/button-toggle/button-toggle/_tokens.scss +68 -0
  558. package/styles/core/styles/tokens/button-toggle/button-toggle-group/_tokens.scss +48 -0
  559. package/styles/core/styles/tokens/checkbox/_tokens.scss +6 -6
  560. package/styles/core/styles/tokens/floating-action-button/_tokens.scss +1 -1
  561. package/styles/core/styles/tokens/icon-button/_tokens.scss +3 -3
  562. package/styles/core/styles/tokens/overlay/_tokens.scss +23 -0
  563. package/styles/core/styles/tokens/popover/_tokens.scss +56 -0
  564. package/styles/core/styles/tokens/profile-card/_tokens.scss +1 -1
  565. package/styles/core/styles/tokens/radio/_tokens.scss +66 -0
  566. package/styles/core/styles/tokens/switch/_tokens.scss +3 -3
  567. package/styles/core/styles/tokens/tabs/tab/_tokens.scss +5 -5
  568. package/styles/core/styles/tokens/theme/_token-utils.scss +12 -11
  569. package/styles/core/styles/tokens/theme/_tokens.surface.scss +3 -0
  570. package/styles/core/styles/tokens/theme/_tokens.text.scss +4 -4
  571. package/styles/core/styles/tokens/theme/_tokens.utilities.scss +3 -0
  572. package/styles/core/styles/tokens/tooltip/_tokens.scss +53 -0
  573. package/styles/dialog/_mixins.scss +1 -1
  574. package/styles/drawer/mini-drawer/_mixins.scss +0 -2
  575. package/styles/floating-action-button/_core.scss +2 -0
  576. package/styles/floating-action-button/floating-action-button.scss +14 -14
  577. package/styles/floating-action-button/index.scss +0 -2
  578. package/styles/focus-indicator/_core.scss +2 -0
  579. package/styles/focus-indicator/focus-indicator.scss +7 -8
  580. package/styles/focus-indicator/index.scss +0 -2
  581. package/styles/forge.scss +0 -1
  582. package/styles/icon-button/_core.scss +2 -0
  583. package/styles/icon-button/icon-button.scss +29 -28
  584. package/styles/icon-button/index.scss +0 -2
  585. package/styles/label/_core.scss +2 -5
  586. package/styles/label/label.scss +3 -7
  587. package/styles/linear-progress/_core.scss +2 -0
  588. package/styles/linear-progress/index.scss +0 -2
  589. package/styles/linear-progress/linear-progress.scss +29 -18
  590. package/styles/list/list/_core.scss +2 -0
  591. package/styles/list/list/index.scss +0 -2
  592. package/styles/list/list/list.scss +4 -4
  593. package/styles/list/list-item/_core.scss +2 -0
  594. package/styles/list/list-item/index.scss +0 -2
  595. package/styles/list/list-item/list-item.scss +50 -44
  596. package/styles/overlay/_core.scss +46 -0
  597. package/styles/overlay/_token-utils.scss +31 -0
  598. package/styles/overlay/index.scss +6 -0
  599. package/styles/overlay/overlay.scss +66 -0
  600. package/styles/popover/_animations.scss +36 -0
  601. package/styles/popover/_core.scss +56 -0
  602. package/styles/popover/_token-utils.scss +31 -0
  603. package/styles/popover/index.scss +6 -0
  604. package/styles/popover/popover.scss +254 -0
  605. package/styles/profile-card/_core.scss +2 -0
  606. package/styles/profile-card/index.scss +0 -2
  607. package/styles/profile-card/profile-card.scss +9 -11
  608. package/styles/radio/index.scss +6 -0
  609. package/styles/radio/radio/_core.scss +126 -0
  610. package/styles/radio/radio/_token-utils.scss +30 -0
  611. package/styles/radio/radio/index.scss +6 -0
  612. package/styles/radio/radio/radio.scss +99 -0
  613. package/styles/slider/_core.scss +2 -0
  614. package/styles/slider/index.scss +0 -2
  615. package/styles/slider/slider.scss +45 -41
  616. package/styles/split-button/index.scss +0 -1
  617. package/styles/split-button/split-button.scss +3 -2
  618. package/styles/state-layer/_core.scss +3 -2
  619. package/styles/state-layer/index.scss +0 -2
  620. package/styles/state-layer/state-layer.scss +7 -8
  621. package/styles/switch/_core.scss +9 -0
  622. package/styles/switch/index.scss +0 -2
  623. package/styles/switch/switch.scss +28 -30
  624. package/styles/tabs/tab/_core.scss +2 -0
  625. package/styles/tabs/tab/index.scss +0 -2
  626. package/styles/tabs/tab/tab.scss +27 -28
  627. package/styles/tabs/tab-bar/_core.scss +2 -0
  628. package/styles/tabs/tab-bar/index.scss +0 -2
  629. package/styles/tabs/tab-bar/tab-bar.scss +21 -23
  630. package/styles/theme/_theme-dark.scss +14 -2
  631. package/styles/theme/_theme-values.scss +2 -0
  632. package/styles/toolbar/_mixins.scss +2 -1
  633. package/styles/tooltip/_animations.scss +18 -0
  634. package/styles/tooltip/_core.scss +86 -0
  635. package/styles/tooltip/_token-utils.scss +31 -0
  636. package/styles/tooltip/index.scss +6 -0
  637. package/styles/tooltip/tooltip.scss +107 -0
  638. package/dist/esm/chunks/chunk.2GJ54C3Q.js +0 -7
  639. package/dist/esm/chunks/chunk.2GJ54C3Q.js.map +0 -7
  640. package/dist/esm/chunks/chunk.2YDKRTKP.js +0 -7
  641. package/dist/esm/chunks/chunk.2YDKRTKP.js.map +0 -7
  642. package/dist/esm/chunks/chunk.3JCHXLPT.js +0 -7
  643. package/dist/esm/chunks/chunk.3JCHXLPT.js.map +0 -7
  644. package/dist/esm/chunks/chunk.3RMBFRGC.js +0 -7
  645. package/dist/esm/chunks/chunk.3RMBFRGC.js.map +0 -7
  646. package/dist/esm/chunks/chunk.3ZRQFXQU.js +0 -7
  647. package/dist/esm/chunks/chunk.4QDN5PM6.js +0 -7
  648. package/dist/esm/chunks/chunk.4QDN5PM6.js.map +0 -7
  649. package/dist/esm/chunks/chunk.5H4G6BWX.js +0 -7
  650. package/dist/esm/chunks/chunk.5H4G6BWX.js.map +0 -7
  651. package/dist/esm/chunks/chunk.5VHUMZYS.js +0 -7
  652. package/dist/esm/chunks/chunk.6DXDNQUR.js +0 -15
  653. package/dist/esm/chunks/chunk.6DXDNQUR.js.map +0 -7
  654. package/dist/esm/chunks/chunk.6Y45DLA6.js +0 -7
  655. package/dist/esm/chunks/chunk.6Y45DLA6.js.map +0 -7
  656. package/dist/esm/chunks/chunk.7BGOH44S.js +0 -7
  657. package/dist/esm/chunks/chunk.7BGOH44S.js.map +0 -7
  658. package/dist/esm/chunks/chunk.7UXLLUTN.js +0 -7
  659. package/dist/esm/chunks/chunk.AEJGC4YG.js +0 -7
  660. package/dist/esm/chunks/chunk.AEJGC4YG.js.map +0 -7
  661. package/dist/esm/chunks/chunk.BFUGFHEH.js +0 -7
  662. package/dist/esm/chunks/chunk.BLW6QESQ.js +0 -12
  663. package/dist/esm/chunks/chunk.BLW6QESQ.js.map +0 -7
  664. package/dist/esm/chunks/chunk.C5IB44HX.js +0 -7
  665. package/dist/esm/chunks/chunk.CNRFOWHY.js +0 -7
  666. package/dist/esm/chunks/chunk.CNRFOWHY.js.map +0 -7
  667. package/dist/esm/chunks/chunk.CZOABXEQ.js +0 -7
  668. package/dist/esm/chunks/chunk.E3GVKR4E.js +0 -7
  669. package/dist/esm/chunks/chunk.E3GVKR4E.js.map +0 -7
  670. package/dist/esm/chunks/chunk.EBSBAFCX.js +0 -7
  671. package/dist/esm/chunks/chunk.EBSBAFCX.js.map +0 -7
  672. package/dist/esm/chunks/chunk.F6KM5FO6.js +0 -7
  673. package/dist/esm/chunks/chunk.FB6ZLH6P.js +0 -7
  674. package/dist/esm/chunks/chunk.FB6ZLH6P.js.map +0 -7
  675. package/dist/esm/chunks/chunk.FDZSLGIW.js +0 -7
  676. package/dist/esm/chunks/chunk.FDZSLGIW.js.map +0 -7
  677. package/dist/esm/chunks/chunk.GT3VPSXY.js +0 -7
  678. package/dist/esm/chunks/chunk.GT3VPSXY.js.map +0 -7
  679. package/dist/esm/chunks/chunk.I3NHK2S3.js +0 -7
  680. package/dist/esm/chunks/chunk.IT66AOX7.js +0 -7
  681. package/dist/esm/chunks/chunk.IT66AOX7.js.map +0 -7
  682. package/dist/esm/chunks/chunk.IVUK3W34.js +0 -7
  683. package/dist/esm/chunks/chunk.IVUK3W34.js.map +0 -7
  684. package/dist/esm/chunks/chunk.J2KHTGSB.js +0 -7
  685. package/dist/esm/chunks/chunk.J2KHTGSB.js.map +0 -7
  686. package/dist/esm/chunks/chunk.JAWV5Y5T.js +0 -7
  687. package/dist/esm/chunks/chunk.JVK64JDZ.js +0 -7
  688. package/dist/esm/chunks/chunk.KFDYMENL.js +0 -7
  689. package/dist/esm/chunks/chunk.KFDYMENL.js.map +0 -7
  690. package/dist/esm/chunks/chunk.KTYYBWTN.js +0 -7
  691. package/dist/esm/chunks/chunk.LCNR2RPT.js +0 -7
  692. package/dist/esm/chunks/chunk.LCNR2RPT.js.map +0 -7
  693. package/dist/esm/chunks/chunk.LOBKFTRM.js +0 -7
  694. package/dist/esm/chunks/chunk.LOBKFTRM.js.map +0 -7
  695. package/dist/esm/chunks/chunk.LS7WRRT2.js +0 -7
  696. package/dist/esm/chunks/chunk.LS7WRRT2.js.map +0 -7
  697. package/dist/esm/chunks/chunk.LSNAGIIH.js +0 -7
  698. package/dist/esm/chunks/chunk.LSNAGIIH.js.map +0 -7
  699. package/dist/esm/chunks/chunk.LUIKMPQR.js +0 -7
  700. package/dist/esm/chunks/chunk.LUIKMPQR.js.map +0 -7
  701. package/dist/esm/chunks/chunk.MZZJY5NX.js +0 -7
  702. package/dist/esm/chunks/chunk.MZZJY5NX.js.map +0 -7
  703. package/dist/esm/chunks/chunk.NYYXUH3X.js +0 -7
  704. package/dist/esm/chunks/chunk.OYO5O3NF.js +0 -7
  705. package/dist/esm/chunks/chunk.Q5Z6F3PI.js +0 -7
  706. package/dist/esm/chunks/chunk.Q5Z6F3PI.js.map +0 -7
  707. package/dist/esm/chunks/chunk.RCSBJQ4G.js +0 -7
  708. package/dist/esm/chunks/chunk.RCSBJQ4G.js.map +0 -7
  709. package/dist/esm/chunks/chunk.RDW7Z4W5.js +0 -7
  710. package/dist/esm/chunks/chunk.SNF35Y6C.js +0 -7
  711. package/dist/esm/chunks/chunk.SNF35Y6C.js.map +0 -7
  712. package/dist/esm/chunks/chunk.SOLF23NC.js +0 -7
  713. package/dist/esm/chunks/chunk.T34DG7BU.js +0 -7
  714. package/dist/esm/chunks/chunk.TA3MVDUU.js +0 -7
  715. package/dist/esm/chunks/chunk.TA3MVDUU.js.map +0 -7
  716. package/dist/esm/chunks/chunk.UWZWXNTW.js +0 -7
  717. package/dist/esm/chunks/chunk.UWZWXNTW.js.map +0 -7
  718. package/dist/esm/chunks/chunk.VD5ZL5ZN.js +0 -7
  719. package/dist/esm/chunks/chunk.WQGPIOL6.js +0 -7
  720. package/dist/esm/chunks/chunk.WQGPIOL6.js.map +0 -7
  721. package/dist/esm/chunks/chunk.XDANTL6C.js +0 -7
  722. package/dist/esm/chunks/chunk.XNCBGWE4.js +0 -7
  723. package/dist/esm/chunks/chunk.XNCBGWE4.js.map +0 -7
  724. package/dist/esm/chunks/chunk.ZSD7MMVB.js +0 -7
  725. package/dist/esm/chunks/chunk.ZSD7MMVB.js.map +0 -7
  726. package/dist/esm/chunks/chunk.ZVJMIBUM.js +0 -7
  727. package/dist/esm/chunks/chunk.ZVJMIBUM.js.map +0 -7
  728. package/dist/tooltip/forge-tooltip.css +0 -6
  729. package/esm/radio/radio-adapter.d.ts +0 -71
  730. package/esm/radio/radio-adapter.js +0 -260
  731. package/esm/radio/radio-constants.d.ts +0 -30
  732. package/esm/radio/radio-constants.js +0 -36
  733. package/esm/radio/radio-foundation.d.ts +0 -31
  734. package/esm/radio/radio-foundation.js +0 -80
  735. package/esm/radio/radio.d.ts +0 -33
  736. package/esm/radio/radio.js +0 -75
  737. package/esm/tooltip/tooltip-utils.d.ts +0 -13
  738. package/esm/tooltip/tooltip-utils.js +0 -53
  739. package/styles/app-bar/app-bar/_configuration.scss +0 -16
  740. package/styles/app-bar/search/_mixins.scss +0 -238
  741. package/styles/app-bar/search/_variables.scss +0 -18
  742. package/styles/button/_configuration.scss +0 -16
  743. package/styles/button-toggle/button-toggle/_mixins.scss +0 -117
  744. package/styles/button-toggle/button-toggle-group/_mixins.scss +0 -79
  745. package/styles/circular-progress/_configuration.scss +0 -16
  746. package/styles/floating-action-button/_configuration.scss +0 -16
  747. package/styles/icon-button/_configuration.scss +0 -16
  748. package/styles/linear-progress/_configuration.scss +0 -28
  749. package/styles/list/list-item/_configuration.scss +0 -16
  750. package/styles/radio/_mixins.scss +0 -309
  751. package/styles/radio/_radio-theme.scss +0 -314
  752. package/styles/radio/radio.scss +0 -19
  753. package/styles/split-button/_configuration.scss +0 -12
  754. package/styles/state-layer/_configuration.scss +0 -10
  755. package/styles/tabs/tab/_configuration.scss +0 -27
  756. package/styles/tabs/tab-bar/_configuration.scss +0 -10
  757. package/styles/tooltip/_mixins.scss +0 -98
  758. package/styles/tooltip/_variables.scss +0 -18
  759. package/styles/tooltip/forge-tooltip.scss +0 -12
  760. /package/dist/esm/chunks/{chunk.PSTGTQVK.js.map → chunk.2JCTFKCR.js.map} +0 -0
  761. /package/dist/esm/chunks/{chunk.4B5IOZAT.js.map → chunk.2YE556AM.js.map} +0 -0
  762. /package/dist/esm/chunks/{chunk.YKZ25J6B.js.map → chunk.3U6A353B.js.map} +0 -0
  763. /package/dist/esm/chunks/{chunk.LXX3YZYS.js.map → chunk.436USWLL.js.map} +0 -0
  764. /package/dist/esm/chunks/{chunk.KLPF4CNX.js.map → chunk.4GMGQZOW.js.map} +0 -0
  765. /package/dist/esm/chunks/{chunk.Z7PBGV4K.js.map → chunk.4JB3SESQ.js.map} +0 -0
  766. /package/dist/esm/chunks/{chunk.QFY23EWU.js.map → chunk.4JL5LW5J.js.map} +0 -0
  767. /package/dist/esm/chunks/{chunk.NYYXUH3X.js.map → chunk.55D2BMXX.js.map} +0 -0
  768. /package/dist/esm/chunks/{chunk.A72W7RW7.js.map → chunk.5LCWC3A7.js.map} +0 -0
  769. /package/dist/esm/chunks/{chunk.RYNQDXFA.js.map → chunk.5T7TT3AB.js.map} +0 -0
  770. /package/dist/esm/chunks/{chunk.HHHBS6FB.js.map → chunk.B53Q676I.js.map} +0 -0
  771. /package/dist/esm/chunks/{chunk.B46Q3AFP.js.map → chunk.BKQSLDMK.js.map} +0 -0
  772. /package/dist/esm/chunks/{chunk.F2EBSV5Z.js.map → chunk.BZVLSWZR.js.map} +0 -0
  773. /package/dist/esm/chunks/{chunk.BMQYEYCT.js.map → chunk.DGG5ABL3.js.map} +0 -0
  774. /package/dist/esm/chunks/{chunk.PK7R6WDF.js.map → chunk.DPIWAXEW.js.map} +0 -0
  775. /package/dist/esm/chunks/{chunk.7PP6QHOM.js.map → chunk.ETDUW5K2.js.map} +0 -0
  776. /package/dist/esm/chunks/{chunk.GHR7T6U2.js.map → chunk.FGHSNC2V.js.map} +0 -0
  777. /package/dist/esm/chunks/{chunk.P7LC3YYW.js.map → chunk.FPRBYGET.js.map} +0 -0
  778. /package/dist/esm/chunks/{chunk.7W2UWAZX.js.map → chunk.FQVR2QNF.js.map} +0 -0
  779. /package/dist/esm/chunks/{chunk.IEB5KRFQ.js.map → chunk.FWWBFNQA.js.map} +0 -0
  780. /package/dist/esm/chunks/{chunk.543K5Y4E.js.map → chunk.FZELFLPE.js.map} +0 -0
  781. /package/dist/esm/chunks/{chunk.6Q3SV2R2.js.map → chunk.FZZUNYH5.js.map} +0 -0
  782. /package/dist/esm/chunks/{chunk.CTZ3AWDW.js.map → chunk.GLUKTMQU.js.map} +0 -0
  783. /package/dist/esm/chunks/{chunk.W324TWF2.js.map → chunk.GTBCTNMI.js.map} +0 -0
  784. /package/dist/esm/chunks/{chunk.L4Y4RO5O.js.map → chunk.GURV4TDZ.js.map} +0 -0
  785. /package/dist/esm/chunks/{chunk.THWSN3X4.js.map → chunk.IA27LU2O.js.map} +0 -0
  786. /package/dist/esm/chunks/{chunk.TZFUKJ24.js.map → chunk.JXJVPJRO.js.map} +0 -0
  787. /package/dist/esm/chunks/{chunk.Z2RB75TN.js.map → chunk.K3STAW42.js.map} +0 -0
  788. /package/dist/esm/chunks/{chunk.G2BNY5QQ.js.map → chunk.KPC6IS3C.js.map} +0 -0
  789. /package/dist/esm/chunks/{chunk.VDZ7HBKM.js.map → chunk.KV7PGQJ7.js.map} +0 -0
  790. /package/dist/esm/chunks/{chunk.OYO5O3NF.js.map → chunk.M5JGYRH4.js.map} +0 -0
  791. /package/dist/esm/chunks/{chunk.T34DG7BU.js.map → chunk.N75VD4S4.js.map} +0 -0
  792. /package/dist/esm/chunks/{chunk.H7GW57Q6.js.map → chunk.NKEAMFO4.js.map} +0 -0
  793. /package/dist/esm/chunks/{chunk.26E4L52W.js.map → chunk.NW54VA4E.js.map} +0 -0
  794. /package/dist/esm/chunks/{chunk.PADPL4L3.js.map → chunk.OUIWXKO2.js.map} +0 -0
  795. /package/dist/esm/chunks/{chunk.I3NHK2S3.js.map → chunk.OXVCCHM5.js.map} +0 -0
  796. /package/dist/esm/chunks/{chunk.7ABZUBTT.js.map → chunk.P5XHGSJY.js.map} +0 -0
  797. /package/dist/esm/chunks/{chunk.NZKIFXBU.js.map → chunk.QKTNCOVX.js.map} +0 -0
  798. /package/dist/esm/chunks/{chunk.NG6UZ4OL.js.map → chunk.QZ57WM3D.js.map} +0 -0
  799. /package/dist/esm/chunks/{chunk.OED5UCYT.js.map → chunk.R2QENXIL.js.map} +0 -0
  800. /package/dist/esm/chunks/{chunk.DOEG3DWJ.js.map → chunk.RDQ3QGWS.js.map} +0 -0
  801. /package/dist/esm/chunks/{chunk.GS72TBUD.js.map → chunk.RFKKHN7V.js.map} +0 -0
  802. /package/dist/esm/chunks/{chunk.57PXXJA6.js.map → chunk.RKG66YKS.js.map} +0 -0
  803. /package/dist/esm/chunks/{chunk.LMIKNDBS.js.map → chunk.T235SNYZ.js.map} +0 -0
  804. /package/dist/esm/chunks/{chunk.SOLF23NC.js.map → chunk.VGIZJ32U.js.map} +0 -0
  805. /package/dist/esm/chunks/{chunk.U5WMRBSC.js.map → chunk.WA2YP4NC.js.map} +0 -0
  806. /package/dist/esm/chunks/{chunk.5C24LZNU.js.map → chunk.WQHKUNR7.js.map} +0 -0
  807. /package/dist/esm/chunks/{chunk.7UXLLUTN.js.map → chunk.X57DRPFB.js.map} +0 -0
  808. /package/dist/esm/chunks/{chunk.DDXIHZFX.js.map → chunk.X7YTDVNT.js.map} +0 -0
  809. /package/dist/esm/chunks/{chunk.7DHDFH5L.js.map → chunk.XOH2JCRS.js.map} +0 -0
  810. /package/dist/esm/chunks/{chunk.KVCDAZ6B.js.map → chunk.YTBNAGLS.js.map} +0 -0
  811. /package/dist/esm/chunks/{chunk.RZZBM3AW.js.map → chunk.ZHMV5SR4.js.map} +0 -0
  812. /package/dist/esm/chunks/{chunk.GWJ4QCSW.js.map → chunk.ZLACSRD4.js.map} +0 -0
  813. /package/dist/esm/chunks/{chunk.DTKFE7YB.js.map → chunk.ZUTQPJ2B.js.map} +0 -0
  814. /package/dist/esm/chunks/{chunk.PQQVUUHU.js.map → chunk.ZYCKD6K5.js.map} +0 -0
@@ -0,0 +1,147 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ import { __decorate } from "tslib";
7
+ import { attachShadowTemplate, coerceBoolean, coerceNumber, CustomElement, FoundationProperty } from '@tylertech/forge-core';
8
+ import { PopoverAdapter } from './popover-adapter';
9
+ import { POPOVER_CONSTANTS } from './popover-constants';
10
+ import { PopoverFoundation } from './popover-foundation';
11
+ import { OverlayComponent, OVERLAY_CONSTANTS } from '../overlay';
12
+ import { OverlayAware } from '../overlay/base/overlay-aware';
13
+ import { coerceStringToArray } from '../core/utils/utils';
14
+ import { tryDismiss } from '../core/utils/dismissible-stack';
15
+ const template = '<template><forge-overlay exportparts=\"root:overlay\"><div class=\"forge-popover\" part=\"surface\"><slot></slot></div></forge-overlay></template>';
16
+ const styles = '@-webkit-keyframes zoomin{from{-webkit-transform:scale(.8);transform:scale(.8)}to{-webkit-transform:scale(1);transform:scale(1)}}@keyframes zoomin{from{-webkit-transform:scale(.8);transform:scale(.8)}to{-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes slidein{from{-webkit-transform:translateX(var(--_popover-slidein-x)) translateY(var(--_popover-slidein-y));transform:translateX(var(--_popover-slidein-x)) translateY(var(--_popover-slidein-y))}to{-webkit-transform:translateX(0) translateY(0);transform:translateX(0) translateY(0)}}@keyframes slidein{from{-webkit-transform:translateX(var(--_popover-slidein-x)) translateY(var(--_popover-slidein-y));transform:translateX(var(--_popover-slidein-x)) translateY(var(--_popover-slidein-y))}to{-webkit-transform:translateX(0) translateY(0);transform:translateX(0) translateY(0)}}@-webkit-keyframes fadein{from{opacity:0}to{opacity:1}}@keyframes fadein{from{opacity:0}to{opacity:1}}:host{display:contents;--forge-theme-surface:var(--forge-theme-surface-bright, #ffffff)}:host([hidden]){display:none}forge-overlay{--_popover-background:var(--forge-popover-background, var(--forge-theme-surface-bright, #ffffff));--_popover-border-radius:var(--forge-popover-border-radius, var(--forge-shape-medium, 4px));--_popover-box-shadow:var(--forge-popover-box-shadow, var(--forge-theme-popup-elevation, var(--forge-theme-surface-bright-shadow)));--_popover-border-width:var(--forge-popover-border-width, 0);--_popover-border-style:var(--forge-popover-border-style, solid);--_popover-border-color:var(--forge-popover-border-color, var(--forge-theme-outline, #e0e0e0));--_popover-arrow-size:var(--forge-popover-arrow-size, 12px);--_popover-arrow-height:var(--forge-popover-arrow-height, var(--_popover-arrow-size));--_popover-arrow-width:var(--forge-popover-arrow-width, var(--_popover-arrow-size));--_popover-arrow-background-color:var(--forge-popover-arrow-background-color, var(--_popover-background));--_popover-arrow-top-rotation:var(--forge-popover-arrow-top-rotation, 135deg);--_popover-arrow-right-rotation:var(--forge-popover-arrow-right-rotation, 225deg);--_popover-arrow-bottom-rotation:var(--forge-popover-arrow-bottom-rotation, 315deg);--_popover-arrow-left-rotation:var(--forge-popover-arrow-left-rotation, 45deg);--_popover-arrow-border-width:var(--forge-popover-arrow-border-width, var(--forge-border-thin, 1px));--_popover-animation-timing:var(--forge-popover-animation-timing, var(--forge-animation-easing-decelerate, cubic-bezier(0, 0, 0, 1)));--_popover-zoom-duration:var(--forge-popover-zoom-duration, var(--forge-animation-duration-short3, 150ms));--_popover-zoom-timing:var(--forge-popover-zoom-timing, var(--_popover-animating-timing));--_popover-slide-duration:var(--forge-popover-slide-duration, var(--forge-animation-duration-short3, 150ms));--_popover-slide-timing:var(--forge-popover-slide-timing, var(--_popover-animating-timing));--_popover-slide-offset:var(--forge-popover-slide-offset, 24px);--_popover-fade-duration:var(--forge-popover-fade-duration, var(--forge-animation-duration-medium2, 300ms));--_popover-fade-timing:var(--forge-popover-fade-timing, var(--_popover-animating-timing));--_popover-position-inline-start:var(--forge-popover-position-inline-start, auto);--_popover-position-inline-end:var(--forge-popover-position-inline-end, auto);--_popover-position-block-start:var(--forge-popover-position-block-start, auto);--_popover-position-block-end:var(--forge-popover-position-block-end, auto)}.forge-popover{--_popover-arrow-translate-x:0;--_popover-arrow-translate-y:0;--_popover-arrow-rotation:0;--_popover-slidein-x:0;--_popover-slidein-y:0;--_popover-zoomin-origin:50% 50% 0;--_popover-arrow-clip-path:polygon(calc(var(--_popover-border-width) * -1) calc(var(--_popover-border-width) * -1), calc(100% + var(--_popover-border-width)) calc(var(--_popover-border-width) * -1), calc(100% + var(--_popover-border-width)) calc(100% + var(--_popover-border-width)))}.forge-popover{position:relative;background:var(--_popover-background);border-radius:var(--_popover-border-radius);-webkit-box-shadow:var(--_popover-box-shadow);box-shadow:var(--_popover-box-shadow);border-width:var(--_popover-border-width);border-style:var(--_popover-border-style);border-color:var(--_popover-border-color)}:host([open][no-anchor]) forge-overlay{--forge-overlay-position-inline-start:var(--_popover-position-inline-start);--forge-overlay-position-inline-end:var(--_popover-position-inline-end);--forge-overlay-position-block-start:var(--_popover-position-block-start);--forge-overlay-position-block-end:var(--_popover-position-block-end)}:host([arrow]) .forge-popover{--_popover-border-width:var(--_popover-arrow-border-width)}:host([arrow]) .arrow{position:absolute;background-color:var(--_popover-arrow-background-color);height:var(--_popover-arrow-height);width:var(--_popover-arrow-width);-webkit-box-shadow:var(--_popover-box-shadow);box-shadow:var(--_popover-box-shadow);border-width:var(--_popover-border-width);border-style:var(--_popover-border-style);border-color:var(--_popover-border-color);-webkit-transform:translate(var(--_popover-arrow-translate-x),var(--_popover-arrow-translate-y)) rotate(var(--_popover-arrow-rotation));transform:translate(var(--_popover-arrow-translate-x),var(--_popover-arrow-translate-y)) rotate(var(--_popover-arrow-rotation));-webkit-clip-path:var(--_popover-arrow-clip-path);clip-path:var(--_popover-arrow-clip-path)}:host([arrow]) forge-overlay[position-placement^=top] .arrow{--_popover-arrow-translate-y:var(--forge-popover-arrow-translate-y, calc(var(--_popover-border-width) * -1));--_popover-arrow-rotation:var(--forge-popover-arrow-rotation, var(--_popover-arrow-top-rotation))}:host([arrow]) forge-overlay[position-placement^=right] .arrow{--_popover-arrow-translate-x:var(--forge-popover-arrow-translate-x, var(--_popover-border-width));--_popover-arrow-rotation:var(--forge-popover-arrow-rotation, var(--_popover-arrow-right-rotation))}:host([arrow]) forge-overlay[position-placement^=bottom] .arrow{--_popover-arrow-translate-y:var(--forge-popover-arrow-translate-y, var(--_popover-border-width));--_popover-arrow-rotation:var(--forge-popover-arrow-rotation, var(--_popover-arrow-bottom-rotation))}:host([arrow]) forge-overlay[position-placement^=left] .arrow{--_popover-arrow-translate-x:var(--forge-popover-arrow-translate-x, calc(var(--_popover-border-width) * -1));--_popover-arrow-rotation:var(--forge-popover-arrow-rotation, var(--_popover-arrow-left-rotation))}:host(:not([animation-type])) .forge-popover,:host([animation-type=zoom]) .forge-popover{-webkit-animation-duration:var(--_popover-zoom-duration);animation-duration:var(--_popover-zoom-duration);-webkit-animation-timing-function:var(--_popover-zoom-timing);animation-timing-function:var(--_popover-zoom-timing);-webkit-animation-name:fadein,zoomin;animation-name:fadein,zoomin;-webkit-transform-origin:var(--_popover-zoomin-origin);transform-origin:var(--_popover-zoomin-origin)}:host(:not([animation-type])) forge-overlay[open][position-placement^=top]:not([position-placement*=\"-\"]) .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=top]:not([position-placement*=\"-\"]) .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, bottom center)}:host(:not([animation-type])) forge-overlay[open][position-placement^=top][position-placement$=-start] .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=top][position-placement$=-start] .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, bottom left)}:host(:not([animation-type])) forge-overlay[open][position-placement^=top][position-placement$=-end] .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=top][position-placement$=-end] .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, bottom right)}:host(:not([animation-type])) forge-overlay[open][position-placement^=right]:not([position-placement*=\"-\"]) .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=right]:not([position-placement*=\"-\"]) .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, left center)}:host(:not([animation-type])) forge-overlay[open][position-placement^=right][position-placement$=-start] .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=right][position-placement$=-start] .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, left top)}:host(:not([animation-type])) forge-overlay[open][position-placement^=right][position-placement$=-end] .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=right][position-placement$=-end] .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, left bottom)}:host(:not([animation-type])) forge-overlay[open][position-placement^=bottom]:not([position-placement*=\"-\"]) .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=bottom]:not([position-placement*=\"-\"]) .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, top center)}:host(:not([animation-type])) forge-overlay[open][position-placement^=bottom][position-placement$=-start] .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=bottom][position-placement$=-start] .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, top left)}:host(:not([animation-type])) forge-overlay[open][position-placement^=bottom][position-placement$=-end] .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=bottom][position-placement$=-end] .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, top right)}:host(:not([animation-type])) forge-overlay[open][position-placement^=left]:not([position-placement*=\"-\"]) .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=left]:not([position-placement*=\"-\"]) .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, right center)}:host(:not([animation-type])) forge-overlay[open][position-placement^=left][position-placement$=-start] .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=left][position-placement$=-start] .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, right top)}:host(:not([animation-type])) forge-overlay[open][position-placement^=left][position-placement$=-end] .forge-popover,:host([animation-type=zoom]) forge-overlay[open][position-placement^=left][position-placement$=-end] .forge-popover{--_popover-zoomin-origin:var(--forge-popover-zoomin-origin, right bottom)}:host([animation-type=slide]) .forge-popover{-webkit-animation-duration:var(--_popover-slide-duration);animation-duration:var(--_popover-slide-duration);-webkit-animation-timing-function:var(--_popover-slide-timing);animation-timing-function:var(--_popover-slide-timing);-webkit-animation-name:fadein,slidein;animation-name:fadein,slidein}:host([animation-type=slide]) forge-overlay[open][position-placement^=top] .forge-popover{--_popover-slidein-y:var(--forge-popover-slidein-y, var(--_popover-slide-offset))}:host([animation-type=slide]) forge-overlay[open][position-placement^=right] .forge-popover{--_popover-slidein-x:var(--forge-popover-slidein-x, calc(var(--_popover-slide-offset) * -1))}:host([animation-type=slide]) forge-overlay[open][position-placement^=bottom] .forge-popover{--_popover-slidein-y:var(--forge-popover-slidein-y, calc(var(--_popover-slide-offset) * -1))}:host([animation-type=slide]) forge-overlay[open][position-placement^=left] .forge-popover{--_popover-slidein-x:var(--forge-popover-slidein-x, var(--_popover-slide-offset))}:host([animation-type=fade]) .forge-popover{-webkit-animation-duration:var(--_popover-fade-duration);animation-duration:var(--_popover-fade-duration);-webkit-animation-timing-function:var(--_popover-fade-timing);animation-timing-function:var(--_popover-fade-timing);-webkit-animation-name:fadein;animation-name:fadein}';
17
+ /**
18
+ * @tag forge-popover
19
+ *
20
+ * @summary Popovers are used to render content in an element that is above all other content on the page.
21
+ *
22
+ * @property {boolean} arrow - Whether or not the popover should render an arrow.
23
+ * @property {PopoverAnimationType} animationType - The animation type to use for the popover. Valid values are `'none'`, `'fade'`, `'slide'`, and `'zoom'` (default).
24
+ * @property {PopoverTriggerType | PopoverTriggerType[]} triggerType - The trigger type(s) to use for the popover. Valid values are `'click'` (default), `'hover'`, `'focus'`, and `'longpress'`. Multiple can be specified.
25
+ * @property {number} longpressDelay - The delay in milliseconds before a longpress event is detected.
26
+ * @property {boolean} persistentHover - Whether or not the popover should remain open when the user hovers outside the popover.
27
+ * @property {number} hoverDismissDelay - The delay in milliseconds before the popover is dismissed when the user hovers outside of the popover.
28
+ *
29
+ * @attribute {string} arrow - Whether or not the popover should render an arrow.
30
+ * @attribute {string} animation-type - The animation type to use for the popover. Valid values are `'none'`, `'fade'`, `'slide'`, and `'zoom'` (default).
31
+ * @attribute {string} trigger-type - The trigger type(s) to use for the popover. Valid values are `'click'` (default), `'hover'`, `'focus'`, and `'longpress'`. Multiple can be specified.
32
+ * @attribute {string} longpress-delay - The delay in milliseconds before a longpress event is detected.
33
+ * @attribute {string} persistent-hover - Whether or not the popover should remain open when the user hovers outside the popover.
34
+ * @attribute {string} hover-dismiss-delay - The delay in milliseconds before the popover is dismissed when the user hovers outside of the popover.
35
+ *
36
+ * @event {CustomEvent<IPopoverToggleEventData} forge-popover-beforetoggle - Dispatches before the popover is toggled, and is cancelable.
37
+ * @event {CustomEvent<IPopoverToggleEventData} forge-popover-toggle - Dispatches after the popover is toggled.
38
+ *
39
+ * @cssproperty --forge-popover-background - The background color of the popover surface.
40
+ * @cssproperty --forge-popover-border-radius - The border radius of the popover surface.
41
+ * @cssproperty --forge-popover-box-shadow - The box shadow of the popover surface.
42
+ * @cssproperty --forge-popover-border-width - The border width of the popover surface.
43
+ * @cssproperty --forge-popover-border-style - The border style of the popover surface.
44
+ * @cssproperty --forge-popover-border-color - The border color of the popover surface.
45
+ * @cssproperty --forge-popover-arrow-size - The size of the arrow.
46
+ * @cssproperty --forge-popover-arrow-height - The height of the arrow.
47
+ * @cssproperty --forge-popover-arrow-width - The width of the arrow.
48
+ * @cssproperty --forge-popover-arrow-background-color - The background color of the arrow. Defaults to the background color of the popover surface.
49
+ * @cssproperty --forge-popover-arrow-top-rotation - The rotation of the arrow when the popover is placed on the top.
50
+ * @cssproperty --forge-popover-arrow-right-rotation - The rotation of the arrow when the popover is placed on the right.
51
+ * @cssproperty --forge-popover-arrow-bottom-rotation - The rotation of the arrow when the popover is placed on the bottom.
52
+ * @cssproperty --forge-popover-arrow-left-rotation - The rotation of the arrow when the popover is placed on the left.
53
+ * @cssproperty --forge-popover-arrow-border-width - The border width of the popover surface and arrow when an arrow is applied.
54
+ * @cssproperty --forge-popover-arrow-clip-path - The clip path to use for the arrow element.
55
+ * @cssproperty --forge-popover-animation-timing - The animation timing function to use for the popover animation.
56
+ * @cssproperty --forge-popover-zoom-duration - The duration of the zoom animation.
57
+ * @cssproperty --forge-popover-zoom-timing - The timing function to use for the zoom animation.
58
+ * @cssproperty --forge-popover-slide-duration - The duration of the slide animation.
59
+ * @cssproperty --forge-popover-slide-timing - The timing function to use for the slide animation.
60
+ * @cssproperty --forge-popover-slide-offset - The start offset to use for the slide animation.
61
+ * @cssproperty --forge-popover-fade-duration - The duration of the fade animation.
62
+ * @cssproperty --forge-popover-fade-timing - The timing function to use for the fade animation.
63
+ * @cssproperty --forge-popover-position-block-start - The `block-start` position of the popover.
64
+ * @cssproperty --forge-popover-position-block-end - The `block-end` position of the popover.
65
+ * @cssproperty --forge-popover-position-inline-start - The `inline-start` position of the popover.
66
+ * @cssproperty --forge-popover-position-inline-end - The `inline-end` position of the popover.
67
+ *
68
+ * @slot - The content to render inside the popover.
69
+ *
70
+ * @csspart overlay - The overlay root element.
71
+ * @csspart surface - The surface container element for the slotted content.
72
+ */
73
+ let PopoverComponent = class PopoverComponent extends OverlayAware {
74
+ static get observedAttributes() {
75
+ return [
76
+ ...Object.values(OVERLAY_CONSTANTS.observedAttributes),
77
+ POPOVER_CONSTANTS.attributes.ARROW,
78
+ POPOVER_CONSTANTS.attributes.ANIMATION_TYPE,
79
+ POPOVER_CONSTANTS.attributes.TRIGGER_TYPE,
80
+ POPOVER_CONSTANTS.attributes.LONGPRESS_DELAY,
81
+ POPOVER_CONSTANTS.attributes.PERSISTENT_HOVER,
82
+ POPOVER_CONSTANTS.attributes.HOVER_DISMISS_DELAY
83
+ ];
84
+ }
85
+ [tryDismiss](state) {
86
+ return this._foundation.dispatchBeforeToggleEvent(state);
87
+ }
88
+ constructor() {
89
+ super();
90
+ attachShadowTemplate(this, template, styles);
91
+ this._foundation = new PopoverFoundation(new PopoverAdapter(this));
92
+ }
93
+ connectedCallback() {
94
+ this._foundation.initialize();
95
+ }
96
+ disconnectedCallback() {
97
+ this._foundation.destroy();
98
+ }
99
+ attributeChangedCallback(name, oldValue, newValue) {
100
+ switch (name) {
101
+ case POPOVER_CONSTANTS.attributes.ARROW:
102
+ this.arrow = coerceBoolean(newValue);
103
+ return;
104
+ case POPOVER_CONSTANTS.attributes.ANIMATION_TYPE:
105
+ this.animationType = newValue;
106
+ return;
107
+ case POPOVER_CONSTANTS.attributes.TRIGGER_TYPE:
108
+ this.triggerType = (newValue === null || newValue === void 0 ? void 0 : newValue.trim()) ? coerceStringToArray(newValue) : POPOVER_CONSTANTS.defaults.TRIGGER_TYPE;
109
+ return;
110
+ case POPOVER_CONSTANTS.attributes.LONGPRESS_DELAY:
111
+ this.longpressDelay = coerceNumber(newValue);
112
+ return;
113
+ case POPOVER_CONSTANTS.attributes.PERSISTENT_HOVER:
114
+ this.persistentHover = coerceBoolean(newValue);
115
+ return;
116
+ case POPOVER_CONSTANTS.attributes.HOVER_DISMISS_DELAY:
117
+ this.hoverDismissDelay = coerceNumber(newValue);
118
+ return;
119
+ }
120
+ super.attributeChangedCallback(name, oldValue, newValue);
121
+ }
122
+ };
123
+ __decorate([
124
+ FoundationProperty()
125
+ ], PopoverComponent.prototype, "arrow", void 0);
126
+ __decorate([
127
+ FoundationProperty()
128
+ ], PopoverComponent.prototype, "animationType", void 0);
129
+ __decorate([
130
+ FoundationProperty()
131
+ ], PopoverComponent.prototype, "triggerType", void 0);
132
+ __decorate([
133
+ FoundationProperty()
134
+ ], PopoverComponent.prototype, "longpressDelay", void 0);
135
+ __decorate([
136
+ FoundationProperty()
137
+ ], PopoverComponent.prototype, "persistentHover", void 0);
138
+ __decorate([
139
+ FoundationProperty()
140
+ ], PopoverComponent.prototype, "hoverDismissDelay", void 0);
141
+ PopoverComponent = __decorate([
142
+ CustomElement({
143
+ name: POPOVER_CONSTANTS.elementName,
144
+ dependencies: [OverlayComponent]
145
+ })
146
+ ], PopoverComponent);
147
+ export { PopoverComponent };
@@ -3,7 +3,7 @@
3
3
  * Copyright 2023 Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- import { PositionPlacement } from '@tylertech/forge-core';
6
+ import { PositionPlacement } from '../core/utils/position-utils';
7
7
  export declare const POPUP_CONSTANTS: {
8
8
  elementName: "forge-popup";
9
9
  classes: {
@@ -14,7 +14,7 @@ import { IconComponent } from '../icon/icon';
14
14
  import { ToolbarComponent } from '../toolbar';
15
15
  import { BaseComponent } from '../core/base/base-component';
16
16
  const template = '<template><div class=\"forge-profile-card\" part=\"root\"><div class=\"info-container\"><div class=\"avatar\"><forge-avatar part=\"avatar\"></forge-avatar></div><div class=\"info-text\"><div class=\"full-name\" part=\"name\"></div><div class=\"email\" part=\"email\"></div></div></div><slot></slot><forge-toolbar inverted id=\"action-toolbar\"><forge-button variant=\"outlined\" slot=\"end\" style=\"display: none;\" part=\"profile-button\" id=\"profile-button\">Profile</forge-button><forge-button slot=\"end\" part=\"sign-out-button\" id=\"sign-out-button\">Sign out</forge-button></forge-toolbar></div></template>';
17
- const styles = ':host{display:block}:host([hidden]){display:none}.forge-profile-card{--_profile-card-min-width:var(--forge-profile-card-min-width, 360px);--_profile-card-shape:var(--forge-profile-card-border-radius, var(--forge-shape-medium, 4px));--_profile-card-avatar-size:var(--forge-profile-card-avatar-size, 56px)}.forge-profile-card{min-width:var(--_profile-card-min-width);border-radius:var(--_profile-card-shape)}@media (max-width:399px){.forge-profile-card{width:100vw;min-width:unset;overflow:auto}}.forge-profile-card .info-container{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding-block:var(--forge-spacing-xsmall,8px);padding-inline:var(--forge-spacing-medium,16px)}.forge-profile-card .avatar{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding:var(--forge-spacing-xsmall,8px);-webkit-margin-end:var(--forge-spacing-medium,16px);margin-inline-end:var(--forge-spacing-medium,16px);--forge-avatar-size:var(--_profile-card-avatar-size)}.forge-profile-card .text{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column}.forge-profile-card .full-name{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-heading2-font-family, var(--forge-typography-font-family, \"Roboto\", sans-serif));font-size:var(--forge-typography-heading2-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-heading2-font-size-scale, 1)));font-weight:var(--forge-typography-heading2-font-weight,500);line-height:var(--forge-typography-heading2-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-heading2-line-height-scale, 1.25)));letter-spacing:var(--forge-typography-heading2-letter-spacing, .0125em);text-transform:var(--forge-typography-heading2-text-transform,inherit);-webkit-text-decoration:var(--forge-typography-heading2-text-decoration,inherit);text-decoration:var(--forge-typography-heading2-text-decoration,inherit)}.forge-profile-card .email{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-subheading1-font-family, var(--forge-typography-font-family, \"Roboto\", sans-serif));font-size:var(--forge-typography-subheading1-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-subheading1-font-size-scale, .875)));font-weight:var(--forge-typography-subheading1-font-weight,400);line-height:var(--forge-typography-subheading1-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-subheading1-line-height-scale, 1.125)));letter-spacing:var(--forge-typography-subheading1-letter-spacing, normal);text-transform:var(--forge-typography-subheading1-text-transform,inherit);-webkit-text-decoration:var(--forge-typography-subheading1-text-decoration,inherit);text-decoration:var(--forge-typography-subheading1-text-decoration,inherit);color:var(--forge-theme-text-medium,rgba(0,0,0,.54))}#action-toolbar{--forge-toolbar-padding:8px}#action-toolbar forge-button:not(:last-of-type){-webkit-margin-end:8px;margin-inline-end:8px}';
17
+ const styles = ':host{display:block}:host([hidden]){display:none}.forge-profile-card{--_profile-card-min-width:var(--forge-profile-card-min-width, 360px);--_profile-card-shape:var(--forge-profile-card-shape, var(--forge-shape-medium, 4px));--_profile-card-avatar-size:var(--forge-profile-card-avatar-size, 56px)}.forge-profile-card{min-width:var(--_profile-card-min-width);border-radius:var(--_profile-card-shape)}@media (max-width:399px){.forge-profile-card{width:100vw;min-width:unset;overflow:auto}}.forge-profile-card .info-container{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding-block:var(--forge-spacing-xsmall,8px);padding-inline:var(--forge-spacing-medium,16px)}.forge-profile-card .avatar{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;padding:var(--forge-spacing-xsmall,8px);-webkit-margin-end:var(--forge-spacing-medium,16px);margin-inline-end:var(--forge-spacing-medium,16px);--forge-avatar-size:var(--_profile-card-avatar-size)}.forge-profile-card .text{display:-webkit-box;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column}.forge-profile-card .full-name{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-heading2-font-family, var(--forge-typography-font-family, \"Roboto\", sans-serif));font-size:var(--forge-typography-heading2-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-heading2-font-size-scale, 1)));font-weight:var(--forge-typography-heading2-font-weight,500);line-height:var(--forge-typography-heading2-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-heading2-line-height-scale, 1.25)));letter-spacing:var(--forge-typography-heading2-letter-spacing, .0125em);text-transform:var(--forge-typography-heading2-text-transform,inherit);-webkit-text-decoration:var(--forge-typography-heading2-text-decoration,inherit);text-decoration:var(--forge-typography-heading2-text-decoration,inherit)}.forge-profile-card .email{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-subheading1-font-family, var(--forge-typography-font-family, \"Roboto\", sans-serif));font-size:var(--forge-typography-subheading1-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-subheading1-font-size-scale, .875)));font-weight:var(--forge-typography-subheading1-font-weight,400);line-height:var(--forge-typography-subheading1-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-subheading1-line-height-scale, 1.125)));letter-spacing:var(--forge-typography-subheading1-letter-spacing, normal);text-transform:var(--forge-typography-subheading1-text-transform,inherit);-webkit-text-decoration:var(--forge-typography-subheading1-text-decoration,inherit);text-decoration:var(--forge-typography-subheading1-text-decoration,inherit);color:var(--forge-theme-text-medium,rgba(0,0,0,.6))}#action-toolbar{--forge-toolbar-padding:8px}#action-toolbar forge-button:not(:last-of-type){-webkit-margin-end:8px;margin-inline-end:8px}';
18
18
  /**
19
19
  * @tag forge-profile-card
20
20
  */
@@ -0,0 +1,83 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ import { IRadioComponent } from '../radio';
7
+ /**
8
+ * A class for coordinating the states of radio components within a radio group.
9
+ */
10
+ export declare class RadioGroupManager {
11
+ private static _radiosRequestingReset;
12
+ /**
13
+ * Returns an array of IRadioComponents that belong to the same radio group as the given
14
+ * IRadioComponent.
15
+ * If the given IRadioComponent does not have an associated form element, it searches the root
16
+ * node for all IRadioComponents with the same name.
17
+ * If the given IRadioComponent has an associated form element, it gets all RadioComponents with
18
+ * the same name from the form element.
19
+ *
20
+ * @param el - The IRadioComponent to get the radio group for.
21
+ * @returns An array of IRadioComponents that belong to the same radio group as the given
22
+ * IRadioComponent.
23
+ */
24
+ static getRadioGroup(el: IRadioComponent): IRadioComponent[];
25
+ /**
26
+ * Sets the validity of a radio group.
27
+ * If no radio is selected in the group and selection is required, it sets the validity to
28
+ * `valueMissing`.
29
+ *
30
+ * @param el A radio component within the group to set the validity for.
31
+ */
32
+ static setRadioGroupValidity(el: IRadioComponent): void;
33
+ /**
34
+ * Sets the selected radio in a radio group.
35
+ *
36
+ * @param el - The radio component to set as selected.
37
+ */
38
+ static setSelectedRadioInGroup(el: IRadioComponent): void;
39
+ /**
40
+ * Focuses the next radio in the radio group.
41
+ *
42
+ * @param el - The currently focused radio component.
43
+ */
44
+ static focusNextRadioInGroup(el: IRadioComponent): void;
45
+ /**
46
+ * Focuses the previous radio in the radio group.
47
+ *
48
+ * @param el - The currently focused radio component.
49
+ */
50
+ static focusPreviousRadioInGroup(el: IRadioComponent): void;
51
+ /**
52
+ * Adds or removes each radio in a radio group from the tab order. When no radio is selected and
53
+ * focus is not in the group, all radios are added to the tab order. Otherwise only the selected
54
+ * radio is added to the tab order.
55
+ *
56
+ * @param el - The focused or blurred radio component.
57
+ * @param event - The event type (`'focus'` or `'blur'`).
58
+ */
59
+ static setUncheckedRadioGroupFocus(el: IRadioComponent, event: 'focus' | 'blur'): void;
60
+ /**
61
+ * Resets a radio group to . This will run once each radio has a chance to
62
+ * update.
63
+ *
64
+ * @param el - The radio component requesting the reset.
65
+ * @returns A promise that resolves when the reset logic is complete.
66
+ */
67
+ static requestRadioGroupReset(el: IRadioComponent): Promise<void>;
68
+ /**
69
+ * Updates the focus and selection of a radio group based on the currently focused radio and the
70
+ * direction of the focus change.
71
+ *
72
+ * @param el - The currently focused radio element.
73
+ * @param increment - The direction of the focus change. 1 for forward, -1 for backward.
74
+ */
75
+ private static _updateRadioGroupFocus;
76
+ /**
77
+ * Determines if a radio selection is required within a group.
78
+ *
79
+ * @param group - The radio components within a group.
80
+ * @returns True if the radio selection is required, false otherwise.
81
+ */
82
+ private static _selectionIsRequired;
83
+ }
@@ -0,0 +1,201 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ import { getValidationMessage, internals, isFocusable, setDefaultAria } from '../../constants';
7
+ import { task } from '../../core/utils/event-utils';
8
+ import { RADIO_CONSTANTS, tryCheck } from '../radio';
9
+ /**
10
+ * A class for coordinating the states of radio components within a radio group.
11
+ */
12
+ export class RadioGroupManager {
13
+ /**
14
+ * Returns an array of IRadioComponents that belong to the same radio group as the given
15
+ * IRadioComponent.
16
+ * If the given IRadioComponent does not have an associated form element, it searches the root
17
+ * node for all IRadioComponents with the same name.
18
+ * If the given IRadioComponent has an associated form element, it gets all RadioComponents with
19
+ * the same name from the form element.
20
+ *
21
+ * @param el - The IRadioComponent to get the radio group for.
22
+ * @returns An array of IRadioComponents that belong to the same radio group as the given
23
+ * IRadioComponent.
24
+ */
25
+ static getRadioGroup(el) {
26
+ // If there's no name, it's not part of a radio group
27
+ if (!el.name) {
28
+ return [el];
29
+ }
30
+ // If there's no associated form element search the root node
31
+ if (!el.form) {
32
+ const root = el.getRootNode();
33
+ const namedRadios = root.querySelectorAll(`${RADIO_CONSTANTS.elementName}[name=${el.name}]`);
34
+ return Array.from(namedRadios).filter(radio => !radio.form);
35
+ }
36
+ // When there is a form element, get all RadioComponents with the same name
37
+ const formRadios = el.form.elements.namedItem(el.name);
38
+ if (formRadios && Object.prototype.isPrototypeOf.call(RadioNodeList.prototype, formRadios)) {
39
+ return Array.from(formRadios)
40
+ .filter((radio) => radio.matches(RADIO_CONSTANTS.elementName));
41
+ }
42
+ return [el];
43
+ }
44
+ /**
45
+ * Sets the validity of a radio group.
46
+ * If no radio is selected in the group and selection is required, it sets the validity to
47
+ * `valueMissing`.
48
+ *
49
+ * @param el A radio component within the group to set the validity for.
50
+ */
51
+ static setRadioGroupValidity(el) {
52
+ const group = RadioGroupManager.getRadioGroup(el);
53
+ const invalid = RadioGroupManager._selectionIsRequired(group);
54
+ group.forEach(radio => {
55
+ const validationMessage = radio[getValidationMessage]({
56
+ required: invalid,
57
+ checked: radio.checked
58
+ });
59
+ radio[internals].setValidity({ valueMissing: invalid }, validationMessage);
60
+ radio[setDefaultAria]({ 'ariaInvalid': invalid ? 'true' : 'false' });
61
+ });
62
+ }
63
+ /**
64
+ * Sets the selected radio in a radio group.
65
+ *
66
+ * @param el - The radio component to set as selected.
67
+ */
68
+ static setSelectedRadioInGroup(el) {
69
+ const group = RadioGroupManager.getRadioGroup(el);
70
+ group.forEach(radio => radio.checked = radio === el);
71
+ }
72
+ /**
73
+ * Focuses the next radio in the radio group.
74
+ *
75
+ * @param el - The currently focused radio component.
76
+ */
77
+ static focusNextRadioInGroup(el) {
78
+ RadioGroupManager._updateRadioGroupFocus(el, 1);
79
+ }
80
+ /**
81
+ * Focuses the previous radio in the radio group.
82
+ *
83
+ * @param el - The currently focused radio component.
84
+ */
85
+ static focusPreviousRadioInGroup(el) {
86
+ RadioGroupManager._updateRadioGroupFocus(el, -1);
87
+ }
88
+ /**
89
+ * Adds or removes each radio in a radio group from the tab order. When no radio is selected and
90
+ * focus is not in the group, all radios are added to the tab order. Otherwise only the selected
91
+ * radio is added to the tab order.
92
+ *
93
+ * @param el - The focused or blurred radio component.
94
+ * @param event - The event type (`'focus'` or `'blur'`).
95
+ */
96
+ static setUncheckedRadioGroupFocus(el, event) {
97
+ const group = RadioGroupManager.getRadioGroup(el);
98
+ if (event === 'focus') {
99
+ group.forEach(radio => radio[isFocusable] = radio === el);
100
+ return;
101
+ }
102
+ if (!el.checked || group[0] === el || group[group.length - 1] === el) {
103
+ group.forEach(radio => radio[isFocusable] = true);
104
+ }
105
+ }
106
+ /**
107
+ * Resets a radio group to . This will run once each radio has a chance to
108
+ * update.
109
+ *
110
+ * @param el - The radio component requesting the reset.
111
+ * @returns A promise that resolves when the reset logic is complete.
112
+ */
113
+ static async requestRadioGroupReset(el) {
114
+ this._radiosRequestingReset.add(el);
115
+ // Wait for any other radios in the group to request a reset. The reset logic should only run
116
+ // once per group
117
+ await task();
118
+ // If the radio has been removed from the set, its group has already been reset and we can
119
+ // skip it
120
+ if (!this._radiosRequestingReset.has(el)) {
121
+ return;
122
+ }
123
+ const group = RadioGroupManager.getRadioGroup(el);
124
+ let checkedRadio = null;
125
+ // The first loop removes each radio in the group from the set and stores the radio that should
126
+ // be checked, if any
127
+ group.forEach(radio => {
128
+ this._radiosRequestingReset.delete(radio);
129
+ if (radio.defaultChecked) {
130
+ checkedRadio = radio;
131
+ }
132
+ });
133
+ // The second loop sets the checked radio and sets each radio to be focusable if there is a no
134
+ // selection, or only the selected radio if there is
135
+ group.forEach(radio => {
136
+ radio.checked = radio === checkedRadio;
137
+ radio[isFocusable] = !checkedRadio || radio.checked;
138
+ });
139
+ }
140
+ /**
141
+ * Updates the focus and selection of a radio group based on the currently focused radio and the
142
+ * direction of the focus change.
143
+ *
144
+ * @param el - The currently focused radio element.
145
+ * @param increment - The direction of the focus change. 1 for forward, -1 for backward.
146
+ */
147
+ static _updateRadioGroupFocus(el, increment) {
148
+ const group = RadioGroupManager.getRadioGroup(el);
149
+ // Get the next enabled and writable radio in the group
150
+ let index = group.indexOf(el);
151
+ let nextRadio = group[index];
152
+ do {
153
+ index += increment;
154
+ if (index < 0) {
155
+ index = group.length - 1;
156
+ }
157
+ else if (index >= group.length) {
158
+ index = 0;
159
+ }
160
+ nextRadio = group[index];
161
+ if (nextRadio === el) {
162
+ return;
163
+ }
164
+ } while (nextRadio.disabled || nextRadio.readonly);
165
+ // Attempt to check the next radio, return if the event is cancelled
166
+ if (!nextRadio[tryCheck]()) {
167
+ return;
168
+ }
169
+ // Add the next radio to the tab order, and focus it
170
+ nextRadio[isFocusable] = true;
171
+ nextRadio.focus();
172
+ // Remove every other radio from the tab order and deselect it
173
+ group.forEach(radio => {
174
+ if (radio === nextRadio) {
175
+ return;
176
+ }
177
+ radio[isFocusable] = false;
178
+ radio.checked = false;
179
+ });
180
+ }
181
+ /**
182
+ * Determines if a radio selection is required within a group.
183
+ *
184
+ * @param group - The radio components within a group.
185
+ * @returns True if the radio selection is required, false otherwise.
186
+ */
187
+ static _selectionIsRequired(group) {
188
+ let required = false;
189
+ let selection = false;
190
+ group.forEach(radio => {
191
+ if (radio.required) {
192
+ required = true;
193
+ }
194
+ if (radio.checked) {
195
+ selection = true;
196
+ }
197
+ });
198
+ return required && !selection;
199
+ }
200
+ }
201
+ RadioGroupManager._radiosRequestingReset = new WeakSet();
@@ -3,6 +3,5 @@
3
3
  * Copyright 2023 Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- export * from './radio-constants';
7
6
  export * from './radio';
8
- export declare function defineRadioComponent(): void;
7
+ export * from './radio-group';
@@ -3,10 +3,5 @@
3
3
  * Copyright 2023 Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- import { defineCustomElement } from '@tylertech/forge-core';
7
- import { RadioComponent } from './radio';
8
- export * from './radio-constants';
9
6
  export * from './radio';
10
- export function defineRadioComponent() {
11
- defineCustomElement(RadioComponent);
12
- }
7
+ export * from './radio-group';
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ export * from './radio-adapter';
7
+ export * from './radio-constants';
8
+ export * from './radio-foundation';
9
+ export * from './radio';
10
+ export declare function defineRadioComponent(): void;
@@ -0,0 +1,14 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ import { defineCustomElement } from '@tylertech/forge-core';
7
+ import { RadioComponent } from './radio';
8
+ export * from './radio-adapter';
9
+ export * from './radio-constants';
10
+ export * from './radio-foundation';
11
+ export * from './radio';
12
+ export function defineRadioComponent() {
13
+ defineCustomElement(RadioComponent);
14
+ }
@@ -0,0 +1,41 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ import { BaseAdapter, IBaseAdapter } from '../../core/base/';
7
+ import { IRadioComponent } from './radio';
8
+ import { RadioLabelPosition } from './radio-constants';
9
+ export interface IRadioAdapter extends IBaseAdapter {
10
+ setChecked(checked: boolean, value: string): void;
11
+ trySetDisabled(value: boolean): boolean;
12
+ setRequired(value: boolean): void;
13
+ setReadonly(value: boolean): void;
14
+ setLabelPosition(value: RadioLabelPosition): void;
15
+ disableStateLayer(value: boolean): void;
16
+ setUncheckedRadioGroupFocus(event: 'focus' | 'blur'): void;
17
+ focusNext(): void;
18
+ focusPrevious(): void;
19
+ }
20
+ export declare class RadioAdapter extends BaseAdapter<IRadioComponent> implements IRadioAdapter {
21
+ private readonly _rootElement;
22
+ private readonly _labelElement;
23
+ private readonly _stateLayerElement;
24
+ constructor(component: IRadioComponent);
25
+ setChecked(checked: boolean, value: string): void;
26
+ /**
27
+ * Attempts to set the disabled state of the radio. If the radio is in a disabled radio group, it
28
+ * can't be enabled.
29
+ *
30
+ * @param value Whether the radio should be disabled.
31
+ * @returns Whether the disabled state was set.
32
+ */
33
+ trySetDisabled(value: boolean): boolean;
34
+ setRequired(value: boolean): void;
35
+ setReadonly(value: boolean): void;
36
+ disableStateLayer(value: boolean): void;
37
+ setLabelPosition(value: RadioLabelPosition): void;
38
+ setUncheckedRadioGroupFocus(event: 'focus' | 'blur'): void;
39
+ focusNext(): void;
40
+ focusPrevious(): void;
41
+ }
@@ -0,0 +1,75 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ import { getShadowElement } from '@tylertech/forge-core';
7
+ import { internals, isFocusable, setDefaultAria } from '../../constants';
8
+ import { BaseAdapter } from '../../core/base/';
9
+ import { RadioGroupManager } from '../core/radio-group-manager';
10
+ import { RADIO_CONSTANTS } from './radio-constants';
11
+ export class RadioAdapter extends BaseAdapter {
12
+ constructor(component) {
13
+ super(component);
14
+ this._rootElement = getShadowElement(component, RADIO_CONSTANTS.selectors.ROOT);
15
+ this._labelElement = getShadowElement(component, RADIO_CONSTANTS.selectors.LABEL);
16
+ this._stateLayerElement = getShadowElement(component, RADIO_CONSTANTS.selectors.STATE_LAYER);
17
+ }
18
+ setChecked(checked, value) {
19
+ this._component[setDefaultAria]({ ariaChecked: checked ? 'true' : 'false' });
20
+ if (checked) {
21
+ RadioGroupManager.setSelectedRadioInGroup(this._component);
22
+ }
23
+ // Update the form value, state, and validity
24
+ const formValue = checked ? value : null;
25
+ const formState = checked ? 'checked' : 'unchecked';
26
+ this._component[internals].setFormValue(formValue, formState);
27
+ RadioGroupManager.setRadioGroupValidity(this._component);
28
+ }
29
+ /**
30
+ * Attempts to set the disabled state of the radio. If the radio is in a disabled radio group, it
31
+ * can't be enabled.
32
+ *
33
+ * @param value Whether the radio should be disabled.
34
+ * @returns Whether the disabled state was set.
35
+ */
36
+ trySetDisabled(value) {
37
+ const group = this._component.closest('forge-radio-group');
38
+ if (!value && group && group.disabled) {
39
+ return false;
40
+ }
41
+ this._component[setDefaultAria]({ ariaDisabled: `${!!value}` });
42
+ this._component[isFocusable] = !value;
43
+ return true;
44
+ }
45
+ setRequired(value) {
46
+ this._component[setDefaultAria]({
47
+ ariaRequired: value ? 'true' : 'false'
48
+ }, { setAttribute: true });
49
+ RadioGroupManager.setRadioGroupValidity(this._component);
50
+ }
51
+ setReadonly(value) {
52
+ this._component[setDefaultAria]({ ariaDisabled: `${!!value}` });
53
+ }
54
+ disableStateLayer(value) {
55
+ this._stateLayerElement.disabled = value;
56
+ }
57
+ setLabelPosition(value) {
58
+ this._labelElement.remove();
59
+ if (value === 'start') {
60
+ this._rootElement.prepend(this._labelElement);
61
+ }
62
+ else {
63
+ this._rootElement.append(this._labelElement);
64
+ }
65
+ }
66
+ setUncheckedRadioGroupFocus(event) {
67
+ RadioGroupManager.setUncheckedRadioGroupFocus(this._component, event);
68
+ }
69
+ focusNext() {
70
+ RadioGroupManager.focusNextRadioInGroup(this._component);
71
+ }
72
+ focusPrevious() {
73
+ RadioGroupManager.focusPreviousRadioInGroup(this._component);
74
+ }
75
+ }