@tylertech/forge 2.13.1 → 2.14.0-dev.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1631) hide show
  1. package/README.md +14 -3
  2. package/custom-elements.json +1167 -234
  3. package/dist/busy-indicator/forge-busy-indicator.css +1 -1
  4. package/dist/button/forge-button.css +1 -1
  5. package/dist/dialog/forge-dialog-utils.css +1 -1
  6. package/dist/dialog/forge-dialog.css +1 -1
  7. package/dist/esm/accordion/index.js +2 -2
  8. package/dist/esm/app-bar/help-button/index.js +2 -2
  9. package/dist/esm/app-bar/index.js +2 -2
  10. package/dist/esm/app-bar/menu-button/index.js +2 -2
  11. package/dist/esm/app-bar/notification-button/index.js +2 -2
  12. package/dist/esm/app-bar/profile-button/index.js +2 -2
  13. package/dist/esm/app-bar/search/index.js +2 -2
  14. package/dist/esm/autocomplete/index.js +2 -2
  15. package/dist/esm/avatar/index.js +2 -2
  16. package/dist/esm/backdrop/index.js +2 -2
  17. package/dist/esm/badge/index.js +2 -2
  18. package/dist/esm/banner/index.js +2 -2
  19. package/dist/esm/bottom-sheet/index.js +2 -2
  20. package/dist/esm/busy-indicator/index.js +2 -2
  21. package/dist/esm/button/index.js +2 -2
  22. package/dist/esm/button-toggle/button-toggle/index.js +2 -2
  23. package/dist/esm/button-toggle/button-toggle-group/index.js +2 -2
  24. package/dist/esm/button-toggle/index.js +2 -2
  25. package/dist/esm/calendar/calendar-dropdown/index.js +2 -2
  26. package/dist/esm/calendar/calendar-menu/index.js +2 -2
  27. package/dist/esm/calendar/core/index.js +1 -1
  28. package/dist/esm/calendar/index.js +2 -2
  29. package/dist/esm/card/index.js +2 -2
  30. package/dist/esm/checkbox/index.js +2 -2
  31. package/dist/esm/chip-field/index.js +2 -2
  32. package/dist/esm/chips/chip/index.js +2 -2
  33. package/dist/esm/chips/chip-set/index.js +2 -2
  34. package/dist/esm/chips/index.js +2 -2
  35. package/dist/esm/chunks/chunk.24D46RLZ.js +1 -1
  36. package/dist/esm/chunks/chunk.24X566SZ.js +7 -0
  37. package/dist/esm/chunks/chunk.24X566SZ.js.map +7 -0
  38. package/dist/esm/chunks/chunk.2CEW64ZM.js +7 -0
  39. package/dist/esm/chunks/{chunk.MNBJMPJ6.js.map → chunk.2CEW64ZM.js.map} +2 -2
  40. package/dist/esm/chunks/chunk.2D4IBAWP.js +7 -0
  41. package/dist/esm/chunks/{chunk.TLHI6K2R.js.map → chunk.2D4IBAWP.js.map} +2 -2
  42. package/dist/esm/chunks/chunk.2GY2VPJG.js +1 -1
  43. package/dist/esm/chunks/chunk.2LHBE2QZ.js +7 -0
  44. package/dist/esm/chunks/{chunk.YHHIPP2F.js.map → chunk.2LHBE2QZ.js.map} +1 -1
  45. package/dist/esm/chunks/chunk.323FEQVK.js +7 -0
  46. package/dist/esm/chunks/chunk.323FEQVK.js.map +7 -0
  47. package/dist/esm/chunks/chunk.3G237L6C.js +7 -0
  48. package/dist/esm/chunks/{chunk.G77PXLAU.js.map → chunk.3G237L6C.js.map} +2 -2
  49. package/dist/esm/chunks/chunk.3L7T5WYL.js +7 -0
  50. package/dist/esm/chunks/{chunk.BCUBTR5O.js.map → chunk.3L7T5WYL.js.map} +1 -1
  51. package/dist/esm/chunks/chunk.3UB364WW.js +7 -0
  52. package/dist/esm/chunks/chunk.3UB364WW.js.map +7 -0
  53. package/dist/esm/chunks/chunk.4YH3GB4D.js +12 -0
  54. package/dist/esm/chunks/{chunk.O4Y6QT46.js.map → chunk.4YH3GB4D.js.map} +1 -1
  55. package/dist/esm/chunks/chunk.54RF4ZT6.js +7 -0
  56. package/dist/esm/chunks/chunk.54RF4ZT6.js.map +7 -0
  57. package/dist/esm/chunks/chunk.55BOUOT6.js +7 -0
  58. package/dist/esm/chunks/{chunk.QJPH24V4.js.map → chunk.55BOUOT6.js.map} +2 -2
  59. package/dist/esm/chunks/chunk.5DKXUTFN.js +7 -0
  60. package/dist/esm/chunks/{chunk.75LTLEZ7.js.map → chunk.5DKXUTFN.js.map} +2 -2
  61. package/dist/esm/chunks/chunk.5EQPGUZH.js +7 -0
  62. package/dist/esm/chunks/{chunk.MGTNCCW3.js.map → chunk.5EQPGUZH.js.map} +1 -1
  63. package/dist/esm/chunks/{chunk.A23NSEWA.js → chunk.5PXABBKU.js} +3 -3
  64. package/dist/esm/chunks/chunk.5W5IPKAU.js +7 -0
  65. package/dist/esm/chunks/{chunk.APGFXXJ7.js.map → chunk.5W5IPKAU.js.map} +1 -1
  66. package/dist/esm/chunks/{chunk.J3NHIF6W.js → chunk.65G33MJV.js} +3 -3
  67. package/dist/esm/chunks/chunk.6KTLOA7V.js +1 -1
  68. package/dist/esm/chunks/chunk.6NBVXSNZ.js +7 -0
  69. package/dist/esm/chunks/{chunk.D3LMXSX6.js.map → chunk.6NBVXSNZ.js.map} +2 -2
  70. package/dist/esm/chunks/chunk.73O3BMP2.js +7 -0
  71. package/dist/esm/chunks/{chunk.4KBQ5AJJ.js.map → chunk.73O3BMP2.js.map} +2 -2
  72. package/dist/esm/chunks/{chunk.6QMDYUVT.js → chunk.7LBAA7TC.js} +3 -3
  73. package/dist/esm/chunks/{chunk.6QMDYUVT.js.map → chunk.7LBAA7TC.js.map} +2 -2
  74. package/dist/esm/chunks/chunk.AGEBZY4S.js +7 -0
  75. package/dist/esm/chunks/chunk.AGEBZY4S.js.map +7 -0
  76. package/dist/esm/chunks/chunk.AJJILT3A.js +1 -1
  77. package/dist/esm/chunks/chunk.AMFXGOSA.js +1 -1
  78. package/dist/esm/chunks/chunk.AWCBH5KW.js +1 -1
  79. package/dist/esm/chunks/chunk.B3IJU6XJ.js +1 -1
  80. package/dist/esm/chunks/chunk.B5HGV5EZ.js +7 -0
  81. package/dist/esm/chunks/chunk.B5HGV5EZ.js.map +7 -0
  82. package/dist/esm/chunks/chunk.BMFJLHDR.js +7 -0
  83. package/dist/esm/chunks/{chunk.54QFNVMG.js.map → chunk.BMFJLHDR.js.map} +1 -1
  84. package/dist/esm/chunks/chunk.C557PTJ5.js +7 -0
  85. package/dist/esm/chunks/chunk.C557PTJ5.js.map +7 -0
  86. package/dist/esm/chunks/chunk.CKS5A4YN.js +1 -1
  87. package/dist/esm/chunks/chunk.CN7DHS4J.js +7 -0
  88. package/dist/esm/chunks/chunk.CUT7V2KN.js +7 -0
  89. package/dist/esm/chunks/chunk.CUT7V2KN.js.map +7 -0
  90. package/dist/esm/chunks/chunk.CZIQTYFJ.js +7 -0
  91. package/dist/esm/chunks/chunk.CZIQTYFJ.js.map +7 -0
  92. package/dist/esm/chunks/chunk.D4SNVKDA.js +1 -1
  93. package/dist/esm/chunks/chunk.DRI2NLIB.js +7 -0
  94. package/dist/esm/chunks/chunk.DRXMITOO.js +29 -0
  95. package/dist/esm/chunks/{chunk.K753A3KI.js.map → chunk.DRXMITOO.js.map} +2 -2
  96. package/dist/esm/chunks/chunk.E37HEAJ5.js +1 -1
  97. package/dist/esm/chunks/chunk.E43TT4RI.js +1 -1
  98. package/dist/esm/chunks/chunk.E4NCI7MS.js +1 -1
  99. package/dist/esm/chunks/chunk.EC6JSIQW.js +1 -1
  100. package/dist/esm/chunks/chunk.EE2LK23T.js +7 -0
  101. package/dist/esm/chunks/chunk.EE2LK23T.js.map +7 -0
  102. package/dist/esm/chunks/chunk.EXKBJEFL.js +7 -0
  103. package/dist/esm/chunks/chunk.EXKBJEFL.js.map +7 -0
  104. package/dist/esm/chunks/chunk.F5I55MXD.js +1 -1
  105. package/dist/esm/chunks/chunk.FBERE7AL.js +7 -0
  106. package/dist/esm/chunks/{chunk.OG2BI3UW.js.map → chunk.FBERE7AL.js.map} +2 -2
  107. package/dist/esm/chunks/{chunk.URBXDOF7.js → chunk.FL6SJHQU.js} +3 -3
  108. package/dist/esm/chunks/{chunk.6VYFW76H.js → chunk.FQEETXUQ.js} +3 -3
  109. package/dist/esm/chunks/{chunk.6VYFW76H.js.map → chunk.FQEETXUQ.js.map} +2 -2
  110. package/dist/esm/chunks/chunk.FZQCBRPK.js +1 -1
  111. package/dist/esm/chunks/chunk.G5JTL66M.js +7 -0
  112. package/dist/esm/chunks/{chunk.WNOSTPQQ.js.map → chunk.G5JTL66M.js.map} +2 -2
  113. package/dist/esm/chunks/chunk.G76HB2FK.js +1 -1
  114. package/dist/esm/chunks/chunk.GVQVA7P3.js +1 -1
  115. package/dist/esm/chunks/chunk.GVZEMIA3.js +7 -0
  116. package/dist/esm/chunks/chunk.GVZEMIA3.js.map +7 -0
  117. package/dist/esm/chunks/chunk.GXUYYBVO.js +29 -0
  118. package/dist/esm/chunks/{chunk.T7ZJDAXV.js.map → chunk.GXUYYBVO.js.map} +1 -1
  119. package/dist/esm/chunks/chunk.GZEWDHFJ.js +7 -0
  120. package/dist/esm/chunks/{chunk.DPCNIOLL.js.map → chunk.GZEWDHFJ.js.map} +2 -2
  121. package/dist/esm/chunks/chunk.HQJZRTOH.js +7 -0
  122. package/dist/esm/chunks/chunk.HQJZRTOH.js.map +7 -0
  123. package/dist/esm/chunks/chunk.HUX56BCR.js +7 -0
  124. package/dist/esm/chunks/{chunk.73G2CH2D.js.map → chunk.HUX56BCR.js.map} +2 -2
  125. package/dist/esm/chunks/{chunk.6APYGKNX.js → chunk.HWVLZ44Q.js} +3 -3
  126. package/dist/esm/chunks/chunk.HYMB3XDK.js +9 -0
  127. package/dist/esm/chunks/chunk.HYMB3XDK.js.map +7 -0
  128. package/dist/esm/chunks/{chunk.IMK2LFWR.js → chunk.IARIRFXO.js} +3 -3
  129. package/dist/esm/chunks/chunk.IARIRFXO.js.map +7 -0
  130. package/dist/esm/chunks/chunk.K5WLIDQK.js +7 -0
  131. package/dist/esm/chunks/chunk.K5WLIDQK.js.map +7 -0
  132. package/dist/esm/chunks/chunk.KBMLP7UT.js +7 -0
  133. package/dist/esm/chunks/{chunk.OUEF6VQ6.js.map → chunk.KBMLP7UT.js.map} +2 -2
  134. package/dist/esm/chunks/chunk.L54GENPD.js +7 -0
  135. package/dist/esm/chunks/{chunk.5WMEFHVN.js.map → chunk.L54GENPD.js.map} +1 -1
  136. package/dist/esm/chunks/chunk.LGECRZFO.js +7 -0
  137. package/dist/esm/chunks/chunk.LGECRZFO.js.map +7 -0
  138. package/dist/esm/chunks/{chunk.DGDT4UQT.js → chunk.LGEYSCS2.js} +3 -3
  139. package/dist/esm/chunks/{chunk.DGDT4UQT.js.map → chunk.LGEYSCS2.js.map} +2 -2
  140. package/dist/esm/chunks/{chunk.QOZLQPKE.js → chunk.LYAS4FAN.js} +3 -3
  141. package/dist/esm/chunks/{chunk.QOZLQPKE.js.map → chunk.LYAS4FAN.js.map} +2 -2
  142. package/dist/esm/chunks/chunk.LZHDRATV.js +7 -0
  143. package/dist/esm/chunks/{chunk.IJIKFXUT.js.map → chunk.LZHDRATV.js.map} +2 -2
  144. package/dist/esm/chunks/chunk.LZMYHIO2.js +1 -1
  145. package/dist/esm/chunks/chunk.MCIQXNKY.js +1 -1
  146. package/dist/esm/chunks/chunk.MHEJZJT3.js +1 -1
  147. package/dist/esm/chunks/chunk.MIYZJUXH.js +1 -1
  148. package/dist/esm/chunks/chunk.MMVZJLXE.js +7 -0
  149. package/dist/esm/chunks/{chunk.HN4PXH3D.js.map → chunk.MMVZJLXE.js.map} +3 -3
  150. package/dist/esm/chunks/chunk.MNFGVNDI.js +1 -1
  151. package/dist/esm/chunks/{chunk.VLTJFKGZ.js → chunk.MNPORZ4F.js} +3 -3
  152. package/dist/esm/chunks/{chunk.HSJQA42U.js.map → chunk.MU4FV57Q.js} +7 -7
  153. package/dist/esm/chunks/chunk.MU4FV57Q.js.map +7 -0
  154. package/dist/esm/chunks/chunk.MWD47ZZU.js +7 -0
  155. package/dist/esm/chunks/{chunk.CV5E5W6I.js.map → chunk.MWD47ZZU.js.map} +2 -2
  156. package/dist/esm/chunks/chunk.MYNPY3AQ.js +7 -0
  157. package/dist/esm/chunks/{chunk.VMWS5OOZ.js.map → chunk.MYNPY3AQ.js.map} +1 -1
  158. package/dist/esm/chunks/chunk.N6QJ2RRG.js +7 -0
  159. package/dist/esm/chunks/chunk.N6QJ2RRG.js.map +7 -0
  160. package/dist/esm/chunks/chunk.NG5EGZ5Y.js +7 -0
  161. package/dist/esm/chunks/chunk.NXS7A7PO.js +7 -0
  162. package/dist/esm/chunks/chunk.NXS7A7PO.js.map +7 -0
  163. package/dist/esm/chunks/{chunk.SHT6BCLY.js → chunk.NYMNX3S7.js} +3 -3
  164. package/dist/esm/chunks/chunk.NZTGBDRK.js +7 -0
  165. package/dist/esm/chunks/{chunk.7O7V3N4A.js.map → chunk.NZTGBDRK.js.map} +2 -2
  166. package/dist/esm/chunks/chunk.O4LGKJY6.js +7 -0
  167. package/dist/esm/chunks/{chunk.P6B3UWJ5.js.map → chunk.O4LGKJY6.js.map} +2 -2
  168. package/dist/esm/chunks/{chunk.NLZKJ53B.js → chunk.OGZOXNGT.js} +3 -3
  169. package/dist/esm/chunks/chunk.OKIRZEUG.js +7 -0
  170. package/dist/esm/chunks/chunk.OKIRZEUG.js.map +7 -0
  171. package/dist/esm/chunks/{chunk.BSZ2LBJX.js → chunk.OOW3UKT4.js} +3 -3
  172. package/dist/esm/chunks/chunk.ORF746AF.js +7 -0
  173. package/dist/esm/chunks/{chunk.RPPBBBYG.js.map → chunk.ORF746AF.js.map} +2 -2
  174. package/dist/esm/chunks/chunk.OTI6WL66.js +7 -0
  175. package/dist/esm/chunks/{chunk.FPV4XEUK.js.map → chunk.OTI6WL66.js.map} +2 -2
  176. package/dist/esm/chunks/chunk.P45HS252.js +7 -0
  177. package/dist/esm/chunks/chunk.P45HS252.js.map +7 -0
  178. package/dist/esm/chunks/chunk.P5GT5YBP.js +29 -0
  179. package/dist/esm/chunks/{chunk.OOBE3XRM.js.map → chunk.P5GT5YBP.js.map} +2 -2
  180. package/dist/esm/chunks/chunk.P6IF3USM.js +7 -0
  181. package/dist/esm/chunks/chunk.P6IF3USM.js.map +7 -0
  182. package/dist/esm/chunks/chunk.PBL2N45I.js +7 -0
  183. package/dist/esm/chunks/chunk.PBL2N45I.js.map +7 -0
  184. package/dist/esm/chunks/chunk.PHJPLWFH.js +7 -0
  185. package/dist/esm/chunks/{chunk.5K5SIZRX.js.map → chunk.PHJPLWFH.js.map} +2 -2
  186. package/dist/esm/chunks/chunk.PRO76W5D.js +7 -0
  187. package/dist/esm/chunks/{chunk.LLHA3SQR.js.map → chunk.PRO76W5D.js.map} +2 -2
  188. package/dist/esm/chunks/chunk.PV5MABYN.js +7 -0
  189. package/dist/esm/chunks/chunk.PV5MABYN.js.map +7 -0
  190. package/dist/esm/chunks/chunk.PYG4YVBA.js +1 -1
  191. package/dist/esm/chunks/chunk.QQDDGRY6.js +1 -1
  192. package/dist/esm/chunks/chunk.QZHEP4X2.js +1 -1
  193. package/dist/esm/chunks/chunk.R2L3S3YD.js +7 -0
  194. package/dist/esm/chunks/chunk.R2L3S3YD.js.map +7 -0
  195. package/dist/esm/chunks/chunk.R4NDFXVA.js +1 -1
  196. package/dist/esm/chunks/chunk.R4NZYUID.js +7 -0
  197. package/dist/esm/chunks/{chunk.2SAHWDGJ.js.map → chunk.R4NZYUID.js.map} +2 -2
  198. package/dist/esm/chunks/chunk.RH2NL523.js +7 -0
  199. package/dist/esm/chunks/chunk.RH2NL523.js.map +7 -0
  200. package/dist/esm/chunks/chunk.ROF42KJ3.js +7 -0
  201. package/dist/esm/chunks/{chunk.IFZXG3LI.js.map → chunk.ROF42KJ3.js.map} +2 -2
  202. package/dist/esm/chunks/chunk.RT4C67NK.js +29 -0
  203. package/dist/esm/chunks/{chunk.YWKKZLZ2.js.map → chunk.RT4C67NK.js.map} +2 -2
  204. package/dist/esm/chunks/chunk.S76NW5JY.js +7 -0
  205. package/dist/esm/chunks/{chunk.EJ4ASQET.js.map → chunk.S76NW5JY.js.map} +2 -2
  206. package/dist/esm/chunks/chunk.SKLCDWYQ.js +1 -1
  207. package/dist/esm/chunks/chunk.STS5TIUV.js +1 -1
  208. package/dist/esm/chunks/chunk.SVGEVCXA.js +1 -1
  209. package/dist/esm/chunks/chunk.T2M2KVP7.js +29 -0
  210. package/dist/esm/chunks/chunk.T2M2KVP7.js.map +7 -0
  211. package/dist/esm/chunks/chunk.TCAOLSLI.js +7 -0
  212. package/dist/esm/chunks/{chunk.35U4OX7S.js.map → chunk.TCAOLSLI.js.map} +2 -2
  213. package/dist/esm/chunks/chunk.TLCGGWBO.js +1 -1
  214. package/dist/esm/chunks/chunk.TMJBIAWC.js +7 -0
  215. package/dist/esm/chunks/chunk.TMJBIAWC.js.map +7 -0
  216. package/dist/esm/chunks/chunk.U6FJJGO3.js +1 -1
  217. package/dist/esm/chunks/chunk.UPFJ3PVE.js +29 -0
  218. package/dist/esm/chunks/{chunk.XYBFFTXS.js.map → chunk.UPFJ3PVE.js.map} +2 -2
  219. package/dist/esm/chunks/chunk.UUX4QJ4D.js +1 -1
  220. package/dist/esm/chunks/chunk.V55E5JD5.js +7 -0
  221. package/dist/esm/chunks/{chunk.444GNOS4.js.map → chunk.V55E5JD5.js.map} +2 -2
  222. package/dist/esm/chunks/chunk.VHKQHMK3.js +7 -0
  223. package/dist/esm/chunks/{chunk.33Q5FK2H.js.map → chunk.VHKQHMK3.js.map} +2 -2
  224. package/dist/esm/chunks/chunk.WF2MFLG4.js +1 -1
  225. package/dist/esm/chunks/chunk.WINL2C7Q.js +1 -1
  226. package/dist/esm/chunks/chunk.X2RP4QW3.js +1 -1
  227. package/dist/esm/chunks/chunk.XC76IHG4.js +7 -0
  228. package/dist/esm/chunks/{chunk.I2YRKTG7.js.map → chunk.XC76IHG4.js.map} +2 -2
  229. package/dist/esm/chunks/chunk.XCUYZZV4.js +7 -0
  230. package/dist/esm/chunks/chunk.XCUYZZV4.js.map +7 -0
  231. package/dist/esm/chunks/chunk.XMI5RBZQ.js +7 -0
  232. package/dist/esm/chunks/chunk.XMI5RBZQ.js.map +7 -0
  233. package/dist/esm/chunks/chunk.XY4N4TSH.js +7 -0
  234. package/dist/esm/chunks/chunk.XY4N4TSH.js.map +7 -0
  235. package/dist/esm/chunks/chunk.Y6FFG7XO.js +1 -1
  236. package/dist/esm/chunks/chunk.YKXCORJE.js +7 -0
  237. package/dist/esm/chunks/{chunk.AVIF5W7A.js.map → chunk.YKXCORJE.js.map} +2 -2
  238. package/dist/esm/chunks/{chunk.4T5TGQFG.js → chunk.YPMN5U7C.js} +3 -3
  239. package/dist/esm/chunks/chunk.YW47QJVY.js +7 -0
  240. package/dist/esm/chunks/{chunk.PFD2SVJ4.js.map → chunk.YW47QJVY.js.map} +2 -2
  241. package/dist/esm/chunks/chunk.Z6S62LZJ.js +7 -0
  242. package/dist/esm/chunks/chunk.Z6S62LZJ.js.map +7 -0
  243. package/dist/esm/chunks/chunk.ZAKLVVFO.js +7 -0
  244. package/dist/esm/chunks/{chunk.YAJT3P6V.js.map → chunk.ZAKLVVFO.js.map} +2 -2
  245. package/dist/esm/chunks/chunk.ZFD3OE45.js +7 -0
  246. package/dist/esm/chunks/{chunk.DIYJJHWP.js.map → chunk.ZFD3OE45.js.map} +1 -1
  247. package/dist/esm/chunks/chunk.ZMXKZJRM.js +7 -0
  248. package/dist/esm/chunks/{chunk.5XQVZQ4U.js.map → chunk.ZMXKZJRM.js.map} +2 -2
  249. package/dist/esm/chunks/chunk.ZQCHS2PS.js +7 -0
  250. package/dist/esm/chunks/{chunk.Y6MPWPZU.js.map → chunk.ZQCHS2PS.js.map} +2 -2
  251. package/dist/esm/circular-progress/index.js +2 -2
  252. package/dist/esm/color-picker/index.js +2 -2
  253. package/dist/esm/core/base/index.js +2 -2
  254. package/dist/esm/core/delegates/index.js +1 -1
  255. package/dist/esm/core/index.js +2 -2
  256. package/dist/esm/core/mask/index.js +2 -2
  257. package/dist/esm/core/utils/index.js +2 -2
  258. package/dist/esm/date-picker/index.js +2 -2
  259. package/dist/esm/date-range-picker/index.js +2 -2
  260. package/dist/esm/dialog/index.js +2 -2
  261. package/dist/esm/divider/index.js +2 -2
  262. package/dist/esm/drawer/base/index.js +2 -2
  263. package/dist/esm/drawer/drawer/index.js +2 -2
  264. package/dist/esm/drawer/index.js +2 -2
  265. package/dist/esm/drawer/mini-drawer/index.js +2 -2
  266. package/dist/esm/drawer/modal-drawer/index.js +2 -2
  267. package/dist/esm/expansion-panel/index.js +2 -2
  268. package/dist/esm/file-picker/index.js +2 -2
  269. package/dist/esm/floating-action-button/index.js +2 -2
  270. package/dist/esm/floating-label/index.js +1 -1
  271. package/dist/esm/icon/index.js +2 -2
  272. package/dist/esm/icon-button/index.js +2 -2
  273. package/dist/esm/index.js +2 -2
  274. package/dist/esm/inline-message/index.js +2 -2
  275. package/dist/esm/keyboard-shortcut/index.js +2 -2
  276. package/dist/esm/label-value/index.js +2 -2
  277. package/dist/esm/linear-progress/index.js +2 -2
  278. package/dist/esm/list/index.js +2 -2
  279. package/dist/esm/list/list/index.js +2 -2
  280. package/dist/esm/list/list-item/index.js +2 -2
  281. package/dist/esm/list-dropdown/index.js +2 -2
  282. package/dist/esm/menu/index.js +2 -2
  283. package/dist/esm/open-icon/index.js +2 -2
  284. package/dist/esm/page-state/index.js +2 -2
  285. package/dist/esm/paginator/index.js +2 -2
  286. package/dist/esm/popup/index.js +2 -2
  287. package/dist/esm/product-icon/index.js +2 -2
  288. package/dist/esm/profile-card/index.js +2 -2
  289. package/dist/esm/quantity-field/index.js +2 -2
  290. package/dist/esm/radio/index.js +2 -2
  291. package/dist/esm/ripple/index.js +2 -2
  292. package/dist/esm/scaffold/index.js +2 -2
  293. package/dist/esm/select/core/index.js +2 -2
  294. package/dist/esm/select/index.js +2 -2
  295. package/dist/esm/select/option/index.js +2 -2
  296. package/dist/esm/select/option-group/index.js +2 -2
  297. package/dist/esm/select/select/index.js +2 -2
  298. package/dist/esm/select/select-dropdown/index.js +2 -2
  299. package/dist/esm/skeleton/index.js +2 -2
  300. package/dist/esm/slider/index.js +2 -2
  301. package/dist/esm/split-view/core/index.js +1 -1
  302. package/dist/esm/split-view/index.js +2 -2
  303. package/dist/esm/split-view/split-view/index.js +2 -2
  304. package/dist/esm/split-view/split-view-panel/index.js +2 -2
  305. package/dist/esm/stepper/index.js +2 -2
  306. package/dist/esm/stepper/step/index.js +2 -2
  307. package/dist/esm/stepper/stepper/index.js +2 -2
  308. package/dist/esm/switch/index.js +2 -2
  309. package/dist/esm/table/index.js +2 -2
  310. package/dist/esm/tabs/index.js +2 -2
  311. package/dist/esm/tabs/tab/index.js +2 -2
  312. package/dist/esm/tabs/tab-bar/index.js +2 -2
  313. package/dist/esm/text-field/index.js +2 -2
  314. package/dist/esm/theme/index.js +1 -1
  315. package/dist/esm/time-picker/index.js +2 -2
  316. package/dist/esm/toast/index.js +2 -2
  317. package/dist/esm/toolbar/index.js +2 -2
  318. package/dist/esm/tooltip/index.js +2 -2
  319. package/dist/esm/utils/index.js +1 -1
  320. package/dist/esm/view-switcher/index.js +2 -2
  321. package/dist/esm/view-switcher/view/index.js +2 -2
  322. package/dist/expansion-panel/forge-expansion-panel.css +1 -1
  323. package/dist/floating-action-button/forge-floating-action-button.css +1 -1
  324. package/dist/floating-label/forge-floating-label.css +1 -1
  325. package/dist/forge-core.css +1 -1
  326. package/dist/forge-dark.css +1 -1
  327. package/dist/forge.css +1 -1
  328. package/dist/form-field/forge-form-field.css +1 -1
  329. package/dist/icon-button/forge-icon-button.css +1 -1
  330. package/dist/popup/forge-popup.css +1 -1
  331. package/dist/quantity-field/forge-quantity-field.css +1 -1
  332. package/dist/ripple/forge-ripple.css +1 -1
  333. package/dist/scaffold/forge-scaffold.css +1 -1
  334. package/dist/table/forge-table.css +1 -1
  335. package/dist/theme/forge-theme.css +1 -1
  336. package/dist/tooltip/forge-tooltip.css +1 -1
  337. package/dist/typography/forge-form.css +1 -1
  338. package/dist/typography/forge-typography.css +1 -1
  339. package/dist/utils/forge-flex.css +1 -1
  340. package/dist/utils/forge-grid.css +1 -1
  341. package/dist/utils/forge-utils.css +1 -1
  342. package/esm/accordion/accordion-adapter.d.ts +1 -1
  343. package/esm/accordion/accordion-adapter.js +1 -1
  344. package/esm/accordion/accordion-constants.d.ts +1 -1
  345. package/esm/accordion/accordion-constants.js +1 -1
  346. package/esm/accordion/accordion-foundation.d.ts +1 -1
  347. package/esm/accordion/accordion-foundation.js +1 -1
  348. package/esm/accordion/accordion.d.ts +1 -1
  349. package/esm/accordion/accordion.js +1 -1
  350. package/esm/accordion/index.d.ts +1 -1
  351. package/esm/accordion/index.js +1 -1
  352. package/esm/app-bar/app-bar-adapter.d.ts +1 -1
  353. package/esm/app-bar/app-bar-adapter.js +1 -1
  354. package/esm/app-bar/app-bar-constants.d.ts +1 -1
  355. package/esm/app-bar/app-bar-constants.js +1 -1
  356. package/esm/app-bar/app-bar-foundation.d.ts +1 -1
  357. package/esm/app-bar/app-bar-foundation.js +1 -1
  358. package/esm/app-bar/app-bar.d.ts +1 -1
  359. package/esm/app-bar/app-bar.js +1 -1
  360. package/esm/app-bar/help-button/app-bar-help-button-adapter.d.ts +1 -1
  361. package/esm/app-bar/help-button/app-bar-help-button-adapter.js +1 -1
  362. package/esm/app-bar/help-button/app-bar-help-button-constants.d.ts +1 -1
  363. package/esm/app-bar/help-button/app-bar-help-button-constants.js +1 -1
  364. package/esm/app-bar/help-button/app-bar-help-button-foundation.d.ts +1 -1
  365. package/esm/app-bar/help-button/app-bar-help-button-foundation.js +1 -1
  366. package/esm/app-bar/help-button/app-bar-help-button.d.ts +1 -1
  367. package/esm/app-bar/help-button/app-bar-help-button.js +1 -1
  368. package/esm/app-bar/help-button/index.d.ts +1 -1
  369. package/esm/app-bar/help-button/index.js +1 -1
  370. package/esm/app-bar/index.d.ts +1 -1
  371. package/esm/app-bar/index.js +1 -1
  372. package/esm/app-bar/menu-button/app-bar-menu-button-constants.d.ts +1 -1
  373. package/esm/app-bar/menu-button/app-bar-menu-button-constants.js +1 -1
  374. package/esm/app-bar/menu-button/app-bar-menu-button.d.ts +1 -1
  375. package/esm/app-bar/menu-button/app-bar-menu-button.js +1 -1
  376. package/esm/app-bar/menu-button/index.d.ts +1 -1
  377. package/esm/app-bar/menu-button/index.js +1 -1
  378. package/esm/app-bar/notification-button/app-bar-notification-button-adapter.d.ts +4 -1
  379. package/esm/app-bar/notification-button/app-bar-notification-button-adapter.js +6 -1
  380. package/esm/app-bar/notification-button/app-bar-notification-button-constants.d.ts +2 -1
  381. package/esm/app-bar/notification-button/app-bar-notification-button-constants.js +3 -2
  382. package/esm/app-bar/notification-button/app-bar-notification-button-foundation.d.ts +5 -1
  383. package/esm/app-bar/notification-button/app-bar-notification-button-foundation.js +15 -1
  384. package/esm/app-bar/notification-button/app-bar-notification-button.d.ts +3 -1
  385. package/esm/app-bar/notification-button/app-bar-notification-button.js +10 -3
  386. package/esm/app-bar/notification-button/index.d.ts +1 -1
  387. package/esm/app-bar/notification-button/index.js +1 -1
  388. package/esm/app-bar/profile-button/app-bar-profile-button-adapter.d.ts +1 -1
  389. package/esm/app-bar/profile-button/app-bar-profile-button-adapter.js +1 -1
  390. package/esm/app-bar/profile-button/app-bar-profile-button-constants.d.ts +1 -1
  391. package/esm/app-bar/profile-button/app-bar-profile-button-constants.js +1 -1
  392. package/esm/app-bar/profile-button/app-bar-profile-button-foundation.d.ts +1 -1
  393. package/esm/app-bar/profile-button/app-bar-profile-button-foundation.js +1 -1
  394. package/esm/app-bar/profile-button/app-bar-profile-button.d.ts +1 -1
  395. package/esm/app-bar/profile-button/app-bar-profile-button.js +1 -1
  396. package/esm/app-bar/profile-button/index.d.ts +1 -1
  397. package/esm/app-bar/profile-button/index.js +1 -1
  398. package/esm/app-bar/search/app-bar-search-adapter.d.ts +1 -1
  399. package/esm/app-bar/search/app-bar-search-adapter.js +1 -1
  400. package/esm/app-bar/search/app-bar-search-constants.d.ts +1 -1
  401. package/esm/app-bar/search/app-bar-search-constants.js +1 -1
  402. package/esm/app-bar/search/app-bar-search-foundation.d.ts +1 -1
  403. package/esm/app-bar/search/app-bar-search-foundation.js +1 -1
  404. package/esm/app-bar/search/app-bar-search.d.ts +1 -1
  405. package/esm/app-bar/search/app-bar-search.js +1 -1
  406. package/esm/app-bar/search/index.d.ts +1 -1
  407. package/esm/app-bar/search/index.js +1 -1
  408. package/esm/autocomplete/autocomplete-adapter.d.ts +10 -11
  409. package/esm/autocomplete/autocomplete-adapter.js +2 -2
  410. package/esm/autocomplete/autocomplete-component-delegate.d.ts +1 -1
  411. package/esm/autocomplete/autocomplete-component-delegate.js +1 -1
  412. package/esm/autocomplete/autocomplete-constants.d.ts +11 -13
  413. package/esm/autocomplete/autocomplete-constants.js +1 -1
  414. package/esm/autocomplete/autocomplete-foundation.d.ts +7 -8
  415. package/esm/autocomplete/autocomplete-foundation.js +6 -3
  416. package/esm/autocomplete/autocomplete-utils.d.ts +5 -6
  417. package/esm/autocomplete/autocomplete-utils.js +1 -1
  418. package/esm/autocomplete/autocomplete.d.ts +4 -5
  419. package/esm/autocomplete/autocomplete.js +3 -3
  420. package/esm/autocomplete/index.d.ts +1 -1
  421. package/esm/autocomplete/index.js +1 -1
  422. package/esm/avatar/avatar-adapter.d.ts +1 -1
  423. package/esm/avatar/avatar-adapter.js +1 -1
  424. package/esm/avatar/avatar-component-delegate.d.ts +1 -1
  425. package/esm/avatar/avatar-component-delegate.js +1 -1
  426. package/esm/avatar/avatar-constants.d.ts +1 -1
  427. package/esm/avatar/avatar-constants.js +1 -1
  428. package/esm/avatar/avatar-foundation.d.ts +1 -1
  429. package/esm/avatar/avatar-foundation.js +1 -1
  430. package/esm/avatar/avatar.d.ts +1 -1
  431. package/esm/avatar/avatar.js +1 -1
  432. package/esm/avatar/index.d.ts +1 -1
  433. package/esm/avatar/index.js +1 -1
  434. package/esm/backdrop/backdrop-adapter.d.ts +1 -1
  435. package/esm/backdrop/backdrop-adapter.js +1 -1
  436. package/esm/backdrop/backdrop-constants.d.ts +1 -1
  437. package/esm/backdrop/backdrop-constants.js +1 -1
  438. package/esm/backdrop/backdrop-foundation.d.ts +1 -1
  439. package/esm/backdrop/backdrop-foundation.js +1 -1
  440. package/esm/backdrop/backdrop.d.ts +1 -1
  441. package/esm/backdrop/backdrop.js +1 -1
  442. package/esm/backdrop/index.d.ts +1 -1
  443. package/esm/backdrop/index.js +1 -1
  444. package/esm/badge/badge-adapter.d.ts +1 -1
  445. package/esm/badge/badge-adapter.js +1 -1
  446. package/esm/badge/badge-component-delegate.d.ts +1 -1
  447. package/esm/badge/badge-component-delegate.js +1 -1
  448. package/esm/badge/badge-constants.d.ts +1 -1
  449. package/esm/badge/badge-constants.js +1 -1
  450. package/esm/badge/badge-foundation.d.ts +1 -1
  451. package/esm/badge/badge-foundation.js +1 -1
  452. package/esm/badge/badge.d.ts +1 -1
  453. package/esm/badge/badge.js +1 -1
  454. package/esm/badge/index.d.ts +1 -1
  455. package/esm/badge/index.js +1 -1
  456. package/esm/banner/banner-adapter.d.ts +1 -1
  457. package/esm/banner/banner-adapter.js +1 -1
  458. package/esm/banner/banner-constants.d.ts +1 -1
  459. package/esm/banner/banner-constants.js +1 -1
  460. package/esm/banner/banner-foundation.d.ts +1 -1
  461. package/esm/banner/banner-foundation.js +1 -1
  462. package/esm/banner/banner.d.ts +1 -1
  463. package/esm/banner/banner.js +1 -1
  464. package/esm/banner/index.d.ts +1 -1
  465. package/esm/banner/index.js +1 -1
  466. package/esm/bottom-sheet/bottom-sheet-adapter.d.ts +1 -1
  467. package/esm/bottom-sheet/bottom-sheet-adapter.js +1 -1
  468. package/esm/bottom-sheet/bottom-sheet-constants.d.ts +1 -1
  469. package/esm/bottom-sheet/bottom-sheet-constants.js +1 -1
  470. package/esm/bottom-sheet/bottom-sheet-foundation.d.ts +1 -1
  471. package/esm/bottom-sheet/bottom-sheet-foundation.js +1 -1
  472. package/esm/bottom-sheet/bottom-sheet.d.ts +1 -1
  473. package/esm/bottom-sheet/bottom-sheet.js +1 -1
  474. package/esm/bottom-sheet/index.d.ts +1 -1
  475. package/esm/bottom-sheet/index.js +1 -1
  476. package/esm/busy-indicator/busy-indicator-adapter.d.ts +1 -1
  477. package/esm/busy-indicator/busy-indicator-adapter.js +1 -1
  478. package/esm/busy-indicator/busy-indicator-constants.d.ts +1 -1
  479. package/esm/busy-indicator/busy-indicator-constants.js +1 -1
  480. package/esm/busy-indicator/busy-indicator-foundation.d.ts +1 -1
  481. package/esm/busy-indicator/busy-indicator-foundation.js +1 -1
  482. package/esm/busy-indicator/busy-indicator.d.ts +1 -1
  483. package/esm/busy-indicator/busy-indicator.js +1 -1
  484. package/esm/busy-indicator/index.d.ts +1 -1
  485. package/esm/busy-indicator/index.js +1 -1
  486. package/esm/button/button-component-delegate.d.ts +1 -1
  487. package/esm/button/button-component-delegate.js +1 -1
  488. package/esm/button/button-constants.d.ts +2 -1
  489. package/esm/button/button-constants.js +3 -2
  490. package/esm/button/button.d.ts +2 -2
  491. package/esm/button/button.js +8 -9
  492. package/esm/button/index.d.ts +1 -1
  493. package/esm/button/index.js +1 -1
  494. package/esm/button-toggle/button-toggle/button-toggle-adapter.d.ts +1 -1
  495. package/esm/button-toggle/button-toggle/button-toggle-adapter.js +1 -1
  496. package/esm/button-toggle/button-toggle/button-toggle-constants.d.ts +1 -1
  497. package/esm/button-toggle/button-toggle/button-toggle-constants.js +1 -1
  498. package/esm/button-toggle/button-toggle/button-toggle-foundation.d.ts +1 -1
  499. package/esm/button-toggle/button-toggle/button-toggle-foundation.js +1 -1
  500. package/esm/button-toggle/button-toggle/button-toggle.d.ts +1 -1
  501. package/esm/button-toggle/button-toggle/button-toggle.js +1 -1
  502. package/esm/button-toggle/button-toggle/index.d.ts +1 -1
  503. package/esm/button-toggle/button-toggle/index.js +1 -1
  504. package/esm/button-toggle/button-toggle-group/button-toggle-group-adapter.d.ts +1 -1
  505. package/esm/button-toggle/button-toggle-group/button-toggle-group-adapter.js +23 -9
  506. package/esm/button-toggle/button-toggle-group/button-toggle-group-constants.d.ts +4 -1
  507. package/esm/button-toggle/button-toggle-group/button-toggle-group-constants.js +1 -1
  508. package/esm/button-toggle/button-toggle-group/button-toggle-group-foundation.d.ts +1 -1
  509. package/esm/button-toggle/button-toggle-group/button-toggle-group-foundation.js +1 -1
  510. package/esm/button-toggle/button-toggle-group/button-toggle-group.d.ts +1 -1
  511. package/esm/button-toggle/button-toggle-group/button-toggle-group.js +1 -1
  512. package/esm/button-toggle/button-toggle-group/index.d.ts +1 -1
  513. package/esm/button-toggle/button-toggle-group/index.js +1 -1
  514. package/esm/button-toggle/index.d.ts +1 -1
  515. package/esm/button-toggle/index.js +1 -1
  516. package/esm/calendar/calendar-adapter.d.ts +1 -1
  517. package/esm/calendar/calendar-adapter.js +1 -1
  518. package/esm/calendar/calendar-component-delegate.d.ts +1 -1
  519. package/esm/calendar/calendar-component-delegate.js +1 -1
  520. package/esm/calendar/calendar-constants.d.ts +1 -1
  521. package/esm/calendar/calendar-constants.js +1 -1
  522. package/esm/calendar/calendar-dom-utils.d.ts +1 -1
  523. package/esm/calendar/calendar-dom-utils.js +1 -1
  524. package/esm/calendar/calendar-dropdown/calendar-dropdown-constants.d.ts +1 -1
  525. package/esm/calendar/calendar-dropdown/calendar-dropdown-constants.js +1 -1
  526. package/esm/calendar/calendar-dropdown/calendar-dropdown.d.ts +1 -1
  527. package/esm/calendar/calendar-dropdown/calendar-dropdown.js +1 -1
  528. package/esm/calendar/calendar-dropdown/index.d.ts +1 -1
  529. package/esm/calendar/calendar-dropdown/index.js +1 -1
  530. package/esm/calendar/calendar-foundation.d.ts +1 -1
  531. package/esm/calendar/calendar-foundation.js +2 -1
  532. package/esm/calendar/calendar-locale-utils.d.ts +1 -1
  533. package/esm/calendar/calendar-locale-utils.js +1 -1
  534. package/esm/calendar/calendar-menu/calendar-menu-adapter.d.ts +1 -1
  535. package/esm/calendar/calendar-menu/calendar-menu-adapter.js +1 -1
  536. package/esm/calendar/calendar-menu/calendar-menu-constants.d.ts +1 -1
  537. package/esm/calendar/calendar-menu/calendar-menu-constants.js +1 -1
  538. package/esm/calendar/calendar-menu/calendar-menu-foundation.d.ts +1 -1
  539. package/esm/calendar/calendar-menu/calendar-menu-foundation.js +1 -1
  540. package/esm/calendar/calendar-menu/calendar-menu-utils.d.ts +1 -1
  541. package/esm/calendar/calendar-menu/calendar-menu-utils.js +1 -1
  542. package/esm/calendar/calendar-menu/calendar-menu.d.ts +1 -1
  543. package/esm/calendar/calendar-menu/calendar-menu.js +1 -1
  544. package/esm/calendar/calendar-menu/index.d.ts +1 -1
  545. package/esm/calendar/calendar-menu/index.js +1 -1
  546. package/esm/calendar/calendar-utils.d.ts +1 -1
  547. package/esm/calendar/calendar-utils.js +1 -1
  548. package/esm/calendar/calendar.d.ts +1 -1
  549. package/esm/calendar/calendar.js +1 -1
  550. package/esm/calendar/core/calendar-base.d.ts +1 -1
  551. package/esm/calendar/core/calendar-base.js +1 -1
  552. package/esm/calendar/core/date-range.d.ts +1 -1
  553. package/esm/calendar/core/date-range.js +1 -1
  554. package/esm/calendar/core/index.d.ts +1 -1
  555. package/esm/calendar/core/index.js +1 -1
  556. package/esm/calendar/index.d.ts +1 -1
  557. package/esm/calendar/index.js +1 -1
  558. package/esm/card/card-constants.d.ts +1 -1
  559. package/esm/card/card-constants.js +1 -1
  560. package/esm/card/card.d.ts +1 -1
  561. package/esm/card/card.js +1 -1
  562. package/esm/card/index.d.ts +1 -1
  563. package/esm/card/index.js +1 -1
  564. package/esm/checkbox/checkbox-adapter.d.ts +2 -3
  565. package/esm/checkbox/checkbox-adapter.js +13 -9
  566. package/esm/checkbox/checkbox-component-delegate.d.ts +1 -1
  567. package/esm/checkbox/checkbox-component-delegate.js +1 -1
  568. package/esm/checkbox/checkbox-constants.d.ts +1 -1
  569. package/esm/checkbox/checkbox-constants.js +1 -1
  570. package/esm/checkbox/checkbox-foundation.d.ts +1 -1
  571. package/esm/checkbox/checkbox-foundation.js +1 -4
  572. package/esm/checkbox/checkbox.d.ts +1 -1
  573. package/esm/checkbox/checkbox.js +1 -1
  574. package/esm/checkbox/index.d.ts +1 -1
  575. package/esm/checkbox/index.js +1 -1
  576. package/esm/chip-field/chip-field-adapter.d.ts +3 -1
  577. package/esm/chip-field/chip-field-adapter.js +9 -4
  578. package/esm/chip-field/chip-field-component-delegate.d.ts +1 -1
  579. package/esm/chip-field/chip-field-component-delegate.js +1 -1
  580. package/esm/chip-field/chip-field-constants.d.ts +2 -2
  581. package/esm/chip-field/chip-field-constants.js +1 -1
  582. package/esm/chip-field/chip-field-foundation.d.ts +1 -1
  583. package/esm/chip-field/chip-field-foundation.js +2 -1
  584. package/esm/chip-field/chip-field.d.ts +1 -1
  585. package/esm/chip-field/chip-field.js +2 -2
  586. package/esm/chip-field/index.d.ts +1 -1
  587. package/esm/chip-field/index.js +1 -1
  588. package/esm/chips/chip/chip-adapter.d.ts +1 -1
  589. package/esm/chips/chip/chip-adapter.js +1 -1
  590. package/esm/chips/chip/chip-constants.d.ts +1 -1
  591. package/esm/chips/chip/chip-constants.js +1 -1
  592. package/esm/chips/chip/chip-foundation.d.ts +1 -1
  593. package/esm/chips/chip/chip-foundation.js +1 -1
  594. package/esm/chips/chip/chip.d.ts +1 -1
  595. package/esm/chips/chip/chip.js +1 -1
  596. package/esm/chips/chip/index.d.ts +1 -1
  597. package/esm/chips/chip/index.js +1 -1
  598. package/esm/chips/chip-set/chip-set-adapter.d.ts +1 -1
  599. package/esm/chips/chip-set/chip-set-adapter.js +1 -1
  600. package/esm/chips/chip-set/chip-set-constants.d.ts +1 -1
  601. package/esm/chips/chip-set/chip-set-constants.js +1 -1
  602. package/esm/chips/chip-set/chip-set-foundation.d.ts +1 -1
  603. package/esm/chips/chip-set/chip-set-foundation.js +1 -1
  604. package/esm/chips/chip-set/chip-set.d.ts +1 -1
  605. package/esm/chips/chip-set/chip-set.js +1 -1
  606. package/esm/chips/chip-set/index.d.ts +1 -1
  607. package/esm/chips/chip-set/index.js +1 -1
  608. package/esm/chips/index.d.ts +1 -1
  609. package/esm/chips/index.js +1 -1
  610. package/esm/circular-progress/circular-progress-adapter.d.ts +1 -1
  611. package/esm/circular-progress/circular-progress-adapter.js +1 -1
  612. package/esm/circular-progress/circular-progress-constants.d.ts +1 -1
  613. package/esm/circular-progress/circular-progress-constants.js +1 -1
  614. package/esm/circular-progress/circular-progress-foundation.d.ts +1 -1
  615. package/esm/circular-progress/circular-progress-foundation.js +1 -1
  616. package/esm/circular-progress/circular-progress.d.ts +1 -1
  617. package/esm/circular-progress/circular-progress.js +1 -1
  618. package/esm/circular-progress/index.d.ts +1 -1
  619. package/esm/circular-progress/index.js +1 -1
  620. package/esm/color-picker/color-picker-adapter.d.ts +1 -1
  621. package/esm/color-picker/color-picker-adapter.js +1 -1
  622. package/esm/color-picker/color-picker-constants.d.ts +1 -1
  623. package/esm/color-picker/color-picker-constants.js +1 -1
  624. package/esm/color-picker/color-picker-foundation.d.ts +2 -1
  625. package/esm/color-picker/color-picker-foundation.js +20 -9
  626. package/esm/color-picker/color-picker-gradient-slider.d.ts +1 -1
  627. package/esm/color-picker/color-picker-gradient-slider.js +1 -1
  628. package/esm/color-picker/color-picker-slider.d.ts +1 -1
  629. package/esm/color-picker/color-picker-slider.js +1 -1
  630. package/esm/color-picker/color-picker-utils.d.ts +1 -1
  631. package/esm/color-picker/color-picker-utils.js +1 -1
  632. package/esm/color-picker/color-picker.d.ts +1 -1
  633. package/esm/color-picker/color-picker.js +1 -1
  634. package/esm/color-picker/index.d.ts +1 -1
  635. package/esm/color-picker/index.js +1 -1
  636. package/esm/constants.d.ts +1 -1
  637. package/esm/constants.js +1 -1
  638. package/esm/core/base/base-adapter.d.ts +1 -1
  639. package/esm/core/base/base-adapter.js +1 -1
  640. package/esm/core/base/base-component.d.ts +1 -1
  641. package/esm/core/base/base-component.js +1 -1
  642. package/esm/core/base/index.d.ts +1 -1
  643. package/esm/core/base/index.js +1 -1
  644. package/esm/core/delegates/base-component-delegate.d.ts +1 -1
  645. package/esm/core/delegates/base-component-delegate.js +1 -1
  646. package/esm/core/delegates/form-field-component-delegate.d.ts +1 -1
  647. package/esm/core/delegates/form-field-component-delegate.js +1 -1
  648. package/esm/core/delegates/index.d.ts +1 -1
  649. package/esm/core/delegates/index.js +1 -1
  650. package/esm/core/index.d.ts +1 -1
  651. package/esm/core/index.js +1 -1
  652. package/esm/core/mask/date-input-mask.d.ts +1 -1
  653. package/esm/core/mask/date-input-mask.js +1 -1
  654. package/esm/core/mask/index.d.ts +1 -1
  655. package/esm/core/mask/index.js +1 -1
  656. package/esm/core/mask/time-input-mask.d.ts +1 -1
  657. package/esm/core/mask/time-input-mask.js +1 -1
  658. package/esm/core/utils/date-utils.d.ts +1 -1
  659. package/esm/core/utils/date-utils.js +3 -3
  660. package/esm/core/utils/event-utils.d.ts +1 -1
  661. package/esm/core/utils/event-utils.js +1 -1
  662. package/esm/core/utils/index.d.ts +1 -1
  663. package/esm/core/utils/index.js +1 -1
  664. package/esm/core/utils/svg-utils.d.ts +1 -1
  665. package/esm/core/utils/svg-utils.js +1 -1
  666. package/esm/core/utils/time-utils.d.ts +1 -1
  667. package/esm/core/utils/time-utils.js +1 -1
  668. package/esm/core/utils/utils.d.ts +1 -7
  669. package/esm/core/utils/utils.js +1 -11
  670. package/esm/date-picker/base/base-date-picker-adapter.d.ts +1 -1
  671. package/esm/date-picker/base/base-date-picker-adapter.js +1 -1
  672. package/esm/date-picker/base/base-date-picker-constants.d.ts +1 -1
  673. package/esm/date-picker/base/base-date-picker-constants.js +1 -1
  674. package/esm/date-picker/base/base-date-picker-foundation.d.ts +1 -1
  675. package/esm/date-picker/base/base-date-picker-foundation.js +3 -2
  676. package/esm/date-picker/base/base-date-picker-utils.d.ts +1 -1
  677. package/esm/date-picker/base/base-date-picker-utils.js +1 -1
  678. package/esm/date-picker/base/base-date-picker.d.ts +3 -3
  679. package/esm/date-picker/base/base-date-picker.js +1 -1
  680. package/esm/date-picker/date-picker-adapter.d.ts +1 -1
  681. package/esm/date-picker/date-picker-adapter.js +1 -1
  682. package/esm/date-picker/date-picker-component-delegate.d.ts +1 -1
  683. package/esm/date-picker/date-picker-component-delegate.js +1 -1
  684. package/esm/date-picker/date-picker-constants.d.ts +1 -1
  685. package/esm/date-picker/date-picker-constants.js +1 -1
  686. package/esm/date-picker/date-picker-foundation.d.ts +1 -1
  687. package/esm/date-picker/date-picker-foundation.js +1 -1
  688. package/esm/date-picker/date-picker.d.ts +1 -1
  689. package/esm/date-picker/date-picker.js +1 -1
  690. package/esm/date-picker/index.d.ts +1 -1
  691. package/esm/date-picker/index.js +1 -1
  692. package/esm/date-range-picker/date-range-picker-adapter.d.ts +1 -1
  693. package/esm/date-range-picker/date-range-picker-adapter.js +1 -1
  694. package/esm/date-range-picker/date-range-picker-component-delegate.d.ts +1 -1
  695. package/esm/date-range-picker/date-range-picker-component-delegate.js +1 -1
  696. package/esm/date-range-picker/date-range-picker-constants.d.ts +1 -1
  697. package/esm/date-range-picker/date-range-picker-constants.js +1 -1
  698. package/esm/date-range-picker/date-range-picker-foundation.d.ts +3 -3
  699. package/esm/date-range-picker/date-range-picker-foundation.js +2 -2
  700. package/esm/date-range-picker/date-range-picker.d.ts +1 -1
  701. package/esm/date-range-picker/date-range-picker.js +7 -7
  702. package/esm/date-range-picker/index.d.ts +1 -1
  703. package/esm/date-range-picker/index.js +1 -1
  704. package/esm/dialog/dialog-adapter.d.ts +1 -3
  705. package/esm/dialog/dialog-adapter.js +2 -11
  706. package/esm/dialog/dialog-constants.d.ts +1 -1
  707. package/esm/dialog/dialog-constants.js +1 -1
  708. package/esm/dialog/dialog-foundation.d.ts +1 -1
  709. package/esm/dialog/dialog-foundation.js +3 -3
  710. package/esm/dialog/dialog.d.ts +1 -1
  711. package/esm/dialog/dialog.js +1 -1
  712. package/esm/dialog/index.d.ts +1 -1
  713. package/esm/dialog/index.js +1 -1
  714. package/esm/divider/divider-constants.d.ts +1 -1
  715. package/esm/divider/divider-constants.js +1 -1
  716. package/esm/divider/divider.d.ts +1 -1
  717. package/esm/divider/divider.js +1 -1
  718. package/esm/divider/index.d.ts +1 -1
  719. package/esm/divider/index.js +1 -1
  720. package/esm/drawer/base/base-drawer-adapter.d.ts +1 -1
  721. package/esm/drawer/base/base-drawer-adapter.js +1 -1
  722. package/esm/drawer/base/base-drawer-constants.d.ts +1 -1
  723. package/esm/drawer/base/base-drawer-constants.js +1 -1
  724. package/esm/drawer/base/base-drawer-foundation.d.ts +1 -1
  725. package/esm/drawer/base/base-drawer-foundation.js +1 -1
  726. package/esm/drawer/base/base-drawer.d.ts +1 -1
  727. package/esm/drawer/base/base-drawer.js +4 -4
  728. package/esm/drawer/base/index.d.ts +1 -1
  729. package/esm/drawer/base/index.js +1 -1
  730. package/esm/drawer/drawer/drawer-constants.d.ts +1 -1
  731. package/esm/drawer/drawer/drawer-constants.js +1 -1
  732. package/esm/drawer/drawer/drawer.d.ts +1 -1
  733. package/esm/drawer/drawer/drawer.js +1 -1
  734. package/esm/drawer/drawer/index.d.ts +1 -1
  735. package/esm/drawer/drawer/index.js +1 -1
  736. package/esm/drawer/index.d.ts +1 -1
  737. package/esm/drawer/index.js +1 -1
  738. package/esm/drawer/mini-drawer/index.d.ts +1 -1
  739. package/esm/drawer/mini-drawer/index.js +1 -1
  740. package/esm/drawer/mini-drawer/mini-drawer-constants.d.ts +1 -1
  741. package/esm/drawer/mini-drawer/mini-drawer-constants.js +1 -1
  742. package/esm/drawer/mini-drawer/mini-drawer.d.ts +1 -1
  743. package/esm/drawer/mini-drawer/mini-drawer.js +1 -1
  744. package/esm/drawer/modal-drawer/index.d.ts +1 -1
  745. package/esm/drawer/modal-drawer/index.js +1 -1
  746. package/esm/drawer/modal-drawer/modal-drawer-adapter.d.ts +1 -1
  747. package/esm/drawer/modal-drawer/modal-drawer-adapter.js +1 -1
  748. package/esm/drawer/modal-drawer/modal-drawer-constants.d.ts +1 -1
  749. package/esm/drawer/modal-drawer/modal-drawer-constants.js +1 -1
  750. package/esm/drawer/modal-drawer/modal-drawer-foundation.d.ts +1 -1
  751. package/esm/drawer/modal-drawer/modal-drawer-foundation.js +1 -1
  752. package/esm/drawer/modal-drawer/modal-drawer.d.ts +1 -1
  753. package/esm/drawer/modal-drawer/modal-drawer.js +1 -1
  754. package/esm/expansion-panel/expansion-panel-adapter.d.ts +1 -1
  755. package/esm/expansion-panel/expansion-panel-adapter.js +1 -1
  756. package/esm/expansion-panel/expansion-panel-constants.d.ts +1 -1
  757. package/esm/expansion-panel/expansion-panel-constants.js +1 -1
  758. package/esm/expansion-panel/expansion-panel-foundation.d.ts +1 -1
  759. package/esm/expansion-panel/expansion-panel-foundation.js +1 -1
  760. package/esm/expansion-panel/expansion-panel.d.ts +1 -1
  761. package/esm/expansion-panel/expansion-panel.js +1 -1
  762. package/esm/expansion-panel/index.d.ts +1 -1
  763. package/esm/expansion-panel/index.js +1 -1
  764. package/esm/field/field-adapter.d.ts +1 -1
  765. package/esm/field/field-adapter.js +1 -1
  766. package/esm/field/field-constants.d.ts +1 -1
  767. package/esm/field/field-constants.js +1 -1
  768. package/esm/field/field-foundation.d.ts +1 -1
  769. package/esm/field/field-foundation.js +1 -1
  770. package/esm/field/field.d.ts +1 -1
  771. package/esm/field/field.js +1 -1
  772. package/esm/file-picker/file-picker-adapter.d.ts +1 -1
  773. package/esm/file-picker/file-picker-adapter.js +4 -3
  774. package/esm/file-picker/file-picker-component-delegate.d.ts +1 -1
  775. package/esm/file-picker/file-picker-component-delegate.js +1 -1
  776. package/esm/file-picker/file-picker-constants.d.ts +1 -1
  777. package/esm/file-picker/file-picker-constants.js +1 -1
  778. package/esm/file-picker/file-picker-foundation.d.ts +3 -1
  779. package/esm/file-picker/file-picker-foundation.js +16 -39
  780. package/esm/file-picker/file-picker.d.ts +2 -1
  781. package/esm/file-picker/file-picker.js +4 -1
  782. package/esm/file-picker/index.d.ts +1 -1
  783. package/esm/file-picker/index.js +1 -1
  784. package/esm/floating-action-button/floating-action-button-component-delegate.d.ts +1 -1
  785. package/esm/floating-action-button/floating-action-button-component-delegate.js +1 -1
  786. package/esm/floating-action-button/floating-action-button-constants.d.ts +1 -1
  787. package/esm/floating-action-button/floating-action-button-constants.js +2 -2
  788. package/esm/floating-action-button/floating-action-button.d.ts +1 -1
  789. package/esm/floating-action-button/floating-action-button.js +1 -1
  790. package/esm/floating-action-button/index.d.ts +1 -1
  791. package/esm/floating-action-button/index.js +1 -1
  792. package/esm/floating-label/floating-label-adapter.d.ts +1 -1
  793. package/esm/floating-label/floating-label-adapter.js +1 -1
  794. package/esm/floating-label/floating-label-constants.d.ts +1 -1
  795. package/esm/floating-label/floating-label-constants.js +1 -1
  796. package/esm/floating-label/floating-label-foundation.d.ts +1 -1
  797. package/esm/floating-label/floating-label-foundation.js +1 -1
  798. package/esm/floating-label/floating-label.d.ts +1 -1
  799. package/esm/floating-label/floating-label.js +1 -1
  800. package/esm/floating-label/index.d.ts +1 -1
  801. package/esm/floating-label/index.js +1 -1
  802. package/esm/icon/icon-adapter.d.ts +1 -1
  803. package/esm/icon/icon-adapter.js +1 -1
  804. package/esm/icon/icon-component-delegate.d.ts +1 -1
  805. package/esm/icon/icon-component-delegate.js +1 -1
  806. package/esm/icon/icon-constants.d.ts +1 -1
  807. package/esm/icon/icon-constants.js +1 -1
  808. package/esm/icon/icon-foundation.d.ts +1 -1
  809. package/esm/icon/icon-foundation.js +1 -1
  810. package/esm/icon/icon-registry.d.ts +1 -1
  811. package/esm/icon/icon-registry.js +1 -1
  812. package/esm/icon/icon-utils.d.ts +1 -1
  813. package/esm/icon/icon-utils.js +1 -1
  814. package/esm/icon/icon.d.ts +1 -1
  815. package/esm/icon/icon.js +1 -1
  816. package/esm/icon/index.d.ts +1 -1
  817. package/esm/icon/index.js +1 -1
  818. package/esm/icon-button/icon-button-component-delegate.d.ts +1 -1
  819. package/esm/icon-button/icon-button-component-delegate.js +1 -1
  820. package/esm/icon-button/icon-button-constants.d.ts +1 -1
  821. package/esm/icon-button/icon-button-constants.js +2 -2
  822. package/esm/icon-button/icon-button.d.ts +2 -2
  823. package/esm/icon-button/icon-button.js +7 -7
  824. package/esm/icon-button/index.d.ts +1 -1
  825. package/esm/icon-button/index.js +1 -1
  826. package/esm/index.d.ts +1 -1
  827. package/esm/index.js +1 -1
  828. package/esm/inline-message/index.d.ts +1 -1
  829. package/esm/inline-message/index.js +1 -1
  830. package/esm/inline-message/inline-message-constants.d.ts +1 -1
  831. package/esm/inline-message/inline-message-constants.js +1 -1
  832. package/esm/inline-message/inline-message.d.ts +1 -1
  833. package/esm/inline-message/inline-message.js +1 -1
  834. package/esm/keyboard-shortcut/index.d.ts +1 -1
  835. package/esm/keyboard-shortcut/index.js +1 -1
  836. package/esm/keyboard-shortcut/keyboard-shortcut-adapter.d.ts +1 -1
  837. package/esm/keyboard-shortcut/keyboard-shortcut-adapter.js +1 -1
  838. package/esm/keyboard-shortcut/keyboard-shortcut-constants.d.ts +1 -1
  839. package/esm/keyboard-shortcut/keyboard-shortcut-constants.js +1 -1
  840. package/esm/keyboard-shortcut/keyboard-shortcut-foundation.d.ts +1 -1
  841. package/esm/keyboard-shortcut/keyboard-shortcut-foundation.js +1 -1
  842. package/esm/keyboard-shortcut/keyboard-shortcut-utils.d.ts +1 -1
  843. package/esm/keyboard-shortcut/keyboard-shortcut-utils.js +1 -1
  844. package/esm/keyboard-shortcut/keyboard-shortcut.d.ts +4 -1
  845. package/esm/keyboard-shortcut/keyboard-shortcut.js +1 -1
  846. package/esm/label-value/index.d.ts +1 -1
  847. package/esm/label-value/index.js +1 -1
  848. package/esm/label-value/label-value-adapter.d.ts +1 -1
  849. package/esm/label-value/label-value-adapter.js +1 -1
  850. package/esm/label-value/label-value-component-delegate.d.ts +1 -1
  851. package/esm/label-value/label-value-component-delegate.js +1 -1
  852. package/esm/label-value/label-value-constants.d.ts +2 -2
  853. package/esm/label-value/label-value-constants.js +1 -1
  854. package/esm/label-value/label-value-foundation.d.ts +1 -1
  855. package/esm/label-value/label-value-foundation.js +1 -1
  856. package/esm/label-value/label-value.d.ts +1 -1
  857. package/esm/label-value/label-value.js +1 -1
  858. package/esm/linear-progress/index.d.ts +1 -1
  859. package/esm/linear-progress/index.js +1 -1
  860. package/esm/linear-progress/linear-progress-constants.d.ts +1 -1
  861. package/esm/linear-progress/linear-progress-constants.js +1 -1
  862. package/esm/linear-progress/linear-progress.d.ts +1 -1
  863. package/esm/linear-progress/linear-progress.js +2 -2
  864. package/esm/list/index.d.ts +1 -1
  865. package/esm/list/index.js +1 -1
  866. package/esm/list/list/index.d.ts +1 -1
  867. package/esm/list/list/index.js +1 -1
  868. package/esm/list/list/list-adapter.d.ts +1 -1
  869. package/esm/list/list/list-adapter.js +1 -1
  870. package/esm/list/list/list-constants.d.ts +1 -1
  871. package/esm/list/list/list-constants.js +1 -1
  872. package/esm/list/list/list-foundation.d.ts +1 -1
  873. package/esm/list/list/list-foundation.js +1 -1
  874. package/esm/list/list/list.d.ts +1 -1
  875. package/esm/list/list/list.js +1 -1
  876. package/esm/list/list-item/index.d.ts +1 -1
  877. package/esm/list/list-item/index.js +1 -1
  878. package/esm/list/list-item/list-item-adapter.d.ts +1 -1
  879. package/esm/list/list-item/list-item-adapter.js +1 -1
  880. package/esm/list/list-item/list-item-constants.d.ts +1 -1
  881. package/esm/list/list-item/list-item-constants.js +1 -1
  882. package/esm/list/list-item/list-item-foundation.d.ts +1 -1
  883. package/esm/list/list-item/list-item-foundation.js +2 -3
  884. package/esm/list/list-item/list-item.d.ts +1 -1
  885. package/esm/list/list-item/list-item.js +2 -2
  886. package/esm/list-dropdown/cascading-list-dropdown-aware-foundation.d.ts +6 -3
  887. package/esm/list-dropdown/cascading-list-dropdown-aware-foundation.js +4 -2
  888. package/esm/list-dropdown/index.d.ts +1 -1
  889. package/esm/list-dropdown/index.js +1 -1
  890. package/esm/list-dropdown/list-dropdown-adapter.d.ts +1 -1
  891. package/esm/list-dropdown/list-dropdown-adapter.js +1 -1
  892. package/esm/list-dropdown/list-dropdown-aware-foundation.d.ts +9 -1
  893. package/esm/list-dropdown/list-dropdown-aware-foundation.js +15 -1
  894. package/esm/list-dropdown/list-dropdown-aware.d.ts +12 -3
  895. package/esm/list-dropdown/list-dropdown-aware.js +13 -1
  896. package/esm/list-dropdown/list-dropdown-constants.d.ts +10 -4
  897. package/esm/list-dropdown/list-dropdown-constants.js +3 -1
  898. package/esm/list-dropdown/list-dropdown-foundation.d.ts +1 -1
  899. package/esm/list-dropdown/list-dropdown-foundation.js +4 -7
  900. package/esm/list-dropdown/list-dropdown-utils.d.ts +2 -1
  901. package/esm/list-dropdown/list-dropdown-utils.js +40 -18
  902. package/esm/list-dropdown/list-dropdown.d.ts +1 -1
  903. package/esm/list-dropdown/list-dropdown.js +1 -1
  904. package/esm/menu/index.d.ts +1 -1
  905. package/esm/menu/index.js +1 -1
  906. package/esm/menu/menu-adapter.d.ts +3 -1
  907. package/esm/menu/menu-adapter.js +8 -1
  908. package/esm/menu/menu-constants.d.ts +1 -1
  909. package/esm/menu/menu-constants.js +2 -2
  910. package/esm/menu/menu-foundation.d.ts +13 -4
  911. package/esm/menu/menu-foundation.js +29 -18
  912. package/esm/menu/menu.d.ts +7 -2
  913. package/esm/menu/menu.js +10 -4
  914. package/esm/open-icon/index.d.ts +1 -1
  915. package/esm/open-icon/index.js +1 -1
  916. package/esm/open-icon/open-icon-adapter.d.ts +1 -1
  917. package/esm/open-icon/open-icon-adapter.js +1 -1
  918. package/esm/open-icon/open-icon-constants.d.ts +1 -1
  919. package/esm/open-icon/open-icon-constants.js +1 -1
  920. package/esm/open-icon/open-icon-foundation.d.ts +1 -1
  921. package/esm/open-icon/open-icon-foundation.js +1 -1
  922. package/esm/open-icon/open-icon.d.ts +1 -1
  923. package/esm/open-icon/open-icon.js +1 -1
  924. package/esm/page-state/index.d.ts +1 -1
  925. package/esm/page-state/index.js +1 -1
  926. package/esm/page-state/page-state-constants.d.ts +1 -1
  927. package/esm/page-state/page-state-constants.js +1 -1
  928. package/esm/page-state/page-state.d.ts +1 -1
  929. package/esm/page-state/page-state.js +1 -1
  930. package/esm/paginator/index.d.ts +1 -1
  931. package/esm/paginator/index.js +1 -1
  932. package/esm/paginator/paginator-adapter.d.ts +1 -1
  933. package/esm/paginator/paginator-adapter.js +1 -1
  934. package/esm/paginator/paginator-constants.d.ts +1 -1
  935. package/esm/paginator/paginator-constants.js +1 -1
  936. package/esm/paginator/paginator-foundation.d.ts +1 -1
  937. package/esm/paginator/paginator-foundation.js +1 -1
  938. package/esm/paginator/paginator.d.ts +1 -1
  939. package/esm/paginator/paginator.js +1 -1
  940. package/esm/popup/index.d.ts +1 -1
  941. package/esm/popup/index.js +1 -1
  942. package/esm/popup/popup-adapter.d.ts +1 -1
  943. package/esm/popup/popup-adapter.js +10 -2
  944. package/esm/popup/popup-constants.d.ts +2 -1
  945. package/esm/popup/popup-constants.js +3 -2
  946. package/esm/popup/popup-foundation.d.ts +5 -1
  947. package/esm/popup/popup-foundation.js +8 -1
  948. package/esm/popup/popup.d.ts +3 -1
  949. package/esm/popup/popup.js +5 -2
  950. package/esm/product-icon/index.d.ts +1 -1
  951. package/esm/product-icon/index.js +1 -1
  952. package/esm/product-icon/product-icon-adapter.d.ts +1 -1
  953. package/esm/product-icon/product-icon-adapter.js +1 -1
  954. package/esm/product-icon/product-icon-constants.d.ts +1 -1
  955. package/esm/product-icon/product-icon-constants.js +1 -1
  956. package/esm/product-icon/product-icon-foundation.d.ts +1 -1
  957. package/esm/product-icon/product-icon-foundation.js +1 -1
  958. package/esm/product-icon/product-icon.d.ts +1 -1
  959. package/esm/product-icon/product-icon.js +1 -1
  960. package/esm/profile-card/index.d.ts +1 -1
  961. package/esm/profile-card/index.js +1 -1
  962. package/esm/profile-card/profile-card-adapter.d.ts +1 -1
  963. package/esm/profile-card/profile-card-adapter.js +1 -1
  964. package/esm/profile-card/profile-card-constants.d.ts +1 -1
  965. package/esm/profile-card/profile-card-constants.js +1 -1
  966. package/esm/profile-card/profile-card-foundation.d.ts +1 -1
  967. package/esm/profile-card/profile-card-foundation.js +1 -1
  968. package/esm/profile-card/profile-card.d.ts +1 -1
  969. package/esm/profile-card/profile-card.js +1 -1
  970. package/esm/quantity-field/index.d.ts +1 -1
  971. package/esm/quantity-field/index.js +1 -1
  972. package/esm/quantity-field/quantity-field-adapter.d.ts +3 -1
  973. package/esm/quantity-field/quantity-field-adapter.js +9 -1
  974. package/esm/quantity-field/quantity-field-component-delegate.d.ts +1 -1
  975. package/esm/quantity-field/quantity-field-component-delegate.js +1 -1
  976. package/esm/quantity-field/quantity-field-constants.d.ts +1 -1
  977. package/esm/quantity-field/quantity-field-constants.js +1 -1
  978. package/esm/quantity-field/quantity-field-foundation.d.ts +1 -1
  979. package/esm/quantity-field/quantity-field-foundation.js +2 -1
  980. package/esm/quantity-field/quantity-field.d.ts +1 -1
  981. package/esm/quantity-field/quantity-field.js +7 -1
  982. package/esm/radio/index.d.ts +1 -1
  983. package/esm/radio/index.js +1 -1
  984. package/esm/radio/radio-adapter.d.ts +4 -4
  985. package/esm/radio/radio-adapter.js +18 -16
  986. package/esm/radio/radio-constants.d.ts +1 -1
  987. package/esm/radio/radio-constants.js +1 -1
  988. package/esm/radio/radio-foundation.d.ts +1 -1
  989. package/esm/radio/radio-foundation.js +2 -2
  990. package/esm/radio/radio.d.ts +1 -1
  991. package/esm/radio/radio.js +1 -1
  992. package/esm/ripple/forge-ripple.d.ts +3 -2
  993. package/esm/ripple/forge-ripple.js +4 -1
  994. package/esm/ripple/index.d.ts +1 -1
  995. package/esm/ripple/index.js +1 -1
  996. package/esm/ripple/ripple-adapter.d.ts +1 -1
  997. package/esm/ripple/ripple-adapter.js +1 -1
  998. package/esm/ripple/ripple-constants.d.ts +2 -1
  999. package/esm/ripple/ripple-constants.js +3 -2
  1000. package/esm/ripple/ripple-foundation.d.ts +5 -1
  1001. package/esm/ripple/ripple-foundation.js +11 -1
  1002. package/esm/ripple/ripple.d.ts +5 -3
  1003. package/esm/ripple/ripple.js +11 -3
  1004. package/esm/scaffold/index.d.ts +1 -1
  1005. package/esm/scaffold/index.js +1 -1
  1006. package/esm/scaffold/scaffold-constants.d.ts +1 -1
  1007. package/esm/scaffold/scaffold-constants.js +1 -1
  1008. package/esm/scaffold/scaffold.d.ts +1 -1
  1009. package/esm/scaffold/scaffold.js +1 -1
  1010. package/esm/select/core/base-select-adapter.d.ts +1 -1
  1011. package/esm/select/core/base-select-adapter.js +9 -7
  1012. package/esm/select/core/base-select-constants.d.ts +3 -1
  1013. package/esm/select/core/base-select-constants.js +4 -2
  1014. package/esm/select/core/base-select-foundation.d.ts +1 -10
  1015. package/esm/select/core/base-select-foundation.js +6 -27
  1016. package/esm/select/core/base-select.d.ts +1 -1
  1017. package/esm/select/core/base-select.js +1 -1
  1018. package/esm/select/core/index.d.ts +1 -1
  1019. package/esm/select/core/index.js +1 -1
  1020. package/esm/select/core/select-utils.d.ts +1 -1
  1021. package/esm/select/core/select-utils.js +2 -2
  1022. package/esm/select/index.d.ts +1 -1
  1023. package/esm/select/index.js +1 -1
  1024. package/esm/select/option/index.d.ts +1 -1
  1025. package/esm/select/option/index.js +1 -1
  1026. package/esm/select/option/option-adapter.d.ts +1 -1
  1027. package/esm/select/option/option-adapter.js +1 -1
  1028. package/esm/select/option/option-constants.d.ts +1 -1
  1029. package/esm/select/option/option-constants.js +1 -1
  1030. package/esm/select/option/option-foundation.d.ts +1 -1
  1031. package/esm/select/option/option-foundation.js +1 -1
  1032. package/esm/select/option/option.d.ts +1 -1
  1033. package/esm/select/option/option.js +1 -1
  1034. package/esm/select/option-group/index.d.ts +1 -1
  1035. package/esm/select/option-group/index.js +1 -1
  1036. package/esm/select/option-group/option-group-constants.d.ts +1 -1
  1037. package/esm/select/option-group/option-group-constants.js +1 -1
  1038. package/esm/select/option-group/option-group.d.ts +13 -2
  1039. package/esm/select/option-group/option-group.js +8 -1
  1040. package/esm/select/select/index.d.ts +1 -1
  1041. package/esm/select/select/index.js +1 -1
  1042. package/esm/select/select/select-adapter.d.ts +1 -1
  1043. package/esm/select/select/select-adapter.js +1 -1
  1044. package/esm/select/select/select-constants.d.ts +2 -2
  1045. package/esm/select/select/select-constants.js +1 -1
  1046. package/esm/select/select/select-foundation.d.ts +1 -1
  1047. package/esm/select/select/select-foundation.js +1 -1
  1048. package/esm/select/select/select.d.ts +1 -1
  1049. package/esm/select/select/select.js +12 -10
  1050. package/esm/select/select-component-delegate.d.ts +1 -1
  1051. package/esm/select/select-component-delegate.js +1 -1
  1052. package/esm/select/select-dropdown/index.d.ts +1 -1
  1053. package/esm/select/select-dropdown/index.js +1 -1
  1054. package/esm/select/select-dropdown/select-dropdown-adapter.d.ts +1 -1
  1055. package/esm/select/select-dropdown/select-dropdown-adapter.js +1 -1
  1056. package/esm/select/select-dropdown/select-dropdown-constants.d.ts +1 -1
  1057. package/esm/select/select-dropdown/select-dropdown-constants.js +1 -1
  1058. package/esm/select/select-dropdown/select-dropdown-foundation.d.ts +1 -1
  1059. package/esm/select/select-dropdown/select-dropdown-foundation.js +1 -1
  1060. package/esm/select/select-dropdown/select-dropdown.d.ts +1 -1
  1061. package/esm/select/select-dropdown/select-dropdown.js +6 -6
  1062. package/esm/skeleton/index.d.ts +1 -1
  1063. package/esm/skeleton/index.js +1 -1
  1064. package/esm/skeleton/skeleton-constants.d.ts +1 -1
  1065. package/esm/skeleton/skeleton-constants.js +1 -1
  1066. package/esm/skeleton/skeleton.d.ts +1 -1
  1067. package/esm/skeleton/skeleton.js +1 -1
  1068. package/esm/slider/index.d.ts +1 -1
  1069. package/esm/slider/index.js +1 -1
  1070. package/esm/slider/slider-component-delegate.d.ts +1 -1
  1071. package/esm/slider/slider-component-delegate.js +1 -1
  1072. package/esm/slider/slider-constants.d.ts +1 -1
  1073. package/esm/slider/slider-constants.js +1 -1
  1074. package/esm/slider/slider.d.ts +1 -1
  1075. package/esm/slider/slider.js +1 -1
  1076. package/esm/split-view/core/index.d.ts +1 -1
  1077. package/esm/split-view/core/index.js +1 -1
  1078. package/esm/split-view/core/split-view-base.d.ts +1 -1
  1079. package/esm/split-view/core/split-view-base.js +1 -1
  1080. package/esm/split-view/index.d.ts +1 -1
  1081. package/esm/split-view/index.js +1 -1
  1082. package/esm/split-view/split-view/index.d.ts +1 -1
  1083. package/esm/split-view/split-view/index.js +1 -1
  1084. package/esm/split-view/split-view/split-view-adapter.d.ts +1 -1
  1085. package/esm/split-view/split-view/split-view-adapter.js +1 -1
  1086. package/esm/split-view/split-view/split-view-constants.d.ts +1 -1
  1087. package/esm/split-view/split-view/split-view-constants.js +1 -1
  1088. package/esm/split-view/split-view/split-view-foundation.d.ts +1 -1
  1089. package/esm/split-view/split-view/split-view-foundation.js +1 -1
  1090. package/esm/split-view/split-view/split-view.d.ts +1 -1
  1091. package/esm/split-view/split-view/split-view.js +4 -2
  1092. package/esm/split-view/split-view-panel/index.d.ts +1 -1
  1093. package/esm/split-view/split-view-panel/index.js +1 -1
  1094. package/esm/split-view/split-view-panel/split-view-panel-adapter.d.ts +1 -1
  1095. package/esm/split-view/split-view-panel/split-view-panel-adapter.js +1 -1
  1096. package/esm/split-view/split-view-panel/split-view-panel-constants.d.ts +1 -1
  1097. package/esm/split-view/split-view-panel/split-view-panel-constants.js +1 -1
  1098. package/esm/split-view/split-view-panel/split-view-panel-foundation.d.ts +1 -1
  1099. package/esm/split-view/split-view-panel/split-view-panel-foundation.js +1 -1
  1100. package/esm/split-view/split-view-panel/split-view-panel-utils.d.ts +1 -1
  1101. package/esm/split-view/split-view-panel/split-view-panel-utils.js +1 -1
  1102. package/esm/split-view/split-view-panel/split-view-panel.d.ts +1 -1
  1103. package/esm/split-view/split-view-panel/split-view-panel.js +2 -2
  1104. package/esm/stepper/core/stepper-utils.d.ts +1 -1
  1105. package/esm/stepper/core/stepper-utils.js +1 -1
  1106. package/esm/stepper/index.d.ts +1 -1
  1107. package/esm/stepper/index.js +1 -1
  1108. package/esm/stepper/step/index.d.ts +1 -1
  1109. package/esm/stepper/step/index.js +1 -1
  1110. package/esm/stepper/step/step-adapter.d.ts +1 -1
  1111. package/esm/stepper/step/step-adapter.js +1 -1
  1112. package/esm/stepper/step/step-constants.d.ts +1 -1
  1113. package/esm/stepper/step/step-constants.js +1 -1
  1114. package/esm/stepper/step/step-foundation.d.ts +1 -1
  1115. package/esm/stepper/step/step-foundation.js +1 -1
  1116. package/esm/stepper/step/step.d.ts +1 -1
  1117. package/esm/stepper/step/step.js +7 -4
  1118. package/esm/stepper/stepper/index.d.ts +1 -1
  1119. package/esm/stepper/stepper/index.js +1 -1
  1120. package/esm/stepper/stepper/stepper-adapter.d.ts +1 -1
  1121. package/esm/stepper/stepper/stepper-adapter.js +1 -1
  1122. package/esm/stepper/stepper/stepper-constants.d.ts +1 -1
  1123. package/esm/stepper/stepper/stepper-constants.js +1 -1
  1124. package/esm/stepper/stepper/stepper-foundation.d.ts +1 -1
  1125. package/esm/stepper/stepper/stepper-foundation.js +1 -1
  1126. package/esm/stepper/stepper/stepper.d.ts +1 -1
  1127. package/esm/stepper/stepper/stepper.js +1 -1
  1128. package/esm/switch/index.d.ts +1 -1
  1129. package/esm/switch/index.js +1 -1
  1130. package/esm/switch/switch-component-delegate.d.ts +1 -1
  1131. package/esm/switch/switch-component-delegate.js +1 -1
  1132. package/esm/switch/switch-constants.d.ts +1 -1
  1133. package/esm/switch/switch-constants.js +1 -1
  1134. package/esm/switch/switch.d.ts +1 -1
  1135. package/esm/switch/switch.js +38 -13
  1136. package/esm/table/index.d.ts +1 -1
  1137. package/esm/table/index.js +1 -1
  1138. package/esm/table/multi-sort-manager.d.ts +1 -1
  1139. package/esm/table/multi-sort-manager.js +1 -1
  1140. package/esm/table/table-adapter.d.ts +1 -1
  1141. package/esm/table/table-adapter.js +1 -1
  1142. package/esm/table/table-constants.d.ts +1 -1
  1143. package/esm/table/table-constants.js +1 -1
  1144. package/esm/table/table-foundation.d.ts +8 -1
  1145. package/esm/table/table-foundation.js +10 -1
  1146. package/esm/table/table-row.d.ts +1 -1
  1147. package/esm/table/table-row.js +1 -1
  1148. package/esm/table/table-utils.d.ts +1 -1
  1149. package/esm/table/table-utils.js +14 -7
  1150. package/esm/table/table.d.ts +8 -1
  1151. package/esm/table/table.js +9 -1
  1152. package/esm/table/types.d.ts +9 -5
  1153. package/esm/table/types.js +1 -1
  1154. package/esm/tabs/index.d.ts +1 -1
  1155. package/esm/tabs/index.js +1 -1
  1156. package/esm/tabs/tab/index.d.ts +1 -1
  1157. package/esm/tabs/tab/index.js +1 -1
  1158. package/esm/tabs/tab/tab-adapter.d.ts +1 -1
  1159. package/esm/tabs/tab/tab-adapter.js +1 -1
  1160. package/esm/tabs/tab/tab-constants.d.ts +1 -1
  1161. package/esm/tabs/tab/tab-constants.js +1 -1
  1162. package/esm/tabs/tab/tab-foundation.d.ts +1 -1
  1163. package/esm/tabs/tab/tab-foundation.js +1 -1
  1164. package/esm/tabs/tab/tab.d.ts +1 -1
  1165. package/esm/tabs/tab/tab.js +1 -1
  1166. package/esm/tabs/tab-bar/index.d.ts +1 -1
  1167. package/esm/tabs/tab-bar/index.js +1 -1
  1168. package/esm/tabs/tab-bar/tab-bar-adapter.d.ts +1 -1
  1169. package/esm/tabs/tab-bar/tab-bar-adapter.js +1 -1
  1170. package/esm/tabs/tab-bar/tab-bar-constants.d.ts +1 -1
  1171. package/esm/tabs/tab-bar/tab-bar-constants.js +1 -1
  1172. package/esm/tabs/tab-bar/tab-bar-foundation.d.ts +1 -1
  1173. package/esm/tabs/tab-bar/tab-bar-foundation.js +1 -1
  1174. package/esm/tabs/tab-bar/tab-bar.d.ts +1 -1
  1175. package/esm/tabs/tab-bar/tab-bar.js +1 -1
  1176. package/esm/text-field/index.d.ts +1 -1
  1177. package/esm/text-field/index.js +1 -1
  1178. package/esm/text-field/text-field-adapter.d.ts +1 -1
  1179. package/esm/text-field/text-field-adapter.js +1 -1
  1180. package/esm/text-field/text-field-component-delegate.d.ts +1 -1
  1181. package/esm/text-field/text-field-component-delegate.js +1 -1
  1182. package/esm/text-field/text-field-constants.d.ts +2 -2
  1183. package/esm/text-field/text-field-constants.js +1 -1
  1184. package/esm/text-field/text-field-foundation.d.ts +1 -1
  1185. package/esm/text-field/text-field-foundation.js +1 -1
  1186. package/esm/text-field/text-field.d.ts +1 -1
  1187. package/esm/text-field/text-field.js +2 -2
  1188. package/esm/theme/color-constants.d.ts +1 -1
  1189. package/esm/theme/color-constants.js +1 -1
  1190. package/esm/theme/index.d.ts +1 -1
  1191. package/esm/theme/index.js +1 -1
  1192. package/esm/theme/theme-utils.d.ts +1 -1
  1193. package/esm/theme/theme-utils.js +1 -1
  1194. package/esm/time-picker/index.d.ts +1 -1
  1195. package/esm/time-picker/index.js +1 -1
  1196. package/esm/time-picker/time-picker-adapter.d.ts +1 -1
  1197. package/esm/time-picker/time-picker-adapter.js +1 -1
  1198. package/esm/time-picker/time-picker-component-delegate.d.ts +1 -1
  1199. package/esm/time-picker/time-picker-component-delegate.js +1 -1
  1200. package/esm/time-picker/time-picker-constants.d.ts +1 -1
  1201. package/esm/time-picker/time-picker-constants.js +1 -1
  1202. package/esm/time-picker/time-picker-foundation.d.ts +1 -1
  1203. package/esm/time-picker/time-picker-foundation.js +4 -2
  1204. package/esm/time-picker/time-picker-utils.d.ts +1 -1
  1205. package/esm/time-picker/time-picker-utils.js +1 -1
  1206. package/esm/time-picker/time-picker.d.ts +1 -1
  1207. package/esm/time-picker/time-picker.js +1 -1
  1208. package/esm/toast/index.d.ts +1 -1
  1209. package/esm/toast/index.js +1 -1
  1210. package/esm/toast/toast-adapter.d.ts +1 -1
  1211. package/esm/toast/toast-adapter.js +1 -1
  1212. package/esm/toast/toast-constants.d.ts +1 -1
  1213. package/esm/toast/toast-constants.js +1 -1
  1214. package/esm/toast/toast-foundation.d.ts +1 -1
  1215. package/esm/toast/toast-foundation.js +1 -1
  1216. package/esm/toast/toast.d.ts +1 -1
  1217. package/esm/toast/toast.js +1 -1
  1218. package/esm/toolbar/index.d.ts +1 -1
  1219. package/esm/toolbar/index.js +1 -1
  1220. package/esm/toolbar/toolbar-constants.d.ts +1 -1
  1221. package/esm/toolbar/toolbar-constants.js +1 -1
  1222. package/esm/toolbar/toolbar.d.ts +1 -1
  1223. package/esm/toolbar/toolbar.js +3 -3
  1224. package/esm/tooltip/index.d.ts +1 -1
  1225. package/esm/tooltip/index.js +1 -1
  1226. package/esm/tooltip/tooltip-adapter.d.ts +1 -1
  1227. package/esm/tooltip/tooltip-adapter.js +1 -1
  1228. package/esm/tooltip/tooltip-constants.d.ts +1 -1
  1229. package/esm/tooltip/tooltip-constants.js +1 -1
  1230. package/esm/tooltip/tooltip-foundation.d.ts +1 -1
  1231. package/esm/tooltip/tooltip-foundation.js +1 -1
  1232. package/esm/tooltip/tooltip-utils.d.ts +1 -1
  1233. package/esm/tooltip/tooltip-utils.js +1 -1
  1234. package/esm/tooltip/tooltip.d.ts +1 -1
  1235. package/esm/tooltip/tooltip.js +1 -1
  1236. package/esm/utils/color-utils.d.ts +1 -1
  1237. package/esm/utils/color-utils.js +1 -1
  1238. package/esm/utils/index.d.ts +1 -1
  1239. package/esm/utils/index.js +1 -1
  1240. package/esm/view-switcher/index.d.ts +1 -1
  1241. package/esm/view-switcher/index.js +1 -1
  1242. package/esm/view-switcher/view/index.d.ts +1 -1
  1243. package/esm/view-switcher/view/index.js +1 -1
  1244. package/esm/view-switcher/view/view-constants.d.ts +1 -1
  1245. package/esm/view-switcher/view/view-constants.js +1 -1
  1246. package/esm/view-switcher/view/view.d.ts +1 -1
  1247. package/esm/view-switcher/view/view.js +1 -1
  1248. package/esm/view-switcher/view-switcher-adapter.d.ts +1 -1
  1249. package/esm/view-switcher/view-switcher-adapter.js +1 -1
  1250. package/esm/view-switcher/view-switcher-constants.d.ts +1 -1
  1251. package/esm/view-switcher/view-switcher-constants.js +1 -1
  1252. package/esm/view-switcher/view-switcher-foundation.d.ts +1 -1
  1253. package/esm/view-switcher/view-switcher-foundation.js +1 -1
  1254. package/esm/view-switcher/view-switcher.d.ts +1 -1
  1255. package/esm/view-switcher/view-switcher.js +1 -1
  1256. package/package.json +31 -4
  1257. package/styles/app-bar/_mixins.scss +1 -1
  1258. package/styles/app-bar/_variables.scss +1 -1
  1259. package/styles/app-bar/app-bar.scss +1 -1
  1260. package/styles/app-bar/search/_mixins.scss +1 -1
  1261. package/styles/app-bar/search/_variables.scss +1 -1
  1262. package/styles/app-bar/search/app-bar-search.scss +1 -1
  1263. package/styles/autocomplete/autocomplete.scss +1 -1
  1264. package/styles/avatar/_mixins.scss +1 -1
  1265. package/styles/avatar/_variables.scss +1 -1
  1266. package/styles/avatar/avatar.scss +1 -1
  1267. package/styles/backdrop/_mixins.scss +1 -1
  1268. package/styles/backdrop/_variables.scss +1 -1
  1269. package/styles/backdrop/backdrop.scss +1 -1
  1270. package/styles/badge/_mixins.scss +1 -1
  1271. package/styles/badge/_variables.scss +1 -1
  1272. package/styles/badge/badge.scss +1 -1
  1273. package/styles/banner/_mixins.scss +1 -1
  1274. package/styles/banner/_variables.scss +1 -1
  1275. package/styles/banner/banner.scss +1 -1
  1276. package/styles/bottom-sheet/_mixins.scss +1 -1
  1277. package/styles/bottom-sheet/_variables.scss +1 -1
  1278. package/styles/bottom-sheet/bottom-sheet.scss +1 -1
  1279. package/styles/busy-indicator/_mixins.scss +1 -1
  1280. package/styles/busy-indicator/_variables.scss +1 -1
  1281. package/styles/busy-indicator/busy-indicator.scss +1 -1
  1282. package/styles/busy-indicator/forge-busy-indicator.scss +1 -1
  1283. package/styles/button/_button-base.scss +1 -1
  1284. package/styles/button/_button-filled-theme.scss +1 -1
  1285. package/styles/button/_button-filled.scss +1 -1
  1286. package/styles/button/_button-outlined-theme.scss +1 -1
  1287. package/styles/button/_button-outlined.scss +1 -1
  1288. package/styles/button/_button-protected-theme.scss +1 -1
  1289. package/styles/button/_button-protected.scss +1 -1
  1290. package/styles/button/_button-ripple.scss +1 -1
  1291. package/styles/button/_button-shared-theme.scss +1 -1
  1292. package/styles/button/_button-text-theme.scss +1 -1
  1293. package/styles/button/_button-text.scss +1 -1
  1294. package/styles/button/_button.mixins.scss +1 -1
  1295. package/styles/button/_mixins.scss +1 -1
  1296. package/styles/button/forge-button.scss +1 -1
  1297. package/styles/button-toggle/button-toggle/_mixins.scss +1 -1
  1298. package/styles/button-toggle/button-toggle/button-toggle.scss +1 -1
  1299. package/styles/button-toggle/button-toggle-group/_mixins.scss +1 -1
  1300. package/styles/button-toggle/button-toggle-group/button-toggle-group.scss +1 -1
  1301. package/styles/calendar/_mixins.scss +1 -1
  1302. package/styles/calendar/_variables.scss +1 -1
  1303. package/styles/calendar/calendar-menu/_mixins.scss +1 -1
  1304. package/styles/calendar/calendar-menu/_variables.scss +1 -1
  1305. package/styles/calendar/calendar-menu/calendar-menu.scss +1 -1
  1306. package/styles/calendar/calendar.scss +1 -1
  1307. package/styles/card/_mixins.scss +1 -1
  1308. package/styles/card/_variables.scss +1 -1
  1309. package/styles/card/card.scss +1 -1
  1310. package/styles/checkbox/_checkbox-custom-properties.scss +1 -1
  1311. package/styles/checkbox/_checkbox-theme.scss +1 -1
  1312. package/styles/checkbox/_checkbox.mixins.scss +1 -1
  1313. package/styles/checkbox/checkbox.scss +1 -1
  1314. package/styles/chip-field/_base.scss +1 -1
  1315. package/styles/chip-field/_core.scss +1 -1
  1316. package/styles/chip-field/_mixins.scss +1 -1
  1317. package/styles/chip-field/_selector.scss +13 -14
  1318. package/styles/chip-field/_variables.scss +1 -1
  1319. package/styles/chip-field/chip-field.scss +2 -2
  1320. package/styles/chips/chip/_mixins.scss +1 -1
  1321. package/styles/chips/chip/_variables.scss +1 -1
  1322. package/styles/chips/chip/chip.scss +1 -1
  1323. package/styles/chips/chip-set/_mixins.scss +1 -1
  1324. package/styles/chips/chip-set/_variables.scss +1 -1
  1325. package/styles/chips/chip-set/chip-set.scss +1 -1
  1326. package/styles/circular-progress/_keyframes.scss +1 -1
  1327. package/styles/circular-progress/_mixins.scss +1 -1
  1328. package/styles/circular-progress/_variables.scss +1 -1
  1329. package/styles/circular-progress/circular-progress.scss +1 -1
  1330. package/styles/color-picker/_mixins.scss +1 -1
  1331. package/styles/color-picker/_variables.scss +1 -1
  1332. package/styles/color-picker/color-picker.scss +1 -1
  1333. package/styles/date-picker/date-picker.scss +1 -1
  1334. package/styles/date-range-picker/date-range-picker.scss +1 -1
  1335. package/styles/dialog/_mixins.scss +1 -1
  1336. package/styles/dialog/_variables.scss +1 -1
  1337. package/styles/dialog/dialog.scss +1 -1
  1338. package/styles/dialog/forge-dialog-utils.scss +1 -1
  1339. package/styles/dialog/forge-dialog.scss +1 -1
  1340. package/styles/divider/_mixins.scss +1 -1
  1341. package/styles/divider/_variables.scss +1 -1
  1342. package/styles/divider/divider.scss +1 -1
  1343. package/styles/drawer/base/_mixins.scss +1 -1
  1344. package/styles/drawer/base/_variables.scss +1 -1
  1345. package/styles/drawer/drawer/_mixins.scss +1 -1
  1346. package/styles/drawer/drawer/_variables.scss +1 -1
  1347. package/styles/drawer/drawer/drawer.scss +1 -1
  1348. package/styles/drawer/mini-drawer/_mixins.scss +1 -1
  1349. package/styles/drawer/mini-drawer/_variables.scss +1 -1
  1350. package/styles/drawer/mini-drawer/mini-drawer.scss +1 -1
  1351. package/styles/drawer/modal-drawer/_mixins.scss +1 -1
  1352. package/styles/drawer/modal-drawer/modal-drawer.scss +1 -1
  1353. package/styles/expansion-panel/_mixins.scss +1 -1
  1354. package/styles/expansion-panel/expansion-panel.scss +1 -1
  1355. package/styles/expansion-panel/forge-expansion-panel.scss +1 -1
  1356. package/styles/field/_base.scss +3 -3
  1357. package/styles/field/_core.scss +1 -1
  1358. package/styles/field/_selector.scss +2 -2
  1359. package/styles/field/_utils.scss +1 -1
  1360. package/styles/field/_variables.scss +1 -1
  1361. package/styles/file-picker/_mixins.scss +1 -1
  1362. package/styles/file-picker/_variables.scss +1 -1
  1363. package/styles/file-picker/file-picker.scss +1 -1
  1364. package/styles/floating-action-button/_extended-fab-theme.scss +1 -1
  1365. package/styles/floating-action-button/_fab-custom-properties.scss +1 -1
  1366. package/styles/floating-action-button/_fab-theme.scss +1 -1
  1367. package/styles/floating-action-button/_fab.mixins.scss +1 -1
  1368. package/styles/floating-action-button/forge-floating-action-button.scss +1 -1
  1369. package/styles/floating-label/_mixins.scss +1 -1
  1370. package/styles/floating-label/_variables.scss +1 -1
  1371. package/styles/floating-label/forge-floating-label.scss +1 -1
  1372. package/styles/forge-core.scss +1 -1
  1373. package/styles/forge-dark.scss +1 -1
  1374. package/styles/forge.scss +1 -1
  1375. package/styles/form-field/_mixins.scss +1 -1
  1376. package/styles/form-field/forge-form-field.scss +1 -1
  1377. package/styles/icon/_mixins.scss +1 -1
  1378. package/styles/icon/_variables.scss +1 -1
  1379. package/styles/icon/icon.scss +1 -1
  1380. package/styles/icon-button/_mixins.scss +1 -1
  1381. package/styles/icon-button/_variables.scss +1 -1
  1382. package/styles/icon-button/forge-icon-button.scss +1 -1
  1383. package/styles/inline-message/_mixins.scss +1 -1
  1384. package/styles/inline-message/_variables.scss +1 -1
  1385. package/styles/inline-message/inline-message.scss +1 -1
  1386. package/styles/label-value/_mixins.scss +1 -1
  1387. package/styles/label-value/_variables.scss +1 -1
  1388. package/styles/label-value/label-value.scss +1 -1
  1389. package/styles/linear-progress/_mixins.scss +1 -1
  1390. package/styles/linear-progress/_variables.scss +1 -1
  1391. package/styles/linear-progress/linear-progress.scss +1 -1
  1392. package/styles/list/list/_mixins.scss +1 -1
  1393. package/styles/list/list/list.scss +1 -1
  1394. package/styles/list/list-item/_mixins.scss +29 -18
  1395. package/styles/list/list-item/_variables.scss +14 -5
  1396. package/styles/list/list-item/list-item.scss +1 -1
  1397. package/styles/menu/menu.scss +1 -1
  1398. package/styles/open-icon/_mixins.scss +1 -1
  1399. package/styles/open-icon/_variables.scss +1 -1
  1400. package/styles/open-icon/open-icon.scss +1 -1
  1401. package/styles/page-state/_mixins.scss +1 -1
  1402. package/styles/page-state/_variables.scss +1 -1
  1403. package/styles/page-state/page-state.scss +1 -1
  1404. package/styles/paginator/_mixins.scss +1 -1
  1405. package/styles/paginator/_variables.scss +1 -1
  1406. package/styles/paginator/paginator.scss +1 -1
  1407. package/styles/popup/_mixins.scss +1 -1
  1408. package/styles/popup/_variables.scss +1 -1
  1409. package/styles/popup/forge-popup.scss +1 -1
  1410. package/styles/popup/popup.scss +5 -1
  1411. package/styles/product-icon/_mixins.scss +1 -1
  1412. package/styles/product-icon/_variables.scss +1 -1
  1413. package/styles/product-icon/product-icon.scss +1 -1
  1414. package/styles/profile-card/_mixins.scss +1 -1
  1415. package/styles/profile-card/profile-card.scss +1 -1
  1416. package/styles/quantity-field/_mixins.scss +1 -1
  1417. package/styles/quantity-field/forge-quantity-field.scss +1 -1
  1418. package/styles/quantity-field/quantity-field.scss +1 -1
  1419. package/styles/radio/_mixins.scss +1 -1
  1420. package/styles/radio/_radio-theme.scss +1 -1
  1421. package/styles/radio/radio.scss +1 -1
  1422. package/styles/ripple/forge-ripple.scss +1 -1
  1423. package/styles/scaffold/_mixins.scss +1 -1
  1424. package/styles/scaffold/forge-scaffold.scss +1 -1
  1425. package/styles/scaffold/scaffold.scss +1 -1
  1426. package/styles/select/select/_base.scss +1 -1
  1427. package/styles/select/select/_core.scss +1 -1
  1428. package/styles/select/select/_mixins.scss +1 -1
  1429. package/styles/select/select/_selector.scss +1 -1
  1430. package/styles/select/select/_variables.scss +1 -1
  1431. package/styles/select/select/select.scss +1 -1
  1432. package/styles/select/select-dropdown/select-dropdown.scss +1 -1
  1433. package/styles/skeleton/_mixins.scss +1 -1
  1434. package/styles/skeleton/_variables.scss +1 -1
  1435. package/styles/skeleton/skeleton.scss +1 -1
  1436. package/styles/slider/slider.scss +1 -1
  1437. package/styles/split-view/split-view/_mixins.scss +1 -1
  1438. package/styles/split-view/split-view/split-view.scss +1 -1
  1439. package/styles/split-view/split-view-panel/_mixins.scss +1 -1
  1440. package/styles/split-view/split-view-panel/_variables.scss +1 -1
  1441. package/styles/split-view/split-view-panel/split-view-panel.scss +1 -1
  1442. package/styles/stepper/step/_mixins.scss +1 -1
  1443. package/styles/stepper/step/_variables.scss +1 -1
  1444. package/styles/stepper/step/step.scss +1 -1
  1445. package/styles/stepper/stepper/_mixins.scss +1 -1
  1446. package/styles/stepper/stepper/stepper.scss +1 -1
  1447. package/styles/switch/_switch-mixins.scss +1 -1
  1448. package/styles/switch/_switch-theme.scss +1 -1
  1449. package/styles/switch/switch.scss +1 -1
  1450. package/styles/table/_mixins.scss +1 -1
  1451. package/styles/table/_variables.scss +1 -1
  1452. package/styles/table/forge-table.scss +1 -1
  1453. package/styles/tabs/tab/_mixins.scss +1 -1
  1454. package/styles/tabs/tab/_variables.scss +1 -1
  1455. package/styles/tabs/tab/tab.scss +1 -1
  1456. package/styles/tabs/tab-bar/_mixins.scss +1 -1
  1457. package/styles/tabs/tab-bar/tab-bar.scss +1 -1
  1458. package/styles/text-field/_base.scss +1 -1
  1459. package/styles/text-field/_core.scss +1 -1
  1460. package/styles/text-field/_mixins.scss +1 -1
  1461. package/styles/text-field/_selector.scss +1 -1
  1462. package/styles/text-field/_variables.scss +1 -1
  1463. package/styles/text-field/text-field.scss +1 -1
  1464. package/styles/theme/_custom-properties.scss +1 -1
  1465. package/styles/theme/_icon-mixins.scss +1 -1
  1466. package/styles/theme/_index.scss +1 -1
  1467. package/styles/theme/_keys.scss +1 -1
  1468. package/styles/theme/_theme-dark.scss +1 -1
  1469. package/styles/theme/_theme-utils.scss +1 -1
  1470. package/styles/theme/_theme-values.scss +1 -1
  1471. package/styles/theme/_theme.scss +1 -1
  1472. package/styles/theme/forge-material-icons.scss +1 -1
  1473. package/styles/theme/forge-theme.scss +1 -1
  1474. package/styles/time-picker/time-picker.scss +1 -1
  1475. package/styles/toast/_mixins.scss +1 -1
  1476. package/styles/toast/_variables.scss +1 -1
  1477. package/styles/toast/toast.scss +1 -1
  1478. package/styles/toolbar/_mixins.scss +2 -3
  1479. package/styles/toolbar/_variables.scss +2 -2
  1480. package/styles/toolbar/toolbar.scss +14 -1
  1481. package/styles/tooltip/_mixins.scss +1 -1
  1482. package/styles/tooltip/_variables.scss +1 -1
  1483. package/styles/tooltip/forge-tooltip.scss +1 -1
  1484. package/styles/typography/_index.scss +1 -1
  1485. package/styles/typography/_mixins.scss +1 -1
  1486. package/styles/typography/_variables.scss +1 -1
  1487. package/styles/typography/forge-form.scss +1 -1
  1488. package/styles/typography/forge-typography.scss +1 -1
  1489. package/styles/utils/_functions-grid.scss +1 -1
  1490. package/styles/utils/_mixins-animation.scss +1 -1
  1491. package/styles/utils/_mixins-core.scss +1 -1
  1492. package/styles/utils/_mixins-flex.scss +1 -1
  1493. package/styles/utils/_mixins-grid.scss +1 -1
  1494. package/styles/utils/_mixins-media.scss +1 -1
  1495. package/styles/utils/_mixins.scss +1 -1
  1496. package/styles/utils/_variables-flex.scss +1 -1
  1497. package/styles/utils/_variables-grid.scss +1 -1
  1498. package/styles/utils/_variables-media.scss +1 -1
  1499. package/styles/utils/forge-flex.scss +1 -1
  1500. package/styles/utils/forge-grid.scss +1 -1
  1501. package/styles/utils/forge-utils.scss +1 -1
  1502. package/styles/view-switcher/_mixins.scss +1 -1
  1503. package/styles/view-switcher/_variables.scss +1 -1
  1504. package/styles/view-switcher/view/view.scss +1 -1
  1505. package/styles/view-switcher/view-switcher.scss +1 -1
  1506. package/dist/esm/chunks/chunk.2SAHWDGJ.js +0 -7
  1507. package/dist/esm/chunks/chunk.33Q5FK2H.js +0 -7
  1508. package/dist/esm/chunks/chunk.35U4OX7S.js +0 -7
  1509. package/dist/esm/chunks/chunk.3E5QKMHL.js +0 -7
  1510. package/dist/esm/chunks/chunk.3E5QKMHL.js.map +0 -7
  1511. package/dist/esm/chunks/chunk.3UMBCR4P.js +0 -7
  1512. package/dist/esm/chunks/chunk.3UMBCR4P.js.map +0 -7
  1513. package/dist/esm/chunks/chunk.444GNOS4.js +0 -7
  1514. package/dist/esm/chunks/chunk.4KBQ5AJJ.js +0 -7
  1515. package/dist/esm/chunks/chunk.4RNKUXN3.js +0 -7
  1516. package/dist/esm/chunks/chunk.4RNKUXN3.js.map +0 -7
  1517. package/dist/esm/chunks/chunk.54QFNVMG.js +0 -7
  1518. package/dist/esm/chunks/chunk.5K5SIZRX.js +0 -7
  1519. package/dist/esm/chunks/chunk.5WMEFHVN.js +0 -7
  1520. package/dist/esm/chunks/chunk.5XQVZQ4U.js +0 -7
  1521. package/dist/esm/chunks/chunk.73G2CH2D.js +0 -7
  1522. package/dist/esm/chunks/chunk.75LTLEZ7.js +0 -7
  1523. package/dist/esm/chunks/chunk.7NXPOEXV.js +0 -7
  1524. package/dist/esm/chunks/chunk.7NXPOEXV.js.map +0 -7
  1525. package/dist/esm/chunks/chunk.7O7V3N4A.js +0 -7
  1526. package/dist/esm/chunks/chunk.7ZS4N2FT.js +0 -8
  1527. package/dist/esm/chunks/chunk.7ZS4N2FT.js.map +0 -7
  1528. package/dist/esm/chunks/chunk.APGFXXJ7.js +0 -7
  1529. package/dist/esm/chunks/chunk.AVIF5W7A.js +0 -7
  1530. package/dist/esm/chunks/chunk.B5ABD4CZ.js +0 -7
  1531. package/dist/esm/chunks/chunk.B5ABD4CZ.js.map +0 -7
  1532. package/dist/esm/chunks/chunk.BCUBTR5O.js +0 -7
  1533. package/dist/esm/chunks/chunk.BFNAQQCU.js +0 -7
  1534. package/dist/esm/chunks/chunk.BFNAQQCU.js.map +0 -7
  1535. package/dist/esm/chunks/chunk.BOENNFXE.js +0 -7
  1536. package/dist/esm/chunks/chunk.BOENNFXE.js.map +0 -7
  1537. package/dist/esm/chunks/chunk.CNL6EUCO.js +0 -7
  1538. package/dist/esm/chunks/chunk.CNL6EUCO.js.map +0 -7
  1539. package/dist/esm/chunks/chunk.CV5E5W6I.js +0 -7
  1540. package/dist/esm/chunks/chunk.D3LMXSX6.js +0 -7
  1541. package/dist/esm/chunks/chunk.DIYJJHWP.js +0 -7
  1542. package/dist/esm/chunks/chunk.DPCNIOLL.js +0 -7
  1543. package/dist/esm/chunks/chunk.EJ4ASQET.js +0 -7
  1544. package/dist/esm/chunks/chunk.ELS7SQAV.js +0 -7
  1545. package/dist/esm/chunks/chunk.ELS7SQAV.js.map +0 -7
  1546. package/dist/esm/chunks/chunk.FPV4XEUK.js +0 -7
  1547. package/dist/esm/chunks/chunk.G77PXLAU.js +0 -7
  1548. package/dist/esm/chunks/chunk.HN4PXH3D.js +0 -7
  1549. package/dist/esm/chunks/chunk.HSJQA42U.js +0 -7
  1550. package/dist/esm/chunks/chunk.HUWXZ4ZN.js +0 -29
  1551. package/dist/esm/chunks/chunk.HUWXZ4ZN.js.map +0 -7
  1552. package/dist/esm/chunks/chunk.I2YRKTG7.js +0 -7
  1553. package/dist/esm/chunks/chunk.IFZXG3LI.js +0 -7
  1554. package/dist/esm/chunks/chunk.IJIKFXUT.js +0 -7
  1555. package/dist/esm/chunks/chunk.IMK2LFWR.js.map +0 -7
  1556. package/dist/esm/chunks/chunk.JB2N65SR.js +0 -7
  1557. package/dist/esm/chunks/chunk.JB2N65SR.js.map +0 -7
  1558. package/dist/esm/chunks/chunk.JNOCXQVB.js +0 -7
  1559. package/dist/esm/chunks/chunk.JNOCXQVB.js.map +0 -7
  1560. package/dist/esm/chunks/chunk.K43ZNKT2.js +0 -7
  1561. package/dist/esm/chunks/chunk.K753A3KI.js +0 -29
  1562. package/dist/esm/chunks/chunk.KLK2FBDP.js +0 -7
  1563. package/dist/esm/chunks/chunk.KLK2FBDP.js.map +0 -7
  1564. package/dist/esm/chunks/chunk.KYCC3C3M.js +0 -7
  1565. package/dist/esm/chunks/chunk.KYCC3C3M.js.map +0 -7
  1566. package/dist/esm/chunks/chunk.LLHA3SQR.js +0 -7
  1567. package/dist/esm/chunks/chunk.LV7GGIUI.js +0 -7
  1568. package/dist/esm/chunks/chunk.LV7GGIUI.js.map +0 -7
  1569. package/dist/esm/chunks/chunk.MGTNCCW3.js +0 -7
  1570. package/dist/esm/chunks/chunk.MNBJMPJ6.js +0 -7
  1571. package/dist/esm/chunks/chunk.NGIBMR3Q.js +0 -7
  1572. package/dist/esm/chunks/chunk.NGIBMR3Q.js.map +0 -7
  1573. package/dist/esm/chunks/chunk.NNGE722W.js +0 -7
  1574. package/dist/esm/chunks/chunk.NNGE722W.js.map +0 -7
  1575. package/dist/esm/chunks/chunk.O3G6ZLJN.js +0 -7
  1576. package/dist/esm/chunks/chunk.O4Y6QT46.js +0 -12
  1577. package/dist/esm/chunks/chunk.OAKTW64X.js +0 -7
  1578. package/dist/esm/chunks/chunk.OAKTW64X.js.map +0 -7
  1579. package/dist/esm/chunks/chunk.OG2BI3UW.js +0 -7
  1580. package/dist/esm/chunks/chunk.OOBE3XRM.js +0 -29
  1581. package/dist/esm/chunks/chunk.OUEF6VQ6.js +0 -7
  1582. package/dist/esm/chunks/chunk.P6B3UWJ5.js +0 -7
  1583. package/dist/esm/chunks/chunk.PFD2SVJ4.js +0 -7
  1584. package/dist/esm/chunks/chunk.Q6L7T6OJ.js +0 -7
  1585. package/dist/esm/chunks/chunk.Q6L7T6OJ.js.map +0 -7
  1586. package/dist/esm/chunks/chunk.QJPH24V4.js +0 -7
  1587. package/dist/esm/chunks/chunk.QXLPBYMX.js +0 -7
  1588. package/dist/esm/chunks/chunk.QXLPBYMX.js.map +0 -7
  1589. package/dist/esm/chunks/chunk.RKKJB3EE.js +0 -7
  1590. package/dist/esm/chunks/chunk.RKKJB3EE.js.map +0 -7
  1591. package/dist/esm/chunks/chunk.RPPBBBYG.js +0 -7
  1592. package/dist/esm/chunks/chunk.SJSLC6XF.js +0 -7
  1593. package/dist/esm/chunks/chunk.SJSLC6XF.js.map +0 -7
  1594. package/dist/esm/chunks/chunk.T7ZJDAXV.js +0 -29
  1595. package/dist/esm/chunks/chunk.TLHI6K2R.js +0 -7
  1596. package/dist/esm/chunks/chunk.TR64DV3G.js +0 -7
  1597. package/dist/esm/chunks/chunk.TR64DV3G.js.map +0 -7
  1598. package/dist/esm/chunks/chunk.VMWS5OOZ.js +0 -7
  1599. package/dist/esm/chunks/chunk.VWSC3NDJ.js +0 -7
  1600. package/dist/esm/chunks/chunk.VWSC3NDJ.js.map +0 -7
  1601. package/dist/esm/chunks/chunk.WNOSTPQQ.js +0 -7
  1602. package/dist/esm/chunks/chunk.WQE6OCJR.js +0 -7
  1603. package/dist/esm/chunks/chunk.WQE6OCJR.js.map +0 -7
  1604. package/dist/esm/chunks/chunk.WV45FGTW.js +0 -7
  1605. package/dist/esm/chunks/chunk.X77WVI2H.js +0 -7
  1606. package/dist/esm/chunks/chunk.X77WVI2H.js.map +0 -7
  1607. package/dist/esm/chunks/chunk.XXA6KNXT.js +0 -7
  1608. package/dist/esm/chunks/chunk.XXA6KNXT.js.map +0 -7
  1609. package/dist/esm/chunks/chunk.XYBFFTXS.js +0 -29
  1610. package/dist/esm/chunks/chunk.Y6MPWPZU.js +0 -7
  1611. package/dist/esm/chunks/chunk.Y7Q6QI5V.js +0 -7
  1612. package/dist/esm/chunks/chunk.Y7Q6QI5V.js.map +0 -7
  1613. package/dist/esm/chunks/chunk.YAJT3P6V.js +0 -7
  1614. package/dist/esm/chunks/chunk.YHHIPP2F.js +0 -7
  1615. package/dist/esm/chunks/chunk.YPUWII7L.js +0 -7
  1616. package/dist/esm/chunks/chunk.YPUWII7L.js.map +0 -7
  1617. package/dist/esm/chunks/chunk.YWKKZLZ2.js +0 -29
  1618. package/dist/esm/chunks/chunk.ZMH4OL2E.js +0 -7
  1619. package/dist/esm/chunks/chunk.ZMH4OL2E.js.map +0 -7
  1620. /package/dist/esm/chunks/{chunk.A23NSEWA.js.map → chunk.5PXABBKU.js.map} +0 -0
  1621. /package/dist/esm/chunks/{chunk.J3NHIF6W.js.map → chunk.65G33MJV.js.map} +0 -0
  1622. /package/dist/esm/chunks/{chunk.O3G6ZLJN.js.map → chunk.CN7DHS4J.js.map} +0 -0
  1623. /package/dist/esm/chunks/{chunk.K43ZNKT2.js.map → chunk.DRI2NLIB.js.map} +0 -0
  1624. /package/dist/esm/chunks/{chunk.URBXDOF7.js.map → chunk.FL6SJHQU.js.map} +0 -0
  1625. /package/dist/esm/chunks/{chunk.6APYGKNX.js.map → chunk.HWVLZ44Q.js.map} +0 -0
  1626. /package/dist/esm/chunks/{chunk.VLTJFKGZ.js.map → chunk.MNPORZ4F.js.map} +0 -0
  1627. /package/dist/esm/chunks/{chunk.WV45FGTW.js.map → chunk.NG5EGZ5Y.js.map} +0 -0
  1628. /package/dist/esm/chunks/{chunk.SHT6BCLY.js.map → chunk.NYMNX3S7.js.map} +0 -0
  1629. /package/dist/esm/chunks/{chunk.NLZKJ53B.js.map → chunk.OGZOXNGT.js.map} +0 -0
  1630. /package/dist/esm/chunks/{chunk.BSZ2LBJX.js.map → chunk.OOW3UKT4.js.map} +0 -0
  1631. /package/dist/esm/chunks/{chunk.4T5TGQFG.js.map → chunk.YPMN5U7C.js.map} +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/calendar/calendar-utils.ts", "../../src/calendar/calendar-adapter.ts", "../../src/calendar/calendar-foundation.ts", "../../src/calendar/calendar.ts", "../../src/calendar/calendar-component-delegate.ts", "../../src/calendar/index.ts"],
4
+ "sourcesContent": ["import { getEventPath, isArray, isValidDate } from '@tylertech/forge-core';\n\nimport { isSameDate } from '../core/utils/date-utils';\nimport { ICalendarMenuOption } from './calendar-menu/calendar-menu-constants';\nimport { CALENDAR_CONSTANTS, CalendarEventBuilder, DayOfWeek, ICalendarEvent, ICalendarNumberRange, ICalendarMenuMonthConfig, ICalendarMenuYearConfig, ICalendarDisabledDateParams, CalendarView } from './calendar-constants';\nimport { getLocalizedMonth, getLocalizedYear } from './calendar-locale-utils';\nimport { DateRange } from './core/date-range';\nimport { eventIncludesDate, eventIncludesElement } from './calendar-dom-utils';\n\n/** Returns an array of dates encompassing an entire month and the beginning and end of adjacent months to fill weeks. */\nexport function getMonthDates(month: number, year: number, firstDayOfWeek: DayOfWeek = DayOfWeek.Sunday): Date[] {\n const dates: Date[] = [];\n const startDate = getFirstDateOfWeek(new Date(year, month, 1), firstDayOfWeek);\n const endDate = new Date(startDate);\n endDate.setDate(startDate.getDate() + CALENDAR_CONSTANTS.numbers.MONTH_LENGTH);\n\n for (const d = startDate; d < endDate; d.setDate(d.getDate() + 1)) {\n dates.push(new Date(d));\n }\n return dates;\n}\n\n/** Returns an array of the dates in single week given a date from the week. */\nexport function getWeekDates(date: Date, firstDayOfWeek: DayOfWeek = DayOfWeek.Sunday): Date[] {\n const dates: Date[] = [];\n const startDate = getFirstDateOfWeek(date, firstDayOfWeek);\n const endDate = new Date(startDate);\n endDate.setDate(startDate.getDate() + 7);\n\n for (const d = startDate; d < endDate; d.setDate(d.getDate() + 1)) {\n dates.push(new Date(d));\n }\n return dates;\n}\n\n/** Returns the first date of the week containing the given date. */\nexport function getFirstDateOfWeek(date: Date, firstDayOfWeek: DayOfWeek = DayOfWeek.Sunday): Date {\n const day = date.getDay();\n const firstDate = new Date(date);\n const diff = day >= firstDayOfWeek ? day - firstDayOfWeek : 7 + (day - firstDayOfWeek);\n firstDate.setDate(date.getDate() - diff);\n firstDate.setHours(0, 0, 0, 0);\n return firstDate;\n}\n\n/** Returns the last date of the week containing the given date. */\nexport function getLastDateOfWeek(date: Date, firstDayOfWeek: DayOfWeek = DayOfWeek.Sunday): Date {\n const lastDate = getFirstDateOfWeek(date, firstDayOfWeek);\n lastDate.setDate(lastDate.getDate() + 6);\n return lastDate;\n}\n\n/** Returns the day of week of the first date of the given month. */\nexport function getFirstDayOfMonth(month: number, year: number): DayOfWeek {\n const date = new Date(year, month, 1);\n return date.getDay();\n}\n\n/** Returns an array of day strings for a week starting on the given first day of week. */\nexport function getSortedDaysOfWeek(firstDayOfWeek: DayOfWeek = DayOfWeek.Sunday): DayOfWeek[] {\n const days: DayOfWeek[] = [];\n let day = firstDayOfWeek;\n do {\n days.push(day);\n day += 1;\n day %= 7;\n } while (day !== firstDayOfWeek);\n return days;\n}\n\n/** Returns whether the given date object is today. */\nexport function isToday(date: Date): boolean {\n return isSameDate(new Date(), date);\n}\n\n/** Returns whether the given date is in a given month. */\nexport function isInMonth(date: Date, month: number, year: number): boolean {\n return date.getMonth() === month && date.getFullYear() === year;\n}\n\n/** Returns whether the given date falls between two other dates. */\nexport function isInRange(date: Date, start: Date, end: Date): boolean {\n return (date > start && date < end) || isSameDate(date, start) || isSameDate(date, end);\n}\n\n/** Sorts an array of dates from earliest to latest. */\nexport function sortDates(dates: Date[]): Date[] {\n return dates.sort((a, b) => a.getTime() - b.getTime());\n}\n\n/** Splits an array into groups of seven. */\nexport function splitIntoWeeks<T>(array: T[]): T[][] {\n const result: T[][] = [];\n for (let i = 0; i < array.length; i += 7) {\n const chunk = array.slice(i, i + 7);\n result.push(chunk);\n }\n return result;\n}\n\n/** Returns a date range from an array of dates. */\nexport function getDateRangeFromDates(dates: Date[]): DateRange {\n if (!dates.length) {\n return new DateRange();\n }\n if (dates.length === 1) {\n return new DateRange({from: new Date(dates[0])});\n }\n const minAndMax = getMinAndMaxDates(dates);\n return new DateRange({from: minAndMax[0], to: minAndMax[minAndMax.length - 1]});\n}\n\n/** Returns an array of dates from a date range. */\nexport function getDatesFromDateRange(range: DateRange): Date[] {\n const dates: Date[] = [];\n if (range.from) {\n dates.push(new Date(range.from));\n }\n if (range.to) {\n dates.push(new Date(range.to));\n }\n return dates;\n}\n\n/** Returns the earliest and latest dates in an array as an array. */\nexport function getMinAndMaxDates(dates: Date[]): Date[] {\n if (!dates.length) {\n return [];\n }\n if (dates.length === 1) {\n return [new Date(dates[0])];\n }\n const sortedDates = sortDates(dates.slice().map(d => new Date(d)));\n return [new Date(sortedDates[0]), new Date(sortedDates[sortedDates.length - 1])];\n}\n\n/** Returns an array of ICalendarDates that fall between two other dates. */\nexport function getDatesInRange(dates: Date[], start: Date, end: Date): Date[] {\n if (!start || !end) {\n return [];\n }\n return dates.filter(d => {\n return isInRange(d, start, end);\n });\n}\n\n/** Gets an accessible description of events. */\nexport function getEventDescriptions(events: ICalendarEvent[]): string {\n let description = `${events.length} event${events.length === 1 ? '' : 's'}`;\n const labels = events.map(e => e.label).join(', ');\n if (labels?.length) {\n description += `: ${labels}`;\n }\n return description;\n}\n\n/** Gets a date from a string of numbers postfixed by y, m, w, or d */\nexport function parseDateOffset(offset: string): Date {\n const date = new Date();\n const parts = offset.match(/-?[0-9]*[a-zA-Z]/g)?.map(p => p.trim()) ?? [];\n parts.forEach(p => {\n const postfix = p.slice(-1);\n const value = +p.slice(0, -1);\n switch (postfix) {\n case 'y':\n date.setFullYear(date.getFullYear() + value);\n break;\n case 'm':\n date.setMonth(date.getMonth() + value);\n break;\n case 'w':\n date.setDate(date.getDate() + value * 7);\n break;\n case 'd':\n date.setDate(date.getDate() + value);\n break;\n }\n });\n date.setHours(0, 0, 0, 0);\n return date;\n}\n\n/** Gets a min and max year from a string of two numbers separated by : and optionally prefixed with + or - */\nexport function parseYearRange(range: string): ICalendarNumberRange {\n const parts = range.split(':');\n if (parts?.length < 2) {\n return {min: 1970, max: 1970};\n }\n const thisYear = new Date().getFullYear();\n const parsedParts = parts.slice(0, 2).map(p => {\n if (p.startsWith('-')) {\n return thisYear - +p.substring(1);\n } else if (p.startsWith('+')) {\n return thisYear + +p.substring(1);\n }\n return +p;\n });\n return {min: parsedParts[0], max: parsedParts[1]};\n}\n\n/** Gets an array of month ICalendarMenuOptions. */\nexport function getMonthOptions(config: ICalendarMenuMonthConfig): ICalendarMenuOption[] {\n const minYear = config.min?.getFullYear() ?? 0;\n const maxYear = config.max?.getFullYear() ?? 0;\n const minMonth = config.min?.getMonth() ?? -1;\n const maxMonth = config.max?.getMonth() ?? 12;\n return [...Array(12).keys()].map(k => {\n const lessThanMin = config.min ? config.selectedYear < minYear || config.selectedYear === minYear && k < minMonth : false;\n const greaterThanMax = config.max ? config.selectedYear > maxYear || config.selectedYear === maxYear && k > maxMonth : false;\n return {\n value: k,\n label: getLocalizedMonth(k, 'long', config.locale),\n selected: k === config.selectedMonth,\n disabled: lessThanMin || greaterThanMax\n };\n });\n}\n\n/** Gets an array of year ICalendarMenuOptions. */\nexport function getYearOptions(config: ICalendarMenuYearConfig): ICalendarMenuOption[] {\n const menuOptions: ICalendarMenuOption[] = [];\n const offset = config.yearInView % CALENDAR_CONSTANTS.numbers.YEARS_IN_VIEW;\n const start = config.yearInView - offset;\n for (let i = start; i < start + CALENDAR_CONSTANTS.numbers.YEARS_IN_VIEW; i++) {\n menuOptions.push({\n value: i,\n label: getLocalizedYear(i, 'numeric', config.locale),\n selected: i === config.selectedYear,\n disabled: i < config.min || i > config.max\n });\n }\n return menuOptions;\n}\n\n/** Gets an array of year ICalendarMenuOptions including every year in range. */\nexport function getAllYearOptions(config: ICalendarMenuYearConfig): ICalendarMenuOption[] {\n const menuOptions: ICalendarMenuOption[] = [];\n for (let i = config.min; i <= config.max; i++) {\n menuOptions.push({\n value: i,\n label: getLocalizedYear(i, 'numeric', config.locale),\n selected: i === config.selectedYear\n });\n }\n return menuOptions;\n}\n\n/** Checks whether a date is present in the given array. */\nexport function isSelected(date: Date, values: Date[]): boolean {\n return values.some(d => isSameDate(d, date));\n}\n\n/** Checks wheter a date is disabled. */\nexport function isDisabled(date: Date, params: ICalendarDisabledDateParams): boolean {\n if ((params.minDate && date < params.minDate) || (params.maxDate && date > params.maxDate)) {\n return true;\n }\n if (params.otherMonth) {\n return true;\n }\n if (params.disabledDates.some(d => isSameDate(d, date))) {\n return true;\n }\n if (params.disabledDaysOfWeek.includes(date.getDay())) {\n return true;\n }\n if (params.builder && params.builder(date)) {\n return true;\n }\n return false;\n}\n\n/** Returns the index of the given date in the dates array. */\nexport function getIndexOfDate(date: Date, dates: Date[]): number {\n return dates.findIndex(d => isSameDate(d, date));\n}\n\n/** Returns all the events on the given date. */\nexport function getEventsOnDate(date: Date, events: ICalendarEvent[], builder: CalendarEventBuilder | undefined): ICalendarEvent[] {\n const eventsOnDate = events.filter(e => isSameDate(e.date, date));\n if (builder) {\n const builtEvents = builder(date);\n if (builtEvents) {\n if (isArray(builtEvents)) {\n eventsOnDate.push(...builtEvents as ICalendarEvent[]);\n } else {\n eventsOnDate.push(builtEvents as ICalendarEvent);\n }\n }\n }\n return eventsOnDate;\n}\n\n/** Gets all enabled dates between the first and last items in an array of dates. */\nexport function getMultipleFromRange(dates: Date[], disabledParams?: ICalendarDisabledDateParams): Date[] {\n if (!dates.length) {\n return [];\n }\n const current = new Date(dates[0]);\n const last = dates[dates.length - 1];\n const array: Date[] = [];\n while (current <= last) {\n if (!disabledParams || !isDisabled(current, disabledParams)) {\n array.push(new Date(current));\n }\n current.setDate(current.getDate() + 1);\n }\n return array;\n}\n\n/** Gets a date or null from a date, string, or date offset. */\nexport function coerceDateFromValue(value?: Date | string | null): Date | null {\n let date: Date | null = null;\n\n if (typeof value === 'string' && !value.length) {\n value = null;\n }\n\n if (value != null) {\n if (isValidDate(new Date(value as string | Date))) {\n date = new Date(value as Date);\n } else if ((value as string).length) {\n date = parseDateOffset(value as string);\n }\n date?.setHours(0, 0, 0, 0);\n }\n\n return date;\n}\n\n/** Returns whether an event should be handled or ignored. */\nexport function shouldHandleEvent(evt: Event, view: CalendarView, preventFocus: boolean): boolean {\n return preventFocus || !getEventPath(evt).length || !!(view === 'date' && eventIncludesDate(evt)) || !!(view !== 'date' && eventIncludesElement(evt, CALENDAR_CONSTANTS.ids.MENU));\n}\n", "import { getShadowElement, removeAllChildren, appendToAttribute, toggleAttribute, toggleOnAttribute } from '@tylertech/forge-core';\n\nimport { BaseAdapter, IBaseAdapter } from '../core/base';\nimport { CALENDAR_CONSTANTS, DayOfWeek, ICalendarDateOptions, ICalendarDayOptions, ICalendarEvent, ICalendarDateConfig } from './calendar-constants';\nimport { ICalendarComponent } from './calendar';\nimport { splitIntoWeeks } from './calendar-utils';\nimport { getAccessibleHeader, getClearButton, getDateElement, getDateId, getDateRow, getDateSpacerElement, getDayElement, getEventElement, getEventWrapperElement, getEventWrapperId, getFooter, getHeader, getMonthButtonContent, getTodayButton, getTooltip, getYearButtonContent, setTabindexOnElement } from './calendar-dom-utils';\nimport { getLocalizedMonth, getLocalizedYear } from './calendar-locale-utils';\nimport { CalendarDirection, CALENDAR_MENU_CONSTANTS, ICalendarMenuOption, ICalendarMenuComponent, CalendarMenuAnimationType } from './calendar-menu';\n\nexport interface ICalendarAdapter extends IBaseAdapter {\n animateIntoSelectionMenu(options: ICalendarMenuOption[], direction: CalendarDirection, setFocus: boolean): void;\n closeMenu(): void;\n moveMenuFocusDown(): void;\n moveMenuFocusBackward(): boolean;\n moveMenuFocusForward(): boolean;\n moveMenuFocusUp(): void;\n openMenuAsGrid(options: ICalendarMenuOption[], setFocus: boolean): void;\n openMenuAsList(options: ICalendarMenuOption[], setFocus: boolean): void;\n registerClearButtonListener(listener: (evt: Event) => void): void;\n registerDateClickListener(listener: (evt: Event) => void): void;\n registerHoverListener(listener: (evt: Event) => void): void;\n registerKeydownListener(listener: (evt: KeyboardEvent) => void): void;\n registerMenuFocusChangeEventListener(listener: (evt: CustomEvent<number>) => void): void;\n registerMenuListener(listener: (evt: CustomEvent<number>) => void): void;\n registerMonthButtonListener(listener: (evt: Event) => void): void;\n registerNextButtonListener(listener: (evt: Event) => void): void;\n registerPreventFocusListener(listener: (evt: Event) => void): void;\n registerPreviousButtonListener(listener: (evt: Event) => void): void;\n registerTodayButtonListener(listener: (evt: Event) => void): void;\n registerYearButtonListener(listener: (evt: Event) => void): void;\n removeClearButton(): void;\n removeFooter(): void;\n removeHeader(): void;\n removeTodayButton(): void;\n replaceDate(date: ICalendarDateConfig, options?: ICalendarDateOptions): void;\n replaceDateWithSpacer(date: Date): void;\n selectFocusedMenuItem(): void;\n setAllDatesUnfocusable(): void;\n setClearButton(): void;\n setContainerClass(name: string, value: boolean): void;\n setDateDisabled(date: Date, value: boolean): void;\n setDateDescription(date: Date, value?: string): void;\n setDates(dates: ICalendarDateConfig[], options?: ICalendarDateOptions): void;\n setDateSelected(date: Date, value: boolean): void;\n setDateTooltip(date: Date, value?: string): void;\n setDateViewHidden(value: boolean): void;\n setDays(days: DayOfWeek[], options?: ICalendarDayOptions): void;\n setEvent(event: ICalendarEvent, overflow?: boolean): void;\n setEventWrapperOnDate(date: Date, value: boolean): void;\n setFooter(): void;\n setHeader(): void;\n setMenuAnimation(value: CalendarMenuAnimationType): void;\n setMonth(month: number, locale?: string): void;\n setMonthButtonPressed(value: boolean): void;\n setMultiple(value: boolean): void;\n setNextButtonDisabled(value: boolean): void;\n setNextButtonLabel(label: string): void;\n setPreventFocusOnMenu(value: boolean): void;\n setPreviousButtonDisabled(value: boolean): void;\n setPreviousButtonLabel(label: string): void;\n setRange(dates: Date[] | null): void;\n setRangeEnd(date: Date | null): void;\n setRangeStart(date: Date | null): void;\n setActiveDate(date: Date, setFocus: boolean, preventFocus?: boolean): void;\n setTodayButton(): void;\n setWeekend(date: Date, value: boolean): void;\n setYear(year: number, locale?: string): void;\n setYearButtonPressed(value: boolean): void;\n toggleContainerAttribute(hasAttribute: boolean, name: string, value?: string): void;\n unregisterClearButtonListener(listener: (evt: Event) => void): void;\n unregisterDateClickListener(listener: (evt: Event) => void): void;\n unregisterHoverListener(listener: (evt: Event) => void): void;\n unregisterMenuFocusChangeEventListener(listener: (evt: CustomEvent<number>) => void): void;\n unregisterMenuListener(listener: (evt: CustomEvent) => void): void;\n unregisterMonthButtonListener(listener: (evt: Event) => void): void;\n unregisterNextButtonListener(listener: (evt: Event) => void): void;\n unregisterPreventFocusListener(listener: (evt: Event) => void): void;\n unregisterPreviousButtonListener(listener: (evt: Event) => void): void;\n unregisterTodayButtonListener(listener: (evt: Event) => void): void;\n unregisterYearButtonListener(listener: (evt: Event) => void): void;\n}\n\nexport class CalendarAdapter extends BaseAdapter<ICalendarComponent> implements ICalendarAdapter {\n private _container: HTMLElement;\n private _dateView: HTMLElement;\n private _dayRow: HTMLElement;\n private _dateGrid: HTMLElement;\n private _menu: ICalendarMenuComponent;\n\n constructor(component: ICalendarComponent) {\n super(component);\n this._container = getShadowElement(component, CALENDAR_CONSTANTS.selectors.CALENDAR);\n this._dateView = getShadowElement(component, CALENDAR_CONSTANTS.selectors.DATE_VIEW);\n this._dayRow = getShadowElement(component, CALENDAR_CONSTANTS.selectors.DAY_ROW);\n this._dateGrid = getShadowElement(component, CALENDAR_CONSTANTS.selectors.DATE_GRID);\n this._menu = getShadowElement(component, CALENDAR_CONSTANTS.selectors.MENU) as ICalendarMenuComponent;\n }\n\n public toggleContainerAttribute(hasAttribute: boolean, name: string, value?: string): void {\n toggleAttribute(this._container, hasAttribute, name, value);\n }\n\n public registerMonthButtonListener(listener: (evt: Event) => void): void {\n const monthButton = this._container.querySelector(CALENDAR_CONSTANTS.selectors.MONTH_BUTTON);\n monthButton?.addEventListener('click', listener);\n }\n\n public unregisterMonthButtonListener(listener: (evt: Event) => void): void {\n const monthButton = this._container.querySelector(CALENDAR_CONSTANTS.selectors.MONTH_BUTTON);\n monthButton?.removeEventListener('click', listener);\n }\n\n public registerYearButtonListener(listener: (evt: Event) => void): void {\n const yearButton = this._container.querySelector(CALENDAR_CONSTANTS.selectors.YEAR_BUTTON);\n yearButton?.addEventListener('click', listener);\n }\n\n public unregisterYearButtonListener(listener: (evt: Event) => void): void {\n const yearButton = this._container.querySelector(CALENDAR_CONSTANTS.selectors.YEAR_BUTTON);\n yearButton?.removeEventListener('click', listener);\n }\n\n public registerMenuListener(listener: (evt: CustomEvent<number>) => void): void {\n this._menu.addEventListener(CALENDAR_MENU_CONSTANTS.events.SELECT, listener);\n }\n\n public unregisterMenuListener(listener: (evt: CustomEvent<number>) => void): void {\n this._menu.removeEventListener(CALENDAR_MENU_CONSTANTS.events.SELECT, listener);\n }\n\n public registerMenuFocusChangeEventListener(listener: (evt: CustomEvent<number>) => void): void {\n this._menu.addEventListener(CALENDAR_MENU_CONSTANTS.events.FOCUS_CHANGE, listener);\n }\n\n public unregisterMenuFocusChangeEventListener(listener: (evt: CustomEvent<number>) => void): void {\n this._menu.addEventListener(CALENDAR_MENU_CONSTANTS.events.FOCUS_CHANGE, listener);\n }\n\n public registerNextButtonListener(listener: (evt: Event) => void): void {\n const nextButton = this._container.querySelector(CALENDAR_CONSTANTS.selectors.NEXT_BUTTON);\n nextButton?.addEventListener('click', listener);\n }\n\n public unregisterNextButtonListener(listener: (evt: Event) => void): void {\n const nextButton = this._container.querySelector(CALENDAR_CONSTANTS.selectors.NEXT_BUTTON);\n nextButton?.removeEventListener('click', listener);\n }\n\n public registerPreviousButtonListener(listener: (evt: Event) => void): void {\n const previousButton = this._container.querySelector(CALENDAR_CONSTANTS.selectors.PREVIOUS_BUTTON);\n previousButton?.addEventListener('click', listener);\n }\n\n public unregisterPreviousButtonListener(listener: (evt: Event) => void): void {\n const previousButton = this._container.querySelector(CALENDAR_CONSTANTS.selectors.PREVIOUS_BUTTON);\n previousButton?.removeEventListener('click', listener);\n }\n\n public registerClearButtonListener(listener: (evt: Event) => void): void {\n const clearButton = this._container.querySelector(CALENDAR_CONSTANTS.selectors.CLEAR_BUTTON);\n clearButton?.addEventListener('click', listener);\n }\n\n public unregisterClearButtonListener(listener: (evt: Event) => void): void {\n const clearButton = this._container.querySelector(CALENDAR_CONSTANTS.selectors.CLEAR_BUTTON);\n clearButton?.removeEventListener('click', listener);\n }\n\n public registerTodayButtonListener(listener: (evt: Event) => void): void {\n const todayButton = this._container.querySelector(CALENDAR_CONSTANTS.selectors.TODAY_BUTTON);\n todayButton?.addEventListener('click', listener);\n }\n\n public unregisterTodayButtonListener(listener: (evt: Event) => void): void {\n const todayButton = this._container.querySelector(CALENDAR_CONSTANTS.selectors.TODAY_BUTTON);\n todayButton?.removeEventListener('click', listener);\n }\n\n public registerDateClickListener(listener: (evt: Event) => void): void {\n this._dateGrid.addEventListener('click', listener);\n }\n\n public unregisterDateClickListener(listener: (evt: Event) => void): void {\n this._dateGrid.removeEventListener('click', listener);\n }\n\n public registerKeydownListener(listener: (evt: KeyboardEvent) => void): void {\n this._container.addEventListener('keydown', listener);\n }\n\n public registerHoverListener(listener: (evt: Event) => void): void {\n this._dateGrid.addEventListener('mouseover', listener);\n }\n\n public unregisterHoverListener(listener: (evt: Event) => void): void {\n this._dateGrid.removeEventListener('mouseover', listener);\n }\n\n public registerPreventFocusListener(listener: (evt: Event) => void): void {\n this._container.addEventListener('mousedown', listener);\n }\n\n public unregisterPreventFocusListener(listener: (evt: Event) => void): void {\n this._container.removeEventListener('mousedown', listener);\n }\n\n public setContainerClass(name: string, value: boolean): void {\n this._container.classList.toggle(name, value);\n }\n\n public setHeader(): void {\n const accessibleHeader = this._container.querySelector(CALENDAR_CONSTANTS.selectors.ACCESSIBLE_HEADER);\n accessibleHeader?.remove();\n\n const header = this._container.querySelector(CALENDAR_CONSTANTS.selectors.HEADER);\n if (header) {\n header.replaceWith(getHeader());\n } else {\n this._container.prepend(getHeader());\n }\n }\n\n public removeHeader(): void {\n const header = this._container.querySelector(CALENDAR_CONSTANTS.selectors.HEADER);\n header?.remove();\n\n const accessibleHeader = this._container.querySelector(CALENDAR_CONSTANTS.selectors.ACCESSIBLE_HEADER);\n if (accessibleHeader) {\n accessibleHeader.replaceWith(getAccessibleHeader());\n } else {\n this._container.prepend(getAccessibleHeader());\n }\n }\n\n public setNextButtonDisabled(value: boolean): void {\n const nextButton = this._container.querySelector(CALENDAR_CONSTANTS.selectors.NEXT_BUTTON);\n nextButton?.toggleAttribute('disabled', value);\n }\n\n public setPreviousButtonDisabled(value: boolean): void {\n const previousButton = this._container.querySelector(CALENDAR_CONSTANTS.selectors.PREVIOUS_BUTTON);\n previousButton?.toggleAttribute('disabled', value);\n }\n\n public setNextButtonLabel(label: string): void {\n const nextButton = this._container.querySelector(CALENDAR_CONSTANTS.selectors.NEXT_BUTTON);\n nextButton?.setAttribute('aria-label', label);\n\n const nextTooltip = this._container.querySelector(CALENDAR_CONSTANTS.selectors.NEXT_BUTTON_TOOLTIP);\n if (nextTooltip) {\n nextTooltip.innerHTML = label;\n }\n }\n\n public setPreviousButtonLabel(label: string): void {\n const previousButton = this._container.querySelector(CALENDAR_CONSTANTS.selectors.PREVIOUS_BUTTON);\n previousButton?.setAttribute('aria-label', label);\n\n const previousTooltip = this._container.querySelector(CALENDAR_CONSTANTS.selectors.PREVIOUS_BUTTON_TOOLTIP);\n if (previousTooltip) {\n previousTooltip.innerHTML = label;\n }\n }\n\n public setMonthButtonPressed(value: boolean): void {\n const monthButton = this._container.querySelector(CALENDAR_CONSTANTS.selectors.MONTH_BUTTON);\n if (monthButton) {\n monthButton.setAttribute('aria-pressed', value.toString());\n this._container.classList.toggle(CALENDAR_CONSTANTS.classes.MONTH_MENU_OPEN, value);\n }\n }\n\n public setYearButtonPressed(value: boolean): void {\n const yearButton = this._container.querySelector(CALENDAR_CONSTANTS.selectors.YEAR_BUTTON);\n if (yearButton) {\n yearButton.setAttribute('aria-pressed', value.toString());\n this._container.classList.toggle(CALENDAR_CONSTANTS.classes.YEAR_MENU_OPEN, value);\n }\n }\n\n public setMonth(month: number, locale?: string): void {\n const monthButton = this._container.querySelector(CALENDAR_CONSTANTS.selectors.MONTH_BUTTON);\n if (monthButton) {\n const content = getMonthButtonContent(month, locale);\n monthButton.replaceChildren(content[0], content[1]);\n return;\n }\n\n const accessibleMonth = this._container.querySelector(CALENDAR_CONSTANTS.selectors.ACCESSIBLE_MONTH);\n if (accessibleMonth) {\n accessibleMonth.textContent = getLocalizedMonth(month, 'long', locale);\n }\n }\n\n public setYear(year: number, locale?: string): void {\n const yearButton = this._container.querySelector(CALENDAR_CONSTANTS.selectors.YEAR_BUTTON);\n if (yearButton) {\n const content = getYearButtonContent(year, locale);\n yearButton.replaceChildren(content[0], content[1]);\n return;\n }\n\n const accessibleYear = this._container.querySelector(CALENDAR_CONSTANTS.selectors.ACCESSIBLE_YEAR);\n if (accessibleYear) {\n accessibleYear.textContent = getLocalizedYear(year, 'numeric', locale);\n }\n }\n\n public setFooter(): void {\n const footer = this._container.querySelector(CALENDAR_CONSTANTS.selectors.FOOTER);\n if (!footer) {\n this._container.appendChild(getFooter());\n }\n }\n\n public removeFooter(): void {\n const footer = this._container.querySelector(CALENDAR_CONSTANTS.selectors.FOOTER);\n footer?.parentNode?.removeChild(footer);\n }\n\n public setClearButton(): void {\n const footer = this._container.querySelector(CALENDAR_CONSTANTS.selectors.FOOTER);\n if (!footer) {\n return;\n }\n\n const clearButton = footer.querySelector(CALENDAR_CONSTANTS.selectors.CLEAR_BUTTON);\n if (!clearButton) {\n footer.prepend(getClearButton());\n }\n }\n\n public removeClearButton(): void {\n const clearButton = this._container.querySelector(CALENDAR_CONSTANTS.selectors.CLEAR_BUTTON);\n clearButton?.parentNode?.removeChild(clearButton);\n }\n\n public setTodayButton(): void {\n const footer = this._container.querySelector(CALENDAR_CONSTANTS.selectors.FOOTER);\n if (!footer) {\n return;\n }\n\n const todayButton = footer.querySelector(CALENDAR_CONSTANTS.selectors.TODAY_BUTTON);\n if (!todayButton) {\n footer.appendChild(getTodayButton());\n }\n }\n\n public removeTodayButton(): void {\n const todayButton = this._container.querySelector(CALENDAR_CONSTANTS.selectors.TODAY_BUTTON);\n todayButton?.parentNode?.removeChild(todayButton);\n }\n\n public setDays(days: DayOfWeek[], options?: ICalendarDayOptions): void {\n removeAllChildren(this._dayRow);\n days.forEach(d => {\n let element = getDayElement(d, options?.locale);\n if (options?.builder) {\n element = options.builder(d, element);\n }\n this._dayRow.appendChild(element);\n });\n }\n\n public setDates(dates: ICalendarDateConfig[], options?: ICalendarDateOptions): void {\n removeAllChildren(this._dateGrid);\n splitIntoWeeks(dates).forEach((w, i) => {\n const dateRow = getDateRow(w, i, options);\n this._dateGrid.appendChild(dateRow);\n });\n }\n\n public replaceDate(date: ICalendarDateConfig, options?: ICalendarDateOptions): void {\n const dateElement = this._dateGrid.querySelector(`#${getDateId(date.date)}`);\n if (dateElement) {\n const element = getDateElement(date, options?.locale);\n if (options?.builder) {\n dateElement.replaceWith(options.builder(date, element));\n } else {\n dateElement.replaceWith(element);\n }\n }\n }\n\n public replaceDateWithSpacer(date: Date): void {\n const dateElement = this._dateGrid.querySelector(`#${getDateId(date)}`);\n dateElement?.replaceWith(getDateSpacerElement(date));\n }\n\n public setDateDisabled(date: Date, value: boolean): void {\n const element = this._dateGrid.querySelector(`#${getDateId(date)}`);\n if (element) {\n element.toggleAttribute('disabled', value);\n element.setAttribute('aria-disabled', value.toString());\n }\n }\n\n public setDateSelected(date: Date, value: boolean): void {\n const element = this._dateGrid.querySelector(`#${getDateId(date)}`);\n if (element) {\n element.classList.toggle(CALENDAR_CONSTANTS.classes.DATE_SELECTED, value);\n element.setAttribute('aria-selected', value.toString());\n }\n }\n\n public setWeekend(date: Date, value: boolean): void {\n const element = this._dateGrid.querySelector(`#${getDateId(date)}`);\n const innerElement = element?.querySelector(CALENDAR_CONSTANTS.selectors.DATE_INNER);\n if (!innerElement) {\n return;\n }\n toggleOnAttribute(innerElement as HTMLElement, 'part', CALENDAR_CONSTANTS.parts.WEEKEND, value);\n }\n\n public appendDateAttribute(date: Date, name: string, value: string): void {\n const element = this._dateGrid.querySelector(`#${getDateId(date)}`);\n if (element) {\n appendToAttribute(element as HTMLElement, name, value);\n }\n }\n\n public setMultiple(value: boolean): void {\n this._dateView.setAttribute('aria-multiselectable', value.toString());\n }\n\n public setDateViewHidden(value: boolean): void {\n toggleAttribute(this._dateView, value, 'aria-hidden', value.toString());\n this.setAllDatesUnfocusable();\n }\n\n // #endregion\n\n // #region Range\n\n public setRange(dates: Date[] | null): void {\n const oldDateElements = this._dateGrid.querySelectorAll(CALENDAR_CONSTANTS.selectors.RANGE);\n oldDateElements.forEach(e => e.classList.remove(CALENDAR_CONSTANTS.classes.RANGE));\n\n if (!dates) {\n return;\n }\n\n dates.forEach(d => {\n const dateElement = this._dateGrid.querySelector(`#${getDateId(d)}`);\n dateElement?.classList.add(CALENDAR_CONSTANTS.classes.RANGE);\n });\n }\n\n public setRangeStart(date: Date | null): void {\n const oldDateElement = this._dateGrid.querySelector(CALENDAR_CONSTANTS.selectors.RANGE_START);\n oldDateElement?.classList.remove(CALENDAR_CONSTANTS.classes.RANGE_START);\n\n if (!date) {\n return;\n }\n\n const newDateElement = this._dateGrid.querySelector(`#${getDateId(date)}`);\n newDateElement?.classList.add(CALENDAR_CONSTANTS.classes.RANGE_START);\n }\n\n public setRangeEnd(date: Date | null): void {\n const oldDateElement = this._dateGrid.querySelector(CALENDAR_CONSTANTS.selectors.RANGE_END);\n oldDateElement?.classList.remove(CALENDAR_CONSTANTS.classes.RANGE_END);\n\n if (!date) {\n return;\n }\n\n const newDateElement = this._dateGrid.querySelector(`#${getDateId(date)}`);\n newDateElement?.classList.add(CALENDAR_CONSTANTS.classes.RANGE_END);\n }\n\n public setActiveDate(date: Date, setFocus: boolean, preventFocus?: boolean): void {\n const dateString = date.toDateString();\n const elements = this._dateGrid.querySelectorAll(CALENDAR_CONSTANTS.selectors.DATE);\n elements.forEach(e => {\n const shouldFocus = e.getAttribute(CALENDAR_CONSTANTS.attributes.DATA_DATE) === dateString;\n setTabindexOnElement(e as HTMLElement, shouldFocus ? 0 : -1, setFocus, preventFocus);\n });\n }\n\n public setAllDatesUnfocusable(): void {\n const elements = this._dateGrid.querySelectorAll(CALENDAR_CONSTANTS.selectors.DATE);\n elements.forEach(e => setTabindexOnElement(e as HTMLElement, -1, false, true));\n }\n\n public setDateDescription(date: Date, value?: string): void {\n const dateElement = this._dateGrid.querySelector(`#${getDateId(date)}`);\n if (!dateElement) {\n return;\n }\n toggleAttribute(dateElement as HTMLElement, !!value, value as string);\n }\n\n public setDateTooltip(date: Date, value?: string): void {\n const dateElement = this._dateGrid.querySelector(`#${getDateId(date)}`);\n if (!dateElement) {\n return;\n }\n const tooltip = dateElement.querySelector(CALENDAR_CONSTANTS.selectors.TOOLTIP);\n if (tooltip) {\n if (value?.length) {\n tooltip.textContent = value;\n } else {\n tooltip.remove();\n }\n } else if (value?.length) {\n dateElement.prepend(getTooltip(value));\n }\n }\n\n public setEventWrapperOnDate(date: Date, value: boolean): void {\n const dateElement = this._dateGrid.querySelector(`#${getDateId(date)}`);\n if (!dateElement) {\n return;\n }\n const eventWrapper = dateElement.querySelector(CALENDAR_CONSTANTS.selectors.EVENT_WRAPPER);\n if (eventWrapper) {\n if (value) {\n removeAllChildren(eventWrapper);\n } else {\n eventWrapper.remove();\n }\n } else if (value) {\n dateElement.appendChild(getEventWrapperElement(date));\n }\n }\n\n public setEvent(event: ICalendarEvent, overflow?: boolean): void {\n const eventWrapper = this._dateGrid.querySelector(`#${getEventWrapperId(event.date)}`);\n eventWrapper?.appendChild(getEventElement(event, overflow));\n }\n\n public openMenuAsGrid(options: ICalendarMenuOption[], setFocus: boolean): void {\n this._menu.openAsGrid(options, setFocus);\n }\n\n public openMenuAsList(options: ICalendarMenuOption[], setFocus: boolean): void {\n this._menu.openAsList(options, setFocus);\n }\n\n public closeMenu(): void {\n this._menu.close();\n }\n\n public setMenuAnimation(value: CalendarMenuAnimationType): void {\n this._menu.animationType = value;\n }\n\n public animateIntoSelectionMenu(options: ICalendarMenuOption[], direction: CalendarDirection, setFocus: boolean): void {\n this._menu.animateIn(options, direction, setFocus);\n }\n\n public moveMenuFocusDown(): void {\n this._menu.moveFocusDown();\n }\n\n public moveMenuFocusBackward(): boolean {\n return this._menu.moveFocusBackward();\n }\n\n public moveMenuFocusForward(): boolean {\n return this._menu.moveFocusForward();\n }\n\n public moveMenuFocusUp(): void {\n this._menu.moveFocusUp();\n }\n\n public selectFocusedMenuItem(): void {\n this._menu.selectFocusedItem();\n }\n\n public setPreventFocusOnMenu(value: boolean): void {\n this._menu.preventFocus = value;\n }\n}\n", "import { ICustomElementFoundation, isArray, isDefined, isValidDate } from '@tylertech/forge-core';\n\nimport { ICalendarDate, ICalendarDisabledDateParams, ICalendarFocusChangeEventData, ICalendarMenuMonthConfig, ICalendarMenuYearConfig, ICalendarNumberRange, CALENDAR_CONSTANTS, CalendarDisabledDateBuilder, CalendarEventBuilder, CalendarMode, CalendarMonthFocus, CalendarView, DayOfWeek, ICalendarDateSelectEventData, RangeSelectionState, CalendarDateBuilder, CalendarDayBuilder, CalendarDateSelectCallback, ICalendarEvent, CalendarTooltipBuilder, ICalendarDateConfig } from './calendar-constants';\nimport { isDisabled, isSelected, getAllYearOptions, getDateRangeFromDates, getDatesFromDateRange, getDatesInRange, getEventDescriptions, getEventsOnDate, getFirstDateOfWeek, getIndexOfDate, getLastDateOfWeek, getMinAndMaxDates, getMonthDates, getMonthOptions, getMultipleFromRange, getSortedDaysOfWeek, getYearOptions, isInMonth, isToday, parseYearRange, sortDates, coerceDateFromValue, shouldHandleEvent } from './calendar-utils';\nimport { getFirstDayOfWeekForLocale, getLocalizedMonth, getLocalizedYear, getWeekendDaysForLocale, isRtlLocale } from './calendar-locale-utils';\nimport { eventIncludesDate } from './calendar-dom-utils';\nimport { ICalendarAdapter } from './calendar-adapter';\nimport { DateRange } from './core/date-range';\nimport { ICalendarBase } from './core/calendar-base';\nimport { CalendarMenuAnimationType, ICalendarMenuOption } from './calendar-menu';\nimport { getLastDateOfMonth, getMonthLength, isSameDate } from '../core/utils/date-utils';\n\nexport interface ICalendarFoundation extends ICalendarBase, ICustomElementFoundation {\n mode: CalendarMode;\n view: CalendarView;\n preventFocus: boolean;\n selectionFollowsMonth: boolean;\n showHeader: boolean;\n menuAnimation: CalendarMenuAnimationType;\n clearButton: boolean;\n todayButton: boolean;\n clearCallback: (() => void) | undefined;\n todayCallback: (() => void) | undefined;\n tooltipBuilder: CalendarTooltipBuilder | undefined;\n clear(): void;\n today(): void;\n selectDate(date: Date, setFocus?: boolean): void;\n deselectDate(date: Date, setFocus?: boolean): void;\n toggleDate(date: Date, force?: boolean): void;\n goToDate(date: Date, setFocus?: boolean): void;\n setActiveDate(date: Date, setFocus?: boolean): boolean;\n handleExternalKeyEvent(evt: KeyboardEvent): void;\n layout(): void;\n}\n\nexport class CalendarFoundation implements ICalendarFoundation {\n // Dates\n private _dates: Date[] = [];\n private _month: number = new Date().getMonth();\n private _year: number = new Date().getFullYear();\n private _focusedDate: Date;\n private _showToday = true;\n private _showOtherMonths = false;\n private _fixedHeight = false;\n private _events: ICalendarEvent[] = [];\n private _dateBuilder: CalendarDateBuilder | undefined;\n private _dayBuilder: CalendarDayBuilder | undefined;\n private _tooltipBuilder: CalendarTooltipBuilder | undefined;\n private _eventBuilder: CalendarEventBuilder | undefined;\n \n // Selection\n private _value: Date[] = [];\n private _mode: CalendarMode = 'single';\n private _readonly = false;\n private _selectionFollowsMonth = false;\n private _dateSelectCallback: CalendarDateSelectCallback | undefined;\n\n // Range\n private _rangeSelectionStore: DateRange | undefined; // Temporarily set when a date range is set as the value, to maintain to and from\n private _rangeSelectionState: RangeSelectionState = 'none';\n private _allowSingleDateRange = true;\n\n // Disabled dates\n private _min: Date | null = null;\n private _max: Date | null = null;\n private _minAttribute: string | null = null;\n private _maxAttribute: string | null = null;\n private _disabledDates: Date[] = [];\n private _disabledDaysOfWeek: DayOfWeek[] = [];\n private _constrainToEnabled = true;\n private _disabledDateBuilder: CalendarDisabledDateBuilder | undefined;\n\n // Header and footer\n private _showHeader = true;\n private _clearButton = false;\n private _todayButton = false;\n private _clearCallback: (() => void) | undefined;\n private _todayCallback: (() => void) | undefined;\n \n // Menu\n private _view: CalendarView = 'date';\n private _menuAnimation: CalendarMenuAnimationType = 'scale';\n private _menuYear: number | null = null;\n private _listYears = true;\n private _menuIncludedYear: number = new Date().getFullYear();\n private _menuYearsInView: ICalendarNumberRange | null = null;\n private _yearRange = `-${CALENDAR_CONSTANTS.numbers.DEFAULT_MIN_YEAR_OFFSET}:+${CALENDAR_CONSTANTS.numbers.DEFAULT_MAX_YEAR_OFFSET}`;\n private _minYear: number; // This and _maxYear will be set in the initializer\n private _maxYear: number;\n\n // Localization\n private _locale: string | undefined;\n private _firstDayOfWeek: DayOfWeek | undefined;\n private _weekendDays: DayOfWeek[] | null = null;\n private _localeFirstDayOfWeek: DayOfWeek = DayOfWeek.Sunday;\n private _localeWeekendDays: DayOfWeek[] = [];\n private _rtl = false;\n\n // Core\n private _preventFocus = false;\n private _isInitialized = false;\n \n // Listeners\n private _clearButtonListener: (evt: Event) => void;\n private _dateClickListener: (evt: Event) => void;\n private _hoverListener: (evt: Event) => void;\n private _keydownListener: (evt: KeyboardEvent) => void;\n private _menuFocusChangeListener: (evt: CustomEvent<number>) => void;\n private _menuListener: (evt: CustomEvent<number>) => void;\n private _monthButtonListener: (evt: Event) => void;\n private _nextButtonListener: (evt: Event) => void;\n private _preventFocusListener: (evt: Event) => void;\n private _previousButtonListener: (evt: Event) => void;\n private _todayButtonListener: (evt: Event) => void;\n private _yearButtonListener: (evt: Event) => void;\n\n constructor(private _adapter: ICalendarAdapter) {\n this._clearButtonListener = () => this._onClearClicked();\n this._dateClickListener = evt => this._onDateClick(evt);\n this._keydownListener = evt => this._onKeydown(evt);\n this._hoverListener = evt => this._onHover(evt);\n this._menuFocusChangeListener = evt => this._onMenuFocusChange(evt);\n this._menuListener = evt => this._onMenuSelect(evt);\n this._monthButtonListener = () => this._onMonthButtonClicked();\n this._nextButtonListener = () => this._onNextButtonClicked();\n this._preventFocusListener = evt => evt.preventDefault();\n this._previousButtonListener = () => this._onPreviousButtonClicked();\n this._todayButtonListener = () => this._onTodayClicked();\n this._yearButtonListener = () => this._onYearButtonClicked();\n }\n\n public initialize(): void {\n this._adapter.registerMenuListener(this._menuListener);\n this._adapter.registerMenuFocusChangeEventListener(this._menuFocusChangeListener);\n this._adapter.registerKeydownListener(this._keydownListener);\n this._applyMin();\n this._applyMax();\n this._applyFixedHeight();\n this._applyReadOnly();\n this._applyShowToday();\n this._applyPreventFocus();\n this._applyShowHeader();\n this._applyMonth();\n this._applyYear();\n this._applyListYears();\n this._applyMenuAnimation();\n this._applyLocale();\n this._applyClearButton();\n this._applyTodayButton();\n this._applyFirstDayOfWeek();\n this._applyShowOtherMonths();\n this._createDateView();\n this._applyConstrainToEnabled();\n this._applyAllowSingleDateRange();\n this._applyMode();\n this._applyYearRange();\n this._applySelectionFollowsMonth();\n\n this._isInitialized = true;\n }\n\n public disconnect(): void {\n this._isInitialized = false;\n }\n\n private _onMonthButtonClicked(): void {\n this._toggleMonthMenu();\n }\n\n private _toggleMonthMenu(setFocus = false): void {\n if (this._view !== 'month') {\n this._openMonthMenu(setFocus);\n } else {\n this._closeMenu(false, setFocus);\n }\n }\n\n private _onYearButtonClicked(): void {\n this._toggleYearMenu();\n }\n\n private _toggleYearMenu(setFocus = false): void {\n if (this._view !== 'year') {\n this._openYearMenu(setFocus);\n } else {\n this._closeMenu(false, setFocus);\n }\n }\n\n private _onMenuFocusChange(evt: CustomEvent<number>): void {\n this._emitFocusChangeEvent(evt.detail);\n }\n\n private _onMenuSelect(evt: CustomEvent<number>): void {\n switch (this._view) {\n case 'month':\n this._onMonthSelected(evt.detail);\n break;\n case 'year':\n this._onYearSelected(evt.detail);\n break;\n }\n }\n\n private _onNextButtonClicked(): void {\n if (this._view === 'date') {\n this._goToNextMonth();\n this._setFocusInMonth(CalendarMonthFocus.First, false);\n } else if (this._view === 'month') {\n this._goToNextYear();\n } else {\n this._goToNextSetOfYears();\n }\n }\n\n private _onPreviousButtonClicked(): void {\n if (this._view === 'date') {\n this._goToPreviousMonth();\n this._setFocusInMonth(CalendarMonthFocus.Last, false);\n } else if (this._view === 'month') {\n this._goToPreviousYear();\n } else {\n this._goToPreviousSetOfYears();\n }\n }\n\n private _onHover(evt: Event): void {\n if (this._mode === 'range') {\n const element = eventIncludesDate(evt, false);\n if (!element) {\n return;\n }\n const date = new Date(Date.parse(element.getAttribute(CALENDAR_CONSTANTS.attributes.DATA_DATE) as string));\n if (isInMonth(date, this._month, this._year)) {\n this._setRangePreview(date);\n }\n }\n }\n\n private _onDateClick(evt: Event): void {\n const element = eventIncludesDate(evt, false);\n if (!element) {\n return;\n }\n const dateString = element.getAttribute(CALENDAR_CONSTANTS.attributes.DATA_DATE);\n if (!dateString) {\n return;\n }\n const date = new Date(dateString);\n if (isInMonth(date, this._month, this._year)) {\n // Move the tab index to this date\n this._focusedDate = date;\n this._beforeDateSelected(date);\n }\n this._resumeTabindexOnDate(false);\n }\n\n private _onKeydown(evt: KeyboardEvent): void {\n switch(evt.key) {\n case 'ArrowLeft':\n case 'ArrowRight':\n case 'ArrowUp':\n case 'ArrowDown':\n this._handleArrowKey(evt);\n break;\n case 'Home':\n case 'End':\n case 'PageUp':\n case 'PageDown':\n this._handleNavigationKey(evt);\n break;\n case ' ':\n case 'Enter':\n this._handleEnterOrSpaceKey(evt);\n break;\n case 'm':\n case 'M':\n evt.preventDefault();\n this._toggleMonthMenu(true);\n break;\n case 'y':\n case 'Y':\n evt.preventDefault();\n this._toggleYearMenu(true);\n break;\n case 't':\n case 'T':\n case 'n':\n case 'N':\n evt.preventDefault();\n this.today();\n break;\n case 'Delete':\n case 'Backspace':\n evt.preventDefault();\n this._deselectAllDates();\n break;\n case 'Escape':\n if (this._view !== 'date') {\n evt.preventDefault();\n evt.stopPropagation();\n this._closeMenu(false, true);\n }\n break;\n }\n }\n\n /**\n * Runs locale specific logic to handle focus on an arrow key event.\n * @param evt A keyboard event containing an arrow key\n */\n private _handleArrowKey(evt: KeyboardEvent): void {\n if (!shouldHandleEvent(evt, this._view, this._preventFocus)) {\n return;\n }\n\n evt.preventDefault();\n let direction: 'next' | 'previous' | 'up' | 'down' | undefined;\n switch(evt.key) {\n case 'ArrowLeft':\n direction = this._rtl ? 'next' : 'previous';\n break;\n case 'ArrowRight':\n direction = this._rtl ? 'previous' : 'next';\n break;\n case 'ArrowUp':\n direction = 'up';\n break;\n case 'ArrowDown':\n direction = 'down';\n break;\n }\n\n switch(direction) {\n case 'previous':\n if (this._view === 'date') {\n this._moveFocusToPreviousDate(true);\n } else if (!this._adapter.moveMenuFocusBackward() && this._canGoBackward()) {\n if (this._view === 'month') {\n this._goToPreviousYear(true);\n } else {\n this._goToPreviousSetOfYears(true);\n }\n }\n break;\n case 'next':\n if (this._view === 'date') {\n this._moveFocusToNextDate(true);\n } else if (!this._adapter.moveMenuFocusForward() && this._canGoForward()) {\n if (this._view === 'month') {\n this._goToNextYear(true);\n } else {\n this._goToNextSetOfYears(true);\n }\n }\n break;\n case 'up':\n if (this._view === 'date') {\n this._moveFocusToPreviousWeek(true);\n } else {\n this._adapter.moveMenuFocusUp();\n }\n break;\n case 'down':\n if (this._view === 'date') {\n this._moveFocusToNextWeek(true);\n } else {\n this._adapter.moveMenuFocusDown();\n }\n break;\n }\n\n if (this._mode === 'range') {\n this._setRangePreview(this._focusedDate);\n }\n }\n\n /** Moves between months and years if allowed.\n * @param evt A keyboard evt containing the page up, page down, home, or end key\n */\n private _handleNavigationKey(evt: KeyboardEvent): void {\n evt.preventDefault();\n switch(evt.key) {\n case 'Home':\n if (this._view !== 'date') {\n break;\n }\n if (evt.shiftKey) {\n this._moveFocusToFirstOfMonth(true);\n } else {\n this._moveFocusToFirstOfWeek(true);\n }\n break;\n case 'End':\n if (this._view !== 'date') {\n break;\n }\n if (evt.shiftKey) {\n this._moveFocusToLastOfMonth(true);\n } else {\n this._moveFocusToLastOfWeek(true);\n }\n break;\n case 'PageUp':\n if (this._view === 'date') {\n if (evt.shiftKey) {\n\n this._moveFocusToPreviousYear(true);\n } else {\n this._moveFocusToPreviousMonth(true);\n }\n } else if (this._view === 'month' && !evt.shiftKey && this._canGoBackward()) {\n this._goToPreviousYear(true);\n } else if (this._view === 'year' && !evt.shiftKey && this._canGoBackward()) {\n this._goToPreviousSetOfYears(true);\n }\n break;\n case 'PageDown':\n if (this._view === 'date') {\n if (evt.shiftKey) {\n this._moveFocusToNextYear(true);\n } else {\n this._moveFocusToNextMonth(true);\n }\n } else if (this._view === 'month' && !evt.shiftKey && this._canGoForward()) {\n this._goToNextYear(true);\n } else if (this._view === 'year' && !evt.shiftKey && this._canGoForward()) {\n this._goToNextSetOfYears(true);\n }\n break;\n }\n }\n\n /**\n * Selects or deselects the focused date or menu option if allowed.\n * @param evt A keyboard event containing the enter or space key\n */\n private _handleEnterOrSpaceKey(evt: KeyboardEvent): void {\n if (!shouldHandleEvent(evt, this._view, this._preventFocus)) {\n return;\n }\n\n evt.preventDefault();\n switch(this._view) {\n case 'date':\n if (this._readonly) {\n break;\n }\n this._setSelectOnFocusedDate();\n break;\n case 'month':\n case 'year':\n this._adapter.selectFocusedMenuItem();\n break;\n }\n }\n\n private _onMonthSelected(month: number): void {\n const yearChanged = this._year !== this._menuYear;\n if (yearChanged && this._menuYear != null) {\n this._year = this._menuYear;\n this._setYear();\n }\n this._month = month;\n this._setMonth(true);\n this._trySetValueMonthAndYear(this._month, this._year, 'month');\n this._closeMenu(true);\n }\n\n private _onYearSelected(year: number): void {\n this._year = year;\n this._setYear(true);\n this._trySetValueMonthAndYear(this._month, this._year, 'year');\n this._closeMenu(true);\n }\n\n private _onClearClicked(): void {\n this.clear();\n }\n\n private _onTodayClicked(): void {\n this.today();\n }\n\n /** Attempts to the month and year of the value in single mode, then emits a selection event */\n private _trySetValueMonthAndYear(month: number, year: number, type: CalendarView = 'date'): void {\n if (!this.selectionFollowsMonth || this._mode !== 'single' || !this._value?.length) {\n return;\n }\n\n const newDate = new Date(this._value[0]);\n const lastDay = getMonthLength(month, year);\n newDate.setDate(Math.min(newDate.getDate(), lastDay));\n newDate.setFullYear(year);\n newDate.setMonth(month);\n\n if (isDisabled(newDate, this._getDisabledDateParams())) {\n return;\n }\n\n this._beforeDateSelected(newDate, type);\n }\n\n /** Sets initial date tabindex and focus to today or the first enabled date in view */\n private _setInitialDateFocus(setFocus = false): void {\n const today = new Date();\n if (isInMonth(today, this._month, this._year) && !isDisabled(today, this._getDisabledDateParams(false))) {\n this._setFocusedDate(today, setFocus);\n return;\n }\n const firstDay = new Date(this._year, this._month, 1);\n this._setFocusedDate(this._getNextEnabledDate(firstDay, 1, false, true, true), setFocus);\n }\n\n /** Attempts to move the tabindex to the most recently focused date, returning whether the date was found in view */\n private _resumeTabindexOnDate(setFocus: boolean): boolean {\n if (isInMonth(this._focusedDate, this._month, this._year)) {\n this._adapter.setActiveDate(this._focusedDate, setFocus, this._preventFocus);\n this._emitFocusChangeEvent(this._focusedDate);\n return true;\n }\n return false;\n }\n\n /** Moves the tabindex to the next date */\n private _moveFocusToNextDate(setFocus: boolean): void {\n this._setFocusedDate(this._getNextEnabledDate(this._focusedDate), setFocus);\n }\n\n /** Moves the tabindex to the previous date */\n private _moveFocusToPreviousDate(setFocus: boolean): void {\n this._setFocusedDate(this._getPreviousEnabledDate(this._focusedDate), setFocus);\n }\n\n /** Moves the tabindex to the next week */\n private _moveFocusToNextWeek(setFocus: boolean): void {\n this._setFocusedDate(this._getNextEnabledDate(this._focusedDate, 7, true), setFocus);\n }\n\n /** Moves the tabindex to the previous week */\n private _moveFocusToPreviousWeek(setFocus: boolean): void {\n this._setFocusedDate(this._getPreviousEnabledDate(this._focusedDate, 7, true), setFocus);\n }\n\n /** Moves the tabindex to the first selectable date of the week containing the current tabindex */\n private _moveFocusToFirstOfWeek(setFocus: boolean): void {\n this._setFocusedDate(this._getFirstEnabledDayOfWeek(this._focusedDate, true), setFocus);\n }\n\n /** Moves the tabindex to the last selectable date of the week containing the current tabindex */\n private _moveFocusToLastOfWeek(setFocus: boolean): void {\n this._setFocusedDate(this._getLastEnabledDayOfWeek(this._focusedDate, true), setFocus);\n }\n\n /** Moves the tabindex to the first date of the month */\n private _moveFocusToFirstOfMonth(setFocus: boolean): void {\n const firstOfMonth = new Date(this._year, this._month, 1);\n this._setFocusedDate(this._getNextEnabledDate(firstOfMonth, 1, false, true), setFocus);\n }\n\n /** Moves the tabindex to the last date of the month */\n private _moveFocusToLastOfMonth(setFocus: boolean): void {\n const lastOfMonth = new Date(this._year, this._month + 1, 0);\n this._setFocusedDate(this._getPreviousEnabledDate(lastOfMonth, 1, false, true), setFocus);\n }\n\n /** Moves the tabindex to the same day and week of the next month */\n private _moveFocusToNextMonth(setFocus: boolean): void {\n const index = getIndexOfDate(this._focusedDate, this._dates);\n const destinationMonth = (this._month + 1) % 12;\n const destinationYear = destinationMonth === 0 ? this._year + 1 : this._year;\n this._setFocusedDate(this._getDateAtIndexInMonth(index, destinationMonth, destinationYear), setFocus);\n }\n\n /** Moves the tabindex to the same day and week of the previous month */\n private _moveFocusToPreviousMonth(setFocus: boolean): void {\n const index = getIndexOfDate(this._focusedDate, this._dates);\n const destinationMonth = this._month === 0 ? 11 : this._month - 1;\n const destinationYear = destinationMonth === 11 ? this._year - 1 : this._year;\n this._setFocusedDate(this._getDateAtIndexInMonth(index, destinationMonth, destinationYear), setFocus);\n }\n\n /** Moves the tabindex to the same day, week, and month of the next year */\n private _moveFocusToNextYear(setFocus: boolean): void {\n const index = getIndexOfDate(this._focusedDate, this._dates);\n this._setFocusedDate(this._getDateAtIndexInMonth(index, this._month, this._year + 1), setFocus);\n }\n\n /** Moves the tabindex to the same day, week, and month of the previous year */\n private _moveFocusToPreviousYear(setFocus: boolean): void {\n const index = getIndexOfDate(this._focusedDate, this._dates);\n this._setFocusedDate(this._getDateAtIndexInMonth(index, this._month, this._year - 1), setFocus);\n }\n\n /** Sets the focusable date when a new month comes into view */\n private _setFocusInMonth(focus: CalendarMonthFocus, setFocus: boolean): void {\n switch (focus) {\n case CalendarMonthFocus.First:\n this._moveFocusToFirstOfMonth(setFocus);\n break;\n case CalendarMonthFocus.Last:\n this._moveFocusToLastOfMonth(setFocus);\n break;\n default:\n this._resumeTabindexOnDate(setFocus);\n break;\n }\n }\n\n /** Selects or deselects the focused date */\n private _setSelectOnFocusedDate(): void {\n if (isInMonth(this._focusedDate, this._month, this._year) && !isDisabled(this._focusedDate, this._getDisabledDateParams(false))) {\n this._beforeDateSelected(this._focusedDate);\n }\n }\n\n /** Emits a focus change event */\n private _emitFocusChangeEvent(value: Date | number): void {\n const eventData: Partial<ICalendarFocusChangeEventData> = {\n type: this._view,\n value\n };\n switch (this._view) {\n case 'date':\n eventData.selected = isSelected(value as Date, this._value);\n eventData.text = (value as Date).toLocaleDateString(this.locale, {month: 'long', day: '2-digit', year: 'numeric'});\n break;\n case 'month':\n eventData.selected = this._month === value;\n eventData.text = getLocalizedMonth(value as number, 'long');\n break;\n case 'year':\n eventData.selected = this._year === value;\n eventData.text = getLocalizedYear(value as number, 'numeric');\n break;\n }\n this._adapter.emitHostEvent(CALENDAR_CONSTANTS.events.FOCUS_CHANGE, eventData);\n }\n\n /**\n * Finds the previous enabled date.\n * @param start The date to search backward from\n * @param step A number of dates to skip at each step, defaults to 1\n * @param stepOnce Whether to use the step amount once and then continue sequentially, defaults to false\n * @param includeStart Whether to first check and potentially return the start date, defaults to false\n * @returns The previous enabled date or null if none found\n */\n private _getPreviousEnabledDate(start: Date, step = 1, stepOnce = false, includeStart = false, inMonth = false): Date | null {\n const disabledParams = this._getDisabledDateParams();\n const current = new Date(start);\n if (includeStart && !isDisabled(current, disabledParams)) {\n return current;\n }\n\n const month = start.getMonth();\n let outsideBounds = false;\n do {\n current.setDate(current.getDate() - step);\n if (stepOnce) {\n step = 1;\n }\n if ((inMonth && current.getMonth() !== month) || (this._min && current < this._min)) {\n outsideBounds = true;\n }\n } while (!outsideBounds && isDisabled(current, disabledParams));\n return outsideBounds ? null : current;\n }\n\n /**\n * Finds the previous enabled date.\n * @param start The date to search forward from\n * @param step A number of dates to skip at each step, defaults to 1\n * @param stepOnce Whether to use the step amount once and then continue sequentially, defaults to false\n * @param includeStart Whether to first check and potentially return the start date, defaults to false\n * @returns The next enabled date or null if none found\n */\n private _getNextEnabledDate(start: Date, step = 1, stepOnce = false, includeStart = false, inMonth = false): Date | null {\n const disabledParams = this._getDisabledDateParams();\n const current = new Date(start);\n if (includeStart && !isDisabled(current, disabledParams)) {\n return current;\n }\n\n const month = start.getMonth();\n let outsideBounds = false;\n do {\n current.setDate(current.getDate() + step);\n if (stepOnce) {\n step = 1;\n }\n if ((inMonth && current.getMonth() !== month) || (this._max && current > this._max)) {\n outsideBounds = true;\n }\n } while (!outsideBounds && isDisabled(current, disabledParams));\n return outsideBounds ? null : current;\n }\n\n /**\n * Finds the closest enabled date.\n * @param start The date to begin searching from\n * @param includeStart Whether to first check and potentially return the start date, defaults to false\n * @returns The closest enabled date or null if none found\n */\n private _getClosestEnabledDate(start: Date, inMonth = false, includeStart = false): Date | null {\n if (this._min && start < this._min) {\n return this._getFirstEnabledDate();\n } else if (this._max && start > this._max) {\n return this._getLastEnabledDate();\n }\n\n const disabledParams = this._getDisabledDateParams();\n if (includeStart && !isDisabled(start, disabledParams)) {\n return new Date(start);\n }\n const startDate = start.getDate();\n let current: Date;\n let overMax = false;\n let underMin = false;\n let index = 1;\n while (!overMax || !underMin) {\n if (!overMax) {\n current = new Date(start);\n current.setDate(startDate + index);\n overMax = !isInMonth(current, start.getMonth(), start.getFullYear());\n if (!overMax && !isDisabled(current, disabledParams)) {\n return current;\n } else if (this._max && current > this._max) {\n overMax = true;\n }\n }\n if (!underMin) {\n current = new Date(start);\n current.setDate(startDate - index);\n underMin = !isInMonth(current, start.getMonth(), start.getFullYear());\n if (!underMin && !isDisabled(current, disabledParams)) {\n return current;\n } else if (this._min && current < this._min) {\n underMin = true;\n }\n }\n index += 1;\n }\n return null;\n }\n\n /**\n * Finds the first enabled date of a week.\n * @param date A date that falls in the requested week\n * @returns The first enabled date of the week or null if none found\n */\n private _getFirstEnabledDayOfWeek(date: Date, inMonth = true): Date | null {\n const current = getFirstDateOfWeek(date);\n const disabledParams = this._getDisabledDateParams(inMonth ? current.getMonth() !== date.getMonth() || current.getFullYear() !== date.getFullYear() : undefined);\n let index = 0;\n while (index < 7 && isDisabled(current, disabledParams)) {\n current.setDate(current.getDate() + 1);\n disabledParams.otherMonth = inMonth ? current.getMonth() !== date.getMonth() || current.getFullYear() !== date.getFullYear() : undefined;\n index += 1;\n }\n return index < 7 ? current : null;\n }\n\n /**\n * Finds the last enabled date of a week.\n * @param date A date that falls in the requested week\n * @returns The last enabled date of the week or null if none found\n */\n private _getLastEnabledDayOfWeek(date: Date, inMonth = true): Date | null {\n const current = getLastDateOfWeek(date);\n const disabledParams = this._getDisabledDateParams(inMonth ? current.getMonth() !== date.getMonth() || current.getFullYear() !== date.getFullYear() : undefined);\n let index = 0;\n while (index < 7 && isDisabled(current, disabledParams)) {\n current.setDate(current.getDate() - 1);\n disabledParams.otherMonth = inMonth ? current.getMonth() !== date.getMonth() || current.getFullYear() !== date.getFullYear() : undefined;\n index += 1;\n }\n return index < 7 ? current : null;\n }\n\n /**\n * Finds an enabled date with the same index in another month, skipping forward or back one week if that date falls in an adjacent month.\n * @param index The index to look up\n * @param month The month to look up\n * @param year The year of the month\n * @returns An enabled date with the same index plus or minus a week, the nearest enabled date, or null if no enabled date was found\n */\n private _getDateAtIndexInMonth(index: number, month: number, year: number): Date | null {\n const monthDates = getMonthDates(month, year, this._firstDayOfWeek ?? this._localeFirstDayOfWeek);\n // If outside the min or max date pick the first or last enabled date\n if (this._min && monthDates[index] < this._min) {\n return this._getFirstEnabledDate();\n } else if (this._max && monthDates[index] > this._max) {\n return this._getLastEnabledDate();\n }\n\n // If the index is in another month go forward or back a week based on which half of the month the index is nearest\n if (isInMonth(monthDates[index], month, year)) {\n return this._getClosestEnabledDate(monthDates[index], true);\n }\n return index < 20 ? this._getNextEnabledDate(monthDates[index], 7, true) : this._getPreviousEnabledDate(monthDates[index], 7, true);\n }\n\n /**\n * Finds the first enabled date.\n * @returns This first enabled date or null if a min date isn't set\n */\n private _getFirstEnabledDate(): Date | null {\n if (!this._min) {\n return null;\n }\n return this._getNextEnabledDate(this._min, 1, false, true);\n }\n\n /**\n * Finds the last enabled date.\n * @returns This last enabled date or null if a max date isn't set\n */\n private _getLastEnabledDate(): Date | null {\n if (!this._max) {\n return null;\n }\n return this._getPreviousEnabledDate(this._max, 1, false, true);\n }\n\n /**\n * Moves the month in view to a date, sets focus on the date, and emits a focus change event.\n * @param date The date to focus or null if focus should not move\n * @param setFocus Whether to truly focus the date element versus just setting its tabindex\n * @returns Void\n */\n private _setFocusedDate(date: Date | null, setFocus: boolean): void {\n if (!date) {\n return;\n }\n const monthChanged = this._month !== date.getMonth();\n const yearChanged = this._year !== date.getFullYear();\n if (monthChanged || yearChanged) {\n if (monthChanged) {\n this._month = date.getMonth();\n this._setMonth();\n }\n if (yearChanged) {\n this._year = date.getFullYear();\n this._setYear();\n }\n this._resetDateGrid();\n }\n this._focusedDate = date;\n this._adapter.setActiveDate(this._focusedDate, setFocus, this._preventFocus);\n this._emitFocusChangeEvent(this._focusedDate);\n }\n\n /**\n * Gets disabled date params.\n * @param otherMonth Whether the date is outside the month in view - only set if needed\n * @returns An ICalendarDisabledDateParams object\n */\n private _getDisabledDateParams(otherMonth?: boolean): ICalendarDisabledDateParams {\n return {\n builder: this._disabledDateBuilder,\n disabledDates: this._disabledDates,\n disabledDaysOfWeek: this._disabledDaysOfWeek,\n maxDate: this._max,\n minDate: this._min,\n otherMonth\n };\n }\n\n /**\n * Builds dates for the period in view, sets them to the DOM, and enables focus on one of them.\n */\n private _createDateView(): void {\n this._resetDateGrid();\n if (!this._focusedDate || !this._resumeTabindexOnDate(false)) {\n this._setInitialDateFocus();\n }\n }\n\n /**\n * Initiates month navigation and opens the month menu on the year in view.\n */\n private _openMonthMenu(setFocus = false): void {\n this._view = 'month';\n if (this._menuYear == null) {\n this._menuYear = this._year;\n }\n if (this._showHeader) {\n this._setNavButtonLabels();\n this._adapter.setMonthButtonPressed(true);\n this._adapter.setYearButtonPressed(false);\n }\n this._adapter.openMenuAsGrid(this._getMonthsForMenu(), setFocus);\n this._adapter.setDateViewHidden(true);\n this._setNavigationButtonStates();\n this._adapter.emitHostEvent(CALENDAR_CONSTANTS.events.VIEW_CHANGE, this._view);\n }\n\n /**\n * Initiates year navigation and opens the year menu.\n */\n private _openYearMenu(setFocus = false): void {\n this._view = 'year';\n this._menuIncludedYear = this._menuYear ?? this._year;\n if (this._showHeader) {\n this._setNavButtonLabels();\n this._adapter.setMonthButtonPressed(false);\n this._adapter.setYearButtonPressed(true);\n }\n if (this._listYears) {\n this._adapter.openMenuAsList(this._getYearsForMenu(), setFocus);\n } else {\n this._adapter.openMenuAsGrid(this._getYearsForMenu(), setFocus);\n }\n this._adapter.setDateViewHidden(true);\n this._setNavigationButtonStates();\n this._adapter.emitHostEvent(CALENDAR_CONSTANTS.events.VIEW_CHANGE, this._view);\n }\n\n /**\n * Gets the months to display in the menu.\n * @returns An array of ICalendarMenuOptions containing months\n */\n private _getMonthsForMenu(): ICalendarMenuOption[] {\n const config: ICalendarMenuMonthConfig = {\n locale: this._locale,\n max: this._max,\n min: this._min,\n selectedMonth: this._year === this._menuYear ? this._month : -1,\n selectedYear: this._menuYear ?? this._year\n };\n return getMonthOptions(config);\n }\n\n /**\n * Gets the years to display in the menu, either a slice of visible years or all possible years.\n * @returns An array of ICalendarMenuOptions containing years\n */\n private _getYearsForMenu(): ICalendarMenuOption[] {\n const min = this._min ? this._min.getFullYear() : this._minYear;\n const max = this._max ? this._max.getFullYear() : this._maxYear;\n\n const config: ICalendarMenuYearConfig = {\n locale: this._locale,\n max,\n min,\n selectedYear: this._year,\n yearInView: this._menuIncludedYear\n };\n const options = this._listYears ? getAllYearOptions(config) : getYearOptions(config);\n this._menuYearsInView = { min: options[0].value, max: options[options.length - 1].value };\n return options;\n }\n\n /**\n * Closes the menu and reapplies labels and focus for the date view.\n * @param valueSelected Whether the user made a selection that requires the date view to be rebuilt\n */\n private _closeMenu(valueSelected?: boolean, setFocus = false): void {\n this._view = 'date';\n this._menuYear = null;\n this._adapter.closeMenu();\n this._adapter.setDateViewHidden(false);\n this._adapter.setYear(this._year, this._locale);\n if (valueSelected) {\n this._resetDateGrid();\n }\n if (this._showHeader) {\n this._setNavButtonLabels();\n this._setNavigationButtonStates();\n this._adapter.setMonthButtonPressed(false);\n this._adapter.setYearButtonPressed(false);\n }\n if (!this._resumeTabindexOnDate(setFocus)) {\n this._setInitialDateFocus(setFocus);\n }\n this._adapter.emitHostEvent(CALENDAR_CONSTANTS.events.VIEW_CHANGE, this._view);\n }\n\n /**\n * Sets the labels on the previous and next buttons appropriate for the view.\n */\n private _setNavButtonLabels(): void {\n switch(this._view) {\n case 'date':\n this._adapter.setPreviousButtonLabel('Previous month');\n this._adapter.setNextButtonLabel('Next month');\n break;\n case 'month':\n this._adapter.setPreviousButtonLabel('Previous year');\n this._adapter.setNextButtonLabel('Next year');\n break;\n case 'year':\n this._adapter.setPreviousButtonLabel('Previous years');\n this._adapter.setNextButtonLabel('Next years');\n break;\n }\n }\n\n /**\n * Rebuilds all dates and resets the date grid.\n * */\n private _resetDateGrid(): void {\n this._dates = getMonthDates(this._month, this._year, this._firstDayOfWeek ?? this._localeFirstDayOfWeek);\n\n const dateConfigs: ICalendarDateConfig[] = this._dates.map(d => this._getDateConfig(d));\n this._adapter.setDates(dateConfigs, { builder: this._dateBuilder, locale: this._locale, showOtherMonths: this._showOtherMonths});\n\n this._setNavigationButtonStates();\n this._applyWeekendDays();\n this._applyEvents();\n\n if (this._mode === 'range') {\n this._adapter.setRangeStart(this._value[0]);\n this._setRangePreview();\n }\n }\n\n /**\n * Creates a date config object from the given date.\n * @param date The date\n * @returns A date config\n */\n private _getDateConfig(date: Date): ICalendarDateConfig {\n const thisMonth = isInMonth(date, this._month, this._year);\n const config: ICalendarDateConfig = {\n date: new Date(date),\n selected: isSelected(date, this._value),\n today: isToday(date),\n thisMonth,\n disabled: isDisabled(date, this._getDisabledDateParams(!thisMonth))\n };\n return config;\n }\n\n /**\n * Creates a calendar date object from the given date.\n * @param date The date\n * @returns A calendar date object\n */\n private _getCalendarDate(date: Date): ICalendarDate {\n return {\n date: new Date(date),\n selected: isSelected(date, this._value),\n events: getEventsOnDate(date, this._events, this._eventBuilder)\n };\n }\n\n /**\n * Sets events to display on a date in the DOM, including overflow and tooltips.\n * @param date The date to set events on\n */\n private _setEventsOnDate(date: Date): void {\n if (!this._showOtherMonths && !isInMonth(date, this._month, this._year)) {\n this._adapter.setEventWrapperOnDate(date, false);\n return;\n }\n\n const events: ICalendarEvent[] = getEventsOnDate(date, this._events, this._eventBuilder);\n this._adapter.setEventWrapperOnDate(date, !!events.length);\n events.forEach((e, i) => {\n if (i > 2) {\n return;\n }\n this._adapter.setEvent(e, i === 2 && events.length > 3);\n });\n let description = events.length ? getEventDescriptions(events) : '';\n if (this._tooltipBuilder) {\n description = this._tooltipBuilder(this._getCalendarDate(date), description) ?? '';\n }\n this._adapter.setDateTooltip(date, description);\n }\n\n /**\n * Provides a hook to intercept date selection events.\n * @param date The date that was selected\n * */\n private _beforeDateSelected(date: Date, type: CalendarView = 'date'): void {\n if (this._dateSelectCallback) {\n Promise.resolve(this._dateSelectCallback(this._getCalendarDate(date))).then(res => {\n if (res) {\n this._onDateSelected(date, undefined, type);\n }\n });\n } else {\n this._onDateSelected(date, undefined, type);\n }\n }\n\n /**\n * Runs mode dependent logic to manage selected dates and emit selection events.\n * @param date The date that was selected\n * @param force Whether the date should be selected or deselected, regardless of its prior state (optional)\n * */\n private _onDateSelected(date: Date, force?: boolean, type: CalendarView = 'date'): void {\n if (this._mode === 'range' && this._emitRangeSelectionEvent(date)) {\n this._applyRangeSelection(date);\n this._rangeSelectionStore = undefined;\n return;\n }\n\n const selected = isSelected(date, this._value);\n const event: ICalendarDateSelectEventData = {\n date: new Date(date),\n selected,\n type\n };\n const isAllowed = this._adapter.emitHostEvent(CALENDAR_CONSTANTS.events.DATE_SELECT, event, true, true);\n\n if (!isAllowed) {\n return;\n }\n this._rangeSelectionStore = undefined;\n\n if (this._mode === 'single') {\n if ((selected && !force) || force === false) {\n this._deselectDate(date);\n } else if (force === undefined || force === true) {\n if (this._value.length) {\n this._deselectDate(this._value[0]);\n }\n this._selectDate(date);\n }\n } else {\n if ((selected && !force) || force === false) {\n this._deselectDate(date);\n } else if (force === undefined || force === true) {\n this._selectDate(date);\n }\n }\n\n sortDates(this._value);\n }\n\n /**\n * Emits a date select event with range data.\n * @param date The selected date.\n * @returns True if the event was not cancelled.\n */\n private _emitRangeSelectionEvent(date: Date): boolean {\n const event: ICalendarDateSelectEventData = {\n date: new Date(date),\n selected: isSelected(date, this._value),\n type: 'date'\n };\n\n // Build the event without affecting the calendar's state\n switch (this._rangeSelectionState) {\n case 'none':\n case 'to':\n event.range = getDateRangeFromDates([date]);\n event.rangeSelectionState = 'from';\n break;\n case 'from':\n if (isSameDate(date, this._value[0])) {\n if (this._allowSingleDateRange) {\n event.range = getDateRangeFromDates([this._value[0], date]);\n event.rangeSelectionState = 'to';\n } else {\n event.range = getDateRangeFromDates([]);\n event.rangeSelectionState = 'none';\n }\n } else if (date < this._value[0]) {\n event.range = getDateRangeFromDates([date]);\n event.rangeSelectionState = 'from';\n } else {\n event.range = getDateRangeFromDates([this._value[0], date]);\n event.rangeSelectionState = 'to';\n }\n break;\n }\n\n return this._adapter.emitHostEvent(CALENDAR_CONSTANTS.events.DATE_SELECT, event, true, true);\n }\n\n /**\n * Manages the current selection state and value from a selection when in range mode.\n * @param date The selected date\n * */\n private _applyRangeSelection(date: Date): void {\n switch (this._rangeSelectionState) {\n case 'none':\n case 'to':\n this._deselectAllDates();\n this._selectDate(date);\n this._adapter.setRange(null);\n this._adapter.setRangeStart(date);\n this._rangeSelectionState = 'from';\n break;\n case 'from':\n if (isSameDate(date, this._value[0])) {\n if (this._allowSingleDateRange) {\n this._value.push(date);\n this._rangeSelectionState = 'to';\n } else {\n this._deselectDate(date);\n this._rangeSelectionState = 'none';\n }\n } else if (date < this._value[0]) {\n this._deselectDate(this._value[0]);\n this._selectDate(date);\n this._adapter.setRangeStart(date);\n } else {\n this._selectDate(date);\n this._setRangePreview(date);\n this._rangeSelectionState = 'to';\n }\n break;\n }\n }\n\n /**\n * Sets the properties to display range selections.\n * @param toDate The date that the range preview should end on if an end date isn't already selected (optional)\n * */\n private _setRangePreview(toDate?: Date): void {\n switch (this._rangeSelectionState) {\n case 'from':\n if (!toDate) {\n return;\n }\n if (toDate < this._value[0]) {\n this._adapter.setRange(null);\n } else {\n this._adapter.setRange(getDatesInRange(this._dates, this._value[0], toDate));\n this._adapter.setRangeEnd(toDate);\n }\n break;\n case 'to':\n this._adapter.setRange(getDatesInRange(this._dates, this._value[0], this._value[1]));\n this._adapter.setRangeEnd(this._value[1]);\n break;\n }\n }\n\n /**\n * Removes the range preview.\n */\n private _clearRangePreview(): void {\n this._adapter.setRange(null);\n this._adapter.setRangeStart(null);\n this._adapter.setRangeEnd(null);\n }\n\n /**\n * Adds a date to the value array and sets it selected in the adapter.\n * @param date The date to select\n * */\n private _selectDate(date: Date): void {\n this._value.push(date);\n this._focusedDate = date;\n this._adapter.setDateSelected(date, true);\n }\n\n /**\n * Removes a date from the value array and sets it deselected in the adapter.\n * @param date The date to deselect\n * */\n private _deselectDate(date: Date): void {\n const index = this._value.findIndex(d => isSameDate(d, date));\n if (index > -1) {\n this._value.splice(index, 1);\n }\n this._adapter.setDateSelected(date, false);\n }\n\n /**\n * Clears the value array and sets all dates deselected in the adapter.\n * */\n private _deselectAllDates(): void {\n this._value.forEach(d => this._adapter.setDateSelected(d, false));\n this._clearRangePreview();\n this._value = [];\n }\n\n /**\n * Moves to and sets tabindex on the given date.\n * @param date The destination date\n * @param setFocus Whether focus should be set on the date\n * */\n private _goToDate(date: Date, setFocus: boolean): void {\n const year = date.getFullYear();\n const month = date.getMonth();\n this._focusedDate = date;\n if (this._year !== year || this._month !== month) {\n this._month = month;\n this._setMonth();\n this._year = year;\n this._setYear();\n if (this._view !== 'date') {\n this._closeMenu(false, setFocus);\n } else {\n this._resetDateGrid();\n }\n } else if (this._view !== 'date') {\n this._closeMenu(false, setFocus);\n }\n this._adapter.setActiveDate(date, setFocus, this._preventFocus);\n this._emitFocusChangeEvent(this._focusedDate);\n }\n\n /**\n * Moves forward one month and rebuilds the calendar dates to match.\n * */\n private _goToNextMonth(): void {\n if (this._month < 11) {\n this._month += 1;\n } else {\n this._month = 0;\n this._year += 1;\n this._setYear();\n }\n this._setMonth();\n this._resetDateGrid();\n }\n\n /**\n * Moves backward one month and rebuilds the calendar dates to match.\n * */\n private _goToPreviousMonth(): void {\n if (this._month > 0) {\n this._month -= 1;\n } else {\n this._month = 11;\n this._year -= 1;\n this._setYear();\n }\n this._setMonth();\n this._resetDateGrid();\n }\n\n /**\n * Moves forward one year.\n * */\n private _goToNextYear(setFocus = false): void {\n if (this._view === 'month') {\n if (this._menuYear) {\n this._menuYear += 1;\n this._setMenuYear();\n }\n this._adapter.animateIntoSelectionMenu(this._getMonthsForMenu(), this._rtl ? 'left' : 'right', setFocus);\n } else {\n this._year += 1;\n this._setYear();\n this._resetDateGrid();\n }\n }\n\n /**\n * Moves backward one year.\n * */\n private _goToPreviousYear(setFocus = false): void {\n if (this._view === 'month') {\n if (this._menuYear) {\n this._menuYear -= 1;\n this._setMenuYear();\n }\n this._adapter.animateIntoSelectionMenu(this._getMonthsForMenu(), this._rtl ? 'right' : 'left', setFocus);\n } else {\n this._year -= 1;\n this._setYear();\n this._resetDateGrid();\n }\n }\n \n /**\n * Moves to the next set of selectable years in grid view.\n * */\n private _goToNextSetOfYears(setFocus = false): void {\n this._menuIncludedYear += CALENDAR_CONSTANTS.numbers.YEARS_IN_VIEW;\n this._adapter.animateIntoSelectionMenu(this._getYearsForMenu(), this._rtl ? 'left' : 'right', setFocus);\n this._setNavigationButtonStates();\n }\n\n /**\n * Move to the previous set of selectable years in grid view.\n * */\n private _goToPreviousSetOfYears(setFocus = false): void {\n this._menuIncludedYear -= CALENDAR_CONSTANTS.numbers.YEARS_IN_VIEW;\n this._adapter.animateIntoSelectionMenu(this._getYearsForMenu(), this._rtl ? 'right' : 'left', setFocus);\n this._setNavigationButtonStates();\n }\n\n /**\n * Checks whether the minimum navigable date occurs before the current period.\n * @param forceConstrain Whether to ignore the ability to view dates before the min\n * @returns Whether periods before the one in view are navigable\n */\n private _canGoBackward(forceConstrain?: false): boolean {\n if (!forceConstrain && !this._constrainToEnabled) {\n return true;\n }\n switch (this._view) {\n case 'date':\n return !this._min || this._min < new Date(this._year, this._month, 1);\n case 'month':\n const minDateYear = this._min?.getFullYear();\n return this._menuYear != null && (minDateYear == null || minDateYear < this._menuYear);\n case 'year':\n return !!this._menuYearsInView && this._minYear < this._menuYearsInView.min;\n default:\n return false;\n }\n }\n\n /**\n * Checks whether the maximum navigable date occurs after the current period.\n * @param forceConstrain Whether to ignore the ability to view dates after the max\n * @returns Whether periods after the one in view are navigable\n */\n private _canGoForward(forceConstrain?: false): boolean {\n if (!forceConstrain && !this._constrainToEnabled) {\n return true;\n }\n switch (this._view) {\n case 'date':\n return !this._max || this._max > getLastDateOfMonth(this._month, this._year);\n case 'month':\n const maxDateYear = this._max?.getFullYear();\n return this._menuYear != null && (maxDateYear == null || maxDateYear > this._menuYear);\n case 'year':\n return !!this._menuYearsInView && this._maxYear > this._menuYearsInView.max;\n default:\n return false;\n }\n }\n\n /**\n * Enables or disabled navigation buttons based on whether they would lead outside the range of enabled dates.\n */\n private _setNavigationButtonStates(): void {\n if (!this._showHeader) {\n return;\n }\n\n if (!this._constrainToEnabled) {\n this._adapter.setPreviousButtonDisabled(false);\n this._adapter.setNextButtonDisabled(false);\n return;\n }\n\n this._adapter.setPreviousButtonDisabled(!this._canGoBackward());\n this._adapter.setNextButtonDisabled(!this._canGoForward());\n }\n\n /**\n * Sets the month text and attribute in the adapter.\n * @param userSelected Whether the month was explicitly selected by the user (optional)\n * */\n private _setMonth(userSelected?: boolean): void {\n this._adapter.setMonth(this._month, this._locale);\n this._adapter.setHostAttribute(CALENDAR_CONSTANTS.attributes.MONTH, this._month.toString());\n if (this._isInitialized) {\n this._setNavigationButtonStates();\n this._adapter.emitHostEvent(CALENDAR_CONSTANTS.events.MONTH_CHANGE, {month: this._month, userSelected: userSelected ?? false, year: this._year});\n }\n }\n\n /**\n * Sets the year text and attribute in the adapter.\n * @param userSelected Whether the year was explicilty selected by the user (optional)\n * */\n private _setYear(userSelected?: boolean): void {\n this._adapter.setYear(this._year, this._locale);\n this._adapter.setHostAttribute(CALENDAR_CONSTANTS.attributes.YEAR, this._year.toString());\n if (this._isInitialized) {\n this._setNavigationButtonStates();\n this._adapter.emitHostEvent(CALENDAR_CONSTANTS.events.MONTH_CHANGE, {month: this._month, userSelected: userSelected ?? false, year: this._year});\n }\n }\n\n /**\n * Sets the year currently visible in the menu.\n * */\n private _setMenuYear(): void {\n if (this._menuYear != null) {\n this._setNavigationButtonStates();\n this._adapter.setYear(this._menuYear, this._locale);\n }\n }\n\n private _applyAllowSingleDateRange(): void {\n this._adapter.toggleHostAttribute(CALENDAR_CONSTANTS.attributes.ALLOW_SINGLE_DATE_RANGE, this._allowSingleDateRange);\n this._adapter.setContainerClass(CALENDAR_CONSTANTS.classes.ALLOW_SINGLE_DATE_RANGE, this._allowSingleDateRange);\n }\n\n private _applyClearButton(): void {\n this._adapter.toggleHostAttribute(CALENDAR_CONSTANTS.attributes.CLEAR_BUTTON, true, this._clearButton.toString());\n\n if (!this._clearButton) {\n this._adapter.unregisterClearButtonListener(this._clearButtonListener);\n this._adapter.removeClearButton();\n\n if (!this._todayButton) {\n this._adapter.removeFooter();\n }\n } else {\n this._adapter.setFooter();\n this._adapter.setClearButton();\n this._adapter.registerClearButtonListener(this._clearButtonListener);\n }\n }\n\n private _applyConstrainToEnabled(): void {\n this._adapter.toggleHostAttribute(CALENDAR_CONSTANTS.attributes.CONSTRAIN_TO_ENABLED, true, this._constrainToEnabled.toString());\n\n if (this._isInitialized) {\n this._setNavigationButtonStates();\n }\n }\n\n private _applyDateBuilder(): void {\n if (this._view === 'date') {\n this._resetDateGrid();\n this._resumeTabindexOnDate(false);\n }\n }\n\n private _applyDayBuilder(): void {\n this._adapter.setDays(getSortedDaysOfWeek(this._firstDayOfWeek ?? this._localeFirstDayOfWeek), { builder: this._dayBuilder, locale: this._locale });\n }\n\n private _applyDisabledDates(): void {\n switch (this._view) {\n case 'date':\n this._dates.forEach(d => {\n const inMonth = isInMonth(d, this._month, this._year);\n const disabledParams = this._getDisabledDateParams(!inMonth);\n this._adapter.setDateDisabled(d, isDisabled(d, disabledParams));\n });\n break;\n case 'month':\n this._openMonthMenu();\n break;\n case 'year':\n this._openYearMenu();\n break;\n }\n this._setNavigationButtonStates();\n }\n\n private _applyEvents(): void {\n if (this._view !== 'date') {\n return;\n }\n this._dates.forEach(d => {\n this._setEventsOnDate(d);\n });\n }\n\n private _applyFirstDayOfWeek(): void {\n this._adapter.toggleHostAttribute(CALENDAR_CONSTANTS.attributes.FIRST_DAY_OF_WEEK, isDefined(this._firstDayOfWeek), (this._firstDayOfWeek ?? 0).toString());\n this._adapter.setDays(getSortedDaysOfWeek(this._firstDayOfWeek ?? this._localeFirstDayOfWeek), { builder: this._dayBuilder, locale: this._locale });\n\n if (this._isInitialized && this._view === 'date') {\n this._resetDateGrid();\n this._resumeTabindexOnDate(false);\n }\n }\n\n private _applyFixedHeight(): void {\n this._adapter.toggleHostAttribute(CALENDAR_CONSTANTS.attributes.FIXED_HEIGHT, this._fixedHeight);\n this._adapter.setContainerClass(CALENDAR_CONSTANTS.classes.FIXED_HEIGHT, this._fixedHeight);\n }\n\n private _applyListYears(): void {\n this._adapter.toggleHostAttribute(CALENDAR_CONSTANTS.attributes.LIST_YEARS, this._listYears);\n\n if (this._isInitialized && this._view === 'year') {\n this._openYearMenu();\n }\n }\n\n private _applyLocale(): void {\n this._adapter.toggleHostAttribute(CALENDAR_CONSTANTS.attributes.LOCALE, !!this._locale, this._locale);\n this._adapter.toggleContainerAttribute(!!this._locale, 'lang', this._locale);\n this._localeFirstDayOfWeek = getFirstDayOfWeekForLocale(this._locale);\n this._localeWeekendDays = getWeekendDaysForLocale(this._locale);\n this._applyRtl();\n\n if (this._isInitialized) {\n this._adapter.setMonth(this._month, this._locale);\n this._adapter.setYear(this._year, this._locale);\n\n switch (this._view) {\n case 'date':\n this._adapter.setDays(getSortedDaysOfWeek(this._firstDayOfWeek ?? this._localeFirstDayOfWeek), { builder: this._dayBuilder, locale: this._locale });\n this._resetDateGrid();\n this._resumeTabindexOnDate(false);\n break;\n case 'month':\n this._openMonthMenu();\n break;\n case 'year':\n this._openYearMenu();\n break;\n }\n }\n }\n\n private _applyMenuAnimation(): void {\n this._adapter.setHostAttribute(CALENDAR_CONSTANTS.attributes.MENU_ANIMATION, this._menuAnimation);\n this._adapter.setMenuAnimation(this._menuAnimation);\n }\n\n private _applyMin(): void {\n this._adapter.toggleHostAttribute(CALENDAR_CONSTANTS.attributes.MIN, !!this._minAttribute, this._minAttribute as string);\n\n if (this._isInitialized) {\n this._applyDisabledDates();\n\n if (this._min && this._min > this._focusedDate) {\n const firstEnabledDate = this._getFirstEnabledDate();\n if (firstEnabledDate) {\n this._goToDate(firstEnabledDate, false);\n }\n }\n }\n }\n\n private _applyMax(): void {\n this._adapter.toggleHostAttribute(CALENDAR_CONSTANTS.attributes.MAX, !!this._maxAttribute, this._maxAttribute as string);\n\n if (this._isInitialized) {\n this._applyDisabledDates();\n\n if (this._max && this._max < this._focusedDate) {\n const lastEnabledDate = this._getLastEnabledDate();\n if (lastEnabledDate) {\n this._goToDate(lastEnabledDate, false);\n }\n }\n }\n }\n\n private _applyMode(oldMode?: CalendarMode): void {\n switch (this._mode) {\n case 'single':\n this._applySingleMode();\n break;\n case 'multiple':\n this._applyMultipleMode(oldMode === 'range');\n break;\n case 'range':\n this._applyRangeMode();\n break;\n }\n\n if (this._mode !== 'range') {\n this._rangeSelectionState = 'none';\n this._adapter.unregisterHoverListener(this._hoverListener);\n this._clearRangePreview();\n }\n }\n\n private _applySingleMode(): void {\n this._adapter.setHostAttribute(CALENDAR_CONSTANTS.attributes.MODE, 'single');\n this._adapter.setMultiple(false);\n\n if (this._value.length > 1) {\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (let i = this._value.length - 2; i >= 0; i -= 1) {\n this._deselectDate(this._value[i]);\n }\n }\n }\n\n private _applyMultipleMode(fromRange = false): void {\n this._adapter.setHostAttribute(CALENDAR_CONSTANTS.attributes.MODE, 'multiple');\n this._adapter.setMultiple(true);\n\n if (fromRange) {\n const newDates = getMultipleFromRange(this._value, this._getDisabledDateParams());\n this._deselectAllDates();\n newDates.forEach(d => {\n this._selectDate(d);\n });\n }\n }\n\n private _applyRangeMode(): void {\n this._adapter.setHostAttribute(CALENDAR_CONSTANTS.attributes.MODE, 'range');\n this._adapter.setMultiple(false);\n\n const newValue = getMinAndMaxDates(this._value);\n this._deselectAllDates();\n newValue.forEach(d => {\n this._selectDate(d);\n });\n\n this._rangeSelectionState = this._value[0] ? this._value[1] ? 'to' : 'from' : 'none';\n this._adapter.registerHoverListener(this._hoverListener);\n this._adapter.setRange(getDatesInRange(this._dates, this._value[0], this._value[1]));\n this._adapter.setRangeStart(this._value[0] ?? null);\n this._adapter.setRangeEnd(this._value[1] ?? null);\n }\n\n private _applyMonth(): void {\n this._setMonth();\n if (this._isInitialized && this._view === 'date') {\n this._resetDateGrid();\n this._moveFocusToFirstOfMonth(false);\n }\n }\n\n private _applyPreventFocus(): void {\n this._adapter.toggleHostAttribute(CALENDAR_CONSTANTS.attributes.PREVENT_FOCUS, this._preventFocus);\n this._adapter.setContainerClass(CALENDAR_CONSTANTS.classes.PREVENT_FOCUS, this._preventFocus);\n this._adapter.setPreventFocusOnMenu(this._preventFocus);\n if (this._preventFocus) {\n this._adapter.registerPreventFocusListener(this._preventFocusListener);\n } else {\n this._adapter.unregisterPreventFocusListener(this._preventFocusListener);\n }\n if (this._isInitialized && this._view === 'date') {\n this._resumeTabindexOnDate(false);\n }\n }\n\n private _applyReadOnly(): void {\n this._adapter.toggleHostAttribute(CALENDAR_CONSTANTS.attributes.READONLY, this._readonly);\n this._adapter.toggleHostAttribute('aria-readonly', this._readonly, 'true');\n this._adapter.setContainerClass(CALENDAR_CONSTANTS.classes.READONLY, this._readonly);\n\n if (this._readonly) {\n this._adapter.unregisterDateClickListener(this._dateClickListener);\n this._adapter.unregisterHoverListener(this._hoverListener);\n } else {\n this._adapter.registerDateClickListener(this._dateClickListener);\n if (this._mode === 'range') {\n this._adapter.registerHoverListener(this._hoverListener);\n }\n }\n }\n\n private _applyRtl(): void {\n this._rtl = isRtlLocale(this._locale);\n this._adapter.setContainerClass(CALENDAR_CONSTANTS.classes.RTL, this._rtl);\n this._adapter.toggleContainerAttribute(this._rtl, 'dir', 'rtl');\n }\n\n private _applySelectionFollowsMonth(): void {\n this._adapter.setHostAttribute(CALENDAR_CONSTANTS.attributes.SELECTION_FOLLOWS_MONTH, this._selectionFollowsMonth.toString());\n }\n\n private _applyShowHeader(): void {\n this._adapter.toggleHostAttribute(CALENDAR_CONSTANTS.attributes.SHOW_HEADER, this._showHeader, this._showHeader.toString());\n\n if (this._showHeader) {\n this._adapter.setHeader();\n this._adapter.registerMonthButtonListener(this._monthButtonListener);\n this._adapter.registerNextButtonListener(this._nextButtonListener);\n this._adapter.registerPreviousButtonListener(this._previousButtonListener);\n this._adapter.registerYearButtonListener(this._yearButtonListener);\n this._setNavButtonLabels();\n } else {\n this._adapter.unregisterMonthButtonListener(this._monthButtonListener);\n this._adapter.unregisterNextButtonListener(this._nextButtonListener);\n this._adapter.unregisterPreviousButtonListener(this._previousButtonListener);\n this._adapter.unregisterYearButtonListener(this._yearButtonListener);\n this._adapter.removeHeader();\n }\n\n if (this._isInitialized) {\n this._adapter.setMonth(this._month, this._locale);\n this._adapter.setYear(this._year, this._locale);\n this._setNavigationButtonStates();\n }\n }\n\n private _applyShowOtherMonths(): void {\n this._adapter.toggleHostAttribute(CALENDAR_CONSTANTS.attributes.SHOW_OTHER_MONTHS, this._showOtherMonths);\n\n if (this._isInitialized && this._view === 'date') {\n let skipFinalWeek = false;\n this._dates.forEach((d, i) => {\n if (isInMonth(d, this._month, this._year)) {\n return;\n }\n if (i === CALENDAR_CONSTANTS.numbers.PENULTIMATE_WEEK_BEGIN_INDEX || i === CALENDAR_CONSTANTS.numbers.FINAL_WEEK_BEGIN_INDEX) {\n skipFinalWeek = true;\n }\n if (this._showOtherMonths && !skipFinalWeek) {\n this._adapter.replaceDate(this._getDateConfig(d), { builder: this._dateBuilder, locale: this._locale });\n } else {\n this._adapter.replaceDateWithSpacer(d);\n }\n this._setEventsOnDate(d);\n this._applyWeekendDays();\n });\n }\n }\n\n private _applyShowToday(): void {\n this._adapter.toggleHostAttribute(CALENDAR_CONSTANTS.attributes.SHOW_TODAY, this._showToday);\n this._adapter.setContainerClass(CALENDAR_CONSTANTS.classes.SHOW_TODAY, this._showToday);\n }\n\n private _applyTodayButton(): void {\n this._adapter.toggleHostAttribute(CALENDAR_CONSTANTS.attributes.TODAY_BUTTON, true, this._todayButton.toString());\n\n if (!this._todayButton) {\n this._adapter.unregisterTodayButtonListener(this._todayButtonListener);\n this._adapter.removeTodayButton();\n\n if (!this._clearButton) {\n this._adapter.removeFooter();\n }\n } else {\n this._adapter.setFooter();\n this._adapter.setTodayButton();\n this._adapter.registerTodayButtonListener(this._todayButtonListener);\n }\n }\n\n private _applyTooltipBuilder(): void {\n if (this._view === 'date') {\n this._dates.forEach(d => {\n if (!this._showOtherMonths && !isInMonth(d, this._month, this._year)) {\n return;\n }\n const events = getEventsOnDate(d, this._events, this._eventBuilder);\n let tooltipContent = getEventDescriptions(events);\n if (this._tooltipBuilder) {\n tooltipContent = this._tooltipBuilder(this._getCalendarDate(d), tooltipContent) ?? '';\n }\n this._adapter.setDateTooltip(d, tooltipContent);\n });\n }\n }\n\n private _applyWeekendDays(): void {\n const weekendDays = this._weekendDays ?? this._localeWeekendDays;\n if (this._view === 'date') {\n this._dates.forEach(d => {\n const day = d.getDay();\n this._adapter.setWeekend(d, (this._showOtherMonths || isInMonth(d, this._month, this._year)) && weekendDays.includes(day));\n });\n }\n }\n\n private _applyValue(newValue: Date[]): void {\n newValue = newValue.map(d => new Date(d));\n sortDates(newValue);\n this._deselectAllDates();\n newValue.forEach(d => this._selectDate(d));\n\n if (this._mode === 'range') {\n this._rangeSelectionState = this._value.length === 2 ? 'to' : this._value.length === 1 ? 'from' : 'none';\n this._clearRangePreview();\n this._adapter.setRangeStart(this._value[0]);\n this._setRangePreview();\n }\n }\n\n private _applyView(): void {\n this._adapter.setHostAttribute(CALENDAR_CONSTANTS.attributes.VIEW, this._view);\n\n switch (this._view) {\n case 'date':\n this._closeMenu();\n break;\n case 'month':\n this._openMonthMenu();\n break;\n case 'year':\n this._openYearMenu();\n break;\n }\n }\n\n private _applyYear(): void {\n this._setYear();\n if (this._isInitialized && this._view === 'date') {\n this._resetDateGrid();\n this._moveFocusToFirstOfMonth(false);\n }\n }\n\n private _applyYearRange(): void {\n this._adapter.setHostAttribute(CALENDAR_CONSTANTS.attributes.YEAR_RANGE, this._yearRange);\n const range = parseYearRange(this._yearRange);\n this._minYear = range.min;\n this._maxYear = range.max;\n if (this._view === 'year') {\n this._openYearMenu();\n this._setNavigationButtonStates();\n }\n }\n\n /** Get the currently focused date */\n public get activeDate(): Date {\n return new Date(this._focusedDate);\n }\n\n /** Get/set whether single date ranges are allowed */\n public get allowSingleDateRange(): boolean {\n return this._allowSingleDateRange;\n }\n public set allowSingleDateRange(value: boolean) {\n if (this._allowSingleDateRange !== value) {\n this._allowSingleDateRange = value;\n this._applyAllowSingleDateRange();\n }\n }\n\n /** Get/set whether to show the clear button */\n public get clearButton(): boolean {\n return this._clearButton;\n }\n public set clearButton(value: boolean) {\n if (this._clearButton !== value) {\n this._clearButton = value;\n\n if (this._isInitialized) {\n this._applyClearButton();\n }\n }\n }\n\n /* Get/set the clear button callback */\n public get clearCallback(): (() => void) | undefined {\n return this._clearCallback;\n }\n public set clearCallback(value: (() => void) | undefined) {\n this._clearCallback = value;\n }\n\n /** Get/set whether to constain navigation to enabled dates */\n public get constrainToEnabled(): boolean {\n return this._constrainToEnabled;\n }\n public set constrainToEnabled(value: boolean) {\n if (this._constrainToEnabled !== value) {\n this._constrainToEnabled = value;\n\n if (this._isInitialized) {\n this._applyConstrainToEnabled();\n }\n }\n }\n\n /** Get/set date builder */\n public get dateBuilder(): CalendarDateBuilder | undefined {\n return this._dateBuilder;\n }\n public set dateBuilder(value: CalendarDateBuilder | undefined) {\n this._dateBuilder = value;\n\n if (this._isInitialized) {\n this._applyDateBuilder();\n }\n }\n\n /** Get/set date select callback */\n public get dateSelectCallback(): CalendarDateSelectCallback | undefined {\n return this._dateSelectCallback;\n }\n public set dateSelectCallback(value: CalendarDateSelectCallback | undefined) {\n this._dateSelectCallback = value;\n }\n\n /** Get/set day builder */\n public get dayBuilder(): CalendarDayBuilder | undefined {\n return this.dayBuilder;\n }\n public set dayBuilder(value: CalendarDayBuilder | undefined) {\n this._dayBuilder = value;\n\n if (this._isInitialized) {\n this._applyDayBuilder();\n }\n }\n\n /** Get/set disabled date builder */\n public get disabledDateBuilder(): ((date: Date) => boolean) | undefined {\n return this._disabledDateBuilder;\n }\n public set disabledDateBuilder(value: ((date: Date) => boolean) | undefined) {\n this._disabledDateBuilder = value;\n\n if (this._isInitialized) {\n this._applyDisabledDates();\n }\n }\n\n /** Get/set disabled dates */\n public get disabledDates(): Date | Date[] | null | undefined {\n const dates = this._disabledDates.map(d => new Date(d));\n return dates.length ? dates : null;\n }\n public set disabledDates(value: Date | Date[] | null | undefined) {\n const dates = value ? isArray(value) ? value : [value] : [];\n this._disabledDates = (dates as Date[]).map(d => {\n const date = new Date(d);\n date.setHours(0, 0, 0, 0);\n return date;\n });\n\n if (this._isInitialized) {\n this._applyDisabledDates();\n }\n }\n\n /** Get/set disabled days of week */\n public get disabledDaysOfWeek(): DayOfWeek | DayOfWeek[] | null | undefined {\n return this._disabledDaysOfWeek.length ? [...this._disabledDaysOfWeek] : null ;\n }\n public set disabledDaysOfWeek(value: DayOfWeek | DayOfWeek[] | null | undefined) {\n this._disabledDaysOfWeek = (isDefined(value) ? isArray(value) ? value : [value] : []) as DayOfWeek[];\n\n if (this._isInitialized) {\n this._applyDisabledDates();\n }\n }\n\n /** Get/set the event builder */\n public get eventBuilder(): CalendarEventBuilder | undefined {\n return this._eventBuilder;\n }\n public set eventBuilder(value: CalendarEventBuilder | undefined) {\n this._eventBuilder = value;\n\n if (this._isInitialized) {\n this._applyEvents();\n }\n }\n\n /** Get/set events */\n public get events(): ICalendarEvent[] | null | undefined {\n return this._events ? [...this._events] : null;\n }\n public set events(value: ICalendarEvent[] | null | undefined) {\n this._events = value?.length ? [...value] : [];\n\n if (this._isInitialized) {\n this._applyEvents();\n }\n }\n\n /** Get/set first day of week */\n public get firstDayOfWeek(): DayOfWeek | undefined {\n return this._firstDayOfWeek;\n }\n public set firstDayOfWeek(value: DayOfWeek | undefined) {\n if (this._firstDayOfWeek !== value) {\n this._firstDayOfWeek = isDefined(value) ? +(value as DayOfWeek) : value;\n\n if (this._isInitialized) {\n this._applyFirstDayOfWeek();\n }\n }\n }\n\n /** Get/set fixed height */\n public get fixedHeight(): boolean {\n return this._fixedHeight;\n }\n public set fixedHeight(value: boolean) {\n if (this._fixedHeight !== value) {\n this._fixedHeight = value;\n\n if (this._isInitialized) {\n this._applyFixedHeight();\n }\n }\n }\n\n /** Get/set list years */\n public get listYears(): boolean {\n return this._listYears;\n }\n public set listYears(value: boolean) {\n if (this._listYears !== value) {\n this._listYears = value;\n this._applyListYears();\n }\n }\n\n /** Get/set locale */\n public get locale(): string | undefined {\n return this._locale;\n }\n public set locale(value: string | undefined) {\n if (typeof value ==='string' && !value.length) {\n value = undefined;\n }\n\n if (this._locale !== value) {\n this._locale = value;\n\n if (this._isInitialized) {\n this._applyLocale();\n }\n }\n }\n\n /** Get/set max date */\n public get max(): Date | string | null | undefined {\n return this._max;\n }\n public set max(value: Date | string | null | undefined) {\n if (this._maxAttribute !== value) {\n this._maxAttribute = value?.toString() ?? null;\n this._max = coerceDateFromValue(value);\n this._applyMax();\n }\n }\n\n /** Get/set menu animation type */\n public get menuAnimation(): CalendarMenuAnimationType {\n return this._menuAnimation;\n }\n public set menuAnimation(value: CalendarMenuAnimationType) {\n if (this._menuAnimation !== value) {\n this._menuAnimation = value;\n\n if (this._isInitialized) {\n this._applyMenuAnimation();\n }\n }\n }\n\n /** Get/set min date */\n public get min(): Date | string | null | undefined {\n return this._min;\n }\n public set min(value: Date | string | null | undefined) {\n if (this._minAttribute !== value) {\n this._minAttribute = value?.toString() ?? null;\n this._min = coerceDateFromValue(value);\n this._applyMin();\n }\n }\n\n /** Get/set mode */\n public get mode(): CalendarMode {\n return this._mode;\n }\n public set mode(value: CalendarMode) {\n if (this._mode !== value) {\n const oldMode = this._mode;\n this._mode = value;\n \n if (this._isInitialized) {\n this._applyMode(oldMode);\n }\n }\n }\n\n /** Get/set month */\n public get month(): number {\n return this._month;\n }\n public set month(value: number) {\n if (this._month !== value) {\n const newValue = isNaN(+value) ? this._month : +value;\n if (this._month === newValue) {\n return;\n }\n\n this._month = +value;\n\n if (this._isInitialized) {\n this._applyMonth();\n }\n }\n }\n\n /** Get/set prevent focus */\n public get preventFocus(): boolean {\n return this._preventFocus;\n }\n public set preventFocus(value: boolean) {\n if (this._preventFocus !== value) {\n this._preventFocus = value;\n\n if (this._isInitialized) {\n this._applyPreventFocus();\n }\n }\n }\n\n /** Get/set readonly */\n public get readonly(): boolean {\n return this._readonly;\n }\n public set readonly(value: boolean) {\n if (this._readonly !== value) {\n this._readonly = value;\n\n if (this._isInitialized) {\n this._applyReadOnly();\n }\n }\n }\n\n /** Get/set selection follows month */\n public get selectionFollowsMonth(): boolean {\n return this._selectionFollowsMonth;\n }\n public set selectionFollowsMonth(value: boolean) {\n if (this._selectionFollowsMonth !== value) {\n this._selectionFollowsMonth = value;\n\n if (this._isInitialized) {\n this._applySelectionFollowsMonth();\n }\n }\n }\n\n /** Get/set show nav */\n public get showHeader(): boolean {\n return this._showHeader;\n }\n public set showHeader(value: boolean) {\n if (this._showHeader !== value) {\n this._showHeader = value;\n\n if (this._isInitialized) {\n this._applyShowHeader();\n }\n }\n }\n\n /** Get/set show other months */\n public get showOtherMonths(): boolean {\n return this._showOtherMonths;\n }\n public set showOtherMonths(value: boolean) {\n if (this._showOtherMonths !== value) {\n this._showOtherMonths = value;\n\n if (this._isInitialized) {\n this._applyShowOtherMonths();\n }\n }\n }\n\n /** Get/set show today */\n public get showToday(): boolean {\n return this._showToday;\n }\n public set showToday(value: boolean) {\n if (this._showToday !== value) {\n this._showToday = value;\n\n if (this._isInitialized) {\n this._applyShowToday();\n }\n }\n }\n\n /** Get/set whether to show the today button */\n public get todayButton(): boolean {\n return this._todayButton;\n }\n public set todayButton(value: boolean) {\n if (this._todayButton !== value) {\n this._todayButton = value;\n\n if (this._isInitialized) {\n this._applyTodayButton();\n }\n }\n }\n\n /* Get/set the today button callback */\n public get todayCallback(): (() => void) | undefined {\n return this._todayCallback;\n }\n public set todayCallback(value: (() => void) | undefined) {\n this._todayCallback = value;\n }\n\n /** Get/set the tooltip builder */\n public get tooltipBuilder(): CalendarTooltipBuilder | undefined {\n return this._tooltipBuilder;\n }\n public set tooltipBuilder(value: CalendarTooltipBuilder | undefined) {\n this._tooltipBuilder = value;\n\n if (this._isInitialized) {\n this._applyTooltipBuilder();\n }\n }\n\n /** Get/set value */\n public get value(): Date | Date[] | DateRange | null | undefined {\n if (this._mode === 'range') {\n return this._rangeSelectionStore ?? getDateRangeFromDates(this._value);\n }\n\n const dates = this._value.map(d => new Date(d));\n return this._mode === 'multiple' ? dates : dates.length ? dates[0] : null;\n }\n public set value(value: Date | Date[] | DateRange | null | undefined) {\n let dates: Date[] = [];\n\n this._rangeSelectionStore = undefined;\n\n if (!value || (Array.isArray(value) && !value.length)) {\n this._value = [];\n } else if (Array.isArray(value)) {\n switch (this._mode) {\n case 'single':\n dates = [value[0]];\n break;\n case 'multiple':\n dates = value;\n break;\n case 'range':\n const minAndMax = getMinAndMaxDates(value);\n dates.push(minAndMax[0]);\n if (minAndMax.length > 1) {\n dates.push(minAndMax[1]);\n }\n break;\n }\n } else if (isValidDate(new Date(value as any))) {\n dates = [value as Date];\n } else {\n this._rangeSelectionStore = new DateRange(value as DateRange);\n dates = getDatesFromDateRange(value as DateRange);\n }\n\n this._applyValue(dates);\n }\n\n /** Get/set view */\n public get view(): CalendarView {\n return this._view;\n }\n public set view(value: CalendarView) {\n if (this._view !== value) {\n this._view = value;\n this._applyView();\n }\n }\n\n /** Get/set weekend days */\n public get weekendDays(): DayOfWeek[] | null | undefined {\n return this._weekendDays ? [...this._weekendDays] : null;\n }\n public set weekendDays(value: DayOfWeek[] | null | undefined) {\n this._weekendDays = value?.map(v => +v) ?? null;\n\n if (this._isInitialized) {\n this._applyWeekendDays();\n }\n }\n\n /** Get/set year */\n public get year(): number {\n return this._year;\n }\n public set year(value: number) {\n if (this._year !== value) {\n const newValue = isNaN(+value) ? this._year : +value;\n if (this._year === newValue) {\n return;\n }\n\n this._year = newValue;\n \n if (this._isInitialized) {\n this._applyYear();\n }\n }\n }\n\n /** Get/set year range */\n public get yearRange(): string {\n return this._yearRange;\n }\n public set yearRange(value: string) {\n if (this._yearRange !== value) {\n this._yearRange = value;\n\n if (this._isInitialized) {\n this._applyYearRange();\n }\n }\n }\n\n /** Deselect all dates */\n public clear(): void {\n this._deselectAllDates();\n if (this._clearCallback) {\n this._clearCallback();\n }\n }\n\n /** Deselect a date */\n public deselectDate(date: Date, setFocus?: boolean): void {\n this._onDateSelected(date, false);\n if (setFocus) {\n this._focusedDate = date;\n this._resumeTabindexOnDate(true);\n }\n }\n\n /** Go to a date and optionally set focus on it */\n public goToDate(date: Date, setFocus?: boolean): void {\n this._goToDate(date, setFocus ?? false);\n }\n\n /** Handle an external keyboard event */\n public handleExternalKeyEvent(evt: KeyboardEvent): void {\n this._onKeydown(evt);\n }\n\n /** Reinitialize the calendar */\n public layout(): void {\n this._applyFirstDayOfWeek();\n this._createDateView();\n this._applyShowHeader();\n this._applyConstrainToEnabled();\n }\n\n /** Select a date */\n public selectDate(date: Date, setFocus?: boolean): void {\n this._onDateSelected(date, true);\n if (setFocus) {\n this._focusedDate = date;\n this._resumeTabindexOnDate(true);\n }\n }\n\n /** Sets the active date if in view */\n public setActiveDate(date: Date, setFocus?: boolean): boolean {\n if (this._dates.some(d => isSameDate(d, date) && (this._showOtherMonths || isInMonth(d, this._month, this._year)))) {\n this._goToDate(date, setFocus ?? false);\n return true;\n }\n return false;\n }\n\n /** Go to today */\n public today(): void {\n const today = new Date();\n today.setHours(0, 0, 0, 0);\n this._goToDate(today, true);\n if (this._todayCallback) {\n this._todayCallback();\n }\n }\n\n /** Toggles a date selected or unselected */\n public toggleDate(date: Date, force?: boolean): void {\n this._onDateSelected(date);\n }\n}\n", "import { CustomElement, attachShadowTemplate, ICustomElement, FoundationProperty, coerceNumber, coerceBoolean, elementParents } from '@tylertech/forge-core';\nimport { tylIconAdd, tylIconArrowDropDown, tylIconKeyboardArrowLeft, tylIconKeyboardArrowRight, tylIconLens } from '@tylertech/tyler-icons/standard';\n\nimport { CalendarAdapter } from './calendar-adapter';\nimport { CalendarFoundation } from './calendar-foundation';\nimport { CALENDAR_CONSTANTS, CalendarMode, DayOfWeek, ICalendarDateSelectEventData, CalendarDateBuilder, CalendarDayBuilder, CalendarDateSelectCallback, CalendarEventBuilder, ICalendarEvent, ICalendarFocusChangeEventData, ICalendarMonthChangeEventData, CalendarTooltipBuilder, CalendarView } from './calendar-constants';\nimport { DateRange } from './core/date-range';\nimport { ButtonComponent } from '../button';\nimport { IconButtonComponent } from '../icon-button';\nimport { IconComponent, IconRegistry } from '../icon';\nimport { TooltipComponent } from '../tooltip';\nimport { ICalendarBase } from './core/calendar-base';\nimport { CalendarMenuAnimationType, CalendarMenuComponent } from './calendar-menu';\n\nconst template = '<template><div class=\\\"forge-calendar\\\" part=\\\"root\\\"><div id=\\\"view\\\" class=\\\"forge-calendar__view\\\" part=\\\"view\\\"><div id=\\\"date-view\\\" class=\\\"forge-calendar__date-view\\\" role=\\\"grid\\\" part=\\\"date-view\\\"><div role=\\\"rowgroup\\\" part=\\\"date-view-container\\\"><div id=\\\"day-row\\\" class=\\\"forge-calendar__date-view__row\\\" role=\\\"row\\\" part=\\\"date-view-row\\\"></div></div><div id=\\\"date-grid\\\" class=\\\"forge-calendar__date-grid\\\" role=\\\"rowgroup\\\" part=\\\"date-grid-container\\\"></div></div><forge-calendar-menu id=\\\"menu\\\" part=\\\"calendar-menu\\\"></forge-calendar-menu></div></div></template>';\nconst styles = '.mdc-elevation-overlay{position:absolute;border-radius:inherit;pointer-events:none;opacity:0;opacity:var(--mdc-elevation-overlay-opacity, 0);-webkit-transition:opacity 280ms cubic-bezier(.4, 0, .2, 1);transition:opacity 280ms cubic-bezier(.4, 0, .2, 1);background-color:#fff;background-color:var(--mdc-elevation-overlay-color,#fff)}.forge-button{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-button-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:.875rem;font-size:var(--mdc-typography-button-font-size, .875rem);line-height:2.25rem;line-height:var(--mdc-typography-button-line-height, 2.25rem);font-weight:500;font-weight:var(--mdc-typography-button-font-weight,500);letter-spacing:.0892857143em;letter-spacing:var(--mdc-typography-button-letter-spacing, .0892857143em);text-decoration:none;-webkit-text-decoration:var(--mdc-typography-button-text-decoration,none);text-decoration:var(--mdc-typography-button-text-decoration,none);text-transform:uppercase;text-transform:var(--mdc-typography-button-text-transform,uppercase);position:relative;display:-webkit-inline-box;display:inline-flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;-webkit-box-sizing:border-box;box-sizing:border-box;min-width:64px;border:none;outline:0;line-height:inherit;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-appearance:none;overflow:visible;vertical-align:middle}.forge-button .mdc-elevation-overlay{width:100%;height:100%;top:0;left:0}.forge-button::-moz-focus-inner{padding:0;border:0}.forge-button:active{outline:0}.forge-button:hover{cursor:pointer}.forge-button:disabled{cursor:default;pointer-events:none}.forge-button .forge-button__icon{margin-left:0;margin-right:8px;display:inline-block;font-size:1.125rem;height:1.125rem;vertical-align:top;width:1.125rem}.forge-button .forge-button__icon[dir=rtl],[dir=rtl] .forge-button .forge-button__icon{margin-left:8px;margin-right:0}.forge-button__label~.forge-button__icon{margin-left:8px;margin-right:0}.forge-button__label~.forge-button__icon[dir=rtl],[dir=rtl] .forge-button__label~.forge-button__icon{margin-left:0;margin-right:8px}svg.forge-button__icon{fill:currentColor}.forge-button--outlined .forge-button__icon,.forge-button--raised .forge-button__icon,.forge-button--unelevated .forge-button__icon{margin-right:8px}.forge-button--outlined .forge-button__icon[dir=rtl],.forge-button--raised .forge-button__icon[dir=rtl],.forge-button--unelevated .forge-button__icon[dir=rtl],[dir=rtl] .forge-button--outlined .forge-button__icon,[dir=rtl] .forge-button--raised .forge-button__icon,[dir=rtl] .forge-button--unelevated .forge-button__icon{margin-right:-4px}.forge-button--outlined .forge-button__label~.forge-button__icon,.forge-button--raised .forge-button__label~.forge-button__icon,.forge-button--unelevated .forge-button__label~.forge-button__icon{margin-right:-4px}.forge-button--outlined .forge-button__label~.forge-button__icon[dir=rtl],.forge-button--raised .forge-button__label~.forge-button__icon[dir=rtl],.forge-button--unelevated .forge-button__label~.forge-button__icon[dir=rtl],[dir=rtl] .forge-button--outlined .forge-button__label~.forge-button__icon,[dir=rtl] .forge-button--raised .forge-button__label~.forge-button__icon,[dir=rtl] .forge-button--unelevated .forge-button__label~.forge-button__icon{margin-right:8px}@-webkit-keyframes mdc-ripple-fg-radius-in{from{-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);-webkit-transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1);transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1)}to{-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}}@keyframes mdc-ripple-fg-radius-in{from{-webkit-animation-timing-function:cubic-bezier(0.4,0,0.2,1);animation-timing-function:cubic-bezier(0.4,0,0.2,1);-webkit-transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1);transform:translate(var(--mdc-ripple-fg-translate-start,0)) scale(1)}to{-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}}@-webkit-keyframes mdc-ripple-fg-opacity-in{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@keyframes mdc-ripple-fg-opacity-in{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:0}to{opacity:var(--mdc-ripple-fg-opacity, 0)}}@-webkit-keyframes mdc-ripple-fg-opacity-out{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}@keyframes mdc-ripple-fg-opacity-out{from{-webkit-animation-timing-function:linear;animation-timing-function:linear;opacity:var(--mdc-ripple-fg-opacity, 0)}to{opacity:0}}.forge-button{--mdc-ripple-fg-size:0;--mdc-ripple-left:0;--mdc-ripple-top:0;--mdc-ripple-fg-scale:1;--mdc-ripple-fg-translate-end:0;--mdc-ripple-fg-translate-start:0;-webkit-tap-highlight-color:transparent;will-change:transform,opacity}.forge-button .forge-button__ripple::after,.forge-button .forge-button__ripple::before{position:absolute;border-radius:50%;opacity:0;pointer-events:none;content:\\\"\\\"}.forge-button .forge-button__ripple::before{-webkit-transition:opacity 15ms linear,background-color 15ms linear;transition:opacity 15ms linear,background-color 15ms linear;z-index:1;z-index:var(--mdc-ripple-z-index,1)}.forge-button .forge-button__ripple::after{z-index:0;z-index:var(--mdc-ripple-z-index,0)}.forge-button.mdc-ripple-upgraded .forge-button__ripple::before{-webkit-transform:scale(var(--mdc-ripple-fg-scale,1));transform:scale(var(--mdc-ripple-fg-scale,1))}.forge-button.mdc-ripple-upgraded .forge-button__ripple::after{top:0;left:0;-webkit-transform:scale(0);transform:scale(0);-webkit-transform-origin:center center;transform-origin:center center}.forge-button.mdc-ripple-upgraded--unbounded .forge-button__ripple::after{top:var(--mdc-ripple-top,0);left:var(--mdc-ripple-left,0)}.forge-button.mdc-ripple-upgraded--foreground-activation .forge-button__ripple::after{-webkit-animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards;animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards}.forge-button.mdc-ripple-upgraded--foreground-deactivation .forge-button__ripple::after{-webkit-animation:mdc-ripple-fg-opacity-out 150ms;animation:mdc-ripple-fg-opacity-out 150ms;-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}.forge-button .forge-button__ripple::after,.forge-button .forge-button__ripple::before{top:calc(50% - 100%);left:calc(50% - 100%);width:200%;height:200%}.forge-button.mdc-ripple-upgraded .forge-button__ripple::after{width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.forge-button .forge-button__ripple{position:absolute;-webkit-box-sizing:content-box;box-sizing:content-box;width:100%;height:100%;overflow:hidden}.forge-button:not(.forge-button--outlined) .forge-button__ripple{top:0;left:0}.forge-button--raised{box-shadow:0 3px 1px -2px rgba(0,0,0,.2),0 2px 2px 0 rgba(0,0,0,.14),0 1px 5px 0 rgba(0,0,0,.12);-webkit-transition:-webkit-box-shadow 280ms cubic-bezier(.4, 0, .2, 1);transition:-webkit-box-shadow 280ms cubic-bezier(.4, 0, .2, 1);transition:box-shadow 280ms cubic-bezier(.4, 0, .2, 1);transition:box-shadow 280ms cubic-bezier(.4, 0, .2, 1),-webkit-box-shadow 280ms cubic-bezier(.4, 0, .2, 1)}.forge-button--raised:focus,.forge-button--raised:hover{box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.forge-button--raised:active{box-shadow:0 5px 5px -3px rgba(0,0,0,.2),0 8px 10px 1px rgba(0,0,0,.14),0 3px 14px 2px rgba(0,0,0,.12)}.forge-button--raised:disabled{box-shadow:0 0 0 0 rgba(0,0,0,.2),0 0 0 0 rgba(0,0,0,.14),0 0 0 0 rgba(0,0,0,.12)}.forge-button--outlined{border-style:solid}.forge-button{height:36px;border-radius:4px;border-radius:var(--mdc-shape-small,4px);padding:0 8px 0 8px}.forge-button:not(:disabled){background-color:transparent}.forge-button:disabled{background-color:transparent}.forge-button:not(:disabled){color:#3f51b5;color:var(--mdc-theme-primary,#3f51b5)}.forge-button:disabled{color:rgba(0,0,0,.38);color:var(--mdc-theme-text-disabled-on-light,rgba(0,0,0,.38))}.forge-button .forge-button__ripple::after,.forge-button .forge-button__ripple::before{background-color:#3f51b5;background-color:var(--mdc-ripple-color,var(--mdc-theme-primary,#3f51b5))}.forge-button.mdc-ripple-surface--hover .forge-button__ripple::before,.forge-button:hover .forge-button__ripple::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.forge-button.mdc-ripple-upgraded--background-focused .forge-button__ripple::before,.forge-button:not(.mdc-ripple-upgraded):focus .forge-button__ripple::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.forge-button:not(.mdc-ripple-upgraded) .forge-button__ripple::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-button:not(.mdc-ripple-upgraded):active .forge-button__ripple::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.forge-button.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}.forge-button .forge-button__ripple{border-radius:4px;border-radius:var(--mdc-shape-small,4px)}.forge-button--unelevated{padding:0 16px 0 16px;height:36px;border-radius:4px;border-radius:var(--mdc-shape-small,4px)}.forge-button--unelevated:not(:disabled){background-color:#3f51b5;background-color:var(--mdc-theme-primary,#3f51b5)}.forge-button--unelevated:disabled{background-color:rgba(0,0,0,.12);background-color:var(--mdc-theme-text-disabled-on-background,rgba(0,0,0,.12))}.forge-button--unelevated:not(:disabled){color:#fff;color:var(--mdc-theme-on-primary,#fff)}.forge-button--unelevated:disabled{color:rgba(0,0,0,.38);color:var(--mdc-theme-text-disabled-on-light,rgba(0,0,0,.38))}.forge-button--unelevated .forge-button__ripple::after,.forge-button--unelevated .forge-button__ripple::before{background-color:#fff;background-color:var(--mdc-ripple-color,var(--mdc-theme-on-primary,#fff))}.forge-button--unelevated.mdc-ripple-surface--hover .forge-button__ripple::before,.forge-button--unelevated:hover .forge-button__ripple::before{opacity:.08;opacity:var(--mdc-ripple-hover-opacity, .08)}.forge-button--unelevated.mdc-ripple-upgraded--background-focused .forge-button__ripple::before,.forge-button--unelevated:not(.mdc-ripple-upgraded):focus .forge-button__ripple::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.24;opacity:var(--mdc-ripple-focus-opacity, .24)}.forge-button--unelevated:not(.mdc-ripple-upgraded) .forge-button__ripple::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-button--unelevated:not(.mdc-ripple-upgraded):active .forge-button__ripple::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.24;opacity:var(--mdc-ripple-press-opacity, .24)}.forge-button--unelevated.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.24)}.forge-button--unelevated .forge-button__ripple{border-radius:4px;border-radius:var(--mdc-shape-small,4px)}.forge-button--raised{padding:0 16px 0 16px;height:36px;border-radius:4px;border-radius:var(--mdc-shape-small,4px)}.forge-button--raised:not(:disabled){background-color:#3f51b5;background-color:var(--mdc-theme-primary,#3f51b5)}.forge-button--raised:disabled{background-color:rgba(0,0,0,.12);background-color:var(--mdc-theme-text-disabled-on-background,rgba(0,0,0,.12))}.forge-button--raised:not(:disabled){color:#fff;color:var(--mdc-theme-on-primary,#fff)}.forge-button--raised:disabled{color:rgba(0,0,0,.38);color:var(--mdc-theme-text-disabled-on-light,rgba(0,0,0,.38))}.forge-button--raised .forge-button__ripple::after,.forge-button--raised .forge-button__ripple::before{background-color:#fff;background-color:var(--mdc-ripple-color,var(--mdc-theme-on-primary,#fff))}.forge-button--raised.mdc-ripple-surface--hover .forge-button__ripple::before,.forge-button--raised:hover .forge-button__ripple::before{opacity:.08;opacity:var(--mdc-ripple-hover-opacity, .08)}.forge-button--raised.mdc-ripple-upgraded--background-focused .forge-button__ripple::before,.forge-button--raised:not(.mdc-ripple-upgraded):focus .forge-button__ripple::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.24;opacity:var(--mdc-ripple-focus-opacity, .24)}.forge-button--raised:not(.mdc-ripple-upgraded) .forge-button__ripple::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-button--raised:not(.mdc-ripple-upgraded):active .forge-button__ripple::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.24;opacity:var(--mdc-ripple-press-opacity, .24)}.forge-button--raised.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.24)}.forge-button--raised .forge-button__ripple{border-radius:4px;border-radius:var(--mdc-shape-small,4px)}.forge-button--outlined{height:36px;border-radius:4px;border-radius:var(--mdc-shape-small,4px);padding:0 15px 0 15px;border-width:1px}.forge-button--outlined:not(:disabled){background-color:transparent}.forge-button--outlined:disabled{background-color:transparent}.forge-button--outlined:not(:disabled){color:#3f51b5;color:var(--mdc-theme-primary,#3f51b5)}.forge-button--outlined:disabled{color:rgba(0,0,0,.38);color:var(--mdc-theme-text-disabled-on-light,rgba(0,0,0,.38))}.forge-button--outlined .forge-button__ripple::after,.forge-button--outlined .forge-button__ripple::before{background-color:#3f51b5;background-color:var(--mdc-ripple-color,var(--mdc-theme-primary,#3f51b5))}.forge-button--outlined.mdc-ripple-surface--hover .forge-button__ripple::before,.forge-button--outlined:hover .forge-button__ripple::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.forge-button--outlined.mdc-ripple-upgraded--background-focused .forge-button__ripple::before,.forge-button--outlined:not(.mdc-ripple-upgraded):focus .forge-button__ripple::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.forge-button--outlined:not(.mdc-ripple-upgraded) .forge-button__ripple::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-button--outlined:not(.mdc-ripple-upgraded):active .forge-button__ripple::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.forge-button--outlined.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}.forge-button--outlined .forge-button__ripple{border-radius:4px;border-radius:var(--mdc-shape-small,4px)}.forge-button--outlined:not(:disabled){border-color:#3f51b5;border-color:var(--mdc-theme-primary,#3f51b5)}.forge-button--outlined:disabled{border-color:rgba(0,0,0,.12);border-color:var(--mdc-theme-text-disabled-on-background,rgba(0,0,0,.12))}.forge-button--outlined .forge-button__ripple{top:-1px;left:-1px;border:1px solid transparent}.forge-button--dense{height:24px;margin-top:0;margin-bottom:0;height:1.5rem}forge-button{display:inline-block}forge-button[hidden]{display:none}forge-button[disabled]{cursor:not-allowed}a.forge-hyperlink{color:#3f51b5;color:var(--mdc-theme-primary,#3f51b5);text-decoration:none}a.forge-hyperlink:visited{color:#3f51b5;color:var(--mdc-theme-primary,#3f51b5)}a.forge-hyperlink[disabled]{pointer-events:none;cursor:default}a.forge-hyperlink:focus,a.forge-hyperlink:hover:not([disabled]){text-decoration:underline}button.forge-hyperlink{color:#3f51b5;color:var(--mdc-theme-primary,#3f51b5);cursor:pointer;border:none;background-color:transparent;font-size:inherit;padding:0;outline:0;text-align:left}button.forge-hyperlink[disabled]{pointer-events:none;cursor:default}button.forge-hyperlink:hover:not([disabled]){text-decoration:underline}.forge-icon-button{display:-webkit-inline-box;display:inline-flex;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center;position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;border:none;outline:0;background-color:transparent;fill:currentColor;color:inherit;font-size:24px;text-decoration:none;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:48px;height:48px;padding:12px}.forge-icon-button forge-icon,.forge-icon-button img,.forge-icon-button svg{width:24px;height:24px}.forge-icon-button:disabled{color:rgba(0,0,0,.38);color:var(--mdc-theme-text-disabled-on-light,rgba(0,0,0,.38))}.forge-icon-button:disabled{cursor:default;pointer-events:none}.forge-icon-button__icon{display:inline-block}.forge-icon-button__icon.forge-icon-button__icon--on{display:none}.forge-icon-button--on .forge-icon-button__icon{display:none}.forge-icon-button--on .forge-icon-button__icon.forge-icon-button__icon--on{display:inline-block}.forge-icon-button{--mdc-ripple-fg-size:0;--mdc-ripple-left:0;--mdc-ripple-top:0;--mdc-ripple-fg-scale:1;--mdc-ripple-fg-translate-end:0;--mdc-ripple-fg-translate-start:0;-webkit-tap-highlight-color:transparent;will-change:transform,opacity}.forge-icon-button::after,.forge-icon-button::before{position:absolute;border-radius:50%;opacity:0;pointer-events:none;content:\\\"\\\"}.forge-icon-button::before{-webkit-transition:opacity 15ms linear,background-color 15ms linear;transition:opacity 15ms linear,background-color 15ms linear;z-index:1;z-index:var(--mdc-ripple-z-index,1)}.forge-icon-button::after{z-index:0;z-index:var(--mdc-ripple-z-index,0)}.forge-icon-button.mdc-ripple-upgraded::before{-webkit-transform:scale(var(--mdc-ripple-fg-scale,1));transform:scale(var(--mdc-ripple-fg-scale,1))}.forge-icon-button.mdc-ripple-upgraded::after{top:0;left:0;-webkit-transform:scale(0);transform:scale(0);-webkit-transform-origin:center center;transform-origin:center center}.forge-icon-button.mdc-ripple-upgraded--unbounded::after{top:var(--mdc-ripple-top,0);left:var(--mdc-ripple-left,0)}.forge-icon-button.mdc-ripple-upgraded--foreground-activation::after{-webkit-animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards;animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards}.forge-icon-button.mdc-ripple-upgraded--foreground-deactivation::after{-webkit-animation:mdc-ripple-fg-opacity-out 150ms;animation:mdc-ripple-fg-opacity-out 150ms;-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}.forge-icon-button::after,.forge-icon-button::before{top:calc(50% - 50%);left:calc(50% - 50%);width:100%;height:100%}.forge-icon-button.mdc-ripple-upgraded::after,.forge-icon-button.mdc-ripple-upgraded::before{top:var(--mdc-ripple-top,calc(50% - 50%));left:var(--mdc-ripple-left,calc(50% - 50%));width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.forge-icon-button.mdc-ripple-upgraded::after{width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.forge-icon-button::after,.forge-icon-button::before{background-color:#000;background-color:var(--mdc-ripple-color,var(--mdc-theme-on-surface,#000))}.forge-icon-button.mdc-ripple-surface--hover::before,.forge-icon-button:hover::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.forge-icon-button.mdc-ripple-upgraded--background-focused::before,.forge-icon-button:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.forge-icon-button:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-icon-button:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.forge-icon-button.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}forge-icon-button{position:relative;display:inline-block;overflow:visible}.forge-icon-button--on{color:#3f51b5;color:var(--mdc-theme-primary,#3f51b5)}.forge-icon-button--on::after,.forge-icon-button--on::before{background-color:#3f51b5;background-color:var(--mdc-ripple-color,var(--mdc-theme-primary,#3f51b5))}.forge-icon-button--on.mdc-ripple-surface--hover::before,.forge-icon-button--on:hover::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.forge-icon-button--on.mdc-ripple-upgraded--background-focused::before,.forge-icon-button--on:not(.mdc-ripple-upgraded):focus::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.forge-icon-button--on:not(.mdc-ripple-upgraded)::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-icon-button--on:not(.mdc-ripple-upgraded):active::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.forge-icon-button--on.mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}.forge-icon-button--on::before{background-color:#3f51b5;background-color:var(--mdc-theme-primary,#3f51b5);opacity:.08}.forge-icon-button--dense{width:28px;height:28px;padding:2px;padding:0}.forge-icon-button--dense-1{width:44px;height:44px;padding:10px}.forge-icon-button--dense-2{width:40px;height:40px;padding:8px}.forge-icon-button--dense-3{width:36px;height:36px;padding:6px}.forge-icon-button--dense-4{width:32px;height:32px;padding:4px}.forge-icon-button--dense-5{width:28px;height:28px;padding:2px}.forge-icon-button--dense-6{width:24px;height:24px;padding:0}.forge-icon-button--with-badge forge-badge{z-index:1;z-index:var(--forge-z-index-surface,1);pointer-events:none;--forge-badge-max-width:32px;--forge-badge-border:1px solid transparent}.forge-icon-button--with-badge forge-badge[app-bar-context]{--forge-badge-border:2px solid var(--forge-app-bar-theme-background)}.forge-calendar{width:100%;width:var(--forge-calendar-width,100%);height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;position:relative}.forge-calendar__header{padding:0;padding:var(--forge-calendar-controls-padding,0);display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:justify;justify-content:space-between}.forge-calendar__footer{padding:0;padding:var(--forge-calendar-controls-padding,0);display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:justify;justify-content:space-between}.forge-calendar__view{position:relative}.forge-calendar__date-view{display:block}.forge-calendar__date-view__row{display:grid;grid-template-columns:repeat(7,1fr)}.forge-calendar__date-grid{display:grid}.forge-calendar__day{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:.75rem;font-size:var(--mdc-typography-caption-font-size, .75rem);line-height:1.25rem;line-height:var(--mdc-typography-caption-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-caption-font-weight,400);letter-spacing:.0333333333em;letter-spacing:var(--mdc-typography-caption-letter-spacing, .0333333333em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-caption-text-transform,inherit);display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center;min-width:0;padding:0;font-weight:700;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.forge-calendar__day::after{float:left;padding-top:100%;content:\\\"\\\"}.forge-calendar__date{margin-top:2px;margin-top:var(--forge-calendar-row-gap,2px);min-width:0;padding:0;border-radius:50%;position:relative;outline:0;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.forge-calendar__date::after{float:left;padding-top:100%;content:\\\"\\\"}.forge-calendar__date .mdc-ripple-surface{border-radius:inherit}.forge-calendar__date .mdc-ripple-surface::after,.forge-calendar__date .mdc-ripple-surface::before{position:absolute;width:calc(100% - 2px)!important;height:calc(100% - 2px)!important;top:calc(2px / 2)!important;left:calc(2px / 2)!important;border-radius:inherit!important}.forge-calendar__date__inner{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-body2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:.875rem;font-size:var(--mdc-typography-body2-font-size, .875rem);line-height:1.25rem;line-height:var(--mdc-typography-body2-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-body2-font-weight,400);letter-spacing:.0178571429em;letter-spacing:var(--mdc-typography-body2-letter-spacing, .0178571429em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-body2-text-decoration,inherit);text-decoration:var(--mdc-typography-body2-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-body2-text-transform,inherit);position:absolute;width:calc(100% - 2px);height:calc(100% - 2px);top:calc(2px / 2);left:calc(2px / 2);display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center;border-radius:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}.forge-calendar--show-today .forge-calendar__date--today:not([disabled]){color:#3f51b5;color:var(--mdc-theme-primary,#3f51b5);border-color:#3f51b5;border-color:var(--mdc-theme-primary,#3f51b5)}.forge-calendar--show-today .forge-calendar__date--today .forge-calendar__date__inner{border-color:inherit;border-width:1px;border-style:solid;font-weight:700}.forge-calendar--show-today .forge-calendar__date--today.forge-calendar__date--selected{color:#fff;color:var(--mdc-theme-on-primary,#fff)}.forge-calendar:not(.forge-calendar--readonly) .forge-calendar__date:not([disabled]){--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;cursor:pointer}.forge-calendar:not(.forge-calendar--readonly) .forge-calendar__date:not([disabled]) .mdc-ripple-surface::after,.forge-calendar:not(.forge-calendar--readonly) .forge-calendar__date:not([disabled]) .mdc-ripple-surface::before{position:absolute;border-radius:50%;opacity:0;pointer-events:none;content:\\\"\\\"}.forge-calendar:not(.forge-calendar--readonly) .forge-calendar__date:not([disabled]) .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)}.forge-calendar:not(.forge-calendar--readonly) .forge-calendar__date:not([disabled]) .mdc-ripple-surface::after{z-index:0;z-index:var(--mdc-ripple-z-index,0)}.forge-calendar:not(.forge-calendar--readonly) .forge-calendar__date:not([disabled]).mdc-ripple-upgraded .mdc-ripple-surface::before{-webkit-transform:scale(var(--mdc-ripple-fg-scale,1));transform:scale(var(--mdc-ripple-fg-scale,1))}.forge-calendar:not(.forge-calendar--readonly) .forge-calendar__date:not([disabled]).mdc-ripple-upgraded .mdc-ripple-surface::after{top:0;left:0;-webkit-transform:scale(0);transform:scale(0);-webkit-transform-origin:center center;transform-origin:center center}.forge-calendar:not(.forge-calendar--readonly) .forge-calendar__date:not([disabled]).mdc-ripple-upgraded--unbounded .mdc-ripple-surface::after{top:var(--mdc-ripple-top,0);left:var(--mdc-ripple-left,0)}.forge-calendar:not(.forge-calendar--readonly) .forge-calendar__date:not([disabled]).mdc-ripple-upgraded--foreground-activation .mdc-ripple-surface::after{-webkit-animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards;animation:mdc-ripple-fg-radius-in 225ms forwards,mdc-ripple-fg-opacity-in 75ms forwards}.forge-calendar:not(.forge-calendar--readonly) .forge-calendar__date:not([disabled]).mdc-ripple-upgraded--foreground-deactivation .mdc-ripple-surface::after{-webkit-animation:mdc-ripple-fg-opacity-out 150ms;animation:mdc-ripple-fg-opacity-out 150ms;-webkit-transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1));transform:translate(var(--mdc-ripple-fg-translate-end,0)) scale(var(--mdc-ripple-fg-scale,1))}.forge-calendar:not(.forge-calendar--readonly) .forge-calendar__date:not([disabled]) .mdc-ripple-surface::after,.forge-calendar:not(.forge-calendar--readonly) .forge-calendar__date:not([disabled]) .mdc-ripple-surface::before{top:calc(50% - 50%);left:calc(50% - 50%);width:100%;height:100%}.forge-calendar:not(.forge-calendar--readonly) .forge-calendar__date:not([disabled]).mdc-ripple-upgraded .mdc-ripple-surface::after,.forge-calendar:not(.forge-calendar--readonly) .forge-calendar__date:not([disabled]).mdc-ripple-upgraded .mdc-ripple-surface::before{top:var(--mdc-ripple-top,calc(50% - 50%));left:var(--mdc-ripple-left,calc(50% - 50%));width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.forge-calendar:not(.forge-calendar--readonly) .forge-calendar__date:not([disabled]).mdc-ripple-upgraded .mdc-ripple-surface::after{width:var(--mdc-ripple-fg-size,100%);height:var(--mdc-ripple-fg-size,100%)}.forge-calendar:not(.forge-calendar--readonly) .forge-calendar__date:not([disabled]) .mdc-ripple-surface::after,.forge-calendar:not(.forge-calendar--readonly) .forge-calendar__date:not([disabled]) .mdc-ripple-surface::before{background-color:#000;background-color:var(--mdc-ripple-color,var(--mdc-theme-on-surface,#000))}.forge-calendar:not(.forge-calendar--readonly) .forge-calendar__date:not([disabled]).mdc-ripple-surface--hover .mdc-ripple-surface::before,.forge-calendar:not(.forge-calendar--readonly) .forge-calendar__date:not([disabled]):hover .mdc-ripple-surface::before{opacity:.04;opacity:var(--mdc-ripple-hover-opacity, .04)}.forge-calendar:not(.forge-calendar--readonly) .forge-calendar__date:not([disabled]).mdc-ripple-upgraded--background-focused .mdc-ripple-surface::before,.forge-calendar:not(.forge-calendar--readonly) .forge-calendar__date:not([disabled]):not(.mdc-ripple-upgraded):focus .mdc-ripple-surface::before{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-focus-opacity, .12)}.forge-calendar:not(.forge-calendar--readonly) .forge-calendar__date:not([disabled]):not(.mdc-ripple-upgraded) .mdc-ripple-surface::after{-webkit-transition:opacity 150ms linear;transition:opacity 150ms linear}.forge-calendar:not(.forge-calendar--readonly) .forge-calendar__date:not([disabled]):not(.mdc-ripple-upgraded):active .mdc-ripple-surface::after{-webkit-transition-duration:75ms;transition-duration:75ms;opacity:.12;opacity:var(--mdc-ripple-press-opacity, .12)}.forge-calendar:not(.forge-calendar--readonly) .forge-calendar__date:not([disabled]).mdc-ripple-upgraded{--mdc-ripple-fg-opacity:var(--mdc-ripple-press-opacity, 0.12)}.forge-calendar__date--selected:not([disabled]) .forge-calendar__date__inner{background-color:#3f51b5;background-color:var(--mdc-theme-primary,#3f51b5);color:#fff;color:var(--mdc-theme-on-primary,#fff)}.forge-calendar__date--selected[disabled] .forge-calendar__date__inner{background-color:#f5f5f5;background-color:var(--forge-theme-form-field-disabled-on-background,#f5f5f5);color:rgba(0,0,0,.12);color:var(--mdc-theme-text-disabled-on-background,rgba(0,0,0,.12))}.forge-calendar:not(.forge-calendar--readonly) .forge-calendar__date--selected:hover .forge-calendar__date__inner{opacity:.87}.forge-calendar__date--selected.mdc-ripple-upgraded--background-focused .forge-calendar__date__inner,.forge-calendar__date--selected:focus .forge-calendar__date__inner{opacity:.54}.forge-calendar__date[disabled]{color:rgba(0,0,0,.12);color:var(--mdc-theme-text-disabled-on-background,rgba(0,0,0,.12))}.forge-calendar__date-spacer{pointer-events:none}.forge-calendar--fixed-height .forge-calendar__date-spacer{margin-top:2px;margin-top:var(--forge-calendar-row-gap,2px)}.forge-calendar--fixed-height .forge-calendar__date-spacer::after{float:left;padding-top:100%;content:\\\"\\\"}.forge-calendar__range:not(.forge-calendar__date-spacer) .forge-calendar__range__target{background-color:#3f51b5;background-color:var(--mdc-theme-primary,#3f51b5);position:absolute;width:100%;height:100%;opacity:.14;border-radius:0}.forge-calendar__range:not(.forge-calendar__date-spacer).forge-calendar__range--start .forge-calendar__range__target{border-top-left-radius:50%;border-bottom-left-radius:50%}.forge-calendar__range:not(.forge-calendar__date-spacer).forge-calendar__range--end .forge-calendar__range__target{border-top-right-radius:50%;border-bottom-right-radius:50%}.forge-calendar__range:not(.forge-calendar__range--start):first-of-type .forge-calendar__range__target{border-top-left-radius:4px;border-bottom-left-radius:4px}.forge-calendar__range:not(.forge-calendar__range--end):last-of-type .forge-calendar__range__target{border-top-right-radius:4px;border-bottom-right-radius:4px}.forge-calendar--allow-single-date-range .forge-calendar__range--start.forge-calendar__range--end .forge-calendar__range__target{-webkit-transition:-webkit-transform .2s;transition:-webkit-transform .2s;transition:transform .2s;transition:transform .2s,-webkit-transform .2s;-webkit-transform:scale(1.15);transform:scale(1.15);-webkit-transform-origin:center;transform-origin:center}.forge-calendar__event{font-size:12px;font-size:var(--forge-calendar-event-dot-size, 12px)}.forge-calendar__event[data-event-theme=primary]{color:#3f51b5;color:var(--forge-calendar-theme-event-primary-accent,#3f51b5)}.forge-calendar__event[data-event-theme=secondary]{color:#ffc107;color:var(--forge-calendar-theme-event-secondary-accent,#ffc107)}.forge-calendar__event[data-event-theme=blue]{color:#2196f3;color:var(--forge-calendar-theme-event-blue-accent,#2196f3)}.forge-calendar__event[data-event-theme=light-green]{color:#8bc34a;color:var(--forge-calendar-theme-event-light-green-accent,#8bc34a)}.forge-calendar__event[data-event-theme=cyan]{color:#00bcd4;color:var(--forge-calendar-theme-event-cyan-accent,#00bcd4)}.forge-calendar__event[data-event-theme=teal]{color:#009688;color:var(--forge-calendar-theme-event-teal-accent,#009688)}.forge-calendar__event[data-event-theme=orange]{color:#ff9800;color:var(--forge-calendar-theme-event-orange-accent,#ff9800)}.forge-calendar__event[data-event-theme=blue-grey]{color:#607d8b;color:var(--forge-calendar-theme-event-blue-grey-accent,#607d8b)}.forge-calendar__event[data-event-theme=grey]{color:#9e9e9e;color:var(--forge-calendar-theme-event-grey-accent,#9e9e9e)}.forge-calendar__event[data-event-theme=red]{color:#f44336;color:var(--forge-calendar-theme-event-red-accent,#f44336)}.forge-calendar__event[data-event-theme=pink]{color:#e91e63;color:var(--forge-calendar-theme-event-pink-accent,#e91e63)}.forge-calendar__event[data-event-theme=purple]{color:#9c27b0;color:var(--forge-calendar-theme-event-purple-accent,#9c27b0)}.forge-calendar__event[data-event-theme=light-blue]{color:#03a9f4;color:var(--forge-calendar-theme-event-light-blue-accent,#03a9f4)}.forge-calendar__event[data-event-theme=deep-purple]{color:#673ab7;color:var(--forge-calendar-theme-event-deep-purple-accent,#673ab7)}.forge-calendar__event[data-event-theme=green]{color:#4caf50;color:var(--forge-calendar-theme-event-green-accent,#4caf50)}.forge-calendar__event[data-event-theme=lime]{color:#cddc39;color:var(--forge-calendar-theme-event-lime-accent,#cddc39)}.forge-calendar__event[data-event-theme=yellow]{color:#ffeb3b;color:var(--forge-calendar-theme-event-yellow-accent,#ffeb3b)}.forge-calendar__event[data-event-theme=brown]{color:#795548;color:var(--forge-calendar-theme-event-brown-accent,#795548)}.forge-calendar__event[data-event-theme=deep-orange]{color:#ff5722;color:var(--forge-calendar-theme-event-deep-orange-accent,#ff5722)}.forge-calendar__date[disabled] .forge-calendar__event{opacity:.14}.forge-calendar__event--overflow{color:#000;color:var(--mdc-theme-on-surface,#000);background-color:var(--mdc-theme-surface);border-radius:50%}.forge-calendar__event__wrapper{display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;gap:2px;position:absolute;bottom:0;left:0;width:100%;padding-bottom:2px;pointer-events:none}.forge-calendar__date-spacer .forge-calendar__event__wrapper{display:none}.forge-calendar--rtl .forge-calendar__header forge-icon-button forge-icon{-webkit-transform:rotate(180deg);transform:rotate(180deg)}#accessible-header{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;outline:0;-webkit-appearance:none;-moz-appearance:none}#month-button forge-icon{-webkit-transition:-webkit-transform .2s;transition:-webkit-transform .2s;transition:transform .2s;transition:transform .2s,-webkit-transform .2s}.forge-calendar--month-menu-open #month-button forge-icon{-webkit-transform:rotate(180deg);transform:rotate(180deg)}#year-button forge-icon{-webkit-transition:-webkit-transform .2s;transition:-webkit-transform .2s;transition:transform .2s;transition:transform .2s,-webkit-transform .2s}.forge-calendar--year-menu-open #year-button forge-icon{-webkit-transform:rotate(180deg);transform:rotate(180deg)}:host{--forge-calendar-event-stroke-color:#ffffff;--forge-calendar-event-stroke-color:var(--mdc-theme-surface, #ffffff);display:inline-block}:host([hidden]){display:none}:host([forge-popup-context=true]){--forge-calendar-event-stroke-color:#ffffff;--forge-calendar-event-stroke-color:var(--forge-theme-elevated-surface, #ffffff)}';\n\nexport interface ICalendarComponent extends ICalendarBase, ICustomElement {\n mode: CalendarMode;\n view: CalendarView;\n preventFocus: boolean;\n selectionFollowsMonth: boolean;\n showHeader: boolean;\n menuAnimation: CalendarMenuAnimationType;\n clearButton: boolean;\n todayButton: boolean;\n clearCallback: (() => void) | undefined;\n todayCallback: (() => void) | undefined;\n tooltipBuilder: CalendarTooltipBuilder | undefined;\n clear(): void;\n today(): void;\n selectDate(date: Date, setFocus?: boolean): void;\n deselectDate(date: Date): void;\n toggleDate(date: Date, force?: boolean): void;\n goToDate(date: Date, setFocus?: boolean): void;\n setActiveDate(date: Date, setFocus?: boolean): boolean;\n handleKey(evt: KeyboardEvent): void;\n layout(): void;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-calendar': ICalendarComponent;\n }\n\n interface HTMLElementEventMap {\n 'forge-calendar-date-select': CustomEvent<ICalendarDateSelectEventData>;\n 'forge-calendar-focus-change': CustomEvent<ICalendarFocusChangeEventData>;\n 'forge-calendar-month-change': CustomEvent<ICalendarMonthChangeEventData>;\n 'forge-calendar-view-change': CustomEvent<CalendarView>;\n }\n}\n\n/**\n * The web component class behind the `<forge-calendar>` custom element.\n * \n * @tag forge-calendar\n */\n@CustomElement({\n name: CALENDAR_CONSTANTS.elementName,\n dependencies: [\n ButtonComponent,\n CalendarMenuComponent,\n IconButtonComponent,\n IconComponent,\n TooltipComponent\n ]\n})\nexport class CalendarComponent extends HTMLElement implements ICalendarComponent {\n public static get observedAttributes(): string[] {\n return [\n CALENDAR_CONSTANTS.attributes.ALLOW_SINGLE_DATE_RANGE,\n CALENDAR_CONSTANTS.attributes.CLEAR_BUTTON,\n CALENDAR_CONSTANTS.attributes.CONSTRAIN_TO_ENABLED,\n CALENDAR_CONSTANTS.attributes.FIRST_DAY_OF_WEEK,\n CALENDAR_CONSTANTS.attributes.FIXED_HEIGHT,\n CALENDAR_CONSTANTS.attributes.LIST_YEARS,\n CALENDAR_CONSTANTS.attributes.LOCALE,\n CALENDAR_CONSTANTS.attributes.MAX,\n CALENDAR_CONSTANTS.attributes.MENU_ANIMATION,\n CALENDAR_CONSTANTS.attributes.MIN,\n CALENDAR_CONSTANTS.attributes.MODE,\n CALENDAR_CONSTANTS.attributes.MONTH,\n CALENDAR_CONSTANTS.attributes.PREVENT_FOCUS,\n CALENDAR_CONSTANTS.attributes.READONLY,\n CALENDAR_CONSTANTS.attributes.SELECTION_FOLLOWS_MONTH,\n CALENDAR_CONSTANTS.attributes.SHOW_HEADER,\n CALENDAR_CONSTANTS.attributes.SHOW_OTHER_MONTHS,\n CALENDAR_CONSTANTS.attributes.SHOW_TODAY,\n CALENDAR_CONSTANTS.attributes.TODAY_BUTTON,\n CALENDAR_CONSTANTS.attributes.VIEW,\n CALENDAR_CONSTANTS.attributes.YEAR,\n CALENDAR_CONSTANTS.attributes.YEAR_RANGE\n ];\n }\n\n private _foundation: CalendarFoundation;\n\n constructor() {\n super();\n IconRegistry.define([tylIconKeyboardArrowLeft, tylIconKeyboardArrowRight, tylIconArrowDropDown, tylIconLens, tylIconAdd]);\n attachShadowTemplate(this, template, styles);\n this._foundation = new CalendarFoundation(new CalendarAdapter(this));\n }\n\n public connectedCallback(): void {\n // To simulate the :host-context() selector for Firefox until they implement it, we need to determine if the\n // calendar is within a popup for auto-styling the calendar when included within a popup. Check to see if\n // any of the parents of this element are a popup.\n if (!this.hasAttribute(CALENDAR_CONSTANTS.attributes.POPUP_CONTEXT) && elementParents(this).some(el => el.tagName.toLowerCase() === 'forge-popup')) {\n this.setAttribute(CALENDAR_CONSTANTS.attributes.POPUP_CONTEXT, 'true');\n }\n\n this._foundation.initialize();\n }\n\n public disconnectedCallback(): void {\n this._foundation.disconnect();\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n switch (name) {\n case CALENDAR_CONSTANTS.attributes.ALLOW_SINGLE_DATE_RANGE:\n this.allowSingleDateRange = coerceBoolean(newValue);\n break;\n case CALENDAR_CONSTANTS.attributes.CLEAR_BUTTON:\n this.clearButton = coerceBoolean(newValue);\n break;\n case CALENDAR_CONSTANTS.attributes.CONSTRAIN_TO_ENABLED:\n this.constrainToEnabled = coerceBoolean(newValue);\n break;\n case CALENDAR_CONSTANTS.attributes.FIRST_DAY_OF_WEEK:\n this.firstDayOfWeek = coerceNumber(newValue) as DayOfWeek;\n break;\n case CALENDAR_CONSTANTS.attributes.FIXED_HEIGHT:\n this.fixedHeight = coerceBoolean(newValue);\n break;\n case CALENDAR_CONSTANTS.attributes.LIST_YEARS:\n this.listYears = coerceBoolean(newValue);\n break;\n case CALENDAR_CONSTANTS.attributes.LOCALE:\n this.locale = newValue;\n break;\n case CALENDAR_CONSTANTS.attributes.MAX:\n this.max = newValue;\n break;\n case CALENDAR_CONSTANTS.attributes.MENU_ANIMATION:\n this.menuAnimation = newValue as CalendarMenuAnimationType;\n break;\n case CALENDAR_CONSTANTS.attributes.MIN:\n this.min = newValue;\n break;\n case CALENDAR_CONSTANTS.attributes.MODE:\n this.mode = newValue as CalendarMode;\n break;\n case CALENDAR_CONSTANTS.attributes.MONTH:\n this.month = coerceNumber(newValue);\n break;\n case CALENDAR_CONSTANTS.attributes.PREVENT_FOCUS:\n this.preventFocus = coerceBoolean(newValue);\n break;\n case CALENDAR_CONSTANTS.attributes.READONLY:\n this.readonly = coerceBoolean(newValue);\n break;\n case CALENDAR_CONSTANTS.attributes.SELECTION_FOLLOWS_MONTH:\n this.selectionFollowsMonth = coerceBoolean(newValue);\n break;\n case CALENDAR_CONSTANTS.attributes.SHOW_HEADER:\n this.showHeader = coerceBoolean(newValue);\n break;\n case CALENDAR_CONSTANTS.attributes.SHOW_OTHER_MONTHS:\n this.showOtherMonths = coerceBoolean(newValue);\n break;\n case CALENDAR_CONSTANTS.attributes.SHOW_TODAY:\n this.showToday = coerceBoolean(newValue);\n break;\n case CALENDAR_CONSTANTS.attributes.TODAY_BUTTON:\n this.todayButton = coerceBoolean(newValue);\n break;\n case CALENDAR_CONSTANTS.attributes.VIEW:\n this.view = newValue as CalendarView;\n break;\n case CALENDAR_CONSTANTS.attributes.YEAR:\n this.year = coerceNumber(newValue);\n break;\n case CALENDAR_CONSTANTS.attributes.YEAR_RANGE:\n this.yearRange = newValue;\n break;\n }\n }\n\n @FoundationProperty({set: false})\n public declare activeDate: Date;\n\n @FoundationProperty()\n public declare allowSingleDateRange: boolean;\n\n @FoundationProperty()\n public declare clearButton: boolean;\n\n @FoundationProperty()\n public declare clearCallback: (() => void) | undefined;\n\n @FoundationProperty()\n public declare constrainToEnabled: boolean;\n\n @FoundationProperty()\n public declare dateBuilder: CalendarDateBuilder | undefined;\n\n @FoundationProperty()\n public declare dateSelectCallback: CalendarDateSelectCallback | undefined;\n\n @FoundationProperty()\n public declare dayBuilder: CalendarDayBuilder | undefined;\n\n @FoundationProperty()\n public declare disabledDateBuilder: ((date: Date) => boolean) | undefined;\n\n @FoundationProperty()\n public declare disabledDates: Date | Date[] | null | undefined;\n\n @FoundationProperty()\n public declare disabledDaysOfWeek: DayOfWeek | DayOfWeek[] | null | undefined;\n\n @FoundationProperty()\n public declare eventBuilder: CalendarEventBuilder | undefined;\n\n @FoundationProperty()\n public declare events: ICalendarEvent[] | null | undefined;\n\n @FoundationProperty()\n public declare firstDayOfWeek: DayOfWeek | undefined;\n\n @FoundationProperty()\n public declare fixedHeight: boolean;\n\n @FoundationProperty()\n public declare listYears: boolean;\n\n @FoundationProperty()\n public declare locale: string | undefined;\n\n @FoundationProperty()\n public declare max: Date | string | null | undefined;\n\n @FoundationProperty()\n public declare menuAnimation: CalendarMenuAnimationType;\n\n @FoundationProperty()\n public declare min: Date | string | null | undefined;\n\n @FoundationProperty()\n public declare mode: CalendarMode;\n\n @FoundationProperty()\n public declare month: number;\n\n @FoundationProperty()\n public declare preventFocus: boolean;\n\n @FoundationProperty()\n public declare readonly: boolean;\n\n @FoundationProperty()\n public declare selectionFollowsMonth: boolean;\n\n @FoundationProperty()\n public declare showHeader: boolean;\n\n @FoundationProperty()\n public declare showOtherMonths: boolean;\n\n @FoundationProperty()\n public declare showToday: boolean;\n\n @FoundationProperty()\n public declare todayButton: boolean;\n\n @FoundationProperty()\n public declare todayCallback: (() => void) | undefined;\n\n @FoundationProperty()\n public declare tooltipBuilder: CalendarTooltipBuilder | undefined;\n\n @FoundationProperty()\n public declare value: Date | Date[] | DateRange | null | undefined;\n\n @FoundationProperty()\n public declare view: CalendarView;\n\n @FoundationProperty()\n public declare weekendDays: DayOfWeek[] | null | undefined;\n\n @FoundationProperty()\n public declare year: number;\n\n @FoundationProperty()\n public declare yearRange: string;\n\n public clear(): void {\n this._foundation.clear();\n }\n\n public deselectDate(date: Date): void {\n this._foundation.deselectDate(new Date(date));\n }\n\n public goToDate(date: Date, setFocus?: boolean): void {\n this._foundation.goToDate(new Date(date), setFocus);\n }\n\n public handleKey(evt: KeyboardEvent): void {\n this._foundation.handleExternalKeyEvent(evt);\n }\n\n public layout(): void {\n this._foundation.layout();\n }\n\n public selectDate(date: Date): void {\n this._foundation.selectDate(new Date(date));\n }\n\n public setActiveDate(date: Date, setFocus?: boolean): boolean {\n return this._foundation.setActiveDate(new Date(date), setFocus);\n }\n\n public today(): void {\n this._foundation.today();\n }\n\n public toggleDate(date: Date, force?: boolean): void {\n this._foundation.toggleDate(new Date(date), force);\n }\n}\n", "import { BaseComponentDelegate, IBaseComponentDelegateConfig, IBaseComponentDelegateOptions } from '../core/delegates/base-component-delegate';\nimport { ICalendarComponent } from './calendar';\nimport { CalendarView, CALENDAR_CONSTANTS, ICalendarDateSelectEventData, ICalendarFocusChangeEventData, ICalendarMonthChangeEventData } from './calendar-constants';\n\nexport type CalendarComponentDelegateProps = Partial<ICalendarComponent>;\nexport interface ICalendarComponentDelegateOptions extends IBaseComponentDelegateOptions {}\nexport interface ICalendarComponentDelegateConfig extends IBaseComponentDelegateConfig<ICalendarComponent, ICalendarComponentDelegateOptions> {}\n\nexport class CalendarComponentDelegate extends BaseComponentDelegate<ICalendarComponent, ICalendarComponentDelegateOptions> {\n constructor(config?: ICalendarComponentDelegateConfig) {\n super(config);\n }\n\n protected _build(): ICalendarComponent {\n return document.createElement(CALENDAR_CONSTANTS.elementName);\n }\n\n public onDateSelect(listener: (evt: CustomEvent<ICalendarDateSelectEventData>) => void): void {\n this._element.addEventListener(CALENDAR_CONSTANTS.events.DATE_SELECT, listener);\n }\n\n public onFocusChange(listener: (evt: CustomEvent<ICalendarFocusChangeEventData>) => void): void {\n this._element.addEventListener(CALENDAR_CONSTANTS.events.FOCUS_CHANGE, listener);\n }\n\n public onMonthChange(listener: (evt: CustomEvent<ICalendarMonthChangeEventData>) => void): void {\n this._element.addEventListener(CALENDAR_CONSTANTS.events.MONTH_CHANGE, listener);\n }\n\n public onViewChange(listener: (evt: CustomEvent<CalendarView>) => void): void {\n this._element.addEventListener(CALENDAR_CONSTANTS.events.VIEW_CHANGE, listener);\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { CalendarComponent } from './calendar';\n\nexport * from './calendar-adapter';\nexport * from './calendar-component-delegate';\nexport * from './calendar-constants';\nexport * from './calendar-dom-utils';\nexport * from './calendar-dropdown';\nexport * from './calendar-foundation';\nexport * from './calendar-locale-utils';\nexport * from './calendar-menu';\nexport * from './calendar-utils';\nexport * from './calendar';\nexport * from './core';\n\nexport function defineCalendarComponent(): void {\n defineCustomElement(CalendarComponent);\n}\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ import{a as b}from"./chunk.65G33MJV.js";import{a as I}from"./chunk.IARIRFXO.js";import{a as E}from"./chunk.EE2LK23T.js";import{a as g}from"./chunk.D4SNVKDA.js";import{a as y}from"./chunk.HYMB3XDK.js";import{c as f,d as k}from"./chunk.CZIQTYFJ.js";import{a as C}from"./chunk.5PXABBKU.js";import{a as l}from"./chunk.B3IJU6XJ.js";import{g as v,l as m}from"./chunk.MMVZJLXE.js";import{m as D}from"./chunk.R4NDFXVA.js";import{a as h,g as u,k as d,m as _}from"./chunk.G76HB2FK.js";import{f as r}from"./chunk.MCIQXNKY.js";var P={MIN:"min",MAX:"max",OPEN:"open",DISABLED:"disabled",POPUP_CLASSES:"popup-classes",MASKED:"masked",MASK_FORMAT:"mask-format",SHOW_MASK_FORMAT:"show-mask-format",VALUE_MODE:"value-mode",ALLOW_INVALID_DATE:"allow-invalid-date",SHOW_TODAY:"show-today",SHOW_CLEAR:"show-clear",DISABLED_DAYS_OF_WEEK:"disabled-days-of-week",YEAR_RANGE:"year-range"},S={TOGGLE:"forge-date-picker-toggle"},O={INPUT:"input",TOGGLE:"[forge-date-picker-toggle],[data-forge-date-picker-toggle]"},s={observedAttributes:P,attributes:S,selectors:O};var n=class extends m{constructor(){super()}async connectedCallback(){this.querySelector(s.selectors.INPUT)?this._foundation.initialize():(await D(this,s.selectors.INPUT),this._foundation.initialize())}disconnectedCallback(){this._foundation.disconnect()}attributeChangedCallback(t,a,i){switch(t){case s.observedAttributes.MIN:this.min=i;break;case s.observedAttributes.MAX:this.max=i;break;case s.observedAttributes.OPEN:this.open=d(i);break;case s.observedAttributes.POPUP_CLASSES:this.popupClasses=i;break;case s.observedAttributes.DISABLED:this.disabled=d(i);break;case s.observedAttributes.MASKED:this.masked=d(i);break;case s.observedAttributes.SHOW_MASK_FORMAT:this.showMaskFormat=d(i);break;case s.observedAttributes.MASK_FORMAT:this.maskFormat=i;break;case s.observedAttributes.VALUE_MODE:this.valueMode=i;break;case s.observedAttributes.ALLOW_INVALID_DATE:this.allowInvalidDate=d(i);break;case s.observedAttributes.SHOW_TODAY:this.showToday=d(i);break;case s.observedAttributes.SHOW_CLEAR:this.showClear=d(i);break;case s.observedAttributes.DISABLED_DAYS_OF_WEEK:this.disabledDaysOfWeek=_(i);break;case s.observedAttributes.YEAR_RANGE:this.yearRange=i;break}}};r([l()],n.prototype,"value",2),r([l()],n.prototype,"min",2),r([l()],n.prototype,"max",2),r([l()],n.prototype,"disabledDates",2),r([l()],n.prototype,"open",2),r([l()],n.prototype,"popupClasses",2),r([l()],n.prototype,"disabled",2),r([l()],n.prototype,"masked",2),r([l()],n.prototype,"maskFormat",2),r([l()],n.prototype,"showMaskFormat",2),r([l()],n.prototype,"valueMode",2),r([l()],n.prototype,"notifyInputValueChanges",2),r([l()],n.prototype,"allowInvalidDate",2),r([l()],n.prototype,"showToday",2),r([l()],n.prototype,"showClear",2),r([l()],n.prototype,"parseCallback",2),r([l()],n.prototype,"formatCallback",2),r([l()],n.prototype,"prepareMaskCallback",2),r([l()],n.prototype,"disabledDaysOfWeek",2),r([l()],n.prototype,"disableDayCallback",2),r([l()],n.prototype,"yearRange",2);function w(p){let e=document.createElement("forge-icon-button");e.slot="trailing",e.dense=!0,e.densityLevel=3,e.style.marginRight="4px";let t=document.createElement("button");t.type="button",t.tabIndex=-1,t.setAttribute("aria-label","Toggle calendar"),e.appendChild(t);let a=document.createElement("forge-icon");return a.name=p,t.appendChild(a),e}var M=class extends C{constructor(t){super(t);this._valueChangeListeners=[];this._identifier=h()}initialize(){this._initializeInput()}destroy(){var t;(t=this._calendarDropdown)==null||t.destroy(),this.destroyValueChangeListener()}destroyValueChangeListener(){this._valueChangeListeners.forEach(t=>t())}addToggleListener(t,a){var i;(i=this._toggleElement)==null||i.addEventListener(t,a)}removeToggleListener(t,a){var i;(i=this._toggleElement)==null||i.removeEventListener(t,a)}attachCalendar(t,a){var i,o,c;if(this._calendarDropdown&&((i=this._calendarDropdown)==null||i.destroy()),this._initializeCalendarDropdown(),!this._calendarDropdown)throw new Error("CalendarDropdown was not initialized.");a&&Object.assign(this._calendarDropdown,a),this._calendarDropdown.open(t),(o=this._calendarDropdown.dropdownElement)==null||o.style.setProperty("--forge-calendar-width","320px"),(c=this._calendarDropdown.calendar)==null||c.style.setProperty("margin","8px")}detachCalendar(){this._calendarDropdown&&this._calendarDropdown.isOpen&&this._calendarDropdown.close()}goToCalendarDate(t){var a,i;(i=(a=this._calendarDropdown)==null?void 0:a.calendar)==null||i.goToDate(t,!0)}addDateSelectListener(t){var a,i;(i=(a=this._calendarDropdown)==null?void 0:a.calendar)==null||i.addEventListener(b.events.DATE_SELECT,t)}removeDateSelectListener(t){var a,i;(i=(a=this._calendarDropdown)==null?void 0:a.calendar)==null||i.removeEventListener(b.events.DATE_SELECT,t)}setCalendarValue(t){var a;(a=this._calendarDropdown)!=null&&a.calendar&&(this._calendarDropdown.calendar.value=t)}setCalendarMinDate(t){var a;(a=this._calendarDropdown)!=null&&a.calendar&&(this._calendarDropdown.calendar.min=t)}setCalendarMaxDate(t){var a;(a=this._calendarDropdown)!=null&&a.calendar&&(this._calendarDropdown.calendar.max=t)}setCalendarDisabledDates(t){var a;(a=this._calendarDropdown)!=null&&a.calendar&&(this._calendarDropdown.calendar.disabledDates=t)}setCalendarDisabledDaysOfWeek(t){var a;(a=this._calendarDropdown)!=null&&a.calendar&&(this._calendarDropdown.calendar.disabledDaysOfWeek=t)}setCalendarDisableDayCallback(t){var a;(a=this._calendarDropdown)!=null&&a.calendar&&(this._calendarDropdown.calendar.disabledDateBuilder=t)}setCalendarActiveDate(t){var a,i;(i=(a=this._calendarDropdown)==null?void 0:a.calendar)==null||i.setActiveDate(t)}getCalendarActiveDate(){var t,a;return(a=(t=this._calendarDropdown)==null?void 0:t.calendar)==null?void 0:a.activeDate}setCalendarYearRange(t){var a,i;(i=(a=this._calendarDropdown)==null?void 0:a.calendar)!=null&&i.yearRange&&(this._calendarDropdown.calendar.yearRange=t)}propagateCalendarKey(t){var a,i;(i=(a=this._calendarDropdown)==null?void 0:a.calendar)==null||i.handleKey(t)}tryCreateToggle(){let t=this._component.querySelector("forge-text-field"),a=this._component.querySelector(s.selectors.TOGGLE);if(t){let i=t.querySelector(`${E.elementName}[slot=trailing]`);if(i||a){this._toggleElement=i||a;return}let o=this._createToggleElement();t.appendChild(o),this._toggleElement=o}else a&&(this._toggleElement=a)}_createToggleElement(){return w("insert_invitation")}_getDefaultTargetElement(){let t=this._component.querySelector("forge-text-field");if(t&&t.shadowRoot){let a=v(t,I.selectors.ROOT);if(a)return a}return this._component.querySelector("input")||this._component}};var A=class{constructor(e){this._adapter=e;this._value=null;this._min=null;this._max=null;this._disabledDates=null;this._open=!1;this._disabled=!1;this._masked=!0;this._maskFormat=y;this._showMaskFormat=!1;this._valueMode="object";this._notifyInputValueChanges=!0;this._allowInvalidDate=!1;this._showToday=!1;this._showClear=!1;this._yearRange="-50:+50";this._isInitialized=!1;this._inputListener=t=>this._onInput(t),this._inputKeydownListener=t=>this._onInputKeydown(t),this._inputFocusListener=t=>this._onInputFocus(t),this._inputBlurListener=t=>this._onInputBlur(t),this._inputValueChangedListener=t=>this._onInputValueChanged(t),this._dropdownCloseListener=()=>this._onDropdownClose(),this._toggleMousedownListener=t=>this._onToggleMousedown(t),this._dateSelectListener=t=>this._onDateSelected(t.detail),this._activeChangeListener=t=>this._onActiveDescendantChanged(t),this._todayListener=()=>this._onToday(),this._clearListener=()=>this._onClear()}initialize(){var e;if(this._adapter.initialize(),this._adapter.initializeAccessibility(),!this._adapter.hasInputElement())throw new Error("Unable to locate child <input> element.");(e=this._initializeState)==null||e.call(this),this._adapter.tryCreateToggle(),this._masked||this._setInputChangeListeners(),this._initializeListeners(),this._setFormattedInputValue(!0),this._applyDisabled(),this._applyMask(),this._initializeValueChangedListeners(),this._isInitialized=!0}disconnect(){this._isInitialized=!1,this._destroyListeners(),this._masked&&this._adapter.destroyMask(),this._closeCalendar(),this._adapter.destroy()}_initializeListeners(){this._adapter.addToggleListener("mousedown",this._toggleMousedownListener),this._adapter.addInputListener("keydown",this._inputKeydownListener,!0),this._adapter.addInputListener("focus",this._inputFocusListener),this._adapter.addInputListener("blur",this._inputBlurListener)}_initializeValueChangedListeners(){this._adapter.setInputValueChangedListener(this,this._inputValueChangedListener)}_setInputChangeListeners(){this._adapter.addInputListener("input",this._inputListener)}_removeInputChangeListeners(){this._adapter.removeInputListener("input",this._inputListener)}_destroyListeners(){this._adapter.removeToggleListener("mousedown",this._toggleMousedownListener),this._adapter.removeInputListener("keydown",this._inputKeydownListener,!0),this._adapter.removeInputListener("focus",this._inputFocusListener),this._adapter.removeInputListener("blur",this._inputBlurListener),this._removeInputChangeListeners()}_onInput(e){this._handleInput(this._adapter.getInputValue())}_onInputFocus(e){this._adapter.selectInputText()}_onInputBlur(e){this._formatInputValue(),this._open&&!this._adapter.isInputFocused()&&this._closeCalendar(!0)}_openCalendar(e=!1){this._formatInputValue();let t={mode:this._mode,value:this._getCurrentValue(),min:this._min,max:this._max,disabledDates:this._disabledDates,yearRange:this._yearRange,todayButton:this._showToday,clearButton:this._showClear,todayCallback:this._todayListener,clearCallback:this._clearListener,disabledDateBuilder:this._disableDayCallback,disabledDaysOfWeek:this._disabledDaysOfWeek,preventFocus:!0,menuAnimation:"fade",fixedHeight:!0,selectionFollowsMonth:!0},a={popupClasses:this._popupClasses,closeCallback:this._dropdownCloseListener,activeChangeCallback:this._activeChangeListener};this._adapter.attachCalendar(t,a),this._adapter.addDateSelectListener(this._dateSelectListener),this._open=!0,this._adapter.setHostAttribute(s.observedAttributes.OPEN),e&&this._emitOpenEvent()}_closeCalendar(e=!1){this._open=!1,this._adapter.removeHostAttribute(s.observedAttributes.OPEN),this._adapter.removeDateSelectListener(this._dateSelectListener),this._adapter.detachCalendar(),e&&this._emitCloseEvent()}_onInputKeydown(e){if(e.shiftKey)switch(e.key){case"Delete":case"Backspace":e.preventDefault(),this._onClear(),this._open&&this._closeCalendar(!0);return;case"ArrowLeft":case"ArrowRight":case"m":case"M":case"y":case"Y":case"d":case"D":if(this._open){e.preventDefault(),this._adapter.propagateCalendarKey(e);return}break}switch(e.key){case"Escape":this._open&&(e.preventDefault(),e.stopPropagation(),this._closeCalendar(!0));break;case"ArrowDown":e.preventDefault(),this._open?this._adapter.propagateCalendarKey(e):(this._adapter.selectInputText(),this._openCalendar(!0));break;case"ArrowUp":this._open&&(e.preventDefault(),this._adapter.propagateCalendarKey(e));break;case"ArrowLeft":case"ArrowRight":case"Enter":case"Home":case"End":if(this._open){e.key==="Enter"&&e.stopPropagation(),e.preventDefault();let t=["ArrowLeft","ArrowRight"].includes(e.key);this._masked&&t&&e.stopImmediatePropagation(),this._adapter.propagateCalendarKey(e)}break;case"n":case"t":e.preventDefault(),this._onToday(),this._open&&this._closeCalendar(!0);break;case"PageUp":case"PageDown":this._open&&(e.preventDefault(),this._adapter.propagateCalendarKey(e));break;case"Tab":if(this._open){let t=this._adapter.getCalendarActiveDate();t&&this._onDateSelected({date:t,selected:!0,type:"date"})}break}}_getSanitizedDateString(e){return e.replace(/_|[a-z]|[A-Z]/g,"").replace(/\/$|\/\/$/,"")}_onToggleMousedown(e){this._disabled||(e.stopPropagation(),!this._adapter.isInputDisabled()&&(e.preventDefault(),this._open?this._closeCalendar(!0):(g.isMobile?this._adapter.tryBlurInput():this._adapter.tryFocusInput(),this._openCalendar(!0))))}_onDropdownClose(){this._closeCalendar(!0)}_onActiveDescendantChanged(e){this._adapter.setActiveDescendant(e)}_formatInputValue(){let e=this._adapter.getInputValue();if(e){let t=this._parseDateString(e);if(u(t)&&this._isDateValueAcceptable(t)){let a=this._formatDate(t);a&&a!==e&&this._adapter.setInputValue(a,this._notifyInputValueChanges)}else this._allowInvalidDate||this._adapter.setInputValue("",this._notifyInputValueChanges)}}_formatDate(e){return u(e)?typeof this._formatCallback=="function"?this._formatCallback(e):k(e):""}_parseDateString(e){if(e=e.replace(/_|\s/g,""),!e||!e.length)return null;let t=typeof this._parseCallback=="function"?this._parseCallback(e):f(e);return u(t)?t:null}_coerceDateValue(e){return typeof e=="string"?this._parseDateString(e):e}_getTypedValue(e){switch(this._valueMode){case"object":return e;case"string":return this._formatDate(e);case"iso-string":return e&&e.setHours(0,0,0,0),e?e.toISOString():null;default:return e}}_isDateValueAcceptable(e){if(!e)return!0;let t=()=>this._min&&!this._allowInvalidDate?this._min.getTime()<=e.getTime():!0,a=()=>this._max&&!this._allowInvalidDate?this._max.getTime()>=e.getTime():!0,i=()=>Array.isArray(this._disabledDates)?this._disabledDates:this._disabledDates?[this._disabledDates]:[],o=()=>!i().some(L=>L.getTime()===e.getTime()),c=()=>!(this._disabledDaysOfWeek&&this._disabledDaysOfWeek.includes(e.getDay())),T=()=>typeof this._disableDayCallback!="function"||!this._disableDayCallback(e);return t()&&a()&&o()&&c()&&T()}_initializeMask(){let e={showMaskFormat:this._showMaskFormat,pattern:this._maskFormat,onChange:t=>this._handleInput(t)};this._prepareMaskCallback&&(e.prepareCallback=(t,a,i,o)=>this._prepareMaskCallback.call(null,t,a,i,o)),this._adapter.initializeMask(e)}_applyMask(){this._masked?this._initializeMask():(this._adapter.destroyMask(),this._formatInputValue())}_applyMin(){this._isInitialized&&this._adapter.setCalendarMinDate(this._min)}_applyMax(){this._isInitialized&&this._adapter.setCalendarMaxDate(this._max)}_applyDisableDayCallback(){this._adapter.setCalendarDisableDayCallback(this._disableDayCallback)}_applyDisabled(){this._adapter.setDisabled(this._disabled)}get valueMode(){return this._valueMode}set valueMode(e){if(this._valueMode!==e){if(!["object","string","iso-string"].includes(e))return;this._valueMode=e,this._emitChangeEvent(this._value),this._adapter.setHostAttribute(s.observedAttributes.VALUE_MODE,this._valueMode)}}get min(){return this._min?new Date(this._min.getTime()):null}set min(e){if(this._min!==e){let t=this._coerceDateValue(e);this._min=t?new Date(t.getTime()):null,this._applyMin(),this._isInitialized&&this._open&&this._adapter.setCalendarMinDate(this._min)}}get max(){return this._max?new Date(this._max.getTime()):null}set max(e){this._max!==e&&(this._max=this._coerceDateValue(e),this._applyMax(),this._isInitialized&&this._open&&this._adapter.setCalendarMaxDate(this._max))}get open(){return this._open}set open(e){this._open!==e&&this._isInitialized&&(this._open=e,this._open?this._openCalendar():this._closeCalendar())}get disabled(){return this._disabled}set disabled(e){this._disabled!==e&&(this._disabled=e,this._isInitialized&&this._applyDisabled())}get disabledDates(){return this._disabledDates?Array.isArray(this._disabledDates)?this._disabledDates.map(e=>new Date(e.getTime())):new Date(this._disabledDates.getTime()):null}set disabledDates(e){e?Array.isArray(e)?this._disabledDates=e.map(t=>new Date(t.getTime())):this._disabledDates=new Date(e.getTime()):this._disabledDates=null,this._isInitialized&&this._open&&this._adapter.setCalendarDisabledDates(this._disabledDates),this._applyDisabledDates()}get popupClasses(){return Array.isArray(this._popupClasses)?[...this._popupClasses]:this._popupClasses}set popupClasses(e){Array.isArray(e)?this._popupClasses=[...e]:this._popupClasses=e}get masked(){return this._masked}set masked(e){this._masked!==e&&(this._masked=e,this._isInitialized&&(this._masked?(this._removeInputChangeListeners(),this._applyMask()):(this._adapter.destroyMask(),this._setInputChangeListeners(),this._formatInputValue())))}get maskFormat(){return this._maskFormat}set maskFormat(e){this._maskFormat!==e&&(this._maskFormat=e,this._isInitialized&&this._applyMask())}get showMaskFormat(){return this._showMaskFormat}set showMaskFormat(e){this._showMaskFormat!==e&&(this._showMaskFormat=e,this._isInitialized&&this._applyMask())}get notifyInputValueChanges(){return this._notifyInputValueChanges}set notifyInputValueChanges(e){this._notifyInputValueChanges=e}get allowInvalidDate(){return this._allowInvalidDate}set allowInvalidDate(e){this._allowInvalidDate!==e&&(this._allowInvalidDate=e,this._adapter.toggleHostAttribute(s.observedAttributes.ALLOW_INVALID_DATE,this._allowInvalidDate))}get disabledDaysOfWeek(){return this._disabledDaysOfWeek}set disabledDaysOfWeek(e){this._disabledDaysOfWeek!==e&&(this._disabledDaysOfWeek=e,this._isInitialized&&this._open&&this._adapter.setCalendarDisabledDaysOfWeek(this._disabledDaysOfWeek),this._applyDisabledDaysOfWeek())}get disableDayCallback(){return this._disableDayCallback}set disableDayCallback(e){e!==this._disableDayCallback&&(this._disableDayCallback=e,this._applyDisableDayCallback())}get parseCallback(){return this._parseCallback}set parseCallback(e){this._parseCallback=e,this._isInitialized&&this._applyMask()}get formatCallback(){return this._formatCallback}set formatCallback(e){this._formatCallback=e,this._isInitialized&&this._applyMask()}get prepareMaskCallback(){return this._prepareMaskCallback}set prepareMaskCallback(e){this._prepareMaskCallback=e,this._isInitialized&&this._applyMask()}get showToday(){return this._showToday}set showToday(e){this._showToday=e}get showClear(){return this._showClear}set showClear(e){this._showClear=e}get yearRange(){return this._yearRange}set yearRange(e){this._yearRange!==e&&(this._yearRange=e,this._isInitialized&&this._open&&this._adapter.setCalendarYearRange(this._yearRange))}};export{s as a,n as b,w as c,M as d,A as e};
7
+ //# sourceMappingURL=chunk.XMI5RBZQ.js.map