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

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 (429) hide show
  1. package/custom-elements.json +1152 -1491
  2. package/dist/esm/accordion/index.js +1 -1
  3. package/dist/esm/app-bar/app-bar/index.js +1 -1
  4. package/dist/esm/app-bar/help-button/index.js +1 -1
  5. package/dist/esm/app-bar/index.js +1 -1
  6. package/dist/esm/app-bar/menu-button/index.js +1 -1
  7. package/dist/esm/app-bar/notification-button/index.js +1 -1
  8. package/dist/esm/app-bar/profile-button/index.js +1 -1
  9. package/dist/esm/app-bar/search/index.js +1 -1
  10. package/dist/esm/autocomplete/index.js +1 -1
  11. package/dist/esm/avatar/index.js +1 -1
  12. package/dist/esm/backdrop/index.js +1 -1
  13. package/dist/esm/badge/index.js +1 -1
  14. package/dist/esm/banner/index.js +1 -1
  15. package/dist/esm/bottom-sheet/index.js +1 -1
  16. package/dist/esm/busy-indicator/index.js +1 -1
  17. package/dist/esm/button/index.js +1 -1
  18. package/dist/esm/button-area/index.js +1 -1
  19. package/dist/esm/button-toggle/button-toggle/index.js +1 -1
  20. package/dist/esm/button-toggle/button-toggle-group/index.js +1 -1
  21. package/dist/esm/button-toggle/index.js +1 -1
  22. package/dist/esm/calendar/calendar-dropdown/index.js +1 -1
  23. package/dist/esm/calendar/calendar-menu/index.js +1 -1
  24. package/dist/esm/calendar/index.js +1 -1
  25. package/dist/esm/card/index.js +1 -1
  26. package/dist/esm/checkbox/index.js +1 -1
  27. package/dist/esm/chip-field/index.js +1 -1
  28. package/dist/esm/chips/chip/index.js +1 -1
  29. package/dist/esm/chips/chip-set/index.js +1 -1
  30. package/dist/esm/chips/index.js +1 -1
  31. package/dist/esm/chunks/{chunk.74HZVSDM.js → chunk.253H47GA.js} +2 -2
  32. package/dist/esm/chunks/{chunk.BKQSLDMK.js → chunk.2K3T63I2.js} +2 -2
  33. package/dist/esm/chunks/{chunk.WQHKUNR7.js → chunk.2NGPMBVU.js} +2 -2
  34. package/dist/esm/chunks/{chunk.4O6OEUGY.js → chunk.2UVBQKJI.js} +2 -2
  35. package/dist/esm/chunks/{chunk.5XLCY232.js → chunk.3PHNRX5D.js} +2 -2
  36. package/dist/esm/chunks/{chunk.EPRRK33O.js → chunk.3QUIEBYX.js} +2 -2
  37. package/dist/esm/chunks/chunk.42VNZ74O.js +7 -0
  38. package/dist/esm/chunks/chunk.42VNZ74O.js.map +7 -0
  39. package/dist/esm/chunks/{chunk.QZ57WM3D.js → chunk.4JEBLMI3.js} +2 -2
  40. package/dist/esm/chunks/chunk.4MEXAG3E.js +7 -0
  41. package/dist/esm/chunks/chunk.4MEXAG3E.js.map +7 -0
  42. package/dist/esm/chunks/{chunk.5T7TT3AB.js → chunk.4X4SSZQU.js} +2 -2
  43. package/dist/esm/chunks/chunk.53HPDCFR.js +7 -0
  44. package/dist/esm/chunks/chunk.53HPDCFR.js.map +7 -0
  45. package/dist/esm/chunks/{chunk.X7YTDVNT.js → chunk.5BQT3E7Y.js} +2 -2
  46. package/dist/esm/chunks/{chunk.EWFNM4WO.js → chunk.5YTYVHYR.js} +2 -2
  47. package/dist/esm/chunks/{chunk.YWDYBX3G.js → chunk.6J27XSTE.js} +2 -2
  48. package/dist/esm/chunks/{chunk.65WE722H.js → chunk.6P4G73VL.js} +2 -2
  49. package/dist/esm/chunks/{chunk.ZPVRRFT7.js → chunk.6RZCV4ZV.js} +2 -2
  50. package/dist/esm/chunks/{chunk.WNH7EHZP.js → chunk.6YDMW2GO.js} +2 -2
  51. package/dist/esm/chunks/{chunk.XBFH6M72.js → chunk.7QO5JEOC.js} +2 -2
  52. package/dist/esm/chunks/{chunk.BZG47SA5.js → chunk.A6N7ZGN5.js} +2 -2
  53. package/dist/esm/chunks/{chunk.BZG47SA5.js.map → chunk.A6N7ZGN5.js.map} +1 -1
  54. package/dist/esm/chunks/{chunk.2YE556AM.js → chunk.AQOLBID6.js} +2 -2
  55. package/dist/esm/chunks/{chunk.OXVCCHM5.js → chunk.AWEDY45N.js} +2 -2
  56. package/dist/esm/chunks/{chunk.P5XHGSJY.js → chunk.BRLXEKLE.js} +2 -2
  57. package/dist/esm/chunks/chunk.CLODJYSW.js +7 -0
  58. package/dist/esm/chunks/chunk.CLODJYSW.js.map +7 -0
  59. package/dist/esm/chunks/{chunk.KPC6IS3C.js → chunk.CPD4RUF2.js} +2 -2
  60. package/dist/esm/chunks/{chunk.YBPAGWVG.js → chunk.D7L2IMHJ.js} +2 -2
  61. package/dist/esm/chunks/{chunk.C72LM2AL.js → chunk.DOAQODLZ.js} +2 -2
  62. package/dist/esm/chunks/{chunk.EN2HVFJ4.js → chunk.EPVNVBZI.js} +2 -2
  63. package/dist/esm/chunks/chunk.F2327OUE.js +7 -0
  64. package/dist/esm/chunks/chunk.F2327OUE.js.map +7 -0
  65. package/dist/esm/chunks/chunk.FTADCSFT.js +7 -0
  66. package/dist/esm/chunks/{chunk.HJUFU2PV.js.map → chunk.FTADCSFT.js.map} +2 -2
  67. package/dist/esm/chunks/{chunk.FQVR2QNF.js → chunk.GAHE4QVB.js} +2 -2
  68. package/dist/esm/chunks/chunk.GDKJ4RZX.js +7 -0
  69. package/dist/esm/chunks/chunk.GDKJ4RZX.js.map +7 -0
  70. package/dist/esm/chunks/{chunk.N75VD4S4.js → chunk.GFKYBECY.js} +2 -2
  71. package/dist/esm/chunks/{chunk.IA27LU2O.js → chunk.GYGIU62J.js} +2 -2
  72. package/dist/esm/chunks/{chunk.OT3JZ6JO.js → chunk.H6AG3EFX.js} +2 -2
  73. package/dist/esm/chunks/{chunk.5WVOPPBY.js → chunk.HBFU4EGB.js} +2 -2
  74. package/dist/esm/chunks/{chunk.RFKKHN7V.js → chunk.HP4333ZN.js} +2 -2
  75. package/dist/esm/chunks/{chunk.TNEUDWZU.js → chunk.IC4DLKE3.js} +2 -2
  76. package/dist/esm/chunks/{chunk.QKTNCOVX.js → chunk.IDB4KFSQ.js} +2 -2
  77. package/dist/esm/chunks/{chunk.B53Q676I.js → chunk.IQ3JWZ2P.js} +2 -2
  78. package/dist/esm/chunks/{chunk.K3STAW42.js → chunk.JBQXD3FJ.js} +2 -2
  79. package/dist/esm/chunks/{chunk.FPRBYGET.js → chunk.JLDKNU5Q.js} +2 -2
  80. package/dist/esm/chunks/{chunk.74JHE77R.js → chunk.JMIUB3S3.js} +2 -2
  81. package/dist/esm/chunks/{chunk.JXJVPJRO.js → chunk.JPOTN7LL.js} +2 -2
  82. package/dist/esm/chunks/{chunk.T4N7KZHZ.js → chunk.JRROGJ2G.js} +2 -2
  83. package/dist/esm/chunks/{chunk.H6MMHAQI.js → chunk.KD4DVSJR.js} +2 -2
  84. package/dist/esm/chunks/{chunk.OJGPKHHC.js → chunk.KOGQOU27.js} +2 -2
  85. package/dist/esm/chunks/{chunk.DPIWAXEW.js → chunk.KVPKVWCZ.js} +2 -2
  86. package/dist/esm/chunks/{chunk.TE6ZNUAM.js → chunk.KWP42KR7.js} +2 -2
  87. package/dist/esm/chunks/{chunk.ZUTQPJ2B.js → chunk.KYACLC66.js} +2 -2
  88. package/dist/esm/chunks/{chunk.GHMAI3SM.js → chunk.KZMXTOLO.js} +2 -2
  89. package/dist/esm/chunks/{chunk.W5TDBDVY.js → chunk.L5OB7WM2.js} +2 -2
  90. package/dist/esm/chunks/{chunk.4JB3SESQ.js → chunk.L7BSLZCB.js} +2 -2
  91. package/dist/esm/chunks/{chunk.FZELFLPE.js → chunk.LDHY3O6H.js} +2 -2
  92. package/dist/esm/chunks/{chunk.NW54VA4E.js → chunk.LEN33O6V.js} +2 -2
  93. package/dist/esm/chunks/{chunk.V564JB6A.js → chunk.LFLIYBAB.js} +2 -2
  94. package/dist/esm/chunks/{chunk.RDQ3QGWS.js → chunk.LXFL2C62.js} +2 -2
  95. package/dist/esm/chunks/{chunk.ETDUW5K2.js → chunk.ME7ICFCZ.js} +2 -2
  96. package/dist/esm/chunks/{chunk.ZWIEYVZC.js → chunk.MTZOQQXR.js} +2 -2
  97. package/dist/esm/chunks/{chunk.6PB5OWMP.js → chunk.NBYCIDFC.js} +2 -2
  98. package/dist/esm/chunks/chunk.ND2X5OQ4.js +7 -0
  99. package/dist/esm/chunks/chunk.ND2X5OQ4.js.map +7 -0
  100. package/dist/esm/chunks/chunk.NES5KNAU.js +12 -0
  101. package/dist/esm/chunks/{chunk.R53VHVKB.js.map → chunk.NES5KNAU.js.map} +3 -3
  102. package/dist/esm/chunks/{chunk.GTGXHY4A.js → chunk.NPCUVYWP.js} +2 -2
  103. package/dist/esm/chunks/{chunk.TZ67MC2N.js → chunk.O5HBMTSZ.js} +2 -2
  104. package/dist/esm/chunks/{chunk.4JL5LW5J.js → chunk.O7DID7GP.js} +2 -2
  105. package/dist/esm/chunks/{chunk.V3IHX6B2.js → chunk.OAZXY4Q5.js} +2 -2
  106. package/dist/esm/chunks/{chunk.55D2BMXX.js → chunk.OD54UG2G.js} +2 -2
  107. package/dist/esm/chunks/{chunk.X57DRPFB.js → chunk.OJFSECZE.js} +2 -2
  108. package/dist/esm/chunks/{chunk.5LCWC3A7.js → chunk.OJHNLDNM.js} +2 -2
  109. package/dist/esm/chunks/{chunk.VGIZJ32U.js → chunk.OR5GB6X3.js} +2 -2
  110. package/dist/esm/chunks/{chunk.KM5XYTE3.js → chunk.OVDO5RVX.js} +2 -2
  111. package/dist/esm/chunks/{chunk.4GMGQZOW.js → chunk.PGSL6NFZ.js} +2 -2
  112. package/dist/esm/chunks/{chunk.NKEAMFO4.js → chunk.PR76A5VF.js} +2 -2
  113. package/dist/esm/chunks/{chunk.XOH2JCRS.js → chunk.PZAL7VQF.js} +2 -2
  114. package/dist/esm/chunks/{chunk.FWWBFNQA.js → chunk.QQUSMJIM.js} +2 -2
  115. package/dist/esm/chunks/{chunk.ZYCKD6K5.js → chunk.RCYIHHYO.js} +2 -2
  116. package/dist/esm/chunks/{chunk.HRGTAVNA.js → chunk.RKIJTSSL.js} +1 -1
  117. package/dist/esm/chunks/{chunk.R2QENXIL.js → chunk.RLOZYTNN.js} +2 -2
  118. package/dist/esm/chunks/{chunk.DGG5ABL3.js → chunk.S3KKICL3.js} +2 -2
  119. package/dist/esm/chunks/{chunk.E62ZPQSM.js → chunk.SN3VXOWN.js} +2 -2
  120. package/dist/esm/chunks/{chunk.M4KCRUKW.js → chunk.STIZCKQA.js} +2 -2
  121. package/dist/esm/chunks/{chunk.6IPX5C4B.js → chunk.SUR46MJG.js} +2 -2
  122. package/dist/esm/chunks/{chunk.WA2YP4NC.js → chunk.SZETPZGY.js} +2 -2
  123. package/dist/esm/chunks/{chunk.FZZUNYH5.js → chunk.TGGC2THA.js} +2 -2
  124. package/dist/esm/chunks/{chunk.Y6D5Z56X.js → chunk.TRSICKKS.js} +2 -2
  125. package/dist/esm/chunks/{chunk.FGHSNC2V.js → chunk.U7S4DJTU.js} +2 -2
  126. package/dist/esm/chunks/{chunk.GTBCTNMI.js → chunk.UCIVBX64.js} +2 -2
  127. package/dist/esm/chunks/{chunk.RRNSZCVJ.js → chunk.UVXKHQQZ.js} +2 -2
  128. package/dist/esm/chunks/{chunk.3U6A353B.js → chunk.UYAP5GFT.js} +2 -2
  129. package/dist/esm/chunks/{chunk.ZLACSRD4.js → chunk.V7HN24VV.js} +2 -2
  130. package/dist/esm/chunks/{chunk.4QOXI2GM.js → chunk.VLADAZRB.js} +2 -2
  131. package/dist/esm/chunks/{chunk.ECJBVX3D.js → chunk.VN7JOJVU.js} +2 -2
  132. package/dist/esm/chunks/{chunk.GLUKTMQU.js → chunk.VNFATHAQ.js} +2 -2
  133. package/dist/esm/chunks/{chunk.IO3TM653.js → chunk.VNH44AGF.js} +2 -2
  134. package/dist/esm/chunks/{chunk.M5JGYRH4.js → chunk.VOL4DT5F.js} +2 -2
  135. package/dist/esm/chunks/{chunk.4OG3OGVO.js → chunk.VX7H6YHF.js} +2 -2
  136. package/dist/esm/chunks/{chunk.OSCODMUG.js → chunk.W7CM652O.js} +2 -2
  137. package/dist/esm/chunks/chunk.WINWKU4K.js +7 -0
  138. package/dist/esm/chunks/chunk.WINWKU4K.js.map +7 -0
  139. package/dist/esm/chunks/{chunk.BZVLSWZR.js → chunk.WJ26N3FC.js} +2 -2
  140. package/dist/esm/chunks/{chunk.ZHMV5SR4.js → chunk.WJLHVUHN.js} +2 -2
  141. package/dist/esm/chunks/{chunk.GURV4TDZ.js → chunk.WXFJYCGO.js} +2 -2
  142. package/dist/esm/chunks/{chunk.VZTV4GXC.js → chunk.YCG7OVYF.js} +2 -2
  143. package/dist/esm/chunks/{chunk.7SYU6KRU.js → chunk.YLJTJKN4.js} +2 -2
  144. package/dist/esm/chunks/{chunk.2OZ2HVBZ.js → chunk.Z7JF5PPO.js} +2 -2
  145. package/dist/esm/chunks/{chunk.WYSUQK6Z.js → chunk.Z7SLVU2O.js} +2 -2
  146. package/dist/esm/chunks/{chunk.Q5YXX4DU.js → chunk.ZJQLVAJY.js} +2 -2
  147. package/dist/esm/chunks/{chunk.S32JKL3M.js → chunk.ZSHN7Z45.js} +2 -2
  148. package/dist/esm/chunks/{chunk.KV7PGQJ7.js → chunk.ZTBOQMRE.js} +2 -2
  149. package/dist/esm/chunks/{chunk.WFQYTXCB.js → chunk.ZZRAZZ3N.js} +2 -2
  150. package/dist/esm/chunks/{chunk.SJQPD3CO.js → chunk.ZZV7P3FR.js} +2 -2
  151. package/dist/esm/circular-progress/index.js +1 -1
  152. package/dist/esm/color-picker/index.js +1 -1
  153. package/dist/esm/core/index.js +1 -1
  154. package/dist/esm/date-picker/index.js +1 -1
  155. package/dist/esm/date-range-picker/index.js +1 -1
  156. package/dist/esm/deprecated/button/index.js +7 -0
  157. package/dist/esm/deprecated/index.js +7 -0
  158. package/dist/esm/deprecated/index.js.map +7 -0
  159. package/dist/esm/dialog/index.js +1 -1
  160. package/dist/esm/divider/index.js +1 -1
  161. package/dist/esm/drawer/drawer/index.js +1 -1
  162. package/dist/esm/drawer/index.js +1 -1
  163. package/dist/esm/drawer/mini-drawer/index.js +1 -1
  164. package/dist/esm/drawer/modal-drawer/index.js +1 -1
  165. package/dist/esm/expansion-panel/index.js +1 -1
  166. package/dist/esm/file-picker/index.js +1 -1
  167. package/dist/esm/floating-action-button/index.js +1 -1
  168. package/dist/esm/floating-label/index.js +1 -1
  169. package/dist/esm/focus-indicator/index.js +1 -1
  170. package/dist/esm/icon/index.js +1 -1
  171. package/dist/esm/icon-button/index.js +1 -1
  172. package/dist/esm/index.js +1 -1
  173. package/dist/esm/inline-message/index.js +1 -1
  174. package/dist/esm/keyboard-shortcut/index.js +1 -1
  175. package/dist/esm/label/index.js +1 -1
  176. package/dist/esm/label-value/index.js +1 -1
  177. package/dist/esm/linear-progress/index.js +1 -1
  178. package/dist/esm/list/index.js +1 -1
  179. package/dist/esm/list/list/index.js +1 -1
  180. package/dist/esm/list/list-item/index.js +1 -1
  181. package/dist/esm/list-dropdown/index.js +1 -1
  182. package/dist/esm/menu/index.js +1 -1
  183. package/dist/esm/open-icon/index.js +1 -1
  184. package/dist/esm/overlay/index.js +1 -1
  185. package/dist/esm/page-state/index.js +1 -1
  186. package/dist/esm/paginator/index.js +1 -1
  187. package/dist/esm/popover/index.js +1 -1
  188. package/dist/esm/popup/index.js +1 -1
  189. package/dist/esm/product-icon/index.js +1 -1
  190. package/dist/esm/profile-card/index.js +1 -1
  191. package/dist/esm/quantity-field/index.js +1 -1
  192. package/dist/esm/radio/index.js +1 -1
  193. package/dist/esm/radio/radio/index.js +1 -1
  194. package/dist/esm/radio/radio-group/index.js +1 -1
  195. package/dist/esm/ripple/index.js +1 -1
  196. package/dist/esm/scaffold/index.js +1 -1
  197. package/dist/esm/select/core/index.js +1 -1
  198. package/dist/esm/select/index.js +1 -1
  199. package/dist/esm/select/option/index.js +1 -1
  200. package/dist/esm/select/option-group/index.js +1 -1
  201. package/dist/esm/select/select/index.js +1 -1
  202. package/dist/esm/select/select-dropdown/index.js +1 -1
  203. package/dist/esm/skeleton/index.js +1 -1
  204. package/dist/esm/slider/index.js +1 -1
  205. package/dist/esm/split-button/index.js +1 -1
  206. package/dist/esm/split-view/index.js +1 -1
  207. package/dist/esm/split-view/split-view/index.js +1 -1
  208. package/dist/esm/split-view/split-view-panel/index.js +1 -1
  209. package/dist/esm/stack/index.js +1 -1
  210. package/dist/esm/state-layer/index.js +1 -1
  211. package/dist/esm/stepper/index.js +1 -1
  212. package/dist/esm/stepper/step/index.js +1 -1
  213. package/dist/esm/stepper/stepper/index.js +1 -1
  214. package/dist/esm/switch/index.js +1 -1
  215. package/dist/esm/table/index.js +1 -1
  216. package/dist/esm/tabs/index.js +1 -1
  217. package/dist/esm/tabs/tab/index.js +1 -1
  218. package/dist/esm/tabs/tab-bar/index.js +1 -1
  219. package/dist/esm/text-field/index.js +1 -1
  220. package/dist/esm/time-picker/index.js +1 -1
  221. package/dist/esm/toast/index.js +1 -1
  222. package/dist/esm/toolbar/index.js +1 -1
  223. package/dist/esm/tooltip/index.js +1 -1
  224. package/dist/esm/utils/index.js +1 -1
  225. package/dist/esm/view-switcher/index.js +1 -1
  226. package/dist/esm/view-switcher/view/index.js +1 -1
  227. package/dist/forge-dark.css +1 -1
  228. package/dist/forge.css +1 -1
  229. package/dist/theme/forge-theme.css +1 -1
  230. package/dist/typography/forge-typography.css +1 -1
  231. package/esm/app-bar/notification-button/app-bar-notification-button-adapter.js +1 -1
  232. package/esm/avatar/avatar-adapter.d.ts +0 -6
  233. package/esm/avatar/avatar-adapter.js +6 -14
  234. package/esm/avatar/avatar-constants.d.ts +0 -1
  235. package/esm/avatar/avatar-constants.js +2 -3
  236. package/esm/avatar/avatar-foundation.d.ts +0 -5
  237. package/esm/avatar/avatar-foundation.js +0 -15
  238. package/esm/avatar/avatar.d.ts +28 -7
  239. package/esm/avatar/avatar.js +29 -12
  240. package/esm/avatar/index.d.ts +0 -1
  241. package/esm/avatar/index.js +0 -1
  242. package/esm/badge/badge-constants.d.ts +8 -4
  243. package/esm/badge/badge-constants.js +7 -4
  244. package/esm/badge/badge.d.ts +38 -11
  245. package/esm/badge/badge.js +55 -32
  246. package/esm/badge/index.d.ts +0 -3
  247. package/esm/badge/index.js +0 -3
  248. package/esm/banner/banner-adapter.d.ts +14 -18
  249. package/esm/banner/banner-adapter.js +17 -25
  250. package/esm/banner/banner-constants.d.ts +17 -16
  251. package/esm/banner/banner-constants.js +16 -21
  252. package/esm/banner/banner-foundation.d.ts +15 -14
  253. package/esm/banner/banner-foundation.js +49 -44
  254. package/esm/banner/banner.d.ts +33 -7
  255. package/esm/banner/banner.js +49 -18
  256. package/esm/circular-progress/circular-progress-foundation.js +3 -0
  257. package/esm/deprecated/button/deprecated-button-component-delegate.d.ts +24 -0
  258. package/esm/deprecated/button/deprecated-button-component-delegate.js +39 -0
  259. package/esm/deprecated/button/deprecated-button-constants.d.ts +17 -0
  260. package/esm/deprecated/button/deprecated-button-constants.js +20 -0
  261. package/esm/deprecated/button/deprecated-button.d.ts +54 -0
  262. package/esm/deprecated/button/deprecated-button.js +149 -0
  263. package/esm/deprecated/button/index.d.ts +12 -0
  264. package/esm/deprecated/button/index.js +16 -0
  265. package/{dist/esm/chunks/chunk.WINL2C7Q.js → esm/deprecated/index.d.ts} +1 -1
  266. package/esm/deprecated/index.js +6 -0
  267. package/esm/index.d.ts +5 -0
  268. package/esm/index.js +17 -0
  269. package/esm/inline-message/inline-message-constants.d.ts +9 -2
  270. package/esm/inline-message/inline-message-constants.js +7 -3
  271. package/esm/inline-message/inline-message.d.ts +31 -2
  272. package/esm/inline-message/inline-message.js +37 -5
  273. package/esm/split-view/split-view-panel/split-view-panel.js +1 -1
  274. package/esm/state-layer/state-layer-foundation.js +3 -0
  275. package/package.json +2 -2
  276. package/styles/avatar/_core.scss +43 -0
  277. package/styles/avatar/_token-utils.scss +30 -0
  278. package/styles/avatar/avatar.scss +21 -3
  279. package/styles/badge/_core.scss +58 -0
  280. package/styles/badge/_token-utils.scss +30 -0
  281. package/styles/badge/badge.scss +101 -15
  282. package/styles/badge/index.scss +6 -0
  283. package/styles/banner/_core.scss +53 -0
  284. package/styles/banner/_token-utils.scss +30 -0
  285. package/styles/banner/banner.scss +109 -9
  286. package/styles/banner/index.scss +6 -0
  287. package/styles/core/styles/tokens/avatar/_tokens.scss +23 -0
  288. package/styles/core/styles/tokens/badge/_tokens.scss +42 -0
  289. package/styles/core/styles/tokens/banner/_tokens.scss +25 -0
  290. package/styles/core/styles/tokens/inline-message/_tokens.scss +31 -0
  291. package/styles/core/styles/tokens/theme/_token-utils.scss +22 -1
  292. package/styles/core/styles/typography/index.scss +1 -1
  293. package/styles/deprecated/button/deprecated-button.scss +133 -0
  294. package/styles/inline-message/_core.scss +45 -0
  295. package/styles/inline-message/_token-utils.scss +30 -0
  296. package/styles/inline-message/index.scss +6 -0
  297. package/styles/inline-message/inline-message.scss +75 -9
  298. package/styles/theme/_theme-dark.scss +5 -11
  299. package/dist/esm/chunks/chunk.24NQGTNU.js +0 -7
  300. package/dist/esm/chunks/chunk.24NQGTNU.js.map +0 -7
  301. package/dist/esm/chunks/chunk.2JCTFKCR.js +0 -7
  302. package/dist/esm/chunks/chunk.2JCTFKCR.js.map +0 -7
  303. package/dist/esm/chunks/chunk.3VHQPHQP.js +0 -7
  304. package/dist/esm/chunks/chunk.3VHQPHQP.js.map +0 -7
  305. package/dist/esm/chunks/chunk.436USWLL.js +0 -7
  306. package/dist/esm/chunks/chunk.436USWLL.js.map +0 -7
  307. package/dist/esm/chunks/chunk.HJUFU2PV.js +0 -7
  308. package/dist/esm/chunks/chunk.LCS2O4Y7.js +0 -7
  309. package/dist/esm/chunks/chunk.LCS2O4Y7.js.map +0 -7
  310. package/dist/esm/chunks/chunk.R53VHVKB.js +0 -12
  311. package/dist/esm/chunks/chunk.T235SNYZ.js +0 -7
  312. package/dist/esm/chunks/chunk.T235SNYZ.js.map +0 -7
  313. package/dist/esm/chunks/chunk.ZS3T6MJS.js +0 -7
  314. package/dist/esm/chunks/chunk.ZS3T6MJS.js.map +0 -7
  315. package/esm/avatar/avatar-component-delegate.d.ts +0 -16
  316. package/esm/avatar/avatar-component-delegate.js +0 -15
  317. package/esm/badge/badge-adapter.d.ts +0 -17
  318. package/esm/badge/badge-adapter.js +0 -20
  319. package/esm/badge/badge-component-delegate.d.ts +0 -16
  320. package/esm/badge/badge-component-delegate.js +0 -15
  321. package/esm/badge/badge-foundation.d.ts +0 -24
  322. package/esm/badge/badge-foundation.js +0 -55
  323. package/styles/avatar/_mixins.scss +0 -46
  324. package/styles/avatar/_variables.scss +0 -16
  325. package/styles/badge/_mixins.scss +0 -125
  326. package/styles/badge/_variables.scss +0 -87
  327. package/styles/banner/_mixins.scss +0 -219
  328. package/styles/banner/_variables.scss +0 -88
  329. package/styles/inline-message/_mixins.scss +0 -82
  330. package/styles/inline-message/_variables.scss +0 -67
  331. /package/dist/esm/chunks/{chunk.74HZVSDM.js.map → chunk.253H47GA.js.map} +0 -0
  332. /package/dist/esm/chunks/{chunk.BKQSLDMK.js.map → chunk.2K3T63I2.js.map} +0 -0
  333. /package/dist/esm/chunks/{chunk.WQHKUNR7.js.map → chunk.2NGPMBVU.js.map} +0 -0
  334. /package/dist/esm/chunks/{chunk.4O6OEUGY.js.map → chunk.2UVBQKJI.js.map} +0 -0
  335. /package/dist/esm/chunks/{chunk.5XLCY232.js.map → chunk.3PHNRX5D.js.map} +0 -0
  336. /package/dist/esm/chunks/{chunk.EPRRK33O.js.map → chunk.3QUIEBYX.js.map} +0 -0
  337. /package/dist/esm/chunks/{chunk.QZ57WM3D.js.map → chunk.4JEBLMI3.js.map} +0 -0
  338. /package/dist/esm/chunks/{chunk.5T7TT3AB.js.map → chunk.4X4SSZQU.js.map} +0 -0
  339. /package/dist/esm/chunks/{chunk.X7YTDVNT.js.map → chunk.5BQT3E7Y.js.map} +0 -0
  340. /package/dist/esm/chunks/{chunk.EWFNM4WO.js.map → chunk.5YTYVHYR.js.map} +0 -0
  341. /package/dist/esm/chunks/{chunk.YWDYBX3G.js.map → chunk.6J27XSTE.js.map} +0 -0
  342. /package/dist/esm/chunks/{chunk.65WE722H.js.map → chunk.6P4G73VL.js.map} +0 -0
  343. /package/dist/esm/chunks/{chunk.ZPVRRFT7.js.map → chunk.6RZCV4ZV.js.map} +0 -0
  344. /package/dist/esm/chunks/{chunk.WNH7EHZP.js.map → chunk.6YDMW2GO.js.map} +0 -0
  345. /package/dist/esm/chunks/{chunk.XBFH6M72.js.map → chunk.7QO5JEOC.js.map} +0 -0
  346. /package/dist/esm/chunks/{chunk.2YE556AM.js.map → chunk.AQOLBID6.js.map} +0 -0
  347. /package/dist/esm/chunks/{chunk.OXVCCHM5.js.map → chunk.AWEDY45N.js.map} +0 -0
  348. /package/dist/esm/chunks/{chunk.P5XHGSJY.js.map → chunk.BRLXEKLE.js.map} +0 -0
  349. /package/dist/esm/chunks/{chunk.KPC6IS3C.js.map → chunk.CPD4RUF2.js.map} +0 -0
  350. /package/dist/esm/chunks/{chunk.YBPAGWVG.js.map → chunk.D7L2IMHJ.js.map} +0 -0
  351. /package/dist/esm/chunks/{chunk.C72LM2AL.js.map → chunk.DOAQODLZ.js.map} +0 -0
  352. /package/dist/esm/chunks/{chunk.EN2HVFJ4.js.map → chunk.EPVNVBZI.js.map} +0 -0
  353. /package/dist/esm/chunks/{chunk.FQVR2QNF.js.map → chunk.GAHE4QVB.js.map} +0 -0
  354. /package/dist/esm/chunks/{chunk.N75VD4S4.js.map → chunk.GFKYBECY.js.map} +0 -0
  355. /package/dist/esm/chunks/{chunk.IA27LU2O.js.map → chunk.GYGIU62J.js.map} +0 -0
  356. /package/dist/esm/chunks/{chunk.OT3JZ6JO.js.map → chunk.H6AG3EFX.js.map} +0 -0
  357. /package/dist/esm/chunks/{chunk.5WVOPPBY.js.map → chunk.HBFU4EGB.js.map} +0 -0
  358. /package/dist/esm/chunks/{chunk.RFKKHN7V.js.map → chunk.HP4333ZN.js.map} +0 -0
  359. /package/dist/esm/chunks/{chunk.TNEUDWZU.js.map → chunk.IC4DLKE3.js.map} +0 -0
  360. /package/dist/esm/chunks/{chunk.QKTNCOVX.js.map → chunk.IDB4KFSQ.js.map} +0 -0
  361. /package/dist/esm/chunks/{chunk.B53Q676I.js.map → chunk.IQ3JWZ2P.js.map} +0 -0
  362. /package/dist/esm/chunks/{chunk.K3STAW42.js.map → chunk.JBQXD3FJ.js.map} +0 -0
  363. /package/dist/esm/chunks/{chunk.FPRBYGET.js.map → chunk.JLDKNU5Q.js.map} +0 -0
  364. /package/dist/esm/chunks/{chunk.74JHE77R.js.map → chunk.JMIUB3S3.js.map} +0 -0
  365. /package/dist/esm/chunks/{chunk.JXJVPJRO.js.map → chunk.JPOTN7LL.js.map} +0 -0
  366. /package/dist/esm/chunks/{chunk.T4N7KZHZ.js.map → chunk.JRROGJ2G.js.map} +0 -0
  367. /package/dist/esm/chunks/{chunk.H6MMHAQI.js.map → chunk.KD4DVSJR.js.map} +0 -0
  368. /package/dist/esm/chunks/{chunk.OJGPKHHC.js.map → chunk.KOGQOU27.js.map} +0 -0
  369. /package/dist/esm/chunks/{chunk.DPIWAXEW.js.map → chunk.KVPKVWCZ.js.map} +0 -0
  370. /package/dist/esm/chunks/{chunk.TE6ZNUAM.js.map → chunk.KWP42KR7.js.map} +0 -0
  371. /package/dist/esm/chunks/{chunk.ZUTQPJ2B.js.map → chunk.KYACLC66.js.map} +0 -0
  372. /package/dist/esm/chunks/{chunk.GHMAI3SM.js.map → chunk.KZMXTOLO.js.map} +0 -0
  373. /package/dist/esm/chunks/{chunk.W5TDBDVY.js.map → chunk.L5OB7WM2.js.map} +0 -0
  374. /package/dist/esm/chunks/{chunk.4JB3SESQ.js.map → chunk.L7BSLZCB.js.map} +0 -0
  375. /package/dist/esm/chunks/{chunk.FZELFLPE.js.map → chunk.LDHY3O6H.js.map} +0 -0
  376. /package/dist/esm/chunks/{chunk.NW54VA4E.js.map → chunk.LEN33O6V.js.map} +0 -0
  377. /package/dist/esm/chunks/{chunk.V564JB6A.js.map → chunk.LFLIYBAB.js.map} +0 -0
  378. /package/dist/esm/chunks/{chunk.RDQ3QGWS.js.map → chunk.LXFL2C62.js.map} +0 -0
  379. /package/dist/esm/chunks/{chunk.ETDUW5K2.js.map → chunk.ME7ICFCZ.js.map} +0 -0
  380. /package/dist/esm/chunks/{chunk.ZWIEYVZC.js.map → chunk.MTZOQQXR.js.map} +0 -0
  381. /package/dist/esm/chunks/{chunk.6PB5OWMP.js.map → chunk.NBYCIDFC.js.map} +0 -0
  382. /package/dist/esm/chunks/{chunk.GTGXHY4A.js.map → chunk.NPCUVYWP.js.map} +0 -0
  383. /package/dist/esm/chunks/{chunk.TZ67MC2N.js.map → chunk.O5HBMTSZ.js.map} +0 -0
  384. /package/dist/esm/chunks/{chunk.4JL5LW5J.js.map → chunk.O7DID7GP.js.map} +0 -0
  385. /package/dist/esm/chunks/{chunk.V3IHX6B2.js.map → chunk.OAZXY4Q5.js.map} +0 -0
  386. /package/dist/esm/chunks/{chunk.55D2BMXX.js.map → chunk.OD54UG2G.js.map} +0 -0
  387. /package/dist/esm/chunks/{chunk.X57DRPFB.js.map → chunk.OJFSECZE.js.map} +0 -0
  388. /package/dist/esm/chunks/{chunk.5LCWC3A7.js.map → chunk.OJHNLDNM.js.map} +0 -0
  389. /package/dist/esm/chunks/{chunk.VGIZJ32U.js.map → chunk.OR5GB6X3.js.map} +0 -0
  390. /package/dist/esm/chunks/{chunk.KM5XYTE3.js.map → chunk.OVDO5RVX.js.map} +0 -0
  391. /package/dist/esm/chunks/{chunk.4GMGQZOW.js.map → chunk.PGSL6NFZ.js.map} +0 -0
  392. /package/dist/esm/chunks/{chunk.NKEAMFO4.js.map → chunk.PR76A5VF.js.map} +0 -0
  393. /package/dist/esm/chunks/{chunk.XOH2JCRS.js.map → chunk.PZAL7VQF.js.map} +0 -0
  394. /package/dist/esm/chunks/{chunk.FWWBFNQA.js.map → chunk.QQUSMJIM.js.map} +0 -0
  395. /package/dist/esm/chunks/{chunk.ZYCKD6K5.js.map → chunk.RCYIHHYO.js.map} +0 -0
  396. /package/dist/esm/chunks/{chunk.HRGTAVNA.js.map → chunk.RKIJTSSL.js.map} +0 -0
  397. /package/dist/esm/chunks/{chunk.R2QENXIL.js.map → chunk.RLOZYTNN.js.map} +0 -0
  398. /package/dist/esm/chunks/{chunk.DGG5ABL3.js.map → chunk.S3KKICL3.js.map} +0 -0
  399. /package/dist/esm/chunks/{chunk.E62ZPQSM.js.map → chunk.SN3VXOWN.js.map} +0 -0
  400. /package/dist/esm/chunks/{chunk.M4KCRUKW.js.map → chunk.STIZCKQA.js.map} +0 -0
  401. /package/dist/esm/chunks/{chunk.6IPX5C4B.js.map → chunk.SUR46MJG.js.map} +0 -0
  402. /package/dist/esm/chunks/{chunk.WA2YP4NC.js.map → chunk.SZETPZGY.js.map} +0 -0
  403. /package/dist/esm/chunks/{chunk.FZZUNYH5.js.map → chunk.TGGC2THA.js.map} +0 -0
  404. /package/dist/esm/chunks/{chunk.Y6D5Z56X.js.map → chunk.TRSICKKS.js.map} +0 -0
  405. /package/dist/esm/chunks/{chunk.FGHSNC2V.js.map → chunk.U7S4DJTU.js.map} +0 -0
  406. /package/dist/esm/chunks/{chunk.GTBCTNMI.js.map → chunk.UCIVBX64.js.map} +0 -0
  407. /package/dist/esm/chunks/{chunk.RRNSZCVJ.js.map → chunk.UVXKHQQZ.js.map} +0 -0
  408. /package/dist/esm/chunks/{chunk.3U6A353B.js.map → chunk.UYAP5GFT.js.map} +0 -0
  409. /package/dist/esm/chunks/{chunk.ZLACSRD4.js.map → chunk.V7HN24VV.js.map} +0 -0
  410. /package/dist/esm/chunks/{chunk.4QOXI2GM.js.map → chunk.VLADAZRB.js.map} +0 -0
  411. /package/dist/esm/chunks/{chunk.ECJBVX3D.js.map → chunk.VN7JOJVU.js.map} +0 -0
  412. /package/dist/esm/chunks/{chunk.GLUKTMQU.js.map → chunk.VNFATHAQ.js.map} +0 -0
  413. /package/dist/esm/chunks/{chunk.IO3TM653.js.map → chunk.VNH44AGF.js.map} +0 -0
  414. /package/dist/esm/chunks/{chunk.M5JGYRH4.js.map → chunk.VOL4DT5F.js.map} +0 -0
  415. /package/dist/esm/chunks/{chunk.4OG3OGVO.js.map → chunk.VX7H6YHF.js.map} +0 -0
  416. /package/dist/esm/chunks/{chunk.OSCODMUG.js.map → chunk.W7CM652O.js.map} +0 -0
  417. /package/dist/esm/chunks/{chunk.BZVLSWZR.js.map → chunk.WJ26N3FC.js.map} +0 -0
  418. /package/dist/esm/chunks/{chunk.ZHMV5SR4.js.map → chunk.WJLHVUHN.js.map} +0 -0
  419. /package/dist/esm/chunks/{chunk.GURV4TDZ.js.map → chunk.WXFJYCGO.js.map} +0 -0
  420. /package/dist/esm/chunks/{chunk.VZTV4GXC.js.map → chunk.YCG7OVYF.js.map} +0 -0
  421. /package/dist/esm/chunks/{chunk.7SYU6KRU.js.map → chunk.YLJTJKN4.js.map} +0 -0
  422. /package/dist/esm/chunks/{chunk.2OZ2HVBZ.js.map → chunk.Z7JF5PPO.js.map} +0 -0
  423. /package/dist/esm/chunks/{chunk.WYSUQK6Z.js.map → chunk.Z7SLVU2O.js.map} +0 -0
  424. /package/dist/esm/chunks/{chunk.Q5YXX4DU.js.map → chunk.ZJQLVAJY.js.map} +0 -0
  425. /package/dist/esm/chunks/{chunk.S32JKL3M.js.map → chunk.ZSHN7Z45.js.map} +0 -0
  426. /package/dist/esm/chunks/{chunk.KV7PGQJ7.js.map → chunk.ZTBOQMRE.js.map} +0 -0
  427. /package/dist/esm/chunks/{chunk.WFQYTXCB.js.map → chunk.ZZRAZZ3N.js.map} +0 -0
  428. /package/dist/esm/chunks/{chunk.SJQPD3CO.js.map → chunk.ZZV7P3FR.js.map} +0 -0
  429. /package/dist/esm/{chunks/chunk.WINL2C7Q.js.map → deprecated/button/index.js.map} +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/avatar/avatar-constants.ts", "../../src/avatar/avatar-adapter.ts", "../../src/avatar/avatar-foundation.ts", "../../src/avatar/avatar.ts", "../../src/avatar/index.ts"],
4
+ "sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../constants';\nimport { COLOR_CONSTANTS } from '../theme';\n\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}avatar`;\n\nconst attributes = {\n IMAGE_URL: 'image-url',\n TEXT: 'text',\n LETTER_COUNT: 'letter-count'\n};\n\nconst numbers = {\n DEFAULT_LETTER_COUNT: 2\n};\n\nconst selectors = {\n ROOT: '.forge-avatar',\n DEFAULT_SLOT: '.forge-avatar > slot:not([name])'\n};\n\nconst strings = {\n DEFAULT_COLOR: COLOR_CONSTANTS.themeColors.tertiary,\n BACKGROUND_VARNAME: '--forge-avatar-background'\n};\n\nexport const AVATAR_CONSTANTS = {\n elementName,\n attributes,\n numbers,\n selectors,\n strings\n};\n", "import { getShadowElement, removeAllChildren } from '@tylertech/forge-core';\nimport { BaseAdapter, IBaseAdapter } from '../core/base/base-adapter';\nimport { IAvatarComponent } from './avatar';\nimport { AVATAR_CONSTANTS } from './avatar-constants';\n\nexport interface IAvatarAdapter extends IBaseAdapter {\n setBackgroundImageUrl(url: string): Promise<boolean>;\n removeBackgroundImage(): void;\n setText(value: string): void;\n clearText(): void;\n}\n\n/**\n * The DOM adapter behind the `<forge-avatar>` element.\n */\nexport class AvatarAdapter extends BaseAdapter<IAvatarComponent> implements IAvatarAdapter {\n private _root: HTMLElement;\n private _defaultSlot: HTMLSlotElement;\n\n constructor(component: IAvatarComponent) {\n super(component);\n this._root = getShadowElement(this._component, AVATAR_CONSTANTS.selectors.ROOT);\n this._defaultSlot = getShadowElement(this._component, AVATAR_CONSTANTS.selectors.DEFAULT_SLOT) as HTMLSlotElement;\n }\n\n /**\n * Sets the background image URL.\n * @param url The URL.\n */\n public async setBackgroundImageUrl(url: string): Promise<boolean> {\n // Set before loading image to prevent a flash of background color\n this._root.classList.add('forge-avatar--image');\n return new Promise<boolean>(resolve => {\n const image = new Image();\n image.onload = () => {\n this._root.style.backgroundImage = `url(${image.src})`;\n resolve(true);\n };\n\n image.onerror = () => {\n this._root.classList.remove('forge-avatar--image');\n resolve(false);\n };\n\n image.src = url;\n });\n }\n\n /**\n * Removes the background image URL.\n */\n public removeBackgroundImage(): void {\n this._root.style.removeProperty('background-image');\n this._root.classList.remove('forge-avatar--image');\n }\n\n /**\n * Sets the avatar text content.\n * @param value The text value.\n */\n public setText(value: string): void {\n this._defaultSlot.textContent = value;\n }\n\n public clearText(): void {\n removeAllChildren(this._defaultSlot);\n }\n}\n", "import { ICustomElementFoundation, isDefined, isString } from '@tylertech/forge-core';\nimport { IAvatarAdapter } from './avatar-adapter';\nimport { AVATAR_CONSTANTS } from './avatar-constants';\n\nexport interface IAvatarFoundation extends ICustomElementFoundation {\n imageUrl: string;\n text: string;\n letterCount: number;\n}\n\n/**\n * The custom element class behind the `<forge-avatar>` class.\n */\nexport class AvatarFoundation implements IAvatarFoundation {\n private _imageUrl: string;\n private _text = '';\n private _letterCount = AVATAR_CONSTANTS.numbers.DEFAULT_LETTER_COUNT;\n private _initialized = false;\n\n constructor(private _adapter: IAvatarAdapter) {}\n\n public initialize(): void {\n this._render();\n this._initialized = true;\n }\n\n public disconnect(): void {\n this._initialized = false;\n }\n\n private _render(): void {\n this._setText();\n this._setBackgroundImageUrl();\n }\n\n private async _setBackgroundImageUrl(): Promise<void> {\n if (this._imageUrl) {\n if (await this._adapter.setBackgroundImageUrl(this._imageUrl)) {\n this._adapter.clearText();\n }\n } else {\n this._adapter.removeBackgroundImage();\n }\n }\n\n private _setText(): void {\n const data = this._getTextContent(this._text, this._letterCount);\n\n if (data) {\n this._adapter.setText(data);\n } else {\n this._adapter.clearText();\n }\n }\n\n /**\n * Gets the text content to display in the avatar.\n * @param {string} value The text to parse.\n */\n private _getTextContent(value: string, count: number): string {\n if (!value || !isString(value) || count <= 0) {\n return '';\n }\n\n let text: string;\n\n if (count === 1) {\n text = value[0].toUpperCase();\n } else {\n const words = value.match(/\\S+/g) || [];\n text = words.slice(0, count).reduce((prev, curr) => prev += curr[0].toUpperCase(), '');\n }\n\n return text;\n }\n\n /** Gets/sets the text to display. */\n public get text(): string {\n return this._text;\n }\n public set text(value: string) {\n if (this._text !== value) {\n this._text = value || '';\n this._adapter.setHostAttribute(AVATAR_CONSTANTS.attributes.TEXT, this._text);\n if (this._initialized) {\n this._render();\n }\n }\n }\n\n /** Controls the number of letters to display from the text. By default the text is split on spaces and the first character of each word is used. */\n public get letterCount(): number {\n return this._letterCount;\n }\n public set letterCount(value: number) {\n if (this._letterCount !== value) {\n this._letterCount = value;\n this._adapter.setHostAttribute(AVATAR_CONSTANTS.attributes.LETTER_COUNT, isDefined(this._letterCount) ? this._letterCount.toString() : '');\n if (this._initialized) {\n this._render();\n }\n }\n }\n\n /** Sets the background image URL to use. */\n public get imageUrl(): string {\n return this._imageUrl;\n }\n public set imageUrl(value: string) {\n if (this._imageUrl !== value) {\n this._imageUrl = value;\n if (this._initialized) {\n this._render();\n }\n }\n }\n}\n", "import { CustomElement, attachShadowTemplate, coerceNumber, FoundationProperty } from '@tylertech/forge-core';\n\nimport { AvatarAdapter } from './avatar-adapter';\nimport { AvatarFoundation } from './avatar-foundation';\nimport { AVATAR_CONSTANTS } from './avatar-constants';\nimport { BaseComponent, IBaseComponent } from '../core/base/base-component';\n\nconst template = '<template><div class=\\\"forge-avatar\\\" aria-hidden=\\\"true\\\" part=\\\"root\\\"><slot></slot></div></template>';\nconst styles = ':host{contain:content;display:inline-block}:host([hidden]){display:none}.forge-avatar{--_avatar-size:var(--forge-avatar-size, 40px);--_avatar-background:var(--forge-avatar-background, var(--forge-theme-tertiary, #3d5afe));--_avatar-color:var(--forge-avatar-color, var(--forge-theme-on-tertiary, #ffffff));--_avatar-transition-duration:var(--forge-avatar-transition-duration, var(--forge-animation-duration-short4, 200ms));--_avatar-transition-timing:var(--forge-avatar-transition-timing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)));--_avatar-shape:var(--forge-avatar-shape, var(--forge-shape-round, 50%))}.forge-avatar{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;overflow:hidden;-webkit-transition:height var(--_avatar-transition-duration) var(--_avatar-transition-timing),width var(--_avatar-transition-duration) var(--_avatar-transition-timing);transition:height var(--_avatar-transition-duration) var(--_avatar-transition-timing),width var(--_avatar-transition-duration) var(--_avatar-transition-timing);border-radius:var(--_avatar-shape);-webkit-box-sizing:border-box;box-sizing:border-box;width:var(--_avatar-size);height:var(--_avatar-size);background-color:var(--_avatar-background);background-position:center;background-repeat:no-repeat;background-size:cover;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-subheading2-font-family, var(--forge-typography-font-family, \\\"Roboto\\\", sans-serif));font-size:var(--forge-typography-subheading2-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-subheading2-font-size-scale, 1)));font-weight:var(--forge-typography-subheading2-font-weight,400);line-height:var(--forge-typography-subheading2-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-subheading2-line-height-scale, 1.25)));letter-spacing:var(--forge-typography-subheading2-letter-spacing, normal);text-transform:var(--forge-typography-subheading2-text-transform,inherit);-webkit-text-decoration:var(--forge-typography-subheading2-text-decoration,inherit);text-decoration:var(--forge-typography-subheading2-text-decoration,inherit);color:var(--_avatar-color)}.forge-avatar--image{background-color:inherit}';\n\nexport interface IAvatarComponent extends IBaseComponent {\n imageUrl: string;\n text: string;\n letterCount: number;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-avatar': IAvatarComponent;\n }\n}\n\n/**\n * @tag forge-avatar\n * \n * @summary Avatars represent an entity via text or image.\n * \n * @description\n * The avatar component allows you to provide text or images to display that represent an entity. By default, the\n * avatar will display textual content as single characters (character count is configurable), or display an image or\n * icon based on the URL provided to it.\n * \n * @property {string} text - The text to display in the avatar.\n * @property {number} letterCount - Controls the number of letters to display from the text. By default the text is split on spaces and the first character of each word is used.\n * @property {string} imageUrl - The background image URL to use.\n * \n * @attribute {string} text - The text to display in the avatar.\n * @attribute {number} letter-count - Controls the number of letters to display from the text. By default the text is split on spaces and the first character of each word is used.\n * @attribute {string} image-url - The background image URL to use.\n * \n * @cssproperty --forge-avatar-background - The background color of the avatar.\n * @cssproperty --forge-avatar-shape - The border radius of the avatar, defaults to 50%.\n * @cssproperty --forge-avatar-color - The text color of the avatar.\n * @cssproperty --forge-avatar-size - The height and width of the avatar.\n * @cssproperty --forge-avatar-transition-duration - The transition duration for animations.\n * @cssproperty --forge-avatar-transition-timing - The transition timing function for animations.\n * \n * @csspart root - The root container element.\n * \n * @slot - The default/unnamed slot for avatar content if not provided via text/imageUrl.\n */\n@CustomElement({\n name: AVATAR_CONSTANTS.elementName\n})\nexport class AvatarComponent extends BaseComponent implements IAvatarComponent {\n public static get observedAttributes(): string[] {\n return [\n AVATAR_CONSTANTS.attributes.TEXT,\n AVATAR_CONSTANTS.attributes.LETTER_COUNT,\n AVATAR_CONSTANTS.attributes.IMAGE_URL\n ];\n }\n\n private _foundation: AvatarFoundation;\n\n constructor() {\n super();\n attachShadowTemplate(this, template, styles);\n this._foundation = new AvatarFoundation(new AvatarAdapter(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 AVATAR_CONSTANTS.attributes.TEXT:\n this.text = newValue;\n break;\n case AVATAR_CONSTANTS.attributes.LETTER_COUNT:\n this.letterCount = coerceNumber(newValue);\n break;\n case AVATAR_CONSTANTS.attributes.IMAGE_URL:\n this.imageUrl = newValue;\n break;\n }\n }\n\n /** The text to display in the avatar. */\n @FoundationProperty()\n public declare text: string;\n\n /** Controls the number of letters to display from the text. By default the text is split on spaces and the first character of each word is used. */\n @FoundationProperty()\n public declare letterCount: number;\n\n /** The background image URL to use. */\n @FoundationProperty()\n public declare imageUrl: string;\n}\n", "import { defineCustomElement } from '@tylertech/forge-core';\n\nimport { AvatarComponent } from './avatar';\n\nexport * from './avatar-adapter';\nexport * from './avatar-constants';\nexport * from './avatar-foundation';\nexport * from './avatar';\n\nexport function defineAvatarComponent(): void {\n defineCustomElement(AvatarComponent);\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["elementName", "COMPONENT_NAME_PREFIX", "attributes", "numbers", "selectors", "strings", "COLOR_CONSTANTS", "AVATAR_CONSTANTS", "AvatarAdapter", "BaseAdapter", "component", "getShadowElement", "AVATAR_CONSTANTS", "url", "resolve", "image", "value", "removeAllChildren", "AvatarFoundation", "_adapter", "AVATAR_CONSTANTS", "data", "value", "count", "isString", "text", "prev", "curr", "isDefined", "template", "styles", "AvatarComponent", "BaseComponent", "attachShadowTemplate", "AvatarFoundation", "AvatarAdapter", "AVATAR_CONSTANTS", "name", "oldValue", "newValue", "coerceNumber", "__decorateClass", "FoundationProperty", "CustomElement", "defineAvatarComponent", "defineCustomElement", "AvatarComponent"]
7
+ }
@@ -3,5 +3,5 @@
3
3
  * Copyright 2023 Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- import{a as f}from"./chunk.ZY3ETQ3D.js";import{a as p}from"./chunk.NVUMRW44.js";import{a as k,b as v}from"./chunk.RRNSZCVJ.js";import{a as b,e as l,f as A,k as h}from"./chunk.TPXXHX5J.js";import{d as i}from"./chunk.M3QDAYD2.js";var _=`${v}backdrop`,y={CONTAINER:".forge-backdrop"},E={OPACITY:.54,DELAY:0,TRANSITION_DURATION:150},O={DELAY:"delay",MAX_OPACITY:"max-opacity",APPEARANCE:"appearance",FIXED:"fixed"},g={BACKDROP_CLICK:`${_}-click`},e={elementName:_,selectors:y,numbers:E,attributes:O,events:g};var n=class extends f{constructor(a){super(a);this._backdropElement=A(a,e.selectors.CONTAINER)}setBackdropOpacity(a){this._backdropElement.style.opacity=a.toString()}addBackdropEventListener(a,o){this._backdropElement.addEventListener("click",o)}removeBackdropEventListener(a,o){this._backdropElement.removeEventListener("click",o)}};var s=class{constructor(t){this._adapter=t;this._delay=e.numbers.DELAY;this._maxOpacity=e.numbers.OPACITY;this._adapter.addBackdropEventListener("click",this._onClick.bind(this))}initialize(){this._adapter.setBackdropOpacity(0),this._applyAppearance(),this._adapter.setHostAttribute(e.attributes.DELAY,this._delay.toString()),this.fadeIn()}fadeOut(){return new Promise(t=>{this._adapter.setBackdropOpacity(0),setTimeout(()=>t(),e.numbers.TRANSITION_DURATION)})}fadeIn(){return new Promise(t=>{setTimeout(()=>{this._adapter.setBackdropOpacity(this._maxOpacity),setTimeout(()=>t(),e.numbers.TRANSITION_DURATION)},this.delay)})}_onClick(t){t.stopPropagation(),this._adapter.emitHostEvent(e.events.BACKDROP_CLICK,void 0,!0,!0)}disconnect(){this._adapter.removeBackdropEventListener("click",this._onClick)}_applyAppearance(){this._appearance?this._adapter.setHostAttribute(e.attributes.APPEARANCE,String(this._appearance)):this._adapter.removeHostAttribute(e.attributes.APPEARANCE)}set delay(t){this._delay!==t&&(this._delay=t,this._adapter.setHostAttribute(e.attributes.DELAY,this._delay.toString()))}get delay(){return this._delay}set maxOpacity(t){this._maxOpacity!==t&&(this._maxOpacity=t,this._adapter.setHostAttribute(e.attributes.MAX_OPACITY,this._maxOpacity.toString()))}get maxOpacity(){return this._maxOpacity}get appearance(){return this._appearance}set appearance(t){this._appearance!==t&&(this._appearance=t,this._applyAppearance())}};var I='<template><div class="forge-backdrop" part="root"></div></template>',C=".forge-backdrop{z-index:7;z-index:var(--forge-z-index-backdrop,7);background-color:rgba(0,0,0,.54);background-color:var(--forge-backdrop-theme-background,rgba(0,0,0,.54));position:absolute;top:0;bottom:0;left:0;right:0;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;-webkit-transition:opacity 150ms 0s cubic-bezier(0, 0, .2, 1);transition:opacity 150ms 0s cubic-bezier(0, 0, .2, 1);opacity:0}:host{display:block}:host([hidden]){display:none}:host([fixed]) .forge-backdrop{position:fixed}:host([appearance=light]){--forge-backdrop-theme-background:rgba(255, 255, 255, 0.54)}:host([appearance=dark]){--forge-backdrop-theme-background:rgba(0, 0, 0, 0.54)}",r=class extends h{constructor(){super();l(this,I,C),this._foundation=new s(new n(this))}static get observedAttributes(){return[e.attributes.DELAY,e.attributes.MAX_OPACITY]}connectedCallback(){if(this.hasAttribute(e.attributes.DELAY)&&this.getAttribute(e.attributes.DELAY)){let a=Number(this.getAttribute(e.attributes.DELAY));this.delay=a>=0?a:e.numbers.DELAY}if(this.hasAttribute(e.attributes.MAX_OPACITY)){let a=Number(this.getAttribute(e.attributes.MAX_OPACITY));this.maxOpacity=a>=0&&a<=1?a:e.numbers.OPACITY}this._foundation.initialize()}disconnectedCallback(){this._foundation.disconnect()}attributeChangedCallback(a,o,c){switch(a){case e.attributes.DELAY:let u=Number(c);this.delay=u>=0?u:e.numbers.DELAY;break;case e.attributes.MAX_OPACITY:let d=Number(c);this.maxOpacity=d>=0&&d<=1?d:e.numbers.OPACITY;break;case e.attributes.APPEARANCE:this.appearance=c;break}}fadeOut(){return this._foundation.fadeOut()}fadeIn(){return this._foundation.fadeIn()}};i([p()],r.prototype,"delay",2),i([p()],r.prototype,"appearance",2),i([p()],r.prototype,"maxOpacity",2),r=i([k({name:e.elementName})],r);function q(){b(r)}export{e as a,n as b,s as c,r as d,q as e};
7
- //# sourceMappingURL=chunk.KPC6IS3C.js.map
6
+ import{a as f}from"./chunk.ZY3ETQ3D.js";import{a as p}from"./chunk.NVUMRW44.js";import{a as k,b as v}from"./chunk.UVXKHQQZ.js";import{a as b,e as l,f as A,k as h}from"./chunk.TPXXHX5J.js";import{d as i}from"./chunk.M3QDAYD2.js";var _=`${v}backdrop`,y={CONTAINER:".forge-backdrop"},E={OPACITY:.54,DELAY:0,TRANSITION_DURATION:150},O={DELAY:"delay",MAX_OPACITY:"max-opacity",APPEARANCE:"appearance",FIXED:"fixed"},g={BACKDROP_CLICK:`${_}-click`},e={elementName:_,selectors:y,numbers:E,attributes:O,events:g};var n=class extends f{constructor(a){super(a);this._backdropElement=A(a,e.selectors.CONTAINER)}setBackdropOpacity(a){this._backdropElement.style.opacity=a.toString()}addBackdropEventListener(a,o){this._backdropElement.addEventListener("click",o)}removeBackdropEventListener(a,o){this._backdropElement.removeEventListener("click",o)}};var s=class{constructor(t){this._adapter=t;this._delay=e.numbers.DELAY;this._maxOpacity=e.numbers.OPACITY;this._adapter.addBackdropEventListener("click",this._onClick.bind(this))}initialize(){this._adapter.setBackdropOpacity(0),this._applyAppearance(),this._adapter.setHostAttribute(e.attributes.DELAY,this._delay.toString()),this.fadeIn()}fadeOut(){return new Promise(t=>{this._adapter.setBackdropOpacity(0),setTimeout(()=>t(),e.numbers.TRANSITION_DURATION)})}fadeIn(){return new Promise(t=>{setTimeout(()=>{this._adapter.setBackdropOpacity(this._maxOpacity),setTimeout(()=>t(),e.numbers.TRANSITION_DURATION)},this.delay)})}_onClick(t){t.stopPropagation(),this._adapter.emitHostEvent(e.events.BACKDROP_CLICK,void 0,!0,!0)}disconnect(){this._adapter.removeBackdropEventListener("click",this._onClick)}_applyAppearance(){this._appearance?this._adapter.setHostAttribute(e.attributes.APPEARANCE,String(this._appearance)):this._adapter.removeHostAttribute(e.attributes.APPEARANCE)}set delay(t){this._delay!==t&&(this._delay=t,this._adapter.setHostAttribute(e.attributes.DELAY,this._delay.toString()))}get delay(){return this._delay}set maxOpacity(t){this._maxOpacity!==t&&(this._maxOpacity=t,this._adapter.setHostAttribute(e.attributes.MAX_OPACITY,this._maxOpacity.toString()))}get maxOpacity(){return this._maxOpacity}get appearance(){return this._appearance}set appearance(t){this._appearance!==t&&(this._appearance=t,this._applyAppearance())}};var I='<template><div class="forge-backdrop" part="root"></div></template>',C=".forge-backdrop{z-index:7;z-index:var(--forge-z-index-backdrop,7);background-color:rgba(0,0,0,.54);background-color:var(--forge-backdrop-theme-background,rgba(0,0,0,.54));position:absolute;top:0;bottom:0;left:0;right:0;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;-webkit-transition:opacity 150ms 0s cubic-bezier(0, 0, .2, 1);transition:opacity 150ms 0s cubic-bezier(0, 0, .2, 1);opacity:0}:host{display:block}:host([hidden]){display:none}:host([fixed]) .forge-backdrop{position:fixed}:host([appearance=light]){--forge-backdrop-theme-background:rgba(255, 255, 255, 0.54)}:host([appearance=dark]){--forge-backdrop-theme-background:rgba(0, 0, 0, 0.54)}",r=class extends h{constructor(){super();l(this,I,C),this._foundation=new s(new n(this))}static get observedAttributes(){return[e.attributes.DELAY,e.attributes.MAX_OPACITY]}connectedCallback(){if(this.hasAttribute(e.attributes.DELAY)&&this.getAttribute(e.attributes.DELAY)){let a=Number(this.getAttribute(e.attributes.DELAY));this.delay=a>=0?a:e.numbers.DELAY}if(this.hasAttribute(e.attributes.MAX_OPACITY)){let a=Number(this.getAttribute(e.attributes.MAX_OPACITY));this.maxOpacity=a>=0&&a<=1?a:e.numbers.OPACITY}this._foundation.initialize()}disconnectedCallback(){this._foundation.disconnect()}attributeChangedCallback(a,o,c){switch(a){case e.attributes.DELAY:let u=Number(c);this.delay=u>=0?u:e.numbers.DELAY;break;case e.attributes.MAX_OPACITY:let d=Number(c);this.maxOpacity=d>=0&&d<=1?d:e.numbers.OPACITY;break;case e.attributes.APPEARANCE:this.appearance=c;break}}fadeOut(){return this._foundation.fadeOut()}fadeIn(){return this._foundation.fadeIn()}};i([p()],r.prototype,"delay",2),i([p()],r.prototype,"appearance",2),i([p()],r.prototype,"maxOpacity",2),r=i([k({name:e.elementName})],r);function q(){b(r)}export{e as a,n as b,s as c,r as d,q as e};
7
+ //# sourceMappingURL=chunk.CPD4RUF2.js.map
@@ -3,5 +3,5 @@
3
3
  * Copyright 2023 Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- import{b as e}from"./chunk.RRNSZCVJ.js";import{a as t}from"./chunk.M3QDAYD2.js";var T=`${e}tooltip`,o={ID:"id",OPEN:"open",TYPE:"type",ANCHOR:"anchor",TARGET:"target",PLACEMENT:"placement",POSITION:"position",DELAY:"delay",OFFSET:"offset",FLIP:"flip",BOUNDARY:"boundary",FALLBACK_PLACEMENTS:"fallback-placements",TRIGGER_TYPE:"trigger-type"},p=t({},o),r={LONGPRESS_VISIBILITY_DURATION:3e3},s={DELAY:500,OFFSET:4,FLIP:"auto",TYPE:"presentation",PLACEMENT:"right",TRIGGER_TYPES:["hover"]},a={CONTENT:".forge-tooltip",ARROW:".arrow"},n={elementName:T,observedAttributes:o,attributes:p,numbers:r,defaults:s,selectors:a};export{n as a};
7
- //# sourceMappingURL=chunk.YBPAGWVG.js.map
6
+ import{b as e}from"./chunk.UVXKHQQZ.js";import{a as t}from"./chunk.M3QDAYD2.js";var T=`${e}tooltip`,o={ID:"id",OPEN:"open",TYPE:"type",ANCHOR:"anchor",TARGET:"target",PLACEMENT:"placement",POSITION:"position",DELAY:"delay",OFFSET:"offset",FLIP:"flip",BOUNDARY:"boundary",FALLBACK_PLACEMENTS:"fallback-placements",TRIGGER_TYPE:"trigger-type"},p=t({},o),r={LONGPRESS_VISIBILITY_DURATION:3e3},s={DELAY:500,OFFSET:4,FLIP:"auto",TYPE:"presentation",PLACEMENT:"right",TRIGGER_TYPES:["hover"]},a={CONTENT:".forge-tooltip",ARROW:".arrow"},n={elementName:T,observedAttributes:o,attributes:p,numbers:r,defaults:s,selectors:a};export{n as a};
7
+ //# sourceMappingURL=chunk.D7L2IMHJ.js.map
@@ -3,5 +3,5 @@
3
3
  * Copyright 2023 Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- import{f as t}from"./chunk.RRNSZCVJ.js";var o=500;function c(s=class{}){class r extends s{constructor(){super(...arguments);this._longpressStartListener=this._onLongpressStart.bind(this);this._longpressEndListener=this._onLongpressEnd.bind(this);this._longpressContextMenuListener=this._onLongpressContextMenu.bind(this);this._longpressClickPrevent=this._onLongpressClickPrevent.bind(this);this._longpressDelay=o}_startLongpressListener(e){let n=t?"pointerdown":"touchstart";e.addEventListener(n,this._longpressStartListener)}_stopLongpressListener(e){let n=t?"pointerdown":"touchstart";e.removeEventListener(n,this._longpressStartListener),this._unlistenLongpressEnd(e)}_onLongpressStart(e){e.target.setPointerCapture(e.pointerId),this._listenLongpressEnd(e.target),this._longpressTimeout=window.setTimeout(()=>{this._onLongpress(),t||navigator.vibrate(1),e.target.addEventListener("click",this._longpressClickPrevent,{capture:!0,once:!0})},this._longpressDelay)}_onLongpressClickPrevent(e){e.stopPropagation()}_onLongpressEnd(e){this._clearTimeout(),this._unlistenLongpressEnd(e.target)}_onLongpressContextMenu(e){this._clearTimeout(),e.target.removeEventListener("click",this._longpressClickPrevent,{capture:!0}),this._unlistenLongpressEnd(e.target)}_listenLongpressEnd(e){t?(e.addEventListener("pointerup",this._longpressEndListener),e.addEventListener("pointercancel",this._longpressEndListener),e.addEventListener("contextmenu",this._longpressContextMenuListener)):e.addEventListener("touchend",this._longpressEndListener)}_unlistenLongpressEnd(e){t?(e.removeEventListener("pointerup",this._longpressEndListener),e.removeEventListener("pointercancel",this._longpressEndListener),e.removeEventListener("contextmenu",this._longpressContextMenuListener)):e.removeEventListener("touchend",this._longpressEndListener)}_clearTimeout(){window.clearTimeout(this._longpressTimeout),this._longpressTimeout=void 0}}return r}export{c as a};
7
- //# sourceMappingURL=chunk.C72LM2AL.js.map
6
+ import{f as t}from"./chunk.UVXKHQQZ.js";var o=500;function c(s=class{}){class r extends s{constructor(){super(...arguments);this._longpressStartListener=this._onLongpressStart.bind(this);this._longpressEndListener=this._onLongpressEnd.bind(this);this._longpressContextMenuListener=this._onLongpressContextMenu.bind(this);this._longpressClickPrevent=this._onLongpressClickPrevent.bind(this);this._longpressDelay=o}_startLongpressListener(e){let n=t?"pointerdown":"touchstart";e.addEventListener(n,this._longpressStartListener)}_stopLongpressListener(e){let n=t?"pointerdown":"touchstart";e.removeEventListener(n,this._longpressStartListener),this._unlistenLongpressEnd(e)}_onLongpressStart(e){e.target.setPointerCapture(e.pointerId),this._listenLongpressEnd(e.target),this._longpressTimeout=window.setTimeout(()=>{this._onLongpress(),t||navigator.vibrate(1),e.target.addEventListener("click",this._longpressClickPrevent,{capture:!0,once:!0})},this._longpressDelay)}_onLongpressClickPrevent(e){e.stopPropagation()}_onLongpressEnd(e){this._clearTimeout(),this._unlistenLongpressEnd(e.target)}_onLongpressContextMenu(e){this._clearTimeout(),e.target.removeEventListener("click",this._longpressClickPrevent,{capture:!0}),this._unlistenLongpressEnd(e.target)}_listenLongpressEnd(e){t?(e.addEventListener("pointerup",this._longpressEndListener),e.addEventListener("pointercancel",this._longpressEndListener),e.addEventListener("contextmenu",this._longpressContextMenuListener)):e.addEventListener("touchend",this._longpressEndListener)}_unlistenLongpressEnd(e){t?(e.removeEventListener("pointerup",this._longpressEndListener),e.removeEventListener("pointercancel",this._longpressEndListener),e.removeEventListener("contextmenu",this._longpressContextMenuListener)):e.removeEventListener("touchend",this._longpressEndListener)}_clearTimeout(){window.clearTimeout(this._longpressTimeout),this._longpressTimeout=void 0}}return r}export{c as a};
7
+ //# sourceMappingURL=chunk.DOAQODLZ.js.map
@@ -3,5 +3,5 @@
3
3
  * Copyright 2023 Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- import{a as o,b as E,c as S,f as V}from"./chunk.T4N7KZHZ.js";import{d as H}from"./chunk.GTGXHY4A.js";import{q as p,r as v,s as f,t as m}from"./chunk.EWT2PBEP.js";import{d as R,l as N}from"./chunk.4JB3SESQ.js";import{a as z}from"./chunk.ZY3ETQ3D.js";import{a as d}from"./chunk.NVUMRW44.js";import{a as x}from"./chunk.RRNSZCVJ.js";import{a as C,e as k,f as B,k as O}from"./chunk.TPXXHX5J.js";import{v as L}from"./chunk.HZUQXCOQ.js";import{k as h,l as w}from"./chunk.J2M2MXP2.js";import{d as c}from"./chunk.M3QDAYD2.js";var g=class extends z{constructor(e){super(e);this._defaultSlotElement=B(this._component,o.selectors.DEFAULT_SLOT),this._rootElement=B(this._component,o.selectors.ROOT),this._scrollContainer=B(this._component,o.selectors.SCROLL_CONTAINER)}initializeContainerSizeObserver(e){this._resizeObserver=new ResizeObserver(()=>e()),this._resizeObserver.observe(this._component)}initializeScrollObserver(e){this._scrollContainer.addEventListener("scroll",e,{passive:!0})}destroyContainerSizeObserver(){var e;(e=this._resizeObserver)==null||e.disconnect(),this._resizeObserver=void 0}destroyScrollObserver(e){this._scrollContainer.removeEventListener("scroll",e,{passive:!0})}setVertical(e){L(this._scrollContainer,!!e,"aria-orientation","vertical")}setScrollBackwardButtonListener(e){var i;(i=this._backwardScrollButton)==null||i.addEventListener("click",e)}setScrollForwardButtonListener(e){var i;(i=this._forwardScrollButton)==null||i.addEventListener("click",e)}addSlotListener(e){this._defaultSlotElement.addEventListener("slotchange",e)}getTabs(){return Array.from(this._component.querySelectorAll(S.elementName))}async tryScrollTabIntoView(e){if(await new Promise(requestAnimationFrame),!e.isConnected||!e.selected&&!e.matches(":focus"))return;let i=this._component.vertical,r=i?this._scrollContainer.offsetTop:this._scrollContainer.offsetLeft,s=i?e.offsetTop:e.offsetLeft,a=i?e.offsetHeight:e.offsetWidth,l=i?this._scrollContainer.scrollTop:this._scrollContainer.scrollLeft,b=i?this._scrollContainer.offsetHeight:this._scrollContainer.offsetWidth,_=s-(o.numbers.SCROLL_MARGIN+r),u=s+a-b+(o.numbers.SCROLL_MARGIN-r),A=Math.min(_,Math.max(u,l)),T=e.matches(":focus")?"smooth":"instant";this._scrollContainer.scrollTo({behavior:T,[i?"left":"top"]:0,[i?"top":"left"]:A})}getScrollState(){let{scrollHeight:e,scrollWidth:i,scrollLeft:r,scrollTop:s,clientHeight:a,clientWidth:l}=this._scrollContainer,b=this._component.vertical?a+s:l+r,_=this._component.vertical?e:i,u=b===_;return{isScrolledStart:(this._component.vertical?b-a:b-l)===0,isScrolledEnd:u}}isScrollable(){let{scrollHeight:e,scrollWidth:i,clientHeight:r,clientWidth:s}=this._scrollContainer;return this._component.vertical?e>r:i>s}setScrollButtons(e){var i,r;e?(this._backwardScrollButton=this._createScrollButton(this._component.vertical?m.name:v.name),this._rootElement.insertAdjacentElement("afterbegin",this._backwardScrollButton),this._forwardScrollButton=this._createScrollButton(this._component.vertical?p.name:f.name),this._rootElement.insertAdjacentElement("beforeend",this._forwardScrollButton)):((i=this._backwardScrollButton)==null||i.remove(),this._backwardScrollButton=void 0,(r=this._forwardScrollButton)==null||r.remove(),this._forwardScrollButton=void 0)}syncScrollButtons({backwardEnabled:e,forwardEnabled:i}){var r,s;if(this._backwardScrollButton){let a=!e;a&&this._backwardScrollButton.matches(":focus")&&((r=this._forwardScrollButton)==null||r.focus()),this._backwardScrollButton.disabled=a}if(this._forwardScrollButton){let a=!i;a&&this._forwardScrollButton.matches(":focus")&&((s=this._backwardScrollButton)==null||s.focus()),this._forwardScrollButton.disabled=a}}scroll(e){let i=this._component.vertical?this._scrollContainer.offsetHeight:this._scrollContainer.offsetWidth;this._scrollContainer.scrollBy({behavior:"smooth",[this._component.vertical?"top":"left"]:i*(e==="forward"?1:-1)})}updateScrollButtonIcons(e){var s,a;let i=(s=this._backwardScrollButton)==null?void 0:s.querySelector("forge-icon");i&&(i.name=e?m.name:v.name);let r=(a=this._forwardScrollButton)==null?void 0:a.querySelector("forge-icon");r&&(r.name=e?p.name:f.name)}_createScrollButton(e){let i=document.createElement("forge-icon-button");i.classList.add(o.classes.SCROLL_BUTTON),i.shape="squared",i.type="button",i.tabIndex=-1,i.setAttribute("aria-hidden","true");let r=document.createElement("forge-icon");return r.name=e,i.appendChild(r),i}};var y=class{constructor(t){this._adapter=t;this._isInitialized=!1;this._disabled=!1;this._vertical=!1;this._clustered=!1;this._stacked=!1;this._secondary=!1;this._inverted=!1;this._autoActivate=!1;this._scrollButtons=!1;this._tabs=[];this._scrollButtonsVisible=!1;this._tabsChangedListener=()=>this._onTabsChanged(),this._tabSelectedListener=e=>this._onTabSelected(e),this._keydownListener=e=>this._onKeydown(e),this._resizeListener=()=>this._onResize(),this._scrollListener=()=>this._onScroll(),this._scrollBackwardButtonListener=()=>this._onScrollBackward(),this._scrollForwardButtonListener=()=>this._onScrollForward()}initialize(){this._adapter.addSlotListener(this._tabsChangedListener),this._adapter.addHostListener(S.events.SELECT,this._tabSelectedListener),this._adapter.addHostListener("keydown",this._keydownListener),this._adapter.setVertical(this._vertical),this._scrollButtons&&(this._adapter.initializeContainerSizeObserver(this._resizeListener),this._adapter.initializeScrollObserver(this._scrollListener),this._updateScrollState()),this._tryScrollActiveTabIntoView(),this._isInitialized=!0}destroy(){this._adapter.destroyContainerSizeObserver(),this._adapter.destroyScrollObserver(this._scrollListener),this._isInitialized=!1}async _onTabsChanged(){this._tabs=this._adapter.getTabs(),this._syncTabState(),this._tryScrollActiveTabIntoView()}_onTabSelected(t){this._selectTab(t.target)}async _onKeydown(t){var s,a;let e=this._vertical?"vertical":"horizontal";if(!(((s=E.get("default"))==null?void 0:s.has(t.key))||((a=E.get(e))==null?void 0:a.has(t.key))))return;t.preventDefault();let r=-1;if(t.key==="Home")r=this._tabs.findIndex(l=>!l.disabled);else if(t.key==="End")r=this._tabs.reduceRight((l,b,_)=>!b.disabled&&l===-1?_:l,-1);else{let l=this._tabs.findIndex(u=>u.matches(":focus")),b=t.key==="ArrowLeft"||t.key==="ArrowUp",_=u=>{var T;r=u+(b?-1:1),r=r<0?this._tabs.length-1:r%this._tabs.length,!this._tabs.every(D=>D.disabled)&&((T=this._tabs[r])!=null&&T.disabled)&&_(r)};_(l)}r!==-1&&(this._autoActivate?this._selectTab(this._tabs[r]):(this._tabs[r].focus({preventScroll:!0}),await this._adapter.tryScrollTabIntoView(this._tabs[r])))}async _selectTab(t,e=!0){if(!t||t.disabled)return;let i=this._tabs.find(r=>r.selected);if(i!==t){if(e){let r=this._tabs.indexOf(t);if(!this._adapter.emitHostEvent(o.events.CHANGE,r,!0,!0))return}t.selected=!0,t.focus({preventScroll:!0}),await this._adapter.tryScrollTabIntoView(t),i&&(i.selected=!1),this._activeTab=this._tabs.indexOf(t)}}_syncTabState(){this._tabs.forEach((t,e)=>{t.selected=e===this._activeTab,t.disabled=this._disabled,t.vertical=this._vertical,t.stacked=this._stacked,t.secondary=this._secondary,t.inverted=this._inverted})}_onResize(){this._detectScrollableStatus()}_onScroll(){this._updateScrollState()}_onScrollBackward(){this._adapter.scroll("backward")}_onScrollForward(){this._adapter.scroll("forward")}_detectScrollableStatus(){let t=this._adapter.isScrollable();this._scrollButtonsVisible!==t&&(this._adapter.setScrollButtons(t),t?(this._adapter.initializeScrollObserver(this._scrollListener),this._updateScrollState(),this._adapter.setScrollBackwardButtonListener(this._scrollBackwardButtonListener),this._adapter.setScrollForwardButtonListener(this._scrollForwardButtonListener)):this._adapter.destroyScrollObserver(this._scrollListener),this._scrollButtonsVisible=t)}_updateScrollState(){let{isScrolledEnd:t,isScrolledStart:e}=this._adapter.getScrollState(),i={backwardEnabled:!e,forwardEnabled:!t};this._adapter.syncScrollButtons(i)}_tryScrollActiveTabIntoView(){this._tabScrollAnimationFrame&&window.cancelAnimationFrame(this._tabScrollAnimationFrame),this._tabScrollAnimationFrame=window.requestAnimationFrame(()=>{this._tabScrollAnimationFrame=void 0,this._adapter.isScrollable()&&typeof this._activeTab=="number"&&this._activeTab>=0&&this._tabs[this._activeTab]&&this._adapter.tryScrollTabIntoView(this._tabs[this._activeTab])})}get disabled(){return this._disabled}set disabled(t){t=!!t,this._disabled!==t&&(this._disabled=t,this._tabs.forEach(e=>e.disabled=this._disabled),this._adapter.toggleHostAttribute(o.attributes.DISABLED,this._disabled))}get activeTab(){return this._activeTab}set activeTab(t){if(this._activeTab!==t)if(this._activeTab=t!=null?t:void 0,typeof this._activeTab=="number"){let e=this._tabs[this._activeTab];this._selectTab(e,!1),this._adapter.setHostAttribute(o.attributes.ACTIVE_TAB,String(this._activeTab))}else this._tabs.forEach(e=>e.selected=!1),this._adapter.removeHostAttribute(o.attributes.ACTIVE_TAB)}get vertical(){return this._vertical}set vertical(t){t=!!t,this._vertical!==t&&(this._vertical=t,this._isInitialized&&this._adapter.setVertical(this._vertical),this._tabs.forEach(e=>e.vertical=this._vertical),this._scrollButtonsVisible&&this._adapter.updateScrollButtonIcons(this._vertical),this._adapter.toggleHostAttribute(S.attributes.VERTICAL,this._vertical))}get clustered(){return this._clustered}set clustered(t){t=!!t,this._clustered!==t&&(this._clustered=t,this._adapter.toggleHostAttribute(o.attributes.CLUSTERED,this._clustered))}get stacked(){return this._stacked}set stacked(t){t=!!t,this._stacked!==t&&(this._stacked=t,this._tabs.forEach(e=>e.stacked=this._stacked),this._adapter.toggleHostAttribute(o.attributes.STACKED,this._stacked))}get secondary(){return this._secondary}set secondary(t){t=!!t,this._secondary!==t&&(this._secondary=t,this._tabs.forEach(e=>e.secondary=this._secondary),this._adapter.toggleHostAttribute(o.attributes.SECONDARY,this._secondary))}get inverted(){return this._inverted}set inverted(t){t=!!t,this._inverted!==t&&(this._inverted=t,this._tabs.forEach(e=>e.inverted=this._inverted),this._adapter.toggleHostAttribute(o.attributes.INVERTED,this._inverted))}get autoActivate(){return this._autoActivate}set autoActivate(t){t=!!t,this._autoActivate!==t&&(this._autoActivate=t,this._adapter.toggleHostAttribute(o.attributes.AUTO_ACTIVATE,this._autoActivate))}get scrollButtons(){return this._scrollButtons}set scrollButtons(t){t=!!t,this._scrollButtons!==t&&(this._scrollButtons=!!t,this._isInitialized&&(this._scrollButtons?(this._adapter.initializeContainerSizeObserver(this._resizeListener),this._adapter.initializeScrollObserver(this._scrollListener),this._detectScrollableStatus(),this._updateScrollState(),this._tryScrollActiveTabIntoView()):(this._adapter.destroyContainerSizeObserver(),this._adapter.destroyScrollObserver(this._scrollListener),this._adapter.setScrollButtons(this._scrollButtons),this._scrollButtonsVisible=!1)),this._adapter.setHostAttribute(o.attributes.SCROLL_BUTTONS,String(this._scrollButtons)))}};var F='<template><div class="forge-tab-bar" part="container"><div role="tablist" class="scroll-container" part="scroll-container"><slot></slot></div></div></template>',K=":host{position:relative;display:block}:host([hidden]){display:none}.forge-tab-bar{--_tab-bar-justify:var(--forge-tab-bar-justify, space-between);--_tab-bar-stretch:var(--forge-tab-bar-stretch, 1);--_tab-bar-divider-color:var(--forge-tab-bar-divider-color, var(--forge-theme-outline, #e0e0e0));--_tab-bar-divider-thickness:var(--forge-tab-bar-divider-thickness, 1px)}.forge-tab-bar{position:relative;display:grid;grid-template-columns:auto 1fr auto;max-width:100%;max-height:100%;-webkit-box-align:center;align-items:center;border-bottom:var(--_tab-bar-divider-thickness) solid var(--_tab-bar-divider-color)}.scroll-container{position:relative;display:-webkit-box;display:flex;-webkit-box-pack:var(--_tab-bar-justify);justify-content:var(--_tab-bar-justify);-webkit-box-align:end;align-items:flex-end;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:auto;scroll-behavior:smooth;scrollbar-width:none;grid-column:2}.scroll-container::-webkit-scrollbar{display:none}::slotted(*){-webkit-box-flex:var(--_tab-bar-stretch);flex:var(--_tab-bar-stretch)}::slotted([selected]){z-index:1}forge-icon-button{--forge-icon-button-shape-squared:0px}:host([vertical]) .forge-tab-bar{grid-template-columns:none;grid-template-rows:auto 1fr auto;-webkit-box-align:initial;align-items:initial;border-bottom:none;border-right:var(--_tab-bar-divider-thickness) solid var(--_tab-bar-divider-color);height:100%}:host([vertical]) .scroll-container{display:-webkit-inline-box;display:inline-flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-align:stretch;align-items:stretch;gap:0;grid-column:auto;grid-row:2}:host([vertical]) .scroll-button{justify-self:center}:host([inverted]:not([vertical])) .forge-tab-bar{border-bottom:none;border-top:variale(divider-thickness) solid var(--_tab-bar-divider-color)}:host([inverted][vertical]) .forge-tab-bar{border-bottom:none;border-top:var(--_tab-bar-divider-thickness) solid var(--_tab-bar-divider-color)}:host([clustered]) .forge-tab-bar{--_tab-bar-justify:var(--forge-tab-bar-justify, flex-start);--_tab-bar-stretch:var(--forge-tab-bar-stretch, 0)}:host([clustered=start]) .forge-tab-bar{--_tab-bar-justify:var(--forge-tab-bar-justify, flex-start)}:host([clustered=center]) .forge-tab-bar{--_tab-bar-justify:var(--forge-tab-bar-justify, center)}:host([clustered=end]) .forge-tab-bar{--_tab-bar-justify:var(--forge-tab-bar-justify, flex-end)}",n=class extends O{constructor(){super();R.define([v,f,m,p]),k(this,F,K),this._foundation=new y(new g(this))}static get observedAttributes(){return[o.attributes.DISABLED,o.attributes.ACTIVE_TAB,o.attributes.VERTICAL,o.attributes.CLUSTERED,o.attributes.STACKED,o.attributes.SECONDARY,o.attributes.INVERTED,o.attributes.AUTO_ACTIVATE,o.attributes.SCROLL_BUTTONS]}connectedCallback(){this._foundation.initialize()}disconnectedCallback(){this._foundation.destroy()}attributeChangedCallback(e,i,r){switch(e){case o.attributes.DISABLED:this.disabled=h(r);break;case o.attributes.ACTIVE_TAB:this.activeTab=r?w(r):void 0;break;case o.attributes.VERTICAL:this.vertical=h(r);break;case o.attributes.CLUSTERED:this.clustered=h(r);break;case o.attributes.STACKED:this.stacked=h(r);break;case o.attributes.SECONDARY:this.secondary=h(r);break;case o.attributes.INVERTED:this.inverted=h(r);break;case o.attributes.AUTO_ACTIVATE:this.autoActivate=h(r);break;case o.attributes.SCROLL_BUTTONS:this.scrollButtons=h(r);break}}};c([d()],n.prototype,"disabled",2),c([d()],n.prototype,"activeTab",2),c([d()],n.prototype,"vertical",2),c([d()],n.prototype,"clustered",2),c([d()],n.prototype,"stacked",2),c([d()],n.prototype,"secondary",2),c([d()],n.prototype,"inverted",2),c([d()],n.prototype,"autoActivate",2),c([d()],n.prototype,"scrollButtons",2),n=c([x({name:o.elementName,dependencies:[V,H,N]})],n);function bt(){C(n)}export{g as a,y as b,n as c,bt as d};
7
- //# sourceMappingURL=chunk.EN2HVFJ4.js.map
6
+ import{a as o,b as E,c as S,f as V}from"./chunk.JRROGJ2G.js";import{d as H}from"./chunk.NPCUVYWP.js";import{q as p,r as v,s as f,t as m}from"./chunk.EWT2PBEP.js";import{d as R,l as N}from"./chunk.L7BSLZCB.js";import{a as z}from"./chunk.ZY3ETQ3D.js";import{a as d}from"./chunk.NVUMRW44.js";import{a as x}from"./chunk.UVXKHQQZ.js";import{a as C,e as k,f as B,k as O}from"./chunk.TPXXHX5J.js";import{v as L}from"./chunk.HZUQXCOQ.js";import{k as h,l as w}from"./chunk.J2M2MXP2.js";import{d as c}from"./chunk.M3QDAYD2.js";var g=class extends z{constructor(e){super(e);this._defaultSlotElement=B(this._component,o.selectors.DEFAULT_SLOT),this._rootElement=B(this._component,o.selectors.ROOT),this._scrollContainer=B(this._component,o.selectors.SCROLL_CONTAINER)}initializeContainerSizeObserver(e){this._resizeObserver=new ResizeObserver(()=>e()),this._resizeObserver.observe(this._component)}initializeScrollObserver(e){this._scrollContainer.addEventListener("scroll",e,{passive:!0})}destroyContainerSizeObserver(){var e;(e=this._resizeObserver)==null||e.disconnect(),this._resizeObserver=void 0}destroyScrollObserver(e){this._scrollContainer.removeEventListener("scroll",e,{passive:!0})}setVertical(e){L(this._scrollContainer,!!e,"aria-orientation","vertical")}setScrollBackwardButtonListener(e){var i;(i=this._backwardScrollButton)==null||i.addEventListener("click",e)}setScrollForwardButtonListener(e){var i;(i=this._forwardScrollButton)==null||i.addEventListener("click",e)}addSlotListener(e){this._defaultSlotElement.addEventListener("slotchange",e)}getTabs(){return Array.from(this._component.querySelectorAll(S.elementName))}async tryScrollTabIntoView(e){if(await new Promise(requestAnimationFrame),!e.isConnected||!e.selected&&!e.matches(":focus"))return;let i=this._component.vertical,r=i?this._scrollContainer.offsetTop:this._scrollContainer.offsetLeft,s=i?e.offsetTop:e.offsetLeft,a=i?e.offsetHeight:e.offsetWidth,l=i?this._scrollContainer.scrollTop:this._scrollContainer.scrollLeft,b=i?this._scrollContainer.offsetHeight:this._scrollContainer.offsetWidth,_=s-(o.numbers.SCROLL_MARGIN+r),u=s+a-b+(o.numbers.SCROLL_MARGIN-r),A=Math.min(_,Math.max(u,l)),T=e.matches(":focus")?"smooth":"instant";this._scrollContainer.scrollTo({behavior:T,[i?"left":"top"]:0,[i?"top":"left"]:A})}getScrollState(){let{scrollHeight:e,scrollWidth:i,scrollLeft:r,scrollTop:s,clientHeight:a,clientWidth:l}=this._scrollContainer,b=this._component.vertical?a+s:l+r,_=this._component.vertical?e:i,u=b===_;return{isScrolledStart:(this._component.vertical?b-a:b-l)===0,isScrolledEnd:u}}isScrollable(){let{scrollHeight:e,scrollWidth:i,clientHeight:r,clientWidth:s}=this._scrollContainer;return this._component.vertical?e>r:i>s}setScrollButtons(e){var i,r;e?(this._backwardScrollButton=this._createScrollButton(this._component.vertical?m.name:v.name),this._rootElement.insertAdjacentElement("afterbegin",this._backwardScrollButton),this._forwardScrollButton=this._createScrollButton(this._component.vertical?p.name:f.name),this._rootElement.insertAdjacentElement("beforeend",this._forwardScrollButton)):((i=this._backwardScrollButton)==null||i.remove(),this._backwardScrollButton=void 0,(r=this._forwardScrollButton)==null||r.remove(),this._forwardScrollButton=void 0)}syncScrollButtons({backwardEnabled:e,forwardEnabled:i}){var r,s;if(this._backwardScrollButton){let a=!e;a&&this._backwardScrollButton.matches(":focus")&&((r=this._forwardScrollButton)==null||r.focus()),this._backwardScrollButton.disabled=a}if(this._forwardScrollButton){let a=!i;a&&this._forwardScrollButton.matches(":focus")&&((s=this._backwardScrollButton)==null||s.focus()),this._forwardScrollButton.disabled=a}}scroll(e){let i=this._component.vertical?this._scrollContainer.offsetHeight:this._scrollContainer.offsetWidth;this._scrollContainer.scrollBy({behavior:"smooth",[this._component.vertical?"top":"left"]:i*(e==="forward"?1:-1)})}updateScrollButtonIcons(e){var s,a;let i=(s=this._backwardScrollButton)==null?void 0:s.querySelector("forge-icon");i&&(i.name=e?m.name:v.name);let r=(a=this._forwardScrollButton)==null?void 0:a.querySelector("forge-icon");r&&(r.name=e?p.name:f.name)}_createScrollButton(e){let i=document.createElement("forge-icon-button");i.classList.add(o.classes.SCROLL_BUTTON),i.shape="squared",i.type="button",i.tabIndex=-1,i.setAttribute("aria-hidden","true");let r=document.createElement("forge-icon");return r.name=e,i.appendChild(r),i}};var y=class{constructor(t){this._adapter=t;this._isInitialized=!1;this._disabled=!1;this._vertical=!1;this._clustered=!1;this._stacked=!1;this._secondary=!1;this._inverted=!1;this._autoActivate=!1;this._scrollButtons=!1;this._tabs=[];this._scrollButtonsVisible=!1;this._tabsChangedListener=()=>this._onTabsChanged(),this._tabSelectedListener=e=>this._onTabSelected(e),this._keydownListener=e=>this._onKeydown(e),this._resizeListener=()=>this._onResize(),this._scrollListener=()=>this._onScroll(),this._scrollBackwardButtonListener=()=>this._onScrollBackward(),this._scrollForwardButtonListener=()=>this._onScrollForward()}initialize(){this._adapter.addSlotListener(this._tabsChangedListener),this._adapter.addHostListener(S.events.SELECT,this._tabSelectedListener),this._adapter.addHostListener("keydown",this._keydownListener),this._adapter.setVertical(this._vertical),this._scrollButtons&&(this._adapter.initializeContainerSizeObserver(this._resizeListener),this._adapter.initializeScrollObserver(this._scrollListener),this._updateScrollState()),this._tryScrollActiveTabIntoView(),this._isInitialized=!0}destroy(){this._adapter.destroyContainerSizeObserver(),this._adapter.destroyScrollObserver(this._scrollListener),this._isInitialized=!1}async _onTabsChanged(){this._tabs=this._adapter.getTabs(),this._syncTabState(),this._tryScrollActiveTabIntoView()}_onTabSelected(t){this._selectTab(t.target)}async _onKeydown(t){var s,a;let e=this._vertical?"vertical":"horizontal";if(!(((s=E.get("default"))==null?void 0:s.has(t.key))||((a=E.get(e))==null?void 0:a.has(t.key))))return;t.preventDefault();let r=-1;if(t.key==="Home")r=this._tabs.findIndex(l=>!l.disabled);else if(t.key==="End")r=this._tabs.reduceRight((l,b,_)=>!b.disabled&&l===-1?_:l,-1);else{let l=this._tabs.findIndex(u=>u.matches(":focus")),b=t.key==="ArrowLeft"||t.key==="ArrowUp",_=u=>{var T;r=u+(b?-1:1),r=r<0?this._tabs.length-1:r%this._tabs.length,!this._tabs.every(D=>D.disabled)&&((T=this._tabs[r])!=null&&T.disabled)&&_(r)};_(l)}r!==-1&&(this._autoActivate?this._selectTab(this._tabs[r]):(this._tabs[r].focus({preventScroll:!0}),await this._adapter.tryScrollTabIntoView(this._tabs[r])))}async _selectTab(t,e=!0){if(!t||t.disabled)return;let i=this._tabs.find(r=>r.selected);if(i!==t){if(e){let r=this._tabs.indexOf(t);if(!this._adapter.emitHostEvent(o.events.CHANGE,r,!0,!0))return}t.selected=!0,t.focus({preventScroll:!0}),await this._adapter.tryScrollTabIntoView(t),i&&(i.selected=!1),this._activeTab=this._tabs.indexOf(t)}}_syncTabState(){this._tabs.forEach((t,e)=>{t.selected=e===this._activeTab,t.disabled=this._disabled,t.vertical=this._vertical,t.stacked=this._stacked,t.secondary=this._secondary,t.inverted=this._inverted})}_onResize(){this._detectScrollableStatus()}_onScroll(){this._updateScrollState()}_onScrollBackward(){this._adapter.scroll("backward")}_onScrollForward(){this._adapter.scroll("forward")}_detectScrollableStatus(){let t=this._adapter.isScrollable();this._scrollButtonsVisible!==t&&(this._adapter.setScrollButtons(t),t?(this._adapter.initializeScrollObserver(this._scrollListener),this._updateScrollState(),this._adapter.setScrollBackwardButtonListener(this._scrollBackwardButtonListener),this._adapter.setScrollForwardButtonListener(this._scrollForwardButtonListener)):this._adapter.destroyScrollObserver(this._scrollListener),this._scrollButtonsVisible=t)}_updateScrollState(){let{isScrolledEnd:t,isScrolledStart:e}=this._adapter.getScrollState(),i={backwardEnabled:!e,forwardEnabled:!t};this._adapter.syncScrollButtons(i)}_tryScrollActiveTabIntoView(){this._tabScrollAnimationFrame&&window.cancelAnimationFrame(this._tabScrollAnimationFrame),this._tabScrollAnimationFrame=window.requestAnimationFrame(()=>{this._tabScrollAnimationFrame=void 0,this._adapter.isScrollable()&&typeof this._activeTab=="number"&&this._activeTab>=0&&this._tabs[this._activeTab]&&this._adapter.tryScrollTabIntoView(this._tabs[this._activeTab])})}get disabled(){return this._disabled}set disabled(t){t=!!t,this._disabled!==t&&(this._disabled=t,this._tabs.forEach(e=>e.disabled=this._disabled),this._adapter.toggleHostAttribute(o.attributes.DISABLED,this._disabled))}get activeTab(){return this._activeTab}set activeTab(t){if(this._activeTab!==t)if(this._activeTab=t!=null?t:void 0,typeof this._activeTab=="number"){let e=this._tabs[this._activeTab];this._selectTab(e,!1),this._adapter.setHostAttribute(o.attributes.ACTIVE_TAB,String(this._activeTab))}else this._tabs.forEach(e=>e.selected=!1),this._adapter.removeHostAttribute(o.attributes.ACTIVE_TAB)}get vertical(){return this._vertical}set vertical(t){t=!!t,this._vertical!==t&&(this._vertical=t,this._isInitialized&&this._adapter.setVertical(this._vertical),this._tabs.forEach(e=>e.vertical=this._vertical),this._scrollButtonsVisible&&this._adapter.updateScrollButtonIcons(this._vertical),this._adapter.toggleHostAttribute(S.attributes.VERTICAL,this._vertical))}get clustered(){return this._clustered}set clustered(t){t=!!t,this._clustered!==t&&(this._clustered=t,this._adapter.toggleHostAttribute(o.attributes.CLUSTERED,this._clustered))}get stacked(){return this._stacked}set stacked(t){t=!!t,this._stacked!==t&&(this._stacked=t,this._tabs.forEach(e=>e.stacked=this._stacked),this._adapter.toggleHostAttribute(o.attributes.STACKED,this._stacked))}get secondary(){return this._secondary}set secondary(t){t=!!t,this._secondary!==t&&(this._secondary=t,this._tabs.forEach(e=>e.secondary=this._secondary),this._adapter.toggleHostAttribute(o.attributes.SECONDARY,this._secondary))}get inverted(){return this._inverted}set inverted(t){t=!!t,this._inverted!==t&&(this._inverted=t,this._tabs.forEach(e=>e.inverted=this._inverted),this._adapter.toggleHostAttribute(o.attributes.INVERTED,this._inverted))}get autoActivate(){return this._autoActivate}set autoActivate(t){t=!!t,this._autoActivate!==t&&(this._autoActivate=t,this._adapter.toggleHostAttribute(o.attributes.AUTO_ACTIVATE,this._autoActivate))}get scrollButtons(){return this._scrollButtons}set scrollButtons(t){t=!!t,this._scrollButtons!==t&&(this._scrollButtons=!!t,this._isInitialized&&(this._scrollButtons?(this._adapter.initializeContainerSizeObserver(this._resizeListener),this._adapter.initializeScrollObserver(this._scrollListener),this._detectScrollableStatus(),this._updateScrollState(),this._tryScrollActiveTabIntoView()):(this._adapter.destroyContainerSizeObserver(),this._adapter.destroyScrollObserver(this._scrollListener),this._adapter.setScrollButtons(this._scrollButtons),this._scrollButtonsVisible=!1)),this._adapter.setHostAttribute(o.attributes.SCROLL_BUTTONS,String(this._scrollButtons)))}};var F='<template><div class="forge-tab-bar" part="container"><div role="tablist" class="scroll-container" part="scroll-container"><slot></slot></div></div></template>',K=":host{position:relative;display:block}:host([hidden]){display:none}.forge-tab-bar{--_tab-bar-justify:var(--forge-tab-bar-justify, space-between);--_tab-bar-stretch:var(--forge-tab-bar-stretch, 1);--_tab-bar-divider-color:var(--forge-tab-bar-divider-color, var(--forge-theme-outline, #e0e0e0));--_tab-bar-divider-thickness:var(--forge-tab-bar-divider-thickness, 1px)}.forge-tab-bar{position:relative;display:grid;grid-template-columns:auto 1fr auto;max-width:100%;max-height:100%;-webkit-box-align:center;align-items:center;border-bottom:var(--_tab-bar-divider-thickness) solid var(--_tab-bar-divider-color)}.scroll-container{position:relative;display:-webkit-box;display:flex;-webkit-box-pack:var(--_tab-bar-justify);justify-content:var(--_tab-bar-justify);-webkit-box-align:end;align-items:flex-end;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:auto;scroll-behavior:smooth;scrollbar-width:none;grid-column:2}.scroll-container::-webkit-scrollbar{display:none}::slotted(*){-webkit-box-flex:var(--_tab-bar-stretch);flex:var(--_tab-bar-stretch)}::slotted([selected]){z-index:1}forge-icon-button{--forge-icon-button-shape-squared:0px}:host([vertical]) .forge-tab-bar{grid-template-columns:none;grid-template-rows:auto 1fr auto;-webkit-box-align:initial;align-items:initial;border-bottom:none;border-right:var(--_tab-bar-divider-thickness) solid var(--_tab-bar-divider-color);height:100%}:host([vertical]) .scroll-container{display:-webkit-inline-box;display:inline-flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;flex-direction:column;-webkit-box-align:stretch;align-items:stretch;gap:0;grid-column:auto;grid-row:2}:host([vertical]) .scroll-button{justify-self:center}:host([inverted]:not([vertical])) .forge-tab-bar{border-bottom:none;border-top:variale(divider-thickness) solid var(--_tab-bar-divider-color)}:host([inverted][vertical]) .forge-tab-bar{border-bottom:none;border-top:var(--_tab-bar-divider-thickness) solid var(--_tab-bar-divider-color)}:host([clustered]) .forge-tab-bar{--_tab-bar-justify:var(--forge-tab-bar-justify, flex-start);--_tab-bar-stretch:var(--forge-tab-bar-stretch, 0)}:host([clustered=start]) .forge-tab-bar{--_tab-bar-justify:var(--forge-tab-bar-justify, flex-start)}:host([clustered=center]) .forge-tab-bar{--_tab-bar-justify:var(--forge-tab-bar-justify, center)}:host([clustered=end]) .forge-tab-bar{--_tab-bar-justify:var(--forge-tab-bar-justify, flex-end)}",n=class extends O{constructor(){super();R.define([v,f,m,p]),k(this,F,K),this._foundation=new y(new g(this))}static get observedAttributes(){return[o.attributes.DISABLED,o.attributes.ACTIVE_TAB,o.attributes.VERTICAL,o.attributes.CLUSTERED,o.attributes.STACKED,o.attributes.SECONDARY,o.attributes.INVERTED,o.attributes.AUTO_ACTIVATE,o.attributes.SCROLL_BUTTONS]}connectedCallback(){this._foundation.initialize()}disconnectedCallback(){this._foundation.destroy()}attributeChangedCallback(e,i,r){switch(e){case o.attributes.DISABLED:this.disabled=h(r);break;case o.attributes.ACTIVE_TAB:this.activeTab=r?w(r):void 0;break;case o.attributes.VERTICAL:this.vertical=h(r);break;case o.attributes.CLUSTERED:this.clustered=h(r);break;case o.attributes.STACKED:this.stacked=h(r);break;case o.attributes.SECONDARY:this.secondary=h(r);break;case o.attributes.INVERTED:this.inverted=h(r);break;case o.attributes.AUTO_ACTIVATE:this.autoActivate=h(r);break;case o.attributes.SCROLL_BUTTONS:this.scrollButtons=h(r);break}}};c([d()],n.prototype,"disabled",2),c([d()],n.prototype,"activeTab",2),c([d()],n.prototype,"vertical",2),c([d()],n.prototype,"clustered",2),c([d()],n.prototype,"stacked",2),c([d()],n.prototype,"secondary",2),c([d()],n.prototype,"inverted",2),c([d()],n.prototype,"autoActivate",2),c([d()],n.prototype,"scrollButtons",2),n=c([x({name:o.elementName,dependencies:[V,H,N]})],n);function bt(){C(n)}export{g as a,y as b,n as c,bt as d};
7
+ //# sourceMappingURL=chunk.EPVNVBZI.js.map
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ import{a as d,b as i}from"./chunk.UVXKHQQZ.js";import{a as t,e as g,k as n}from"./chunk.TPXXHX5J.js";import{d as o}from"./chunk.M3QDAYD2.js";var b=`${i}badge`,f={DOT:"dot",HIDE:"hide",THEME:"theme",STRONG:"strong"},s={OPEN:"open"},c={ROOT:".forge-badge"},h={THEME:"default"},e={elementName:b,attributes:f,selectors:c,classes:s,defaults:h};var l='<template><div class="forge-badge" part="root"><slot name="start"></slot><slot></slot><slot name="end"></slot></div></template>',m=':host{display:-webkit-box;display:flex;-webkit-box-sizing:border-box;box-sizing:border-box}:host([hidden]){display:none}.forge-badge{--_badge-background:var(--forge-badge-background, var(--forge-theme-secondary, #ffc107));--_badge-color:var(--forge-badge-color, var(--forge-theme-on-secondary, #000000));--_badge-shape:var(--forge-badge-shape, var(--forge-shape-full, 9999px));--_badge-height:var(--forge-badge-height, 20px);--_badge-min-width:var(--forge-badge-min-width, 0);--_badge-max-width:var(--forge-badge-max-width, auto);--_badge-padding-inline:var(--forge-badge-padding-inline, var(--forge-spacing-xsmall, 8px));--_badge-padding-block:var(--forge-badge-padding-block, 0);--_badge-border-width:var(--forge-badge-border-width, var(--forge-border-thin, 1px));--_badge-border-style:var(--forge-badge-border-style, none);--_badge-border-color:var(--forge-badge-border-color, var(--_badge-color));--_badge-gap:var(--forge-badge-gap, var(--forge-spacing-xsmall, 8px));--_badge-font-weight:var(--forge-badge-font-weight, bold);--_badge-dot-size:var(--forge-badge-dot-size, 8px);--_badge-dot-height:var(--forge-badge-dot-height, var(--_badge-dot-size));--_badge-dot-width:var(--forge-badge-dot-width, var(--_badge-dot-size));--_badge-dot-padding:var(--forge-badge-dot-padding, 0);--_badge-transition-duration:var(--forge-badge-transition-duration, var(--forge-animation-duration-short4, 200ms));--_badge-transition-easing:var(--forge-badge-transition-easing, var(--forge-animation-easing-decelerate, cubic-bezier(0, 0, 0, 1)))}.forge-badge{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-label-font-family, var(--forge-typography-font-family, "Roboto", sans-serif));font-size:var(--forge-typography-label-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-label-font-size-scale, .75)));font-weight:var(--forge-typography-label-font-weight,400);line-height:var(--forge-typography-label-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-label-line-height-scale, 1.25)));letter-spacing:var(--forge-typography-label-letter-spacing, .0357142857em);text-transform:var(--forge-typography-label-text-transform,inherit);-webkit-text-decoration:var(--forge-typography-label-text-decoration,inherit);text-decoration:var(--forge-typography-label-text-decoration,inherit);background:var(--_badge-background);color:var(--_badge-color);height:var(--_badge-height);min-width:var(--_badge-min-width);max-width:var(--_badge-max-width);border-width:var(--_badge-border-width);border-style:var(--_badge-border-style);border-color:var(--_badge-border-color);display:-webkit-inline-box;display:inline-flex;-webkit-box-align:center;align-items:center;gap:var(--_badge-gap);border-radius:var(--_badge-shape);padding-inline:var(--_badge-padding-inline);padding-block:var(--_badge-padding-block);overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;pointer-events:none;-webkit-transition:-webkit-transform var(--_badge-transition-duration) var(--_badge-transition-easing);transition:-webkit-transform var(--_badge-transition-duration) var(--_badge-transition-easing);transition:transform var(--_badge-transition-duration) var(--_badge-transition-easing);transition:transform var(--_badge-transition-duration) var(--_badge-transition-easing),-webkit-transform var(--_badge-transition-duration) var(--_badge-transition-easing);font-weight:var(--_badge-font-weight);text-overflow:ellipsis;white-space:nowrap}::slotted(:is([slot=start],[slot=end])){font-size:inherit}:host([hide]) .forge-badge{-webkit-transform:scale(0);transform:scale(0)}:host([dot]) .forge-badge{--_badge-height:var(--_badge-dot-height);--_badge-min-width:var(--forge-badge-min-width, auto);padding:var(--_badge-dot-padding);width:var(--_badge-dot-width)}:host([dot]) .forge-badge>slot{display:none}:host([theme=primary]) .forge-badge{--_badge-background:var(--forge-badge-background, var(--forge-theme-primary-container, #d1d5ed));--_badge-color:var(--forge-badge-color, var(--forge-theme-on-primary-container, #222c62))}:host([strong][theme=primary]) .forge-badge{--_badge-background:var(--forge-badge-background, var(--forge-theme-primary, #3f51b5));--_badge-color:var(--forge-badge-color, var(--forge-theme-on-primary, #ffffff))}:host([theme=secondary]) .forge-badge{--_badge-background:var(--forge-badge-background, var(--forge-theme-secondary-container, #fff0c3));--_badge-color:var(--forge-badge-color, var(--forge-theme-on-secondary-container, #8a6804))}:host([strong][theme=secondary]) .forge-badge{--_badge-background:var(--forge-badge-background, var(--forge-theme-secondary, #ffc107));--_badge-color:var(--forge-badge-color, var(--forge-theme-on-secondary, #000000))}:host([theme=tertiary]) .forge-badge{--_badge-background:var(--forge-badge-background, var(--forge-theme-tertiary-container, #d0d7ff));--_badge-color:var(--forge-badge-color, var(--forge-theme-on-tertiary-container, #213189))}:host([strong][theme=tertiary]) .forge-badge{--_badge-background:var(--forge-badge-background, var(--forge-theme-tertiary, #3d5afe));--_badge-color:var(--forge-badge-color, var(--forge-theme-on-tertiary, #ffffff))}:host([theme=success]) .forge-badge{--_badge-background:var(--forge-badge-background, var(--forge-theme-success-container, #cde0ce));--_badge-color:var(--forge-badge-color, var(--forge-theme-on-success-container, #19441b))}:host([strong][theme=success]) .forge-badge{--_badge-background:var(--forge-badge-background, var(--forge-theme-success, #2e7d32));--_badge-color:var(--forge-badge-color, var(--forge-theme-on-success, #ffffff))}:host([theme=warning]) .forge-badge{--_badge-background:var(--forge-badge-background, var(--forge-theme-warning-container, #f4d3c2));--_badge-color:var(--forge-badge-color, var(--forge-theme-on-warning-container, #712700))}:host([strong][theme=warning]) .forge-badge{--_badge-background:var(--forge-badge-background, var(--forge-theme-warning, #d14900));--_badge-color:var(--forge-badge-color, var(--forge-theme-on-warning, #ffffff))}:host(:not([strong]):is([theme=error],[theme=danger])) .forge-badge{--_badge-background:var(--forge-badge-background, var(--forge-theme-error-container, #ecc2c9));--_badge-color:var(--forge-badge-color, var(--forge-theme-error, #b00020))}:host([strong]:is([theme=error],[theme=danger])) .forge-badge{--_badge-background:var(--forge-badge-background, var(--forge-theme-error, #b00020));--_badge-color:var(--forge-badge-color, var(--forge-theme-on-error, #ffffff))}:host(:not([strong]):is([theme=info],[theme=info-primary])) .forge-badge{--_badge-background:var(--forge-badge-background, var(--forge-theme-info-container, #c7daf0));--_badge-color:var(--forge-badge-color, var(--forge-theme-on-info-container, #0b3768))}:host([strong]:is([theme=info],[theme=info-primary])) .forge-badge{--_badge-background:var(--forge-badge-background, var(--forge-theme-info, #1565c0));--_badge-color:var(--forge-badge-color, var(--forge-theme-on-info, #ffffff))}:host(:not([strong])[theme=info-secondary]) .forge-badge{--_badge-background:var(--forge-badge-background, var(--forge-theme-surface-container-low, #ebebeb));--_badge-color:var(--forge-badge-color, var(--forge-theme-on-surface-container-low, #000000))}:host([strong][theme=info-secondary]) .forge-badge{--_badge-background:var(--forge-badge-background, var(--forge-theme-surface-inverse, #333333));--_badge-color:var(--forge-badge-color, var(--forge-theme-on-surface-inverse, #ffffff))}',a=class extends n{constructor(){super(),g(this,l,m)}get dot(){return this.hasAttribute(e.attributes.DOT)}set dot(r){this.toggleAttribute(e.attributes.DOT,r)}get theme(){var r;return(r=this.getAttribute(e.attributes.THEME))!=null?r:e.defaults.THEME}set theme(r){this.setAttribute(e.attributes.THEME,r)}get strong(){return this.hasAttribute(e.attributes.STRONG)}set strong(r){this.toggleAttribute(e.attributes.STRONG,r)}get hide(){return this.hasAttribute(e.attributes.HIDE)}set hide(r){this.hasAttribute(e.attributes.HIDE)!==r&&this.toggleAttribute(e.attributes.HIDE,r)}};a=o([d({name:e.elementName})],a);function O(){t(a)}export{e as a,a as b,O as c};
7
+ //# sourceMappingURL=chunk.F2327OUE.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/badge/badge-constants.ts", "../../src/badge/badge.ts", "../../src/badge/index.ts"],
4
+ "sourcesContent": ["import { COMPONENT_NAME_PREFIX, Theme } from '../constants';\r\n\r\nconst elementName: keyof HTMLElementTagNameMap = `${COMPONENT_NAME_PREFIX}badge`;\r\n\r\nconst attributes = {\r\n DOT: 'dot',\r\n HIDE: 'hide',\r\n THEME: 'theme',\r\n STRONG: 'strong'\r\n};\r\n\r\nconst classes = {\r\n OPEN: 'open'\r\n};\r\n\r\nconst selectors = {\r\n ROOT: '.forge-badge'\r\n};\r\n\r\nconst defaults = {\r\n THEME: 'default' as BadgeTheme\r\n};\r\n\r\nexport const BADGE_CONSTANTS = {\r\n elementName,\r\n attributes,\r\n selectors,\r\n classes,\r\n defaults\r\n};\r\n\r\nexport type BadgeTheme = Theme | 'default' | 'info-primary' | 'info-secondary' | 'danger';\r\n", "import { attachShadowTemplate, coerceBoolean, CustomElement } from '@tylertech/forge-core';\r\nimport { BaseComponent, IBaseComponent } from '../core/base/base-component';\r\nimport { BadgeTheme, BADGE_CONSTANTS } from './badge-constants';\r\n\r\nconst template = '<template><div class=\\\"forge-badge\\\" part=\\\"root\\\"><slot name=\\\"start\\\"></slot><slot></slot><slot name=\\\"end\\\"></slot></div></template>';\r\nconst styles = ':host{display:-webkit-box;display:flex;-webkit-box-sizing:border-box;box-sizing:border-box}:host([hidden]){display:none}.forge-badge{--_badge-background:var(--forge-badge-background, var(--forge-theme-secondary, #ffc107));--_badge-color:var(--forge-badge-color, var(--forge-theme-on-secondary, #000000));--_badge-shape:var(--forge-badge-shape, var(--forge-shape-full, 9999px));--_badge-height:var(--forge-badge-height, 20px);--_badge-min-width:var(--forge-badge-min-width, 0);--_badge-max-width:var(--forge-badge-max-width, auto);--_badge-padding-inline:var(--forge-badge-padding-inline, var(--forge-spacing-xsmall, 8px));--_badge-padding-block:var(--forge-badge-padding-block, 0);--_badge-border-width:var(--forge-badge-border-width, var(--forge-border-thin, 1px));--_badge-border-style:var(--forge-badge-border-style, none);--_badge-border-color:var(--forge-badge-border-color, var(--_badge-color));--_badge-gap:var(--forge-badge-gap, var(--forge-spacing-xsmall, 8px));--_badge-font-weight:var(--forge-badge-font-weight, bold);--_badge-dot-size:var(--forge-badge-dot-size, 8px);--_badge-dot-height:var(--forge-badge-dot-height, var(--_badge-dot-size));--_badge-dot-width:var(--forge-badge-dot-width, var(--_badge-dot-size));--_badge-dot-padding:var(--forge-badge-dot-padding, 0);--_badge-transition-duration:var(--forge-badge-transition-duration, var(--forge-animation-duration-short4, 200ms));--_badge-transition-easing:var(--forge-badge-transition-easing, var(--forge-animation-easing-decelerate, cubic-bezier(0, 0, 0, 1)))}.forge-badge{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-label-font-family, var(--forge-typography-font-family, \\\"Roboto\\\", sans-serif));font-size:var(--forge-typography-label-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-label-font-size-scale, .75)));font-weight:var(--forge-typography-label-font-weight,400);line-height:var(--forge-typography-label-line-height, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-label-line-height-scale, 1.25)));letter-spacing:var(--forge-typography-label-letter-spacing, .0357142857em);text-transform:var(--forge-typography-label-text-transform,inherit);-webkit-text-decoration:var(--forge-typography-label-text-decoration,inherit);text-decoration:var(--forge-typography-label-text-decoration,inherit);background:var(--_badge-background);color:var(--_badge-color);height:var(--_badge-height);min-width:var(--_badge-min-width);max-width:var(--_badge-max-width);border-width:var(--_badge-border-width);border-style:var(--_badge-border-style);border-color:var(--_badge-border-color);display:-webkit-inline-box;display:inline-flex;-webkit-box-align:center;align-items:center;gap:var(--_badge-gap);border-radius:var(--_badge-shape);padding-inline:var(--_badge-padding-inline);padding-block:var(--_badge-padding-block);overflow:hidden;-webkit-box-sizing:border-box;box-sizing:border-box;pointer-events:none;-webkit-transition:-webkit-transform var(--_badge-transition-duration) var(--_badge-transition-easing);transition:-webkit-transform var(--_badge-transition-duration) var(--_badge-transition-easing);transition:transform var(--_badge-transition-duration) var(--_badge-transition-easing);transition:transform var(--_badge-transition-duration) var(--_badge-transition-easing),-webkit-transform var(--_badge-transition-duration) var(--_badge-transition-easing);font-weight:var(--_badge-font-weight);text-overflow:ellipsis;white-space:nowrap}::slotted(:is([slot=start],[slot=end])){font-size:inherit}:host([hide]) .forge-badge{-webkit-transform:scale(0);transform:scale(0)}:host([dot]) .forge-badge{--_badge-height:var(--_badge-dot-height);--_badge-min-width:var(--forge-badge-min-width, auto);padding:var(--_badge-dot-padding);width:var(--_badge-dot-width)}:host([dot]) .forge-badge>slot{display:none}:host([theme=primary]) .forge-badge{--_badge-background:var(--forge-badge-background, var(--forge-theme-primary-container, #d1d5ed));--_badge-color:var(--forge-badge-color, var(--forge-theme-on-primary-container, #222c62))}:host([strong][theme=primary]) .forge-badge{--_badge-background:var(--forge-badge-background, var(--forge-theme-primary, #3f51b5));--_badge-color:var(--forge-badge-color, var(--forge-theme-on-primary, #ffffff))}:host([theme=secondary]) .forge-badge{--_badge-background:var(--forge-badge-background, var(--forge-theme-secondary-container, #fff0c3));--_badge-color:var(--forge-badge-color, var(--forge-theme-on-secondary-container, #8a6804))}:host([strong][theme=secondary]) .forge-badge{--_badge-background:var(--forge-badge-background, var(--forge-theme-secondary, #ffc107));--_badge-color:var(--forge-badge-color, var(--forge-theme-on-secondary, #000000))}:host([theme=tertiary]) .forge-badge{--_badge-background:var(--forge-badge-background, var(--forge-theme-tertiary-container, #d0d7ff));--_badge-color:var(--forge-badge-color, var(--forge-theme-on-tertiary-container, #213189))}:host([strong][theme=tertiary]) .forge-badge{--_badge-background:var(--forge-badge-background, var(--forge-theme-tertiary, #3d5afe));--_badge-color:var(--forge-badge-color, var(--forge-theme-on-tertiary, #ffffff))}:host([theme=success]) .forge-badge{--_badge-background:var(--forge-badge-background, var(--forge-theme-success-container, #cde0ce));--_badge-color:var(--forge-badge-color, var(--forge-theme-on-success-container, #19441b))}:host([strong][theme=success]) .forge-badge{--_badge-background:var(--forge-badge-background, var(--forge-theme-success, #2e7d32));--_badge-color:var(--forge-badge-color, var(--forge-theme-on-success, #ffffff))}:host([theme=warning]) .forge-badge{--_badge-background:var(--forge-badge-background, var(--forge-theme-warning-container, #f4d3c2));--_badge-color:var(--forge-badge-color, var(--forge-theme-on-warning-container, #712700))}:host([strong][theme=warning]) .forge-badge{--_badge-background:var(--forge-badge-background, var(--forge-theme-warning, #d14900));--_badge-color:var(--forge-badge-color, var(--forge-theme-on-warning, #ffffff))}:host(:not([strong]):is([theme=error],[theme=danger])) .forge-badge{--_badge-background:var(--forge-badge-background, var(--forge-theme-error-container, #ecc2c9));--_badge-color:var(--forge-badge-color, var(--forge-theme-error, #b00020))}:host([strong]:is([theme=error],[theme=danger])) .forge-badge{--_badge-background:var(--forge-badge-background, var(--forge-theme-error, #b00020));--_badge-color:var(--forge-badge-color, var(--forge-theme-on-error, #ffffff))}:host(:not([strong]):is([theme=info],[theme=info-primary])) .forge-badge{--_badge-background:var(--forge-badge-background, var(--forge-theme-info-container, #c7daf0));--_badge-color:var(--forge-badge-color, var(--forge-theme-on-info-container, #0b3768))}:host([strong]:is([theme=info],[theme=info-primary])) .forge-badge{--_badge-background:var(--forge-badge-background, var(--forge-theme-info, #1565c0));--_badge-color:var(--forge-badge-color, var(--forge-theme-on-info, #ffffff))}:host(:not([strong])[theme=info-secondary]) .forge-badge{--_badge-background:var(--forge-badge-background, var(--forge-theme-surface-container-low, #ebebeb));--_badge-color:var(--forge-badge-color, var(--forge-theme-on-surface-container-low, #000000))}:host([strong][theme=info-secondary]) .forge-badge{--_badge-background:var(--forge-badge-background, var(--forge-theme-surface-inverse, #333333));--_badge-color:var(--forge-badge-color, var(--forge-theme-on-surface-inverse, #ffffff))}';\r\n\r\nexport interface IBadgeComponent extends IBaseComponent {\r\n dot: boolean;\r\n theme: BadgeTheme;\r\n strong: boolean;\r\n hide: boolean;\r\n}\r\n\r\ndeclare global {\r\n interface HTMLElementTagNameMap {\r\n 'forge-badge': IBadgeComponent;\r\n }\r\n}\r\n\r\n/**\r\n * @tag forge-badge\r\n * \r\n * @summary Badges are non-interactive components used to inform status, counts, or as a descriptive label.\r\n * \r\n * @property {boolean} dot - Controls whether the badge will be a small dot without any content visible.\r\n * @property {BadgeTheme} theme - The theme of the badge.\r\n * @property {boolean} strong - Controls whether the badge will have a stronger visual appearance.\r\n * @property {boolean} hide - Controls whether the badge is visible.\r\n * \r\n * @attribute {boolean} dot - When present, the badge will be a small dot without any content visible.\r\n * @attribute {BadgeTheme} theme - The theme of the badge.\r\n * @attribute {boolean} strong - Controls whether the badge will have a stronger visual appearance.\r\n * @attribute {boolean} hide - Controls whether the badge is visible.\r\n * \r\n * @cssproperty --forge-badge-background - The background color.\r\n * @cssproperty --forge-badge-color - The text color.\r\n * @cssproperty --forge-badge-shape - The shape radius.\r\n * @cssproperty --forge-badge-padding-inline - The inline padding.\r\n * @cssproperty --forge-badge-padding-block - The block padding.\r\n * @cssproperty --forge-badge-border-width - The border width.\r\n * @cssproperty --forge-badge-border-color - The border color.\r\n * @cssproperty --forge-badge-border-style - The border style.\r\n * @cssproperty --forge-badge-gap - The spacing between the content within the badge.\r\n * \r\n * @slot - Default content placed inside the badge.\r\n * @slot start - Content placed before the default content.\r\n * @slot end - Content placed after the default content.\r\n */\r\n@CustomElement({\r\n name: BADGE_CONSTANTS.elementName\r\n})\r\nexport class BadgeComponent extends BaseComponent implements IBadgeComponent {\r\n constructor() {\r\n super();\r\n attachShadowTemplate(this, template, styles);\r\n }\r\n\r\n public get dot(): boolean {\r\n return this.hasAttribute(BADGE_CONSTANTS.attributes.DOT);\r\n }\r\n public set dot(value: boolean) {\r\n this.toggleAttribute(BADGE_CONSTANTS.attributes.DOT, value);\r\n }\r\n\r\n public get theme(): BadgeTheme {\r\n return this.getAttribute(BADGE_CONSTANTS.attributes.THEME) as BadgeTheme ?? BADGE_CONSTANTS.defaults.THEME;\r\n }\r\n public set theme(value: BadgeTheme) {\r\n this.setAttribute(BADGE_CONSTANTS.attributes.THEME, value);\r\n }\r\n\r\n public get strong(): boolean {\r\n return this.hasAttribute(BADGE_CONSTANTS.attributes.STRONG);\r\n }\r\n public set strong(value: boolean) {\r\n this.toggleAttribute(BADGE_CONSTANTS.attributes.STRONG, value);\r\n }\r\n\r\n public get hide(): boolean {\r\n return this.hasAttribute(BADGE_CONSTANTS.attributes.HIDE);\r\n }\r\n public set hide(value: boolean) {\r\n if (this.hasAttribute(BADGE_CONSTANTS.attributes.HIDE) !== value) {\r\n this.toggleAttribute(BADGE_CONSTANTS.attributes.HIDE, value);\r\n }\r\n }\r\n}\r\n", "import { defineCustomElement } from '@tylertech/forge-core';\r\n\r\nimport { BadgeComponent } from './badge';\r\n\r\nexport * from './badge-constants';\r\nexport * from './badge';\r\n\r\nexport function defineBadgeComponent(): void {\r\n defineCustomElement(BadgeComponent);\r\n}\r\n"],
5
+ "mappings": "6IAEA,IAAMA,EAA2C,GAAGC,SAE9CC,EAAa,CACjB,IAAK,MACL,KAAM,OACN,MAAO,QACP,OAAQ,QACV,EAEMC,EAAU,CACd,KAAM,MACR,EAEMC,EAAY,CAChB,KAAM,cACR,EAEMC,EAAW,CACf,MAAO,SACT,EAEaC,EAAkB,CAC7B,YAAAN,EACA,WAAAE,EACA,UAAAE,EACA,QAAAD,EACA,SAAAE,CACF,ECzBA,IAAME,EAAW,kIACXC,EAAS,w0OA+CFC,EAAN,cAA6BC,CAAyC,CAC3E,aAAc,CACZ,MAAM,EACNC,EAAqB,KAAMJ,EAAUC,CAAM,CAC7C,CAEA,IAAW,KAAe,CACxB,OAAO,KAAK,aAAaI,EAAgB,WAAW,GAAG,CACzD,CACA,IAAW,IAAIC,EAAgB,CAC7B,KAAK,gBAAgBD,EAAgB,WAAW,IAAKC,CAAK,CAC5D,CAEA,IAAW,OAAoB,CAjEjC,IAAAC,EAkEI,OAAOA,EAAA,KAAK,aAAaF,EAAgB,WAAW,KAAK,IAAlD,KAAAE,EAAqEF,EAAgB,SAAS,KACvG,CACA,IAAW,MAAMC,EAAmB,CAClC,KAAK,aAAaD,EAAgB,WAAW,MAAOC,CAAK,CAC3D,CAEA,IAAW,QAAkB,CAC3B,OAAO,KAAK,aAAaD,EAAgB,WAAW,MAAM,CAC5D,CACA,IAAW,OAAOC,EAAgB,CAChC,KAAK,gBAAgBD,EAAgB,WAAW,OAAQC,CAAK,CAC/D,CAEA,IAAW,MAAgB,CACzB,OAAO,KAAK,aAAaD,EAAgB,WAAW,IAAI,CAC1D,CACA,IAAW,KAAKC,EAAgB,CAC1B,KAAK,aAAaD,EAAgB,WAAW,IAAI,IAAMC,GACzD,KAAK,gBAAgBD,EAAgB,WAAW,KAAMC,CAAK,CAE/D,CACF,EAnCaJ,EAANM,EAAA,CAHNC,EAAc,CACb,KAAMJ,EAAgB,WACxB,CAAC,GACYH,GC7CN,SAASQ,GAA6B,CAC3CC,EAAoBC,CAAc,CACpC",
6
+ "names": ["elementName", "COMPONENT_NAME_PREFIX", "attributes", "classes", "selectors", "defaults", "BADGE_CONSTANTS", "template", "styles", "BadgeComponent", "BaseComponent", "attachShadowTemplate", "BADGE_CONSTANTS", "value", "_a", "__decorateClass", "CustomElement", "defineBadgeComponent", "defineCustomElement", "BadgeComponent"]
7
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ import{b as C,j as x}from"./chunk.HPCXVNG6.js";import{a as S}from"./chunk.ZY3ETQ3D.js";import{a as u}from"./chunk.NVUMRW44.js";import{a as T,b as I}from"./chunk.UVXKHQQZ.js";import{e as y,f as b,k as A}from"./chunk.TPXXHX5J.js";import{k as L}from"./chunk.J2M2MXP2.js";import{a as g,d as h}from"./chunk.M3QDAYD2.js";var F=`${I}state-layer`,Y={TARGET:"target",DISABLED:"disabled"},$=g({},Y),V={SURFACE:".forge-state-layer"},W={HOVERED:"forge-state-layer--hovered",PRESSED:"forge-state-layer--pressed"},s={elementName:F,attributes:$,selectors:V,classes:W},d=class n{constructor(e,t){this.x=e;this.y=t}static fromPointerEvent(e){return new n(e.pageX,e.pageY)}},P=150,N=450,f=225,M=.2,D=10,R=75,H=.35,O="::after",w="forwards",k="cubic-bezier(0.2, 0, 0, 1)",B=(r=>(r[r.INACTIVE=0]="INACTIVE",r[r.TOUCH_DELAY=1]="TOUCH_DELAY",r[r.HOLDING=2]="HOLDING",r[r.WAITING_FOR_CLICK=3]="WAITING_FOR_CLICK",r))(B||{});function G(n){let{height:e,width:t}=n.getBoundingClientRect(),i=Math.max(e,t),r=Math.max(H*i,R),a=Math.floor(i*M),_=`${(Math.sqrt(t**2+e**2)+D+r)/a}`,c=`${a}px`;return{rippleScale:_,rippleSize:c,initialSize:a}}function U(n,e,t){let{height:i,width:r}=n.getBoundingClientRect(),a={x:(r-e)/2,y:(i-e)/2},o;return X(t)?o=K(n,t):o={x:r/2,y:i/2},o={x:o.x-e/2,y:o.y-e/2},{startPoint:o,endPoint:a}}function K(n,e){let{scrollX:t,scrollY:i}=window,{left:r,top:a}=n.getBoundingClientRect(),o=t+r,p=i+a,{x:_,y:c}=e;return{x:_-o,y:c-p}}function z(n,e,t){let{height:i,width:r}=n.getBoundingClientRect();return e>=0&&e<=r&&t>=0&&t<=i}function X(n){return n&&(n instanceof d||["x","y"].every(e=>e in n))}var m=class extends S{constructor(t){super(t);this._targetElement=null;this._surfaceElement=b(t,s.selectors.SURFACE)}destroy(){typeof this._destroyDeferListener=="function"&&(this._destroyDeferListener(),this._destroyDeferListener=void 0),this._targetElement=null}async deferInitialization(t){if(!this._targetElement)return;let{userInteraction:i,destroy:r}=C(this._targetElement);this._destroyDeferListener=r;let a=await i;t(a.type==="pointerenter"?a:void 0)}addTargetListener(t,i){var r;(r=this._targetElement)==null||r.addEventListener(t,i)}removeTargetListener(t,i){var r;(r=this._targetElement)==null||r.removeEventListener(t,i)}setHovered(t){this._surfaceElement.classList.toggle(s.classes.HOVERED,t)}setPressed(t){this._surfaceElement.classList.toggle(s.classes.PRESSED,t)}getTargetElement(){return this._targetElement}setTargetElement(t){this._targetElement=t}trySetTarget(t){this._targetElement=x(this._component,t)}startAnimation(t){var E;if(!this._surfaceElement)return;this.setPressed(!0),(E=this._rippleAnimation)==null||E.cancel();let{rippleSize:i,rippleScale:r,initialSize:a}=G(this._component),{startPoint:o,endPoint:p}=U(this._component,a,t),_=`${o.x}px, ${o.y}px`,c=`${p.x}px, ${p.y}px`;this._rippleAnimation=this._surfaceElement.animate({top:[0,0],left:[0,0],height:[i,i],width:[i,i],transform:[`translate(${_}) scale(1)`,`translate(${c}) scale(${r})`]},{pseudoElement:O,duration:N,easing:k,fill:w})}async endAnimation(){var r;let t=this._rippleAnimation,i=(r=t==null?void 0:t.currentTime)!=null?r:1/0;if(i>=f){this.setPressed(!1);return}await new Promise(a=>{setTimeout(a,f-i)}),this._rippleAnimation===t&&this.setPressed(!1)}inBounds(t,i){return z(this._component,t,i)}};var v=class{constructor(e){this._adapter=e;this._target=null;this._disabled=!1;this._attached=!1;this._deferred=!0;this._pointerState=0;this._checkBoundsAfterContextMenu=!1;this._pointerEnterListener=t=>this._onPointerEnter(t),this._pointerLeaveListener=t=>this._onPointerLeave(t),this._pointerDownListener=t=>this._onPointerDown(t),this._pointerUpListener=t=>this._onPointerUp(t),this._pointerCancelListener=t=>this._onPointerCancel(t),this._clickListener=()=>this._onClick(),this._contextmenuListener=()=>this._onContextmenu()}initialize(){this._adapter.trySetTarget(this._target),this._adapter.addTargetListener("click",this._clickListener),this._deferInitialization()}disconnect(){this._pointerStartEvent=void 0,this._pointerState=0,this._adapter.setHovered(!1),this._adapter.setPressed(!1),this._removeListeners(),this._adapter.destroy()}playAnimation(e){this._adapter.startAnimation(e),this._endAnimation()}_deferInitialization(){this._adapter.deferInitialization(this._onDeferredInitialize.bind(this))}_applyListeners(){this._disabled||(this._adapter.addTargetListener("pointerenter",this._pointerEnterListener),this._adapter.addTargetListener("pointerleave",this._pointerLeaveListener),this._adapter.addTargetListener("pointerdown",this._pointerDownListener),this._adapter.addTargetListener("pointerup",this._pointerUpListener),this._adapter.addTargetListener("pointercancel",this._pointerCancelListener),this._adapter.addTargetListener("contextmenu",this._contextmenuListener),this._attached=!0)}_removeListeners(){this._adapter.removeTargetListener("pointerenter",this._pointerEnterListener),this._adapter.removeTargetListener("pointerleave",this._pointerLeaveListener),this._adapter.removeTargetListener("pointerdown",this._pointerDownListener),this._adapter.removeTargetListener("pointerup",this._pointerUpListener),this._adapter.removeTargetListener("pointercancel",this._pointerCancelListener),this._adapter.removeTargetListener("click",this._clickListener),this._adapter.removeTargetListener("contextmenu",this._contextmenuListener),this._attached=!1}_onDeferredInitialize(e){this._adapter.isConnected&&(this._applyListeners(),(e==null?void 0:e.type)==="pointerenter"&&this._pointerEnterListener(e),this._deferred=!1)}_onPointerEnter(e){this._canHandleEvent(e)&&this._adapter.setHovered(!0)}_onPointerLeave(e){this._canHandleEvent(e)&&(this._adapter.setHovered(!1),this._pointerState!==0&&this._adapter.endAnimation())}async _onPointerDown(e){if(this._pointerStartEvent=e,!!this._canHandleEvent(e)){if(!this._isTouch(e.pointerType)){this._pointerState=3,this._startAnimation(e);return}this._checkBoundsAfterContextMenu&&!this._adapter.inBounds(e.x,e.y)||(this._checkBoundsAfterContextMenu=!1,this._pointerState=1,await new Promise(t=>setTimeout(t,P)),this._pointerState===1&&(this._pointerState=2,this._startAnimation(e)))}}_onPointerUp(e){if(this._canHandleEvent(e)){if(this._pointerState===2){this._pointerState=3;return}if(this._pointerState===1){this._pointerState=3,this._startAnimation(this._pointerStartEvent);return}}}_onClick(){if(!this._disabled){if(this._pointerState===3){this._endAnimation();return}this._pointerState===0&&(this._startAnimation(this._pointerStartEvent),this._endAnimation())}}_onPointerCancel(e){this._canHandleEvent(e)&&this._endAnimation()}_onContextmenu(){this._disabled||(this._checkBoundsAfterContextMenu=!0,this._adapter.endAnimation())}_startAnimation(e){let t=e?d.fromPointerEvent(e):void 0;this._adapter.startAnimation(t)}_endAnimation(){this._pointerState=0,this._adapter.endAnimation(),this._pointerStartEvent=void 0}_canHandleEvent({type:e,isPrimary:t,buttons:i,pointerType:r,pointerId:a}){if(this._disabled||!t||this._pointerStartEvent&&this._pointerStartEvent.pointerId!==a)return!1;if(e==="pointerenter"||e==="pointerleave")return!this._isTouch(r);let o=i===1;return this._isTouch(r)||o}_isTouch(e){return e==="touch"}get isAttached(){return this._attached}get targetElement(){return this._adapter.getTargetElement()}set targetElement(e){this._removeListeners(),this._attached||(this._adapter.destroy(),this._deferred=!1),this._adapter.setTargetElement(e),this._deferred||this._deferInitialization()}get target(){return this._adapter.getHostAttribute(s.attributes.TARGET)}set target(e){this._target!==e&&(this._target=e,this._adapter.isConnected&&(this._removeListeners(),this._attached||(this._adapter.destroy(),this._deferred=!1),this._adapter.trySetTarget(e),this._deferred||this._deferInitialization()),this._adapter.toggleHostAttribute(s.attributes.TARGET,!!this._target,this._target))}get disabled(){return this._disabled}set disabled(e){e=!!e,this._disabled!==e&&(this._disabled=e,this._adapter.isConnected&&(this._disabled?this._removeListeners():this._deferred||this._deferInitialization()),this._adapter.toggleHostAttribute(s.attributes.DISABLED,this._disabled))}};var Z='<template><div class="forge-state-layer" part="surface"></div></template>',q=':host{border-radius:inherit;position:absolute;inset:0;overflow:hidden;display:-webkit-box;display:flex;margin:auto;pointer-events:none;-webkit-tap-highlight-color:transparent}:host([hidden]){display:none}:host([disabled]){display:none}.forge-state-layer{--_state-layer-color:var(--forge-state-layer-color, var(--forge-theme-on-surface, #000000));--_state-layer-hover-color:var(--forge-state-layer-hover-color, var(--_state-layer-color));--_state-layer-hover-opacity:var(--forge-state-layer-hover-opacity, 0.08);--_state-layer-pressed-color:var(--forge-state-layer-pressed-color, var(--_state-layer-color));--_state-layer-pressed-opacity:var(--forge-state-layer-pressed-opacity, 0.12);--_state-layer-hover-duration:var(--forge-state-layer-hover-duration, 15ms);--_state-layer-pressed-duration:var(--forge-state-layer-pressed-duration, 105ms);--_state-layer-animation-duration:var(--forge-state-layer-animation-duration, 375ms)}.forge-state-layer::after,.forge-state-layer::before{content:"";opacity:0;position:absolute}.forge-state-layer::before{background-color:var(--_state-layer-hover-color);inset:0;-webkit-transition:opacity var(--_state-layer-hover-duration) linear,background-color var(--_state-layer-hover-duration) linear;transition:opacity var(--_state-layer-hover-duration) linear,background-color var(--_state-layer-hover-duration) linear}.forge-state-layer::after{background:radial-gradient(closest-side,var(--_state-layer-pressed-color) max(100% - 70px,65%),transparent 100%);-webkit-transform-origin:center center;transform-origin:center center;-webkit-transition:opacity var(--_state-layer-animation-duration) linear;transition:opacity var(--_state-layer-animation-duration) linear}.forge-state-layer--hovered::before{background-color:var(--_state-layer-hover-color);opacity:var(--_state-layer-hover-opacity)}.forge-state-layer--pressed::after{opacity:var(--_state-layer-pressed-opacity);-webkit-transition-duration:var(--_state-layer-pressed-duration);transition-duration:var(--_state-layer-pressed-duration)}@media screen and (forced-colors:active){:host{display:none}}',l=class extends A{constructor(){super();y(this,Z,q),this._foundation=new v(new m(this))}static get observedAttributes(){return[s.attributes.TARGET,s.attributes.DISABLED]}connectedCallback(){this._foundation.initialize()}disconnectedCallback(){this._foundation.disconnect()}attributeChangedCallback(t,i,r){switch(t){case s.attributes.TARGET:this.target=r;break;case s.attributes.DISABLED:this.disabled=L(r);break}}playAnimation(t){this._foundation.playAnimation(t)}};h([u()],l.prototype,"targetElement",2),h([u()],l.prototype,"target",2),h([u()],l.prototype,"disabled",2),l=h([T({name:s.elementName})],l);export{s as a,d as b,P as c,N as d,f as e,M as f,D as g,R as h,H as i,O as j,w as k,k as l,B as m,m as n,v as o,l as p};
7
+ //# sourceMappingURL=chunk.FTADCSFT.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/state-layer/state-layer-constants.ts", "../../src/state-layer/state-layer-utils.ts", "../../src/state-layer/state-layer-adapter.ts", "../../src/state-layer/state-layer-foundation.ts", "../../src/state-layer/state-layer.ts"],
4
- "sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../constants';\n\nconst elementName = `${COMPONENT_NAME_PREFIX}state-layer`;\n\nconst observedAttributes = {\n TARGET: 'target',\n DISABLED: 'disabled'\n};\n\nconst attributes = {\n ...observedAttributes\n};\n\nconst selectors = {\n SURFACE: '.forge-state-layer'\n};\n\nconst classes = {\n HOVERED: 'forge-state-layer--hovered',\n PRESSED: 'forge-state-layer--pressed'\n};\n\nexport const STATE_LAYER_CONSTANTS = {\n elementName,\n attributes,\n selectors,\n classes\n};\n\nexport class StateLayerCoords {\n constructor(public x: number, public y: number) {}\n\n public static fromPointerEvent(event: PointerEvent): StateLayerCoords {\n return new StateLayerCoords(event.pageX, event.pageY);\n }\n}\n\nexport const TOUCH_DELAY_MS = 150;\nexport const PRESS_GROW_MS = 450;\nexport const MINIMUM_PRESS_MS = 225;\nexport const INITIAL_ORIGIN_SCALE = 0.2;\nexport const PADDING = 10;\nexport const SOFT_EDGE_MINIMUM_SIZE = 75;\nexport const SOFT_EDGE_CONTAINER_RATIO = 0.35;\nexport const PRESS_PSEUDO = '::after';\nexport const ANIMATION_FILL = 'forwards';\nexport const EASING = 'cubic-bezier(0.2, 0, 0, 1)';\n\n/**\n * Interaction states for the state layer.\n *\n * On Touch:\n * - `INACTIVE -> TOUCH_DELAY -> WAITING_FOR_CLICK -> INACTIVE`\n * - `INACTIVE -> TOUCH_DELAY -> HOLDING -> WAITING_FOR_CLICK -> INACTIVE`\n *\n * On Mouse or Pen:\n * - `INACTIVE -> WAITING_FOR_CLICK -> INACTIVE`\n */\nexport enum PointerState {\n /**\n * Initial state of the control, no touch in progress.\n *\n * Transitions:\n * - on touch down: transition to `TOUCH_DELAY`.\n * - on mouse down: transition to `WAITING_FOR_CLICK`.\n */\n INACTIVE,\n /**\n * Touch down has been received, waiting to determine if it's a swipe or\n * scroll.\n *\n * Transitions:\n * - on touch up: begin press; transition to `WAITING_FOR_CLICK`.\n * - on cancel: transition to `INACTIVE`.\n * - after `TOUCH_DELAY_MS`: begin press; transition to `HOLDING`.\n */\n TOUCH_DELAY,\n /**\n * A touch has been deemed to be a press\n *\n * Transitions:\n * - on up: transition to `WAITING_FOR_CLICK`.\n */\n HOLDING,\n /**\n * The user touch has finished, transition into rest state.\n *\n * Transitions:\n * - on click end press; transition to `INACTIVE`.\n */\n WAITING_FOR_CLICK\n}\n", "import { INITIAL_ORIGIN_SCALE, PADDING, SOFT_EDGE_CONTAINER_RATIO, SOFT_EDGE_MINIMUM_SIZE, StateLayerCoords } from './state-layer-constants';\n\nexport function calcRippleSize(hostEl: HTMLElement): { rippleScale: string; rippleSize: string; initialSize: number } {\n const { height, width } = hostEl.getBoundingClientRect();\n const maxDim = Math.max(height, width);\n const softEdgeSize = Math.max(SOFT_EDGE_CONTAINER_RATIO * maxDim, SOFT_EDGE_MINIMUM_SIZE);\n const initialSize = Math.floor(maxDim * INITIAL_ORIGIN_SCALE);\n const hypotenuse = Math.sqrt(width ** 2 + height ** 2);\n const maxRadius = hypotenuse + PADDING;\n const rippleScale = `${(maxRadius + softEdgeSize) / initialSize}`;\n const rippleSize = `${initialSize}px`;\n return { rippleScale, rippleSize, initialSize };\n}\n\nexport function getTranslationCoordinates(hostEl: HTMLElement, initialSize: number, coords?: StateLayerCoords): { startPoint: { x: number; y: number }; endPoint: { x: number; y: number } } {\n const { height, width } = hostEl.getBoundingClientRect();\n const endPoint = {\n x: (width - initialSize) / 2,\n y: (height - initialSize) / 2\n };\n\n let startPoint;\n if (isValidCoords(coords)) {\n startPoint = toNormalizedCoords(hostEl, coords);\n } else {\n startPoint = {\n x: width / 2,\n y: height / 2\n };\n }\n\n startPoint = {\n x: startPoint.x - (initialSize / 2),\n y: startPoint.y - (initialSize / 2)\n };\n\n return { startPoint, endPoint };\n}\n\nexport function toNormalizedCoords(hostEl: HTMLElement, coords: StateLayerCoords): { x: number; y: number } {\n const { scrollX, scrollY } = window;\n const { left, top } = hostEl.getBoundingClientRect();\n const documentX = scrollX + left;\n const documentY = scrollY + top;\n const { x, y } = coords;\n return { x: x - documentX, y: y - documentY };\n}\n\nexport function isInBounds(hostEl: HTMLElement, x: number, y: number): boolean {\n const { height, width } = hostEl.getBoundingClientRect();\n return x >= 0 && x <= width && y >= 0 && y <= height;\n}\n\nfunction isValidCoords(value: any): value is StateLayerCoords {\n return value && (value instanceof StateLayerCoords || ['x', 'y'].every(key => key in value));\n}\n", "import { getShadowElement } from '@tylertech/forge-core';\nimport { BaseAdapter, IBaseAdapter } from '../core/base/base-adapter';\nimport { locateTargetHeuristic, createUserInteractionListener } from '../core/utils/utils';\nimport { IStateLayerComponent } from './state-layer';\nimport { ANIMATION_FILL, EASING, MINIMUM_PRESS_MS, PRESS_GROW_MS, PRESS_PSEUDO, StateLayerCoords, STATE_LAYER_CONSTANTS } from './state-layer-constants';\nimport { calcRippleSize, getTranslationCoordinates, isInBounds } from './state-layer-utils';\n\nexport interface IStateLayerAdapter extends IBaseAdapter {\n destroy(): void;\n deferInitialization(listener: (evt?: PointerEvent) => void): void;\n getTargetElement(): HTMLElement | null;\n setTargetElement(el: HTMLElement | null): void;\n trySetTarget(value?: string | null): void;\n addTargetListener(type: string, listener: EventListener): void;\n removeTargetListener(type: string, listener: EventListener): void;\n setHovered(hovered: boolean): void;\n setPressed(pressed: boolean): void;\n startAnimation(coords?: StateLayerCoords): void;\n endAnimation(): Promise<void>;\n inBounds(x: number, y: number): boolean;\n}\n\nexport class StateLayerAdapter extends BaseAdapter<IStateLayerComponent> implements IStateLayerAdapter {\n private readonly _surfaceElement: HTMLElement;\n private _targetElement: HTMLElement | null = null;\n private _rippleAnimation: Animation | undefined;\n private _destroyDeferListener: (() => void) | undefined;\n\n constructor(component: IStateLayerComponent) {\n super(component);\n this._surfaceElement = getShadowElement(component, STATE_LAYER_CONSTANTS.selectors.SURFACE);\n }\n\n public destroy(): void {\n if (typeof this._destroyDeferListener === 'function') {\n this._destroyDeferListener();\n this._destroyDeferListener = undefined;\n }\n this._targetElement = null;\n }\n\n public async deferInitialization(listener: (evt?: PointerEvent) => void): Promise<void> {\n if (!this._targetElement) {\n return;\n }\n const { userInteraction, destroy } = createUserInteractionListener(this._targetElement);\n this._destroyDeferListener = destroy;\n const evt = await userInteraction;\n listener(evt.type === 'pointerenter' ? evt as PointerEvent : undefined);\n }\n\n public addTargetListener(type: string, listener: EventListener): void {\n this._targetElement?.addEventListener(type, listener);\n }\n\n public removeTargetListener(type: string, listener: EventListener): void {\n this._targetElement?.removeEventListener(type, listener);\n }\n\n public setHovered(hovered: boolean): void {\n this._surfaceElement.classList.toggle(STATE_LAYER_CONSTANTS.classes.HOVERED, hovered);\n }\n \n public setPressed(pressed: boolean): void {\n this._surfaceElement.classList.toggle(STATE_LAYER_CONSTANTS.classes.PRESSED, pressed);\n }\n\n public getTargetElement(): HTMLElement | null {\n return this._targetElement;\n }\n\n public setTargetElement(el: HTMLElement | null): void {\n this._targetElement = el;\n }\n\n public trySetTarget(value?: string | null): void {\n this._targetElement = locateTargetHeuristic(this._component, value);\n }\n\n public startAnimation(coords?: StateLayerCoords): void {\n if (!this._surfaceElement) {\n return;\n }\n\n this.setPressed(true);\n this._rippleAnimation?.cancel();\n\n const { rippleSize, rippleScale, initialSize } = calcRippleSize(this._component);\n const { startPoint, endPoint } = getTranslationCoordinates(this._component, initialSize, coords);\n const translateStart = `${startPoint.x}px, ${startPoint.y}px`;\n const translateEnd = `${endPoint.x}px, ${endPoint.y}px`;\n\n this._rippleAnimation = this._surfaceElement.animate(\n {\n top: [0, 0],\n left: [0, 0],\n height: [rippleSize, rippleSize],\n width: [rippleSize, rippleSize],\n transform: [\n `translate(${translateStart}) scale(1)`,\n `translate(${translateEnd}) scale(${rippleScale})`\n ]\n },\n {\n pseudoElement: PRESS_PSEUDO,\n duration: PRESS_GROW_MS,\n easing: EASING,\n fill: ANIMATION_FILL\n });\n }\n\n public async endAnimation(): Promise<void> {\n const animation = this._rippleAnimation;\n const pressAnimationPlayState = animation?.currentTime ?? Infinity;\n\n if (pressAnimationPlayState >= MINIMUM_PRESS_MS) {\n this.setPressed(false);\n return;\n }\n\n await new Promise(resolve => {\n setTimeout(resolve, MINIMUM_PRESS_MS - pressAnimationPlayState);\n });\n\n if (this._rippleAnimation !== animation) {\n return;\n }\n\n this.setPressed(false);\n }\n\n public inBounds(x: number, y: number): boolean {\n return isInBounds(this._component, x, y);\n }\n}\n", "import { ICustomElementFoundation } from '@tylertech/forge-core';\n\nimport { IStateLayerAdapter } from './state-layer-adapter';\nimport { PointerState, StateLayerCoords, STATE_LAYER_CONSTANTS, TOUCH_DELAY_MS } from './state-layer-constants';\n\nexport interface IStateLayerFoundation extends ICustomElementFoundation {\n targetElement: HTMLElement | null;\n target: string | null;\n disabled: boolean;\n playAnimation(coords?: StateLayerCoords): void;\n}\n\nexport class StateLayerFoundation implements IStateLayerFoundation {\n // State\n private _target: string | null = null;\n private _disabled = false;\n private _attached = false;\n private _deferred = true;\n private _pointerStartEvent: PointerEvent | undefined;\n private _pointerState: PointerState = PointerState.INACTIVE;\n private _checkBoundsAfterContextMenu = false;\n\n // Listeners\n private _pointerEnterListener: EventListener;\n private _pointerLeaveListener: EventListener;\n private _pointerDownListener: EventListener;\n private _pointerUpListener: EventListener;\n private _pointerCancelListener: EventListener;\n private _clickListener: EventListener;\n private _contextmenuListener: EventListener;\n\n constructor(private _adapter: IStateLayerAdapter) {\n this._pointerEnterListener = (evt: PointerEvent) => this._onPointerEnter(evt);\n this._pointerLeaveListener = (evt: PointerEvent) => this._onPointerLeave(evt);\n this._pointerDownListener = (evt: PointerEvent) => this._onPointerDown(evt);\n this._pointerUpListener = (evt: PointerEvent) => this._onPointerUp(evt);\n this._pointerCancelListener = (evt: PointerEvent) => this._onPointerCancel(evt);\n this._clickListener = () => this._onClick();\n this._contextmenuListener = () => this._onContextmenu();\n }\n\n public initialize(): void {\n this._adapter.trySetTarget(this._target);\n\n // Clicks could be triggered programmatically so we need to listen for them regardless\n // of deferred initialization status\n this._adapter.addTargetListener('click', this._clickListener);\n\n // We defer initialization until the first pointerenter event is received.\n //\n // This is a performance optimization to avoid attaching many listeners to the target element\n // until the user is first interacting with it.\n this._deferInitialization();\n }\n\n public disconnect(): void {\n this._pointerStartEvent = undefined;\n this._pointerState = PointerState.INACTIVE;\n this._adapter.setHovered(false);\n this._adapter.setPressed(false);\n this._removeListeners(); // Must be called before destroying adapter\n this._adapter.destroy();\n }\n\n public playAnimation(coords?: StateLayerCoords): void {\n this._adapter.startAnimation(coords);\n this._endAnimation();\n }\n\n private _deferInitialization(): void {\n this._adapter.deferInitialization(this._onDeferredInitialize.bind(this));\n }\n\n private _applyListeners(): void {\n if (this._disabled) {\n return;\n }\n\n this._adapter.addTargetListener('pointerenter', this._pointerEnterListener);\n this._adapter.addTargetListener('pointerleave', this._pointerLeaveListener);\n this._adapter.addTargetListener('pointerdown', this._pointerDownListener);\n this._adapter.addTargetListener('pointerup', this._pointerUpListener);\n this._adapter.addTargetListener('pointercancel', this._pointerCancelListener);\n this._adapter.addTargetListener('contextmenu', this._contextmenuListener);\n this._attached = true;\n }\n\n private _removeListeners(): void {\n this._adapter.removeTargetListener('pointerenter', this._pointerEnterListener);\n this._adapter.removeTargetListener('pointerleave', this._pointerLeaveListener);\n this._adapter.removeTargetListener('pointerdown', this._pointerDownListener);\n this._adapter.removeTargetListener('pointerup', this._pointerUpListener);\n this._adapter.removeTargetListener('pointercancel', this._pointerCancelListener);\n this._adapter.removeTargetListener('click', this._clickListener);\n this._adapter.removeTargetListener('contextmenu', this._contextmenuListener);\n this._attached = false;\n }\n\n private _onDeferredInitialize(evt?: PointerEvent): void {\n this._applyListeners();\n\n if (evt?.type === 'pointerenter') {\n // Manually trigger the pointerenter listener since this is in response to a pointerenter event already\n this._pointerEnterListener(evt);\n }\n \n this._deferred = false;\n }\n\n private _onPointerEnter(evt: PointerEvent): void {\n if (!this._canHandleEvent(evt)) {\n return;\n }\n this._adapter.setHovered(true);\n }\n\n private _onPointerLeave(evt: PointerEvent): void {\n if (!this._canHandleEvent(evt)) {\n return;\n }\n\n this._adapter.setHovered(false);\n\n if (this._pointerState !== PointerState.INACTIVE) {\n this._adapter.endAnimation();\n }\n }\n\n private async _onPointerDown(evt: PointerEvent): Promise<void> {\n this._pointerStartEvent = evt;\n\n if (!this._canHandleEvent(evt)) {\n return;\n }\n \n if (!this._isTouch(evt.pointerType)) {\n this._pointerState = PointerState.WAITING_FOR_CLICK;\n this._startAnimation(evt);\n return;\n }\n\n // after a longpress contextmenu event, an extra `pointerdown` can be\n // dispatched to the pressed element. Check that the down is within\n // bounds of the element in this case.\n if (this._checkBoundsAfterContextMenu && !this._adapter.inBounds(evt.x, evt.y)) {\n return;\n }\n\n this._checkBoundsAfterContextMenu = false;\n\n this._pointerState = PointerState.TOUCH_DELAY;\n await new Promise(resolve => setTimeout(resolve, TOUCH_DELAY_MS));\n\n if (this._pointerState !== PointerState.TOUCH_DELAY) {\n return;\n }\n\n this._pointerState = PointerState.HOLDING;\n this._startAnimation(evt);\n }\n\n private _onPointerUp(evt: PointerEvent): void {\n if (!this._canHandleEvent(evt)) {\n return;\n }\n\n if (this._pointerState === PointerState.HOLDING) {\n this._pointerState = PointerState.WAITING_FOR_CLICK;\n return;\n }\n\n if (this._pointerState === PointerState.TOUCH_DELAY) {\n this._pointerState = PointerState.WAITING_FOR_CLICK;\n this._startAnimation(this._pointerStartEvent);\n return;\n }\n }\n\n private _onClick(): void {\n if (this._disabled) {\n return;\n }\n\n if (this._pointerState === PointerState.WAITING_FOR_CLICK) {\n this._endAnimation();\n return;\n }\n\n if (this._pointerState === PointerState.INACTIVE) {\n this._startAnimation(this._pointerStartEvent);\n this._endAnimation();\n }\n }\n\n private _onPointerCancel(evt: PointerEvent): void {\n if (!this._canHandleEvent(evt)) {\n return;\n }\n this._endAnimation();\n }\n\n private _onContextmenu(): void {\n if (this._disabled) {\n return;\n }\n\n this._checkBoundsAfterContextMenu = true;\n this._adapter.endAnimation();\n }\n\n private _startAnimation(evt?: PointerEvent): void {\n const coords = evt ? StateLayerCoords.fromPointerEvent(evt) : undefined;\n this._adapter.startAnimation(coords);\n }\n\n private _endAnimation(): void {\n this._pointerState = PointerState.INACTIVE;\n this._adapter.endAnimation();\n this._pointerStartEvent = undefined;\n }\n\n private _canHandleEvent({ type, isPrimary, buttons, pointerType, pointerId }: PointerEvent): boolean {\n if (this._disabled || !isPrimary) {\n return false;\n }\n\n if (this._pointerStartEvent && this._pointerStartEvent.pointerId !== pointerId) {\n return false;\n }\n\n if (type === 'pointerenter' || type === 'pointerleave') {\n return !this._isTouch(pointerType);\n }\n\n const isPrimaryButton = buttons === 1;\n return this._isTouch(pointerType) || isPrimaryButton;\n }\n\n private _isTouch(pointerType: string): boolean {\n return pointerType === 'touch';\n }\n\n public get isAttached(): boolean {\n return this._attached;\n }\n\n public get targetElement(): HTMLElement | null {\n return this._adapter.getTargetElement();\n }\n public set targetElement(el: HTMLElement | null) {\n // Always remove the listeners from the previous target element\n this._removeListeners();\n\n // If unattached destroy the defer listener to recreate on the new target element\n if (!this._attached) {\n this._adapter.destroy();\n this._deferred = false;\n }\n\n this._adapter.setTargetElement(el);\n\n // If we are not already deferring attaching the listeners, then do that now\n if (!this._deferred) {\n this._deferInitialization();\n }\n }\n\n public get target(): string | null {\n return this._adapter.getHostAttribute(STATE_LAYER_CONSTANTS.attributes.TARGET);\n }\n public set target(value: string | null) {\n if (this._target !== value) {\n this._target = value;\n\n if (this._adapter.isConnected) {\n // Always remove the listeners from the previous target element\n this._removeListeners();\n\n if (!this._attached) {\n this._adapter.destroy();\n this._deferred = false;\n }\n\n this._adapter.trySetTarget(value);\n\n if (!this._deferred) {\n this._deferInitialization();\n }\n }\n\n this._adapter.toggleHostAttribute(STATE_LAYER_CONSTANTS.attributes.TARGET, Boolean(this._target), this._target as string);\n }\n }\n\n public get disabled(): boolean {\n return this._disabled;\n }\n public set disabled(value: boolean) {\n value = Boolean(value);\n if (this._disabled !== value) {\n this._disabled = value;\n\n if (this._adapter.isConnected) {\n if (this._disabled) {\n this._removeListeners();\n } else if (!this._deferred) {\n this._deferInitialization();\n }\n }\n\n this._adapter.toggleHostAttribute(STATE_LAYER_CONSTANTS.attributes.DISABLED, this._disabled);\n }\n }\n}\n", "import { CustomElement, attachShadowTemplate, FoundationProperty, coerceBoolean } from '@tylertech/forge-core';\nimport { StateLayerAdapter } from './state-layer-adapter';\nimport { StateLayerFoundation } from './state-layer-foundation';\nimport { StateLayerCoords, STATE_LAYER_CONSTANTS } from './state-layer-constants';\nimport { BaseComponent, IBaseComponent } from '../core/base/base-component';\n\nconst template = '<template><div class=\\\"forge-state-layer\\\" part=\\\"surface\\\"></div></template>';\nconst styles = ':host{border-radius:inherit;position:absolute;inset:0;overflow:hidden;display:-webkit-box;display:flex;margin:auto;pointer-events:none;-webkit-tap-highlight-color:transparent}:host([hidden]){display:none}:host([disabled]){display:none}.forge-state-layer{--_state-layer-color:var(--forge-state-layer-color, var(--forge-theme-on-surface, #000000));--_state-layer-hover-color:var(--forge-state-layer-hover-color, var(--_state-layer-color));--_state-layer-hover-opacity:var(--forge-state-layer-hover-opacity, 0.08);--_state-layer-pressed-color:var(--forge-state-layer-pressed-color, var(--_state-layer-color));--_state-layer-pressed-opacity:var(--forge-state-layer-pressed-opacity, 0.12);--_state-layer-hover-duration:var(--forge-state-layer-hover-duration, 15ms);--_state-layer-pressed-duration:var(--forge-state-layer-pressed-duration, 105ms);--_state-layer-animation-duration:var(--forge-state-layer-animation-duration, 375ms)}.forge-state-layer::after,.forge-state-layer::before{content:\\\"\\\";opacity:0;position:absolute}.forge-state-layer::before{background-color:var(--_state-layer-hover-color);inset:0;-webkit-transition:opacity var(--_state-layer-hover-duration) linear,background-color var(--_state-layer-hover-duration) linear;transition:opacity var(--_state-layer-hover-duration) linear,background-color var(--_state-layer-hover-duration) linear}.forge-state-layer::after{background:radial-gradient(closest-side,var(--_state-layer-pressed-color) max(100% - 70px,65%),transparent 100%);-webkit-transform-origin:center center;transform-origin:center center;-webkit-transition:opacity var(--_state-layer-animation-duration) linear;transition:opacity var(--_state-layer-animation-duration) linear}.forge-state-layer--hovered::before{background-color:var(--_state-layer-hover-color);opacity:var(--_state-layer-hover-opacity)}.forge-state-layer--pressed::after{opacity:var(--_state-layer-pressed-opacity);-webkit-transition-duration:var(--_state-layer-pressed-duration);transition-duration:var(--_state-layer-pressed-duration)}@media screen and (forced-colors:active){:host{display:none}}';\n\nexport interface IStateLayerComponent extends IBaseComponent {\n targetElement: HTMLElement | null;\n target: string | null;\n disabled: boolean;\n playAnimation(coords?: StateLayerCoords): void;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-state-layer': IStateLayerComponent;\n }\n}\n\n/**\n * @tag forge-state-layer\n * \n * @summary State layers show the interaction status of an element.\n * \n * @description \n * A state layer is a semi-transparent overlay on an element that indicates its interaction\n * state. State layers provide a systematic approach to visualizing states by using opacity.\n * A layer can be applied to an entire element or in a circular shape. Only one state layer\n * can be applied at a given time.\n * \n * @property {HTMLElement} targetElement - The element to attach the state layer to.\n * @property {string} target - The id of the element to attach the state layer to.\n * @property {boolean} disabled - Controls whether the state layer is disabled.\n * \n * @attribute {string} target - The id of the element to attach the state layer to.\n * @attribute {boolean} disabled - Controls whether the state layer is disabled.\n * \n * @cssproperty --forge-state-layer-color - The color of the state layer. Defaults to the on-surface theme.\n * @cssproperty --forge-state-layer-hover-color - The color of the state layer when hovered.\n * @cssproperty --forge-state-layer-hover-opacity - The opacity of the state layer when hovered.\n * @cssproperty --forge-state-layer-pressed-color - The color of the state layer when pressed.\n * @cssproperty --forge-state-layer-pressed-opacity - The opacity of the state layer when pressed.\n * @cssproperty --forge-state-layer-hover-duration - The duration of the hover animation.\n * @cssproperty --forge-state-layer-animation-duration - The duration of the animation.\n * @cssproperty --forge-state-layer-pressed-duration - The duration of the pressed animation.\n * \n * @csspart surface - The surface element.\n */\n@CustomElement({\n name: STATE_LAYER_CONSTANTS.elementName\n})\nexport class StateLayerComponent extends BaseComponent implements IStateLayerComponent {\n public static get observedAttributes(): string[] {\n return [\n STATE_LAYER_CONSTANTS.attributes.TARGET,\n STATE_LAYER_CONSTANTS.attributes.DISABLED\n ];\n }\n\n private _foundation: StateLayerFoundation;\n\n constructor() {\n super();\n attachShadowTemplate(this, template, styles);\n this._foundation = new StateLayerFoundation(new StateLayerAdapter(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 STATE_LAYER_CONSTANTS.attributes.TARGET:\n this.target = newValue;\n break;\n case STATE_LAYER_CONSTANTS.attributes.DISABLED:\n this.disabled = coerceBoolean(newValue);\n break;\n }\n }\n\n @FoundationProperty()\n public declare targetElement: HTMLElement | null;\n\n @FoundationProperty()\n public declare target: string | null;\n\n @FoundationProperty()\n public declare disabled: boolean;\n\n /**\n * Triggers the animation to run.\n * \n * Note: If coordinates are not provided, the transition will originate from the center of the target element.\n * \n * @param {StateLayerCoords} [coords] - The coordinates to play the animation from.\n */\n public playAnimation(coords?: StateLayerCoords): void {\n this._foundation.playAnimation(coords);\n }\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { COMPONENT_NAME_PREFIX } from '../constants';\n\nconst elementName = `${COMPONENT_NAME_PREFIX}state-layer`;\n\nconst observedAttributes = {\n TARGET: 'target',\n DISABLED: 'disabled'\n};\n\nconst attributes = {\n ...observedAttributes\n};\n\nconst selectors = {\n SURFACE: '.forge-state-layer'\n};\n\nconst classes = {\n HOVERED: 'forge-state-layer--hovered',\n PRESSED: 'forge-state-layer--pressed'\n};\n\nexport const STATE_LAYER_CONSTANTS = {\n elementName,\n attributes,\n selectors,\n classes\n};\n\nexport class StateLayerCoords {\n constructor(public x: number, public y: number) {}\n\n public static fromPointerEvent(event: PointerEvent): StateLayerCoords {\n return new StateLayerCoords(event.pageX, event.pageY);\n }\n}\n\nexport const TOUCH_DELAY_MS = 150;\nexport const PRESS_GROW_MS = 450;\nexport const MINIMUM_PRESS_MS = 225;\nexport const INITIAL_ORIGIN_SCALE = 0.2;\nexport const PADDING = 10;\nexport const SOFT_EDGE_MINIMUM_SIZE = 75;\nexport const SOFT_EDGE_CONTAINER_RATIO = 0.35;\nexport const PRESS_PSEUDO = '::after';\nexport const ANIMATION_FILL = 'forwards';\nexport const EASING = 'cubic-bezier(0.2, 0, 0, 1)';\n\n/**\n * Interaction states for the state layer.\n *\n * On Touch:\n * - `INACTIVE -> TOUCH_DELAY -> WAITING_FOR_CLICK -> INACTIVE`\n * - `INACTIVE -> TOUCH_DELAY -> HOLDING -> WAITING_FOR_CLICK -> INACTIVE`\n *\n * On Mouse or Pen:\n * - `INACTIVE -> WAITING_FOR_CLICK -> INACTIVE`\n */\nexport enum PointerState {\n /**\n * Initial state of the control, no touch in progress.\n *\n * Transitions:\n * - on touch down: transition to `TOUCH_DELAY`.\n * - on mouse down: transition to `WAITING_FOR_CLICK`.\n */\n INACTIVE,\n /**\n * Touch down has been received, waiting to determine if it's a swipe or\n * scroll.\n *\n * Transitions:\n * - on touch up: begin press; transition to `WAITING_FOR_CLICK`.\n * - on cancel: transition to `INACTIVE`.\n * - after `TOUCH_DELAY_MS`: begin press; transition to `HOLDING`.\n */\n TOUCH_DELAY,\n /**\n * A touch has been deemed to be a press\n *\n * Transitions:\n * - on up: transition to `WAITING_FOR_CLICK`.\n */\n HOLDING,\n /**\n * The user touch has finished, transition into rest state.\n *\n * Transitions:\n * - on click end press; transition to `INACTIVE`.\n */\n WAITING_FOR_CLICK\n}\n", "import { INITIAL_ORIGIN_SCALE, PADDING, SOFT_EDGE_CONTAINER_RATIO, SOFT_EDGE_MINIMUM_SIZE, StateLayerCoords } from './state-layer-constants';\n\nexport function calcRippleSize(hostEl: HTMLElement): { rippleScale: string; rippleSize: string; initialSize: number } {\n const { height, width } = hostEl.getBoundingClientRect();\n const maxDim = Math.max(height, width);\n const softEdgeSize = Math.max(SOFT_EDGE_CONTAINER_RATIO * maxDim, SOFT_EDGE_MINIMUM_SIZE);\n const initialSize = Math.floor(maxDim * INITIAL_ORIGIN_SCALE);\n const hypotenuse = Math.sqrt(width ** 2 + height ** 2);\n const maxRadius = hypotenuse + PADDING;\n const rippleScale = `${(maxRadius + softEdgeSize) / initialSize}`;\n const rippleSize = `${initialSize}px`;\n return { rippleScale, rippleSize, initialSize };\n}\n\nexport function getTranslationCoordinates(hostEl: HTMLElement, initialSize: number, coords?: StateLayerCoords): { startPoint: { x: number; y: number }; endPoint: { x: number; y: number } } {\n const { height, width } = hostEl.getBoundingClientRect();\n const endPoint = {\n x: (width - initialSize) / 2,\n y: (height - initialSize) / 2\n };\n\n let startPoint;\n if (isValidCoords(coords)) {\n startPoint = toNormalizedCoords(hostEl, coords);\n } else {\n startPoint = {\n x: width / 2,\n y: height / 2\n };\n }\n\n startPoint = {\n x: startPoint.x - (initialSize / 2),\n y: startPoint.y - (initialSize / 2)\n };\n\n return { startPoint, endPoint };\n}\n\nexport function toNormalizedCoords(hostEl: HTMLElement, coords: StateLayerCoords): { x: number; y: number } {\n const { scrollX, scrollY } = window;\n const { left, top } = hostEl.getBoundingClientRect();\n const documentX = scrollX + left;\n const documentY = scrollY + top;\n const { x, y } = coords;\n return { x: x - documentX, y: y - documentY };\n}\n\nexport function isInBounds(hostEl: HTMLElement, x: number, y: number): boolean {\n const { height, width } = hostEl.getBoundingClientRect();\n return x >= 0 && x <= width && y >= 0 && y <= height;\n}\n\nfunction isValidCoords(value: any): value is StateLayerCoords {\n return value && (value instanceof StateLayerCoords || ['x', 'y'].every(key => key in value));\n}\n", "import { getShadowElement } from '@tylertech/forge-core';\nimport { BaseAdapter, IBaseAdapter } from '../core/base/base-adapter';\nimport { locateTargetHeuristic, createUserInteractionListener } from '../core/utils/utils';\nimport { IStateLayerComponent } from './state-layer';\nimport { ANIMATION_FILL, EASING, MINIMUM_PRESS_MS, PRESS_GROW_MS, PRESS_PSEUDO, StateLayerCoords, STATE_LAYER_CONSTANTS } from './state-layer-constants';\nimport { calcRippleSize, getTranslationCoordinates, isInBounds } from './state-layer-utils';\n\nexport interface IStateLayerAdapter extends IBaseAdapter {\n destroy(): void;\n deferInitialization(listener: (evt?: PointerEvent) => void): void;\n getTargetElement(): HTMLElement | null;\n setTargetElement(el: HTMLElement | null): void;\n trySetTarget(value?: string | null): void;\n addTargetListener(type: string, listener: EventListener): void;\n removeTargetListener(type: string, listener: EventListener): void;\n setHovered(hovered: boolean): void;\n setPressed(pressed: boolean): void;\n startAnimation(coords?: StateLayerCoords): void;\n endAnimation(): Promise<void>;\n inBounds(x: number, y: number): boolean;\n}\n\nexport class StateLayerAdapter extends BaseAdapter<IStateLayerComponent> implements IStateLayerAdapter {\n private readonly _surfaceElement: HTMLElement;\n private _targetElement: HTMLElement | null = null;\n private _rippleAnimation: Animation | undefined;\n private _destroyDeferListener: (() => void) | undefined;\n\n constructor(component: IStateLayerComponent) {\n super(component);\n this._surfaceElement = getShadowElement(component, STATE_LAYER_CONSTANTS.selectors.SURFACE);\n }\n\n public destroy(): void {\n if (typeof this._destroyDeferListener === 'function') {\n this._destroyDeferListener();\n this._destroyDeferListener = undefined;\n }\n this._targetElement = null;\n }\n\n public async deferInitialization(listener: (evt?: PointerEvent) => void): Promise<void> {\n if (!this._targetElement) {\n return;\n }\n const { userInteraction, destroy } = createUserInteractionListener(this._targetElement);\n this._destroyDeferListener = destroy;\n const evt = await userInteraction;\n listener(evt.type === 'pointerenter' ? evt as PointerEvent : undefined);\n }\n\n public addTargetListener(type: string, listener: EventListener): void {\n this._targetElement?.addEventListener(type, listener);\n }\n\n public removeTargetListener(type: string, listener: EventListener): void {\n this._targetElement?.removeEventListener(type, listener);\n }\n\n public setHovered(hovered: boolean): void {\n this._surfaceElement.classList.toggle(STATE_LAYER_CONSTANTS.classes.HOVERED, hovered);\n }\n \n public setPressed(pressed: boolean): void {\n this._surfaceElement.classList.toggle(STATE_LAYER_CONSTANTS.classes.PRESSED, pressed);\n }\n\n public getTargetElement(): HTMLElement | null {\n return this._targetElement;\n }\n\n public setTargetElement(el: HTMLElement | null): void {\n this._targetElement = el;\n }\n\n public trySetTarget(value?: string | null): void {\n this._targetElement = locateTargetHeuristic(this._component, value);\n }\n\n public startAnimation(coords?: StateLayerCoords): void {\n if (!this._surfaceElement) {\n return;\n }\n\n this.setPressed(true);\n this._rippleAnimation?.cancel();\n\n const { rippleSize, rippleScale, initialSize } = calcRippleSize(this._component);\n const { startPoint, endPoint } = getTranslationCoordinates(this._component, initialSize, coords);\n const translateStart = `${startPoint.x}px, ${startPoint.y}px`;\n const translateEnd = `${endPoint.x}px, ${endPoint.y}px`;\n\n this._rippleAnimation = this._surfaceElement.animate(\n {\n top: [0, 0],\n left: [0, 0],\n height: [rippleSize, rippleSize],\n width: [rippleSize, rippleSize],\n transform: [\n `translate(${translateStart}) scale(1)`,\n `translate(${translateEnd}) scale(${rippleScale})`\n ]\n },\n {\n pseudoElement: PRESS_PSEUDO,\n duration: PRESS_GROW_MS,\n easing: EASING,\n fill: ANIMATION_FILL\n });\n }\n\n public async endAnimation(): Promise<void> {\n const animation = this._rippleAnimation;\n const pressAnimationPlayState = animation?.currentTime ?? Infinity;\n\n if (pressAnimationPlayState >= MINIMUM_PRESS_MS) {\n this.setPressed(false);\n return;\n }\n\n await new Promise(resolve => {\n setTimeout(resolve, MINIMUM_PRESS_MS - pressAnimationPlayState);\n });\n\n if (this._rippleAnimation !== animation) {\n return;\n }\n\n this.setPressed(false);\n }\n\n public inBounds(x: number, y: number): boolean {\n return isInBounds(this._component, x, y);\n }\n}\n", "import { ICustomElementFoundation } from '@tylertech/forge-core';\n\nimport { IStateLayerAdapter } from './state-layer-adapter';\nimport { PointerState, StateLayerCoords, STATE_LAYER_CONSTANTS, TOUCH_DELAY_MS } from './state-layer-constants';\n\nexport interface IStateLayerFoundation extends ICustomElementFoundation {\n targetElement: HTMLElement | null;\n target: string | null;\n disabled: boolean;\n playAnimation(coords?: StateLayerCoords): void;\n}\n\nexport class StateLayerFoundation implements IStateLayerFoundation {\n // State\n private _target: string | null = null;\n private _disabled = false;\n private _attached = false;\n private _deferred = true;\n private _pointerStartEvent: PointerEvent | undefined;\n private _pointerState: PointerState = PointerState.INACTIVE;\n private _checkBoundsAfterContextMenu = false;\n\n // Listeners\n private _pointerEnterListener: EventListener;\n private _pointerLeaveListener: EventListener;\n private _pointerDownListener: EventListener;\n private _pointerUpListener: EventListener;\n private _pointerCancelListener: EventListener;\n private _clickListener: EventListener;\n private _contextmenuListener: EventListener;\n\n constructor(private _adapter: IStateLayerAdapter) {\n this._pointerEnterListener = (evt: PointerEvent) => this._onPointerEnter(evt);\n this._pointerLeaveListener = (evt: PointerEvent) => this._onPointerLeave(evt);\n this._pointerDownListener = (evt: PointerEvent) => this._onPointerDown(evt);\n this._pointerUpListener = (evt: PointerEvent) => this._onPointerUp(evt);\n this._pointerCancelListener = (evt: PointerEvent) => this._onPointerCancel(evt);\n this._clickListener = () => this._onClick();\n this._contextmenuListener = () => this._onContextmenu();\n }\n\n public initialize(): void {\n this._adapter.trySetTarget(this._target);\n\n // Clicks could be triggered programmatically so we need to listen for them regardless\n // of deferred initialization status\n this._adapter.addTargetListener('click', this._clickListener);\n\n // We defer initialization until the first pointerenter event is received.\n //\n // This is a performance optimization to avoid attaching many listeners to the target element\n // until the user is first interacting with it.\n this._deferInitialization();\n }\n\n public disconnect(): void {\n this._pointerStartEvent = undefined;\n this._pointerState = PointerState.INACTIVE;\n this._adapter.setHovered(false);\n this._adapter.setPressed(false);\n this._removeListeners(); // Must be called before destroying adapter\n this._adapter.destroy();\n }\n\n public playAnimation(coords?: StateLayerCoords): void {\n this._adapter.startAnimation(coords);\n this._endAnimation();\n }\n\n private _deferInitialization(): void {\n this._adapter.deferInitialization(this._onDeferredInitialize.bind(this));\n }\n\n private _applyListeners(): void {\n if (this._disabled) {\n return;\n }\n\n this._adapter.addTargetListener('pointerenter', this._pointerEnterListener);\n this._adapter.addTargetListener('pointerleave', this._pointerLeaveListener);\n this._adapter.addTargetListener('pointerdown', this._pointerDownListener);\n this._adapter.addTargetListener('pointerup', this._pointerUpListener);\n this._adapter.addTargetListener('pointercancel', this._pointerCancelListener);\n this._adapter.addTargetListener('contextmenu', this._contextmenuListener);\n this._attached = true;\n }\n\n private _removeListeners(): void {\n this._adapter.removeTargetListener('pointerenter', this._pointerEnterListener);\n this._adapter.removeTargetListener('pointerleave', this._pointerLeaveListener);\n this._adapter.removeTargetListener('pointerdown', this._pointerDownListener);\n this._adapter.removeTargetListener('pointerup', this._pointerUpListener);\n this._adapter.removeTargetListener('pointercancel', this._pointerCancelListener);\n this._adapter.removeTargetListener('click', this._clickListener);\n this._adapter.removeTargetListener('contextmenu', this._contextmenuListener);\n this._attached = false;\n }\n\n private _onDeferredInitialize(evt?: PointerEvent): void {\n if (!this._adapter.isConnected) {\n return;\n }\n\n this._applyListeners();\n\n if (evt?.type === 'pointerenter') {\n // Manually trigger the pointerenter listener since this is in response to a pointerenter event already\n this._pointerEnterListener(evt);\n }\n \n this._deferred = false;\n }\n\n private _onPointerEnter(evt: PointerEvent): void {\n if (!this._canHandleEvent(evt)) {\n return;\n }\n this._adapter.setHovered(true);\n }\n\n private _onPointerLeave(evt: PointerEvent): void {\n if (!this._canHandleEvent(evt)) {\n return;\n }\n\n this._adapter.setHovered(false);\n\n if (this._pointerState !== PointerState.INACTIVE) {\n this._adapter.endAnimation();\n }\n }\n\n private async _onPointerDown(evt: PointerEvent): Promise<void> {\n this._pointerStartEvent = evt;\n\n if (!this._canHandleEvent(evt)) {\n return;\n }\n \n if (!this._isTouch(evt.pointerType)) {\n this._pointerState = PointerState.WAITING_FOR_CLICK;\n this._startAnimation(evt);\n return;\n }\n\n // after a longpress contextmenu event, an extra `pointerdown` can be\n // dispatched to the pressed element. Check that the down is within\n // bounds of the element in this case.\n if (this._checkBoundsAfterContextMenu && !this._adapter.inBounds(evt.x, evt.y)) {\n return;\n }\n\n this._checkBoundsAfterContextMenu = false;\n\n this._pointerState = PointerState.TOUCH_DELAY;\n await new Promise(resolve => setTimeout(resolve, TOUCH_DELAY_MS));\n\n if (this._pointerState !== PointerState.TOUCH_DELAY) {\n return;\n }\n\n this._pointerState = PointerState.HOLDING;\n this._startAnimation(evt);\n }\n\n private _onPointerUp(evt: PointerEvent): void {\n if (!this._canHandleEvent(evt)) {\n return;\n }\n\n if (this._pointerState === PointerState.HOLDING) {\n this._pointerState = PointerState.WAITING_FOR_CLICK;\n return;\n }\n\n if (this._pointerState === PointerState.TOUCH_DELAY) {\n this._pointerState = PointerState.WAITING_FOR_CLICK;\n this._startAnimation(this._pointerStartEvent);\n return;\n }\n }\n\n private _onClick(): void {\n if (this._disabled) {\n return;\n }\n\n if (this._pointerState === PointerState.WAITING_FOR_CLICK) {\n this._endAnimation();\n return;\n }\n\n if (this._pointerState === PointerState.INACTIVE) {\n this._startAnimation(this._pointerStartEvent);\n this._endAnimation();\n }\n }\n\n private _onPointerCancel(evt: PointerEvent): void {\n if (!this._canHandleEvent(evt)) {\n return;\n }\n this._endAnimation();\n }\n\n private _onContextmenu(): void {\n if (this._disabled) {\n return;\n }\n\n this._checkBoundsAfterContextMenu = true;\n this._adapter.endAnimation();\n }\n\n private _startAnimation(evt?: PointerEvent): void {\n const coords = evt ? StateLayerCoords.fromPointerEvent(evt) : undefined;\n this._adapter.startAnimation(coords);\n }\n\n private _endAnimation(): void {\n this._pointerState = PointerState.INACTIVE;\n this._adapter.endAnimation();\n this._pointerStartEvent = undefined;\n }\n\n private _canHandleEvent({ type, isPrimary, buttons, pointerType, pointerId }: PointerEvent): boolean {\n if (this._disabled || !isPrimary) {\n return false;\n }\n\n if (this._pointerStartEvent && this._pointerStartEvent.pointerId !== pointerId) {\n return false;\n }\n\n if (type === 'pointerenter' || type === 'pointerleave') {\n return !this._isTouch(pointerType);\n }\n\n const isPrimaryButton = buttons === 1;\n return this._isTouch(pointerType) || isPrimaryButton;\n }\n\n private _isTouch(pointerType: string): boolean {\n return pointerType === 'touch';\n }\n\n public get isAttached(): boolean {\n return this._attached;\n }\n\n public get targetElement(): HTMLElement | null {\n return this._adapter.getTargetElement();\n }\n public set targetElement(el: HTMLElement | null) {\n // Always remove the listeners from the previous target element\n this._removeListeners();\n\n // If unattached destroy the defer listener to recreate on the new target element\n if (!this._attached) {\n this._adapter.destroy();\n this._deferred = false;\n }\n\n this._adapter.setTargetElement(el);\n\n // If we are not already deferring attaching the listeners, then do that now\n if (!this._deferred) {\n this._deferInitialization();\n }\n }\n\n public get target(): string | null {\n return this._adapter.getHostAttribute(STATE_LAYER_CONSTANTS.attributes.TARGET);\n }\n public set target(value: string | null) {\n if (this._target !== value) {\n this._target = value;\n\n if (this._adapter.isConnected) {\n // Always remove the listeners from the previous target element\n this._removeListeners();\n\n if (!this._attached) {\n this._adapter.destroy();\n this._deferred = false;\n }\n\n this._adapter.trySetTarget(value);\n\n if (!this._deferred) {\n this._deferInitialization();\n }\n }\n\n this._adapter.toggleHostAttribute(STATE_LAYER_CONSTANTS.attributes.TARGET, Boolean(this._target), this._target as string);\n }\n }\n\n public get disabled(): boolean {\n return this._disabled;\n }\n public set disabled(value: boolean) {\n value = Boolean(value);\n if (this._disabled !== value) {\n this._disabled = value;\n\n if (this._adapter.isConnected) {\n if (this._disabled) {\n this._removeListeners();\n } else if (!this._deferred) {\n this._deferInitialization();\n }\n }\n\n this._adapter.toggleHostAttribute(STATE_LAYER_CONSTANTS.attributes.DISABLED, this._disabled);\n }\n }\n}\n", "import { CustomElement, attachShadowTemplate, FoundationProperty, coerceBoolean } from '@tylertech/forge-core';\nimport { StateLayerAdapter } from './state-layer-adapter';\nimport { StateLayerFoundation } from './state-layer-foundation';\nimport { StateLayerCoords, STATE_LAYER_CONSTANTS } from './state-layer-constants';\nimport { BaseComponent, IBaseComponent } from '../core/base/base-component';\n\nconst template = '<template><div class=\\\"forge-state-layer\\\" part=\\\"surface\\\"></div></template>';\nconst styles = ':host{border-radius:inherit;position:absolute;inset:0;overflow:hidden;display:-webkit-box;display:flex;margin:auto;pointer-events:none;-webkit-tap-highlight-color:transparent}:host([hidden]){display:none}:host([disabled]){display:none}.forge-state-layer{--_state-layer-color:var(--forge-state-layer-color, var(--forge-theme-on-surface, #000000));--_state-layer-hover-color:var(--forge-state-layer-hover-color, var(--_state-layer-color));--_state-layer-hover-opacity:var(--forge-state-layer-hover-opacity, 0.08);--_state-layer-pressed-color:var(--forge-state-layer-pressed-color, var(--_state-layer-color));--_state-layer-pressed-opacity:var(--forge-state-layer-pressed-opacity, 0.12);--_state-layer-hover-duration:var(--forge-state-layer-hover-duration, 15ms);--_state-layer-pressed-duration:var(--forge-state-layer-pressed-duration, 105ms);--_state-layer-animation-duration:var(--forge-state-layer-animation-duration, 375ms)}.forge-state-layer::after,.forge-state-layer::before{content:\\\"\\\";opacity:0;position:absolute}.forge-state-layer::before{background-color:var(--_state-layer-hover-color);inset:0;-webkit-transition:opacity var(--_state-layer-hover-duration) linear,background-color var(--_state-layer-hover-duration) linear;transition:opacity var(--_state-layer-hover-duration) linear,background-color var(--_state-layer-hover-duration) linear}.forge-state-layer::after{background:radial-gradient(closest-side,var(--_state-layer-pressed-color) max(100% - 70px,65%),transparent 100%);-webkit-transform-origin:center center;transform-origin:center center;-webkit-transition:opacity var(--_state-layer-animation-duration) linear;transition:opacity var(--_state-layer-animation-duration) linear}.forge-state-layer--hovered::before{background-color:var(--_state-layer-hover-color);opacity:var(--_state-layer-hover-opacity)}.forge-state-layer--pressed::after{opacity:var(--_state-layer-pressed-opacity);-webkit-transition-duration:var(--_state-layer-pressed-duration);transition-duration:var(--_state-layer-pressed-duration)}@media screen and (forced-colors:active){:host{display:none}}';\n\nexport interface IStateLayerComponent extends IBaseComponent {\n targetElement: HTMLElement | null;\n target: string | null;\n disabled: boolean;\n playAnimation(coords?: StateLayerCoords): void;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'forge-state-layer': IStateLayerComponent;\n }\n}\n\n/**\n * @tag forge-state-layer\n * \n * @summary State layers show the interaction status of an element.\n * \n * @description \n * A state layer is a semi-transparent overlay on an element that indicates its interaction\n * state. State layers provide a systematic approach to visualizing states by using opacity.\n * A layer can be applied to an entire element or in a circular shape. Only one state layer\n * can be applied at a given time.\n * \n * @property {HTMLElement} targetElement - The element to attach the state layer to.\n * @property {string} target - The id of the element to attach the state layer to.\n * @property {boolean} disabled - Controls whether the state layer is disabled.\n * \n * @attribute {string} target - The id of the element to attach the state layer to.\n * @attribute {boolean} disabled - Controls whether the state layer is disabled.\n * \n * @cssproperty --forge-state-layer-color - The color of the state layer. Defaults to the on-surface theme.\n * @cssproperty --forge-state-layer-hover-color - The color of the state layer when hovered.\n * @cssproperty --forge-state-layer-hover-opacity - The opacity of the state layer when hovered.\n * @cssproperty --forge-state-layer-pressed-color - The color of the state layer when pressed.\n * @cssproperty --forge-state-layer-pressed-opacity - The opacity of the state layer when pressed.\n * @cssproperty --forge-state-layer-hover-duration - The duration of the hover animation.\n * @cssproperty --forge-state-layer-animation-duration - The duration of the animation.\n * @cssproperty --forge-state-layer-pressed-duration - The duration of the pressed animation.\n * \n * @csspart surface - The surface element.\n */\n@CustomElement({\n name: STATE_LAYER_CONSTANTS.elementName\n})\nexport class StateLayerComponent extends BaseComponent implements IStateLayerComponent {\n public static get observedAttributes(): string[] {\n return [\n STATE_LAYER_CONSTANTS.attributes.TARGET,\n STATE_LAYER_CONSTANTS.attributes.DISABLED\n ];\n }\n\n private _foundation: StateLayerFoundation;\n\n constructor() {\n super();\n attachShadowTemplate(this, template, styles);\n this._foundation = new StateLayerFoundation(new StateLayerAdapter(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 STATE_LAYER_CONSTANTS.attributes.TARGET:\n this.target = newValue;\n break;\n case STATE_LAYER_CONSTANTS.attributes.DISABLED:\n this.disabled = coerceBoolean(newValue);\n break;\n }\n }\n\n @FoundationProperty()\n public declare targetElement: HTMLElement | null;\n\n @FoundationProperty()\n public declare target: string | null;\n\n @FoundationProperty()\n public declare disabled: boolean;\n\n /**\n * Triggers the animation to run.\n * \n * Note: If coordinates are not provided, the transition will originate from the center of the target element.\n * \n * @param {StateLayerCoords} [coords] - The coordinates to play the animation from.\n */\n public playAnimation(coords?: StateLayerCoords): void {\n this._foundation.playAnimation(coords);\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["elementName", "COMPONENT_NAME_PREFIX", "observedAttributes", "attributes", "__spreadValues", "selectors", "classes", "STATE_LAYER_CONSTANTS", "StateLayerCoords", "_StateLayerCoords", "x", "y", "event", "TOUCH_DELAY_MS", "PRESS_GROW_MS", "MINIMUM_PRESS_MS", "INITIAL_ORIGIN_SCALE", "PADDING", "SOFT_EDGE_MINIMUM_SIZE", "SOFT_EDGE_CONTAINER_RATIO", "PRESS_PSEUDO", "ANIMATION_FILL", "EASING", "PointerState", "calcRippleSize", "hostEl", "height", "width", "maxDim", "softEdgeSize", "SOFT_EDGE_CONTAINER_RATIO", "SOFT_EDGE_MINIMUM_SIZE", "initialSize", "INITIAL_ORIGIN_SCALE", "rippleScale", "PADDING", "rippleSize", "getTranslationCoordinates", "coords", "endPoint", "startPoint", "isValidCoords", "toNormalizedCoords", "scrollX", "scrollY", "left", "top", "documentX", "documentY", "x", "y", "isInBounds", "value", "StateLayerCoords", "key", "StateLayerAdapter", "BaseAdapter", "component", "getShadowElement", "STATE_LAYER_CONSTANTS", "listener", "userInteraction", "destroy", "createUserInteractionListener", "evt", "type", "_a", "hovered", "pressed", "el", "value", "locateTargetHeuristic", "coords", "rippleSize", "rippleScale", "initialSize", "calcRippleSize", "startPoint", "endPoint", "getTranslationCoordinates", "translateStart", "translateEnd", "PRESS_PSEUDO", "PRESS_GROW_MS", "EASING", "ANIMATION_FILL", "animation", "pressAnimationPlayState", "MINIMUM_PRESS_MS", "resolve", "x", "y", "isInBounds", "StateLayerFoundation", "_adapter", "evt", "coords", "resolve", "TOUCH_DELAY_MS", "StateLayerCoords", "type", "isPrimary", "buttons", "pointerType", "pointerId", "isPrimaryButton", "el", "STATE_LAYER_CONSTANTS", "value", "template", "styles", "StateLayerComponent", "BaseComponent", "attachShadowTemplate", "StateLayerFoundation", "StateLayerAdapter", "STATE_LAYER_CONSTANTS", "name", "oldValue", "newValue", "coerceBoolean", "coords", "__decorateClass", "FoundationProperty", "CustomElement"]
7
7
  }
@@ -3,5 +3,5 @@
3
3
  * Copyright 2023 Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- import{a,d as M}from"./chunk.ECJBVX3D.js";import{a as C}from"./chunk.LEVFMI2Q.js";import{a as O}from"./chunk.ZY3ETQ3D.js";import{a as d}from"./chunk.NVUMRW44.js";import{a as x,b as D}from"./chunk.RRNSZCVJ.js";import{a as T,e as R,f as E,k as N}from"./chunk.TPXXHX5J.js";import{l as A,t as I,u as g}from"./chunk.HZUQXCOQ.js";import{a as y}from"./chunk.MGLWXAZO.js";import{b as m,d as f,k as _}from"./chunk.J2M2MXP2.js";import{a as L,d as l}from"./chunk.M3QDAYD2.js";var Y=`${D}stepper`,F={STEPPER:"forge-stepper",LINEAR:"forge-stepper--linear",ALTERNATIVE:"forge-stepper--alternative",CLUSTERED:"forge-stepper--clustered",FIXED:"forge-stepper--fixed",ALIGN_LEFT:"forge-stepper--align-left",ALIGN_CENTER:"forge-stepper--align-center",ALIGN_RIGHT:"forge-stepper--align-right",VERTICAL:"forge-stepper--vertical",FOCUSED:"forge-stepper--focused"},K={STEPPER:`.${F.STEPPER}`},k={SELECTED_INDEX:"selected-index",LINEAR:"linear",ALTERNATIVE:"alternative",LAYOUT_MODE:"layout-mode",LAYOUT_ALIGN:"layout-align",DISABLED:"disabled",VERTICAL:"vertical"},n={ARROW_LEFT_KEY:"ArrowLeft",ARROW_RIGHT_KEY:"ArrowRight",ARROW_UP_KEY:"ArrowUp",ARROW_DOWN_KEY:"ArrowDown",END_KEY:"End",ENTER_KEY:"Enter",HOME_KEY:"Home",SPACE_KEY:"Space",TAB_KEY:"Tab"},u={ARROW_LEFT_KEYCODE:37,ARROW_RIGHT_KEYCODE:39,END_KEYCODE:35,HOME_KEYCODE:36,ENTER_KEYCODE:13,SPACE_KEYCODE:32},P=[n.ARROW_LEFT_KEY,n.ARROW_RIGHT_KEY,n.ARROW_DOWN_KEY,n.ARROW_UP_KEY,n.END_KEY,n.HOME_KEY,n.ENTER_KEY,n.SPACE_KEY,n.TAB_KEY],H={[u.ARROW_LEFT_KEYCODE]:n.ARROW_LEFT_KEY,[u.ARROW_RIGHT_KEYCODE]:n.ARROW_RIGHT_KEY,[u.END_KEYCODE]:n.END_KEY,[u.HOME_KEYCODE]:n.HOME_KEY,[u.ENTER_KEYCODE]:n.ENTER_KEY,[u.SPACE_KEYCODE]:n.SPACE_KEY},i={elementName:Y,classes:F,selectors:K,attributes:k,numbers:u,strings:n,ACCEPTABLE_KEYS:P,KEYCODE_MAP:H};var c=class S{static createStepElement(t,e,s){var p,v;let o=document.createElement(a.elementName);return o.index=e,o.completed=t.completed||!1,o.editable=t.editable||!1,o.selected=s.selectedIndex===e,o.alternative=s.alternative,o.error=t.error||!1,o.disabled=t.disabled||!1,o.vertical=(v=(p=t.vertical)!=null?p:s.vertical)!=null?v:!1,o.ignoreUserExpansion=t.ignoreUserExpansion||!1,o.expanded=t.expanded||!1,s.linear&&e>s.selectedIndex&&(o.tabIndex=-1),o.textContent=t.label,t.optionalLabel&&o.appendChild(this.createStepOptionalLabel(t.optionalLabel)),o}static createStepOptionalLabel(t){let e=document.createElement("span");return e.slot="optional",e.textContent=t||"",e}static setLinearState(t,e){let s=t.classList.contains(i.classes.LINEAR);s&&!e&&(t.classList.remove(i.classes.LINEAR),s=!1),!s&&e&&t.classList.add(i.classes.LINEAR)}static setAlternativeState(t,e){let s=t.classList.contains(i.classes.ALTERNATIVE);s&&!e&&(t.classList.remove(i.classes.ALTERNATIVE),s=!1),!s&&e&&t.classList.add(i.classes.ALTERNATIVE)}static setLayoutMode(t,e){switch(e){case"clustered":t.classList.contains(i.classes.FIXED)&&t.classList.remove(i.classes.FIXED),t.classList.add(i.classes.CLUSTERED);break;case"fixed":t.classList.contains(i.classes.CLUSTERED)&&t.classList.remove(i.classes.CLUSTERED),t.classList.add(i.classes.FIXED);break}}static setLayoutAlign(t,e){switch(t.classList.contains(i.classes.ALIGN_LEFT)&&t.classList.remove(i.classes.ALIGN_LEFT),t.classList.contains(i.classes.ALIGN_CENTER)&&t.classList.remove(i.classes.ALIGN_CENTER),t.classList.contains(i.classes.ALIGN_RIGHT)&&t.classList.remove(i.classes.ALIGN_RIGHT),e){case"left":t.classList.add(i.classes.ALIGN_LEFT);break;case"center":t.classList.add(i.classes.ALIGN_CENTER);break;case"right":t.classList.add(i.classes.ALIGN_RIGHT);break}}static createSteps(t){let e=[];return t.steps.forEach((s,o)=>{let p=S.createStepElement(s,o,t);e.push(p)}),e[0].setAttribute(a.attributes.FIRST,""),e[e.length-1].setAttribute(a.attributes.LAST,""),e}};var h=class extends O{constructor(e){super(e);this._rootElement=E(e,i.selectors.STEPPER),this._slotElement=this._rootElement.querySelector("slot")}initializeAccessibility(){this._component.hasAttribute("role")||this._component.setAttribute("role","tablist")}patchSafari(){this._applyToSteps(e=>e.setAttribute("safari",""))}addSlotChangeListener(e){this._slotElement.addEventListener("slotchange",e)}removeSlotChangeListener(e){this._slotElement.addEventListener("slotchange",e)}getLastStep(){let e=this._getSteps();return e.item(e.length-1)}setSelected(e){this._getSteps().forEach(s=>{s===e?s.selected=!0:s.selected=!1})}assignIndices(){this._getSteps().forEach((s,o)=>{s.index=o})}assignFirstLastStep(){let e=this._getSteps();e&&e.length>1&&(e[0].setAttribute("first",""),e[e.length-1].setAttribute("last",""))}setLayoutAlign(e){c.setLayoutAlign(this._rootElement,e)}setLayoutMode(e){c.setLayoutMode(this._rootElement,e),this._applyToSteps(s=>s.setAttribute(a.attributes.CLUSTERED,""))}setAlternativeState(e){c.setAlternativeState(this._rootElement,e),this._applyToSteps(s=>s.alternative=e)}setVertical(e){g(this._rootElement,e,i.classes.VERTICAL),this._applyToSteps(s=>s.vertical=e)}setLinearState(e){c.setLinearState(this._rootElement,e)}removeRootListener(e,s){this._rootElement.removeEventListener("click",s)}addRootListener(e,s){this._rootElement.addEventListener(e,s)}setSelectedByIndex(e){this._applyToSteps(s=>{s.selected&&s.index!==e&&(s.selected=!1),s.index===e&&(s.selected=!0)})}applyConfiguredSteps(e){this._component.querySelectorAll(a.elementName).forEach(s=>{this._component.removeChild(s)}),e.forEach(s=>this._component.appendChild(s))}tryGetFocusedStep(){let e,s=I(this._component.ownerDocument);return this._applyToSteps(o=>{s===E(o,a.selectors.STEP)&&(e=o)}),e}getFocusedOrSelectedStep(){let e=this.tryGetFocusedStep();return e||(e=this._getSteps()[0],e.focus()),e}getStep(e){let s=0,o=this._getSteps();return e<0?o.item(o.length-1):(o.length>e&&(s=e),o.item(s))}toggleDisabled(e){this._applyToSteps(s=>s.disabled=e)}toggleRootClass(e,s){g(this._rootElement,s,e)}isStepperFocused(){return this._rootElement.classList.contains(i.classes.FOCUSED)}setStepsListener(e,s){this._applyToSteps(o=>o.addEventListener(e,s))}removeStepsListener(e,s){this._applyToSteps(o=>o.removeEventListener(e,s))}_applyToSteps(e){this._getSteps().forEach(e)}_getSteps(){return this._component.querySelectorAll(a.elementName)}};var b=class{constructor(t){this._adapter=t;this._steps=[];this._selectedIndex=0;this._linear=!1;this._alternative=!1;this._layoutMode="fixed";this._layoutAlign="center";this._initialize=!1;this._clickListener=e=>this._handleClick(e),this._keyListener=e=>this._onKeydown(e),this._stepFocusListener=()=>this._onStepFocus(),this._stepBlurListener=()=>this._onStepBlur(),this._stepExpandedContentFocusInListener=e=>this._onStepExpandedContentFocusIn(e),this._stepExpandedContentFocusOutListener=e=>this._onStepExpandedContentFocusOut(e),this._slotChangeListener=e=>this._onSlotChange(e)}initialize(){this._adapter.initializeAccessibility(),this._adapter.assignIndices(),this._adapter.setLinearState(this._linear),this._adapter.setAlternativeState(this._alternative),this._adapter.setLayoutAlign(this._layoutAlign),this._adapter.setLayoutMode(this._layoutMode),this._adapter.addRootListener("click",this._clickListener),this._adapter.addHostListener("keydown",this._keyListener),this._adapter.assignFirstLastStep(),this._adapter.addRootListener(a.events.EXPANDED_CONTENT_FOCUSIN,this._stepExpandedContentFocusInListener),this._adapter.addRootListener(a.events.EXPANDED_CONTENT_FOCUSOUT,this._stepExpandedContentFocusOutListener),this._applySelectedIndex(),this._patchBrowser(),this._adapter.setStepsListener("blur",this._stepBlurListener),this._adapter.setStepsListener("focus",this._stepFocusListener),this._initialize||this._adapter.addSlotChangeListener(this._slotChangeListener),this._initialize=!0}disconnect(){this._adapter.removeRootListener("click",this._clickListener),this._adapter.removeHostListener("keydown",this._keyListener),this._adapter.removeSlotChangeListener(this._slotChangeListener),this._adapter.removeStepsListener("blur",this._stepBlurListener),this._adapter.removeStepsListener("focus",this._stepFocusListener)}get steps(){return this._steps.map(t=>L({},t))}set steps(t){if(Array.isArray(t)&&t.length>0)this._steps=[...t.map(e=>L({},e))];else{this._steps=[];return}this._renderConfiguration()}get selectedIndex(){return this._selectedIndex}set selectedIndex(t){if(!m(t))t=0;else if(!f(t)){let e=Number(t);t=isNaN(e)?0:e}this._selectedIndex!==t&&(this._selectedIndex=t,this._adapter.setHostAttribute(i.attributes.SELECTED_INDEX,this._selectedIndex.toString()),this._applySelectedIndex())}get linear(){return this._linear}set linear(t){t=!!t,this._linear!==t&&(this._linear=t,this._adapter.setLinearState(this._linear),this._adapter.setHostAttribute(i.attributes.LINEAR,this._linear.toString()))}get alternative(){return this._alternative}set alternative(t){t=!!t,this._alternative!==t&&(this._alternative=t,this._adapter.setAlternativeState(this._alternative),this._adapter.setHostAttribute(i.attributes.ALTERNATIVE,this._alternative.toString()))}get layoutMode(){return this._layoutMode}set layoutMode(t){/^(fixed|clustered)$/.test(t)&&this._layoutMode!==t&&(this._layoutMode=t,this._adapter.setHostAttribute(i.attributes.LAYOUT_MODE,this._layoutMode),this._adapter.setLayoutMode(this._layoutMode))}get layoutAlign(){return this._layoutAlign}set layoutAlign(t){/^(left|center|right)$/.test(t)&&this._layoutAlign!==t&&(this._layoutAlign=t,this._adapter.setLayoutAlign(this._layoutAlign),this._adapter.setHostAttribute(i.attributes.LAYOUT_ALIGN,this._layoutAlign))}get disabled(){return this._disabled}set disabled(t){t!==this._disabled&&(this._disabled=t,this._applyDisabled())}get vertical(){return this._vertical}set vertical(t){t!==this._vertical&&(this._vertical=t,this._applyVertical(),this._adapter.toggleHostAttribute(i.attributes.VERTICAL,this._vertical))}_applyVertical(){this._adapter.setVertical(this._vertical)}_applyDisabled(){this._disabled?this._adapter.setHostAttribute(i.attributes.DISABLED,"disabled"):this._adapter.removeHostAttribute(i.attributes.DISABLED),this._adapter.toggleDisabled(this._disabled)}_applySelectedIndex(){this._adapter.setSelectedByIndex(this._selectedIndex)}_handleClick(t){if(t.preventDefault(),this._linear)return;let e=C(t),s=e.find(p=>p.classList&&p.classList.contains(a.classes.STEP)),o=e.find(p=>p.localName===a.elementName);s&&o&&!o.selected&&!o.disabled&&this._adapter.emitHostEvent(a.events.SELECT,o.index,!0,!0)&&(this._adapter.setSelected(o),this.selectedIndex=o.index)}_renderConfiguration(){let t=c.createSteps({steps:this._steps,vertical:this._vertical,selectedIndex:this._selectedIndex,alternative:this._alternative,layoutAlign:this._layoutAlign,layoutMode:this._layoutMode,linear:this._linear});this.disconnect(),this._adapter.applyConfiguredSteps(t),this.initialize()}_onKeydown(t){if(this._linear)return;let e=this._getKeyFromEvent(t);if(!this._adapter.isStepperFocused()||!e)return;[a.strings.HOME_KEY,a.strings.END_KEY,a.strings.ARROW_DOWN_KEY,i.strings.ARROW_UP_KEY].includes(e)&&t.preventDefault();let s=this._vertical?this._determineVerticalMoveTarget(e):this._determineMoveTarget(e);s&&this._moveFocusTo(s)}_moveFocusTo(t){E(t,a.selectors.STEP).focus()}_getKeyFromEvent(t){return i.ACCEPTABLE_KEYS.includes(t.key)?t.key:i.KEYCODE_MAP[t.keyCode]}_determineMoveTarget(t){let e=this._adapter.getFocusedOrSelectedStep();if(e)switch(t){case i.strings.ARROW_RIGHT_KEY:return this._adapter.getStep(e.index+1);case i.strings.ARROW_LEFT_KEY:return this._adapter.getStep(e.index-1);case i.strings.HOME_KEY:return this._adapter.getStep(0);case i.strings.END_KEY:return this._adapter.getLastStep()}return e}_determineVerticalMoveTarget(t){let e=this._adapter.getFocusedOrSelectedStep();if(e)switch(t){case i.strings.ARROW_DOWN_KEY:return this._adapter.getStep(e.index+1);case i.strings.ARROW_UP_KEY:return this._adapter.getStep(e.index-1);case i.strings.HOME_KEY:return this._adapter.getStep(0);case i.strings.END_KEY:return this._adapter.getLastStep()}return e}_onSlotChange(t){this.disconnect(),this.initialize()}_onStepExpandedContentFocusIn(t){let e=this._adapter.getStep(t.detail.index+1);e&&e.setStepTabIndex(0),t.detail.setStepTabIndex(0)}_onStepExpandedContentFocusOut(t){let e=t.target,s=this._adapter.getStep(e.index+1);s&&s.setStepTabIndex(-1),e.setStepTabIndex(-1)}_onStepFocus(){this._adapter.toggleRootClass(i.classes.FOCUSED,!0)}_onStepBlur(){this._adapter.toggleRootClass(i.classes.FOCUSED,!1)}_patchBrowser(){new y().SAFARI()&&this._adapter.patchSafari()}};var w='<template><div class="forge-stepper" part="root"><slot></slot></div></template>',B=".forge-stepper{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;white-space:nowrap;overflow:hidden}.forge-stepper:not(.forge-stepper--vertical) ::slotted(*){display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;position:relative;min-width:112px}.forge-stepper--fixed ::slotted(*){-webkit-box-flex:1;flex:1}.forge-stepper--alternative{-webkit-box-align:start;align-items:flex-start}.forge-stepper--alternative ::slotted(*){min-width:160px}.forge-stepper--align-left{-webkit-box-pack:start;justify-content:flex-start}.forge-stepper--align-center{-webkit-box-pack:center;justify-content:center}.forge-stepper--align-right{-webkit-box-pack:end;justify-content:flex-end}:host{display:block}:host([hidden]){display:none}:host([vertical]) .forge-stepper{display:unset;-webkit-box-align:unset;align-items:unset;white-space:unset;overflow:unset}",r=class extends N{constructor(){super();R(this,w,B),this._foundation=new b(new h(this))}static get observedAttributes(){return[i.attributes.SELECTED_INDEX,i.attributes.LINEAR,i.attributes.ALTERNATIVE,i.attributes.LAYOUT_MODE,i.attributes.LAYOUT_ALIGN,i.attributes.DISABLED,i.attributes.VERTICAL]}async connectedCallback(){await A(this),this._foundation.initialize()}disconnectedCallback(){this._foundation.disconnect()}attributeChangedCallback(e,s,o){switch(e){case i.attributes.SELECTED_INDEX:this.selectedIndex=Number(o)||0;break;case i.attributes.LINEAR:this.linear=_(o);break;case i.attributes.ALTERNATIVE:this.alternative=_(o);break;case i.attributes.LAYOUT_MODE:this.layoutMode=o;break;case i.attributes.LAYOUT_ALIGN:this.layoutAlign=o;break;case i.attributes.DISABLED:this.disabled=_(o);break;case i.attributes.VERTICAL:this.vertical=_(o);break}}};l([d()],r.prototype,"steps",2),l([d()],r.prototype,"selectedIndex",2),l([d()],r.prototype,"linear",2),l([d()],r.prototype,"alternative",2),l([d()],r.prototype,"layoutMode",2),l([d()],r.prototype,"layoutAlign",2),l([d()],r.prototype,"disabled",2),l([d()],r.prototype,"vertical",2),r=l([x({name:i.elementName,dependencies:[M]})],r);function Re(){T(r)}export{i as a,h as b,b as c,r as d,Re as e};
7
- //# sourceMappingURL=chunk.FQVR2QNF.js.map
6
+ import{a,d as M}from"./chunk.VN7JOJVU.js";import{a as C}from"./chunk.LEVFMI2Q.js";import{a as O}from"./chunk.ZY3ETQ3D.js";import{a as d}from"./chunk.NVUMRW44.js";import{a as x,b as D}from"./chunk.UVXKHQQZ.js";import{a as T,e as R,f as E,k as N}from"./chunk.TPXXHX5J.js";import{a as y}from"./chunk.MGLWXAZO.js";import{l as A,t as I,u as g}from"./chunk.HZUQXCOQ.js";import{b as m,d as f,k as _}from"./chunk.J2M2MXP2.js";import{a as L,d as l}from"./chunk.M3QDAYD2.js";var Y=`${D}stepper`,F={STEPPER:"forge-stepper",LINEAR:"forge-stepper--linear",ALTERNATIVE:"forge-stepper--alternative",CLUSTERED:"forge-stepper--clustered",FIXED:"forge-stepper--fixed",ALIGN_LEFT:"forge-stepper--align-left",ALIGN_CENTER:"forge-stepper--align-center",ALIGN_RIGHT:"forge-stepper--align-right",VERTICAL:"forge-stepper--vertical",FOCUSED:"forge-stepper--focused"},K={STEPPER:`.${F.STEPPER}`},k={SELECTED_INDEX:"selected-index",LINEAR:"linear",ALTERNATIVE:"alternative",LAYOUT_MODE:"layout-mode",LAYOUT_ALIGN:"layout-align",DISABLED:"disabled",VERTICAL:"vertical"},n={ARROW_LEFT_KEY:"ArrowLeft",ARROW_RIGHT_KEY:"ArrowRight",ARROW_UP_KEY:"ArrowUp",ARROW_DOWN_KEY:"ArrowDown",END_KEY:"End",ENTER_KEY:"Enter",HOME_KEY:"Home",SPACE_KEY:"Space",TAB_KEY:"Tab"},u={ARROW_LEFT_KEYCODE:37,ARROW_RIGHT_KEYCODE:39,END_KEYCODE:35,HOME_KEYCODE:36,ENTER_KEYCODE:13,SPACE_KEYCODE:32},P=[n.ARROW_LEFT_KEY,n.ARROW_RIGHT_KEY,n.ARROW_DOWN_KEY,n.ARROW_UP_KEY,n.END_KEY,n.HOME_KEY,n.ENTER_KEY,n.SPACE_KEY,n.TAB_KEY],H={[u.ARROW_LEFT_KEYCODE]:n.ARROW_LEFT_KEY,[u.ARROW_RIGHT_KEYCODE]:n.ARROW_RIGHT_KEY,[u.END_KEYCODE]:n.END_KEY,[u.HOME_KEYCODE]:n.HOME_KEY,[u.ENTER_KEYCODE]:n.ENTER_KEY,[u.SPACE_KEYCODE]:n.SPACE_KEY},i={elementName:Y,classes:F,selectors:K,attributes:k,numbers:u,strings:n,ACCEPTABLE_KEYS:P,KEYCODE_MAP:H};var c=class S{static createStepElement(t,e,s){var p,v;let o=document.createElement(a.elementName);return o.index=e,o.completed=t.completed||!1,o.editable=t.editable||!1,o.selected=s.selectedIndex===e,o.alternative=s.alternative,o.error=t.error||!1,o.disabled=t.disabled||!1,o.vertical=(v=(p=t.vertical)!=null?p:s.vertical)!=null?v:!1,o.ignoreUserExpansion=t.ignoreUserExpansion||!1,o.expanded=t.expanded||!1,s.linear&&e>s.selectedIndex&&(o.tabIndex=-1),o.textContent=t.label,t.optionalLabel&&o.appendChild(this.createStepOptionalLabel(t.optionalLabel)),o}static createStepOptionalLabel(t){let e=document.createElement("span");return e.slot="optional",e.textContent=t||"",e}static setLinearState(t,e){let s=t.classList.contains(i.classes.LINEAR);s&&!e&&(t.classList.remove(i.classes.LINEAR),s=!1),!s&&e&&t.classList.add(i.classes.LINEAR)}static setAlternativeState(t,e){let s=t.classList.contains(i.classes.ALTERNATIVE);s&&!e&&(t.classList.remove(i.classes.ALTERNATIVE),s=!1),!s&&e&&t.classList.add(i.classes.ALTERNATIVE)}static setLayoutMode(t,e){switch(e){case"clustered":t.classList.contains(i.classes.FIXED)&&t.classList.remove(i.classes.FIXED),t.classList.add(i.classes.CLUSTERED);break;case"fixed":t.classList.contains(i.classes.CLUSTERED)&&t.classList.remove(i.classes.CLUSTERED),t.classList.add(i.classes.FIXED);break}}static setLayoutAlign(t,e){switch(t.classList.contains(i.classes.ALIGN_LEFT)&&t.classList.remove(i.classes.ALIGN_LEFT),t.classList.contains(i.classes.ALIGN_CENTER)&&t.classList.remove(i.classes.ALIGN_CENTER),t.classList.contains(i.classes.ALIGN_RIGHT)&&t.classList.remove(i.classes.ALIGN_RIGHT),e){case"left":t.classList.add(i.classes.ALIGN_LEFT);break;case"center":t.classList.add(i.classes.ALIGN_CENTER);break;case"right":t.classList.add(i.classes.ALIGN_RIGHT);break}}static createSteps(t){let e=[];return t.steps.forEach((s,o)=>{let p=S.createStepElement(s,o,t);e.push(p)}),e[0].setAttribute(a.attributes.FIRST,""),e[e.length-1].setAttribute(a.attributes.LAST,""),e}};var h=class extends O{constructor(e){super(e);this._rootElement=E(e,i.selectors.STEPPER),this._slotElement=this._rootElement.querySelector("slot")}initializeAccessibility(){this._component.hasAttribute("role")||this._component.setAttribute("role","tablist")}patchSafari(){this._applyToSteps(e=>e.setAttribute("safari",""))}addSlotChangeListener(e){this._slotElement.addEventListener("slotchange",e)}removeSlotChangeListener(e){this._slotElement.addEventListener("slotchange",e)}getLastStep(){let e=this._getSteps();return e.item(e.length-1)}setSelected(e){this._getSteps().forEach(s=>{s===e?s.selected=!0:s.selected=!1})}assignIndices(){this._getSteps().forEach((s,o)=>{s.index=o})}assignFirstLastStep(){let e=this._getSteps();e&&e.length>1&&(e[0].setAttribute("first",""),e[e.length-1].setAttribute("last",""))}setLayoutAlign(e){c.setLayoutAlign(this._rootElement,e)}setLayoutMode(e){c.setLayoutMode(this._rootElement,e),this._applyToSteps(s=>s.setAttribute(a.attributes.CLUSTERED,""))}setAlternativeState(e){c.setAlternativeState(this._rootElement,e),this._applyToSteps(s=>s.alternative=e)}setVertical(e){g(this._rootElement,e,i.classes.VERTICAL),this._applyToSteps(s=>s.vertical=e)}setLinearState(e){c.setLinearState(this._rootElement,e)}removeRootListener(e,s){this._rootElement.removeEventListener("click",s)}addRootListener(e,s){this._rootElement.addEventListener(e,s)}setSelectedByIndex(e){this._applyToSteps(s=>{s.selected&&s.index!==e&&(s.selected=!1),s.index===e&&(s.selected=!0)})}applyConfiguredSteps(e){this._component.querySelectorAll(a.elementName).forEach(s=>{this._component.removeChild(s)}),e.forEach(s=>this._component.appendChild(s))}tryGetFocusedStep(){let e,s=I(this._component.ownerDocument);return this._applyToSteps(o=>{s===E(o,a.selectors.STEP)&&(e=o)}),e}getFocusedOrSelectedStep(){let e=this.tryGetFocusedStep();return e||(e=this._getSteps()[0],e.focus()),e}getStep(e){let s=0,o=this._getSteps();return e<0?o.item(o.length-1):(o.length>e&&(s=e),o.item(s))}toggleDisabled(e){this._applyToSteps(s=>s.disabled=e)}toggleRootClass(e,s){g(this._rootElement,s,e)}isStepperFocused(){return this._rootElement.classList.contains(i.classes.FOCUSED)}setStepsListener(e,s){this._applyToSteps(o=>o.addEventListener(e,s))}removeStepsListener(e,s){this._applyToSteps(o=>o.removeEventListener(e,s))}_applyToSteps(e){this._getSteps().forEach(e)}_getSteps(){return this._component.querySelectorAll(a.elementName)}};var b=class{constructor(t){this._adapter=t;this._steps=[];this._selectedIndex=0;this._linear=!1;this._alternative=!1;this._layoutMode="fixed";this._layoutAlign="center";this._initialize=!1;this._clickListener=e=>this._handleClick(e),this._keyListener=e=>this._onKeydown(e),this._stepFocusListener=()=>this._onStepFocus(),this._stepBlurListener=()=>this._onStepBlur(),this._stepExpandedContentFocusInListener=e=>this._onStepExpandedContentFocusIn(e),this._stepExpandedContentFocusOutListener=e=>this._onStepExpandedContentFocusOut(e),this._slotChangeListener=e=>this._onSlotChange(e)}initialize(){this._adapter.initializeAccessibility(),this._adapter.assignIndices(),this._adapter.setLinearState(this._linear),this._adapter.setAlternativeState(this._alternative),this._adapter.setLayoutAlign(this._layoutAlign),this._adapter.setLayoutMode(this._layoutMode),this._adapter.addRootListener("click",this._clickListener),this._adapter.addHostListener("keydown",this._keyListener),this._adapter.assignFirstLastStep(),this._adapter.addRootListener(a.events.EXPANDED_CONTENT_FOCUSIN,this._stepExpandedContentFocusInListener),this._adapter.addRootListener(a.events.EXPANDED_CONTENT_FOCUSOUT,this._stepExpandedContentFocusOutListener),this._applySelectedIndex(),this._patchBrowser(),this._adapter.setStepsListener("blur",this._stepBlurListener),this._adapter.setStepsListener("focus",this._stepFocusListener),this._initialize||this._adapter.addSlotChangeListener(this._slotChangeListener),this._initialize=!0}disconnect(){this._adapter.removeRootListener("click",this._clickListener),this._adapter.removeHostListener("keydown",this._keyListener),this._adapter.removeSlotChangeListener(this._slotChangeListener),this._adapter.removeStepsListener("blur",this._stepBlurListener),this._adapter.removeStepsListener("focus",this._stepFocusListener)}get steps(){return this._steps.map(t=>L({},t))}set steps(t){if(Array.isArray(t)&&t.length>0)this._steps=[...t.map(e=>L({},e))];else{this._steps=[];return}this._renderConfiguration()}get selectedIndex(){return this._selectedIndex}set selectedIndex(t){if(!m(t))t=0;else if(!f(t)){let e=Number(t);t=isNaN(e)?0:e}this._selectedIndex!==t&&(this._selectedIndex=t,this._adapter.setHostAttribute(i.attributes.SELECTED_INDEX,this._selectedIndex.toString()),this._applySelectedIndex())}get linear(){return this._linear}set linear(t){t=!!t,this._linear!==t&&(this._linear=t,this._adapter.setLinearState(this._linear),this._adapter.setHostAttribute(i.attributes.LINEAR,this._linear.toString()))}get alternative(){return this._alternative}set alternative(t){t=!!t,this._alternative!==t&&(this._alternative=t,this._adapter.setAlternativeState(this._alternative),this._adapter.setHostAttribute(i.attributes.ALTERNATIVE,this._alternative.toString()))}get layoutMode(){return this._layoutMode}set layoutMode(t){/^(fixed|clustered)$/.test(t)&&this._layoutMode!==t&&(this._layoutMode=t,this._adapter.setHostAttribute(i.attributes.LAYOUT_MODE,this._layoutMode),this._adapter.setLayoutMode(this._layoutMode))}get layoutAlign(){return this._layoutAlign}set layoutAlign(t){/^(left|center|right)$/.test(t)&&this._layoutAlign!==t&&(this._layoutAlign=t,this._adapter.setLayoutAlign(this._layoutAlign),this._adapter.setHostAttribute(i.attributes.LAYOUT_ALIGN,this._layoutAlign))}get disabled(){return this._disabled}set disabled(t){t!==this._disabled&&(this._disabled=t,this._applyDisabled())}get vertical(){return this._vertical}set vertical(t){t!==this._vertical&&(this._vertical=t,this._applyVertical(),this._adapter.toggleHostAttribute(i.attributes.VERTICAL,this._vertical))}_applyVertical(){this._adapter.setVertical(this._vertical)}_applyDisabled(){this._disabled?this._adapter.setHostAttribute(i.attributes.DISABLED,"disabled"):this._adapter.removeHostAttribute(i.attributes.DISABLED),this._adapter.toggleDisabled(this._disabled)}_applySelectedIndex(){this._adapter.setSelectedByIndex(this._selectedIndex)}_handleClick(t){if(t.preventDefault(),this._linear)return;let e=C(t),s=e.find(p=>p.classList&&p.classList.contains(a.classes.STEP)),o=e.find(p=>p.localName===a.elementName);s&&o&&!o.selected&&!o.disabled&&this._adapter.emitHostEvent(a.events.SELECT,o.index,!0,!0)&&(this._adapter.setSelected(o),this.selectedIndex=o.index)}_renderConfiguration(){let t=c.createSteps({steps:this._steps,vertical:this._vertical,selectedIndex:this._selectedIndex,alternative:this._alternative,layoutAlign:this._layoutAlign,layoutMode:this._layoutMode,linear:this._linear});this.disconnect(),this._adapter.applyConfiguredSteps(t),this.initialize()}_onKeydown(t){if(this._linear)return;let e=this._getKeyFromEvent(t);if(!this._adapter.isStepperFocused()||!e)return;[a.strings.HOME_KEY,a.strings.END_KEY,a.strings.ARROW_DOWN_KEY,i.strings.ARROW_UP_KEY].includes(e)&&t.preventDefault();let s=this._vertical?this._determineVerticalMoveTarget(e):this._determineMoveTarget(e);s&&this._moveFocusTo(s)}_moveFocusTo(t){E(t,a.selectors.STEP).focus()}_getKeyFromEvent(t){return i.ACCEPTABLE_KEYS.includes(t.key)?t.key:i.KEYCODE_MAP[t.keyCode]}_determineMoveTarget(t){let e=this._adapter.getFocusedOrSelectedStep();if(e)switch(t){case i.strings.ARROW_RIGHT_KEY:return this._adapter.getStep(e.index+1);case i.strings.ARROW_LEFT_KEY:return this._adapter.getStep(e.index-1);case i.strings.HOME_KEY:return this._adapter.getStep(0);case i.strings.END_KEY:return this._adapter.getLastStep()}return e}_determineVerticalMoveTarget(t){let e=this._adapter.getFocusedOrSelectedStep();if(e)switch(t){case i.strings.ARROW_DOWN_KEY:return this._adapter.getStep(e.index+1);case i.strings.ARROW_UP_KEY:return this._adapter.getStep(e.index-1);case i.strings.HOME_KEY:return this._adapter.getStep(0);case i.strings.END_KEY:return this._adapter.getLastStep()}return e}_onSlotChange(t){this.disconnect(),this.initialize()}_onStepExpandedContentFocusIn(t){let e=this._adapter.getStep(t.detail.index+1);e&&e.setStepTabIndex(0),t.detail.setStepTabIndex(0)}_onStepExpandedContentFocusOut(t){let e=t.target,s=this._adapter.getStep(e.index+1);s&&s.setStepTabIndex(-1),e.setStepTabIndex(-1)}_onStepFocus(){this._adapter.toggleRootClass(i.classes.FOCUSED,!0)}_onStepBlur(){this._adapter.toggleRootClass(i.classes.FOCUSED,!1)}_patchBrowser(){new y().SAFARI()&&this._adapter.patchSafari()}};var w='<template><div class="forge-stepper" part="root"><slot></slot></div></template>',B=".forge-stepper{display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;white-space:nowrap;overflow:hidden}.forge-stepper:not(.forge-stepper--vertical) ::slotted(*){display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;position:relative;min-width:112px}.forge-stepper--fixed ::slotted(*){-webkit-box-flex:1;flex:1}.forge-stepper--alternative{-webkit-box-align:start;align-items:flex-start}.forge-stepper--alternative ::slotted(*){min-width:160px}.forge-stepper--align-left{-webkit-box-pack:start;justify-content:flex-start}.forge-stepper--align-center{-webkit-box-pack:center;justify-content:center}.forge-stepper--align-right{-webkit-box-pack:end;justify-content:flex-end}:host{display:block}:host([hidden]){display:none}:host([vertical]) .forge-stepper{display:unset;-webkit-box-align:unset;align-items:unset;white-space:unset;overflow:unset}",r=class extends N{constructor(){super();R(this,w,B),this._foundation=new b(new h(this))}static get observedAttributes(){return[i.attributes.SELECTED_INDEX,i.attributes.LINEAR,i.attributes.ALTERNATIVE,i.attributes.LAYOUT_MODE,i.attributes.LAYOUT_ALIGN,i.attributes.DISABLED,i.attributes.VERTICAL]}async connectedCallback(){await A(this),this._foundation.initialize()}disconnectedCallback(){this._foundation.disconnect()}attributeChangedCallback(e,s,o){switch(e){case i.attributes.SELECTED_INDEX:this.selectedIndex=Number(o)||0;break;case i.attributes.LINEAR:this.linear=_(o);break;case i.attributes.ALTERNATIVE:this.alternative=_(o);break;case i.attributes.LAYOUT_MODE:this.layoutMode=o;break;case i.attributes.LAYOUT_ALIGN:this.layoutAlign=o;break;case i.attributes.DISABLED:this.disabled=_(o);break;case i.attributes.VERTICAL:this.vertical=_(o);break}}};l([d()],r.prototype,"steps",2),l([d()],r.prototype,"selectedIndex",2),l([d()],r.prototype,"linear",2),l([d()],r.prototype,"alternative",2),l([d()],r.prototype,"layoutMode",2),l([d()],r.prototype,"layoutAlign",2),l([d()],r.prototype,"disabled",2),l([d()],r.prototype,"vertical",2),r=l([x({name:i.elementName,dependencies:[M]})],r);function Re(){T(r)}export{i as a,h as b,b as c,r as d,Re as e};
7
+ //# sourceMappingURL=chunk.GAHE4QVB.js.map