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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (849) hide show
  1. package/README.md +1 -6
  2. package/custom-elements.json +63803 -41782
  3. package/dist/esm/accordion/index.js +1 -1
  4. package/dist/esm/app-bar/help-button/index.js +1 -1
  5. package/dist/esm/app-bar/index.js +1 -1
  6. package/dist/esm/app-bar/menu-button/index.js +1 -1
  7. package/dist/esm/app-bar/notification-button/index.js +1 -1
  8. package/dist/esm/app-bar/profile-button/index.js +1 -1
  9. package/dist/esm/app-bar/search/index.js +1 -1
  10. package/dist/esm/autocomplete/index.js +1 -1
  11. package/dist/esm/avatar/index.js +1 -1
  12. package/dist/esm/backdrop/index.js +1 -1
  13. package/dist/esm/badge/index.js +1 -1
  14. package/dist/esm/banner/index.js +1 -1
  15. package/dist/esm/bottom-sheet/index.js +1 -1
  16. package/dist/esm/busy-indicator/index.js +1 -1
  17. package/dist/esm/button/index.js +1 -1
  18. package/dist/esm/button-area/index.js +7 -0
  19. package/dist/esm/button-area/index.js.map +7 -0
  20. package/dist/esm/button-toggle/button-toggle/index.js +1 -1
  21. package/dist/esm/button-toggle/button-toggle-group/index.js +1 -1
  22. package/dist/esm/button-toggle/index.js +1 -1
  23. package/dist/esm/calendar/calendar-dropdown/index.js +1 -1
  24. package/dist/esm/calendar/calendar-menu/index.js +1 -1
  25. package/dist/esm/calendar/index.js +1 -1
  26. package/dist/esm/card/index.js +1 -1
  27. package/dist/esm/checkbox/index.js +1 -1
  28. package/dist/esm/chip-field/index.js +1 -1
  29. package/dist/esm/chips/chip/index.js +1 -1
  30. package/dist/esm/chips/chip-set/index.js +1 -1
  31. package/dist/esm/chips/index.js +1 -1
  32. package/dist/esm/chunks/{chunk.SMGXXR6K.js → chunk.2MSL7CYM.js} +2 -2
  33. package/dist/esm/chunks/chunk.2ZU6LWHE.js +7 -0
  34. package/dist/esm/chunks/chunk.2ZU6LWHE.js.map +7 -0
  35. package/dist/esm/chunks/{chunk.COVTBIQQ.js → chunk.36C6SIPW.js} +2 -2
  36. package/dist/esm/chunks/{chunk.COVTBIQQ.js.map → chunk.36C6SIPW.js.map} +2 -2
  37. package/dist/esm/chunks/chunk.36F2GVWS.js +7 -0
  38. package/dist/esm/chunks/chunk.36F2GVWS.js.map +7 -0
  39. package/dist/esm/chunks/{chunk.M56LSSPW.js → chunk.3HCYRDRI.js} +2 -2
  40. package/dist/esm/chunks/{chunk.4ZKX3SO5.js → chunk.3R4BUIQP.js} +2 -2
  41. package/dist/esm/chunks/{chunk.YWNCJ7XP.js → chunk.3ZPSN2QG.js} +2 -2
  42. package/dist/esm/chunks/chunk.4SPEX2GJ.js +7 -0
  43. package/dist/esm/chunks/chunk.4SPEX2GJ.js.map +7 -0
  44. package/dist/esm/chunks/chunk.4YFJVHXN.js +7 -0
  45. package/dist/esm/chunks/chunk.4YFJVHXN.js.map +7 -0
  46. package/dist/esm/chunks/chunk.5A2PA7TL.js +7 -0
  47. package/dist/esm/chunks/chunk.5A2PA7TL.js.map +7 -0
  48. package/dist/esm/chunks/chunk.5CSXPRL3.js +7 -0
  49. package/dist/esm/chunks/chunk.5CSXPRL3.js.map +7 -0
  50. package/dist/esm/chunks/chunk.5LVZVQXB.js +7 -0
  51. package/dist/esm/chunks/{chunk.MGLL67VO.js.map → chunk.5LVZVQXB.js.map} +2 -2
  52. package/dist/esm/chunks/{chunk.LFODKHUO.js → chunk.5N4N6DL6.js} +2 -2
  53. package/dist/esm/chunks/chunk.5PG6WIIX.js +7 -0
  54. package/dist/esm/chunks/chunk.5PG6WIIX.js.map +7 -0
  55. package/dist/esm/chunks/{chunk.JIKSKUDW.js → chunk.5RM65QPN.js} +2 -2
  56. package/dist/esm/chunks/{chunk.JIKSKUDW.js.map → chunk.5RM65QPN.js.map} +3 -3
  57. package/dist/esm/chunks/chunk.5WMYF27O.js +7 -0
  58. package/dist/esm/chunks/chunk.5WMYF27O.js.map +7 -0
  59. package/dist/esm/chunks/{chunk.QOJESHEV.js → chunk.675V42JS.js} +2 -2
  60. package/dist/esm/chunks/chunk.6M27ERWW.js +12 -0
  61. package/dist/esm/chunks/chunk.6M27ERWW.js.map +7 -0
  62. package/dist/esm/chunks/chunk.6NTYTHAL.js +7 -0
  63. package/dist/esm/chunks/chunk.6NTYTHAL.js.map +7 -0
  64. package/dist/esm/chunks/chunk.6ZNBFKNP.js +7 -0
  65. package/dist/esm/chunks/chunk.6ZNBFKNP.js.map +7 -0
  66. package/dist/esm/chunks/{chunk.7TMLILLW.js → chunk.72JVXGHF.js} +2 -2
  67. package/dist/esm/chunks/{chunk.7TMLILLW.js.map → chunk.72JVXGHF.js.map} +1 -1
  68. package/dist/esm/chunks/chunk.7V4BDSA5.js +7 -0
  69. package/dist/esm/chunks/chunk.7V4BDSA5.js.map +7 -0
  70. package/dist/esm/chunks/chunk.7VMJLHQY.js +7 -0
  71. package/dist/esm/chunks/chunk.7VMJLHQY.js.map +7 -0
  72. package/dist/esm/chunks/chunk.7ZROQ6D3.js +7 -0
  73. package/dist/esm/chunks/chunk.7ZROQ6D3.js.map +7 -0
  74. package/dist/esm/chunks/{chunk.DG4ZM3AW.js → chunk.AMLT6XJP.js} +2 -2
  75. package/dist/esm/chunks/chunk.AMZZKEAE.js +7 -0
  76. package/dist/esm/chunks/chunk.AMZZKEAE.js.map +7 -0
  77. package/dist/esm/chunks/{chunk.MTKSU2BV.js → chunk.APPY5AYL.js} +2 -2
  78. package/dist/esm/chunks/{chunk.4YFVG4KP.js → chunk.ARQMMZJL.js} +2 -2
  79. package/dist/esm/chunks/chunk.AUBOJZQ7.js +7 -0
  80. package/dist/esm/chunks/chunk.AUBOJZQ7.js.map +7 -0
  81. package/dist/esm/chunks/chunk.AUCBR6CC.js +7 -0
  82. package/dist/esm/chunks/{chunk.SFCGOCQK.js.map → chunk.AUCBR6CC.js.map} +2 -2
  83. package/dist/esm/chunks/{chunk.5MZ5SGMO.js → chunk.BB4UF5RX.js} +2 -2
  84. package/dist/esm/chunks/chunk.BBCZNGT3.js +7 -0
  85. package/dist/esm/chunks/chunk.BBCZNGT3.js.map +7 -0
  86. package/dist/esm/chunks/chunk.BQ2X5SBP.js +7 -0
  87. package/dist/esm/chunks/{chunk.TYLOAD7R.js.map → chunk.BQ2X5SBP.js.map} +2 -2
  88. package/dist/esm/chunks/chunk.BTXY3XMJ.js +7 -0
  89. package/dist/esm/chunks/chunk.BTXY3XMJ.js.map +7 -0
  90. package/dist/esm/chunks/{chunk.Q7Z3SJ5F.js → chunk.DTLZOIUQ.js} +2 -2
  91. package/dist/esm/chunks/chunk.EJX6RI4I.js +7 -0
  92. package/dist/esm/chunks/chunk.EJX6RI4I.js.map +7 -0
  93. package/dist/esm/chunks/chunk.EWK76SPH.js +7 -0
  94. package/dist/esm/chunks/chunk.EWK76SPH.js.map +7 -0
  95. package/dist/esm/chunks/chunk.FAXYCG55.js +7 -0
  96. package/dist/esm/chunks/chunk.FAXYCG55.js.map +7 -0
  97. package/dist/esm/chunks/chunk.FFHSUJFM.js +7 -0
  98. package/dist/esm/chunks/chunk.FFHSUJFM.js.map +7 -0
  99. package/dist/esm/chunks/{chunk.OWCYRSI3.js → chunk.FLWNOP42.js} +2 -2
  100. package/dist/esm/chunks/{chunk.S3JMOOWC.js → chunk.FXIWCHLW.js} +2 -2
  101. package/dist/esm/chunks/chunk.FYVDTZLF.js +7 -0
  102. package/dist/esm/chunks/{chunk.CDGZYUQS.js.map → chunk.FYVDTZLF.js.map} +2 -2
  103. package/dist/esm/chunks/chunk.G73KL7P2.js +7 -0
  104. package/dist/esm/chunks/{chunk.7DB3XVPI.js.map → chunk.G73KL7P2.js.map} +3 -3
  105. package/dist/esm/chunks/chunk.G7SMCLHQ.js +7 -0
  106. package/dist/esm/chunks/chunk.G7SMCLHQ.js.map +7 -0
  107. package/dist/esm/chunks/chunk.GHR7T6U2.js +7 -0
  108. package/dist/esm/chunks/chunk.GHR7T6U2.js.map +7 -0
  109. package/dist/esm/chunks/{chunk.CWTV3TB3.js → chunk.GNDKQPDV.js} +2 -2
  110. package/dist/esm/chunks/{chunk.ULY4H76N.js → chunk.HAKF2T2D.js} +2 -2
  111. package/dist/esm/chunks/chunk.HDG2GHKC.js +7 -0
  112. package/dist/esm/chunks/{chunk.SBYX7VZ4.js.map → chunk.HDG2GHKC.js.map} +2 -2
  113. package/dist/esm/chunks/{chunk.WPG7NNQX.js → chunk.HOLCNJXC.js} +2 -2
  114. package/dist/esm/chunks/{chunk.W4247Q2P.js → chunk.HRRJIFC5.js} +2 -2
  115. package/dist/esm/chunks/chunk.HSI7B43D.js +7 -0
  116. package/dist/esm/chunks/chunk.HSI7B43D.js.map +7 -0
  117. package/dist/esm/chunks/chunk.IAWYYNUU.js +7 -0
  118. package/dist/esm/chunks/chunk.IAWYYNUU.js.map +7 -0
  119. package/dist/esm/chunks/{chunk.SU4FU7GK.js → chunk.IDMDBMBR.js} +2 -2
  120. package/dist/esm/chunks/{chunk.FCATJM34.js → chunk.IHAHJPMB.js} +2 -2
  121. package/dist/esm/chunks/chunk.IISWKFCX.js +7 -0
  122. package/dist/esm/chunks/chunk.IISWKFCX.js.map +7 -0
  123. package/dist/esm/chunks/{chunk.XKI46BH2.js → chunk.IMLJD35R.js} +2 -2
  124. package/dist/esm/chunks/{chunk.624UKZFU.js → chunk.IT7XPDAV.js} +2 -2
  125. package/dist/esm/chunks/{chunk.MVTBJPO2.js → chunk.JAWV5Y5T.js} +1 -1
  126. package/dist/esm/chunks/{chunk.MVTBJPO2.js.map → chunk.JAWV5Y5T.js.map} +2 -2
  127. package/dist/esm/chunks/{chunk.JLLHDJSO.js → chunk.JVLJH6PR.js} +2 -2
  128. package/dist/esm/chunks/chunk.KPJWP77R.js +7 -0
  129. package/dist/esm/chunks/{chunk.2EWV2XBP.js → chunk.KV5IKYG2.js} +2 -2
  130. package/dist/esm/chunks/chunk.KV67JXOC.js +7 -0
  131. package/dist/esm/chunks/{chunk.B4T3R53C.js.map → chunk.KV67JXOC.js.map} +2 -2
  132. package/dist/esm/chunks/{chunk.A62DE5PD.js → chunk.LCR4YH3O.js} +2 -2
  133. package/dist/esm/chunks/{chunk.FWFOOQMA.js → chunk.LOG6GQOK.js} +2 -2
  134. package/dist/esm/chunks/chunk.LUIKMPQR.js +7 -0
  135. package/dist/esm/chunks/chunk.LUIKMPQR.js.map +7 -0
  136. package/dist/esm/chunks/chunk.LUNKNRRH.js +7 -0
  137. package/dist/esm/chunks/chunk.LUNKNRRH.js.map +7 -0
  138. package/dist/esm/chunks/chunk.MKJCHUJH.js +7 -0
  139. package/dist/esm/chunks/chunk.MKJCHUJH.js.map +7 -0
  140. package/dist/esm/chunks/chunk.MWYQRG5W.js +7 -0
  141. package/dist/esm/chunks/{chunk.YX7WLO5Y.js.map → chunk.MWYQRG5W.js.map} +2 -2
  142. package/dist/esm/chunks/{chunk.YLG6ZC5K.js → chunk.NUMKGUCK.js} +2 -2
  143. package/dist/esm/chunks/{chunk.XI3MJSIS.js → chunk.O6V3YNMO.js} +2 -2
  144. package/dist/esm/chunks/chunk.OWZREAT6.js +15 -0
  145. package/dist/esm/chunks/chunk.OWZREAT6.js.map +7 -0
  146. package/dist/esm/chunks/chunk.PMYQY3D3.js +7 -0
  147. package/dist/esm/chunks/chunk.PMYQY3D3.js.map +7 -0
  148. package/dist/esm/chunks/chunk.PYR2OCCH.js +7 -0
  149. package/dist/esm/chunks/{chunk.5565ZSTH.js.map → chunk.PYR2OCCH.js.map} +2 -2
  150. package/dist/esm/chunks/chunk.QJCNMYD3.js +7 -0
  151. package/dist/esm/chunks/{chunk.SJJS4LYN.js.map → chunk.QJCNMYD3.js.map} +2 -2
  152. package/dist/esm/chunks/{chunk.TK5I4RHF.js → chunk.QLCVRJ3Q.js} +2 -2
  153. package/dist/esm/chunks/chunk.QLOYOZN3.js +7 -0
  154. package/dist/esm/chunks/{chunk.F5SY2D4B.js.map → chunk.QLOYOZN3.js.map} +3 -3
  155. package/dist/esm/chunks/chunk.QN5T26HH.js +7 -0
  156. package/dist/esm/chunks/chunk.QN5T26HH.js.map +7 -0
  157. package/dist/esm/chunks/chunk.QQRPV4RN.js +7 -0
  158. package/dist/esm/chunks/{chunk.PEBT47AU.js.map → chunk.QQRPV4RN.js.map} +2 -2
  159. package/dist/esm/chunks/chunk.R6LQBI42.js +177 -0
  160. package/dist/esm/chunks/chunk.R6LQBI42.js.map +7 -0
  161. package/dist/esm/chunks/chunk.RES7WDKH.js +7 -0
  162. package/dist/esm/chunks/chunk.RES7WDKH.js.map +7 -0
  163. package/dist/esm/chunks/chunk.RP674CRC.js +7 -0
  164. package/dist/esm/chunks/chunk.S5QL4SPT.js +7 -0
  165. package/dist/esm/chunks/chunk.S5QL4SPT.js.map +7 -0
  166. package/dist/esm/chunks/chunk.SIRXAA3O.js +7 -0
  167. package/dist/esm/chunks/chunk.SIRXAA3O.js.map +7 -0
  168. package/dist/esm/chunks/{chunk.LTT67HTW.js → chunk.SLJ6HDK7.js} +2 -2
  169. package/dist/esm/chunks/chunk.STB2FEUA.js +7 -0
  170. package/dist/esm/chunks/chunk.STB2FEUA.js.map +7 -0
  171. package/dist/esm/chunks/chunk.TBGMJQYJ.js +7 -0
  172. package/dist/esm/chunks/chunk.TBGMJQYJ.js.map +7 -0
  173. package/dist/esm/chunks/{chunk.6OW6Q3EW.js → chunk.TU74SREL.js} +2 -2
  174. package/dist/esm/chunks/{chunk.EK24Y56W.js → chunk.URJQNB3S.js} +2 -2
  175. package/dist/esm/chunks/{chunk.AEKOP3XT.js → chunk.V24M62MC.js} +2 -2
  176. package/dist/esm/chunks/{chunk.AEKOP3XT.js.map → chunk.V24M62MC.js.map} +2 -2
  177. package/dist/esm/chunks/chunk.VFKHRAWD.js +7 -0
  178. package/dist/esm/chunks/chunk.VFKHRAWD.js.map +7 -0
  179. package/dist/esm/chunks/chunk.VO6YJCEU.js +7 -0
  180. package/dist/esm/chunks/chunk.VO6YJCEU.js.map +7 -0
  181. package/dist/esm/chunks/{chunk.K3KAM2PL.js → chunk.W2LN45WY.js} +2 -2
  182. package/dist/esm/chunks/{chunk.MHBBMC6O.js → chunk.WMVYRDUJ.js} +2 -2
  183. package/dist/esm/chunks/{chunk.MHBBMC6O.js.map → chunk.WMVYRDUJ.js.map} +2 -2
  184. package/dist/esm/chunks/chunk.WY3E33CW.js +7 -0
  185. package/dist/esm/chunks/chunk.WY3E33CW.js.map +7 -0
  186. package/dist/esm/chunks/{chunk.Z6FCL3G3.js → chunk.XEFWZKHQ.js} +2 -2
  187. package/dist/esm/chunks/{chunk.NR3MLTXF.js → chunk.XLL7L2UB.js} +2 -2
  188. package/dist/esm/chunks/chunk.XNFS7YIB.js +7 -0
  189. package/dist/esm/chunks/chunk.XNFS7YIB.js.map +7 -0
  190. package/dist/esm/chunks/chunk.XYAZVLPR.js +7 -0
  191. package/dist/esm/chunks/chunk.YA3RDJCV.js +7 -0
  192. package/dist/esm/chunks/chunk.YA3RDJCV.js.map +7 -0
  193. package/dist/esm/chunks/{chunk.2QHD3DCR.js → chunk.YAERJVPL.js} +2 -2
  194. package/dist/esm/chunks/chunk.YBZK6LJZ.js +7 -0
  195. package/dist/esm/chunks/chunk.YKIBREM5.js +7 -0
  196. package/dist/esm/chunks/chunk.YKIBREM5.js.map +7 -0
  197. package/dist/esm/chunks/chunk.YWAUEUAH.js +7 -0
  198. package/dist/esm/chunks/chunk.YWAUEUAH.js.map +7 -0
  199. package/dist/esm/chunks/chunk.Z5RROENA.js +7 -0
  200. package/dist/esm/chunks/{chunk.6OUJSOJY.js.map → chunk.Z5RROENA.js.map} +3 -3
  201. package/dist/esm/chunks/{chunk.ZJC2DSNM.js → chunk.Z5ZLKM7W.js} +2 -2
  202. package/dist/esm/chunks/chunk.ZGRQDDHO.js +7 -0
  203. package/dist/esm/chunks/{chunk.BY25RT52.js.map → chunk.ZGRQDDHO.js.map} +2 -2
  204. package/dist/esm/chunks/{chunk.VSQOTSAO.js → chunk.ZKM667OT.js} +2 -2
  205. package/dist/esm/chunks/{chunk.VSQOTSAO.js.map → chunk.ZKM667OT.js.map} +2 -2
  206. package/dist/esm/chunks/chunk.ZRSDTCSD.js +7 -0
  207. package/dist/esm/chunks/chunk.ZRSDTCSD.js.map +7 -0
  208. package/dist/esm/chunks/chunk.ZSZFWZAI.js +7 -0
  209. package/dist/esm/chunks/chunk.ZSZFWZAI.js.map +7 -0
  210. package/dist/esm/circular-progress/index.js +1 -1
  211. package/dist/esm/color-picker/index.js +1 -1
  212. package/dist/esm/core/base/index.js +1 -1
  213. package/dist/esm/core/index.js +1 -1
  214. package/dist/esm/core/utils/index.js +1 -1
  215. package/dist/esm/date-picker/index.js +1 -1
  216. package/dist/esm/date-range-picker/index.js +1 -1
  217. package/dist/esm/dialog/index.js +1 -1
  218. package/dist/esm/divider/index.js +1 -1
  219. package/dist/esm/drawer/base/index.js +1 -1
  220. package/dist/esm/drawer/drawer/index.js +1 -1
  221. package/dist/esm/drawer/index.js +1 -1
  222. package/dist/esm/drawer/mini-drawer/index.js +1 -1
  223. package/dist/esm/drawer/modal-drawer/index.js +1 -1
  224. package/dist/esm/expansion-panel/index.js +1 -1
  225. package/dist/esm/file-picker/index.js +1 -1
  226. package/dist/esm/floating-action-button/index.js +1 -1
  227. package/dist/esm/floating-label/index.js +1 -1
  228. package/dist/esm/focus-indicator/index.js +1 -1
  229. package/dist/esm/icon/index.js +1 -1
  230. package/dist/esm/icon-button/index.js +1 -1
  231. package/dist/esm/index.js +1 -1
  232. package/dist/esm/inline-message/index.js +1 -1
  233. package/dist/esm/keyboard-shortcut/index.js +1 -1
  234. package/dist/esm/label/index.js +7 -0
  235. package/dist/esm/label/index.js.map +7 -0
  236. package/dist/esm/label-value/index.js +1 -1
  237. package/dist/esm/linear-progress/index.js +1 -1
  238. package/dist/esm/list/index.js +1 -1
  239. package/dist/esm/list/list/index.js +1 -1
  240. package/dist/esm/list/list-item/index.js +1 -1
  241. package/dist/esm/list-dropdown/index.js +1 -1
  242. package/dist/esm/menu/index.js +1 -1
  243. package/dist/esm/open-icon/index.js +1 -1
  244. package/dist/esm/page-state/index.js +1 -1
  245. package/dist/esm/paginator/index.js +1 -1
  246. package/dist/esm/popup/index.js +1 -1
  247. package/dist/esm/product-icon/index.js +1 -1
  248. package/dist/esm/profile-card/index.js +1 -1
  249. package/dist/esm/quantity-field/index.js +1 -1
  250. package/dist/esm/radio/index.js +1 -1
  251. package/dist/esm/ripple/index.js +1 -1
  252. package/dist/esm/scaffold/index.js +1 -1
  253. package/dist/esm/select/core/index.js +1 -1
  254. package/dist/esm/select/index.js +1 -1
  255. package/dist/esm/select/option/index.js +1 -1
  256. package/dist/esm/select/option-group/index.js +1 -1
  257. package/dist/esm/select/select/index.js +1 -1
  258. package/dist/esm/select/select-dropdown/index.js +1 -1
  259. package/dist/esm/skeleton/index.js +1 -1
  260. package/dist/esm/slider/index.js +1 -1
  261. package/dist/esm/split-button/index.js +7 -0
  262. package/dist/esm/split-button/index.js.map +7 -0
  263. package/dist/esm/split-view/index.js +1 -1
  264. package/dist/esm/split-view/split-view/index.js +1 -1
  265. package/dist/esm/split-view/split-view-panel/index.js +1 -1
  266. package/dist/esm/stack/index.js +1 -1
  267. package/dist/esm/state-layer/index.js +1 -1
  268. package/dist/esm/stepper/index.js +1 -1
  269. package/dist/esm/stepper/step/index.js +1 -1
  270. package/dist/esm/stepper/stepper/index.js +1 -1
  271. package/dist/esm/switch/index.js +1 -1
  272. package/dist/esm/table/index.js +1 -1
  273. package/dist/esm/tabs/index.js +1 -1
  274. package/dist/esm/tabs/tab/index.js +1 -1
  275. package/dist/esm/tabs/tab-bar/index.js +1 -1
  276. package/dist/esm/text-field/index.js +1 -1
  277. package/dist/esm/time-picker/index.js +1 -1
  278. package/dist/esm/toast/index.js +1 -1
  279. package/dist/esm/toolbar/index.js +1 -1
  280. package/dist/esm/tooltip/index.js +1 -1
  281. package/dist/esm/view-switcher/index.js +1 -1
  282. package/dist/esm/view-switcher/view/index.js +1 -1
  283. package/dist/forge-dark.css +1 -1
  284. package/dist/forge.css +1 -1
  285. package/dist/table/forge-table.css +1 -1
  286. package/dist/theme/forge-theme.css +1 -1
  287. package/dist/typography/forge-typography-legacy.css +1 -1
  288. package/dist/typography/forge-typography.css +1 -1
  289. package/esm/app-bar/app-bar.js +1 -1
  290. package/esm/app-bar/help-button/app-bar-help-button.js +1 -1
  291. package/esm/app-bar/menu-button/app-bar-menu-button.js +1 -1
  292. package/esm/app-bar/notification-button/app-bar-notification-button.js +1 -1
  293. package/esm/app-bar/profile-button/app-bar-profile-button-constants.js +1 -1
  294. package/esm/app-bar/profile-button/app-bar-profile-button.js +1 -1
  295. package/esm/autocomplete/autocomplete-constants.d.ts +3 -0
  296. package/esm/autocomplete/autocomplete-foundation.d.ts +3 -1
  297. package/esm/autocomplete/autocomplete-foundation.js +16 -2
  298. package/esm/autocomplete/autocomplete.d.ts +7 -1
  299. package/esm/autocomplete/autocomplete.js +7 -0
  300. package/esm/banner/banner-constants.js +1 -1
  301. package/esm/banner/banner.js +2 -2
  302. package/esm/bottom-sheet/bottom-sheet.js +1 -1
  303. package/esm/busy-indicator/busy-indicator.js +2 -2
  304. package/esm/button/base/base-button-adapter.d.ts +72 -0
  305. package/esm/button/base/base-button-adapter.js +250 -0
  306. package/esm/button/base/base-button-constants.d.ts +41 -0
  307. package/esm/button/base/base-button-constants.js +32 -0
  308. package/esm/button/base/base-button-foundation.d.ts +75 -0
  309. package/esm/button/base/base-button-foundation.js +234 -0
  310. package/esm/button/base/base-button.d.ts +51 -0
  311. package/esm/button/base/base-button.js +106 -0
  312. package/esm/button/button-adapter.d.ts +14 -0
  313. package/esm/button/button-adapter.js +14 -0
  314. package/esm/button/button-component-delegate.d.ts +4 -4
  315. package/esm/button/button-component-delegate.js +13 -17
  316. package/esm/button/button-constants.d.ts +10 -18
  317. package/esm/button/button-constants.js +6 -22
  318. package/esm/button/button-foundation.d.ts +25 -0
  319. package/esm/button/button-foundation.js +49 -0
  320. package/esm/button/button.d.ts +126 -30
  321. package/esm/button/button.js +160 -159
  322. package/esm/button/index.d.ts +3 -1
  323. package/esm/button/index.js +3 -1
  324. package/esm/button-area/button-area-adapter.d.ts +48 -0
  325. package/esm/button-area/button-area-adapter.js +121 -0
  326. package/esm/button-area/button-area-constants.d.ts +24 -0
  327. package/esm/button-area/button-area-constants.js +30 -0
  328. package/esm/button-area/button-area-foundation.d.ts +29 -0
  329. package/esm/button-area/button-area-foundation.js +94 -0
  330. package/esm/button-area/button-area.d.ts +29 -0
  331. package/esm/button-area/button-area.js +55 -0
  332. package/esm/button-area/index.d.ts +10 -0
  333. package/esm/button-area/index.js +14 -0
  334. package/esm/button-toggle/button-toggle/button-toggle.js +1 -1
  335. package/esm/calendar/calendar-dom-utils.js +18 -30
  336. package/esm/calendar/calendar-foundation.js +6 -0
  337. package/esm/calendar/calendar-menu/calendar-menu.js +1 -1
  338. package/esm/calendar/calendar.js +1 -1
  339. package/esm/checkbox/checkbox-adapter.d.ts +50 -59
  340. package/esm/checkbox/checkbox-adapter.js +104 -186
  341. package/esm/checkbox/checkbox-component-delegate.d.ts +18 -9
  342. package/esm/checkbox/checkbox-component-delegate.js +58 -51
  343. package/esm/checkbox/checkbox-constants.d.ts +14 -56
  344. package/esm/checkbox/checkbox-constants.js +17 -50
  345. package/esm/checkbox/checkbox-foundation.d.ts +48 -18
  346. package/esm/checkbox/checkbox-foundation.js +139 -139
  347. package/esm/checkbox/checkbox.d.ts +120 -9
  348. package/esm/checkbox/checkbox.js +235 -36
  349. package/esm/checkbox/index.d.ts +1 -1
  350. package/esm/checkbox/index.js +1 -1
  351. package/esm/chip-field/chip-field-adapter.js +1 -1
  352. package/esm/chip-field/chip-field-constants.d.ts +3 -0
  353. package/esm/chip-field/chip-field-constants.js +4 -0
  354. package/esm/chip-field/chip-field-foundation.d.ts +5 -0
  355. package/esm/chip-field/chip-field-foundation.js +20 -1
  356. package/esm/chip-field/chip-field.d.ts +5 -0
  357. package/esm/chip-field/chip-field.js +21 -3
  358. package/esm/chips/chip/chip.js +1 -1
  359. package/esm/circular-progress/circular-progress-constants.d.ts +4 -0
  360. package/esm/circular-progress/circular-progress-constants.js +2 -0
  361. package/esm/circular-progress/circular-progress-foundation.d.ts +9 -0
  362. package/esm/circular-progress/circular-progress-foundation.js +21 -0
  363. package/esm/circular-progress/circular-progress.d.ts +15 -2
  364. package/esm/circular-progress/circular-progress.js +25 -3
  365. package/esm/color-picker/color-picker.js +2 -2
  366. package/esm/constants.d.ts +7 -0
  367. package/esm/constants.js +4 -0
  368. package/esm/core/base/base-adapter.d.ts +18 -3
  369. package/esm/core/base/base-adapter.js +30 -2
  370. package/esm/core/base/base-component.d.ts +0 -1
  371. package/esm/core/base/base-component.js +0 -1
  372. package/esm/core/base/base-focusable-component.d.ts +49 -0
  373. package/esm/core/base/base-focusable-component.js +90 -0
  374. package/esm/core/base/base-form-component.d.ts +45 -0
  375. package/esm/core/base/base-form-component.js +19 -0
  376. package/esm/core/base/base-nullable-form-component.d.ts +35 -0
  377. package/esm/core/base/base-nullable-form-component.js +20 -0
  378. package/esm/core/keyboard/key-manager.d.ts +18 -0
  379. package/esm/core/keyboard/key-manager.js +47 -0
  380. package/esm/core/utils/feature-detection.d.ts +10 -0
  381. package/esm/core/utils/feature-detection.js +12 -0
  382. package/esm/core/utils/index.d.ts +2 -0
  383. package/esm/core/utils/index.js +2 -0
  384. package/esm/core/utils/reflect-utils.d.ts +107 -0
  385. package/esm/core/utils/reflect-utils.js +227 -0
  386. package/esm/core/utils/utils.d.ts +8 -0
  387. package/esm/core/utils/utils.js +15 -0
  388. package/esm/date-picker/base/base-date-picker-foundation.js +1 -1
  389. package/esm/date-picker/base/base-date-picker-utils.js +5 -8
  390. package/esm/date-range-picker/date-range-picker-foundation.js +2 -2
  391. package/esm/drawer/drawer/drawer.js +1 -1
  392. package/esm/drawer/mini-drawer/mini-drawer.js +1 -1
  393. package/esm/drawer/modal-drawer/modal-drawer.js +1 -1
  394. package/esm/expansion-panel/expansion-panel-adapter.d.ts +1 -0
  395. package/esm/expansion-panel/expansion-panel-adapter.js +7 -2
  396. package/esm/expansion-panel/expansion-panel.js +1 -1
  397. package/esm/field/field-constants.d.ts +8 -0
  398. package/esm/field/field-constants.js +10 -8
  399. package/esm/field/field-foundation.d.ts +1 -0
  400. package/esm/field/field-foundation.js +17 -7
  401. package/esm/file-picker/file-picker-component-delegate.js +1 -1
  402. package/esm/file-picker/file-picker.js +1 -1
  403. package/esm/floating-label/floating-label-foundation.d.ts +4 -1
  404. package/esm/floating-label/floating-label-foundation.js +9 -6
  405. package/esm/floating-label/floating-label.d.ts +6 -2
  406. package/esm/floating-label/floating-label.js +2 -2
  407. package/esm/focus-indicator/focus-indicator-adapter.d.ts +2 -2
  408. package/esm/focus-indicator/focus-indicator-adapter.js +3 -3
  409. package/esm/focus-indicator/focus-indicator-foundation.js +4 -3
  410. package/esm/focus-indicator/focus-indicator.js +1 -1
  411. package/esm/icon/icon-adapter.d.ts +0 -2
  412. package/esm/icon/icon-adapter.js +4 -5
  413. package/esm/icon/icon-foundation.js +0 -1
  414. package/esm/icon-button/icon-button-adapter.d.ts +12 -0
  415. package/esm/icon-button/icon-button-adapter.js +11 -0
  416. package/esm/icon-button/icon-button-component-delegate.d.ts +0 -4
  417. package/esm/icon-button/icon-button-component-delegate.js +8 -18
  418. package/esm/icon-button/icon-button-constants.d.ts +26 -17
  419. package/esm/icon-button/icon-button-constants.js +17 -28
  420. package/esm/icon-button/icon-button-foundation.d.ts +39 -0
  421. package/esm/icon-button/icon-button-foundation.js +122 -0
  422. package/esm/icon-button/icon-button.d.ts +69 -41
  423. package/esm/icon-button/icon-button.js +107 -213
  424. package/esm/index.d.ts +3 -0
  425. package/esm/index.js +8 -1
  426. package/esm/keyboard-shortcut/keyboard-shortcut-constants.d.ts +1 -0
  427. package/esm/keyboard-shortcut/keyboard-shortcut-foundation.d.ts +6 -0
  428. package/esm/keyboard-shortcut/keyboard-shortcut-foundation.js +9 -0
  429. package/esm/keyboard-shortcut/keyboard-shortcut.d.ts +4 -0
  430. package/esm/keyboard-shortcut/keyboard-shortcut.js +3 -0
  431. package/esm/label/index.d.ts +11 -0
  432. package/esm/label/index.js +15 -0
  433. package/esm/label/label-adapter.d.ts +51 -0
  434. package/esm/label/label-adapter.js +102 -0
  435. package/esm/label/label-aware.d.ts +15 -0
  436. package/esm/label/label-aware.js +13 -0
  437. package/esm/label/label-constants.d.ts +17 -0
  438. package/esm/label/label-constants.js +31 -0
  439. package/esm/label/label-foundation.d.ts +40 -0
  440. package/esm/label/label-foundation.js +106 -0
  441. package/esm/label/label.d.ts +49 -0
  442. package/esm/label/label.js +80 -0
  443. package/esm/linear-progress/linear-progress-constants.d.ts +3 -0
  444. package/esm/linear-progress/linear-progress-constants.js +1 -0
  445. package/esm/linear-progress/linear-progress-foundation.d.ts +5 -0
  446. package/esm/linear-progress/linear-progress-foundation.js +13 -3
  447. package/esm/linear-progress/linear-progress.d.ts +8 -1
  448. package/esm/linear-progress/linear-progress.js +13 -2
  449. package/esm/list/list/list-adapter.d.ts +17 -41
  450. package/esm/list/list/list-adapter.js +42 -60
  451. package/esm/list/list/list-constants.d.ts +13 -5
  452. package/esm/list/list/list-constants.js +15 -7
  453. package/esm/list/list/list-foundation.d.ts +24 -16
  454. package/esm/list/list/list-foundation.js +84 -75
  455. package/esm/list/list/list.d.ts +47 -8
  456. package/esm/list/list/list.js +83 -11
  457. package/esm/list/list-item/list-item-adapter.d.ts +39 -90
  458. package/esm/list/list-item/list-item-adapter.js +147 -127
  459. package/esm/list/list-item/list-item-constants.d.ts +31 -27
  460. package/esm/list/list-item/list-item-constants.js +19 -32
  461. package/esm/list/list-item/list-item-foundation.d.ts +41 -56
  462. package/esm/list/list-item/list-item-foundation.js +139 -204
  463. package/esm/list/list-item/list-item.d.ts +120 -37
  464. package/esm/list/list-item/list-item.js +171 -84
  465. package/esm/list-dropdown/list-dropdown-adapter.js +1 -6
  466. package/esm/list-dropdown/list-dropdown-constants.d.ts +4 -0
  467. package/esm/list-dropdown/list-dropdown-utils.js +23 -24
  468. package/esm/menu/menu-constants.js +1 -1
  469. package/esm/menu/menu-foundation.js +0 -4
  470. package/esm/menu/menu.js +1 -1
  471. package/esm/paginator/paginator-adapter.d.ts +30 -24
  472. package/esm/paginator/paginator-adapter.js +68 -0
  473. package/esm/paginator/paginator-constants.js +4 -4
  474. package/esm/paginator/paginator-foundation.d.ts +35 -80
  475. package/esm/paginator/paginator-foundation.js +221 -255
  476. package/esm/paginator/paginator.d.ts +1 -2
  477. package/esm/paginator/paginator.js +5 -4
  478. package/esm/popup/popup-adapter.d.ts +3 -1
  479. package/esm/popup/popup-adapter.js +3 -0
  480. package/esm/popup/popup-foundation.js +5 -3
  481. package/esm/popup/popup.d.ts +4 -1
  482. package/esm/popup/popup.js +1 -1
  483. package/esm/profile-card/profile-card.js +2 -2
  484. package/esm/quantity-field/quantity-field-constants.js +2 -2
  485. package/esm/select/core/base-select-adapter.js +3 -0
  486. package/esm/select/core/base-select-foundation.js +3 -1
  487. package/esm/select/option/option-constants.d.ts +1 -0
  488. package/esm/select/option/option-constants.js +1 -0
  489. package/esm/select/option/option-foundation.d.ts +13 -0
  490. package/esm/select/option/option-foundation.js +28 -0
  491. package/esm/select/option/option.d.ts +7 -0
  492. package/esm/select/option/option.js +13 -0
  493. package/esm/slider/slider-adapter.d.ts +1 -1
  494. package/esm/slider/slider-adapter.js +3 -2
  495. package/esm/slider/slider-constants.js +3 -3
  496. package/esm/slider/slider.d.ts +6 -11
  497. package/esm/slider/slider.js +11 -7
  498. package/esm/split-button/index.d.ts +10 -0
  499. package/esm/split-button/index.js +14 -0
  500. package/esm/split-button/split-button-adapter.d.ts +30 -0
  501. package/esm/split-button/split-button-adapter.js +84 -0
  502. package/esm/split-button/split-button-constants.d.ts +21 -0
  503. package/esm/split-button/split-button-constants.js +23 -0
  504. package/esm/split-button/split-button-foundation.d.ts +37 -0
  505. package/esm/split-button/split-button-foundation.js +77 -0
  506. package/esm/split-button/split-button.d.ts +57 -0
  507. package/esm/split-button/split-button.js +103 -0
  508. package/esm/split-view/split-view-panel/split-view-panel.js +1 -1
  509. package/esm/state-layer/state-layer-adapter.js +1 -0
  510. package/esm/state-layer/state-layer-foundation.js +10 -1
  511. package/esm/state-layer/state-layer.js +1 -1
  512. package/esm/stepper/stepper/stepper-foundation.js +1 -1
  513. package/esm/switch/index.d.ts +2 -0
  514. package/esm/switch/index.js +2 -0
  515. package/esm/switch/switch-adapter.d.ts +64 -0
  516. package/esm/switch/switch-adapter.js +151 -0
  517. package/esm/switch/switch-component-delegate.d.ts +22 -6
  518. package/esm/switch/switch-component-delegate.js +64 -29
  519. package/esm/switch/switch-constants.d.ts +23 -6
  520. package/esm/switch/switch-constants.js +29 -10
  521. package/esm/switch/switch-foundation.d.ts +65 -0
  522. package/esm/switch/switch-foundation.js +162 -0
  523. package/esm/switch/switch.d.ts +162 -33
  524. package/esm/switch/switch.js +249 -136
  525. package/esm/table/table-foundation.d.ts +2 -0
  526. package/esm/table/table-foundation.js +17 -6
  527. package/esm/table/table-utils.js +13 -1
  528. package/esm/table/types.d.ts +1 -0
  529. package/esm/tabs/tab/tab.js +2 -2
  530. package/esm/tabs/tab-bar/tab-bar-adapter.js +17 -20
  531. package/esm/tabs/tab-bar/tab-bar.js +1 -1
  532. package/esm/time-picker/time-picker-adapter.js +5 -8
  533. package/esm/time-picker/time-picker-foundation.js +3 -3
  534. package/esm/toast/toast-adapter.d.ts +1 -1
  535. package/esm/toast/toast-adapter.js +1 -1
  536. package/esm/toast/toast.js +2 -2
  537. package/package.json +1 -7
  538. package/styles/app-bar/_mixins.scss +9 -4
  539. package/styles/banner/banner.scss +0 -1
  540. package/styles/bottom-sheet/bottom-sheet.scss +0 -1
  541. package/styles/busy-indicator/_mixins.scss +1 -1
  542. package/styles/busy-indicator/busy-indicator.scss +0 -1
  543. package/styles/button/_configuration.scss +16 -0
  544. package/styles/button/_core.scss +183 -0
  545. package/styles/button/_token-utils.scss +30 -0
  546. package/styles/button/button.scss +208 -0
  547. package/styles/button/index.scss +8 -0
  548. package/styles/button-area/_mixins.scss +47 -0
  549. package/styles/button-area/button-area.scss +16 -0
  550. package/styles/button-toggle/button-toggle/_mixins.scss +26 -7
  551. package/styles/calendar/calendar-menu/_mixins.scss +48 -2
  552. package/styles/calendar/calendar.scss +0 -4
  553. package/styles/{button/forge-button.scss → checkbox/_configuration.scss} +4 -3
  554. package/styles/checkbox/_core.scss +157 -0
  555. package/styles/checkbox/_token-utils.scss +30 -0
  556. package/styles/checkbox/checkbox.scss +143 -7
  557. package/styles/checkbox/index.scss +8 -0
  558. package/styles/chip-field/_base.scss +1 -0
  559. package/styles/chip-field/_selector.scss +2 -2
  560. package/styles/chips/chip/_mixins.scss +21 -7
  561. package/styles/circular-progress/_configuration.scss +8 -15
  562. package/styles/circular-progress/_core.scss +19 -19
  563. package/styles/circular-progress/_token-utils.scss +30 -0
  564. package/styles/circular-progress/circular-progress.scss +51 -4
  565. package/styles/circular-progress/index.scss +1 -0
  566. package/styles/color-picker/color-picker.scss +0 -3
  567. package/styles/core/styles/_utils.scss +148 -11
  568. package/styles/core/styles/scrollbar/index.scss +45 -0
  569. package/styles/core/styles/spacing/index.scss +8 -1
  570. package/styles/core/styles/theme/_color-utils.scss +63 -0
  571. package/styles/core/styles/theme/_utils.scss +82 -0
  572. package/styles/core/styles/theme/index.scss +39 -13
  573. package/styles/core/styles/tokens/_token-utils.scss +118 -0
  574. package/styles/core/styles/tokens/button/_tokens.scss +115 -0
  575. package/styles/core/styles/tokens/checkbox/_tokens.scss +69 -0
  576. package/styles/core/styles/tokens/circular-progress/_tokens.scss +13 -3
  577. package/styles/core/styles/tokens/color-palette/_extended-color-palette.scss +88 -0
  578. package/styles/core/styles/tokens/color-palette/index.scss +7 -0
  579. package/styles/core/styles/tokens/focus-indicator/_tokens.scss +8 -5
  580. package/styles/core/styles/tokens/icon-button/_tokens.scss +106 -0
  581. package/styles/core/styles/tokens/index.scss +0 -1
  582. package/styles/core/styles/tokens/linear-progress/_tokens.scss +15 -4
  583. package/styles/core/styles/tokens/list/list/_tokens.scss +16 -0
  584. package/styles/core/styles/tokens/list/list-item/_tokens.scss +77 -0
  585. package/styles/core/styles/tokens/scrollbar/_tokens.scss +26 -0
  586. package/styles/core/styles/tokens/slider/_tokens.scss +9 -11
  587. package/styles/core/styles/tokens/spacing/_tokens.scss +25 -11
  588. package/styles/core/styles/tokens/split-button/_tokens.scss +21 -0
  589. package/styles/core/styles/tokens/state-layer/_tokens.scss +5 -5
  590. package/styles/core/styles/tokens/switch/_tokens.scss +108 -0
  591. package/styles/core/styles/tokens/tabs/tab/_tokens.scss +3 -1
  592. package/styles/core/styles/tokens/tabs/tab-bar/_tokens.scss +3 -3
  593. package/styles/core/styles/tokens/theme/_color-emphasis.scss +38 -0
  594. package/styles/core/styles/tokens/theme/_token-utils.scss +50 -0
  595. package/styles/core/styles/tokens/theme/_tokens.core.scss +45 -0
  596. package/styles/core/styles/tokens/theme/_tokens.scss +62 -117
  597. package/styles/core/styles/tokens/theme/_tokens.status.scss +49 -0
  598. package/styles/core/styles/tokens/theme/_tokens.surface.scss +65 -0
  599. package/styles/core/styles/tokens/theme/_tokens.text.scss +38 -0
  600. package/styles/core/styles/tokens/theme/_tokens.utilities.scss +30 -0
  601. package/styles/core/styles/tokens/typography/_scale.scss +39 -0
  602. package/styles/core/styles/tokens/typography/_tokens.body.scss +41 -0
  603. package/styles/core/styles/tokens/typography/_tokens.core.scss +31 -0
  604. package/styles/core/styles/tokens/typography/_tokens.display.scss +67 -0
  605. package/styles/core/styles/tokens/typography/_tokens.heading.scss +70 -0
  606. package/styles/core/styles/tokens/typography/_tokens.label.scss +36 -0
  607. package/styles/core/styles/tokens/typography/_tokens.scss +16 -211
  608. package/styles/core/styles/tokens/typography/_tokens.subheading.scss +66 -0
  609. package/styles/core/styles/tokens/typography/_type-utils.scss +37 -0
  610. package/styles/core/styles/tokens/typography/_weight.scss +20 -0
  611. package/styles/core/styles/typography/index.scss +56 -6
  612. package/styles/file-picker/_mixins.scss +1 -1
  613. package/styles/focus-indicator/_animations.scss +6 -4
  614. package/styles/focus-indicator/_configuration.scss +2 -15
  615. package/styles/focus-indicator/_core.scss +20 -25
  616. package/styles/focus-indicator/_token-utils.scss +31 -0
  617. package/styles/focus-indicator/focus-indicator.scss +28 -6
  618. package/styles/focus-indicator/index.scss +1 -0
  619. package/styles/forge.scss +0 -2
  620. package/styles/icon-button/_configuration.scss +16 -0
  621. package/styles/icon-button/_core.scss +145 -0
  622. package/styles/icon-button/_token-utils.scss +30 -0
  623. package/styles/icon-button/icon-button.scss +315 -0
  624. package/styles/icon-button/index.scss +8 -0
  625. package/styles/label/_core.scss +17 -0
  626. package/styles/{icon-button/forge-icon-button.scss → label/index.scss} +1 -3
  627. package/styles/label/label.scss +18 -0
  628. package/styles/linear-progress/_animations.scss +3 -1
  629. package/styles/linear-progress/_configuration.scss +15 -16
  630. package/styles/linear-progress/_core.scss +17 -19
  631. package/styles/linear-progress/_token-utils.scss +31 -0
  632. package/styles/linear-progress/index.scss +1 -0
  633. package/styles/linear-progress/linear-progress.scss +42 -6
  634. package/styles/list/list/_configuration.scss +10 -0
  635. package/styles/list/list/_core.scss +16 -0
  636. package/styles/list/list/_token-utils.scss +30 -0
  637. package/styles/list/list/index.scss +8 -0
  638. package/styles/list/list/list.scss +29 -3
  639. package/styles/list/list-item/_configuration.scss +16 -0
  640. package/styles/list/list-item/_core.scss +195 -0
  641. package/styles/list/list-item/_token-utils.scss +30 -0
  642. package/styles/list/list-item/index.scss +8 -0
  643. package/styles/list/list-item/list-item.scss +199 -12
  644. package/styles/menu/menu.scss +1 -1
  645. package/styles/paginator/paginator.scss +0 -1
  646. package/styles/profile-card/profile-card.scss +0 -1
  647. package/styles/slider/_configuration.scss +5 -50
  648. package/styles/slider/_core.scss +59 -70
  649. package/styles/slider/_token-utils.scss +30 -0
  650. package/styles/slider/index.scss +1 -0
  651. package/styles/slider/slider.scss +28 -5
  652. package/styles/split-button/_configuration.scss +12 -0
  653. package/styles/split-button/_token-utils.scss +30 -0
  654. package/styles/split-button/index.scss +7 -0
  655. package/styles/split-button/split-button.scss +97 -0
  656. package/styles/state-layer/_configuration.scss +2 -9
  657. package/styles/state-layer/_core.scss +11 -16
  658. package/styles/state-layer/_token-utils.scss +31 -0
  659. package/styles/state-layer/index.scss +1 -0
  660. package/styles/state-layer/state-layer.scss +7 -0
  661. package/styles/switch/_configuration.scss +10 -0
  662. package/styles/switch/_core.scss +252 -0
  663. package/styles/switch/_token-utils.scss +30 -0
  664. package/styles/switch/index.scss +8 -0
  665. package/styles/switch/switch.scss +167 -47
  666. package/styles/table/_mixins.scss +20 -2
  667. package/styles/tabs/tab/_configuration.scss +7 -44
  668. package/styles/tabs/tab/_core.scss +30 -35
  669. package/styles/tabs/tab/_token-utils.scss +30 -0
  670. package/styles/tabs/tab/index.scss +1 -0
  671. package/styles/tabs/tab/tab.scss +89 -45
  672. package/styles/tabs/tab-bar/_configuration.scss +2 -5
  673. package/styles/tabs/tab-bar/_core.scss +26 -9
  674. package/styles/tabs/tab-bar/_token-utils.scss +30 -0
  675. package/styles/tabs/tab-bar/index.scss +2 -1
  676. package/styles/tabs/tab-bar/tab-bar.scss +68 -34
  677. package/styles/theme/_theme-dark.scss +0 -2
  678. package/styles/theme/_theme.scss +3 -45
  679. package/styles/theme/forge-theme.scss +21 -3
  680. package/styles/toast/_mixins.scss +1 -1
  681. package/styles/toast/toast.scss +0 -2
  682. package/styles/typography/_mixins.scss +0 -20
  683. package/styles/typography/forge-typography.scss +5 -2
  684. package/dist/button/forge-button.css +0 -6
  685. package/dist/esm/chunks/chunk.2AJ7FFI6.js +0 -7
  686. package/dist/esm/chunks/chunk.2AJ7FFI6.js.map +0 -7
  687. package/dist/esm/chunks/chunk.3HB22HCX.js +0 -7
  688. package/dist/esm/chunks/chunk.4C6KHYUO.js +0 -7
  689. package/dist/esm/chunks/chunk.54OOOQ4R.js +0 -7
  690. package/dist/esm/chunks/chunk.54OOOQ4R.js.map +0 -7
  691. package/dist/esm/chunks/chunk.5565ZSTH.js +0 -7
  692. package/dist/esm/chunks/chunk.6GC5AJPE.js +0 -7
  693. package/dist/esm/chunks/chunk.6GC5AJPE.js.map +0 -7
  694. package/dist/esm/chunks/chunk.6OUJSOJY.js +0 -7
  695. package/dist/esm/chunks/chunk.7CGKFRBK.js +0 -7
  696. package/dist/esm/chunks/chunk.7CGKFRBK.js.map +0 -7
  697. package/dist/esm/chunks/chunk.7DB3XVPI.js +0 -7
  698. package/dist/esm/chunks/chunk.ALIYGJXA.js +0 -129
  699. package/dist/esm/chunks/chunk.ALIYGJXA.js.map +0 -7
  700. package/dist/esm/chunks/chunk.B4T3R53C.js +0 -7
  701. package/dist/esm/chunks/chunk.BH2TUG2V.js +0 -7
  702. package/dist/esm/chunks/chunk.BH2TUG2V.js.map +0 -7
  703. package/dist/esm/chunks/chunk.BKL2BAYW.js +0 -7
  704. package/dist/esm/chunks/chunk.BKL2BAYW.js.map +0 -7
  705. package/dist/esm/chunks/chunk.BY25RT52.js +0 -7
  706. package/dist/esm/chunks/chunk.CDGZYUQS.js +0 -7
  707. package/dist/esm/chunks/chunk.CKW7KKDW.js +0 -7
  708. package/dist/esm/chunks/chunk.CKW7KKDW.js.map +0 -7
  709. package/dist/esm/chunks/chunk.CXY6K7EI.js +0 -7
  710. package/dist/esm/chunks/chunk.CXY6K7EI.js.map +0 -7
  711. package/dist/esm/chunks/chunk.D5TAI6Q7.js +0 -7
  712. package/dist/esm/chunks/chunk.D5TAI6Q7.js.map +0 -7
  713. package/dist/esm/chunks/chunk.DBNJHUYY.js +0 -7
  714. package/dist/esm/chunks/chunk.DBNJHUYY.js.map +0 -7
  715. package/dist/esm/chunks/chunk.DMCBAYQX.js +0 -7
  716. package/dist/esm/chunks/chunk.DMCBAYQX.js.map +0 -7
  717. package/dist/esm/chunks/chunk.DXN7ZOH3.js +0 -7
  718. package/dist/esm/chunks/chunk.DXN7ZOH3.js.map +0 -7
  719. package/dist/esm/chunks/chunk.F4VXEE76.js +0 -7
  720. package/dist/esm/chunks/chunk.F4VXEE76.js.map +0 -7
  721. package/dist/esm/chunks/chunk.F5SY2D4B.js +0 -7
  722. package/dist/esm/chunks/chunk.F74YURLV.js +0 -7
  723. package/dist/esm/chunks/chunk.F74YURLV.js.map +0 -7
  724. package/dist/esm/chunks/chunk.FG2GNAM2.js +0 -7
  725. package/dist/esm/chunks/chunk.FG2GNAM2.js.map +0 -7
  726. package/dist/esm/chunks/chunk.GNG64TXK.js +0 -7
  727. package/dist/esm/chunks/chunk.GNG64TXK.js.map +0 -7
  728. package/dist/esm/chunks/chunk.GO5A4GKZ.js +0 -7
  729. package/dist/esm/chunks/chunk.GO5A4GKZ.js.map +0 -7
  730. package/dist/esm/chunks/chunk.HHCO64F3.js +0 -7
  731. package/dist/esm/chunks/chunk.HHCO64F3.js.map +0 -7
  732. package/dist/esm/chunks/chunk.ISC7SZSP.js +0 -7
  733. package/dist/esm/chunks/chunk.ISC7SZSP.js.map +0 -7
  734. package/dist/esm/chunks/chunk.IX25DYIM.js +0 -7
  735. package/dist/esm/chunks/chunk.IX25DYIM.js.map +0 -7
  736. package/dist/esm/chunks/chunk.JUJGROHA.js +0 -7
  737. package/dist/esm/chunks/chunk.JUJGROHA.js.map +0 -7
  738. package/dist/esm/chunks/chunk.KJP2VA6Q.js +0 -7
  739. package/dist/esm/chunks/chunk.KJP2VA6Q.js.map +0 -7
  740. package/dist/esm/chunks/chunk.LK4AAUOP.js +0 -7
  741. package/dist/esm/chunks/chunk.LK4AAUOP.js.map +0 -7
  742. package/dist/esm/chunks/chunk.LXPFG7MW.js +0 -7
  743. package/dist/esm/chunks/chunk.LXPFG7MW.js.map +0 -7
  744. package/dist/esm/chunks/chunk.MACPUZC2.js +0 -7
  745. package/dist/esm/chunks/chunk.MACPUZC2.js.map +0 -7
  746. package/dist/esm/chunks/chunk.MGLL67VO.js +0 -7
  747. package/dist/esm/chunks/chunk.MXEKIEJA.js +0 -7
  748. package/dist/esm/chunks/chunk.MXEKIEJA.js.map +0 -7
  749. package/dist/esm/chunks/chunk.N43BCJHN.js +0 -7
  750. package/dist/esm/chunks/chunk.N43BCJHN.js.map +0 -7
  751. package/dist/esm/chunks/chunk.P2CW5MQO.js +0 -12
  752. package/dist/esm/chunks/chunk.P2CW5MQO.js.map +0 -7
  753. package/dist/esm/chunks/chunk.P2ZCNO63.js +0 -7
  754. package/dist/esm/chunks/chunk.P2ZCNO63.js.map +0 -7
  755. package/dist/esm/chunks/chunk.PEBT47AU.js +0 -7
  756. package/dist/esm/chunks/chunk.PH3HUFJJ.js +0 -7
  757. package/dist/esm/chunks/chunk.PH3HUFJJ.js.map +0 -7
  758. package/dist/esm/chunks/chunk.Q7JUJNYD.js +0 -7
  759. package/dist/esm/chunks/chunk.QCRRHGBA.js +0 -7
  760. package/dist/esm/chunks/chunk.QCRRHGBA.js.map +0 -7
  761. package/dist/esm/chunks/chunk.SBYX7VZ4.js +0 -7
  762. package/dist/esm/chunks/chunk.SFCGOCQK.js +0 -7
  763. package/dist/esm/chunks/chunk.SJJS4LYN.js +0 -7
  764. package/dist/esm/chunks/chunk.TYLOAD7R.js +0 -7
  765. package/dist/esm/chunks/chunk.UJ2WQOLO.js +0 -7
  766. package/dist/esm/chunks/chunk.UJ2WQOLO.js.map +0 -7
  767. package/dist/esm/chunks/chunk.VVXSELXX.js +0 -7
  768. package/dist/esm/chunks/chunk.VVXSELXX.js.map +0 -7
  769. package/dist/esm/chunks/chunk.VZWNNK7A.js +0 -7
  770. package/dist/esm/chunks/chunk.VZWNNK7A.js.map +0 -7
  771. package/dist/esm/chunks/chunk.X3C3J5MH.js +0 -7
  772. package/dist/esm/chunks/chunk.X3C3J5MH.js.map +0 -7
  773. package/dist/esm/chunks/chunk.XGOAYMK2.js +0 -7
  774. package/dist/esm/chunks/chunk.XGOAYMK2.js.map +0 -7
  775. package/dist/esm/chunks/chunk.YRMR7IOS.js +0 -7
  776. package/dist/esm/chunks/chunk.YRMR7IOS.js.map +0 -7
  777. package/dist/esm/chunks/chunk.YX7WLO5Y.js +0 -7
  778. package/dist/esm/chunks/chunk.YZLASVCK.js +0 -177
  779. package/dist/esm/chunks/chunk.YZLASVCK.js.map +0 -7
  780. package/dist/esm/chunks/chunk.ZDD2NLGP.js +0 -7
  781. package/dist/esm/chunks/chunk.ZKGSQQGU.js +0 -12
  782. package/dist/esm/chunks/chunk.ZKGSQQGU.js.map +0 -7
  783. package/dist/esm/chunks/chunk.ZVBZ3LGP.js +0 -7
  784. package/dist/esm/chunks/chunk.ZVBZ3LGP.js.map +0 -7
  785. package/dist/icon-button/forge-icon-button.css +0 -6
  786. package/styles/button/_button-base.scss +0 -183
  787. package/styles/button/_button-filled-theme.scss +0 -60
  788. package/styles/button/_button-filled.scss +0 -71
  789. package/styles/button/_button-outlined-theme.scss +0 -175
  790. package/styles/button/_button-outlined.scss +0 -76
  791. package/styles/button/_button-protected-theme.scss +0 -60
  792. package/styles/button/_button-protected.scss +0 -88
  793. package/styles/button/_button-ripple.scss +0 -69
  794. package/styles/button/_button-shared-theme.scss +0 -447
  795. package/styles/button/_button-text-theme.scss +0 -60
  796. package/styles/button/_button-text.scss +0 -57
  797. package/styles/button/_button.mixins.scss +0 -148
  798. package/styles/button/_mixins.scss +0 -183
  799. package/styles/checkbox/_checkbox-custom-properties.scss +0 -11
  800. package/styles/checkbox/_checkbox-theme.scss +0 -577
  801. package/styles/checkbox/_checkbox.mixins.scss +0 -595
  802. package/styles/icon-button/_mixins.scss +0 -345
  803. package/styles/icon-button/_variables.scss +0 -42
  804. package/styles/list/list/_mixins.scss +0 -45
  805. package/styles/list/list-item/_mixins.scss +0 -413
  806. package/styles/list/list-item/_variables.scss +0 -43
  807. package/styles/switch/_switch-mixins.scss +0 -301
  808. package/styles/switch/_switch-theme.scss +0 -701
  809. /package/dist/esm/chunks/{chunk.SMGXXR6K.js.map → chunk.2MSL7CYM.js.map} +0 -0
  810. /package/dist/esm/chunks/{chunk.M56LSSPW.js.map → chunk.3HCYRDRI.js.map} +0 -0
  811. /package/dist/esm/chunks/{chunk.4ZKX3SO5.js.map → chunk.3R4BUIQP.js.map} +0 -0
  812. /package/dist/esm/chunks/{chunk.YWNCJ7XP.js.map → chunk.3ZPSN2QG.js.map} +0 -0
  813. /package/dist/esm/chunks/{chunk.LFODKHUO.js.map → chunk.5N4N6DL6.js.map} +0 -0
  814. /package/dist/esm/chunks/{chunk.QOJESHEV.js.map → chunk.675V42JS.js.map} +0 -0
  815. /package/dist/esm/chunks/{chunk.DG4ZM3AW.js.map → chunk.AMLT6XJP.js.map} +0 -0
  816. /package/dist/esm/chunks/{chunk.MTKSU2BV.js.map → chunk.APPY5AYL.js.map} +0 -0
  817. /package/dist/esm/chunks/{chunk.4YFVG4KP.js.map → chunk.ARQMMZJL.js.map} +0 -0
  818. /package/dist/esm/chunks/{chunk.5MZ5SGMO.js.map → chunk.BB4UF5RX.js.map} +0 -0
  819. /package/dist/esm/chunks/{chunk.Q7Z3SJ5F.js.map → chunk.DTLZOIUQ.js.map} +0 -0
  820. /package/dist/esm/chunks/{chunk.OWCYRSI3.js.map → chunk.FLWNOP42.js.map} +0 -0
  821. /package/dist/esm/chunks/{chunk.S3JMOOWC.js.map → chunk.FXIWCHLW.js.map} +0 -0
  822. /package/dist/esm/chunks/{chunk.CWTV3TB3.js.map → chunk.GNDKQPDV.js.map} +0 -0
  823. /package/dist/esm/chunks/{chunk.ULY4H76N.js.map → chunk.HAKF2T2D.js.map} +0 -0
  824. /package/dist/esm/chunks/{chunk.WPG7NNQX.js.map → chunk.HOLCNJXC.js.map} +0 -0
  825. /package/dist/esm/chunks/{chunk.W4247Q2P.js.map → chunk.HRRJIFC5.js.map} +0 -0
  826. /package/dist/esm/chunks/{chunk.SU4FU7GK.js.map → chunk.IDMDBMBR.js.map} +0 -0
  827. /package/dist/esm/chunks/{chunk.FCATJM34.js.map → chunk.IHAHJPMB.js.map} +0 -0
  828. /package/dist/esm/chunks/{chunk.XKI46BH2.js.map → chunk.IMLJD35R.js.map} +0 -0
  829. /package/dist/esm/chunks/{chunk.624UKZFU.js.map → chunk.IT7XPDAV.js.map} +0 -0
  830. /package/dist/esm/chunks/{chunk.JLLHDJSO.js.map → chunk.JVLJH6PR.js.map} +0 -0
  831. /package/dist/esm/chunks/{chunk.4C6KHYUO.js.map → chunk.KPJWP77R.js.map} +0 -0
  832. /package/dist/esm/chunks/{chunk.2EWV2XBP.js.map → chunk.KV5IKYG2.js.map} +0 -0
  833. /package/dist/esm/chunks/{chunk.A62DE5PD.js.map → chunk.LCR4YH3O.js.map} +0 -0
  834. /package/dist/esm/chunks/{chunk.FWFOOQMA.js.map → chunk.LOG6GQOK.js.map} +0 -0
  835. /package/dist/esm/chunks/{chunk.YLG6ZC5K.js.map → chunk.NUMKGUCK.js.map} +0 -0
  836. /package/dist/esm/chunks/{chunk.XI3MJSIS.js.map → chunk.O6V3YNMO.js.map} +0 -0
  837. /package/dist/esm/chunks/{chunk.TK5I4RHF.js.map → chunk.QLCVRJ3Q.js.map} +0 -0
  838. /package/dist/esm/chunks/{chunk.Q7JUJNYD.js.map → chunk.RP674CRC.js.map} +0 -0
  839. /package/dist/esm/chunks/{chunk.LTT67HTW.js.map → chunk.SLJ6HDK7.js.map} +0 -0
  840. /package/dist/esm/chunks/{chunk.6OW6Q3EW.js.map → chunk.TU74SREL.js.map} +0 -0
  841. /package/dist/esm/chunks/{chunk.EK24Y56W.js.map → chunk.URJQNB3S.js.map} +0 -0
  842. /package/dist/esm/chunks/{chunk.K3KAM2PL.js.map → chunk.W2LN45WY.js.map} +0 -0
  843. /package/dist/esm/chunks/{chunk.Z6FCL3G3.js.map → chunk.XEFWZKHQ.js.map} +0 -0
  844. /package/dist/esm/chunks/{chunk.NR3MLTXF.js.map → chunk.XLL7L2UB.js.map} +0 -0
  845. /package/dist/esm/chunks/{chunk.3HB22HCX.js.map → chunk.XYAZVLPR.js.map} +0 -0
  846. /package/dist/esm/chunks/{chunk.2QHD3DCR.js.map → chunk.YAERJVPL.js.map} +0 -0
  847. /package/dist/esm/chunks/{chunk.ZDD2NLGP.js.map → chunk.YBZK6LJZ.js.map} +0 -0
  848. /package/dist/esm/chunks/{chunk.ZJC2DSNM.js.map → chunk.Z5ZLKM7W.js.map} +0 -0
  849. /package/styles/core/styles/tokens/{_color-palette.scss → color-palette/_material-color-palette.scss} +0 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/calendar/calendar-constants.ts", "../../src/calendar/calendar-locale-utils.ts", "../../src/calendar/calendar-dom-utils.ts", "../../src/calendar/calendar-dropdown/calendar-dropdown-constants.ts", "../../src/calendar/calendar-dropdown/calendar-dropdown.ts"],
4
- "sourcesContent": ["import { TOOLTIP_CONSTANTS } from '../tooltip/tooltip-constants';\nimport { COMPONENT_NAME_PREFIX } from '../constants';\nimport { CALENDAR_MENU_CONSTANTS } from './calendar-menu';\nimport { DateRange } from './core/date-range';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}calendar`;\n\nconst observedAttributes = {\n ALLOW_SINGLE_DATE_RANGE: 'allow-single-date-range',\n CLEAR_BUTTON: 'clear-button',\n CONSTRAIN_TO_ENABLED: 'constrain-to-enabled',\n FIRST_DAY_OF_WEEK: 'first-day-of-week',\n FIXED_HEIGHT: 'static-height',\n LIST_YEARS: 'list-years',\n LOCALE: 'locale',\n MAX: 'max',\n MENU_ANIMATION: 'menu-animation',\n MIN: 'min',\n MODE: 'mode',\n MONTH: 'month',\n PREVENT_FOCUS: 'prevent-focus',\n READONLY: 'readonly',\n SELECTION_FOLLOWS_MONTH: 'selection-follows-month',\n SHOW_HEADER: 'show-header',\n SHOW_OTHER_MONTHS: 'show-other-months',\n SHOW_TODAY: 'show-today',\n TODAY_BUTTON: 'today-button',\n VIEW: 'view',\n YEAR: 'year',\n YEAR_RANGE: 'year-range'\n};\n\nconst attributes = {\n ...observedAttributes,\n DATA_DATE: 'data-date',\n DATA_EVENT_THEME: 'data-event-theme',\n POPUP_CONTEXT: 'forge-popup-context'\n};\n\nconst classes = {\n ALLOW_SINGLE_DATE_RANGE: 'forge-calendar--allow-single-date-range',\n DATE: 'forge-calendar__date',\n DATE_GRID: 'forge-calendar__date-grid',\n DATE_INNER: 'forge-calendar__date__inner',\n DATE_OTHER_MONTH: 'forge-calendar__date--other-month',\n DATE_SPACER: 'forge-calendar__date-spacer',\n DATE_SELECTED: 'forge-calendar__date--selected',\n DATE_TODAY: 'forge-calendar__date--today',\n DATE_VIEW: 'forge-calendar__date-view',\n DATE_VIEW_ROW: 'forge-calendar__date-view__row',\n DATE_WRAPPER: 'forge-calendar__date-wrapper',\n DAY: 'forge-calendar__day',\n EVENT: 'forge-calendar__event',\n EVENT_OVERFLOW: 'forge-calendar__event--overflow',\n EVENT_WRAPPER: 'forge-calendar__event__wrapper',\n FIXED_HEIGHT: 'forge-calendar--fixed-height',\n FOOTER: 'forge-calendar__footer',\n HEADER: 'forge-calendar__header',\n MDC_RIPPLE_UPGRADED_FOCUSED: 'mdc-ripple-upgraded--background-focused',\n MONTH_MENU_OPEN: 'forge-calendar--month-menu-open',\n PREVENT_FOCUS: 'forge-calendar--prevent-focus',\n RANGE: 'forge-calendar__range',\n RANGE_END: 'forge-calendar__range--end',\n RANGE_START: 'forge-calendar__range--start',\n RANGE_TARGET: 'forge-calendar__range__target',\n READONLY: 'forge-calendar--readonly',\n RTL: 'forge-calendar--rtl',\n SHOW_OTHER_MONTHS: 'forge-calendar--show-other-months',\n SHOW_TODAY: 'forge-calendar--show-today',\n VIEW: 'forge-calendar__view',\n YEAR_MENU_OPEN: 'forge-calendar--year-menu-open'\n};\n\nconst ids = {\n ACCESSIBLE_HEADER: 'accessible-header',\n ACCESSIBLE_MONTH: 'accessible-month',\n ACCESSIBLE_YEAR: 'accessible-year',\n CLEAR_BUTTON: 'clear-button',\n DATE_GRID: 'date-grid',\n DATE_VIEW: 'date-view',\n DAY_ROW: 'day-row',\n FOOTER: 'footer',\n HEADER: 'header',\n MENU: 'menu',\n MONTH_BUTTON: 'month-button',\n NEXT_BUTTON: 'next-button',\n NEXT_BUTTON_TOOLTIP: 'next-button-tooltip',\n PREVIOUS_BUTTON: 'previous-button',\n PREVIOUS_BUTTON_TOOLTIP: 'previous-button-tooltip',\n TODAY_BUTTON: 'today-button',\n YEAR_BUTTON: 'year-button'\n};\n\nconst weekdayParts = {\n SUNDAY: 'sunday',\n MONDAY: 'monday',\n TUESDAY: 'tuesday',\n WEDNESDAY: 'wednesday',\n THURSDAY: 'thursday',\n FRIDAY: 'friday',\n SATURDAY: 'saturday'\n};\n\nconst parts = {\n ...weekdayParts,\n CLEAR_BUTTON: 'clear-button',\n DATE: 'date',\n DATE_OTHER_MONTH: 'date-other-month',\n DATE_VIEW: 'date-view',\n DATE_WRAPPER: 'date-wrapper',\n DAY: 'day',\n EVENT: 'event',\n EVENT_WRAPPER: 'event-wrapper',\n FOOTER: 'footer',\n HEADER: 'header',\n MONTH_BUTTON: 'month-button',\n MONTH_BUTTON_ELEMENT: 'month-button-element',\n NEXT_BUTTON: 'next-button',\n PREVIOUS_BUTTON: 'previous-button',\n RANGE: 'range',\n RANGE_END: 'range-end',\n RANGE_START: 'range-start',\n TODAY: 'today',\n TODAY_BUTTON: 'today-button',\n WEEKEND: 'weekend',\n YEAR_BUTTON: 'year-button',\n YEAR_BUTTON_ELEMENT: 'year-button-element'\n};\n\nconst selectors = {\n ACCESSIBLE_HEADER: `#${ids.ACCESSIBLE_HEADER}`,\n ACCESSIBLE_MONTH: `#${ids.ACCESSIBLE_MONTH}`,\n ACCESSIBLE_YEAR: `#${ids.ACCESSIBLE_YEAR}`,\n CALENDAR: '.forge-calendar',\n CLEAR_BUTTON: `#${ids.CLEAR_BUTTON}`,\n DATE: `.${classes.DATE}`,\n DATE_GRID: `#${ids.DATE_GRID}`,\n DATE_INNER: `.${classes.DATE_INNER}`,\n DATE_OTHER_MONTH: `.${classes.DATE_OTHER_MONTH}`,\n DATE_SPACER: `.${classes.DATE_SPACER}`,\n DATE_SELECTED: `.${classes.DATE_SELECTED}`,\n DATE_TODAY: `.${classes.DATE_TODAY}`,\n DATE_VIEW: `#${ids.DATE_VIEW}`,\n DATE_WRAPPER: `.${classes.DATE_WRAPPER}`,\n DAY_ROW: `#${ids.DAY_ROW}`,\n EVENT_WRAPPER: `.${classes.EVENT_WRAPPER}`,\n FOOTER: `#${ids.FOOTER}`,\n HEADER: `#${ids.HEADER}`,\n MENU: CALENDAR_MENU_CONSTANTS.elementName,\n MONTH_BUTTON: `#${ids.MONTH_BUTTON}`,\n NEXT_BUTTON: `#${ids.NEXT_BUTTON}`,\n NEXT_BUTTON_TOOLTIP: `#${ids.NEXT_BUTTON_TOOLTIP}`,\n PREVIOUS_BUTTON: `#${ids.PREVIOUS_BUTTON}`,\n PREVIOUS_BUTTON_TOOLTIP: `#${ids.PREVIOUS_BUTTON_TOOLTIP}`,\n RANGE: `.${classes.RANGE}`,\n RANGE_END: `.${classes.RANGE_END}`,\n RANGE_START: `.${classes.RANGE_START}`,\n TODAY_BUTTON: `#${ids.TODAY_BUTTON}`,\n TOOLTIP: TOOLTIP_CONSTANTS.elementName,\n VIEW: '#view',\n YEAR_BUTTON: `#${ids.YEAR_BUTTON}`\n};\n\nconst events = {\n DATE_SELECT: `${elementName}-date-select`,\n FOCUS_CHANGE: `${elementName}-focus-change`,\n MONTH_CHANGE: `${elementName}-month-change`,\n VIEW_CHANGE: `${elementName}-view-change`\n};\n\nconst numbers = {\n DEFAULT_MAX_YEAR_OFFSET: 50,\n DEFAULT_MIN_YEAR_OFFSET: 50,\n FINAL_WEEK_BEGIN_INDEX: 35,\n MONTH_LENGTH: 42,\n PENULTIMATE_WEEK_BEGIN_INDEX: 28,\n WEEK_LENGTH: 7,\n YEARS_IN_VIEW: 20\n};\n\nexport const CALENDAR_CONSTANTS = {\n elementName,\n attributes,\n classes,\n ids,\n parts,\n selectors,\n events,\n numbers\n};\n\nexport type CalendarDateBuilder = (date: ICalendarDateConfig, element: HTMLElement) => HTMLElement;\nexport type CalendarDateSelectCallback = (date: ICalendarDate) => boolean | Promise<boolean>;\nexport type CalendarDayBuilder = (day: DayOfWeek, element: HTMLElement) => HTMLElement;\nexport type CalendarDisabledDateBuilder = (date: Date) => boolean;\nexport type CalendarEventBuilder = (date: Date) => ICalendarEvent[] | ICalendarEvent | null;\nexport type CalendarTooltipBuilder = (date: ICalendarDate, content: string) => string | null;\n\nexport type CalendarMode = 'single' | 'multiple' | 'range';\nexport type CalendarView = 'date' | 'month' | 'year';\nexport type RangeSelectionState = 'none' | 'from' | 'to';\nexport type CalendarEventColor = 'primary' | 'secondary' | 'blue' | 'light-green' | 'cyan' | 'teal' | 'orange' | 'blue-grey' | 'grey' | 'red' | 'pink' | 'purple' | 'light-blue' | 'deep-purple' | 'green' | 'lime' | 'yellow' | 'brown' | 'deep-orange';\n\nexport interface ICalendarDate {\n date: Date;\n selected: boolean;\n events: ICalendarEvent[];\n}\n\nexport interface ICalendarDateConfig {\n date: Date;\n selected: boolean;\n today: boolean;\n thisMonth: boolean;\n disabled: boolean;\n}\n\nexport interface ICalendarDateOptions {\n builder?: CalendarDateBuilder;\n locale?: string;\n showOtherMonths?: boolean;\n}\n\nexport interface ICalendarDayOptions {\n builder?: CalendarDayBuilder;\n locale?: string;\n}\n\nexport interface ICalendarEvent {\n date: Date;\n label: string;\n color: CalendarEventColor | string;\n}\n\nexport interface ICalendarDateSelectEventData {\n date: Date | null;\n selected: boolean;\n range?: DateRange;\n rangeSelectionState?: RangeSelectionState;\n type: CalendarView;\n}\n\nexport interface ICalendarMonthChangeEventData {\n month: number;\n userSelected: boolean; // Indicates whether event is from explicit selection or regular navigation\n year: number;\n}\n\nexport interface ICalendarFocusChangeEventData {\n selected: boolean;\n text: string;\n type: CalendarView;\n value: Date | number;\n}\n\nexport interface ICalendarNumberRange {\n max: number;\n min: number;\n}\n\nexport interface ICalendarDisabledDateParams {\n builder: CalendarDisabledDateBuilder | undefined;\n disabledDates: Date[];\n disabledDaysOfWeek: DayOfWeek[];\n maxDate: Date | null;\n minDate: Date | null;\n otherMonth?: boolean;\n}\n\nexport interface ICalendarMenuMonthConfig {\n locale?: string;\n max: Date | null;\n min: Date | null;\n selectedMonth: number;\n selectedYear: number;\n}\n\nexport interface ICalendarMenuYearConfig {\n locale?: string;\n max: number;\n min: number;\n selectedYear: number;\n yearInView: number;\n}\n\nexport enum DayOfWeek {\n Sunday = 0,\n Monday = 1,\n Tuesday = 2,\n Wednesday = 3,\n Thursday = 4,\n Friday = 5,\n Saturday = 6\n}\n\nexport enum CalendarMonthFocus {\n First = 1,\n Last = 2,\n Current = 3\n}\n", "// TODO: implement year before month support\n// TODO: use a more robust strategy to get language and region parts from a locale, like the Intl API (in TypeScript 4.1.2 and es2020.intl)\n\nimport { DayOfWeek } from './calendar-constants';\n\n/** Returns a localized day name. */\nexport function getLocalizedDayOfWeek(day: DayOfWeek, format: 'long' | 'short' | 'narrow' | undefined, locale?: string): string {\n if (!locale) {\n locale = navigator.language;\n }\n // January 2017 starts on a Sunday\n return new Date(2017, 0, day + 1).toLocaleString(locale, {weekday: format});\n}\n\n/** Returns a localized date of the month. */\nexport function getLocalizedDayOfMonth(date: number, format: 'numeric' | '2-digit' | undefined, locale?: string): string {\n if (!locale) {\n locale = navigator.language;\n }\n return new Date(1970, 0, date).toLocaleDateString(locale, {day: format});\n}\n\n/** Returns a localized month name. */\nexport function getLocalizedMonth(month: number, format: 'long' | 'short' | 'narrow' | 'numeric' | '2-digit' | undefined, locale?: string): string {\n if (!locale) {\n locale = navigator.language;\n }\n return new Date(1970, month, 1).toLocaleString(locale, {month: format});\n}\n\n/** Returns a localized year name. */\nexport function getLocalizedYear(year: number, format: 'numeric' | '2-digit' | undefined, locale?: string): string {\n if (!locale) {\n locale = navigator.language;\n }\n return new Date(year, 0, 1).toLocaleDateString(locale, {year: format});\n}\n\n/** Returns the first day of week for a locale. */\nexport function getFirstDayOfWeekForLocale(locale?: string): DayOfWeek {\n if (!locale) {\n locale = navigator.language;\n }\n const localeParts = locale.match(/^([a-z]{2,3})(?:-([a-z]{3})(?=$|-))?(?:-([a-z]{4})(?=$|-))?(?:-([a-z]{2}|\\d{3})(?=$|-))?/i);\n if (!localeParts || !localeParts.length) {\n return DayOfWeek.Monday;\n }\n\n const language = localeParts[1];\n const region = localeParts[4];\n const saturdayRegions = 'AEAFBHDJDZEGIQIRJOKWLYOMQASDSY'.match(/../g);\n const sundayRegions = 'AGARASAUBDBRBSBTBWBZCACNCODMDOETGTGUHKHNIDILINJMJPKEKHKRLAMHMMMOMTMXMZNINPPAPEPHPKPRPTPYSASGSVTHTTTWUMUSVEVIWSYEZAZW'.match(/../g);\n const saturdayLanguages = ['ar', 'arq', 'arz', 'fa'];\n const sundayLanguages = 'amasbndzengnguhehiidjajvkmknkolomhmlmrmtmyneomorpapssdsmsnsutatethtnurzhzu'.match(/../g);\n\n if (region) {\n if (sundayRegions && sundayRegions.includes(region)) {\n return DayOfWeek.Sunday;\n } else if (saturdayRegions && saturdayRegions.includes(region)) {\n return DayOfWeek.Saturday;\n } else {\n return DayOfWeek.Monday;\n }\n } else {\n if (sundayLanguages && sundayLanguages.includes(language)) {\n return DayOfWeek.Sunday;\n } else if (saturdayLanguages && saturdayLanguages.includes(language)) {\n return DayOfWeek.Saturday;\n } else {\n return DayOfWeek.Monday;\n }\n }\n}\n\n/** Returns an array of weekend days for a locale. */\nexport function getWeekendDaysForLocale(locale?: string): DayOfWeek[] {\n if (!locale) {\n locale = navigator.language;\n }\n const region: string = locale.split('-')[1];\n switch (region) {\n case 'DZ':\n case 'BH':\n case 'BD':\n case 'EG':\n case 'IQ':\n case 'IL':\n case 'JO':\n case 'KW':\n case 'LY':\n case 'MV': // Not consistent across Malaysia\n case 'MR':\n case 'NP':\n case 'OM':\n case 'QA':\n case 'SA':\n case 'SD':\n case 'SY':\n case 'AE': // Not consistent across UAE\n case 'YE':\n case 'AF': // Thursday morning is a workday\n case 'IR': // Thursday morning is a workday\n return [DayOfWeek.Thursday, DayOfWeek.Friday];\n case 'BN':\n return [DayOfWeek.Sunday, DayOfWeek.Friday];\n default:\n return [DayOfWeek.Sunday, DayOfWeek.Saturday];\n }\n}\n\n/** Returns whether a language is written right-to-left. */\nexport function isRtlLocale(locale?: string): boolean {\n if (!locale) {\n locale = navigator.language;\n }\n const rtlLocales: string[] = [\n 'ar',\n 'arc',\n 'ckb',\n 'dv',\n 'fa',\n 'ha',\n 'he',\n 'khw',\n 'ks',\n 'ps',\n 'sd',\n 'ur',\n 'uz-AF',\n 'yi'\n ];\n return rtlLocales.some(l => locale ? locale.startsWith(l) : false);\n}\n", "import { getEventPath, appendToAttribute, toggleOnAttribute } from '@tylertech/forge-core';\n\nimport { IIconComponent } from '../icon';\nimport { ITooltipComponent } from '../tooltip';\nimport { CALENDAR_CONSTANTS, DayOfWeek, ICalendarDateConfig, ICalendarDateOptions, ICalendarEvent } from './calendar-constants';\nimport { getLocalizedDayOfMonth, getLocalizedDayOfWeek, getLocalizedMonth, getLocalizedYear } from './calendar-locale-utils';\n\n/** Converts a day into an id string prefixed with \"d\". */\nexport function getDayId(day: DayOfWeek): string {\n return `d${day}`;\n}\n\n/** Converts a date object into a \"yyyymmdd\" id string prefixed with \"d\". */\nexport function getDateId(date: Date): string {\n const month = String(date.getMonth()).padStart(2, '0');\n const day = String(date.getDate()).padStart(2, '0');\n const year = date.getFullYear();\n return ['d', year, month, day].join('');\n}\n\n/** Converts a date object into a \"yyyymmdd\" if string prefixed with \"e\". */\nexport function getEventWrapperId(date: Date): string {\n const month = String(date.getMonth()).padStart(2, '0');\n const day = String(date.getDate()).padStart(2, '0');\n const year = date.getFullYear();\n return ['e', year, month, day].join('');\n}\n\n/** Returns a day element. */\nexport function getDayElement(day: DayOfWeek, locale?: string): HTMLElement {\n const element = document.createElement('div');\n element.classList.add(CALENDAR_CONSTANTS.classes.DAY);\n element.id = getDayId(day);\n element.setAttribute('role', 'columnheader');\n element.setAttribute('aria-label', getLocalizedDayOfWeek(day, 'long', locale));\n element.setAttribute('part', CALENDAR_CONSTANTS.parts.DAY);\n element.textContent = getLocalizedDayOfWeek(day, 'short', locale);\n return element;\n}\n\n/** Returns a date row element. */\nexport function getDateRow(dates: ICalendarDateConfig[], index: number, options?: ICalendarDateOptions): HTMLElement {\n const element = document.createElement('div');\n element.classList.add(CALENDAR_CONSTANTS.classes.DATE_VIEW_ROW);\n element.setAttribute('role', 'row');\n\n // Populate the row\n if (index > 0 && !dates[0]?.thisMonth) {\n // A row after the first that begins on another month is all spacers and should be hidden from the accessibility tree\n dates.forEach(d => element.appendChild(getDateSpacerElement(d.date)));\n element.setAttribute('aria-hidden', 'true');\n } else {\n dates.forEach(d => {\n let dateElement = d.thisMonth || options?.showOtherMonths ? getDateElement(d, options?.locale) : getDateSpacerElement(d.date);\n if ((d.thisMonth || options?.showOtherMonths) && options?.builder) {\n dateElement = options.builder(d, dateElement);\n }\n element.appendChild(dateElement);\n });\n }\n\n return element;\n}\n\n/** Returns a date element. */\nexport function getDateElement(date: ICalendarDateConfig, locale?: string): HTMLElement {\n const element = document.createElement('div');\n const rangeElement = document.createElement('div');\n const innerElement = document.createElement('div');\n const rippleElement = document.createElement('div');\n const day = date.date.getDay();\n\n element.id = getDateId(date.date);\n element.tabIndex = -1;\n element.classList.add(CALENDAR_CONSTANTS.classes.DATE);\n element.classList.toggle(CALENDAR_CONSTANTS.classes.DATE_TODAY, date.today);\n element.classList.toggle(CALENDAR_CONSTANTS.classes.DATE_SELECTED, date.selected);\n element.classList.toggle(CALENDAR_CONSTANTS.classes.DATE_OTHER_MONTH, !date.thisMonth);\n element.setAttribute('role', 'gridcell');\n element.setAttribute('aria-disabled', date.disabled.toString());\n element.setAttribute('aria-label', `${date.today ? 'Today, ' : ''}${date.date.toLocaleDateString(locale ?? navigator.language, {weekday: 'long', month: 'long', day: 'numeric', year: 'numeric'})}`);\n element.setAttribute('aria-selected', date.selected.toString());\n element.setAttribute(CALENDAR_CONSTANTS.attributes.DATA_DATE, date.date.toDateString());\n element.toggleAttribute('disabled', date.disabled);\n element.setAttribute('part', CALENDAR_CONSTANTS.parts.DATE_WRAPPER);\n \n // Add day of week part\n let dayOfWeekPart = '';\n switch (day) {\n case DayOfWeek.Sunday:\n dayOfWeekPart = CALENDAR_CONSTANTS.parts.SUNDAY;\n break;\n case DayOfWeek.Monday:\n dayOfWeekPart = CALENDAR_CONSTANTS.parts.MONDAY;\n break;\n case DayOfWeek.Tuesday:\n dayOfWeekPart = CALENDAR_CONSTANTS.parts.TUESDAY;\n break;\n case DayOfWeek.Wednesday:\n dayOfWeekPart = CALENDAR_CONSTANTS.parts.WEDNESDAY;\n break;\n case DayOfWeek.Thursday:\n dayOfWeekPart = CALENDAR_CONSTANTS.parts.THURSDAY;\n break;\n case DayOfWeek.Friday:\n dayOfWeekPart = CALENDAR_CONSTANTS.parts.FRIDAY;\n break;\n case DayOfWeek.Saturday:\n dayOfWeekPart = CALENDAR_CONSTANTS.parts.SATURDAY;\n break;\n }\n appendToAttribute(innerElement, 'part', dayOfWeekPart);\n appendToAttribute(innerElement, 'part', CALENDAR_CONSTANTS.parts.DATE);\n toggleOnAttribute(innerElement, 'part', CALENDAR_CONSTANTS.parts.TODAY, date.today);\n toggleOnAttribute(innerElement, 'part', CALENDAR_CONSTANTS.parts.DATE_OTHER_MONTH, !date.thisMonth);\n\n rangeElement.classList.add(CALENDAR_CONSTANTS.classes.RANGE_TARGET);\n element.appendChild(rangeElement);\n innerElement.textContent = getLocalizedDayOfMonth(date.date.getDate(), 'numeric', locale);\n innerElement.classList.add(CALENDAR_CONSTANTS.classes.DATE_INNER);\n element.appendChild(innerElement);\n rippleElement.classList.add('mdc-ripple-surface');\n element.appendChild(rippleElement);\n return element;\n}\n\n/** Returns a date spacer element. */\nexport function getDateSpacerElement(date: Date): HTMLElement {\n // This is a span to easiliy differentiate it from a date in CSS\n const element = document.createElement('span');\n element.classList.add(CALENDAR_CONSTANTS.classes.DATE_SPACER);\n element.id = getDateId(date);\n return element;\n}\n\n/** Returns an event wrapper element. */\nexport function getEventWrapperElement(date: Date): HTMLElement {\n const element = document.createElement('div');\n element.classList.add(CALENDAR_CONSTANTS.classes.EVENT_WRAPPER);\n element.id = getEventWrapperId(date);\n element.setAttribute('part', CALENDAR_CONSTANTS.parts.EVENT_WRAPPER);\n return element;\n}\n\n/** Returns an event element. */\nexport function getEventElement(event: ICalendarEvent, overflow?: boolean): HTMLElement {\n const element: IIconComponent = document.createElement('forge-icon');\n element.classList.add(CALENDAR_CONSTANTS.classes.EVENT);\n element.setAttribute('part', CALENDAR_CONSTANTS.parts.EVENT);\n if (overflow) {\n element.classList.add(CALENDAR_CONSTANTS.classes.EVENT_OVERFLOW);\n element.name = 'add';\n } else {\n const svg = '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"></path><path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2z\" stroke=\"var(--forge-calendar-event-stroke-color)\" stroke-width=\"4px\" paint-order=\"stroke\"></path></svg>';\n element.src = svg;\n element.setAttribute(CALENDAR_CONSTANTS.attributes.DATA_EVENT_THEME, event.color);\n }\n return element;\n}\n\n/** Returns a tooltip element. */\nexport function getTooltip(content: string): HTMLElement {\n const tooltip: ITooltipComponent = document.createElement('forge-tooltip');\n tooltip.text = content;\n tooltip.setAttribute('aria-hidden', 'true');\n return tooltip;\n}\n\n/** Returns a calendar header. */\nexport function getHeader(): HTMLElement {\n const element = document.createElement('div');\n element.classList.add(CALENDAR_CONSTANTS.classes.HEADER);\n element.id = CALENDAR_CONSTANTS.ids.HEADER;\n element.setAttribute('part', CALENDAR_CONSTANTS.parts.HEADER);\n\n const previousButton = document.createElement('forge-icon-button');\n const previousButtonElement = document.createElement('button');\n const previousIcon = document.createElement('forge-icon');\n const previousTooltip = document.createElement('forge-tooltip');\n previousButton.setAttribute('part', CALENDAR_CONSTANTS.parts.PREVIOUS_BUTTON);\n previousButtonElement.id = CALENDAR_CONSTANTS.ids.PREVIOUS_BUTTON;\n previousButtonElement.type = 'button';\n previousButtonElement.setAttribute('aria-label', 'Previous');\n previousIcon.setAttribute('name', 'keyboard_arrow_left');\n previousTooltip.id = CALENDAR_CONSTANTS.ids.PREVIOUS_BUTTON_TOOLTIP;\n previousTooltip.setAttribute('aria-hidden', 'true');\n previousTooltip.innerText = 'Previous';\n previousButton.appendChild(previousButtonElement);\n previousButton.appendChild(previousTooltip);\n previousButtonElement.appendChild(previousIcon);\n\n const nextButton = document.createElement('forge-icon-button');\n const nextButtonElement = document.createElement('button');\n const nextIcon = document.createElement('forge-icon');\n const nextTooltip = document.createElement('forge-tooltip');\n nextButton.setAttribute('part', CALENDAR_CONSTANTS.parts.NEXT_BUTTON);\n nextButtonElement.id = CALENDAR_CONSTANTS.ids.NEXT_BUTTON;\n nextButtonElement.type = 'button';\n nextButtonElement.setAttribute('aria-label', 'Next');\n nextIcon.setAttribute('name', 'keyboard_arrow_right');\n nextTooltip.id = CALENDAR_CONSTANTS.ids.NEXT_BUTTON_TOOLTIP;\n nextTooltip.setAttribute('aria-hidden', 'true');\n nextTooltip.innerText = 'Next';\n nextButton.appendChild(nextButtonElement);\n nextButton.appendChild(nextTooltip);\n nextButtonElement.appendChild(nextIcon);\n\n const monthButton = document.createElement('forge-button');\n const monthButtonElement = document.createElement('button');\n monthButton.setAttribute('part', CALENDAR_CONSTANTS.parts.MONTH_BUTTON);\n monthButtonElement.id = CALENDAR_CONSTANTS.ids.MONTH_BUTTON;\n monthButtonElement.type = 'button';\n monthButtonElement.setAttribute('aria-pressed', 'false');\n monthButton.appendChild(monthButtonElement);\n\n const yearButton = document.createElement('forge-button');\n const yearButtonElement = document.createElement('button');\n yearButton.setAttribute('part', CALENDAR_CONSTANTS.parts.YEAR_BUTTON);\n yearButtonElement.id = CALENDAR_CONSTANTS.ids.YEAR_BUTTON;\n yearButtonElement.type = 'button';\n yearButtonElement.setAttribute('aria-pressed', 'false');\n yearButton.appendChild(yearButtonElement);\n\n // TODO: change order of month and year based on locale\n const centerContainer = document.createElement('div');\n centerContainer.setAttribute('aria-live', 'polite');\n centerContainer.appendChild(monthButton);\n centerContainer.appendChild(yearButton);\n\n element.appendChild(previousButton);\n element.appendChild(centerContainer);\n element.appendChild(nextButton);\n return element;\n}\n\n/** Returns content for the month button. */\nexport function getMonthButtonContent(month: number, locale?: string): HTMLElement[] {\n const span = document.createElement('span');\n const icon = document.createElement('forge-icon');\n span.innerHTML = getLocalizedMonth(month, 'long', locale);\n icon.setAttribute('name', 'arrow_drop_down');\n return [span, icon];\n}\n\n/** Returns content for the year button. */\nexport function getYearButtonContent(year: number, locale?: string): HTMLElement[] {\n const span = document.createElement('span');\n const icon = document.createElement('forge-icon');\n span.innerHTML = getLocalizedYear(year, 'numeric', locale);\n icon.setAttribute('name', 'arrow_drop_down');\n return [span, icon];\n}\n\n/** Returns a hidden, accessible header. */\nexport function getAccessibleHeader(): HTMLElement {\n const element = document.createElement('div');\n element.id = CALENDAR_CONSTANTS.ids.ACCESSIBLE_HEADER;\n element.setAttribute('aria-live', 'polite');\n\n const month = document.createElement('span');\n month.id = CALENDAR_CONSTANTS.ids.ACCESSIBLE_MONTH;\n\n const year = document.createElement('span');\n year.id = CALENDAR_CONSTANTS.ids.ACCESSIBLE_YEAR;\n\n // TODO: change order of month and year based on locale\n element.appendChild(month);\n element.appendChild(year);\n return element;\n}\n\n/** Returns a calendar footer. */\nexport function getFooter(): HTMLElement {\n const element = document.createElement('div');\n element.id = CALENDAR_CONSTANTS.ids.FOOTER;\n element.classList.add(CALENDAR_CONSTANTS.classes.FOOTER);\n element.setAttribute('part', CALENDAR_CONSTANTS.parts.FOOTER);\n return element;\n}\n\n/** Returns a clear button. */\nexport function getClearButton(): HTMLElement {\n const clearButton = document.createElement('forge-button');\n const clearButtonElement = document.createElement('button');\n clearButton.id = CALENDAR_CONSTANTS.ids.CLEAR_BUTTON;\n clearButton.setAttribute('part', CALENDAR_CONSTANTS.parts.CLEAR_BUTTON);\n clearButtonElement.type = 'button';\n clearButtonElement.innerText = 'Clear';\n clearButton.appendChild(clearButtonElement);\n return clearButton;\n}\n\n/** Returns a today button. */\nexport function getTodayButton(): HTMLElement {\n const todayButton = document.createElement('forge-button');\n const todayButtonElement = document.createElement('button');\n todayButton.id = CALENDAR_CONSTANTS.ids.TODAY_BUTTON;\n todayButton.setAttribute('part', CALENDAR_CONSTANTS.parts.TODAY_BUTTON);\n todayButtonElement.type = 'button';\n todayButtonElement.innerText = 'Today';\n todayButton.appendChild(todayButtonElement);\n return todayButton;\n}\n\n/** Checks whether an event originated from a date element, returning the element if it did. */\nexport function eventIncludesDate(evt: Event, includeDisabled?: boolean): HTMLElement | null {\n const element = getEventPath(evt).find(p => p.classList && p.classList.contains(CALENDAR_CONSTANTS.classes.DATE));\n if (!element || (!includeDisabled && element.hasAttribute('disabled'))) {\n return null;\n }\n return element;\n}\n\n/** Checks whether an event originated from an element with the given id, returning the element if it did. */\nexport function eventIncludesElement(evt: Event, id: string): HTMLElement | null {\n const element = getEventPath(evt).find(p => p.id === id);\n return element ?? null;\n}\n\n/** Sets the tabindex on a date element. */\nexport function setTabindexOnElement(element: HTMLElement, value: number, setFocus: boolean, preventFocus?: boolean): void {\n element.tabIndex = preventFocus ? -1 : value;\n element.classList.toggle(CALENDAR_CONSTANTS.classes.MDC_RIPPLE_UPGRADED_FOCUSED, preventFocus && value > -1);\n if (value > -1 && setFocus && !preventFocus) {\n element.focus();\n } else {\n element.blur();\n }\n}\n", "export interface ICalendarDropdownPopupConfig {\n activeChangeCallback?: (id: string) => void;\n closeCallback?: () => void;\n popupClasses?: string | string[] | null;\n}\n\nconst classes = {\n POPUP: `forge-calendar-dropdown__popup`\n};\n\nexport const CALENDAR_DROPDOWN_CONSTANTS = {\n classes\n};\n", "import { addClass, isArray, createVisuallyHiddenElement } from '@tylertech/forge-core';\n\nimport { IPopupComponent, PopupAnimationType, POPUP_CONSTANTS } from '../../popup';\nimport { ICalendarComponent } from '../calendar';\nimport { CALENDAR_CONSTANTS, ICalendarFocusChangeEventData } from '../calendar-constants';\nimport { getDateId } from '../calendar-dom-utils';\nimport { CALENDAR_DROPDOWN_CONSTANTS } from './calendar-dropdown-constants';\n\nexport interface ICalendarDropdown {\n calendar: ICalendarComponent | undefined;\n dropdownElement: IPopupComponent | undefined;\n id: string;\n targetElement: HTMLElement;\n popupClasses: string | string[] | null;\n locale: string | undefined;\n isOpen: boolean;\n activeChangeCallback: ((id: string) => void) | undefined;\n closeCallback: (() => void) | undefined;\n open(config: Partial<ICalendarComponent>): void;\n close(): void;\n destroy(): void;\n propagateKeyboardEvent(evt: KeyboardEvent): void;\n}\n\nexport class CalendarDropdown implements ICalendarDropdown {\n public calendar: ICalendarComponent | undefined;\n public dropdownElement: IPopupComponent | undefined;\n public id: string;\n public targetElement: HTMLElement;\n public activeChangeCallback: ((id: string) => void) | undefined;\n public closeCallback: (() => void) | undefined;\n\n private _announcerElement: HTMLElement | undefined;\n private _popupClasses: string[] = [];\n\n public get isOpen(): boolean {\n return this.dropdownElement?.open ?? false;\n }\n\n public get popupClasses(): string | string[] | null {\n return this._popupClasses;\n }\n public set popupClasses(value: string | string[] | null) {\n this._popupClasses = !!value ? isArray(value) ? [...value as string[]] : [value as string] : [];\n }\n\n public get locale(): string | undefined {\n return this.calendar?.locale;\n }\n public set locale(value: string | undefined) {\n if (this.calendar) {\n this.calendar.locale = value;\n }\n }\n \n constructor(targetElement: HTMLElement, id: string) {\n this.targetElement = targetElement;\n this.id = id;\n }\n\n public close(): void {\n if (!this.dropdownElement) {\n return;\n }\n this.dropdownElement.open = false;\n this.dropdownElement = undefined;\n this.calendar = undefined;\n }\n\n public destroy(): void {\n this.close();\n }\n\n public open(config: Partial<ICalendarComponent>): void {\n // Create calendar element\n this.calendar = this._createCalendar(config);\n this._announcerElement = createVisuallyHiddenElement();\n (this._announcerElement as HTMLElement).id = `${this.id}-activedescendant`;\n\n // Create dropdown element\n this.dropdownElement = this._createDropdown();\n this.dropdownElement.appendChild(this.calendar);\n this.dropdownElement.appendChild(this._announcerElement as HTMLElement);\n this.dropdownElement.static = true;\n\n // Add a listener for when the active descendent is updated\n this.calendar.addEventListener(CALENDAR_CONSTANTS.events.FOCUS_CHANGE, (evt: CustomEvent<ICalendarFocusChangeEventData>) => {\n let id = `${this.id}-activedescendent-`;\n switch (evt.detail.type) {\n case 'date':\n id += getDateId(evt.detail.value as Date);\n break;\n case 'month':\n id += `month-${evt.detail.value.toString()}`;\n break;\n case 'year':\n id += `year-${evt.detail.value.toString()}`;\n break;\n }\n this.activeChangeCallback?.call(this, id);\n if (this._announcerElement) {\n this._announcerElement.id = id;\n this._announcerElement.setAttribute('aria-selected', evt.detail.selected.toString());\n this._announcerElement.textContent = evt.detail.text;\n }\n });\n\n // Open the popup\n this.dropdownElement.open = true;\n\n // Attempt to re-layout the calendar to account for updates in rendering during scale\n // transition within popup (fixes ripple alignment... etc.)\n window.requestAnimationFrame(() => {\n setTimeout(() => {\n if (this.dropdownElement && this.dropdownElement.open && this.calendar && this.calendar.isConnected) {\n this.calendar.layout();\n }\n }, POPUP_CONSTANTS.numbers.ANIMATION_DURATION);\n });\n }\n\n public propagateKeyboardEvent(evt: KeyboardEvent): void {\n this.calendar?.handleKey(evt);\n }\n\n private _createCalendar(config: Partial<ICalendarComponent>): ICalendarComponent {\n const calendarElement = document.createElement(CALENDAR_CONSTANTS.elementName);\n Object.assign(calendarElement, config);\n return calendarElement;\n }\n\n private _createDropdown(): IPopupComponent {\n const popupElement = document.createElement(POPUP_CONSTANTS.elementName) as IPopupComponent;\n popupElement.targetElement = this.targetElement;\n popupElement.placement = 'bottom-start';\n popupElement.animationType = PopupAnimationType.Menu;\n popupElement.classList.add(CALENDAR_DROPDOWN_CONSTANTS.classes.POPUP);\n popupElement.id = this.id;\n addClass(this._popupClasses, popupElement);\n\n popupElement.addEventListener(POPUP_CONSTANTS.events.CLOSE, () => {\n if (this.closeCallback) {\n this.closeCallback();\n }\n });\n\n return popupElement;\n }\n}\n"],
5
- "mappings": "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",
6
- "names": ["elementName", "COMPONENT_NAME_PREFIX", "observedAttributes", "attributes", "__spreadProps", "__spreadValues", "classes", "ids", "weekdayParts", "parts", "selectors", "CALENDAR_MENU_CONSTANTS", "TOOLTIP_CONSTANTS", "events", "numbers", "CALENDAR_CONSTANTS", "DayOfWeek", "CalendarMonthFocus", "getLocalizedDayOfWeek", "day", "format", "locale", "getLocalizedDayOfMonth", "date", "getLocalizedMonth", "month", "getLocalizedYear", "year", "getFirstDayOfWeekForLocale", "localeParts", "language", "region", "saturdayRegions", "sundayRegions", "saturdayLanguages", "sundayLanguages", "getWeekendDaysForLocale", "isRtlLocale", "l", "getDayId", "day", "getDateId", "date", "month", "getEventWrapperId", "getDayElement", "locale", "element", "CALENDAR_CONSTANTS", "getLocalizedDayOfWeek", "getDateRow", "dates", "index", "options", "_a", "d", "getDateSpacerElement", "dateElement", "getDateElement", "rangeElement", "innerElement", "rippleElement", "dayOfWeekPart", "appendToAttribute", "toggleOnAttribute", "getLocalizedDayOfMonth", "getEventWrapperElement", "getEventElement", "event", "overflow", "svg", "getTooltip", "content", "tooltip", "getHeader", "previousButton", "previousButtonElement", "previousIcon", "previousTooltip", "nextButton", "nextButtonElement", "nextIcon", "nextTooltip", "monthButton", "monthButtonElement", "yearButton", "yearButtonElement", "centerContainer", "getMonthButtonContent", "span", "icon", "getLocalizedMonth", "getYearButtonContent", "year", "getLocalizedYear", "getAccessibleHeader", "getFooter", "getClearButton", "clearButton", "clearButtonElement", "getTodayButton", "todayButton", "todayButtonElement", "eventIncludesDate", "evt", "includeDisabled", "getEventPath", "p", "eventIncludesElement", "id", "setTabindexOnElement", "value", "setFocus", "preventFocus", "classes", "CALENDAR_DROPDOWN_CONSTANTS", "CalendarDropdown", "targetElement", "id", "_a", "_b", "value", "isArray", "config", "createVisuallyHiddenElement", "CALENDAR_CONSTANTS", "evt", "getDateId", "POPUP_CONSTANTS", "calendarElement", "popupElement", "CALENDAR_DROPDOWN_CONSTANTS", "addClass"]
4
+ "sourcesContent": ["import { TOOLTIP_CONSTANTS } from '../tooltip/tooltip-constants';\nimport { COMPONENT_NAME_PREFIX } from '../constants';\nimport { CALENDAR_MENU_CONSTANTS } from './calendar-menu';\nimport { DateRange } from './core/date-range';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}calendar`;\n\nconst observedAttributes = {\n ALLOW_SINGLE_DATE_RANGE: 'allow-single-date-range',\n CLEAR_BUTTON: 'clear-button',\n CONSTRAIN_TO_ENABLED: 'constrain-to-enabled',\n FIRST_DAY_OF_WEEK: 'first-day-of-week',\n FIXED_HEIGHT: 'static-height',\n LIST_YEARS: 'list-years',\n LOCALE: 'locale',\n MAX: 'max',\n MENU_ANIMATION: 'menu-animation',\n MIN: 'min',\n MODE: 'mode',\n MONTH: 'month',\n PREVENT_FOCUS: 'prevent-focus',\n READONLY: 'readonly',\n SELECTION_FOLLOWS_MONTH: 'selection-follows-month',\n SHOW_HEADER: 'show-header',\n SHOW_OTHER_MONTHS: 'show-other-months',\n SHOW_TODAY: 'show-today',\n TODAY_BUTTON: 'today-button',\n VIEW: 'view',\n YEAR: 'year',\n YEAR_RANGE: 'year-range'\n};\n\nconst attributes = {\n ...observedAttributes,\n DATA_DATE: 'data-date',\n DATA_EVENT_THEME: 'data-event-theme',\n POPUP_CONTEXT: 'forge-popup-context'\n};\n\nconst classes = {\n ALLOW_SINGLE_DATE_RANGE: 'forge-calendar--allow-single-date-range',\n DATE: 'forge-calendar__date',\n DATE_GRID: 'forge-calendar__date-grid',\n DATE_INNER: 'forge-calendar__date__inner',\n DATE_OTHER_MONTH: 'forge-calendar__date--other-month',\n DATE_SPACER: 'forge-calendar__date-spacer',\n DATE_SELECTED: 'forge-calendar__date--selected',\n DATE_TODAY: 'forge-calendar__date--today',\n DATE_VIEW: 'forge-calendar__date-view',\n DATE_VIEW_ROW: 'forge-calendar__date-view__row',\n DATE_WRAPPER: 'forge-calendar__date-wrapper',\n DAY: 'forge-calendar__day',\n EVENT: 'forge-calendar__event',\n EVENT_OVERFLOW: 'forge-calendar__event--overflow',\n EVENT_WRAPPER: 'forge-calendar__event__wrapper',\n FIXED_HEIGHT: 'forge-calendar--fixed-height',\n FOOTER: 'forge-calendar__footer',\n HEADER: 'forge-calendar__header',\n MDC_RIPPLE_UPGRADED_FOCUSED: 'mdc-ripple-upgraded--background-focused',\n MONTH_MENU_OPEN: 'forge-calendar--month-menu-open',\n PREVENT_FOCUS: 'forge-calendar--prevent-focus',\n RANGE: 'forge-calendar__range',\n RANGE_END: 'forge-calendar__range--end',\n RANGE_START: 'forge-calendar__range--start',\n RANGE_TARGET: 'forge-calendar__range__target',\n READONLY: 'forge-calendar--readonly',\n RTL: 'forge-calendar--rtl',\n SHOW_OTHER_MONTHS: 'forge-calendar--show-other-months',\n SHOW_TODAY: 'forge-calendar--show-today',\n VIEW: 'forge-calendar__view',\n YEAR_MENU_OPEN: 'forge-calendar--year-menu-open'\n};\n\nconst ids = {\n ACCESSIBLE_HEADER: 'accessible-header',\n ACCESSIBLE_MONTH: 'accessible-month',\n ACCESSIBLE_YEAR: 'accessible-year',\n CLEAR_BUTTON: 'clear-button',\n DATE_GRID: 'date-grid',\n DATE_VIEW: 'date-view',\n DAY_ROW: 'day-row',\n FOOTER: 'footer',\n HEADER: 'header',\n MENU: 'menu',\n MONTH_BUTTON: 'month-button',\n NEXT_BUTTON: 'next-button',\n NEXT_BUTTON_TOOLTIP: 'next-button-tooltip',\n PREVIOUS_BUTTON: 'previous-button',\n PREVIOUS_BUTTON_TOOLTIP: 'previous-button-tooltip',\n TODAY_BUTTON: 'today-button',\n YEAR_BUTTON: 'year-button'\n};\n\nconst weekdayParts = {\n SUNDAY: 'sunday',\n MONDAY: 'monday',\n TUESDAY: 'tuesday',\n WEDNESDAY: 'wednesday',\n THURSDAY: 'thursday',\n FRIDAY: 'friday',\n SATURDAY: 'saturday'\n};\n\nconst parts = {\n ...weekdayParts,\n CLEAR_BUTTON: 'clear-button',\n DATE: 'date',\n DATE_OTHER_MONTH: 'date-other-month',\n DATE_VIEW: 'date-view',\n DATE_WRAPPER: 'date-wrapper',\n DAY: 'day',\n EVENT: 'event',\n EVENT_WRAPPER: 'event-wrapper',\n FOOTER: 'footer',\n HEADER: 'header',\n MONTH_BUTTON: 'month-button',\n MONTH_BUTTON_ELEMENT: 'month-button-element',\n NEXT_BUTTON: 'next-button',\n PREVIOUS_BUTTON: 'previous-button',\n RANGE: 'range',\n RANGE_END: 'range-end',\n RANGE_START: 'range-start',\n TODAY: 'today',\n TODAY_BUTTON: 'today-button',\n WEEKEND: 'weekend',\n YEAR_BUTTON: 'year-button',\n YEAR_BUTTON_ELEMENT: 'year-button-element'\n};\n\nconst selectors = {\n ACCESSIBLE_HEADER: `#${ids.ACCESSIBLE_HEADER}`,\n ACCESSIBLE_MONTH: `#${ids.ACCESSIBLE_MONTH}`,\n ACCESSIBLE_YEAR: `#${ids.ACCESSIBLE_YEAR}`,\n CALENDAR: '.forge-calendar',\n CLEAR_BUTTON: `#${ids.CLEAR_BUTTON}`,\n DATE: `.${classes.DATE}`,\n DATE_GRID: `#${ids.DATE_GRID}`,\n DATE_INNER: `.${classes.DATE_INNER}`,\n DATE_OTHER_MONTH: `.${classes.DATE_OTHER_MONTH}`,\n DATE_SPACER: `.${classes.DATE_SPACER}`,\n DATE_SELECTED: `.${classes.DATE_SELECTED}`,\n DATE_TODAY: `.${classes.DATE_TODAY}`,\n DATE_VIEW: `#${ids.DATE_VIEW}`,\n DATE_WRAPPER: `.${classes.DATE_WRAPPER}`,\n DAY_ROW: `#${ids.DAY_ROW}`,\n EVENT_WRAPPER: `.${classes.EVENT_WRAPPER}`,\n FOOTER: `#${ids.FOOTER}`,\n HEADER: `#${ids.HEADER}`,\n MENU: CALENDAR_MENU_CONSTANTS.elementName,\n MONTH_BUTTON: `#${ids.MONTH_BUTTON}`,\n NEXT_BUTTON: `#${ids.NEXT_BUTTON}`,\n NEXT_BUTTON_TOOLTIP: `#${ids.NEXT_BUTTON_TOOLTIP}`,\n PREVIOUS_BUTTON: `#${ids.PREVIOUS_BUTTON}`,\n PREVIOUS_BUTTON_TOOLTIP: `#${ids.PREVIOUS_BUTTON_TOOLTIP}`,\n RANGE: `.${classes.RANGE}`,\n RANGE_END: `.${classes.RANGE_END}`,\n RANGE_START: `.${classes.RANGE_START}`,\n TODAY_BUTTON: `#${ids.TODAY_BUTTON}`,\n TOOLTIP: TOOLTIP_CONSTANTS.elementName,\n VIEW: '#view',\n YEAR_BUTTON: `#${ids.YEAR_BUTTON}`\n};\n\nconst events = {\n DATE_SELECT: `${elementName}-date-select`,\n FOCUS_CHANGE: `${elementName}-focus-change`,\n MONTH_CHANGE: `${elementName}-month-change`,\n VIEW_CHANGE: `${elementName}-view-change`\n};\n\nconst numbers = {\n DEFAULT_MAX_YEAR_OFFSET: 50,\n DEFAULT_MIN_YEAR_OFFSET: 50,\n FINAL_WEEK_BEGIN_INDEX: 35,\n MONTH_LENGTH: 42,\n PENULTIMATE_WEEK_BEGIN_INDEX: 28,\n WEEK_LENGTH: 7,\n YEARS_IN_VIEW: 20\n};\n\nexport const CALENDAR_CONSTANTS = {\n elementName,\n attributes,\n classes,\n ids,\n parts,\n selectors,\n events,\n numbers\n};\n\nexport type CalendarDateBuilder = (date: ICalendarDateConfig, element: HTMLElement) => HTMLElement;\nexport type CalendarDateSelectCallback = (date: ICalendarDate) => boolean | Promise<boolean>;\nexport type CalendarDayBuilder = (day: DayOfWeek, element: HTMLElement) => HTMLElement;\nexport type CalendarDisabledDateBuilder = (date: Date) => boolean;\nexport type CalendarEventBuilder = (date: Date) => ICalendarEvent[] | ICalendarEvent | null;\nexport type CalendarTooltipBuilder = (date: ICalendarDate, content: string) => string | null;\n\nexport type CalendarMode = 'single' | 'multiple' | 'range';\nexport type CalendarView = 'date' | 'month' | 'year';\nexport type RangeSelectionState = 'none' | 'from' | 'to';\nexport type CalendarEventColor = 'primary' | 'secondary' | 'blue' | 'light-green' | 'cyan' | 'teal' | 'orange' | 'blue-grey' | 'grey' | 'red' | 'pink' | 'purple' | 'light-blue' | 'deep-purple' | 'green' | 'lime' | 'yellow' | 'brown' | 'deep-orange';\n\nexport interface ICalendarDate {\n date: Date;\n selected: boolean;\n events: ICalendarEvent[];\n}\n\nexport interface ICalendarDateConfig {\n date: Date;\n selected: boolean;\n today: boolean;\n thisMonth: boolean;\n disabled: boolean;\n}\n\nexport interface ICalendarDateOptions {\n builder?: CalendarDateBuilder;\n locale?: string;\n showOtherMonths?: boolean;\n}\n\nexport interface ICalendarDayOptions {\n builder?: CalendarDayBuilder;\n locale?: string;\n}\n\nexport interface ICalendarEvent {\n date: Date;\n label: string;\n color: CalendarEventColor | string;\n}\n\nexport interface ICalendarDateSelectEventData {\n date: Date | null;\n selected: boolean;\n range?: DateRange;\n rangeSelectionState?: RangeSelectionState;\n type: CalendarView;\n}\n\nexport interface ICalendarMonthChangeEventData {\n month: number;\n userSelected: boolean; // Indicates whether event is from explicit selection or regular navigation\n year: number;\n}\n\nexport interface ICalendarFocusChangeEventData {\n selected: boolean;\n text: string;\n type: CalendarView;\n value: Date | number;\n}\n\nexport interface ICalendarNumberRange {\n max: number;\n min: number;\n}\n\nexport interface ICalendarDisabledDateParams {\n builder: CalendarDisabledDateBuilder | undefined;\n disabledDates: Date[];\n disabledDaysOfWeek: DayOfWeek[];\n maxDate: Date | null;\n minDate: Date | null;\n otherMonth?: boolean;\n}\n\nexport interface ICalendarMenuMonthConfig {\n locale?: string;\n max: Date | null;\n min: Date | null;\n selectedMonth: number;\n selectedYear: number;\n}\n\nexport interface ICalendarMenuYearConfig {\n locale?: string;\n max: number;\n min: number;\n selectedYear: number;\n yearInView: number;\n}\n\nexport enum DayOfWeek {\n Sunday = 0,\n Monday = 1,\n Tuesday = 2,\n Wednesday = 3,\n Thursday = 4,\n Friday = 5,\n Saturday = 6\n}\n\nexport enum CalendarMonthFocus {\n First = 1,\n Last = 2,\n Current = 3\n}\n", "// TODO: implement year before month support\n// TODO: use a more robust strategy to get language and region parts from a locale, like the Intl API (in TypeScript 4.1.2 and es2020.intl)\n\nimport { DayOfWeek } from './calendar-constants';\n\n/** Returns a localized day name. */\nexport function getLocalizedDayOfWeek(day: DayOfWeek, format: 'long' | 'short' | 'narrow' | undefined, locale?: string): string {\n if (!locale) {\n locale = navigator.language;\n }\n // January 2017 starts on a Sunday\n return new Date(2017, 0, day + 1).toLocaleString(locale, {weekday: format});\n}\n\n/** Returns a localized date of the month. */\nexport function getLocalizedDayOfMonth(date: number, format: 'numeric' | '2-digit' | undefined, locale?: string): string {\n if (!locale) {\n locale = navigator.language;\n }\n return new Date(1970, 0, date).toLocaleDateString(locale, {day: format});\n}\n\n/** Returns a localized month name. */\nexport function getLocalizedMonth(month: number, format: 'long' | 'short' | 'narrow' | 'numeric' | '2-digit' | undefined, locale?: string): string {\n if (!locale) {\n locale = navigator.language;\n }\n return new Date(1970, month, 1).toLocaleString(locale, {month: format});\n}\n\n/** Returns a localized year name. */\nexport function getLocalizedYear(year: number, format: 'numeric' | '2-digit' | undefined, locale?: string): string {\n if (!locale) {\n locale = navigator.language;\n }\n return new Date(year, 0, 1).toLocaleDateString(locale, {year: format});\n}\n\n/** Returns the first day of week for a locale. */\nexport function getFirstDayOfWeekForLocale(locale?: string): DayOfWeek {\n if (!locale) {\n locale = navigator.language;\n }\n const localeParts = locale.match(/^([a-z]{2,3})(?:-([a-z]{3})(?=$|-))?(?:-([a-z]{4})(?=$|-))?(?:-([a-z]{2}|\\d{3})(?=$|-))?/i);\n if (!localeParts || !localeParts.length) {\n return DayOfWeek.Monday;\n }\n\n const language = localeParts[1];\n const region = localeParts[4];\n const saturdayRegions = 'AEAFBHDJDZEGIQIRJOKWLYOMQASDSY'.match(/../g);\n const sundayRegions = 'AGARASAUBDBRBSBTBWBZCACNCODMDOETGTGUHKHNIDILINJMJPKEKHKRLAMHMMMOMTMXMZNINPPAPEPHPKPRPTPYSASGSVTHTTTWUMUSVEVIWSYEZAZW'.match(/../g);\n const saturdayLanguages = ['ar', 'arq', 'arz', 'fa'];\n const sundayLanguages = 'amasbndzengnguhehiidjajvkmknkolomhmlmrmtmyneomorpapssdsmsnsutatethtnurzhzu'.match(/../g);\n\n if (region) {\n if (sundayRegions && sundayRegions.includes(region)) {\n return DayOfWeek.Sunday;\n } else if (saturdayRegions && saturdayRegions.includes(region)) {\n return DayOfWeek.Saturday;\n } else {\n return DayOfWeek.Monday;\n }\n } else {\n if (sundayLanguages && sundayLanguages.includes(language)) {\n return DayOfWeek.Sunday;\n } else if (saturdayLanguages && saturdayLanguages.includes(language)) {\n return DayOfWeek.Saturday;\n } else {\n return DayOfWeek.Monday;\n }\n }\n}\n\n/** Returns an array of weekend days for a locale. */\nexport function getWeekendDaysForLocale(locale?: string): DayOfWeek[] {\n if (!locale) {\n locale = navigator.language;\n }\n const region: string = locale.split('-')[1];\n switch (region) {\n case 'DZ':\n case 'BH':\n case 'BD':\n case 'EG':\n case 'IQ':\n case 'IL':\n case 'JO':\n case 'KW':\n case 'LY':\n case 'MV': // Not consistent across Malaysia\n case 'MR':\n case 'NP':\n case 'OM':\n case 'QA':\n case 'SA':\n case 'SD':\n case 'SY':\n case 'AE': // Not consistent across UAE\n case 'YE':\n case 'AF': // Thursday morning is a workday\n case 'IR': // Thursday morning is a workday\n return [DayOfWeek.Thursday, DayOfWeek.Friday];\n case 'BN':\n return [DayOfWeek.Sunday, DayOfWeek.Friday];\n default:\n return [DayOfWeek.Sunday, DayOfWeek.Saturday];\n }\n}\n\n/** Returns whether a language is written right-to-left. */\nexport function isRtlLocale(locale?: string): boolean {\n if (!locale) {\n locale = navigator.language;\n }\n const rtlLocales: string[] = [\n 'ar',\n 'arc',\n 'ckb',\n 'dv',\n 'fa',\n 'ha',\n 'he',\n 'khw',\n 'ks',\n 'ps',\n 'sd',\n 'ur',\n 'uz-AF',\n 'yi'\n ];\n return rtlLocales.some(l => locale ? locale.startsWith(l) : false);\n}\n", "import { getEventPath, appendToAttribute, toggleOnAttribute } from '@tylertech/forge-core';\n\nimport { IIconComponent } from '../icon';\nimport { ITooltipComponent } from '../tooltip';\nimport { CALENDAR_CONSTANTS, DayOfWeek, ICalendarDateConfig, ICalendarDateOptions, ICalendarEvent } from './calendar-constants';\nimport { getLocalizedDayOfMonth, getLocalizedDayOfWeek, getLocalizedMonth, getLocalizedYear } from './calendar-locale-utils';\n\n/** Converts a day into an id string prefixed with \"d\". */\nexport function getDayId(day: DayOfWeek): string {\n return `d${day}`;\n}\n\n/** Converts a date object into a \"yyyymmdd\" id string prefixed with \"d\". */\nexport function getDateId(date: Date): string {\n const month = String(date.getMonth()).padStart(2, '0');\n const day = String(date.getDate()).padStart(2, '0');\n const year = date.getFullYear();\n return ['d', year, month, day].join('');\n}\n\n/** Converts a date object into a \"yyyymmdd\" if string prefixed with \"e\". */\nexport function getEventWrapperId(date: Date): string {\n const month = String(date.getMonth()).padStart(2, '0');\n const day = String(date.getDate()).padStart(2, '0');\n const year = date.getFullYear();\n return ['e', year, month, day].join('');\n}\n\n/** Returns a day element. */\nexport function getDayElement(day: DayOfWeek, locale?: string): HTMLElement {\n const element = document.createElement('div');\n element.classList.add(CALENDAR_CONSTANTS.classes.DAY);\n element.id = getDayId(day);\n element.setAttribute('role', 'columnheader');\n element.setAttribute('aria-label', getLocalizedDayOfWeek(day, 'long', locale));\n element.setAttribute('part', CALENDAR_CONSTANTS.parts.DAY);\n element.textContent = getLocalizedDayOfWeek(day, 'short', locale);\n return element;\n}\n\n/** Returns a date row element. */\nexport function getDateRow(dates: ICalendarDateConfig[], index: number, options?: ICalendarDateOptions): HTMLElement {\n const element = document.createElement('div');\n element.classList.add(CALENDAR_CONSTANTS.classes.DATE_VIEW_ROW);\n element.setAttribute('role', 'row');\n\n // Populate the row\n if (index > 0 && !dates[0]?.thisMonth) {\n // A row after the first that begins on another month is all spacers and should be hidden from the accessibility tree\n dates.forEach(d => element.appendChild(getDateSpacerElement(d.date)));\n element.setAttribute('aria-hidden', 'true');\n } else {\n dates.forEach(d => {\n let dateElement = d.thisMonth || options?.showOtherMonths ? getDateElement(d, options?.locale) : getDateSpacerElement(d.date);\n if ((d.thisMonth || options?.showOtherMonths) && options?.builder) {\n dateElement = options.builder(d, dateElement);\n }\n element.appendChild(dateElement);\n });\n }\n\n return element;\n}\n\n/** Returns a date element. */\nexport function getDateElement(date: ICalendarDateConfig, locale?: string): HTMLElement {\n const element = document.createElement('div');\n const rangeElement = document.createElement('div');\n const innerElement = document.createElement('div');\n const rippleElement = document.createElement('div');\n const day = date.date.getDay();\n\n element.id = getDateId(date.date);\n element.tabIndex = -1;\n element.classList.add(CALENDAR_CONSTANTS.classes.DATE);\n element.classList.toggle(CALENDAR_CONSTANTS.classes.DATE_TODAY, date.today);\n element.classList.toggle(CALENDAR_CONSTANTS.classes.DATE_SELECTED, date.selected);\n element.classList.toggle(CALENDAR_CONSTANTS.classes.DATE_OTHER_MONTH, !date.thisMonth);\n element.setAttribute('role', 'gridcell');\n element.setAttribute('aria-disabled', date.disabled.toString());\n element.setAttribute('aria-label', `${date.today ? 'Today, ' : ''}${date.date.toLocaleDateString(locale ?? navigator.language, {weekday: 'long', month: 'long', day: 'numeric', year: 'numeric'})}`);\n element.setAttribute('aria-selected', date.selected.toString());\n element.setAttribute(CALENDAR_CONSTANTS.attributes.DATA_DATE, date.date.toDateString());\n element.toggleAttribute('disabled', date.disabled);\n element.setAttribute('part', CALENDAR_CONSTANTS.parts.DATE_WRAPPER);\n \n // Add day of week part\n let dayOfWeekPart = '';\n switch (day) {\n case DayOfWeek.Sunday:\n dayOfWeekPart = CALENDAR_CONSTANTS.parts.SUNDAY;\n break;\n case DayOfWeek.Monday:\n dayOfWeekPart = CALENDAR_CONSTANTS.parts.MONDAY;\n break;\n case DayOfWeek.Tuesday:\n dayOfWeekPart = CALENDAR_CONSTANTS.parts.TUESDAY;\n break;\n case DayOfWeek.Wednesday:\n dayOfWeekPart = CALENDAR_CONSTANTS.parts.WEDNESDAY;\n break;\n case DayOfWeek.Thursday:\n dayOfWeekPart = CALENDAR_CONSTANTS.parts.THURSDAY;\n break;\n case DayOfWeek.Friday:\n dayOfWeekPart = CALENDAR_CONSTANTS.parts.FRIDAY;\n break;\n case DayOfWeek.Saturday:\n dayOfWeekPart = CALENDAR_CONSTANTS.parts.SATURDAY;\n break;\n }\n appendToAttribute(innerElement, 'part', dayOfWeekPart);\n appendToAttribute(innerElement, 'part', CALENDAR_CONSTANTS.parts.DATE);\n toggleOnAttribute(innerElement, 'part', CALENDAR_CONSTANTS.parts.TODAY, date.today);\n toggleOnAttribute(innerElement, 'part', CALENDAR_CONSTANTS.parts.DATE_OTHER_MONTH, !date.thisMonth);\n\n rangeElement.classList.add(CALENDAR_CONSTANTS.classes.RANGE_TARGET);\n element.appendChild(rangeElement);\n innerElement.textContent = getLocalizedDayOfMonth(date.date.getDate(), 'numeric', locale);\n innerElement.classList.add(CALENDAR_CONSTANTS.classes.DATE_INNER);\n element.appendChild(innerElement);\n rippleElement.classList.add('mdc-ripple-surface');\n element.appendChild(rippleElement);\n return element;\n}\n\n/** Returns a date spacer element. */\nexport function getDateSpacerElement(date: Date): HTMLElement {\n // This is a span to easiliy differentiate it from a date in CSS\n const element = document.createElement('span');\n element.classList.add(CALENDAR_CONSTANTS.classes.DATE_SPACER);\n element.id = getDateId(date);\n return element;\n}\n\n/** Returns an event wrapper element. */\nexport function getEventWrapperElement(date: Date): HTMLElement {\n const element = document.createElement('div');\n element.classList.add(CALENDAR_CONSTANTS.classes.EVENT_WRAPPER);\n element.id = getEventWrapperId(date);\n element.setAttribute('part', CALENDAR_CONSTANTS.parts.EVENT_WRAPPER);\n return element;\n}\n\n/** Returns an event element. */\nexport function getEventElement(event: ICalendarEvent, overflow?: boolean): HTMLElement {\n const element: IIconComponent = document.createElement('forge-icon');\n element.classList.add(CALENDAR_CONSTANTS.classes.EVENT);\n element.setAttribute('part', CALENDAR_CONSTANTS.parts.EVENT);\n if (overflow) {\n element.classList.add(CALENDAR_CONSTANTS.classes.EVENT_OVERFLOW);\n element.name = 'add';\n } else {\n const svg = '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M0 0h24v24H0z\" fill=\"none\"></path><path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2z\" stroke=\"var(--forge-calendar-event-stroke-color)\" stroke-width=\"4px\" paint-order=\"stroke\"></path></svg>';\n element.src = svg;\n element.setAttribute(CALENDAR_CONSTANTS.attributes.DATA_EVENT_THEME, event.color);\n }\n return element;\n}\n\n/** Returns a tooltip element. */\nexport function getTooltip(content: string): HTMLElement {\n const tooltip: ITooltipComponent = document.createElement('forge-tooltip');\n tooltip.text = content;\n tooltip.setAttribute('aria-hidden', 'true');\n return tooltip;\n}\n\n/** Returns a calendar header. */\nexport function getHeader(): HTMLElement {\n const element = document.createElement('div');\n element.classList.add(CALENDAR_CONSTANTS.classes.HEADER);\n element.id = CALENDAR_CONSTANTS.ids.HEADER;\n element.setAttribute('part', CALENDAR_CONSTANTS.parts.HEADER);\n\n const previousButton = document.createElement('forge-icon-button');\n const previousIcon = document.createElement('forge-icon');\n const previousTooltip = document.createElement('forge-tooltip');\n previousButton.setAttribute('part', CALENDAR_CONSTANTS.parts.PREVIOUS_BUTTON);\n previousButton.id = CALENDAR_CONSTANTS.ids.PREVIOUS_BUTTON;\n previousButton.type = 'button';\n previousButton.setAttribute('aria-label', 'Previous');\n previousIcon.setAttribute('name', 'keyboard_arrow_left');\n previousTooltip.id = CALENDAR_CONSTANTS.ids.PREVIOUS_BUTTON_TOOLTIP;\n previousTooltip.setAttribute('aria-hidden', 'true');\n previousTooltip.innerText = 'Previous';\n previousButton.appendChild(previousTooltip);\n previousButton.appendChild(previousIcon);\n\n const nextButton = document.createElement('forge-icon-button');\n const nextIcon = document.createElement('forge-icon');\n const nextTooltip = document.createElement('forge-tooltip');\n nextButton.setAttribute('part', CALENDAR_CONSTANTS.parts.NEXT_BUTTON);\n nextButton.id = CALENDAR_CONSTANTS.ids.NEXT_BUTTON;\n nextButton.type = 'button';\n nextButton.setAttribute('aria-label', 'Next');\n nextIcon.setAttribute('name', 'keyboard_arrow_right');\n nextTooltip.id = CALENDAR_CONSTANTS.ids.NEXT_BUTTON_TOOLTIP;\n nextTooltip.setAttribute('aria-hidden', 'true');\n nextTooltip.innerText = 'Next';\n nextButton.appendChild(nextTooltip);\n nextButton.appendChild(nextIcon);\n\n const monthButton = document.createElement('forge-button');\n monthButton.setAttribute('part', CALENDAR_CONSTANTS.parts.MONTH_BUTTON);\n monthButton.id = CALENDAR_CONSTANTS.ids.MONTH_BUTTON;\n monthButton.type = 'button';\n monthButton.setAttribute('aria-pressed', 'false');\n\n const yearButton = document.createElement('forge-button');\n yearButton.setAttribute('part', CALENDAR_CONSTANTS.parts.YEAR_BUTTON);\n yearButton.id = CALENDAR_CONSTANTS.ids.YEAR_BUTTON;\n yearButton.type = 'button';\n yearButton.setAttribute('aria-pressed', 'false');\n\n // TODO: change order of month and year based on locale\n const centerContainer = document.createElement('div');\n centerContainer.setAttribute('aria-live', 'polite');\n centerContainer.appendChild(monthButton);\n centerContainer.appendChild(yearButton);\n\n element.appendChild(previousButton);\n element.appendChild(centerContainer);\n element.appendChild(nextButton);\n return element;\n}\n\n/** Returns content for the month button. */\nexport function getMonthButtonContent(month: number, locale?: string): HTMLElement[] {\n const span = document.createElement('span');\n const icon = document.createElement('forge-icon');\n span.innerHTML = getLocalizedMonth(month, 'long', locale);\n icon.setAttribute('name', 'arrow_drop_down');\n return [span, icon];\n}\n\n/** Returns content for the year button. */\nexport function getYearButtonContent(year: number, locale?: string): HTMLElement[] {\n const span = document.createElement('span');\n const icon = document.createElement('forge-icon');\n span.innerHTML = getLocalizedYear(year, 'numeric', locale);\n icon.setAttribute('name', 'arrow_drop_down');\n return [span, icon];\n}\n\n/** Returns a hidden, accessible header. */\nexport function getAccessibleHeader(): HTMLElement {\n const element = document.createElement('div');\n element.id = CALENDAR_CONSTANTS.ids.ACCESSIBLE_HEADER;\n element.setAttribute('aria-live', 'polite');\n\n const month = document.createElement('span');\n month.id = CALENDAR_CONSTANTS.ids.ACCESSIBLE_MONTH;\n\n const year = document.createElement('span');\n year.id = CALENDAR_CONSTANTS.ids.ACCESSIBLE_YEAR;\n\n // TODO: change order of month and year based on locale\n element.appendChild(month);\n element.appendChild(year);\n return element;\n}\n\n/** Returns a calendar footer. */\nexport function getFooter(): HTMLElement {\n const element = document.createElement('div');\n element.id = CALENDAR_CONSTANTS.ids.FOOTER;\n element.classList.add(CALENDAR_CONSTANTS.classes.FOOTER);\n element.setAttribute('part', CALENDAR_CONSTANTS.parts.FOOTER);\n return element;\n}\n\n/** Returns a clear button. */\nexport function getClearButton(): HTMLElement {\n const clearButton = document.createElement('forge-button');\n clearButton.id = CALENDAR_CONSTANTS.ids.CLEAR_BUTTON;\n clearButton.setAttribute('part', CALENDAR_CONSTANTS.parts.CLEAR_BUTTON);\n clearButton.type = 'button';\n clearButton.innerText = 'Clear';\n return clearButton;\n}\n\n/** Returns a today button. */\nexport function getTodayButton(): HTMLElement {\n const todayButton = document.createElement('forge-button');\n todayButton.id = CALENDAR_CONSTANTS.ids.TODAY_BUTTON;\n todayButton.setAttribute('part', CALENDAR_CONSTANTS.parts.TODAY_BUTTON);\n todayButton.type = 'button';\n todayButton.innerText = 'Today';\n return todayButton;\n}\n\n/** Checks whether an event originated from a date element, returning the element if it did. */\nexport function eventIncludesDate(evt: Event, includeDisabled?: boolean): HTMLElement | null {\n const element = getEventPath(evt).find(p => p.classList && p.classList.contains(CALENDAR_CONSTANTS.classes.DATE));\n if (!element || (!includeDisabled && element.hasAttribute('disabled'))) {\n return null;\n }\n return element;\n}\n\n/** Checks whether an event originated from an element with the given id, returning the element if it did. */\nexport function eventIncludesElement(evt: Event, id: string): HTMLElement | null {\n const element = getEventPath(evt).find(p => p.id === id);\n return element ?? null;\n}\n\n/** Sets the tabindex on a date element. */\nexport function setTabindexOnElement(element: HTMLElement, value: number, setFocus: boolean, preventFocus?: boolean): void {\n element.tabIndex = preventFocus ? -1 : value;\n element.classList.toggle(CALENDAR_CONSTANTS.classes.MDC_RIPPLE_UPGRADED_FOCUSED, preventFocus && value > -1);\n if (value > -1 && setFocus && !preventFocus) {\n element.focus();\n } else {\n element.blur();\n }\n}\n", "export interface ICalendarDropdownPopupConfig {\n activeChangeCallback?: (id: string) => void;\n closeCallback?: () => void;\n popupClasses?: string | string[] | null;\n}\n\nconst classes = {\n POPUP: `forge-calendar-dropdown__popup`\n};\n\nexport const CALENDAR_DROPDOWN_CONSTANTS = {\n classes\n};\n", "import { addClass, isArray, createVisuallyHiddenElement } from '@tylertech/forge-core';\n\nimport { IPopupComponent, PopupAnimationType, POPUP_CONSTANTS } from '../../popup';\nimport { ICalendarComponent } from '../calendar';\nimport { CALENDAR_CONSTANTS, ICalendarFocusChangeEventData } from '../calendar-constants';\nimport { getDateId } from '../calendar-dom-utils';\nimport { CALENDAR_DROPDOWN_CONSTANTS } from './calendar-dropdown-constants';\n\nexport interface ICalendarDropdown {\n calendar: ICalendarComponent | undefined;\n dropdownElement: IPopupComponent | undefined;\n id: string;\n targetElement: HTMLElement;\n popupClasses: string | string[] | null;\n locale: string | undefined;\n isOpen: boolean;\n activeChangeCallback: ((id: string) => void) | undefined;\n closeCallback: (() => void) | undefined;\n open(config: Partial<ICalendarComponent>): void;\n close(): void;\n destroy(): void;\n propagateKeyboardEvent(evt: KeyboardEvent): void;\n}\n\nexport class CalendarDropdown implements ICalendarDropdown {\n public calendar: ICalendarComponent | undefined;\n public dropdownElement: IPopupComponent | undefined;\n public id: string;\n public targetElement: HTMLElement;\n public activeChangeCallback: ((id: string) => void) | undefined;\n public closeCallback: (() => void) | undefined;\n\n private _announcerElement: HTMLElement | undefined;\n private _popupClasses: string[] = [];\n\n public get isOpen(): boolean {\n return this.dropdownElement?.open ?? false;\n }\n\n public get popupClasses(): string | string[] | null {\n return this._popupClasses;\n }\n public set popupClasses(value: string | string[] | null) {\n this._popupClasses = !!value ? isArray(value) ? [...value as string[]] : [value as string] : [];\n }\n\n public get locale(): string | undefined {\n return this.calendar?.locale;\n }\n public set locale(value: string | undefined) {\n if (this.calendar) {\n this.calendar.locale = value;\n }\n }\n \n constructor(targetElement: HTMLElement, id: string) {\n this.targetElement = targetElement;\n this.id = id;\n }\n\n public close(): void {\n if (!this.dropdownElement) {\n return;\n }\n this.dropdownElement.open = false;\n this.dropdownElement = undefined;\n this.calendar = undefined;\n }\n\n public destroy(): void {\n this.close();\n }\n\n public open(config: Partial<ICalendarComponent>): void {\n // Create calendar element\n this.calendar = this._createCalendar(config);\n this._announcerElement = createVisuallyHiddenElement();\n (this._announcerElement as HTMLElement).id = `${this.id}-activedescendant`;\n\n // Create dropdown element\n this.dropdownElement = this._createDropdown();\n this.dropdownElement.appendChild(this.calendar);\n this.dropdownElement.appendChild(this._announcerElement as HTMLElement);\n this.dropdownElement.static = true;\n\n // Add a listener for when the active descendent is updated\n this.calendar.addEventListener(CALENDAR_CONSTANTS.events.FOCUS_CHANGE, (evt: CustomEvent<ICalendarFocusChangeEventData>) => {\n let id = `${this.id}-activedescendent-`;\n switch (evt.detail.type) {\n case 'date':\n id += getDateId(evt.detail.value as Date);\n break;\n case 'month':\n id += `month-${evt.detail.value.toString()}`;\n break;\n case 'year':\n id += `year-${evt.detail.value.toString()}`;\n break;\n }\n this.activeChangeCallback?.call(this, id);\n if (this._announcerElement) {\n this._announcerElement.id = id;\n this._announcerElement.setAttribute('aria-selected', evt.detail.selected.toString());\n this._announcerElement.textContent = evt.detail.text;\n }\n });\n\n // Open the popup\n this.dropdownElement.open = true;\n\n // Attempt to re-layout the calendar to account for updates in rendering during scale\n // transition within popup (fixes ripple alignment... etc.)\n window.requestAnimationFrame(() => {\n setTimeout(() => {\n if (this.dropdownElement && this.dropdownElement.open && this.calendar && this.calendar.isConnected) {\n this.calendar.layout();\n }\n }, POPUP_CONSTANTS.numbers.ANIMATION_DURATION);\n });\n }\n\n public propagateKeyboardEvent(evt: KeyboardEvent): void {\n this.calendar?.handleKey(evt);\n }\n\n private _createCalendar(config: Partial<ICalendarComponent>): ICalendarComponent {\n const calendarElement = document.createElement(CALENDAR_CONSTANTS.elementName);\n Object.assign(calendarElement, config);\n return calendarElement;\n }\n\n private _createDropdown(): IPopupComponent {\n const popupElement = document.createElement(POPUP_CONSTANTS.elementName) as IPopupComponent;\n popupElement.targetElement = this.targetElement;\n popupElement.placement = 'bottom-start';\n popupElement.animationType = PopupAnimationType.Menu;\n popupElement.classList.add(CALENDAR_DROPDOWN_CONSTANTS.classes.POPUP);\n popupElement.id = this.id;\n addClass(this._popupClasses, popupElement);\n\n popupElement.addEventListener(POPUP_CONSTANTS.events.CLOSE, () => {\n if (this.closeCallback) {\n this.closeCallback();\n }\n });\n\n return popupElement;\n }\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["elementName", "COMPONENT_NAME_PREFIX", "observedAttributes", "attributes", "__spreadProps", "__spreadValues", "classes", "ids", "weekdayParts", "parts", "selectors", "CALENDAR_MENU_CONSTANTS", "TOOLTIP_CONSTANTS", "events", "numbers", "CALENDAR_CONSTANTS", "DayOfWeek", "CalendarMonthFocus", "getLocalizedDayOfWeek", "day", "format", "locale", "getLocalizedDayOfMonth", "date", "getLocalizedMonth", "month", "getLocalizedYear", "year", "getFirstDayOfWeekForLocale", "localeParts", "language", "region", "saturdayRegions", "sundayRegions", "saturdayLanguages", "sundayLanguages", "getWeekendDaysForLocale", "isRtlLocale", "l", "getDayId", "day", "getDateId", "date", "month", "getEventWrapperId", "getDayElement", "locale", "element", "CALENDAR_CONSTANTS", "getLocalizedDayOfWeek", "getDateRow", "dates", "index", "options", "_a", "getDateSpacerElement", "dateElement", "getDateElement", "rangeElement", "innerElement", "rippleElement", "dayOfWeekPart", "appendToAttribute", "toggleOnAttribute", "getLocalizedDayOfMonth", "getEventWrapperElement", "getEventElement", "event", "overflow", "svg", "getTooltip", "content", "tooltip", "getHeader", "previousButton", "previousIcon", "previousTooltip", "nextButton", "nextIcon", "nextTooltip", "monthButton", "yearButton", "centerContainer", "getMonthButtonContent", "span", "icon", "getLocalizedMonth", "getYearButtonContent", "year", "getLocalizedYear", "getAccessibleHeader", "getFooter", "getClearButton", "clearButton", "getTodayButton", "todayButton", "eventIncludesDate", "evt", "includeDisabled", "getEventPath", "p", "eventIncludesElement", "id", "setTabindexOnElement", "value", "setFocus", "preventFocus", "classes", "CALENDAR_DROPDOWN_CONSTANTS", "CalendarDropdown", "targetElement", "id", "_a", "_b", "value", "isArray", "config", "createVisuallyHiddenElement", "CALENDAR_CONSTANTS", "evt", "getDateId", "POPUP_CONSTANTS", "calendarElement", "popupElement", "CALENDAR_DROPDOWN_CONSTANTS", "addClass"]
7
7
  }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ import{b as w,d as T}from"./chunk.STB2FEUA.js";import{a as k,p as x}from"./chunk.VFKHRAWD.js";import{k as v}from"./chunk.YA3RDJCV.js";import{a as y}from"./chunk.HSI7B43D.js";import{a as n}from"./chunk.NVUMRW44.js";import{a as I,b as g}from"./chunk.36F2GVWS.js";import{a as A,e as L,f as m}from"./chunk.JAWV5Y5T.js";import{u as E}from"./chunk.K7FPXAFS.js";import{k as l,n as u}from"./chunk.J2M2MXP2.js";import{a as h,d as a}from"./chunk.M3QDAYD2.js";var R=`${g}list`,H={ROLE:"role",STATIC:"static",NON_INTERACTIVE:"non-interactive",DISABLED:"disabled",DENSE:"dense",PROPAGATE_CLICK:"propagate-click",SELECTED_VALUE:"selected-value",INDENTED:"indented",TWO_LINE:"two-line",THREE_LINE:"three-line",WRAP:"wrap"},O=h({},H),c={elementName:R,attributes:O},C={list:"listitem",listbox:"option",menu:"menuitem"};var N=`${g}list-item`,S={HREF:"href",TARGET:"target",DOWNLOAD:"download",REL:"rel",STATIC:"static",NON_INTERACTIVE:"non-interactive",DISABLED:"disabled",SELECTED:"selected",ACTIVE:"active",VALUE:"value",DENSE:"dense",PROPAGATE_CLICK:"propagate-click",INDENTED:"indented",TWO_LINE:"two-line",THREE_LINE:"three-line",WRAP:"wrap"},z=h({},S),D={ROOT:"forge-list-item"},P={ROOT:`.${D.ROOT}`,CHECKBOX_RADIO_SELECTOR:":is(input[type=checkbox], input[type=radio], forge-checkbox):not(:disabled):not([forge-ignore])",SWITCH_SELECTOR:"forge-switch:not([disabled]):not([forge-ignore])",IGNORE:"[forge-ignore],[data-forge-ignore]"},M={SELECT:`${N}-select`},i={elementName:N,observedAttributes:S,attributes:z,classes:D,selectors:P,events:M};var p=class extends y{constructor(t){super(t);this._rootElement=m(t,i.selectors.ROOT),this._focusIndicatorElement=m(t,w.elementName),this._stateLayerElement=m(t,k.elementName)}initialize(){let t=this._getParentList();t&&this._inheritParentListProps(t),this._rootElement.tabIndex=this._component.nonInteractive||this._component.disabled?-1:0,this._component.hasAttribute("role")||this._setRole(t)}setHref(t){if(t){if(this._rootElement.tagName!=="A"){let s=this._createAnchorRootElement();this._rootElement=v(this._rootElement,s)}this._rootElement.href=t}else if(this._rootElement.tagName==="A"){let s=this._createDefaultRootElement();this._rootElement=v(this._rootElement,s)}}setAnchorTarget(t){this._rootElement.tagName==="A"&&(this._rootElement.target=t)}setAnchorDownload(t){this._rootElement.tagName==="A"&&(this._rootElement.download=t)}setAnchorRel(t){this._rootElement.tagName==="A"&&(this._rootElement.rel=t)}setNonInteractive(t){this._rootElement.tabIndex=t?-1:0,t?(this._focusIndicatorElement.remove(),this._stateLayerElement.remove()):this._rootElement.append(this._focusIndicatorElement,this._stateLayerElement)}setDisabled(t){this._rootElement.tabIndex=t?-1:0,E(this._component,t,"aria-disabled","true"),t?(this._focusIndicatorElement.remove(),this._stateLayerElement.remove()):this._rootElement.append(this._focusIndicatorElement,this._stateLayerElement)}setActive(t){this._focusIndicatorElement.active=t}trySelect(t){let s=this._getParentList();if((s==null?void 0:s.selectedValue)===void 0)return null;let d=(Array.isArray(s.selectedValue)?s.selectedValue:[s.selectedValue]).some(_=>u(_,t));return this.tryToggleSelectionControl(d),d}tryToggleSelectionControl(t){let s=this._component.querySelector(i.selectors.CHECKBOX_RADIO_SELECTOR);if(s){let r=typeof t=="boolean",d=s.checked;s.checked=r?t:!s.checked,(!r||d!==t)&&s.dispatchEvent(new Event("change",{bubbles:!0}))}else{let r=this._component.querySelector(i.selectors.SWITCH_SELECTOR);if(!r)return;let d=typeof t=="boolean",_=r.on;r.on=d?t:!r.on,(!d||_!==t)&&r.dispatchEvent(new CustomEvent("forge-switch-change",{bubbles:!0,detail:r.on}))}}isFocused(){return this._component.matches(":focus")}setFocus(){this._rootElement.focus({preventScroll:!0})}animateStateLayer(){this._stateLayerElement.playAnimation()}clickAnchor(){this._rootElement.tagName==="A"&&this._rootElement.click()}clickHost(){HTMLElement.prototype.click.call(this._component)}_createAnchorRootElement(){let t=document.createElement("a");return t.classList.add(i.classes.ROOT),t.setAttribute("part","root"),this._component.href&&(t.href=this._component.href),this._component.target&&(t.target=this._component.target),this._component.download&&(t.download=this._component.download),this._component.rel&&(t.rel=this._component.rel),t}_createDefaultRootElement(){let t=document.createElement("div");return t.classList.add(i.classes.ROOT),t.setAttribute("part","root"),t.tabIndex=this._component.nonInteractive||this._component.disabled?-1:0,t}_getParentList(){return this._component.closest(c.elementName)}_inheritParentListProps(t){(t.hasAttribute(c.attributes.NON_INTERACTIVE)||t.hasAttribute(c.attributes.STATIC))&&(this._component.nonInteractive=!0),t.hasAttribute(c.attributes.DISABLED)&&(this._component.disabled=!0),t.hasAttribute(c.attributes.DENSE)&&(this._component.dense=!0),t.getAttribute(c.attributes.PROPAGATE_CLICK)==="false"&&(this._component.propagateClick=!1),t.hasAttribute(c.attributes.INDENTED)&&(this._component.indented=!0),t.hasAttribute(c.attributes.TWO_LINE)&&(this._component.twoLine=!0),t.hasAttribute(c.attributes.THREE_LINE)&&(this._component.threeLine=!0)}_setRole(t){var d;let s=t==null?void 0:t.getAttribute("role"),r=(d=C[s])!=null?d:"listitem";this._component.setAttribute("role",r)}};var b=class{constructor(e){this._adapter=e;this._target="";this._download="";this._rel="";this._nonInteractive=!1;this._disabled=!1;this._selected=!1;this._active=!1;this._dense=!1;this._propagateClick=!0;this._indented=!1;this._twoLine=!1;this._threeLine=!1;this._wrap=!1;this._clickListener=this._onClick.bind(this),this._pointerDownListener=this._onPointerDown.bind(this),this._keydownListener=this._onKeydown.bind(this)}initialize(){this._adapter.initialize(),!this._nonInteractive&&!this._disabled&&(this._adapter.addHostListener("click",this._clickListener),this._adapter.addHostListener("keydown",this._keydownListener),this._propagateClick||this._adapter.addHostListener("pointerdown",this._pointerDownListener))}disconnect(){this._adapter.removeHostListener("click",this._clickListener),this._adapter.removeHostListener("pointerdown",this._pointerDownListener),this._adapter.removeHostListener("keydown",this._keydownListener)}setFocus(){this._adapter.setFocus()}click(){this._href?this._adapter.clickAnchor():this._adapter.clickHost()}_onPointerDown(e){this._adapter.isFocused()&&e.preventDefault()}_onKeydown(e){(e.key==="Enter"||e.key===" ")&&(!this._href&&e.key===" "&&e.preventDefault(),this._adapter.animateStateLayer(),this._select(e.target))}_onClick(e){this._select(e.target)}_select(e){let t=e==null?void 0:e.matches(i.selectors.IGNORE);if(this._nonInteractive||this._disabled||t)return;!this._adapter.isFocused()&&this._propagateClick&&this.setFocus(),e.matches(i.selectors.CHECKBOX_RADIO_SELECTOR)||this._adapter.tryToggleSelectionControl();let s={value:this._value,listItem:this._adapter.hostElement};this._adapter.emitHostEvent(i.events.SELECT,s)}get href(){return this._href}set href(e){this._href!==e&&(this._href=e,this._adapter.setHref(this._href),this._adapter.toggleHostAttribute(i.attributes.HREF,!!this._href,this._href))}get target(){return this._target}set target(e){this._target!==e&&(this._target=e,this._href&&this._adapter.setAnchorTarget(this._target),this._adapter.toggleHostAttribute(i.attributes.TARGET,!!this._target,this._target))}get download(){return this._download}set download(e){this._download!==e&&(this._download=e,this._adapter.setAnchorDownload(this._download),this._adapter.toggleHostAttribute(i.attributes.DOWNLOAD,!!this._download,this._download))}get rel(){return this._rel}set rel(e){this._rel!==e&&(this._rel=e,this._adapter.setAnchorRel(this._rel),this._adapter.toggleHostAttribute(i.attributes.REL,!!this._rel,this._rel))}get static(){return this.nonInteractive}set static(e){this.nonInteractive=e}get nonInteractive(){return this._nonInteractive}set nonInteractive(e){this._nonInteractive!==e&&(this._nonInteractive=e,this._nonInteractive?this._adapter.removeHostListener("click",this._clickListener):this._adapter.addHostListener("click",this._clickListener),this._adapter.setNonInteractive(this._nonInteractive),this._adapter.toggleHostAttribute(i.attributes.STATIC,this._nonInteractive),this._adapter.toggleHostAttribute(i.attributes.NON_INTERACTIVE,this._nonInteractive))}get disabled(){return this._disabled}set disabled(e){this._disabled!==e&&(this._disabled=e,this._disabled?this._adapter.removeHostListener("click",this._clickListener):this._adapter.addHostListener("click",this._clickListener),this._adapter.setDisabled(this._disabled),this._adapter.toggleHostAttribute(i.attributes.DISABLED,this._disabled))}get selected(){return this._selected}set selected(e){this._selected!==e&&(this._selected=e,this._adapter.tryToggleSelectionControl(this._selected),this._adapter.toggleHostAttribute(i.attributes.SELECTED,this._selected))}get active(){return this._active}set active(e){this._active!==e&&(this._active=e,this._adapter.setActive(this._active),this._adapter.toggleHostAttribute(i.attributes.ACTIVE,this._active))}get value(){return this._value}set value(e){this._value=e;let t=this._adapter.trySelect(this._value);t!==null&&t!==this._selected&&(this.selected=t)}get dense(){return this._dense}set dense(e){this._dense!==e&&(this._dense=e,this._adapter.toggleHostAttribute(i.attributes.DENSE,this._dense))}get propagateClick(){return this._propagateClick}set propagateClick(e){this._propagateClick!==e&&(this._propagateClick=e,this._propagateClick?this._adapter.removeHostListener("pointerdown",this._pointerDownListener):this._adapter.addHostListener("pointerdown",this._pointerDownListener),this._adapter.setHostAttribute(i.attributes.PROPAGATE_CLICK,this._propagateClick?"true":"false"))}get indented(){return this._indented}set indented(e){this._indented!==e&&(this._indented=e,this._adapter.toggleHostAttribute(i.attributes.INDENTED,this._indented))}get twoLine(){return this._twoLine}set twoLine(e){this._twoLine!==e&&(this._twoLine=e,this._adapter.toggleHostAttribute(i.attributes.TWO_LINE,this._twoLine))}get threeLine(){return this._threeLine}set threeLine(e){this._threeLine!==e&&(this._threeLine=e,this._adapter.toggleHostAttribute(i.attributes.THREE_LINE,this._threeLine))}get wrap(){return this._wrap}set wrap(e){this._wrap!==e&&(this._wrap=e,this._adapter.toggleHostAttribute(i.attributes.WRAP,this._wrap))}};var F='<template><div class="forge-list-item" tabindex="0" part="root"><slot name="leading"></slot><slot name="avatar"></slot><div class="text-container" part="text-container"><slot></slot><slot name="title"></slot><slot name="primary-text"></slot><slot name="subtitle"></slot><slot name="secondary-text"></slot><slot name="tertiary-text"></slot><slot name="tertiary-title"></slot></div><slot name="trailing"></slot><forge-state-layer exportparts="surface:state-layer"></forge-state-layer><forge-focus-indicator exportparts="indicator:focus-indicator" inward></forge-focus-indicator></div></template>',W=':host{--_list-item-indent:var(--forge-list-item-indent, 56px);--_list-item-dense-indent:var(--forge-list-item-dense-indent, 48px)}:host{display:block;outline:0}:host([hidden]){display:none}:host([non-interactive]) .forge-list-item{cursor:initial}:host([disabled]) .forge-list-item{cursor:var(--_list-item-disabled-cursor);opacity:var(--_list-item-disabled-opacity)}:host([two-line]) .forge-list-item{height:var(--_list-item-two-line-height);min-height:var(--_list-item-two-line-height)}:host([three-line]) .forge-list-item{height:var(--_list-item-three-line-height);min-height:var(--_list-item-three-line-height)}:host([dense]) .forge-list-item{height:var(--_list-item-dense-one-line-height);min-height:var(--_list-item-dense-one-line-height)}:host([dense]) .text-container{font-size:var(--_list-item-dense-font-size)}:host([dense][indented]){-webkit-margin-start:var(--_list-item-dense-indent);margin-inline-start:var(--_list-item-dense-indent)}:host([dense][two-line]) .forge-list-item{height:var(--_list-item-dense-two-line-height);min-height:var(--_list-item-dense-two-line-height)}:host([dense][three-line]) .forge-list-item{height:var(--_list-item-dense-three-line-height);min-height:var(--_list-item-dense-three-line-height)}:host([selected]) .forge-list-item{color:var(--_list-item-selected-color)}:host([selected]) .forge-list-item::before{content:"";position:absolute;inset:0;border-radius:inherit;opacity:var(--_list-item-selected-opacity);background-color:var(--_list-item-selected-color)}:host([selected]) .forge-list-item ::slotted([slot=leading]),:host([selected]) .forge-list-item ::slotted([slot=trailing]){color:var(--_list-item-selected-color)}:host([selected]) .forge-list-item ::slotted([slot=leading]){color:var(--_list-item-leading-selected-color)}:host([selected]) .forge-list-item ::slotted([slot=trailing]){color:var(--_list-item-trailing-selected-color)}:host([selected]) .text-container{color:var(--_list-item-selected-color)}:host([selected]) forge-state-layer{--forge-state-layer-color:var(--_list-item-selected-color)}:host([indented]){-webkit-margin-start:var(--_list-item-indent);margin-inline-start:var(--_list-item-indent)}.forge-list-item{--_list-item-background-color:var(--forge-list-item-background-color, transparent);--_list-item-shape:var(--forge-list-item-shape, 0);--_list-item-padding:var(--forge-list-item-padding, 8px 16px);--_list-item-margin:var(--forge-list-item-margin, 0);--_list-item-height:var(--forge-list-item-height, 48px);--_list-item-dense-height:var(--forge-list-item-dense-height, 32px);--_list-item-cursor:var(--forge-list-item-cursor, pointer);--_list-item-supporting-text-color:var(--forge-list-item-supporting-text-color, var(--forge-theme-text-medium, rgba(0, 0, 0, 0.54)));--_list-item-supporting-text-font-size:var(--forge-list-item-supporting-text-font-size, var(--forge-typography-body2-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-body-font-size-scale, 1))));--_list-item-supporting-text-font-weight:var(--forge-list-item-supporting-text-font-weight, var(--forge-typography-body2-font-weight, 400));--_list-item-supporting-text-line-height:var(--forge-list-item-supporting-text-line-height, 1.5rem);--_list-item-selected-color:var(--forge-list-item-selected-color, var(--forge-theme-primary, #3f51b5));--_list-item-selected-opacity:var(--forge-list-item-selected-opacity, 0.08);--_list-item-selected-leading-color:var(--forge-list-item-selected-leading-color, var(--_list-item-selected-color));--_list-item-selected-trailing-color:var(--forge-list-item-selected-trailing-color, var(--_list-item-selected-color));--_list-item-selected-supporting-text-color:var(--forge-list-item-selected-supporting-text-color, var(--forge-theme-text-medium, rgba(0, 0, 0, 0.54)));--_list-item-disabled-opacity:var(--forge-list-item-disabled-opacity, 0.38);--_list-item-disabled-cursor:var(--forge-list-item-disabled-cursor, not-allowed);--_list-item-one-line-height:var(--forge-list-item-one-line-height, var(--_list-item-height));--_list-item-two-line-height:var(--forge-list-item-two-line-height, var(--forge-list-item-height, 72px));--_list-item-three-line-height:var(--forge-list-item-three-line-height, var(--forge-list-item-height, 88px));--_list-item-dense-one-line-height:var(--forge-list-item-dense-one-line-height, var(--_list-item-dense-height));--_list-item-dense-two-line-height:var(--forge-list-item-dense-two-line-height, var(--forge-list-item-dense-height, 56px));--_list-item-dense-three-line-height:var(--forge-list-item-dense-three-line-height, var(--forge-list-item-dense-height, 72px));--_list-item-dense-font-size:var(--forge-list-item-dense-font-size, 0.875rem);--_list-item-dense-leading-margin-end:var(--forge-list-item-dense-leading-margin-end, var(--forge-list-item-leading-margin-end, 24px));--_list-item-dense-trailing-margin-start:var(--forge-list-item-dense-trailing-margin-start, var(--forge-list-item-trailing-margin-start, 24px));--_list-item-leading-margin-start:var(--forge-list-item-leading-margin-start, 0);--_list-item-leading-margin-end:var(--forge-list-item-leading-margin-end, 32px);--_list-item-leading-selected-color:var(--forge-list-item-leading-selected-color, var(--_list-item-selected-color));--_list-item-trailing-margin-start:var(--forge-list-item-trailing-margin-start, 32px);--_list-item-trailing-margin-end:var(--forge-list-item-trailing-margin-end, 0);--_list-item-trailing-selected-color:var(--forge-list-item-trailing-selected-color, var(--_list-item-selected-color));--_list-item-avatar-background-color:var(--forge-list-item-avatar-background-color, var(--forge-theme-text-medium, rgba(0, 0, 0, 0.54)));--_list-item-avatar-color:var(--forge-list-item-avatar-color, var(--forge-theme-on-primary, #ffffff));--_list-item-avatar-shape:var(--forge-list-item-avatar-shape, var(--forge-shape-round, 50%));--_list-item-avatar-margin-start:var(--forge-list-item-avatar-margin-start, 0);--_list-item-avatar-margin-end:var(--forge-list-item-avatar-margin-end, 16px);--_list-item-avatar-size:var(--forge-list-item-avatar-size, 40px)}.forge-list-item{position:relative;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-sizing:border-box;box-sizing:border-box;outline:0;text-decoration:none;background-color:var(--_list-item-background-color);border-radius:var(--_list-item-shape);-webkit-tap-highlight-color:transparent;height:var(--_list-item-height);min-height:var(--_list-item-height);padding:var(--_list-item-padding);margin:var(--_list-item-margin);cursor:var(--_list-item-cursor)}a.forge-list-item{color:inherit}.text-container{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-body2-font-family, var(--forge-typography-font-family, "Roboto", sans-serif));letter-spacing:var(--forge-typography-body2-letter-spacing, .015625em);text-transform:var(--forge-typography-body2-text-transform,inherit);-webkit-text-decoration:var(--forge-typography-body2-text-decoration,inherit);text-decoration:var(--forge-typography-body2-text-decoration,inherit);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-box-sizing:border-box;box-sizing:border-box;font-size:var(--_list-item-supporting-text-font-size);font-weight:var(--_list-item-supporting-text-font-weight);line-height:var(--_list-item-supporting-text-line-height);-webkit-box-flex:1;flex:1}slot[name=secondary-text]::slotted(*),slot[name=subtitle]::slotted(*),slot[name=tertiary-text]::slotted(*),slot[name=tertiary-title]::slotted(*){-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-body1-font-family, var(--forge-typography-font-family, "Roboto", sans-serif));font-size:var(--forge-typography-body1-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-body-font-size-scale, .875)));font-weight:var(--forge-typography-body1-font-weight,400);line-height:var(--forge-typography-body1-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-body-line-height-scale, 1.125)));letter-spacing:var(--forge-typography-body1-letter-spacing, .0357142857em);text-transform:var(--forge-typography-body1-text-transform,inherit);-webkit-text-decoration:var(--forge-typography-body1-text-decoration,inherit);text-decoration:var(--forge-typography-body1-text-decoration,inherit);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--_list-item-supporting-text-color);display:block}:host([selected]) slot[name=secondary-text]::slotted(*),:host([selected]) slot[name=subtitle]::slotted(*),:host([selected]) slot[name=tertiary-text]::slotted(*),:host([selected]) slot[name=tertiary-title]::slotted(*){color:var(--_list-item-selected-supporting-text-color)}::slotted([slot=avatar]){background-color:var(--_list-item-avatar-background-color);color:var(--_list-item-avatar-color);display:-webkit-inline-box;display:inline-flex;flex-shrink:0;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;fill:currentColor;-webkit-margin-start:var(--_list-item-avatar-margin-start);margin-inline-start:var(--_list-item-avatar-margin-start);-webkit-margin-end:var(--_list-item-avatar-margin-end);margin-inline-end:var(--_list-item-avatar-margin-end);min-width:var(--_list-item-avatar-size);min-height:var(--_list-item-avatar-size);border-radius:var(--_list-item-avatar-shape)}::slotted([slot=leading]),::slotted([slot=trailing]){color:var(--_list-item-supporting-text-color);display:-webkit-inline-box;display:inline-flex;flex-shrink:0;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;fill:currentColor}::slotted([slot=leading]){-webkit-margin-start:var(--_list-item-leading-margin-start);margin-inline-start:var(--_list-item-leading-margin-start);-webkit-margin-end:var(--_list-item-leading-margin-end);margin-inline-end:var(--_list-item-leading-margin-end)}:host([selected]) ::slotted([slot=leading]){color:var(--_list-item-leading-selected-color)}:host([dense]) ::slotted([slot=leading]){-webkit-margin-end:var(--_list-item-dense-leading-margin-end);margin-inline-end:var(--_list-item-dense-leading-margin-end)}::slotted([slot=trailing]){-webkit-margin-start:var(--_list-item-trailing-margin-start);margin-inline-start:var(--_list-item-trailing-margin-start);-webkit-margin-end:var(--_list-item-trailing-margin-end);margin-inline-end:var(--_list-item-trailing-margin-end)}:host([selected]) ::slotted([slot=trailing]){color:var(--_list-item-trailing-selected-color)}:host([dense]) ::slotted([slot=trailing]){-webkit-margin-start:var(--_list-item-dense-trailing-margin-start);margin-inline-start:var(--_list-item-dense-trailing-margin-start)}:host([wrap]) .forge-list-item{height:auto}:host([wrap]) .text-container{white-space:normal;overflow:visible;text-overflow:clip}:host([wrap]) slot[name=secondary-text]::slotted(*),:host([wrap]) slot[name=subtitle]::slotted(*),:host([wrap]) slot[name=tertiary-text]::slotted(*),:host([wrap]) slot[name=tertiary-title]::slotted(*){white-space:normal;overflow:visible;text-overflow:clip}forge-focus-indicator{--forge-focus-indicator-shape:var(--forge-shape-medium, 4px)}forge-state-layer{border-radius:inherit}',o=class extends HTMLElement{constructor(){super();L(this,F,W),this._foundation=new b(new p(this))}static get observedAttributes(){return[i.observedAttributes.HREF,i.observedAttributes.TARGET,i.observedAttributes.DOWNLOAD,i.observedAttributes.REL,i.observedAttributes.STATIC,i.observedAttributes.NON_INTERACTIVE,i.observedAttributes.DISABLED,i.observedAttributes.SELECTED,i.observedAttributes.ACTIVE,i.observedAttributes.VALUE,i.observedAttributes.DENSE,i.observedAttributes.PROPAGATE_CLICK,i.observedAttributes.INDENTED,i.observedAttributes.TWO_LINE,i.observedAttributes.THREE_LINE,i.observedAttributes.WRAP]}connectedCallback(){this._foundation.initialize()}disconnectedCallback(){this._foundation.disconnect()}attributeChangedCallback(t,s,r){switch(t){case i.observedAttributes.HREF:this.href=r;break;case i.observedAttributes.TARGET:this.target=r;break;case i.observedAttributes.DOWNLOAD:this.download=r;break;case i.observedAttributes.REL:this.rel=r;break;case i.observedAttributes.NON_INTERACTIVE:case i.observedAttributes.STATIC:this.nonInteractive=l(r);break;case i.observedAttributes.DISABLED:this.disabled=l(r);break;case i.observedAttributes.SELECTED:this.selected=l(r);break;case i.observedAttributes.ACTIVE:this.active=l(r);break;case i.observedAttributes.VALUE:this.value=r;break;case i.observedAttributes.DENSE:this.dense=l(r);break;case i.observedAttributes.PROPAGATE_CLICK:this.propagateClick=l(r);break;case i.observedAttributes.INDENTED:this.indented=l(r);break;case i.observedAttributes.TWO_LINE:this.twoLine=l(r);break;case i.observedAttributes.THREE_LINE:this.threeLine=l(r);break;case i.observedAttributes.WRAP:this.wrap=l(r);break}}focus(){this._foundation.setFocus()}click(){this._foundation.click()}};a([n()],o.prototype,"href",2),a([n()],o.prototype,"target",2),a([n()],o.prototype,"download",2),a([n()],o.prototype,"rel",2),a([n()],o.prototype,"static",2),a([n()],o.prototype,"nonInteractive",2),a([n()],o.prototype,"disabled",2),a([n()],o.prototype,"selected",2),a([n()],o.prototype,"active",2),a([n()],o.prototype,"value",2),a([n()],o.prototype,"dense",2),a([n()],o.prototype,"propagateClick",2),a([n()],o.prototype,"indented",2),a([n()],o.prototype,"twoLine",2),a([n()],o.prototype,"threeLine",2),a([n()],o.prototype,"wrap",2),o=a([I({name:i.elementName,dependencies:[x,T]})],o);function ut(){A(o)}export{i as a,c as b,C as c,p as d,b as e,o as f,ut as g};
7
+ //# sourceMappingURL=chunk.QN5T26HH.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/list/list/list-constants.ts", "../../src/list/list-item/list-item-constants.ts", "../../src/list/list-item/list-item-adapter.ts", "../../src/list/list-item/list-item-foundation.ts", "../../src/list/list-item/list-item.ts", "../../src/list/list-item/index.ts"],
4
+ "sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../../constants';\n\nconst elementName = `${COMPONENT_NAME_PREFIX}list`;\n\nconst observedAttributes = {\n ROLE: 'role',\n STATIC: 'static',\n NON_INTERACTIVE: 'non-interactive',\n DISABLED: 'disabled',\n DENSE: 'dense',\n PROPAGATE_CLICK: 'propagate-click',\n SELECTED_VALUE: 'selected-value',\n INDENTED: 'indented',\n TWO_LINE: 'two-line',\n THREE_LINE: 'three-line',\n WRAP: 'wrap'\n};\n\nconst attributes = {\n ...observedAttributes\n};\n\nexport const LIST_CONSTANTS = {\n elementName,\n attributes\n};\n\nexport const ListComponentItemRole = {\n list: 'listitem',\n listbox: 'option',\n menu: 'menuitem'\n};\n", "import { COMPONENT_NAME_PREFIX } from '../../constants';\nimport { IListItemComponent } from './list-item';\n\nconst elementName = `${COMPONENT_NAME_PREFIX}list-item`;\n\nconst observedAttributes = {\n HREF: 'href',\n TARGET: 'target',\n DOWNLOAD: 'download',\n REL: 'rel',\n STATIC: 'static',\n NON_INTERACTIVE: 'non-interactive',\n DISABLED: 'disabled',\n SELECTED: 'selected',\n ACTIVE: 'active',\n VALUE: 'value',\n DENSE: 'dense',\n PROPAGATE_CLICK: 'propagate-click',\n INDENTED: 'indented',\n TWO_LINE: 'two-line',\n THREE_LINE: 'three-line',\n WRAP: 'wrap'\n};\n\nconst attributes = {\n ...observedAttributes\n};\n\nconst classes = {\n ROOT: 'forge-list-item'\n};\n\nconst selectors = {\n ROOT: `.${classes.ROOT}`,\n CHECKBOX_RADIO_SELECTOR: ':is(input[type=checkbox], input[type=radio], forge-checkbox):not(:disabled):not([forge-ignore])',\n SWITCH_SELECTOR: 'forge-switch:not([disabled]):not([forge-ignore])',\n IGNORE: '[forge-ignore],[data-forge-ignore]'\n};\n\nconst events = {\n SELECT: `${elementName}-select`\n};\n\nexport const LIST_ITEM_CONSTANTS = {\n elementName,\n observedAttributes,\n attributes,\n classes,\n selectors,\n events\n};\n\nexport interface IListItemSelectEventData<T = unknown> {\n value: T;\n listItem: IListItemComponent;\n}\n", "import { getShadowElement, isDeepEqual, toggleAttribute } from '@tylertech/forge-core';\nimport { replaceElement } from '../../core/utils/utils';\nimport { BaseAdapter, IBaseAdapter } from '../../core/base/base-adapter';\nimport { FOCUS_INDICATOR_CONSTANTS, IFocusIndicatorComponent } from '../../focus-indicator';\nimport { IStateLayerComponent, STATE_LAYER_CONSTANTS } from '../../state-layer';\nimport { IListComponent } from '../list/list';\nimport { ListComponentItemRole, LIST_CONSTANTS } from '../list/list-constants';\nimport { IListItemComponent } from './list-item';\nimport { LIST_ITEM_CONSTANTS } from './list-item-constants';\nimport { ISwitchComponent } from '../../switch';\n\nexport interface IListItemAdapter extends IBaseAdapter<IListItemComponent> {\n initialize(): void;\n setHref(href: string): void;\n setAnchorTarget(target: string): void;\n setAnchorDownload(download: string): void;\n setAnchorRel(rel: string): void;\n setNonInteractive(value: boolean): void;\n setDisabled(value: boolean): void;\n setActive(value: boolean): void;\n trySelect(value: unknown): boolean | null;\n tryToggleSelectionControl(value?: boolean): void;\n isFocused(): boolean;\n setFocus(): void;\n animateStateLayer(): void;\n clickAnchor(): void;\n clickHost(): void;\n}\n\nexport class ListItemAdapter extends BaseAdapter<IListItemComponent> implements IListItemAdapter {\n private _rootElement: HTMLElement | HTMLAnchorElement;\n private _focusIndicatorElement: IFocusIndicatorComponent;\n private _stateLayerElement: IStateLayerComponent;\n\n constructor(component: IListItemComponent) {\n super(component);\n this._rootElement = getShadowElement(component, LIST_ITEM_CONSTANTS.selectors.ROOT);\n this._focusIndicatorElement = getShadowElement(component, FOCUS_INDICATOR_CONSTANTS.elementName) as IFocusIndicatorComponent;\n this._stateLayerElement = getShadowElement(component, STATE_LAYER_CONSTANTS.elementName) as IStateLayerComponent;\n }\n\n public initialize(): void {\n // Attempt to inherit state for corresponding properties from our parent list\n const list = this._getParentList();\n if (list) {\n this._inheritParentListProps(list);\n }\n\n this._rootElement.tabIndex = this._component.nonInteractive || this._component.disabled ? -1 : 0;\n\n if (!this._component.hasAttribute('role')) {\n this._setRole(list);\n }\n }\n\n public setHref(href: string): void {\n if (href) {\n if (this._rootElement.tagName !== 'A') {\n const anchor = this._createAnchorRootElement();\n this._rootElement = replaceElement(this._rootElement, anchor);\n }\n (this._rootElement as HTMLAnchorElement).href = href;\n } else if (this._rootElement.tagName === 'A') {\n const defaultEl = this._createDefaultRootElement();\n this._rootElement = replaceElement(this._rootElement, defaultEl);\n }\n }\n\n public setAnchorTarget(target: string): void {\n if (this._rootElement.tagName === 'A') {\n (this._rootElement as HTMLAnchorElement).target = target;\n }\n }\n\n public setAnchorDownload(download: string): void {\n if (this._rootElement.tagName === 'A') {\n (this._rootElement as HTMLAnchorElement).download = download;\n }\n }\n\n public setAnchorRel(rel: string): void {\n if (this._rootElement.tagName === 'A') {\n (this._rootElement as HTMLAnchorElement).rel = rel;\n }\n }\n\n public setNonInteractive(value: boolean): void {\n this._rootElement.tabIndex = value ? -1 : 0;\n\n if (value) {\n this._focusIndicatorElement.remove();\n this._stateLayerElement.remove();\n } else {\n this._rootElement.append(this._focusIndicatorElement, this._stateLayerElement);\n }\n }\n\n public setDisabled(value: boolean): void {\n this._rootElement.tabIndex = value ? -1 : 0;\n toggleAttribute(this._component, value, 'aria-disabled', 'true');\n\n if (value) {\n this._focusIndicatorElement.remove();\n this._stateLayerElement.remove();\n } else {\n this._rootElement.append(this._focusIndicatorElement, this._stateLayerElement);\n }\n }\n\n public setActive(value: boolean): void {\n this._focusIndicatorElement.active = value;\n }\n\n /**\n * Attempts to set the selected state of the list item element and it's visual indicators\n * @param value The value to compare to the parent list element's selected value\n * @returns Returns whether the list item is selected, or null otherwise.\n */\n public trySelect(value: unknown): boolean | null {\n const list = this._getParentList();\n if (list?.selectedValue === undefined) {\n return null;\n }\n\n const listValues = Array.isArray(list.selectedValue) ? list.selectedValue : [list.selectedValue];\n const isSelected = listValues.some(v => isDeepEqual(v, value));\n\n this.tryToggleSelectionControl(isSelected);\n return isSelected;\n }\n\n /**\n * Attempts to toggle a checkbox radio button, or switch within the list item if it can find one.\n */\n public tryToggleSelectionControl(value?: boolean): void {\n const checkable = this._component.querySelector(LIST_ITEM_CONSTANTS.selectors.CHECKBOX_RADIO_SELECTOR) as HTMLInputElement;\n if (checkable) {\n const force = typeof value === 'boolean';\n const currentState = checkable.checked;\n \n // Check if we are just toggling or forcing to a specific checked state\n checkable.checked = force ? value as boolean : !checkable.checked;\n\n // TODO: This seems weird... Should we be dispatching events on slotted elements when changes are made programmatically?\n if (!force || currentState !== value) {\n checkable.dispatchEvent(new Event('change', { bubbles: true }));\n }\n } else {\n // Special case handling for the Forge switch element since it doesn't have a checked property\n const switchEl = this._component.querySelector(LIST_ITEM_CONSTANTS.selectors.SWITCH_SELECTOR) as ISwitchComponent;\n if (!switchEl) {\n return;\n }\n \n const force = typeof value === 'boolean';\n const currentState = switchEl.on;\n\n // Check if we are just toggling or forcing to a specific checked state\n switchEl.on = force ? value as boolean : !switchEl.on;\n\n // TODO: This seems weird... Should we be dispatching events on slotted elements when changes are made programmatically?\n if (!force || currentState !== value) {\n switchEl.dispatchEvent(new CustomEvent('forge-switch-change', { bubbles: true, detail: switchEl.on }));\n }\n }\n }\n\n public isFocused(): boolean {\n return this._component.matches(':focus');\n }\n\n public setFocus(): void {\n this._rootElement.focus({ preventScroll: true });\n }\n\n public animateStateLayer(): void {\n this._stateLayerElement.playAnimation();\n }\n\n public clickAnchor(): void {\n if (this._rootElement.tagName === 'A') {\n (this._rootElement as HTMLAnchorElement).click();\n }\n }\n\n public clickHost(): void {\n // Calling click() on the prototype ensures we don't end up in an infinite\n // recursion since the host overrides the HTMLElement.click() method\n HTMLElement.prototype.click.call(this._component);\n }\n\n private _createAnchorRootElement(): HTMLAnchorElement {\n const a = document.createElement('a');\n a.classList.add(LIST_ITEM_CONSTANTS.classes.ROOT);\n a.setAttribute('part', 'root');\n if (this._component.href) {\n a.href = this._component.href;\n }\n if (this._component.target) {\n a.target = this._component.target;\n }\n if (this._component.download) {\n a.download = this._component.download;\n }\n if (this._component.rel) {\n a.rel = this._component.rel;\n }\n return a;\n }\n\n private _createDefaultRootElement(): HTMLElement {\n const div = document.createElement('div');\n div.classList.add(LIST_ITEM_CONSTANTS.classes.ROOT);\n div.setAttribute('part', 'root');\n div.tabIndex = this._component.nonInteractive || this._component.disabled ? -1 : 0;\n return div;\n }\n\n private _getParentList(): IListComponent | null {\n return this._component.closest(LIST_CONSTANTS.elementName);\n }\n\n private _inheritParentListProps(list: IListComponent): void {\n if (list.hasAttribute(LIST_CONSTANTS.attributes.NON_INTERACTIVE) || list.hasAttribute(LIST_CONSTANTS.attributes.STATIC)) {\n this._component.nonInteractive = true;\n }\n if (list.hasAttribute(LIST_CONSTANTS.attributes.DISABLED)) {\n this._component.disabled = true;\n }\n if (list.hasAttribute(LIST_CONSTANTS.attributes.DENSE)) {\n this._component.dense = true;\n }\n if (list.getAttribute(LIST_CONSTANTS.attributes.PROPAGATE_CLICK) === 'false') {\n this._component.propagateClick = false;\n }\n if (list.hasAttribute(LIST_CONSTANTS.attributes.INDENTED)) {\n this._component.indented = true;\n }\n if (list.hasAttribute(LIST_CONSTANTS.attributes.TWO_LINE)) {\n this._component.twoLine = true;\n }\n if (list.hasAttribute(LIST_CONSTANTS.attributes.THREE_LINE)) {\n this._component.threeLine = true;\n }\n }\n\n private _setRole(list: IListComponent | null): void {\n const listRole = list?.getAttribute('role');\n const role = ListComponentItemRole[listRole as string] ?? 'listitem';\n this._component.setAttribute('role', role);\n }\n}\n", "import { ICustomElementFoundation } from '@tylertech/forge-core';\n\nimport { IListItemAdapter } from './list-item-adapter';\nimport { IListItemSelectEventData, LIST_ITEM_CONSTANTS } from './list-item-constants';\n\nexport interface IListItemFoundation extends ICustomElementFoundation {\n href: string;\n target: string;\n download: string;\n rel: string;\n static: boolean;\n nonInteractive: boolean;\n disabled: boolean;\n selected: boolean;\n active: boolean;\n value: unknown;\n dense: boolean;\n propagateClick: boolean;\n indented: boolean;\n twoLine: boolean;\n threeLine: boolean;\n wrap: boolean;\n setFocus(): void;\n}\n\nexport class ListItemFoundation implements IListItemFoundation {\n private _href: string;\n private _target = '';\n private _download = '';\n private _rel = '';\n private _nonInteractive = false;\n private _disabled = false;\n private _selected = false;\n private _active = false;\n private _value: unknown;\n private _dense = false;\n private _propagateClick = true;\n private _indented = false;\n private _twoLine = false;\n private _threeLine = false;\n private _wrap = false;\n\n private _clickListener: EventListener;\n private _pointerDownListener: EventListener;\n private _keydownListener: EventListener;\n\n constructor(private _adapter: IListItemAdapter) {\n this._clickListener = this._onClick.bind(this);\n this._pointerDownListener = this._onPointerDown.bind(this);\n this._keydownListener = this._onKeydown.bind(this);\n }\n\n public initialize(): void {\n this._adapter.initialize();\n\n if (!this._nonInteractive && !this._disabled) {\n this._adapter.addHostListener('click', this._clickListener);\n this._adapter.addHostListener('keydown', this._keydownListener);\n\n if (!this._propagateClick) {\n this._adapter.addHostListener('pointerdown', this._pointerDownListener);\n }\n }\n }\n\n public disconnect(): void {\n this._adapter.removeHostListener('click', this._clickListener);\n this._adapter.removeHostListener('pointerdown', this._pointerDownListener);\n this._adapter.removeHostListener('keydown', this._keydownListener);\n }\n\n public setFocus(): void {\n this._adapter.setFocus();\n }\n\n public click(): void {\n if (this._href) {\n this._adapter.clickAnchor();\n } else {\n this._adapter.clickHost();\n }\n }\n\n private _onPointerDown(evt: MouseEvent): void {\n if (this._adapter.isFocused()) {\n evt.preventDefault();\n }\n }\n\n private _onKeydown(evt: KeyboardEvent): void {\n if (evt.key === 'Enter' || evt.key === ' ') {\n if (!this._href && evt.key === ' ') {\n evt.preventDefault();\n }\n this._adapter.animateStateLayer();\n this._select(evt.target as HTMLElement);\n }\n }\n\n private _onClick(event: MouseEvent): void {\n this._select(event.target as HTMLElement);\n }\n\n private _select(targetElement: HTMLElement): void {\n const ignoreElement = targetElement?.matches(LIST_ITEM_CONSTANTS.selectors.IGNORE);\n if (this._nonInteractive || this._disabled || ignoreElement) {\n return;\n }\n\n if (!this._adapter.isFocused() && this._propagateClick) {\n this.setFocus();\n }\n\n // If the target was not a checkbox or radio button, attempt to find one and toggle its checked state\n if (!targetElement.matches(LIST_ITEM_CONSTANTS.selectors.CHECKBOX_RADIO_SELECTOR)) {\n this._adapter.tryToggleSelectionControl();\n }\n\n const data: IListItemSelectEventData = {\n value: this._value,\n listItem: this._adapter.hostElement\n };\n this._adapter.emitHostEvent(LIST_ITEM_CONSTANTS.events.SELECT, data);\n }\n\n public get href(): string {\n return this._href;\n }\n public set href(value: string) {\n if (this._href !== value) {\n this._href = value;\n this._adapter.setHref(this._href);\n this._adapter.toggleHostAttribute(LIST_ITEM_CONSTANTS.attributes.HREF, !!this._href, this._href);\n }\n }\n\n public get target(): string {\n return this._target;\n }\n public set target(value: string) {\n if (this._target !== value) {\n this._target = value;\n if (this._href) {\n this._adapter.setAnchorTarget(this._target);\n }\n this._adapter.toggleHostAttribute(LIST_ITEM_CONSTANTS.attributes.TARGET, !!this._target, this._target);\n }\n }\n\n public get download(): string {\n return this._download;\n }\n public set download(value: string) {\n if (this._download !== value) {\n this._download = value;\n this._adapter.setAnchorDownload(this._download);\n this._adapter.toggleHostAttribute(LIST_ITEM_CONSTANTS.attributes.DOWNLOAD, !!this._download, this._download);\n }\n }\n\n public get rel(): string {\n return this._rel;\n }\n public set rel(value: string) {\n if (this._rel !== value) {\n this._rel = value;\n this._adapter.setAnchorRel(this._rel);\n this._adapter.toggleHostAttribute(LIST_ITEM_CONSTANTS.attributes.REL, !!this._rel, this._rel);\n }\n }\n\n public get static(): boolean {\n return this.nonInteractive;\n }\n public set static(value: boolean) {\n this.nonInteractive = value;\n }\n\n public get nonInteractive(): boolean {\n return this._nonInteractive;\n }\n public set nonInteractive(value: boolean) {\n if (this._nonInteractive !== value) {\n this._nonInteractive = value;\n if (this._nonInteractive) {\n this._adapter.removeHostListener('click', this._clickListener);\n } else {\n this._adapter.addHostListener('click', this._clickListener);\n }\n this._adapter.setNonInteractive(this._nonInteractive);\n this._adapter.toggleHostAttribute(LIST_ITEM_CONSTANTS.attributes.STATIC, this._nonInteractive);\n this._adapter.toggleHostAttribute(LIST_ITEM_CONSTANTS.attributes.NON_INTERACTIVE, this._nonInteractive);\n }\n }\n\n public get disabled(): boolean {\n return this._disabled;\n }\n public set disabled(value: boolean) {\n if (this._disabled !== value) {\n this._disabled = value;\n if (this._disabled) {\n this._adapter.removeHostListener('click', this._clickListener);\n } else {\n this._adapter.addHostListener('click', this._clickListener);\n }\n this._adapter.setDisabled(this._disabled);\n this._adapter.toggleHostAttribute(LIST_ITEM_CONSTANTS.attributes.DISABLED, this._disabled);\n }\n }\n\n public get selected(): boolean {\n return this._selected;\n }\n public set selected(value: boolean) {\n if (this._selected !== value) {\n this._selected = value;\n this._adapter.tryToggleSelectionControl(this._selected);\n this._adapter.toggleHostAttribute(LIST_ITEM_CONSTANTS.attributes.SELECTED, this._selected);\n }\n }\n\n public get active(): boolean {\n return this._active;\n }\n public set active(value: boolean) {\n if (this._active !== value) {\n this._active = value;\n this._adapter.setActive(this._active);\n this._adapter.toggleHostAttribute(LIST_ITEM_CONSTANTS.attributes.ACTIVE, this._active);\n }\n }\n\n public get value(): unknown {\n return this._value;\n }\n public set value(value: unknown) {\n this._value = value;\n const isSelected = this._adapter.trySelect(this._value);\n if (isSelected !== null && isSelected !== this._selected) {\n this.selected = isSelected;\n }\n }\n\n public get dense(): boolean {\n return this._dense;\n }\n public set dense(value: boolean) {\n if (this._dense !== value) {\n this._dense = value;\n this._adapter.toggleHostAttribute(LIST_ITEM_CONSTANTS.attributes.DENSE, this._dense);\n }\n }\n\n public get propagateClick(): boolean {\n return this._propagateClick;\n }\n public set propagateClick(value: boolean) {\n if (this._propagateClick !== value) {\n this._propagateClick = value;\n\n if (this._propagateClick) {\n this._adapter.removeHostListener('pointerdown', this._pointerDownListener);\n } else {\n this._adapter.addHostListener('pointerdown', this._pointerDownListener);\n }\n\n this._adapter.setHostAttribute(LIST_ITEM_CONSTANTS.attributes.PROPAGATE_CLICK, this._propagateClick ? 'true' : 'false');\n }\n }\n\n public get indented(): boolean {\n return this._indented;\n }\n public set indented(value: boolean) {\n if (this._indented !== value) {\n this._indented = value;\n this._adapter.toggleHostAttribute(LIST_ITEM_CONSTANTS.attributes.INDENTED, this._indented);\n }\n }\n\n public get twoLine(): boolean {\n return this._twoLine;\n }\n public set twoLine(value: boolean) {\n if (this._twoLine !== value) {\n this._twoLine = value;\n this._adapter.toggleHostAttribute(LIST_ITEM_CONSTANTS.attributes.TWO_LINE, this._twoLine);\n }\n }\n\n public get threeLine(): boolean {\n return this._threeLine;\n }\n public set threeLine(value: boolean) {\n if (this._threeLine !== value) {\n this._threeLine = value;\n this._adapter.toggleHostAttribute(LIST_ITEM_CONSTANTS.attributes.THREE_LINE, this._threeLine);\n }\n }\n\n public get wrap(): boolean {\n return this._wrap;\n }\n public set wrap(value: boolean) {\n if (this._wrap !== value) {\n this._wrap = value;\n this._adapter.toggleHostAttribute(LIST_ITEM_CONSTANTS.attributes.WRAP, this._wrap);\n }\n }\n}\n", "import { CustomElement, attachShadowTemplate, ICustomElement, FoundationProperty, coerceBoolean } from '@tylertech/forge-core';\nimport { ListItemAdapter } from './list-item-adapter';\nimport { ListItemFoundation } from './list-item-foundation';\nimport { IListItemSelectEventData, LIST_ITEM_CONSTANTS } from './list-item-constants';\nimport { StateLayerComponent } from '../../state-layer';\nimport { FocusIndicatorComponent } from '../../focus-indicator';\n\nconst template = '<template><div class=\\\"forge-list-item\\\" tabindex=\\\"0\\\" part=\\\"root\\\"><slot name=\\\"leading\\\"></slot><slot name=\\\"avatar\\\"></slot><div class=\\\"text-container\\\" part=\\\"text-container\\\"><slot></slot><slot name=\\\"title\\\"></slot><slot name=\\\"primary-text\\\"></slot><slot name=\\\"subtitle\\\"></slot><slot name=\\\"secondary-text\\\"></slot><slot name=\\\"tertiary-text\\\"></slot><slot name=\\\"tertiary-title\\\"></slot></div><slot name=\\\"trailing\\\"></slot><forge-state-layer exportparts=\\\"surface:state-layer\\\"></forge-state-layer><forge-focus-indicator exportparts=\\\"indicator:focus-indicator\\\" inward></forge-focus-indicator></div></template>';\nconst styles = ':host{--_list-item-indent:var(--forge-list-item-indent, 56px);--_list-item-dense-indent:var(--forge-list-item-dense-indent, 48px)}:host{display:block;outline:0}:host([hidden]){display:none}:host([non-interactive]) .forge-list-item{cursor:initial}:host([disabled]) .forge-list-item{cursor:var(--_list-item-disabled-cursor);opacity:var(--_list-item-disabled-opacity)}:host([two-line]) .forge-list-item{height:var(--_list-item-two-line-height);min-height:var(--_list-item-two-line-height)}:host([three-line]) .forge-list-item{height:var(--_list-item-three-line-height);min-height:var(--_list-item-three-line-height)}:host([dense]) .forge-list-item{height:var(--_list-item-dense-one-line-height);min-height:var(--_list-item-dense-one-line-height)}:host([dense]) .text-container{font-size:var(--_list-item-dense-font-size)}:host([dense][indented]){-webkit-margin-start:var(--_list-item-dense-indent);margin-inline-start:var(--_list-item-dense-indent)}:host([dense][two-line]) .forge-list-item{height:var(--_list-item-dense-two-line-height);min-height:var(--_list-item-dense-two-line-height)}:host([dense][three-line]) .forge-list-item{height:var(--_list-item-dense-three-line-height);min-height:var(--_list-item-dense-three-line-height)}:host([selected]) .forge-list-item{color:var(--_list-item-selected-color)}:host([selected]) .forge-list-item::before{content:\\\"\\\";position:absolute;inset:0;border-radius:inherit;opacity:var(--_list-item-selected-opacity);background-color:var(--_list-item-selected-color)}:host([selected]) .forge-list-item ::slotted([slot=leading]),:host([selected]) .forge-list-item ::slotted([slot=trailing]){color:var(--_list-item-selected-color)}:host([selected]) .forge-list-item ::slotted([slot=leading]){color:var(--_list-item-leading-selected-color)}:host([selected]) .forge-list-item ::slotted([slot=trailing]){color:var(--_list-item-trailing-selected-color)}:host([selected]) .text-container{color:var(--_list-item-selected-color)}:host([selected]) forge-state-layer{--forge-state-layer-color:var(--_list-item-selected-color)}:host([indented]){-webkit-margin-start:var(--_list-item-indent);margin-inline-start:var(--_list-item-indent)}.forge-list-item{--_list-item-background-color:var(--forge-list-item-background-color, transparent);--_list-item-shape:var(--forge-list-item-shape, 0);--_list-item-padding:var(--forge-list-item-padding, 8px 16px);--_list-item-margin:var(--forge-list-item-margin, 0);--_list-item-height:var(--forge-list-item-height, 48px);--_list-item-dense-height:var(--forge-list-item-dense-height, 32px);--_list-item-cursor:var(--forge-list-item-cursor, pointer);--_list-item-supporting-text-color:var(--forge-list-item-supporting-text-color, var(--forge-theme-text-medium, rgba(0, 0, 0, 0.54)));--_list-item-supporting-text-font-size:var(--forge-list-item-supporting-text-font-size, var(--forge-typography-body2-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-body-font-size-scale, 1))));--_list-item-supporting-text-font-weight:var(--forge-list-item-supporting-text-font-weight, var(--forge-typography-body2-font-weight, 400));--_list-item-supporting-text-line-height:var(--forge-list-item-supporting-text-line-height, 1.5rem);--_list-item-selected-color:var(--forge-list-item-selected-color, var(--forge-theme-primary, #3f51b5));--_list-item-selected-opacity:var(--forge-list-item-selected-opacity, 0.08);--_list-item-selected-leading-color:var(--forge-list-item-selected-leading-color, var(--_list-item-selected-color));--_list-item-selected-trailing-color:var(--forge-list-item-selected-trailing-color, var(--_list-item-selected-color));--_list-item-selected-supporting-text-color:var(--forge-list-item-selected-supporting-text-color, var(--forge-theme-text-medium, rgba(0, 0, 0, 0.54)));--_list-item-disabled-opacity:var(--forge-list-item-disabled-opacity, 0.38);--_list-item-disabled-cursor:var(--forge-list-item-disabled-cursor, not-allowed);--_list-item-one-line-height:var(--forge-list-item-one-line-height, var(--_list-item-height));--_list-item-two-line-height:var(--forge-list-item-two-line-height, var(--forge-list-item-height, 72px));--_list-item-three-line-height:var(--forge-list-item-three-line-height, var(--forge-list-item-height, 88px));--_list-item-dense-one-line-height:var(--forge-list-item-dense-one-line-height, var(--_list-item-dense-height));--_list-item-dense-two-line-height:var(--forge-list-item-dense-two-line-height, var(--forge-list-item-dense-height, 56px));--_list-item-dense-three-line-height:var(--forge-list-item-dense-three-line-height, var(--forge-list-item-dense-height, 72px));--_list-item-dense-font-size:var(--forge-list-item-dense-font-size, 0.875rem);--_list-item-dense-leading-margin-end:var(--forge-list-item-dense-leading-margin-end, var(--forge-list-item-leading-margin-end, 24px));--_list-item-dense-trailing-margin-start:var(--forge-list-item-dense-trailing-margin-start, var(--forge-list-item-trailing-margin-start, 24px));--_list-item-leading-margin-start:var(--forge-list-item-leading-margin-start, 0);--_list-item-leading-margin-end:var(--forge-list-item-leading-margin-end, 32px);--_list-item-leading-selected-color:var(--forge-list-item-leading-selected-color, var(--_list-item-selected-color));--_list-item-trailing-margin-start:var(--forge-list-item-trailing-margin-start, 32px);--_list-item-trailing-margin-end:var(--forge-list-item-trailing-margin-end, 0);--_list-item-trailing-selected-color:var(--forge-list-item-trailing-selected-color, var(--_list-item-selected-color));--_list-item-avatar-background-color:var(--forge-list-item-avatar-background-color, var(--forge-theme-text-medium, rgba(0, 0, 0, 0.54)));--_list-item-avatar-color:var(--forge-list-item-avatar-color, var(--forge-theme-on-primary, #ffffff));--_list-item-avatar-shape:var(--forge-list-item-avatar-shape, var(--forge-shape-round, 50%));--_list-item-avatar-margin-start:var(--forge-list-item-avatar-margin-start, 0);--_list-item-avatar-margin-end:var(--forge-list-item-avatar-margin-end, 16px);--_list-item-avatar-size:var(--forge-list-item-avatar-size, 40px)}.forge-list-item{position:relative;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-sizing:border-box;box-sizing:border-box;outline:0;text-decoration:none;background-color:var(--_list-item-background-color);border-radius:var(--_list-item-shape);-webkit-tap-highlight-color:transparent;height:var(--_list-item-height);min-height:var(--_list-item-height);padding:var(--_list-item-padding);margin:var(--_list-item-margin);cursor:var(--_list-item-cursor)}a.forge-list-item{color:inherit}.text-container{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-body2-font-family, var(--forge-typography-font-family, \\\"Roboto\\\", sans-serif));letter-spacing:var(--forge-typography-body2-letter-spacing, .015625em);text-transform:var(--forge-typography-body2-text-transform,inherit);-webkit-text-decoration:var(--forge-typography-body2-text-decoration,inherit);text-decoration:var(--forge-typography-body2-text-decoration,inherit);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;-webkit-box-sizing:border-box;box-sizing:border-box;font-size:var(--_list-item-supporting-text-font-size);font-weight:var(--_list-item-supporting-text-font-weight);line-height:var(--_list-item-supporting-text-line-height);-webkit-box-flex:1;flex:1}slot[name=secondary-text]::slotted(*),slot[name=subtitle]::slotted(*),slot[name=tertiary-text]::slotted(*),slot[name=tertiary-title]::slotted(*){-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-body1-font-family, var(--forge-typography-font-family, \\\"Roboto\\\", sans-serif));font-size:var(--forge-typography-body1-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-body-font-size-scale, .875)));font-weight:var(--forge-typography-body1-font-weight,400);line-height:var(--forge-typography-body1-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-body-line-height-scale, 1.125)));letter-spacing:var(--forge-typography-body1-letter-spacing, .0357142857em);text-transform:var(--forge-typography-body1-text-transform,inherit);-webkit-text-decoration:var(--forge-typography-body1-text-decoration,inherit);text-decoration:var(--forge-typography-body1-text-decoration,inherit);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--_list-item-supporting-text-color);display:block}:host([selected]) slot[name=secondary-text]::slotted(*),:host([selected]) slot[name=subtitle]::slotted(*),:host([selected]) slot[name=tertiary-text]::slotted(*),:host([selected]) slot[name=tertiary-title]::slotted(*){color:var(--_list-item-selected-supporting-text-color)}::slotted([slot=avatar]){background-color:var(--_list-item-avatar-background-color);color:var(--_list-item-avatar-color);display:-webkit-inline-box;display:inline-flex;flex-shrink:0;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;fill:currentColor;-webkit-margin-start:var(--_list-item-avatar-margin-start);margin-inline-start:var(--_list-item-avatar-margin-start);-webkit-margin-end:var(--_list-item-avatar-margin-end);margin-inline-end:var(--_list-item-avatar-margin-end);min-width:var(--_list-item-avatar-size);min-height:var(--_list-item-avatar-size);border-radius:var(--_list-item-avatar-shape)}::slotted([slot=leading]),::slotted([slot=trailing]){color:var(--_list-item-supporting-text-color);display:-webkit-inline-box;display:inline-flex;flex-shrink:0;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;fill:currentColor}::slotted([slot=leading]){-webkit-margin-start:var(--_list-item-leading-margin-start);margin-inline-start:var(--_list-item-leading-margin-start);-webkit-margin-end:var(--_list-item-leading-margin-end);margin-inline-end:var(--_list-item-leading-margin-end)}:host([selected]) ::slotted([slot=leading]){color:var(--_list-item-leading-selected-color)}:host([dense]) ::slotted([slot=leading]){-webkit-margin-end:var(--_list-item-dense-leading-margin-end);margin-inline-end:var(--_list-item-dense-leading-margin-end)}::slotted([slot=trailing]){-webkit-margin-start:var(--_list-item-trailing-margin-start);margin-inline-start:var(--_list-item-trailing-margin-start);-webkit-margin-end:var(--_list-item-trailing-margin-end);margin-inline-end:var(--_list-item-trailing-margin-end)}:host([selected]) ::slotted([slot=trailing]){color:var(--_list-item-trailing-selected-color)}:host([dense]) ::slotted([slot=trailing]){-webkit-margin-start:var(--_list-item-dense-trailing-margin-start);margin-inline-start:var(--_list-item-dense-trailing-margin-start)}:host([wrap]) .forge-list-item{height:auto}:host([wrap]) .text-container{white-space:normal;overflow:visible;text-overflow:clip}:host([wrap]) slot[name=secondary-text]::slotted(*),:host([wrap]) slot[name=subtitle]::slotted(*),:host([wrap]) slot[name=tertiary-text]::slotted(*),:host([wrap]) slot[name=tertiary-title]::slotted(*){white-space:normal;overflow:visible;text-overflow:clip}forge-focus-indicator{--forge-focus-indicator-shape:var(--forge-shape-medium, 4px)}forge-state-layer{border-radius:inherit}';\n\nexport interface IListItemComponent<T = unknown> extends ICustomElement {\n href: string;\n target: string;\n download: string;\n rel: string;\n /** @deprecated Use nonInteractive instead. */\n static: boolean;\n nonInteractive: boolean;\n disabled: boolean;\n selected: boolean;\n active: boolean;\n value: T;\n dense: boolean;\n propagateClick: boolean;\n indented: boolean;\n twoLine: boolean;\n threeLine: boolean;\n wrap: boolean;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-list-item': IListItemComponent;\n }\n\n interface HTMLElementEventMap {\n 'forge-list-item-select': CustomEvent<IListItemSelectEventData>;\n }\n}\n\n/**\n * @tag forge-list-item\n * \n * @summary List items are individual rows of content inside of a list.\n * \n * @property {string} href - The href of the anchor. This forces the list item to render as an anchor element.\n * @property {string} target - The target of the anchor when an `href` is set. Defaults to `'_blank'`.\n * @property {boolean} download - The anchor download attribute.\n * @property {boolean} rel - The anchor rel attribute.\n * @property {string} target - The target of the list item when an `href` is set. Defaults to `'_blank'`.\n * @property {boolean} nonInteractive - If true, the list item will not be interactive.\n * @property {boolean} static - If true, the list item will not be interactive. Deprecated use `nonInteractive` instead.\n * @property {boolean} disabled - Disables the list item.\n * @property {boolean} selected - Applies the selected state to the list item.\n * @property {boolean} active - Applies the active state to the list item by emulating its focused state.\n * @property {unknown} value - The unique value of the list item.\n * @property {boolean} dense - Applies the dense state to the list item.\n * @property {boolean} propagateClick - If true, the list item will not propagate click events to itself and therefore cannot receive focus.\n * @property {boolean} indented - Applies the indented state by adding margin to the start of the list item.\n * @property {boolean} twoLine - Sets the list item height to support at least two lines of text.\n * @property {boolean} threeLine - Sets the list item height to support at least three lines of text.\n * @property {boolean} wrap - Sets the list item to wrap its text content.\n * \n * @attribute {string} href - The href of the anchor This forces the list item to render as an anchor element.\n * @attribute {string} target - The target of the anchor when an `href` is set. Defaults to `'_blank'`.\n * @attribute {boolean} download - The anchor download attribute.\n * @attribute {boolean} rel - The anchor rel attribute.\n * @attribute {string} target - The target of the list item when an `href` is set. Defaults to `'_blank'`.\n * @attribute {boolean} non-interactive - If true, the list item will not be interactive.\n * @attribute {boolean} static - If true, the list item will not be interactive. Deprecated use `non-interactive` instead.\n * @attribute {boolean} disabled - Disables the list item.\n * @attribute {boolean} selected - Applies the selected state to the list item.\n * @attribute {boolean} active - Applies the active state to the list item by emulating its focused state.\n * @attribute {unknown} value - The unique value of the list item.\n * @attribute {boolean} dense - Applies the dense state to the list item.\n * @attribute {boolean} propagate-click - If applied, the list item will not propagate click events to itself and therefore cannot receive focus.\n * @attribute {boolean} indented - Applies the indented state by adding margin to the start of the list item.\n * @attribute {boolean} two-line - Sets the list item height to support at least two lines of text.\n * @attribute {boolean} three-line - Sets the list item height to support at least three lines of text.\n * @attribute {boolean} wrap - Sets the list item to wrap its text content.\n * \n * @event {CustomEvent<IListItemSelectEventData>} forge-list-item-select - Fires when the list item is selected.\n * \n * @slot - The primary text.\n * @slot primary-text - The primary text. A named alias for the default slot.\n * @slot secondary-text - The secondary text.\n * @slot tertiary-text - The tertiary text.\n * @slot title - The title element. An alias for the primary-text slot for backwards compatibility.\n * @slot subtitle - The subtitle element. An alias for the secondary-text slot for backwards compatibility.\n * @slot tertiary-title - The tertiary title element. An alias for the tertiary-text slot for backwards compatibility.\n * @slot leading - The leading content.\n * @slot trailing - The trailing element.\n * @slot avatar - The avatar content.\n * \n * @csspart root - The root container element.\n * @csspart text-container - The container for the text content.\n * @csspart focus-indicator - The forwarded focus indicator's internal indicator element.\n * @csspart state-layer - The forwarded state layer's internal surface element.\n * \n * @cssprop --forge-list-item-background-color - The background color.\n * @cssprop --forge-list-item-shape - The shape of the list item.\n * @cssprop --forge-list-item-padding - The padding inside of the container element.\n * @cssprop --forge-list-item-margin - The margin around the host element.\n * @cssprop --forge-list-item-height - The height of the container.\n * @cssprop --forge-list-item-dense-height - The height when in the dense state.\n * @cssprop --forge-list-item-indent - The margin inline state when in the indented state.\n * @cssprop --forge-list-item-supporting-text-color - The text color of the supporting text.\n * @cssprop --forge-list-item-supporting-line-height - The line height of the supporting text.\n * @cssprop --forge-list-item-selected-color - The color when in the selected state.\n * @cssprop --forge-list-item-opacity - The opacity of the background color when in the disabled state.\n * @cssprop --forge-list-item-selected-leading-color - The color of the leading content when in the selected state.\n * @cssprop --forge-list-item-selected-trailing-color - The color of the trailing content when in the selected state.\n * @cssprop --forge-list-item-selected-supporting-text-color - The color of the supporting text when in the selected state.\n * @cssprop --forge-list-item-disabled-opacity - The opacity of the element when in the disabled state.\n * @cssprop --forge-list-item-disabled-cursor - The cursor when in the disabled state.\n * @cssprop --forge-list-item-one-line-height - The line height when in the one/single line state.\n * @cssprop --forge-list-item-two-line-height - The line height when in the two line state.\n * @cssprop --forge-list-item-three-line-height - The line height when in the three line state.\n * @cssprop --forge-list-item-dense-one-line-height - The line height when in the dense one/single line state.\n * @cssprop --forge-list-item-dense-two-line-height - The line height when in the dense two line state.\n * @cssprop --forge-list-item-dense-three-line-height - The line height when in the dense three line state.\n * @cssprop --forge-list-item-dense-font-size - The font size when in the dense state.\n * @cssprop --forge-list-item-dense-indent - The margin inline state when in the dense indented state.\n * @cssprop --forge-list-item-dense-leading-margin-end - The margin end of the leading content when in the dense state.\n * @cssprop --forge-list-item-dense-trailing-margin-start - The margin start of the trailing content when in the dense state.\n * @cssprop --forge-list-item-leading-margin-start - The margin start of the leading content.\n * @cssprop --forge-list-item-leading-margin-end - The margin end of the leading content.\n * @cssprop --forge-list-item-leading-selected-color - The color of the leading content when in the selected state.\n * @cssprop --forge-list-item-trailing-margin-start - The margin start of the trailing content.\n * @cssprop --forge-list-item-trailing-margin-end - The margin end of the trailing content.\n * @cssprop --forge-list-item-trailing-selected-color - The color of the trailing content when in the selected state.\n * @cssprop --forge-list-item-avatar-background-color - The background color of the avatar container.\n * @cssprop --forge-list-item-avatar-color - The foreground color of the avatar container.\n * @cssprop --forge-list-item-avatar-shape - The shape of the avatar container.\n * @cssprop --forge-list-item-avatar-margin-start - The margin start of the avatar container.\n * @cssprop --forge-list-item-avatar-margin-end - The margin end of the avatar container.\n * @cssprop --forge-list-item-avatar-size - The height & width of the avatar container.\n */\n@CustomElement({\n name: LIST_ITEM_CONSTANTS.elementName,\n dependencies: [\n StateLayerComponent,\n FocusIndicatorComponent\n ]\n})\nexport class ListItemComponent extends HTMLElement implements IListItemComponent {\n public static get observedAttributes(): string[] {\n return [\n LIST_ITEM_CONSTANTS.observedAttributes.HREF,\n LIST_ITEM_CONSTANTS.observedAttributes.TARGET,\n LIST_ITEM_CONSTANTS.observedAttributes.DOWNLOAD,\n LIST_ITEM_CONSTANTS.observedAttributes.REL,\n LIST_ITEM_CONSTANTS.observedAttributes.STATIC,\n LIST_ITEM_CONSTANTS.observedAttributes.NON_INTERACTIVE,\n LIST_ITEM_CONSTANTS.observedAttributes.DISABLED,\n LIST_ITEM_CONSTANTS.observedAttributes.SELECTED,\n LIST_ITEM_CONSTANTS.observedAttributes.ACTIVE,\n LIST_ITEM_CONSTANTS.observedAttributes.VALUE,\n LIST_ITEM_CONSTANTS.observedAttributes.DENSE,\n LIST_ITEM_CONSTANTS.observedAttributes.PROPAGATE_CLICK,\n LIST_ITEM_CONSTANTS.observedAttributes.INDENTED,\n LIST_ITEM_CONSTANTS.observedAttributes.TWO_LINE,\n LIST_ITEM_CONSTANTS.observedAttributes.THREE_LINE,\n LIST_ITEM_CONSTANTS.observedAttributes.WRAP\n ];\n }\n\n private _foundation: ListItemFoundation;\n\n constructor() {\n super();\n attachShadowTemplate(this, template, styles);\n this._foundation = new ListItemFoundation(new ListItemAdapter(this));\n }\n\n public connectedCallback(): void {\n this._foundation.initialize();\n }\n\n public disconnectedCallback(): void {\n this._foundation.disconnect();\n }\n\n public attributeChangedCallback(name: string, oldValue: string, newValue: string): void {\n switch (name) {\n case LIST_ITEM_CONSTANTS.observedAttributes.HREF:\n this.href = newValue;\n break;\n case LIST_ITEM_CONSTANTS.observedAttributes.TARGET:\n this.target = newValue;\n break;\n case LIST_ITEM_CONSTANTS.observedAttributes.DOWNLOAD:\n this.download = newValue;\n break;\n case LIST_ITEM_CONSTANTS.observedAttributes.REL:\n this.rel = newValue;\n break;\n case LIST_ITEM_CONSTANTS.observedAttributes.NON_INTERACTIVE:\n case LIST_ITEM_CONSTANTS.observedAttributes.STATIC:\n this.nonInteractive = coerceBoolean(newValue);\n break;\n case LIST_ITEM_CONSTANTS.observedAttributes.DISABLED:\n this.disabled = coerceBoolean(newValue);\n break;\n case LIST_ITEM_CONSTANTS.observedAttributes.SELECTED:\n this.selected = coerceBoolean(newValue);\n break;\n case LIST_ITEM_CONSTANTS.observedAttributes.ACTIVE:\n this.active = coerceBoolean(newValue);\n break;\n case LIST_ITEM_CONSTANTS.observedAttributes.VALUE:\n this.value = newValue;\n break;\n case LIST_ITEM_CONSTANTS.observedAttributes.DENSE:\n this.dense = coerceBoolean(newValue);\n break;\n case LIST_ITEM_CONSTANTS.observedAttributes.PROPAGATE_CLICK:\n this.propagateClick = coerceBoolean(newValue);\n break;\n case LIST_ITEM_CONSTANTS.observedAttributes.INDENTED:\n this.indented = coerceBoolean(newValue);\n break;\n case LIST_ITEM_CONSTANTS.observedAttributes.TWO_LINE:\n this.twoLine = coerceBoolean(newValue);\n break;\n case LIST_ITEM_CONSTANTS.observedAttributes.THREE_LINE:\n this.threeLine = coerceBoolean(newValue);\n break;\n case LIST_ITEM_CONSTANTS.observedAttributes.WRAP:\n this.wrap = coerceBoolean(newValue);\n break;\n }\n }\n\n public override focus(): void {\n this._foundation.setFocus();\n }\n\n @FoundationProperty()\n public declare href: string;\n\n @FoundationProperty()\n public declare target: string;\n\n @FoundationProperty()\n public declare download: string;\n\n @FoundationProperty()\n public declare rel: string;\n\n /** @deprecated Use nonInteractive instead. */\n @FoundationProperty()\n public declare static: boolean;\n\n @FoundationProperty()\n public declare nonInteractive: boolean;\n\n @FoundationProperty()\n public declare disabled: boolean;\n\n @FoundationProperty()\n public declare selected: boolean;\n\n @FoundationProperty()\n public declare active: boolean;\n\n @FoundationProperty()\n public declare value: unknown;\n\n @FoundationProperty()\n public declare dense: boolean;\n\n @FoundationProperty()\n public declare propagateClick: boolean;\n\n @FoundationProperty()\n public declare indented: boolean;\n\n @FoundationProperty()\n public declare twoLine: boolean;\n\n @FoundationProperty()\n public declare threeLine: boolean;\n\n @FoundationProperty()\n public declare wrap: boolean;\n\n public override click(): void {\n this._foundation.click();\n }\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\nimport { ListItemComponent } from './list-item';\n\nexport * from './list-item-adapter';\nexport * from './list-item-constants';\nexport * from './list-item-foundation';\nexport * from './list-item';\n\nexport function defineListItemComponent(): void {\n defineCustomElement(ListItemComponent);\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["elementName", "COMPONENT_NAME_PREFIX", "observedAttributes", "attributes", "__spreadValues", "LIST_CONSTANTS", "ListComponentItemRole", "elementName", "COMPONENT_NAME_PREFIX", "observedAttributes", "attributes", "__spreadValues", "classes", "selectors", "events", "LIST_ITEM_CONSTANTS", "ListItemAdapter", "BaseAdapter", "component", "getShadowElement", "LIST_ITEM_CONSTANTS", "FOCUS_INDICATOR_CONSTANTS", "STATE_LAYER_CONSTANTS", "list", "href", "anchor", "replaceElement", "defaultEl", "target", "download", "rel", "value", "toggleAttribute", "isSelected", "v", "isDeepEqual", "checkable", "force", "currentState", "switchEl", "a", "div", "LIST_CONSTANTS", "_a", "listRole", "role", "ListComponentItemRole", "ListItemFoundation", "_adapter", "evt", "event", "targetElement", "ignoreElement", "LIST_ITEM_CONSTANTS", "data", "value", "isSelected", "template", "styles", "ListItemComponent", "attachShadowTemplate", "ListItemFoundation", "ListItemAdapter", "LIST_ITEM_CONSTANTS", "name", "oldValue", "newValue", "coerceBoolean", "__decorateClass", "FoundationProperty", "CustomElement", "StateLayerComponent", "FocusIndicatorComponent", "defineListItemComponent", "defineCustomElement", "ListItemComponent"]
7
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ import{d as w}from"./chunk.STB2FEUA.js";import{a as C,p as L}from"./chunk.VFKHRAWD.js";import{a as k}from"./chunk.HSI7B43D.js";import{a as c}from"./chunk.NVUMRW44.js";import{a as S,b as v}from"./chunk.36F2GVWS.js";import{c as A,e as T,f as h,k as I}from"./chunk.JAWV5Y5T.js";import{u as E}from"./chunk.K7FPXAFS.js";import{k as s}from"./chunk.J2M2MXP2.js";import{d as n}from"./chunk.M3QDAYD2.js";var N=`${v}tab-bar`,B={DISABLED:"disabled",ACTIVE_TAB:"active-tab",VERTICAL:"vertical",STACKED:"stacked",CLUSTERED:"clustered",SECONDARY:"secondary",INVERTED:"inverted",AUTO_ACTIVATE:"auto-activate",SCROLL_BUTTONS:"scroll-buttons"},M={CONTAINER:".container",SCROLL_CONTAINER:".scroll-container",DEFAULT_SLOT:"slot:not([name])"},K={SCROLL_BUTTON:"scroll-button"},H={CHANGE:`${N}-change`},F={SCROLL_MARGIN:48},D={attributes:B,elementName:N,events:H,selectors:M,classes:K,numbers:F},J=new Map([["default",new Set(["Home","End"])],["horizontal",new Set(["ArrowLeft","ArrowRight"])],["vertical",new Set(["ArrowUp","ArrowDown"])]]);var R=`${v}tab`,V={DISABLED:"disabled",SELECTED:"selected",VERTICAL:"vertical",STACKED:"stacked",SECONDARY:"secondary",INVERTED:"inverted"},P={INDICATOR:".indicator"},U={SELECTED:"selected"},Y={SELECT:`${R}-select`},$={EASING:"cubic-bezier(0.4, 0, 0.2, 1)"},G={ANIMATION_DURATION:250},t={elementName:R,attributes:V,selectors:P,classes:U,events:Y,strings:$,numbers:G};var p=class extends k{constructor(e){super(e);this._tabIndicatorElement=h(this._component,t.selectors.INDICATOR),this._stateLayerElement=h(this._component,C.elementName)}initialize(){this._component.tabIndex=this._component.selected?0:-1,this._component.setAttribute("role","tab"),this._component.setAttribute("aria-selected",this._component.selected?"true":"false")}addInteractionListener(e,i){this._component.addEventListener(e,i)}setDisabled(e){this._stateLayerElement.disabled=e,this._component.tabIndex=e?-1:this._component.selected?0:-1,this._component.setAttribute("aria-disabled",String(e)),E(this._component,e,t.attributes.DISABLED,String(e))}setSelected(e){this._component.tabIndex=e?0:-1,this._component.setAttribute("aria-selected",String(e))}animateSelected(){this._tabIndicatorElement.getAnimations().forEach(i=>i.cancel());let e=this._getKeyframes();e&&this._tabIndicatorElement.animate(e,{duration:t.numbers.ANIMATION_DURATION,easing:t.strings.EASING})}animateStateLayer(){this._stateLayerElement.playAnimation()}_getKeyframes(){var x;let e=window.matchMedia("(prefers-reduced-motion: reduce)").matches;if(!this._component.selected)return e?[{opacity:1},{transform:"none"}]:null;let i={},a=this._component.vertical,l=this._getSelectedTabIndicator(),b=(x=l==null?void 0:l.getBoundingClientRect())!=null?x:{},_=a?b.top:b.left,O=a?b.height:b.width,d=this._tabIndicatorElement.getBoundingClientRect(),m=a?d.top:d.left,z=a?d.height:d.width,u=a?"Y":"X",y=O/z;return!e&&_!==void 0&&m!==void 0&&!isNaN(y)?i.transform=`translate${u}(${(_-m).toFixed(4)}px) scale${u}(${y.toFixed(4)})`:i.opacity=0,[i,{transform:"none"}]}_getSelectedTabIndicator(){let e=A(this._component,D.elementName);if(e){let a=Array.from(e.querySelectorAll(t.elementName)).find(l=>l.hasAttribute(t.attributes.SELECTED));if(a)return h(a,t.selectors.INDICATOR)}return null}};var g=class{constructor(o){this._adapter=o;this._selected=!1;this._disabled=!1;this._vertical=!1;this._stacked=!1;this._secondary=!1;this._inverted=!1;this._clickListener=()=>this._onClick(),this._keydownListener=e=>this._onKeydown(e)}initialize(){this._adapter.initialize(),this._adapter.addInteractionListener("click",this._clickListener),this._adapter.addInteractionListener("keydown",this._keydownListener)}_onClick(){this._disabled||this._selected||this._dispatchSelectEvent()}_onKeydown(o){if(this._disabled||this._selected)return;(o.key===" "||o.key==="Enter")&&(o.preventDefault(),this._adapter.animateStateLayer(),this._dispatchSelectEvent())}_dispatchSelectEvent(){this._adapter.emitHostEvent(t.events.SELECT,{bubbles:!0,composed:!0})}get disabled(){return this._disabled}set disabled(o){this._disabled!==o&&(this._disabled=o,this._adapter.setDisabled(this._disabled),this._adapter.toggleHostAttribute(t.attributes.DISABLED,this._disabled))}get selected(){return this._selected}set selected(o){this._selected!==o&&(this._selected=o,this._adapter.setSelected(this._selected),this._adapter.animateSelected(),this._adapter.toggleHostAttribute(t.attributes.SELECTED,this._selected))}get vertical(){return this._vertical}set vertical(o){this._vertical!==o&&(this._vertical=o,this._adapter.toggleHostAttribute(t.attributes.VERTICAL,this._vertical))}get stacked(){return this._stacked}set stacked(o){this._stacked!==o&&(this._stacked=o,this._adapter.toggleHostAttribute(t.attributes.STACKED,this._stacked))}get secondary(){return this._secondary}set secondary(o){this._secondary!==o&&(this._secondary=o,this._adapter.toggleHostAttribute(t.attributes.SECONDARY,this._secondary))}get inverted(){return this._inverted}set inverted(o){this._inverted!==o&&(this._inverted=o,this._adapter.toggleHostAttribute(t.attributes.INVERTED,this._inverted))}};var X='<template><div class="forge-tab" part="container"><span class="content" part="content"><slot name="leading"></slot><span class="label" part="label"><slot></slot></span><slot name="trailing"></slot><span class="indicator" part="indicator"></span></span><forge-state-layer exportparts="surface:state-layer" target=":host"></forge-state-layer><forge-focus-indicator exportparts="indicator:focus-indicator" target=":host" inward></forge-focus-indicator></div></template>',j=':host{display:-webkit-inline-box;display:inline-flex;outline:0;-webkit-tap-highlight-color:transparent;vertical-align:middle}:host([hidden]){display:none}.forge-tab{--_tab-active-color:var(--forge-tab-active-color, var(--forge-theme-primary, #3f51b5));--_tab-inactive-color:var(--forge-tab-inactive-color, var(--forge-theme-text-medium, rgba(0, 0, 0, 0.54)));--_tab-height:var(--forge-tab-height, 48px);--_tab-stacked-height:var(--forge-tab-stacked-height, 64px);--_tab-disabled-opacity:var(--forge-tab-disabled-opacity, 0.38);--_tab-indicator-color:var(--forge-tab-indicator-color, var(--_tab-active-color));--_tab-indicator-height:var(--forge-tab-indicator-height, 3px);--_tab-indicator-shape:var(--forge-tab-indicator-shape, 3px 3px 0 0);--_tab-vertical-indicator-shape:var(--forge-tab-indicator-shape, 3px 0 0 3px);--_tab-secondary-indicator-height:var(--forge-tab-indicator-height, 2px);--_tab-secondary-indicator-shape:var(--forge-tab-indicator-shape, 0);--_tab-inverted-indicator-shape:var(--forge-tab-indicator-shape, 0 0 3px 3px);--_tab-vertical-inverted-indicator-shape:var(--forge-tab-indicator-shape, 0 3px 3px 0);--_tab-container-color:var(--forge-tab-container-color, transparent);--_tab-container-height:var(--forge-tab-container-height, var(--_tab-height));--_tab-container-shape:var(--forge-tab-container-shape, 0);--_tab-content-height:var(--forge-tab-content-height, var(--_tab-height));--_tab-content-padding:var(--forge-tab-content-padding, var(--forge-spacing-xxsmall, 4px));--_tab-active-focus-icon-color:var(--forge-tab-active-focus-icon-color, var(--_tab-active-color));--_tab-active-hover-icon-color:var(--forge-tab-active-hover-icon-color, var(--_tab-active-color));--_tab-active-icon-color:var(--forge-tab-active-icon-color, var(--_tab-active-color));--_tab-active-pressed-icon-color:var(--forge-tab-active-pressed-icon-color, var(--_tab-active-color));--_tab-icon-size:var(--forge-tab-icon-size, 24px);--_tab-focus-icon-color:var(--forge-tab-focus-icon-color, var(--_tab-inactive-color));--_tab-hover-icon-color:var(--forge-tab-hover-icon-color, var(--_tab-inactive-color));--_tab-icon-color:var(--forge-tab-icon-color, var(--_tab-inactive-color));--_tab-pressed-icon-color:var(--forge-tab-pressed-icon-color, var(--_tab-inactive-color));--_tab-active-focus-label-text-color:var(--forge-tab-active-focus-label-text-color, var(--_tab-active-color));--_tab-active-hover-label-text-color:var(--forge-tab-active-hover-label-text-color, var(--_tab-active-color));--_tab-active-label-text-color:var(--forge-tab-active-label-text-color, var(--_tab-active-color));--_tab-active-pressed-label-text-color:var(--forge-tab-active-pressed-label-text-color, var(--_tab-active-color));--_tab-focus-label-text-color:var(--forge-tab-focus-label-text-color, var(--_tab-inactive-color));--_tab-hover-label-text-color:var(--forge-tab-hover-label-text-color, var(--_tab-inactive-color));--_tab-label-text-color:var(--forge-tab-label-text-color, var(--_tab-inactive-color));--_tab-pressed-label-text-color:var(--forge-tab-pressed-label-text-color, var(--_tab-inactive-color))}.forge-tab{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-button-font-family, var(--forge-typography-font-family, "Roboto", sans-serif));font-size:var(--forge-typography-button-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-button-font-size-scale, .875)));font-weight:var(--forge-typography-button-font-weight,500);line-height:var(--forge-typography-button-line-height, normal);letter-spacing:var(--forge-typography-button-letter-spacing, .0714285714em);text-transform:var(--forge-typography-button-text-transform,inherit);-webkit-text-decoration:var(--forge-typography-button-text-decoration,inherit);text-decoration:var(--forge-typography-button-text-decoration,inherit);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;border:none;outline:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-appearance:none;vertical-align:middle;background:0 0;text-decoration:none;width:100%;position:relative;padding:0;margin:0;z-index:0;background-color:var(--_tab-container-color);color:var(--_tab-label-text-color);min-height:var(--_tab-container-height)}.forge-tab::-moz-focus-inner{padding:0;border:0}.forge-tab ::slotted([slot=leading]),.forge-tab ::slotted([slot=trailing]){display:-webkit-inline-box;display:inline-flex;position:relative;-webkit-writing-mode:horizontal-tb;-ms-writing-mode:lr-tb;writing-mode:horizontal-tb;fill:currentColor;color:var(--_tab-icon-color);font-size:var(--_tab-icon-size);width:var(--_tab-icon-size);height:var(--_tab-icon-size)}.forge-tab:hover{color:var(--_tab-hover-label-text-color);cursor:pointer}.forge-tab:hover ::slotted([slot=leading]),.forge-tab:hover ::slotted([slot=trailing]){color:var(--_tab-hover-icon-color)}.forge-tab .content{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;display:-webkit-inline-box;display:inline-flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;white-space:nowrap;-webkit-transition:150ms color linear;transition:150ms color linear;max-height:calc(var(--_tab-content-height) + 2 * var(--_tab-content-padding));min-height:var(--_tab-content-height);padding:var(--_tab-content-padding) calc(2 * var(--_tab-content-padding));gap:var(--_tab-content-padding)}.forge-tab .content .label{display:inline-block;line-height:1}.forge-tab .indicator{position:absolute;-webkit-box-sizing:border-box;box-sizing:border-box;z-index:-1;-webkit-transform-origin:bottom left;transform-origin:bottom left;background:var(--_tab-indicator-color);border-radius:var(--_tab-indicator-shape);height:var(--_tab-indicator-height);inset:auto 0 0;opacity:0}::slotted(*),:host{white-space:nowrap}forge-focus-indicator{--forge-focus-indicator-color:var(--_tab-active-color);--forge-focus-indicator-shape:8px}forge-state-layer{--forge-state-layer-color:var(--_tab-inactive-color)}:host(:focus) .forge-tab{color:var(--_tab-focus-label-text-color)}:host(:focus) .forge-tab ::slotted([slot=leading]),:host(:focus) .forge-tab ::slotted([slot=trailing]){color:var(--_tab-focus-icon-color)}:host(:active) .forge-tab{color:var(--_tab-pressed-label-text-color);outline:0}:host(:active) .forge-tab ::slotted([slot=leading]),:host(:active) .forge-tab ::slotted([slot=trailing]){color:var(--_tab-pressed-icon-color)}:host([disabled]){cursor:not-allowed}:host([disabled]) .forge-tab{opacity:var(--_tab-disabled-opacity);pointer-events:none}:host([selected]) .forge-tab{color:var(--_tab-active-label-text-color)}:host([selected]) .forge-tab ::slotted([slot=leading]),:host([selected]) .forge-tab ::slotted([slot=trailing]){color:var(--_tab-active-icon-color)}:host([selected]) .forge-tab:hover{color:var(--_tab-active-hover-label-text-color)}:host([selected]) .forge-tab:hover ::slotted([slot=leading]),:host([selected]) .forge-tab:hover ::slotted([slot=trailing]){color:var(--_tab-active-hover-icon-color)}:host([selected]) .forge-tab .indicator{opacity:1}:host([selected]) forge-state-layer{--forge-state-layer-color:var(--_tab-active-color)}:host([selected]:not([vertical])) forge-focus-indicator{--forge-focus-indicator-offset-block:0 calc(var(--_tab-indicator-height) + 1px)}:host([selected]:focus) .forge-tab{color:var(--_tab-active-focus-label-text-color)}:host([selected]:focus) .forge-tab ::slotted([slot=leading]),:host([selected]:focus) .forge-tab ::slotted([slot=trailing]){color:var(--_tab-active-focus-icon-color)}:host([selected]:active) .forge-tab{color:var(--_tab-active-pressed-label-text-color)}:host([selected]:active) .forge-tab ::slotted([slot=leading]),:host([selected]:active) .forge-tab ::slotted([slot=trailing]){color:var(--_tab-active-pressed-icon-color)}:host([stacked]) .forge-tab{--_tab-height:var(--_tab-stacked-height)}:host([stacked]) .forge-tab .content{-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column}:host([secondary]) .forge-tab{--_tab-indicator-height:var(--_tab-secondary-indicator-height);--_tab-indicator-shape:var(--_tab-secondary-indicator-shape)}:host([secondary]) .content{width:100%}:host([secondary]) .indicator{min-width:100%}:host([vertical]) .forge-tab{width:100%;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;border-bottom:none}:host([vertical]) .forge-tab .content{width:100%}:host([vertical]) .forge-tab .indicator{height:100%;min-width:var(--_tab-indicator-height);inset:0 0 0 auto}:host([vertical]) forge-focus-indicator{--forge-focus-indicator-offset-inline:0 calc(var(--_tab-indicator-height) + 1px)}:host([vertical][secondary]) .content{min-height:100%}:host([vertical]:not([secondary])) .forge-tab{--_tab-indicator-shape:var(--_tab-vertical-indicator-shape)}:host([inverted]) .forge-tab{--_tab-indicator-shape:var(--_tab-inverted-indicator-shape)}:host([inverted]) .indicator{inset:0 0 auto;-webkit-transform-origin:top left;transform-origin:top left}:host([inverted][vertical]) .forge-tab{--_tab-indicator-shape:var(--_tab-vertical-inverted-indicator-shape)}:host([inverted][vertical]) .indicator{inset:0 auto 0 0}',r=class extends I{constructor(){super();T(this,X,j),this._foundation=new g(new p(this))}static get observedAttributes(){return[t.attributes.DISABLED,t.attributes.SELECTED,t.attributes.VERTICAL,t.attributes.STACKED,t.attributes.SECONDARY,t.attributes.INVERTED]}connectedCallback(){this._foundation.initialize()}attributeChangedCallback(e,i,a){switch(e){case t.attributes.DISABLED:this.disabled=s(a);break;case t.attributes.SELECTED:this.selected=s(a);break;case t.attributes.VERTICAL:this.vertical=s(a);break;case t.attributes.STACKED:this.stacked=s(a);break;case t.attributes.SECONDARY:this.secondary=s(a);break;case t.attributes.INVERTED:this.inverted=s(a);break}}};n([c()],r.prototype,"disabled",2),n([c()],r.prototype,"selected",2),n([c()],r.prototype,"vertical",2),n([c()],r.prototype,"stacked",2),n([c()],r.prototype,"secondary",2),n([c()],r.prototype,"inverted",2),r=n([S({name:t.elementName,dependencies:[w,L]})],r);export{D as a,J as b,t as c,p as d,g as e,r as f};
7
+ //# sourceMappingURL=chunk.QQRPV4RN.js.map