@tylertech/forge 2.21.0 → 2.21.2

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 (337) hide show
  1. package/custom-elements.json +1257 -157
  2. package/dist/esm/accordion/index.js +1 -1
  3. package/dist/esm/app-bar/help-button/index.js +1 -1
  4. package/dist/esm/app-bar/index.js +1 -1
  5. package/dist/esm/app-bar/menu-button/index.js +1 -1
  6. package/dist/esm/app-bar/notification-button/index.js +1 -1
  7. package/dist/esm/app-bar/profile-button/index.js +1 -1
  8. package/dist/esm/app-bar/search/index.js +1 -1
  9. package/dist/esm/autocomplete/index.js +1 -1
  10. package/dist/esm/avatar/index.js +1 -1
  11. package/dist/esm/backdrop/index.js +1 -1
  12. package/dist/esm/badge/index.js +1 -1
  13. package/dist/esm/banner/index.js +1 -1
  14. package/dist/esm/bottom-sheet/index.js +1 -1
  15. package/dist/esm/busy-indicator/index.js +1 -1
  16. package/dist/esm/button/index.js +1 -1
  17. package/dist/esm/button-area/index.js +1 -1
  18. package/dist/esm/button-toggle/button-toggle/index.js +1 -1
  19. package/dist/esm/button-toggle/button-toggle-group/index.js +1 -1
  20. package/dist/esm/button-toggle/index.js +1 -1
  21. package/dist/esm/calendar/calendar-dropdown/index.js +1 -1
  22. package/dist/esm/calendar/calendar-menu/index.js +1 -1
  23. package/dist/esm/calendar/index.js +1 -1
  24. package/dist/esm/checkbox/index.js +1 -1
  25. package/dist/esm/chip-field/index.js +1 -1
  26. package/dist/esm/chips/chip/index.js +1 -1
  27. package/dist/esm/chips/chip-set/index.js +1 -1
  28. package/dist/esm/chips/index.js +1 -1
  29. package/dist/esm/chunks/{chunk.G6GRI7UL.js → chunk.34KPY5LA.js} +2 -2
  30. package/dist/esm/chunks/{chunk.KQK2XX5H.js → chunk.34QUWF7V.js} +2 -2
  31. package/dist/esm/chunks/chunk.34XMCEIP.js +7 -0
  32. package/dist/esm/chunks/chunk.34XMCEIP.js.map +7 -0
  33. package/dist/esm/chunks/chunk.356ZQ2XS.js +7 -0
  34. package/dist/esm/chunks/{chunk.ZWL2Q7E6.js.map → chunk.356ZQ2XS.js.map} +1 -1
  35. package/dist/esm/chunks/{chunk.Y7YPNMPI.js → chunk.4E7RA4KA.js} +2 -2
  36. package/dist/esm/chunks/{chunk.Y7YPNMPI.js.map → chunk.4E7RA4KA.js.map} +2 -2
  37. package/dist/esm/chunks/{chunk.3FAYFYXF.js → chunk.4HYZFGYD.js} +2 -2
  38. package/dist/esm/chunks/{chunk.K55FBLTW.js → chunk.4OBKQO2C.js} +2 -2
  39. package/dist/esm/chunks/{chunk.67G7HT5S.js → chunk.5TU5W4VX.js} +2 -2
  40. package/dist/esm/chunks/{chunk.UHU4FUIS.js → chunk.5XP6JI3R.js} +2 -2
  41. package/dist/esm/chunks/{chunk.TH7RLTJK.js → chunk.626HG3FA.js} +2 -2
  42. package/dist/esm/chunks/{chunk.2T6HVSO4.js → chunk.6E43KAVU.js} +2 -2
  43. package/dist/esm/chunks/{chunk.3C44DXZ2.js → chunk.6M3DKBNE.js} +2 -2
  44. package/dist/esm/chunks/{chunk.UQTJSPU4.js → chunk.6TTLHD2N.js} +2 -2
  45. package/dist/esm/chunks/chunk.6UQ4QU6Q.js +7 -0
  46. package/dist/esm/chunks/{chunk.WPJEXVHM.js.map → chunk.6UQ4QU6Q.js.map} +3 -3
  47. package/dist/esm/chunks/{chunk.EMV7JGHB.js → chunk.7EL6SQHJ.js} +2 -2
  48. package/dist/esm/chunks/{chunk.FCTKNIBN.js → chunk.7GETSYAV.js} +2 -2
  49. package/dist/esm/chunks/{chunk.FCTKNIBN.js.map → chunk.7GETSYAV.js.map} +2 -2
  50. package/dist/esm/chunks/{chunk.KNVCEYY2.js → chunk.AO6HECKT.js} +2 -2
  51. package/dist/esm/chunks/{chunk.ON2K3O3I.js → chunk.B3FAMC7O.js} +2 -2
  52. package/dist/esm/chunks/{chunk.76PI42C5.js → chunk.CZW42BMS.js} +2 -2
  53. package/dist/esm/chunks/{chunk.D43PPRFO.js → chunk.DTSUVDYY.js} +2 -2
  54. package/dist/esm/chunks/{chunk.XTMXGKUO.js → chunk.DX6QB7DJ.js} +2 -2
  55. package/dist/esm/chunks/chunk.E5EFBGTJ.js +12 -0
  56. package/dist/esm/chunks/{chunk.Y2I2VRMF.js → chunk.FFABH6GU.js} +2 -2
  57. package/dist/esm/chunks/{chunk.L52XPVYZ.js → chunk.FO3INOWB.js} +2 -2
  58. package/dist/esm/chunks/chunk.FTZHHRGK.js +7 -0
  59. package/dist/esm/chunks/{chunk.MXVJSEF3.js.map → chunk.FTZHHRGK.js.map} +1 -1
  60. package/dist/esm/chunks/{chunk.N6XHXCZE.js → chunk.G23TTQRE.js} +2 -2
  61. package/dist/esm/chunks/chunk.GDYEENZH.js +7 -0
  62. package/dist/esm/chunks/chunk.GDYEENZH.js.map +7 -0
  63. package/dist/esm/chunks/chunk.GIEAUIYJ.js +7 -0
  64. package/dist/esm/chunks/chunk.GIEAUIYJ.js.map +7 -0
  65. package/dist/esm/chunks/chunk.HBHYHMJR.js +7 -0
  66. package/dist/esm/chunks/chunk.HBHYHMJR.js.map +7 -0
  67. package/dist/esm/chunks/{chunk.44WDRTRR.js → chunk.HIS5OR6E.js} +2 -2
  68. package/dist/esm/chunks/{chunk.7BAO5IED.js → chunk.HQA6NHEQ.js} +2 -2
  69. package/dist/esm/chunks/chunk.I2Q6DCOP.js +7 -0
  70. package/dist/esm/chunks/chunk.I2Q6DCOP.js.map +7 -0
  71. package/dist/esm/chunks/{chunk.J2PHUKSR.js → chunk.I567TCRS.js} +2 -2
  72. package/dist/esm/chunks/chunk.I6TJZZMO.js +7 -0
  73. package/dist/esm/chunks/chunk.I6TJZZMO.js.map +7 -0
  74. package/dist/esm/chunks/chunk.J3PYKSC7.js +7 -0
  75. package/dist/esm/chunks/chunk.J3PYKSC7.js.map +7 -0
  76. package/dist/esm/chunks/{chunk.BINM3NUA.js → chunk.JDGO7PBU.js} +2 -2
  77. package/dist/esm/chunks/chunk.JE4JMYK4.js +29 -0
  78. package/dist/esm/chunks/chunk.JE4JMYK4.js.map +7 -0
  79. package/dist/esm/chunks/chunk.JGQ574IS.js +7 -0
  80. package/dist/esm/chunks/chunk.JGQ574IS.js.map +7 -0
  81. package/dist/esm/chunks/{chunk.APHMTBRQ.js → chunk.JIEPQLGT.js} +2 -2
  82. package/dist/esm/chunks/{chunk.7NHFZL6J.js → chunk.JOPEH3MU.js} +2 -2
  83. package/dist/esm/chunks/{chunk.326IKRDS.js → chunk.KDGNGV2Q.js} +2 -2
  84. package/dist/esm/chunks/chunk.KZJYLYWN.js +7 -0
  85. package/dist/esm/chunks/chunk.KZJYLYWN.js.map +7 -0
  86. package/dist/esm/chunks/{chunk.M6PJ3PNN.js → chunk.L3PT6MFO.js} +2 -2
  87. package/dist/esm/chunks/{chunk.AZFF62ZK.js → chunk.LOA2PXPF.js} +2 -2
  88. package/dist/esm/chunks/{chunk.7IHNVPY5.js → chunk.MAG6CV5M.js} +2 -2
  89. package/dist/esm/chunks/{chunk.7IHNVPY5.js.map → chunk.MAG6CV5M.js.map} +3 -3
  90. package/dist/esm/chunks/{chunk.M2ATVI24.js → chunk.N24HFRA7.js} +2 -2
  91. package/dist/esm/chunks/{chunk.YJTE34LC.js → chunk.NGNONQIQ.js} +2 -2
  92. package/dist/esm/chunks/{chunk.SFTWKDQV.js → chunk.NOQTT5CC.js} +2 -2
  93. package/dist/esm/chunks/{chunk.IWICN773.js → chunk.NZI24S27.js} +2 -2
  94. package/dist/esm/chunks/{chunk.GQCUI7YS.js → chunk.O3HLTRZ7.js} +2 -2
  95. package/dist/esm/chunks/chunk.OPU47W2S.js +7 -0
  96. package/dist/esm/chunks/chunk.OPU47W2S.js.map +7 -0
  97. package/dist/esm/chunks/{chunk.IV2GMOPB.js → chunk.OQ2YXL5K.js} +2 -2
  98. package/dist/esm/chunks/{chunk.L3SL4NW6.js → chunk.OVRFFUGY.js} +2 -2
  99. package/dist/esm/chunks/{chunk.AD4NVLFA.js → chunk.PIEVCFVP.js} +2 -2
  100. package/dist/esm/chunks/{chunk.IZSUW7WG.js → chunk.PITKIE6U.js} +2 -2
  101. package/dist/esm/chunks/chunk.PVKUTCJL.js +7 -0
  102. package/dist/esm/chunks/chunk.PVKUTCJL.js.map +7 -0
  103. package/dist/esm/chunks/{chunk.4R6NK524.js → chunk.PXXVBTZK.js} +2 -2
  104. package/dist/esm/chunks/chunk.Q5S2PLLO.js +7 -0
  105. package/dist/esm/chunks/chunk.Q5S2PLLO.js.map +7 -0
  106. package/dist/esm/chunks/chunk.QUQ2LN2S.js +7 -0
  107. package/dist/esm/chunks/chunk.QUQ2LN2S.js.map +7 -0
  108. package/dist/esm/chunks/chunk.QY5JYJPV.js +7 -0
  109. package/dist/esm/chunks/chunk.QY5JYJPV.js.map +7 -0
  110. package/dist/esm/chunks/{chunk.OEZZ2NEY.js → chunk.REOK5HDT.js} +2 -2
  111. package/dist/esm/chunks/{chunk.PKVY6EWM.js → chunk.RNV6JSP4.js} +2 -2
  112. package/dist/esm/chunks/chunk.RWXLU5GZ.js +7 -0
  113. package/dist/esm/chunks/chunk.RWXLU5GZ.js.map +7 -0
  114. package/dist/esm/chunks/{chunk.LM57IEFE.js → chunk.S5GROM77.js} +2 -2
  115. package/dist/esm/chunks/{chunk.F5CFD2NG.js → chunk.SFREF7YC.js} +2 -2
  116. package/dist/esm/chunks/{chunk.7SULS4D2.js → chunk.SKFSEWYY.js} +2 -2
  117. package/dist/esm/chunks/chunk.SNGYY7HZ.js +7 -0
  118. package/dist/esm/chunks/chunk.SNGYY7HZ.js.map +7 -0
  119. package/dist/esm/chunks/{chunk.6G4DOKR2.js → chunk.SQESFOGY.js} +2 -2
  120. package/dist/esm/chunks/{chunk.6G4DOKR2.js.map → chunk.SQESFOGY.js.map} +2 -2
  121. package/dist/esm/chunks/{chunk.UVL4TIK2.js → chunk.SS46JP47.js} +2 -2
  122. package/dist/esm/chunks/{chunk.KII37K76.js → chunk.SYGMZUV7.js} +2 -2
  123. package/dist/esm/chunks/{chunk.H3IPTBWM.js → chunk.T7UBP53Q.js} +2 -2
  124. package/dist/esm/chunks/{chunk.NLXSZNQI.js → chunk.TGF5WRAW.js} +2 -2
  125. package/dist/esm/chunks/{chunk.JCDIPDQR.js → chunk.TR4JGRMS.js} +2 -2
  126. package/dist/esm/chunks/{chunk.B7LJJMMF.js → chunk.TT4KSKDQ.js} +2 -2
  127. package/dist/esm/chunks/{chunk.B7LJJMMF.js.map → chunk.TT4KSKDQ.js.map} +1 -1
  128. package/dist/esm/chunks/{chunk.73GVVX4K.js → chunk.UA7R255A.js} +2 -2
  129. package/dist/esm/chunks/{chunk.73GVVX4K.js.map → chunk.UA7R255A.js.map} +2 -2
  130. package/dist/esm/chunks/{chunk.PADHAJLS.js → chunk.VIMC4REI.js} +2 -2
  131. package/dist/esm/chunks/{chunk.SAQSXX2T.js → chunk.VVAZNQMU.js} +2 -2
  132. package/dist/esm/chunks/{chunk.42QTJZSF.js → chunk.VXT4TNZZ.js} +2 -2
  133. package/dist/esm/chunks/{chunk.6TTAKWXI.js → chunk.WHY2OAQJ.js} +2 -2
  134. package/dist/esm/chunks/{chunk.WOTVTBJS.js → chunk.XQS6FU2G.js} +2 -2
  135. package/dist/esm/chunks/{chunk.2VWASAUU.js → chunk.YCKKFYVM.js} +2 -2
  136. package/dist/esm/chunks/chunk.YPR3VFCP.js +7 -0
  137. package/dist/esm/chunks/chunk.YPR3VFCP.js.map +7 -0
  138. package/dist/esm/chunks/chunk.ZFBCYZNK.js +7 -0
  139. package/dist/esm/chunks/chunk.ZFBCYZNK.js.map +7 -0
  140. package/dist/esm/chunks/chunk.ZTN2FNFX.js +7 -0
  141. package/dist/esm/chunks/chunk.ZTN2FNFX.js.map +7 -0
  142. package/dist/esm/color-picker/index.js +1 -1
  143. package/dist/esm/core/base/index.js +1 -1
  144. package/dist/esm/core/index.js +1 -1
  145. package/dist/esm/core/utils/index.js +1 -1
  146. package/dist/esm/date-picker/index.js +1 -1
  147. package/dist/esm/date-range-picker/index.js +1 -1
  148. package/dist/esm/dialog/index.js +1 -1
  149. package/dist/esm/drawer/base/index.js +1 -1
  150. package/dist/esm/drawer/drawer/index.js +1 -1
  151. package/dist/esm/drawer/index.js +1 -1
  152. package/dist/esm/drawer/mini-drawer/index.js +1 -1
  153. package/dist/esm/drawer/modal-drawer/index.js +1 -1
  154. package/dist/esm/expansion-panel/index.js +1 -1
  155. package/dist/esm/file-picker/index.js +1 -1
  156. package/dist/esm/floating-action-button/index.js +1 -1
  157. package/dist/esm/icon/index.js +1 -1
  158. package/dist/esm/icon-button/index.js +1 -1
  159. package/dist/esm/index.js +1 -1
  160. package/dist/esm/keyboard-shortcut/index.js +1 -1
  161. package/dist/esm/label-value/index.js +1 -1
  162. package/dist/esm/list/index.js +1 -1
  163. package/dist/esm/list/list/index.js +1 -1
  164. package/dist/esm/list/list-item/index.js +1 -1
  165. package/dist/esm/list-dropdown/index.js +1 -1
  166. package/dist/esm/menu/index.js +1 -1
  167. package/dist/esm/open-icon/index.js +1 -1
  168. package/dist/esm/paginator/index.js +1 -1
  169. package/dist/esm/popup/index.js +1 -1
  170. package/dist/esm/product-icon/index.js +1 -1
  171. package/dist/esm/profile-card/index.js +1 -1
  172. package/dist/esm/quantity-field/index.js +1 -1
  173. package/dist/esm/radio/index.js +1 -1
  174. package/dist/esm/ripple/index.js +1 -1
  175. package/dist/esm/select/core/index.js +1 -1
  176. package/dist/esm/select/index.js +1 -1
  177. package/dist/esm/select/option/index.js +1 -1
  178. package/dist/esm/select/select/index.js +1 -1
  179. package/dist/esm/select/select-dropdown/index.js +1 -1
  180. package/dist/esm/slider/index.js +1 -1
  181. package/dist/esm/split-view/index.js +1 -1
  182. package/dist/esm/split-view/split-view/index.js +1 -1
  183. package/dist/esm/split-view/split-view-panel/index.js +1 -1
  184. package/dist/esm/stack/index.js +1 -1
  185. package/dist/esm/stepper/index.js +1 -1
  186. package/dist/esm/stepper/step/index.js +1 -1
  187. package/dist/esm/stepper/stepper/index.js +1 -1
  188. package/dist/esm/switch/index.js +1 -1
  189. package/dist/esm/table/index.js +1 -1
  190. package/dist/esm/tabs/index.js +1 -1
  191. package/dist/esm/tabs/tab/index.js +1 -1
  192. package/dist/esm/tabs/tab-bar/index.js +1 -1
  193. package/dist/esm/text-field/index.js +1 -1
  194. package/dist/esm/time-picker/index.js +1 -1
  195. package/dist/esm/toast/index.js +1 -1
  196. package/dist/esm/tooltip/index.js +1 -1
  197. package/dist/esm/view-switcher/index.js +1 -1
  198. package/esm/autocomplete/autocomplete.d.ts +8 -2
  199. package/esm/button/button.d.ts +1 -0
  200. package/esm/button/button.js +18 -7
  201. package/esm/button-area/button-area-adapter.d.ts +3 -1
  202. package/esm/button-area/button-area-adapter.js +14 -5
  203. package/esm/button-area/button-area-foundation.js +1 -0
  204. package/esm/calendar/calendar-foundation.js +22 -17
  205. package/esm/calendar/calendar.d.ts +1 -0
  206. package/esm/checkbox/checkbox-adapter.d.ts +1 -0
  207. package/esm/checkbox/checkbox-adapter.js +18 -7
  208. package/esm/core/base/base-adapter.d.ts +4 -2
  209. package/esm/core/base/base-adapter.js +3 -0
  210. package/esm/core/utils/utils.d.ts +5 -2
  211. package/esm/core/utils/utils.js +21 -6
  212. package/esm/date-picker/base/base-date-picker-adapter.js +1 -3
  213. package/esm/date-picker/base/base-date-picker-foundation.js +6 -0
  214. package/esm/date-range-picker/date-range-picker-foundation.d.ts +1 -0
  215. package/esm/date-range-picker/date-range-picker-foundation.js +4 -0
  216. package/esm/dialog/dialog-adapter.d.ts +2 -0
  217. package/esm/dialog/dialog-adapter.js +14 -0
  218. package/esm/dialog/dialog-foundation.js +1 -0
  219. package/esm/expansion-panel/expansion-panel-adapter.js +0 -5
  220. package/esm/icon-button/icon-button.d.ts +2 -0
  221. package/esm/icon-button/icon-button.js +31 -7
  222. package/esm/list/list/list-adapter.d.ts +2 -6
  223. package/esm/list/list/list-adapter.js +29 -18
  224. package/esm/list/list/list-constants.d.ts +2 -2
  225. package/esm/list/list/list-constants.js +3 -3
  226. package/esm/list/list/list-foundation.js +6 -0
  227. package/esm/list/list-item/list-item-adapter.d.ts +3 -3
  228. package/esm/list/list-item/list-item-adapter.js +3 -3
  229. package/esm/list/list-item/list-item-foundation.d.ts +1 -0
  230. package/esm/list/list-item/list-item-foundation.js +12 -2
  231. package/esm/menu/menu-foundation.js +1 -0
  232. package/esm/menu/menu.d.ts +4 -1
  233. package/esm/open-icon/open-icon.js +2 -2
  234. package/esm/paginator/paginator-adapter.d.ts +6 -2
  235. package/esm/paginator/paginator-adapter.js +34 -54
  236. package/esm/paginator/paginator-constants.d.ts +1 -1
  237. package/esm/paginator/paginator-foundation.js +7 -17
  238. package/esm/radio/radio-adapter.d.ts +1 -0
  239. package/esm/radio/radio-adapter.js +18 -7
  240. package/esm/ripple/forge-ripple.d.ts +2 -0
  241. package/esm/ripple/forge-ripple.js +4 -0
  242. package/esm/select/core/base-select.d.ts +4 -1
  243. package/esm/split-view/split-view-panel/split-view-panel.js +1 -1
  244. package/esm/switch/switch.js +15 -2
  245. package/esm/tooltip/tooltip.d.ts +1 -0
  246. package/package.json +2 -2
  247. package/dist/esm/chunks/chunk.4CWMNWZU.js +0 -7
  248. package/dist/esm/chunks/chunk.4CWMNWZU.js.map +0 -7
  249. package/dist/esm/chunks/chunk.5KC43VFL.js +0 -7
  250. package/dist/esm/chunks/chunk.5KC43VFL.js.map +0 -7
  251. package/dist/esm/chunks/chunk.AHDIUCUB.js +0 -7
  252. package/dist/esm/chunks/chunk.AHDIUCUB.js.map +0 -7
  253. package/dist/esm/chunks/chunk.CE6NTUWI.js +0 -7
  254. package/dist/esm/chunks/chunk.CE6NTUWI.js.map +0 -7
  255. package/dist/esm/chunks/chunk.DLALEZ73.js +0 -7
  256. package/dist/esm/chunks/chunk.DLALEZ73.js.map +0 -7
  257. package/dist/esm/chunks/chunk.DYF2MREZ.js +0 -7
  258. package/dist/esm/chunks/chunk.DYF2MREZ.js.map +0 -7
  259. package/dist/esm/chunks/chunk.ECIGY5TD.js +0 -12
  260. package/dist/esm/chunks/chunk.ITXUKOKJ.js +0 -7
  261. package/dist/esm/chunks/chunk.ITXUKOKJ.js.map +0 -7
  262. package/dist/esm/chunks/chunk.JOLJ7WVN.js +0 -7
  263. package/dist/esm/chunks/chunk.JOLJ7WVN.js.map +0 -7
  264. package/dist/esm/chunks/chunk.MXVJSEF3.js +0 -7
  265. package/dist/esm/chunks/chunk.Q7HX26UO.js +0 -7
  266. package/dist/esm/chunks/chunk.Q7HX26UO.js.map +0 -7
  267. package/dist/esm/chunks/chunk.QZ2NXIGY.js +0 -7
  268. package/dist/esm/chunks/chunk.QZ2NXIGY.js.map +0 -7
  269. package/dist/esm/chunks/chunk.RH4E52PS.js +0 -7
  270. package/dist/esm/chunks/chunk.RH4E52PS.js.map +0 -7
  271. package/dist/esm/chunks/chunk.RLWX5BFQ.js +0 -7
  272. package/dist/esm/chunks/chunk.RLWX5BFQ.js.map +0 -7
  273. package/dist/esm/chunks/chunk.SXTM6OK4.js +0 -7
  274. package/dist/esm/chunks/chunk.SXTM6OK4.js.map +0 -7
  275. package/dist/esm/chunks/chunk.VT2QJ7SM.js +0 -29
  276. package/dist/esm/chunks/chunk.VT2QJ7SM.js.map +0 -7
  277. package/dist/esm/chunks/chunk.WPJEXVHM.js +0 -7
  278. package/dist/esm/chunks/chunk.Y66GSZJB.js +0 -7
  279. package/dist/esm/chunks/chunk.Y66GSZJB.js.map +0 -7
  280. package/dist/esm/chunks/chunk.YG24YPYO.js +0 -7
  281. package/dist/esm/chunks/chunk.YG24YPYO.js.map +0 -7
  282. package/dist/esm/chunks/chunk.ZWL2Q7E6.js +0 -7
  283. /package/dist/esm/chunks/{chunk.G6GRI7UL.js.map → chunk.34KPY5LA.js.map} +0 -0
  284. /package/dist/esm/chunks/{chunk.KQK2XX5H.js.map → chunk.34QUWF7V.js.map} +0 -0
  285. /package/dist/esm/chunks/{chunk.3FAYFYXF.js.map → chunk.4HYZFGYD.js.map} +0 -0
  286. /package/dist/esm/chunks/{chunk.K55FBLTW.js.map → chunk.4OBKQO2C.js.map} +0 -0
  287. /package/dist/esm/chunks/{chunk.67G7HT5S.js.map → chunk.5TU5W4VX.js.map} +0 -0
  288. /package/dist/esm/chunks/{chunk.UHU4FUIS.js.map → chunk.5XP6JI3R.js.map} +0 -0
  289. /package/dist/esm/chunks/{chunk.TH7RLTJK.js.map → chunk.626HG3FA.js.map} +0 -0
  290. /package/dist/esm/chunks/{chunk.2T6HVSO4.js.map → chunk.6E43KAVU.js.map} +0 -0
  291. /package/dist/esm/chunks/{chunk.3C44DXZ2.js.map → chunk.6M3DKBNE.js.map} +0 -0
  292. /package/dist/esm/chunks/{chunk.UQTJSPU4.js.map → chunk.6TTLHD2N.js.map} +0 -0
  293. /package/dist/esm/chunks/{chunk.EMV7JGHB.js.map → chunk.7EL6SQHJ.js.map} +0 -0
  294. /package/dist/esm/chunks/{chunk.KNVCEYY2.js.map → chunk.AO6HECKT.js.map} +0 -0
  295. /package/dist/esm/chunks/{chunk.ON2K3O3I.js.map → chunk.B3FAMC7O.js.map} +0 -0
  296. /package/dist/esm/chunks/{chunk.76PI42C5.js.map → chunk.CZW42BMS.js.map} +0 -0
  297. /package/dist/esm/chunks/{chunk.D43PPRFO.js.map → chunk.DTSUVDYY.js.map} +0 -0
  298. /package/dist/esm/chunks/{chunk.XTMXGKUO.js.map → chunk.DX6QB7DJ.js.map} +0 -0
  299. /package/dist/esm/chunks/{chunk.ECIGY5TD.js.map → chunk.E5EFBGTJ.js.map} +0 -0
  300. /package/dist/esm/chunks/{chunk.Y2I2VRMF.js.map → chunk.FFABH6GU.js.map} +0 -0
  301. /package/dist/esm/chunks/{chunk.L52XPVYZ.js.map → chunk.FO3INOWB.js.map} +0 -0
  302. /package/dist/esm/chunks/{chunk.N6XHXCZE.js.map → chunk.G23TTQRE.js.map} +0 -0
  303. /package/dist/esm/chunks/{chunk.44WDRTRR.js.map → chunk.HIS5OR6E.js.map} +0 -0
  304. /package/dist/esm/chunks/{chunk.7BAO5IED.js.map → chunk.HQA6NHEQ.js.map} +0 -0
  305. /package/dist/esm/chunks/{chunk.J2PHUKSR.js.map → chunk.I567TCRS.js.map} +0 -0
  306. /package/dist/esm/chunks/{chunk.BINM3NUA.js.map → chunk.JDGO7PBU.js.map} +0 -0
  307. /package/dist/esm/chunks/{chunk.APHMTBRQ.js.map → chunk.JIEPQLGT.js.map} +0 -0
  308. /package/dist/esm/chunks/{chunk.7NHFZL6J.js.map → chunk.JOPEH3MU.js.map} +0 -0
  309. /package/dist/esm/chunks/{chunk.326IKRDS.js.map → chunk.KDGNGV2Q.js.map} +0 -0
  310. /package/dist/esm/chunks/{chunk.M6PJ3PNN.js.map → chunk.L3PT6MFO.js.map} +0 -0
  311. /package/dist/esm/chunks/{chunk.AZFF62ZK.js.map → chunk.LOA2PXPF.js.map} +0 -0
  312. /package/dist/esm/chunks/{chunk.M2ATVI24.js.map → chunk.N24HFRA7.js.map} +0 -0
  313. /package/dist/esm/chunks/{chunk.YJTE34LC.js.map → chunk.NGNONQIQ.js.map} +0 -0
  314. /package/dist/esm/chunks/{chunk.SFTWKDQV.js.map → chunk.NOQTT5CC.js.map} +0 -0
  315. /package/dist/esm/chunks/{chunk.IWICN773.js.map → chunk.NZI24S27.js.map} +0 -0
  316. /package/dist/esm/chunks/{chunk.GQCUI7YS.js.map → chunk.O3HLTRZ7.js.map} +0 -0
  317. /package/dist/esm/chunks/{chunk.IV2GMOPB.js.map → chunk.OQ2YXL5K.js.map} +0 -0
  318. /package/dist/esm/chunks/{chunk.L3SL4NW6.js.map → chunk.OVRFFUGY.js.map} +0 -0
  319. /package/dist/esm/chunks/{chunk.AD4NVLFA.js.map → chunk.PIEVCFVP.js.map} +0 -0
  320. /package/dist/esm/chunks/{chunk.IZSUW7WG.js.map → chunk.PITKIE6U.js.map} +0 -0
  321. /package/dist/esm/chunks/{chunk.4R6NK524.js.map → chunk.PXXVBTZK.js.map} +0 -0
  322. /package/dist/esm/chunks/{chunk.OEZZ2NEY.js.map → chunk.REOK5HDT.js.map} +0 -0
  323. /package/dist/esm/chunks/{chunk.PKVY6EWM.js.map → chunk.RNV6JSP4.js.map} +0 -0
  324. /package/dist/esm/chunks/{chunk.LM57IEFE.js.map → chunk.S5GROM77.js.map} +0 -0
  325. /package/dist/esm/chunks/{chunk.F5CFD2NG.js.map → chunk.SFREF7YC.js.map} +0 -0
  326. /package/dist/esm/chunks/{chunk.7SULS4D2.js.map → chunk.SKFSEWYY.js.map} +0 -0
  327. /package/dist/esm/chunks/{chunk.UVL4TIK2.js.map → chunk.SS46JP47.js.map} +0 -0
  328. /package/dist/esm/chunks/{chunk.KII37K76.js.map → chunk.SYGMZUV7.js.map} +0 -0
  329. /package/dist/esm/chunks/{chunk.H3IPTBWM.js.map → chunk.T7UBP53Q.js.map} +0 -0
  330. /package/dist/esm/chunks/{chunk.NLXSZNQI.js.map → chunk.TGF5WRAW.js.map} +0 -0
  331. /package/dist/esm/chunks/{chunk.JCDIPDQR.js.map → chunk.TR4JGRMS.js.map} +0 -0
  332. /package/dist/esm/chunks/{chunk.PADHAJLS.js.map → chunk.VIMC4REI.js.map} +0 -0
  333. /package/dist/esm/chunks/{chunk.SAQSXX2T.js.map → chunk.VVAZNQMU.js.map} +0 -0
  334. /package/dist/esm/chunks/{chunk.42QTJZSF.js.map → chunk.VXT4TNZZ.js.map} +0 -0
  335. /package/dist/esm/chunks/{chunk.6TTAKWXI.js.map → chunk.WHY2OAQJ.js.map} +0 -0
  336. /package/dist/esm/chunks/{chunk.WOTVTBJS.js.map → chunk.XQS6FU2G.js.map} +0 -0
  337. /package/dist/esm/chunks/{chunk.2VWASAUU.js.map → chunk.YCKKFYVM.js.map} +0 -0
@@ -3,7 +3,7 @@
3
3
  * Copyright 2023 Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- import { deepQuerySelectorAll, getActiveElement } from '@tylertech/forge-core';
6
+ import { deepQuerySelectorAll } from '@tylertech/forge-core';
7
7
  import { BaseAdapter } from '../../core/base/base-adapter';
8
8
  import { LIST_ITEM_CONSTANTS } from '../list-item';
9
9
  import { LIST_CONSTANTS } from './list-constants';
@@ -35,19 +35,13 @@ export class ListAdapter extends BaseAdapter {
35
35
  removeListener(type, listener) {
36
36
  this._component.removeEventListener(type, listener);
37
37
  }
38
- /**
39
- * Returns all child `<forge-list-item>` elements.
40
- */
41
- getListItems() {
42
- return Array.from(this._component.children).filter(child => child.tagName === LIST_ITEM_CONSTANTS.elementName.toUpperCase());
43
- }
44
38
  /**
45
39
  * Sets focus to the next item in the list.
46
40
  */
47
41
  focusNextListItem() {
48
- const listItems = deepQuerySelectorAll(this._component, LIST_CONSTANTS.selectors.FOCUSABLE_LIST_ITEMS, false);
49
- if (listItems && listItems.length > 0) {
50
- const focusedListItemIndex = listItems.indexOf(getActiveElement(this._component.ownerDocument));
42
+ const listItems = this._getOwnListItems();
43
+ if (listItems.length > 0) {
44
+ const focusedListItemIndex = listItems.findIndex(li => li.matches(':focus-within'));
51
45
  const nextIndex = focusedListItemIndex < listItems.length - 1 ? focusedListItemIndex + 1 : 0;
52
46
  if (nextIndex <= listItems.length - 1) {
53
47
  listItems[nextIndex].focus();
@@ -58,9 +52,9 @@ export class ListAdapter extends BaseAdapter {
58
52
  * Sets focus to the previous item in the list.
59
53
  */
60
54
  focusPreviousListItem() {
61
- const listItems = deepQuerySelectorAll(this._component, LIST_CONSTANTS.selectors.FOCUSABLE_LIST_ITEMS, false);
62
- if (listItems && listItems.length > 0) {
63
- const focusedListItemIndex = listItems.indexOf(getActiveElement(this._component.ownerDocument));
55
+ const listItems = this._getOwnListItems();
56
+ if (listItems.length > 0) {
57
+ const focusedListItemIndex = listItems.findIndex(li => li.matches(':focus-within'));
64
58
  const nextIndex = focusedListItemIndex > 0 ? focusedListItemIndex - 1 : listItems.length - 1;
65
59
  if (nextIndex >= 0) {
66
60
  listItems[nextIndex].focus();
@@ -71,8 +65,8 @@ export class ListAdapter extends BaseAdapter {
71
65
  * Sets focus to the first item in the list.
72
66
  */
73
67
  focusFirstListItem() {
74
- const listItems = deepQuerySelectorAll(this._component, LIST_CONSTANTS.selectors.FOCUSABLE_LIST_ITEMS, false);
75
- if (listItems && listItems.length > 0) {
68
+ const listItems = this._getOwnListItems();
69
+ if (listItems.length > 0) {
76
70
  listItems[0].focus();
77
71
  }
78
72
  }
@@ -80,8 +74,8 @@ export class ListAdapter extends BaseAdapter {
80
74
  * Sets focus to the last item in the list.
81
75
  */
82
76
  focusLastListItem() {
83
- const listItems = deepQuerySelectorAll(this._component, LIST_CONSTANTS.selectors.FOCUSABLE_LIST_ITEMS, false);
84
- if (listItems && listItems.length > 0) {
77
+ const listItems = this._getOwnListItems();
78
+ if (listItems.length > 0) {
85
79
  listItems[listItems.length - 1].focus();
86
80
  }
87
81
  }
@@ -94,6 +88,23 @@ export class ListAdapter extends BaseAdapter {
94
88
  }
95
89
  }
96
90
  updateListItems(cb) {
97
- this.getListItems().forEach(li => cb(li));
91
+ this._getOwnListItems().forEach(li => cb(li));
92
+ }
93
+ _getOwnListItems() {
94
+ // Find all deeply nested list items
95
+ const allChildListItems = deepQuerySelectorAll(this._component, LIST_ITEM_CONSTANTS.elementName);
96
+ // Get all list items that are scoped to this component only (not within sub-lists).
97
+ const scopedListItems = [];
98
+ const listener = evt => {
99
+ const composedPath = evt.composedPath();
100
+ const composedBeforeUs = composedPath.slice(0, composedPath.indexOf(this._component));
101
+ if (!composedBeforeUs.some((el) => el.localName === LIST_CONSTANTS.elementName.toLowerCase())) {
102
+ scopedListItems.push(evt.target);
103
+ }
104
+ };
105
+ this._component.addEventListener(LIST_CONSTANTS.events.SCOPE_TEST, listener);
106
+ allChildListItems.forEach(li => li.dispatchEvent(new CustomEvent(LIST_CONSTANTS.events.SCOPE_TEST, { bubbles: true, composed: true })));
107
+ this._component.removeEventListener(LIST_CONSTANTS.events.SCOPE_TEST, listener);
108
+ return scopedListItems;
98
109
  }
99
110
  }
@@ -12,7 +12,7 @@ export declare const LIST_CONSTANTS: {
12
12
  INDENTED: string;
13
13
  SELECTED_VALUE: string;
14
14
  };
15
- selectors: {
16
- FOCUSABLE_LIST_ITEMS: string;
15
+ events: {
16
+ readonly SCOPE_TEST: "forge-list-item-scope-test";
17
17
  };
18
18
  };
@@ -12,11 +12,11 @@ const attributes = {
12
12
  INDENTED: 'indented',
13
13
  SELECTED_VALUE: 'selected-value'
14
14
  };
15
- const selectors = {
16
- FOCUSABLE_LIST_ITEMS: '.forge-list-item:not(.forge-list-item--static):not(.forge-list-item--disabled)'
15
+ const events = {
16
+ SCOPE_TEST: `${elementName}-item-scope-test`
17
17
  };
18
18
  export const LIST_CONSTANTS = {
19
19
  elementName,
20
20
  attributes,
21
- selectors
21
+ events
22
22
  };
@@ -28,6 +28,12 @@ export class ListFoundation {
28
28
  }
29
29
  }
30
30
  _onKeydown(evt) {
31
+ const path = evt.composedPath();
32
+ const composedBeforeUs = path.slice(0, path.indexOf(this._adapter.hostElement));
33
+ const fromListDescendant = composedBeforeUs.some((el) => el.localName === LIST_CONSTANTS.elementName.toLowerCase());
34
+ if (fromListDescendant) {
35
+ return; // We ignore keydown events coming from sub-lists because they are already handling it themselves
36
+ }
31
37
  const isArrowDown = evt.key === 'ArrowDown' || evt.keyCode === 40;
32
38
  const isArrowUp = evt.key === 'ArrowUp' || evt.keyCode === 38;
33
39
  const isHome = evt.key === 'Home' || evt.keyCode === 36;
@@ -4,7 +4,7 @@
4
4
  * License: Apache-2.0
5
5
  */
6
6
  import { BaseAdapter, IBaseAdapter } from '../../core/base/base-adapter';
7
- import { userInteractionListener } from '../../core/utils';
7
+ import { createUserInteractionListener } from '../../core/utils';
8
8
  import { IListItemComponent } from './list-item';
9
9
  export interface IListItemAdapter extends IBaseAdapter {
10
10
  initializeAccessibility(): void;
@@ -27,7 +27,7 @@ export interface IListItemAdapter extends IBaseAdapter {
27
27
  setIndented(indented: boolean): void;
28
28
  setWrap(value: boolean): void;
29
29
  trySelect(value: unknown): boolean | null;
30
- userInteractionListener(): ReturnType<typeof userInteractionListener>;
30
+ createUserInteractionListener(): ReturnType<typeof createUserInteractionListener>;
31
31
  }
32
32
  export declare class ListItemAdapter extends BaseAdapter<IListItemComponent> implements IListItemAdapter {
33
33
  private _listItemElement;
@@ -105,5 +105,5 @@ export declare class ListItemAdapter extends BaseAdapter<IListItemComponent> imp
105
105
  * @returns Returns whether the list item is selected or not
106
106
  */
107
107
  trySelect(value: unknown): boolean | null;
108
- userInteractionListener(): ReturnType<typeof userInteractionListener>;
108
+ createUserInteractionListener(): ReturnType<typeof createUserInteractionListener>;
109
109
  }
@@ -5,7 +5,7 @@
5
5
  */
6
6
  import { addClass, getShadowElement, removeClass, requireParent, isDeepEqual, toggleClass } from '@tylertech/forge-core';
7
7
  import { BaseAdapter } from '../../core/base/base-adapter';
8
- import { userInteractionListener } from '../../core/utils';
8
+ import { createUserInteractionListener } from '../../core/utils';
9
9
  import { LIST_CONSTANTS } from '../list/list-constants';
10
10
  import { LIST_ITEM_CONSTANTS } from './list-item-constants';
11
11
  import { ForgeRipple } from '../../ripple';
@@ -179,7 +179,7 @@ export class ListItemAdapter extends BaseAdapter {
179
179
  this.tryToggleCheckboxRadio(isSelected);
180
180
  return isSelected;
181
181
  }
182
- userInteractionListener() {
183
- return userInteractionListener(this._listItemElement);
182
+ createUserInteractionListener() {
183
+ return createUserInteractionListener(this._listItemElement);
184
184
  }
185
185
  }
@@ -43,6 +43,7 @@ export declare class ListItemFoundation implements IListItemFoundation {
43
43
  private _clickListener;
44
44
  private _mouseDownListener;
45
45
  private _keydownListener;
46
+ private _destroyUserInteractionListener;
46
47
  constructor(_adapter: IListItemAdapter);
47
48
  initialize(): void;
48
49
  disconnect(): void;
@@ -55,6 +55,10 @@ export class ListItemFoundation {
55
55
  this._rippleInstance.destroy();
56
56
  this._rippleInstance = undefined;
57
57
  }
58
+ if (typeof this._destroyUserInteractionListener === 'function') {
59
+ this._destroyUserInteractionListener();
60
+ this._destroyUserInteractionListener = undefined;
61
+ }
58
62
  }
59
63
  _onMouseDown(evt) {
60
64
  if (this._adapter.hasFocus() || !this._propagateClick) {
@@ -295,8 +299,14 @@ export class ListItemFoundation {
295
299
  }
296
300
  async _setRipple() {
297
301
  if (this._ripple && !this._static && !this._rippleInstance) {
298
- const type = await this._adapter.userInteractionListener();
299
- if (this._ripple && !this._static && !this._rippleInstance) { // need to re-check after await
302
+ const { userInteraction, destroy } = await this._adapter.createUserInteractionListener();
303
+ this._destroyUserInteractionListener = destroy;
304
+ const { type } = await userInteraction;
305
+ this._destroyUserInteractionListener = undefined;
306
+ if (!this._adapter.isConnected) {
307
+ return;
308
+ }
309
+ if (this._ripple && !this._static && !this._rippleInstance) {
300
310
  this._rippleInstance = this._adapter.createRipple();
301
311
  if (type === 'focusin') {
302
312
  this._rippleInstance.handleFocus();
@@ -295,6 +295,7 @@ export class MenuFoundation extends CascadingListDropdownAwareFoundation {
295
295
  if (this._open) {
296
296
  if (results && isArray(results) && results.length) {
297
297
  this._options = results;
298
+ this._mapIconToLeadingIcon();
298
299
  this._adapter.setOptions(results);
299
300
  const selectedValues = this._getSelectedValues();
300
301
  if (selectedValues.length) {
@@ -73,7 +73,10 @@ export declare class MenuComponent extends ListDropdownAware implements IMenuCom
73
73
  popupOffset: IPopupPosition;
74
74
  /** Sets the callback that will be executed for each option in the dropdown for producing custom option templates. */
75
75
  optionBuilder: MenuOptionBuilder;
76
- /** Gets the currently active popup element when the dropdown is open. */
76
+ /**
77
+ * Gets the currently active popup element when the dropdown is open.
78
+ * @readonly
79
+ */
77
80
  popupElement: HTMLElement | undefined;
78
81
  /** Force propagates the key event from another element this component. */
79
82
  propagateKeyEvent(evt: KeyboardEvent): void;
@@ -5,7 +5,7 @@
5
5
  */
6
6
  import { __decorate } from "tslib";
7
7
  import { CustomElement, attachShadowTemplate, coerceBoolean, FoundationProperty } from '@tylertech/forge-core';
8
- import { tylIconKeyboardArrowLeft, tylIconKeyboardArrowDown } from '@tylertech/tyler-icons/standard';
8
+ import { tylIconKeyboardArrowRight, tylIconKeyboardArrowDown } from '@tylertech/tyler-icons/standard';
9
9
  import { OpenIconFoundation } from './open-icon-foundation';
10
10
  import { OpenIconAdapter } from './open-icon-adapter';
11
11
  import { OPEN_ICON_CONSTANTS } from './open-icon-constants';
@@ -21,7 +21,7 @@ const styles = '.forge-open-icon{color:#757575;color:var(--forge-theme-icon-colo
21
21
  let OpenIconComponent = class OpenIconComponent extends BaseComponent {
22
22
  constructor() {
23
23
  super();
24
- IconRegistry.define([tylIconKeyboardArrowLeft, tylIconKeyboardArrowDown]);
24
+ IconRegistry.define([tylIconKeyboardArrowRight, tylIconKeyboardArrowDown]);
25
25
  attachShadowTemplate(this, template, styles);
26
26
  this._foundation = new OpenIconFoundation(new OpenIconAdapter(this));
27
27
  }
@@ -43,7 +43,9 @@ export interface IPaginatorAdapter extends IBaseAdapter {
43
43
  setAlternative(alternative: boolean): void;
44
44
  setAlignment(alignment: PaginatorAlternativeAlignment): void;
45
45
  hasFocus(): boolean;
46
- handleFocusMove(from?: PaginatorFieldIdentifier | null, options?: FocusOptions): void;
46
+ setFocus(options?: FocusOptions): void;
47
+ getFocusedField(): PaginatorFieldIdentifier | null;
48
+ tryDisableFields(fieldsToDisable: PaginatorFieldIdentifier[]): void;
47
49
  }
48
50
  /**
49
51
  * Provides facilities for interacting with the internal DOM of `PaginatorComponent`.
@@ -97,6 +99,8 @@ export declare class PaginatorAdapter extends BaseAdapter<IPaginatorComponent> i
97
99
  setAlternative(alternative: boolean): void;
98
100
  setAlignment(alignment: PaginatorAlternativeAlignment): void;
99
101
  hasFocus(): boolean;
100
- handleFocusMove(from?: PaginatorFieldIdentifier, options?: FocusOptions): void;
102
+ setFocus(options?: FocusOptions): void;
103
+ getFocusedField(): PaginatorFieldIdentifier | null;
104
+ tryDisableFields(fieldsToDisable: PaginatorFieldIdentifier[]): void;
101
105
  private _tryFocus;
102
106
  }
@@ -149,66 +149,46 @@ export class PaginatorAdapter extends BaseAdapter {
149
149
  hasFocus() {
150
150
  return this._component.matches(':focus');
151
151
  }
152
- handleFocusMove(from, options) {
153
- if (from && !this.hasFocus()) {
154
- return; // We can only move focus elsewhere within the element if the element already contains focus
152
+ setFocus(options) {
153
+ this._tryFocus([
154
+ this._pageSizeSelect,
155
+ this._firstPageButton,
156
+ this._previousPageButton,
157
+ this._nextPageButton,
158
+ this._lastPageButton
159
+ ], options);
160
+ }
161
+ getFocusedField() {
162
+ if (this._pageSizeSelect.matches(':focus-within')) {
163
+ return 'page-size';
155
164
  }
156
- switch (from) {
157
- case 'first':
158
- this._tryFocus([
159
- this._nextPageButton,
160
- this._lastPageButton,
161
- this._previousPageButton,
162
- this._pageSizeSelect
163
- ], options);
164
- break;
165
- case 'last':
166
- this._tryFocus([
167
- this._previousPageButton,
168
- this._firstPageButton,
169
- this._nextPageButton,
170
- this._pageSizeSelect
171
- ], options);
172
- break;
173
- case 'previous':
174
- this._tryFocus([
175
- this._nextPageButton,
176
- this._lastPageButton,
177
- this._firstPageButton,
178
- this._pageSizeSelect
179
- ]);
180
- break;
181
- case 'next':
182
- this._tryFocus([
183
- this._previousPageButton,
184
- this._firstPageButton,
185
- this._lastPageButton,
186
- this._pageSizeSelect
187
- ], options);
188
- break;
189
- case 'page-size':
190
- this._tryFocus([
191
- this._nextPageButton,
192
- this._lastPageButton,
193
- this._firstPageButton,
194
- this._previousPageButton
195
- ], options);
196
- break;
197
- default:
198
- this._tryFocus([
199
- this._firstPageButton,
200
- this._previousPageButton,
201
- this._nextPageButton,
202
- this._lastPageButton,
203
- this._pageSizeSelect
204
- ], options);
205
- break;
165
+ else if (this._firstPageButton.matches(':focus-within')) {
166
+ return 'first';
167
+ }
168
+ else if (this._previousPageButton.matches(':focus-within')) {
169
+ return 'previous';
170
+ }
171
+ else if (this._nextPageButton.matches(':focus-within')) {
172
+ return 'next';
206
173
  }
174
+ else if (this._lastPageButton.matches(':focus-within')) {
175
+ return 'last';
176
+ }
177
+ return null;
178
+ }
179
+ tryDisableFields(fieldsToDisable) {
180
+ const fieldDisablers = {
181
+ 'first': () => this.disableFirstPageButton(),
182
+ 'last': () => this.disableLastPageButton(),
183
+ 'previous': () => this.disablePreviousPageButton(),
184
+ 'next': () => this.disableNextPageButton()
185
+ };
186
+ fieldsToDisable.forEach(field => { var _a; return (_a = fieldDisablers[field]) === null || _a === void 0 ? void 0 : _a.call(fieldDisablers); });
207
187
  }
208
188
  _tryFocus(elements, options) {
209
189
  const preventScroll = typeof (options === null || options === void 0 ? void 0 : options.preventScroll) === 'boolean' ? options.preventScroll : true;
210
190
  for (const el of elements) {
211
- if (el && el.isConnected && !el.disabled) {
191
+ if (el && el.isConnected && !el.disabled && el.style.display !== 'none') {
212
192
  el.focus(Object.assign(Object.assign({}, options), { preventScroll }));
213
193
  return;
214
194
  }
@@ -47,7 +47,7 @@ export declare const PAGINATOR_CONSTANTS: {
47
47
  ALIGNMENT: string;
48
48
  };
49
49
  events: {
50
- CHANGE: string;
50
+ readonly CHANGE: "forge-paginator-change";
51
51
  };
52
52
  numbers: {
53
53
  DEFAULT_PAGE_INDEX: number;
@@ -37,7 +37,7 @@ export class PaginatorFoundation {
37
37
  this._detachListeners();
38
38
  }
39
39
  focus(options) {
40
- this._adapter.handleFocusMove(null, options);
40
+ this._adapter.setFocus(options);
41
41
  }
42
42
  _attachListeners() {
43
43
  this._adapter.attachPageSizeChangeListener(this._pageSizeListener);
@@ -149,30 +149,20 @@ export class PaginatorFoundation {
149
149
  this._adapter.enablePreviousPageButton();
150
150
  this._adapter.enableNextPageButton();
151
151
  this._adapter.enableLastPageButton();
152
+ const fieldsToDisable = [];
152
153
  if (!this._hasFirstPage()) {
153
- if (this._adapter.hasFocus()) {
154
- this._adapter.handleFocusMove('first');
155
- }
156
- this._adapter.disableFirstPageButton();
154
+ fieldsToDisable.push('first');
157
155
  }
158
156
  if (!this._hasPreviousPage()) {
159
- if (this._adapter.hasFocus()) {
160
- this._adapter.handleFocusMove('previous');
161
- }
162
- this._adapter.disablePreviousPageButton();
157
+ fieldsToDisable.push('previous');
163
158
  }
164
159
  if (!this._hasNextPage()) {
165
- if (this._adapter.hasFocus()) {
166
- this._adapter.handleFocusMove('next');
167
- }
168
- this._adapter.disableNextPageButton();
160
+ fieldsToDisable.push('next');
169
161
  }
170
162
  if (!this._hasLastPage()) {
171
- if (this._adapter.hasFocus()) {
172
- this._adapter.handleFocusMove('last');
173
- }
174
- this._adapter.disableLastPageButton();
163
+ fieldsToDisable.push('last');
175
164
  }
165
+ this._adapter.tryDisableFields(fieldsToDisable);
176
166
  }
177
167
  _toggleFirstLastButtons() {
178
168
  this._toggleFirstButton();
@@ -33,6 +33,7 @@ export declare class RadioAdapter implements IRadioAdapter, ForgeRippleCapableSu
33
33
  private _nativeInputElement;
34
34
  private _inputAttributeMutationObserver?;
35
35
  private _rippleInstance;
36
+ private _destroyUserInteractionListener;
36
37
  constructor(_component: IRadioComponent);
37
38
  get root(): Element;
38
39
  get unbounded(): boolean | undefined;
@@ -6,7 +6,7 @@
6
6
  import { addClass, getShadowElement, removeClass, getActiveElement } from '@tylertech/forge-core';
7
7
  import { RADIO_CONSTANTS } from './radio-constants';
8
8
  import { ForgeRipple, ForgeRippleFoundation } from '../ripple';
9
- import { userInteractionListener } from '../core/utils';
9
+ import { createUserInteractionListener } from '../core/utils';
10
10
  export class RadioAdapter {
11
11
  constructor(_component) {
12
12
  this._component = _component;
@@ -30,16 +30,27 @@ export class RadioAdapter {
30
30
  }
31
31
  }
32
32
  async deferRippleInitialization() {
33
- const type = await userInteractionListener(this._rootElement);
34
- if (!this._rippleInstance) {
35
- this._rippleInstance = this._createRipple();
36
- if (type === 'focusin') {
37
- this._rippleInstance.handleFocus();
38
- }
33
+ if (typeof this._destroyUserInteractionListener === 'function') {
34
+ this._destroyUserInteractionListener();
35
+ }
36
+ const { userInteraction, destroy } = createUserInteractionListener(this._rootElement);
37
+ this._destroyUserInteractionListener = destroy;
38
+ const { type } = await userInteraction;
39
+ this._destroyUserInteractionListener = undefined;
40
+ if (!this._component.isConnected) {
41
+ return;
42
+ }
43
+ this._rippleInstance = this._createRipple();
44
+ if (type === 'focusin') {
45
+ this._rippleInstance.handleFocus();
39
46
  }
40
47
  }
41
48
  destroyRipple() {
42
49
  var _a;
50
+ if (typeof this._destroyUserInteractionListener === 'function') {
51
+ this._destroyUserInteractionListener();
52
+ this._destroyUserInteractionListener = undefined;
53
+ }
43
54
  (_a = this._rippleInstance) === null || _a === void 0 ? void 0 : _a.destroy();
44
55
  this._rippleInstance = undefined;
45
56
  }
@@ -7,6 +7,8 @@ import { MDCRipple, type MDCRippleAdapter, MDCRippleFoundation, type MDCRippleCa
7
7
  export declare class ForgeRipple extends MDCRipple {
8
8
  /** Manually trigger focus activation. */
9
9
  handleFocus(): void;
10
+ /** Manually trigger blur activation */
11
+ handleBlur(): void;
10
12
  /** Executes the ripple animation. */
11
13
  animate(): void;
12
14
  }
@@ -9,6 +9,10 @@ export class ForgeRipple extends MDCRipple {
9
9
  handleFocus() {
10
10
  this.foundation.handleFocus();
11
11
  }
12
+ /** Manually trigger blur activation */
13
+ handleBlur() {
14
+ this.foundation.handleBlur();
15
+ }
12
16
  /** Executes the ripple animation. */
13
17
  animate() {
14
18
  this.foundation.animateActivation(); // MDC does not expose this method, using `any` to access it.
@@ -40,7 +40,10 @@ export declare abstract class BaseSelectComponent<T extends IBaseSelectFoundatio
40
40
  selectedTextBuilder: SelectSelectedTextBuilder;
41
41
  /** Sets the callback to be executed when the user selects a value. */
42
42
  beforeValueChange: SelectBeforeValueChangeCallback<any>;
43
- /** Gets the popup element (when the dropdown is open). */
43
+ /**
44
+ * Gets the popup element (when the dropdown is open).
45
+ * @readonly
46
+ */
44
47
  popupElement: IPopupComponent | undefined;
45
48
  attributeChangedCallback(name: string, oldValue: string, newValue: string): void;
46
49
  appendOptions(options: ISelectOption[] | ISelectOptionGroup[]): void;
@@ -14,7 +14,7 @@ import { SplitViewPanelAdapter } from './split-view-panel-adapter';
14
14
  import { IconComponent, IconRegistry } from '../../icon';
15
15
  import { RippleComponent } from '../../ripple';
16
16
  const template = '<template><div class=\"forge-split-view-panel\" id=\"root\" part=\"root\"><div class=\"forge-split-view-panel__handle\" id=\"handle\" part=\"handle\" role=\"separator\" aria-controls=\"content\" aria-grabbed=\"false\" tabindex=\"0\"><forge-icon class=\"forge-split-view-panel__icon\" id=\"icon\" part=\"icon\"></forge-icon><forge-ripple id=\"ripple\" part=\"ripple\"></forge-ripple></div><div class=\"forge-split-view-panel__content\" id=\"content\" part=\"content\" role=\"group\"><slot></slot></div></div></template>';
17
- const styles = '@-webkit-keyframes mdc-ripple-fg-radius-in{from{-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);-webkit-transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1);transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1)}to{-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}}@keyframes mdc-ripple-fg-radius-in{from{-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);-webkit-transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1);transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1)}to{-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}}@-webkit-keyframes mdc-ripple-fg-opacity-in{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@keyframes mdc-ripple-fg-opacity-in{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@-webkit-keyframes mdc-ripple-fg-opacity-out{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}@keyframes mdc-ripple-fg-opacity-out{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}.mdc-ripple-surface{--mdc-ripple-fg-size:0;--mdc-ripple-left:0;--mdc-ripple-top:0;--mdc-ripple-fg-scale:1;--mdc-ripple-fg-translate-end:0;--mdc-ripple-fg-translate-start:0;-webkit-tap-highlight-color:transparent;will-change:transform,opacity;position:relative;outline:0;overflow:hidden}.mdc-ripple-surface::after,.mdc-ripple-surface::before{position:absolute;border-radius:50%;opacity:0;pointer-events:none;content:\"\"}.mdc-ripple-surface::before{-webkit-transition:opacity 15ms linear,background-color 15ms linear;transition:opacity 15ms linear,background-color 15ms linear;z-index:1;z-index:var(--mdc-ripple-z-index,1)}.mdc-ripple-surface::after{z-index:0;z-index:var(--mdc-ripple-z-index,0)}.mdc-ripple-surface.mdc-ripple-upgraded::before{-webkit-transform:scale(var(--mdc-ripple-fg-scale,1));transform:scale(var(--mdc-ripple-fg-scale,1))}.mdc-ripple-surface.mdc-ripple-upgraded::after{top:0;left:0;-webkit-transform:scale(0);transform:scale(0);-webkit-transform-origin:center center;transform-origin:center center}.mdc-ripple-surface.mdc-ripple-upgraded--unbounded::after{top:var(--mdc-ripple-top,0);left:var(--mdc-ripple-left,0)}.mdc-ripple-surface.mdc-ripple-upgraded--foreground-activation::after{-webkit-animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards;animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards}.mdc-ripple-surface.mdc-ripple-upgraded--foreground-deactivation::after{-webkit-animation:mdc-ripple-fg-opacity-out 150ms;animation:mdc-ripple-fg-opacity-out 150ms;-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}.mdc-ripple-surface::after,.mdc-ripple-surface::before{top:calc(50% - 100%);left:calc(50% - 100%);width:200%;height:200%}.mdc-ripple-surface.mdc-ripple-upgraded::after{width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.mdc-ripple-surface[data-mdc-ripple-is-unbounded],.mdc-ripple-upgraded--unbounded{overflow:visible}.mdc-ripple-surface[data-mdc-ripple-is-unbounded]::after,.mdc-ripple-surface[data-mdc-ripple-is-unbounded]::before,.mdc-ripple-upgraded--unbounded::after,.mdc-ripple-upgraded--unbounded::before{top:calc(50% - 50%);left:calc(50% - 50%);width:100%;height:100%}.mdc-ripple-surface[data-mdc-ripple-is-unbounded].mdc-ripple-upgraded::after,.mdc-ripple-surface[data-mdc-ripple-is-unbounded].mdc-ripple-upgraded::before,.mdc-ripple-upgraded--unbounded.mdc-ripple-upgraded::after,.mdc-ripple-upgraded--unbounded.mdc-ripple-upgraded::before{top:var(--mdc-ripple-top,calc(50% - 50%));left:var(--mdc-ripple-left,calc(50% - 50%));width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.mdc-ripple-surface[data-mdc-ripple-is-unbounded].mdc-ripple-upgraded::after,.mdc-ripple-upgraded--unbounded.mdc-ripple-upgraded::after{width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.mdc-ripple-surface::after,.mdc-ripple-surface::before{background-color:#000;background-color:var(--mdc-ripple-color,#000)}.mdc-ripple-surface.mdc-ripple-surface--hover::before,.mdc-ripple-surface:hover::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.mdc-ripple-surface.mdc-ripple-upgraded--background-focused::before,.mdc-ripple-surface:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.mdc-ripple-surface:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.mdc-ripple-surface:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.mdc-ripple-surface.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}.mdc-ripple-surface::after,.mdc-ripple-surface::before{--mdc-ripple-color:var(--mdc-theme-on-surface)}.forge-split-view-panel{display:-webkit-box;display:flex;width:100%;height:100%;overflow:hidden;contain:paint size}.forge-split-view-panel__handle{color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-light,rgba(0,0,0,.54));background-color:#e0e0e0;background-color:var(--forge-theme-border-color,#e0e0e0);display:-webkit-box;display:flex;flex-shrink:0;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center;outline:0}.forge-split-view-panel__content{-webkit-box-flex:1;flex:1;overflow:hidden}.forge-split-view-panel--closed{display:none}.forge-split-view-panel--disabled #handle{pointer-events:none}.forge-split-view-panel--disabled .forge-split-view-panel__icon{display:none}.forge-split-view-panel[orientation=horizontal]{min-width:8px;min-width:var(--forge-split-view-handle-width,8px);width:calc(var(--forge-split-view-panel-size,unset) + var(--forge-split-view-handle-width,8px));-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.forge-split-view-panel[orientation=horizontal] .forge-split-view-panel__handle{width:8px;width:var(--forge-split-view-handle-width,8px);cursor:var(--forge-split-view-panel-cursor)}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--closing[resizable=end]{position:absolute;top:0;left:0;-webkit-animation-name:uq55a45;animation-name:uq55a45;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1)}@-webkit-keyframes uq55a45{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateX(-100%);transform:translateX(-100%)}}@keyframes uq55a45{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateX(-100%);transform:translateX(-100%)}}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--closing[resizable=start]{position:absolute;top:0;right:0;-webkit-animation-name:uq55a4w;animation-name:uq55a4w;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1)}@-webkit-keyframes uq55a4w{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes uq55a4w{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateX(100%);transform:translateX(100%)}}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--opening[resizable=end]{position:absolute;top:0;left:0;-webkit-animation-name:uq55a5c;animation-name:uq55a5c;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-direction:reverse}@-webkit-keyframes uq55a5c{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateX(-100%);transform:translateX(-100%)}}@keyframes uq55a5c{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateX(-100%);transform:translateX(-100%)}}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--opening[resizable=start]{position:absolute;top:0;right:0;-webkit-animation-name:uq55a66;animation-name:uq55a66;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-direction:reverse}@-webkit-keyframes uq55a66{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes uq55a66{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateX(100%);transform:translateX(100%)}}.forge-split-view-panel[orientation=vertical]{min-height:8px;min-height:var(--forge-split-view-handle-width,8px);height:calc(var(--forge-split-view-panel-size,unset) + var(--forge-split-view-handle-width,8px));-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column}.forge-split-view-panel[orientation=vertical] .forge-split-view-panel__handle{height:8px;height:var(--forge-split-view-handle-width,8px);cursor:var(--forge-split-view-panel-cursor)}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--closing[resizable=end]{position:absolute;top:0;left:0;-webkit-animation-name:uq55a67;animation-name:uq55a67;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1)}@-webkit-keyframes uq55a67{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateY(-100%);transform:translateY(-100%)}}@keyframes uq55a67{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateY(-100%);transform:translateY(-100%)}}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--closing[resizable=start]{position:absolute;bottom:0;left:0;-webkit-animation-name:uq55a6q;animation-name:uq55a6q;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1)}@-webkit-keyframes uq55a6q{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateY(100%);transform:translateY(100%)}}@keyframes uq55a6q{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateY(100%);transform:translateY(100%)}}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--opening[resizable=end]{position:absolute;top:0;left:0;-webkit-animation-name:uq55a7i;animation-name:uq55a7i;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-direction:reverse}@-webkit-keyframes uq55a7i{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateY(-100%);transform:translateY(-100%)}}@keyframes uq55a7i{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateY(-100%);transform:translateY(-100%)}}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--opening[resizable=start]{position:absolute;bottom:0;left:0;-webkit-animation-name:uq55a7s;animation-name:uq55a7s;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-direction:reverse}@-webkit-keyframes uq55a7s{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateY(100%);transform:translateY(100%)}}@keyframes uq55a7s{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateY(100%);transform:translateY(100%)}}:host{z-index:var(--forge-split-view-animating-layer)!important;display:block;position:relative;height:100%;width:100%;-webkit-box-flex:0;flex:0}:host([hidden]){display:none}:host(:not([resizable=start],[resizable=end])){-webkit-box-flex:1;flex:1}:host(:not([resizable=start],[resizable=end])) .forge-split-view-panel{width:100%;height:100%;min-width:0;min-height:0}:host(:not([resizable=start],[resizable=end])) .forge-split-view-panel__handle{display:none}';
17
+ const styles = '@-webkit-keyframes mdc-ripple-fg-radius-in{from{-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);-webkit-transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1);transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1)}to{-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}}@keyframes mdc-ripple-fg-radius-in{from{-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);-webkit-transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1);transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1)}to{-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}}@-webkit-keyframes mdc-ripple-fg-opacity-in{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@keyframes mdc-ripple-fg-opacity-in{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@-webkit-keyframes mdc-ripple-fg-opacity-out{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}@keyframes mdc-ripple-fg-opacity-out{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}.mdc-ripple-surface{--mdc-ripple-fg-size:0;--mdc-ripple-left:0;--mdc-ripple-top:0;--mdc-ripple-fg-scale:1;--mdc-ripple-fg-translate-end:0;--mdc-ripple-fg-translate-start:0;-webkit-tap-highlight-color:transparent;will-change:transform,opacity;position:relative;outline:0;overflow:hidden}.mdc-ripple-surface::after,.mdc-ripple-surface::before{position:absolute;border-radius:50%;opacity:0;pointer-events:none;content:\"\"}.mdc-ripple-surface::before{-webkit-transition:opacity 15ms linear,background-color 15ms linear;transition:opacity 15ms linear,background-color 15ms linear;z-index:1;z-index:var(--mdc-ripple-z-index,1)}.mdc-ripple-surface::after{z-index:0;z-index:var(--mdc-ripple-z-index,0)}.mdc-ripple-surface.mdc-ripple-upgraded::before{-webkit-transform:scale(var(--mdc-ripple-fg-scale,1));transform:scale(var(--mdc-ripple-fg-scale,1))}.mdc-ripple-surface.mdc-ripple-upgraded::after{top:0;left:0;-webkit-transform:scale(0);transform:scale(0);-webkit-transform-origin:center center;transform-origin:center center}.mdc-ripple-surface.mdc-ripple-upgraded--unbounded::after{top:var(--mdc-ripple-top,0);left:var(--mdc-ripple-left,0)}.mdc-ripple-surface.mdc-ripple-upgraded--foreground-activation::after{-webkit-animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards;animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards}.mdc-ripple-surface.mdc-ripple-upgraded--foreground-deactivation::after{-webkit-animation:mdc-ripple-fg-opacity-out 150ms;animation:mdc-ripple-fg-opacity-out 150ms;-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}.mdc-ripple-surface::after,.mdc-ripple-surface::before{top:calc(50% - 100%);left:calc(50% - 100%);width:200%;height:200%}.mdc-ripple-surface.mdc-ripple-upgraded::after{width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.mdc-ripple-surface[data-mdc-ripple-is-unbounded],.mdc-ripple-upgraded--unbounded{overflow:visible}.mdc-ripple-surface[data-mdc-ripple-is-unbounded]::after,.mdc-ripple-surface[data-mdc-ripple-is-unbounded]::before,.mdc-ripple-upgraded--unbounded::after,.mdc-ripple-upgraded--unbounded::before{top:calc(50% - 50%);left:calc(50% - 50%);width:100%;height:100%}.mdc-ripple-surface[data-mdc-ripple-is-unbounded].mdc-ripple-upgraded::after,.mdc-ripple-surface[data-mdc-ripple-is-unbounded].mdc-ripple-upgraded::before,.mdc-ripple-upgraded--unbounded.mdc-ripple-upgraded::after,.mdc-ripple-upgraded--unbounded.mdc-ripple-upgraded::before{top:var(--mdc-ripple-top,calc(50% - 50%));left:var(--mdc-ripple-left,calc(50% - 50%));width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.mdc-ripple-surface[data-mdc-ripple-is-unbounded].mdc-ripple-upgraded::after,.mdc-ripple-upgraded--unbounded.mdc-ripple-upgraded::after{width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.mdc-ripple-surface::after,.mdc-ripple-surface::before{background-color:#000;background-color:var(--mdc-ripple-color,#000)}.mdc-ripple-surface.mdc-ripple-surface--hover::before,.mdc-ripple-surface:hover::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.mdc-ripple-surface.mdc-ripple-upgraded--background-focused::before,.mdc-ripple-surface:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.mdc-ripple-surface:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.mdc-ripple-surface:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.mdc-ripple-surface.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}.mdc-ripple-surface::after,.mdc-ripple-surface::before{--mdc-ripple-color:var(--mdc-theme-on-surface)}.forge-split-view-panel{display:-webkit-box;display:flex;width:100%;height:100%;overflow:hidden;contain:paint size}.forge-split-view-panel__handle{color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-light,rgba(0,0,0,.54));background-color:#e0e0e0;background-color:var(--forge-theme-border-color,#e0e0e0);display:-webkit-box;display:flex;flex-shrink:0;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center;outline:0}.forge-split-view-panel__content{-webkit-box-flex:1;flex:1;overflow:hidden}.forge-split-view-panel--closed{display:none}.forge-split-view-panel--disabled #handle{pointer-events:none}.forge-split-view-panel--disabled .forge-split-view-panel__icon{display:none}.forge-split-view-panel[orientation=horizontal]{min-width:8px;min-width:var(--forge-split-view-handle-width,8px);width:calc(var(--forge-split-view-panel-size,unset) + var(--forge-split-view-handle-width,8px));-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row}.forge-split-view-panel[orientation=horizontal] .forge-split-view-panel__handle{width:8px;width:var(--forge-split-view-handle-width,8px);cursor:var(--forge-split-view-panel-cursor)}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--closing[resizable=end]{position:absolute;top:0;left:0;-webkit-animation-name:u7xut8q;animation-name:u7xut8q;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1)}@-webkit-keyframes u7xut8q{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateX(-100%);transform:translateX(-100%)}}@keyframes u7xut8q{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateX(-100%);transform:translateX(-100%)}}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--closing[resizable=start]{position:absolute;top:0;right:0;-webkit-animation-name:u7xut8x;animation-name:u7xut8x;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1)}@-webkit-keyframes u7xut8x{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes u7xut8x{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateX(100%);transform:translateX(100%)}}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--opening[resizable=end]{position:absolute;top:0;left:0;-webkit-animation-name:u7xut9f;animation-name:u7xut9f;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-direction:reverse}@-webkit-keyframes u7xut9f{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateX(-100%);transform:translateX(-100%)}}@keyframes u7xut9f{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateX(-100%);transform:translateX(-100%)}}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--opening[resizable=start]{position:absolute;top:0;right:0;-webkit-animation-name:u7xutaa;animation-name:u7xutaa;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-direction:reverse}@-webkit-keyframes u7xutaa{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateX(100%);transform:translateX(100%)}}@keyframes u7xutaa{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateX(100%);transform:translateX(100%)}}.forge-split-view-panel[orientation=vertical]{min-height:8px;min-height:var(--forge-split-view-handle-width,8px);height:calc(var(--forge-split-view-panel-size,unset) + var(--forge-split-view-handle-width,8px));-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column}.forge-split-view-panel[orientation=vertical] .forge-split-view-panel__handle{height:8px;height:var(--forge-split-view-handle-width,8px);cursor:var(--forge-split-view-panel-cursor)}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--closing[resizable=end]{position:absolute;top:0;left:0;-webkit-animation-name:u7xutav;animation-name:u7xutav;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1)}@-webkit-keyframes u7xutav{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateY(-100%);transform:translateY(-100%)}}@keyframes u7xutav{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateY(-100%);transform:translateY(-100%)}}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--closing[resizable=start]{position:absolute;bottom:0;left:0;-webkit-animation-name:u7xutbo;animation-name:u7xutbo;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1)}@-webkit-keyframes u7xutbo{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateY(100%);transform:translateY(100%)}}@keyframes u7xutbo{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateY(100%);transform:translateY(100%)}}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--opening[resizable=end]{position:absolute;top:0;left:0;-webkit-animation-name:u7xutbu;animation-name:u7xutbu;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-direction:reverse}@-webkit-keyframes u7xutbu{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateY(-100%);transform:translateY(-100%)}}@keyframes u7xutbu{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateY(-100%);transform:translateY(-100%)}}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--opening[resizable=start]{position:absolute;bottom:0;left:0;-webkit-animation-name:u7xutcm;animation-name:u7xutcm;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-direction:reverse}@-webkit-keyframes u7xutcm{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateY(100%);transform:translateY(100%)}}@keyframes u7xutcm{from{-webkit-transform:none;transform:none}to{-webkit-transform:translateY(100%);transform:translateY(100%)}}:host{z-index:var(--forge-split-view-animating-layer)!important;display:block;position:relative;height:100%;width:100%;-webkit-box-flex:0;flex:0}:host([hidden]){display:none}:host(:not([resizable=start],[resizable=end])){-webkit-box-flex:1;flex:1}:host(:not([resizable=start],[resizable=end])) .forge-split-view-panel{width:100%;height:100%;min-width:0;min-height:0}:host(:not([resizable=start],[resizable=end])) .forge-split-view-panel__handle{display:none}';
18
18
  /**
19
19
  * The custom element class behind the `<forge-split-view-panel>` element.
20
20
  *