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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (849) hide show
  1. package/README.md +1 -6
  2. package/custom-elements.json +63803 -41782
  3. package/dist/esm/accordion/index.js +1 -1
  4. package/dist/esm/app-bar/help-button/index.js +1 -1
  5. package/dist/esm/app-bar/index.js +1 -1
  6. package/dist/esm/app-bar/menu-button/index.js +1 -1
  7. package/dist/esm/app-bar/notification-button/index.js +1 -1
  8. package/dist/esm/app-bar/profile-button/index.js +1 -1
  9. package/dist/esm/app-bar/search/index.js +1 -1
  10. package/dist/esm/autocomplete/index.js +1 -1
  11. package/dist/esm/avatar/index.js +1 -1
  12. package/dist/esm/backdrop/index.js +1 -1
  13. package/dist/esm/badge/index.js +1 -1
  14. package/dist/esm/banner/index.js +1 -1
  15. package/dist/esm/bottom-sheet/index.js +1 -1
  16. package/dist/esm/busy-indicator/index.js +1 -1
  17. package/dist/esm/button/index.js +1 -1
  18. package/dist/esm/button-area/index.js +7 -0
  19. package/dist/esm/button-area/index.js.map +7 -0
  20. package/dist/esm/button-toggle/button-toggle/index.js +1 -1
  21. package/dist/esm/button-toggle/button-toggle-group/index.js +1 -1
  22. package/dist/esm/button-toggle/index.js +1 -1
  23. package/dist/esm/calendar/calendar-dropdown/index.js +1 -1
  24. package/dist/esm/calendar/calendar-menu/index.js +1 -1
  25. package/dist/esm/calendar/index.js +1 -1
  26. package/dist/esm/card/index.js +1 -1
  27. package/dist/esm/checkbox/index.js +1 -1
  28. package/dist/esm/chip-field/index.js +1 -1
  29. package/dist/esm/chips/chip/index.js +1 -1
  30. package/dist/esm/chips/chip-set/index.js +1 -1
  31. package/dist/esm/chips/index.js +1 -1
  32. package/dist/esm/chunks/{chunk.SMGXXR6K.js → chunk.2MSL7CYM.js} +2 -2
  33. package/dist/esm/chunks/chunk.2ZU6LWHE.js +7 -0
  34. package/dist/esm/chunks/chunk.2ZU6LWHE.js.map +7 -0
  35. package/dist/esm/chunks/{chunk.COVTBIQQ.js → chunk.36C6SIPW.js} +2 -2
  36. package/dist/esm/chunks/{chunk.COVTBIQQ.js.map → chunk.36C6SIPW.js.map} +2 -2
  37. package/dist/esm/chunks/chunk.36F2GVWS.js +7 -0
  38. package/dist/esm/chunks/chunk.36F2GVWS.js.map +7 -0
  39. package/dist/esm/chunks/{chunk.M56LSSPW.js → chunk.3HCYRDRI.js} +2 -2
  40. package/dist/esm/chunks/{chunk.4ZKX3SO5.js → chunk.3R4BUIQP.js} +2 -2
  41. package/dist/esm/chunks/{chunk.YWNCJ7XP.js → chunk.3ZPSN2QG.js} +2 -2
  42. package/dist/esm/chunks/chunk.4SPEX2GJ.js +7 -0
  43. package/dist/esm/chunks/chunk.4SPEX2GJ.js.map +7 -0
  44. package/dist/esm/chunks/chunk.4YFJVHXN.js +7 -0
  45. package/dist/esm/chunks/chunk.4YFJVHXN.js.map +7 -0
  46. package/dist/esm/chunks/chunk.5A2PA7TL.js +7 -0
  47. package/dist/esm/chunks/chunk.5A2PA7TL.js.map +7 -0
  48. package/dist/esm/chunks/chunk.5CSXPRL3.js +7 -0
  49. package/dist/esm/chunks/chunk.5CSXPRL3.js.map +7 -0
  50. package/dist/esm/chunks/chunk.5LVZVQXB.js +7 -0
  51. package/dist/esm/chunks/{chunk.MGLL67VO.js.map → chunk.5LVZVQXB.js.map} +2 -2
  52. package/dist/esm/chunks/{chunk.LFODKHUO.js → chunk.5N4N6DL6.js} +2 -2
  53. package/dist/esm/chunks/chunk.5PG6WIIX.js +7 -0
  54. package/dist/esm/chunks/chunk.5PG6WIIX.js.map +7 -0
  55. package/dist/esm/chunks/{chunk.JIKSKUDW.js → chunk.5RM65QPN.js} +2 -2
  56. package/dist/esm/chunks/{chunk.JIKSKUDW.js.map → chunk.5RM65QPN.js.map} +3 -3
  57. package/dist/esm/chunks/chunk.5WMYF27O.js +7 -0
  58. package/dist/esm/chunks/chunk.5WMYF27O.js.map +7 -0
  59. package/dist/esm/chunks/{chunk.QOJESHEV.js → chunk.675V42JS.js} +2 -2
  60. package/dist/esm/chunks/chunk.6M27ERWW.js +12 -0
  61. package/dist/esm/chunks/chunk.6M27ERWW.js.map +7 -0
  62. package/dist/esm/chunks/chunk.6NTYTHAL.js +7 -0
  63. package/dist/esm/chunks/chunk.6NTYTHAL.js.map +7 -0
  64. package/dist/esm/chunks/chunk.6ZNBFKNP.js +7 -0
  65. package/dist/esm/chunks/chunk.6ZNBFKNP.js.map +7 -0
  66. package/dist/esm/chunks/{chunk.7TMLILLW.js → chunk.72JVXGHF.js} +2 -2
  67. package/dist/esm/chunks/{chunk.7TMLILLW.js.map → chunk.72JVXGHF.js.map} +1 -1
  68. package/dist/esm/chunks/chunk.7V4BDSA5.js +7 -0
  69. package/dist/esm/chunks/chunk.7V4BDSA5.js.map +7 -0
  70. package/dist/esm/chunks/chunk.7VMJLHQY.js +7 -0
  71. package/dist/esm/chunks/chunk.7VMJLHQY.js.map +7 -0
  72. package/dist/esm/chunks/chunk.7ZROQ6D3.js +7 -0
  73. package/dist/esm/chunks/chunk.7ZROQ6D3.js.map +7 -0
  74. package/dist/esm/chunks/{chunk.DG4ZM3AW.js → chunk.AMLT6XJP.js} +2 -2
  75. package/dist/esm/chunks/chunk.AMZZKEAE.js +7 -0
  76. package/dist/esm/chunks/chunk.AMZZKEAE.js.map +7 -0
  77. package/dist/esm/chunks/{chunk.MTKSU2BV.js → chunk.APPY5AYL.js} +2 -2
  78. package/dist/esm/chunks/{chunk.4YFVG4KP.js → chunk.ARQMMZJL.js} +2 -2
  79. package/dist/esm/chunks/chunk.AUBOJZQ7.js +7 -0
  80. package/dist/esm/chunks/chunk.AUBOJZQ7.js.map +7 -0
  81. package/dist/esm/chunks/chunk.AUCBR6CC.js +7 -0
  82. package/dist/esm/chunks/{chunk.SFCGOCQK.js.map → chunk.AUCBR6CC.js.map} +2 -2
  83. package/dist/esm/chunks/{chunk.5MZ5SGMO.js → chunk.BB4UF5RX.js} +2 -2
  84. package/dist/esm/chunks/chunk.BBCZNGT3.js +7 -0
  85. package/dist/esm/chunks/chunk.BBCZNGT3.js.map +7 -0
  86. package/dist/esm/chunks/chunk.BQ2X5SBP.js +7 -0
  87. package/dist/esm/chunks/{chunk.TYLOAD7R.js.map → chunk.BQ2X5SBP.js.map} +2 -2
  88. package/dist/esm/chunks/chunk.BTXY3XMJ.js +7 -0
  89. package/dist/esm/chunks/chunk.BTXY3XMJ.js.map +7 -0
  90. package/dist/esm/chunks/{chunk.Q7Z3SJ5F.js → chunk.DTLZOIUQ.js} +2 -2
  91. package/dist/esm/chunks/chunk.EJX6RI4I.js +7 -0
  92. package/dist/esm/chunks/chunk.EJX6RI4I.js.map +7 -0
  93. package/dist/esm/chunks/chunk.EWK76SPH.js +7 -0
  94. package/dist/esm/chunks/chunk.EWK76SPH.js.map +7 -0
  95. package/dist/esm/chunks/chunk.FAXYCG55.js +7 -0
  96. package/dist/esm/chunks/chunk.FAXYCG55.js.map +7 -0
  97. package/dist/esm/chunks/chunk.FFHSUJFM.js +7 -0
  98. package/dist/esm/chunks/chunk.FFHSUJFM.js.map +7 -0
  99. package/dist/esm/chunks/{chunk.OWCYRSI3.js → chunk.FLWNOP42.js} +2 -2
  100. package/dist/esm/chunks/{chunk.S3JMOOWC.js → chunk.FXIWCHLW.js} +2 -2
  101. package/dist/esm/chunks/chunk.FYVDTZLF.js +7 -0
  102. package/dist/esm/chunks/{chunk.CDGZYUQS.js.map → chunk.FYVDTZLF.js.map} +2 -2
  103. package/dist/esm/chunks/chunk.G73KL7P2.js +7 -0
  104. package/dist/esm/chunks/{chunk.7DB3XVPI.js.map → chunk.G73KL7P2.js.map} +3 -3
  105. package/dist/esm/chunks/chunk.G7SMCLHQ.js +7 -0
  106. package/dist/esm/chunks/chunk.G7SMCLHQ.js.map +7 -0
  107. package/dist/esm/chunks/chunk.GHR7T6U2.js +7 -0
  108. package/dist/esm/chunks/chunk.GHR7T6U2.js.map +7 -0
  109. package/dist/esm/chunks/{chunk.CWTV3TB3.js → chunk.GNDKQPDV.js} +2 -2
  110. package/dist/esm/chunks/{chunk.ULY4H76N.js → chunk.HAKF2T2D.js} +2 -2
  111. package/dist/esm/chunks/chunk.HDG2GHKC.js +7 -0
  112. package/dist/esm/chunks/{chunk.SBYX7VZ4.js.map → chunk.HDG2GHKC.js.map} +2 -2
  113. package/dist/esm/chunks/{chunk.WPG7NNQX.js → chunk.HOLCNJXC.js} +2 -2
  114. package/dist/esm/chunks/{chunk.W4247Q2P.js → chunk.HRRJIFC5.js} +2 -2
  115. package/dist/esm/chunks/chunk.HSI7B43D.js +7 -0
  116. package/dist/esm/chunks/chunk.HSI7B43D.js.map +7 -0
  117. package/dist/esm/chunks/chunk.IAWYYNUU.js +7 -0
  118. package/dist/esm/chunks/chunk.IAWYYNUU.js.map +7 -0
  119. package/dist/esm/chunks/{chunk.SU4FU7GK.js → chunk.IDMDBMBR.js} +2 -2
  120. package/dist/esm/chunks/{chunk.FCATJM34.js → chunk.IHAHJPMB.js} +2 -2
  121. package/dist/esm/chunks/chunk.IISWKFCX.js +7 -0
  122. package/dist/esm/chunks/chunk.IISWKFCX.js.map +7 -0
  123. package/dist/esm/chunks/{chunk.XKI46BH2.js → chunk.IMLJD35R.js} +2 -2
  124. package/dist/esm/chunks/{chunk.624UKZFU.js → chunk.IT7XPDAV.js} +2 -2
  125. package/dist/esm/chunks/{chunk.MVTBJPO2.js → chunk.JAWV5Y5T.js} +1 -1
  126. package/dist/esm/chunks/{chunk.MVTBJPO2.js.map → chunk.JAWV5Y5T.js.map} +2 -2
  127. package/dist/esm/chunks/{chunk.JLLHDJSO.js → chunk.JVLJH6PR.js} +2 -2
  128. package/dist/esm/chunks/chunk.KPJWP77R.js +7 -0
  129. package/dist/esm/chunks/{chunk.2EWV2XBP.js → chunk.KV5IKYG2.js} +2 -2
  130. package/dist/esm/chunks/chunk.KV67JXOC.js +7 -0
  131. package/dist/esm/chunks/{chunk.B4T3R53C.js.map → chunk.KV67JXOC.js.map} +2 -2
  132. package/dist/esm/chunks/{chunk.A62DE5PD.js → chunk.LCR4YH3O.js} +2 -2
  133. package/dist/esm/chunks/{chunk.FWFOOQMA.js → chunk.LOG6GQOK.js} +2 -2
  134. package/dist/esm/chunks/chunk.LUIKMPQR.js +7 -0
  135. package/dist/esm/chunks/chunk.LUIKMPQR.js.map +7 -0
  136. package/dist/esm/chunks/chunk.LUNKNRRH.js +7 -0
  137. package/dist/esm/chunks/chunk.LUNKNRRH.js.map +7 -0
  138. package/dist/esm/chunks/chunk.MKJCHUJH.js +7 -0
  139. package/dist/esm/chunks/chunk.MKJCHUJH.js.map +7 -0
  140. package/dist/esm/chunks/chunk.MWYQRG5W.js +7 -0
  141. package/dist/esm/chunks/{chunk.YX7WLO5Y.js.map → chunk.MWYQRG5W.js.map} +2 -2
  142. package/dist/esm/chunks/{chunk.YLG6ZC5K.js → chunk.NUMKGUCK.js} +2 -2
  143. package/dist/esm/chunks/{chunk.XI3MJSIS.js → chunk.O6V3YNMO.js} +2 -2
  144. package/dist/esm/chunks/chunk.OWZREAT6.js +15 -0
  145. package/dist/esm/chunks/chunk.OWZREAT6.js.map +7 -0
  146. package/dist/esm/chunks/chunk.PMYQY3D3.js +7 -0
  147. package/dist/esm/chunks/chunk.PMYQY3D3.js.map +7 -0
  148. package/dist/esm/chunks/chunk.PYR2OCCH.js +7 -0
  149. package/dist/esm/chunks/{chunk.5565ZSTH.js.map → chunk.PYR2OCCH.js.map} +2 -2
  150. package/dist/esm/chunks/chunk.QJCNMYD3.js +7 -0
  151. package/dist/esm/chunks/{chunk.SJJS4LYN.js.map → chunk.QJCNMYD3.js.map} +2 -2
  152. package/dist/esm/chunks/{chunk.TK5I4RHF.js → chunk.QLCVRJ3Q.js} +2 -2
  153. package/dist/esm/chunks/chunk.QLOYOZN3.js +7 -0
  154. package/dist/esm/chunks/{chunk.F5SY2D4B.js.map → chunk.QLOYOZN3.js.map} +3 -3
  155. package/dist/esm/chunks/chunk.QN5T26HH.js +7 -0
  156. package/dist/esm/chunks/chunk.QN5T26HH.js.map +7 -0
  157. package/dist/esm/chunks/chunk.QQRPV4RN.js +7 -0
  158. package/dist/esm/chunks/{chunk.PEBT47AU.js.map → chunk.QQRPV4RN.js.map} +2 -2
  159. package/dist/esm/chunks/chunk.R6LQBI42.js +177 -0
  160. package/dist/esm/chunks/chunk.R6LQBI42.js.map +7 -0
  161. package/dist/esm/chunks/chunk.RES7WDKH.js +7 -0
  162. package/dist/esm/chunks/chunk.RES7WDKH.js.map +7 -0
  163. package/dist/esm/chunks/chunk.RP674CRC.js +7 -0
  164. package/dist/esm/chunks/chunk.S5QL4SPT.js +7 -0
  165. package/dist/esm/chunks/chunk.S5QL4SPT.js.map +7 -0
  166. package/dist/esm/chunks/chunk.SIRXAA3O.js +7 -0
  167. package/dist/esm/chunks/chunk.SIRXAA3O.js.map +7 -0
  168. package/dist/esm/chunks/{chunk.LTT67HTW.js → chunk.SLJ6HDK7.js} +2 -2
  169. package/dist/esm/chunks/chunk.STB2FEUA.js +7 -0
  170. package/dist/esm/chunks/chunk.STB2FEUA.js.map +7 -0
  171. package/dist/esm/chunks/chunk.TBGMJQYJ.js +7 -0
  172. package/dist/esm/chunks/chunk.TBGMJQYJ.js.map +7 -0
  173. package/dist/esm/chunks/{chunk.6OW6Q3EW.js → chunk.TU74SREL.js} +2 -2
  174. package/dist/esm/chunks/{chunk.EK24Y56W.js → chunk.URJQNB3S.js} +2 -2
  175. package/dist/esm/chunks/{chunk.AEKOP3XT.js → chunk.V24M62MC.js} +2 -2
  176. package/dist/esm/chunks/{chunk.AEKOP3XT.js.map → chunk.V24M62MC.js.map} +2 -2
  177. package/dist/esm/chunks/chunk.VFKHRAWD.js +7 -0
  178. package/dist/esm/chunks/chunk.VFKHRAWD.js.map +7 -0
  179. package/dist/esm/chunks/chunk.VO6YJCEU.js +7 -0
  180. package/dist/esm/chunks/chunk.VO6YJCEU.js.map +7 -0
  181. package/dist/esm/chunks/{chunk.K3KAM2PL.js → chunk.W2LN45WY.js} +2 -2
  182. package/dist/esm/chunks/{chunk.MHBBMC6O.js → chunk.WMVYRDUJ.js} +2 -2
  183. package/dist/esm/chunks/{chunk.MHBBMC6O.js.map → chunk.WMVYRDUJ.js.map} +2 -2
  184. package/dist/esm/chunks/chunk.WY3E33CW.js +7 -0
  185. package/dist/esm/chunks/chunk.WY3E33CW.js.map +7 -0
  186. package/dist/esm/chunks/{chunk.Z6FCL3G3.js → chunk.XEFWZKHQ.js} +2 -2
  187. package/dist/esm/chunks/{chunk.NR3MLTXF.js → chunk.XLL7L2UB.js} +2 -2
  188. package/dist/esm/chunks/chunk.XNFS7YIB.js +7 -0
  189. package/dist/esm/chunks/chunk.XNFS7YIB.js.map +7 -0
  190. package/dist/esm/chunks/chunk.XYAZVLPR.js +7 -0
  191. package/dist/esm/chunks/chunk.YA3RDJCV.js +7 -0
  192. package/dist/esm/chunks/chunk.YA3RDJCV.js.map +7 -0
  193. package/dist/esm/chunks/{chunk.2QHD3DCR.js → chunk.YAERJVPL.js} +2 -2
  194. package/dist/esm/chunks/chunk.YBZK6LJZ.js +7 -0
  195. package/dist/esm/chunks/chunk.YKIBREM5.js +7 -0
  196. package/dist/esm/chunks/chunk.YKIBREM5.js.map +7 -0
  197. package/dist/esm/chunks/chunk.YWAUEUAH.js +7 -0
  198. package/dist/esm/chunks/chunk.YWAUEUAH.js.map +7 -0
  199. package/dist/esm/chunks/chunk.Z5RROENA.js +7 -0
  200. package/dist/esm/chunks/{chunk.6OUJSOJY.js.map → chunk.Z5RROENA.js.map} +3 -3
  201. package/dist/esm/chunks/{chunk.ZJC2DSNM.js → chunk.Z5ZLKM7W.js} +2 -2
  202. package/dist/esm/chunks/chunk.ZGRQDDHO.js +7 -0
  203. package/dist/esm/chunks/{chunk.BY25RT52.js.map → chunk.ZGRQDDHO.js.map} +2 -2
  204. package/dist/esm/chunks/{chunk.VSQOTSAO.js → chunk.ZKM667OT.js} +2 -2
  205. package/dist/esm/chunks/{chunk.VSQOTSAO.js.map → chunk.ZKM667OT.js.map} +2 -2
  206. package/dist/esm/chunks/chunk.ZRSDTCSD.js +7 -0
  207. package/dist/esm/chunks/chunk.ZRSDTCSD.js.map +7 -0
  208. package/dist/esm/chunks/chunk.ZSZFWZAI.js +7 -0
  209. package/dist/esm/chunks/chunk.ZSZFWZAI.js.map +7 -0
  210. package/dist/esm/circular-progress/index.js +1 -1
  211. package/dist/esm/color-picker/index.js +1 -1
  212. package/dist/esm/core/base/index.js +1 -1
  213. package/dist/esm/core/index.js +1 -1
  214. package/dist/esm/core/utils/index.js +1 -1
  215. package/dist/esm/date-picker/index.js +1 -1
  216. package/dist/esm/date-range-picker/index.js +1 -1
  217. package/dist/esm/dialog/index.js +1 -1
  218. package/dist/esm/divider/index.js +1 -1
  219. package/dist/esm/drawer/base/index.js +1 -1
  220. package/dist/esm/drawer/drawer/index.js +1 -1
  221. package/dist/esm/drawer/index.js +1 -1
  222. package/dist/esm/drawer/mini-drawer/index.js +1 -1
  223. package/dist/esm/drawer/modal-drawer/index.js +1 -1
  224. package/dist/esm/expansion-panel/index.js +1 -1
  225. package/dist/esm/file-picker/index.js +1 -1
  226. package/dist/esm/floating-action-button/index.js +1 -1
  227. package/dist/esm/floating-label/index.js +1 -1
  228. package/dist/esm/focus-indicator/index.js +1 -1
  229. package/dist/esm/icon/index.js +1 -1
  230. package/dist/esm/icon-button/index.js +1 -1
  231. package/dist/esm/index.js +1 -1
  232. package/dist/esm/inline-message/index.js +1 -1
  233. package/dist/esm/keyboard-shortcut/index.js +1 -1
  234. package/dist/esm/label/index.js +7 -0
  235. package/dist/esm/label/index.js.map +7 -0
  236. package/dist/esm/label-value/index.js +1 -1
  237. package/dist/esm/linear-progress/index.js +1 -1
  238. package/dist/esm/list/index.js +1 -1
  239. package/dist/esm/list/list/index.js +1 -1
  240. package/dist/esm/list/list-item/index.js +1 -1
  241. package/dist/esm/list-dropdown/index.js +1 -1
  242. package/dist/esm/menu/index.js +1 -1
  243. package/dist/esm/open-icon/index.js +1 -1
  244. package/dist/esm/page-state/index.js +1 -1
  245. package/dist/esm/paginator/index.js +1 -1
  246. package/dist/esm/popup/index.js +1 -1
  247. package/dist/esm/product-icon/index.js +1 -1
  248. package/dist/esm/profile-card/index.js +1 -1
  249. package/dist/esm/quantity-field/index.js +1 -1
  250. package/dist/esm/radio/index.js +1 -1
  251. package/dist/esm/ripple/index.js +1 -1
  252. package/dist/esm/scaffold/index.js +1 -1
  253. package/dist/esm/select/core/index.js +1 -1
  254. package/dist/esm/select/index.js +1 -1
  255. package/dist/esm/select/option/index.js +1 -1
  256. package/dist/esm/select/option-group/index.js +1 -1
  257. package/dist/esm/select/select/index.js +1 -1
  258. package/dist/esm/select/select-dropdown/index.js +1 -1
  259. package/dist/esm/skeleton/index.js +1 -1
  260. package/dist/esm/slider/index.js +1 -1
  261. package/dist/esm/split-button/index.js +7 -0
  262. package/dist/esm/split-button/index.js.map +7 -0
  263. package/dist/esm/split-view/index.js +1 -1
  264. package/dist/esm/split-view/split-view/index.js +1 -1
  265. package/dist/esm/split-view/split-view-panel/index.js +1 -1
  266. package/dist/esm/stack/index.js +1 -1
  267. package/dist/esm/state-layer/index.js +1 -1
  268. package/dist/esm/stepper/index.js +1 -1
  269. package/dist/esm/stepper/step/index.js +1 -1
  270. package/dist/esm/stepper/stepper/index.js +1 -1
  271. package/dist/esm/switch/index.js +1 -1
  272. package/dist/esm/table/index.js +1 -1
  273. package/dist/esm/tabs/index.js +1 -1
  274. package/dist/esm/tabs/tab/index.js +1 -1
  275. package/dist/esm/tabs/tab-bar/index.js +1 -1
  276. package/dist/esm/text-field/index.js +1 -1
  277. package/dist/esm/time-picker/index.js +1 -1
  278. package/dist/esm/toast/index.js +1 -1
  279. package/dist/esm/toolbar/index.js +1 -1
  280. package/dist/esm/tooltip/index.js +1 -1
  281. package/dist/esm/view-switcher/index.js +1 -1
  282. package/dist/esm/view-switcher/view/index.js +1 -1
  283. package/dist/forge-dark.css +1 -1
  284. package/dist/forge.css +1 -1
  285. package/dist/table/forge-table.css +1 -1
  286. package/dist/theme/forge-theme.css +1 -1
  287. package/dist/typography/forge-typography-legacy.css +1 -1
  288. package/dist/typography/forge-typography.css +1 -1
  289. package/esm/app-bar/app-bar.js +1 -1
  290. package/esm/app-bar/help-button/app-bar-help-button.js +1 -1
  291. package/esm/app-bar/menu-button/app-bar-menu-button.js +1 -1
  292. package/esm/app-bar/notification-button/app-bar-notification-button.js +1 -1
  293. package/esm/app-bar/profile-button/app-bar-profile-button-constants.js +1 -1
  294. package/esm/app-bar/profile-button/app-bar-profile-button.js +1 -1
  295. package/esm/autocomplete/autocomplete-constants.d.ts +3 -0
  296. package/esm/autocomplete/autocomplete-foundation.d.ts +3 -1
  297. package/esm/autocomplete/autocomplete-foundation.js +16 -2
  298. package/esm/autocomplete/autocomplete.d.ts +7 -1
  299. package/esm/autocomplete/autocomplete.js +7 -0
  300. package/esm/banner/banner-constants.js +1 -1
  301. package/esm/banner/banner.js +2 -2
  302. package/esm/bottom-sheet/bottom-sheet.js +1 -1
  303. package/esm/busy-indicator/busy-indicator.js +2 -2
  304. package/esm/button/base/base-button-adapter.d.ts +72 -0
  305. package/esm/button/base/base-button-adapter.js +250 -0
  306. package/esm/button/base/base-button-constants.d.ts +41 -0
  307. package/esm/button/base/base-button-constants.js +32 -0
  308. package/esm/button/base/base-button-foundation.d.ts +75 -0
  309. package/esm/button/base/base-button-foundation.js +234 -0
  310. package/esm/button/base/base-button.d.ts +51 -0
  311. package/esm/button/base/base-button.js +106 -0
  312. package/esm/button/button-adapter.d.ts +14 -0
  313. package/esm/button/button-adapter.js +14 -0
  314. package/esm/button/button-component-delegate.d.ts +4 -4
  315. package/esm/button/button-component-delegate.js +13 -17
  316. package/esm/button/button-constants.d.ts +10 -18
  317. package/esm/button/button-constants.js +6 -22
  318. package/esm/button/button-foundation.d.ts +25 -0
  319. package/esm/button/button-foundation.js +49 -0
  320. package/esm/button/button.d.ts +126 -30
  321. package/esm/button/button.js +160 -159
  322. package/esm/button/index.d.ts +3 -1
  323. package/esm/button/index.js +3 -1
  324. package/esm/button-area/button-area-adapter.d.ts +48 -0
  325. package/esm/button-area/button-area-adapter.js +121 -0
  326. package/esm/button-area/button-area-constants.d.ts +24 -0
  327. package/esm/button-area/button-area-constants.js +30 -0
  328. package/esm/button-area/button-area-foundation.d.ts +29 -0
  329. package/esm/button-area/button-area-foundation.js +94 -0
  330. package/esm/button-area/button-area.d.ts +29 -0
  331. package/esm/button-area/button-area.js +55 -0
  332. package/esm/button-area/index.d.ts +10 -0
  333. package/esm/button-area/index.js +14 -0
  334. package/esm/button-toggle/button-toggle/button-toggle.js +1 -1
  335. package/esm/calendar/calendar-dom-utils.js +18 -30
  336. package/esm/calendar/calendar-foundation.js +6 -0
  337. package/esm/calendar/calendar-menu/calendar-menu.js +1 -1
  338. package/esm/calendar/calendar.js +1 -1
  339. package/esm/checkbox/checkbox-adapter.d.ts +50 -59
  340. package/esm/checkbox/checkbox-adapter.js +104 -186
  341. package/esm/checkbox/checkbox-component-delegate.d.ts +18 -9
  342. package/esm/checkbox/checkbox-component-delegate.js +58 -51
  343. package/esm/checkbox/checkbox-constants.d.ts +14 -56
  344. package/esm/checkbox/checkbox-constants.js +17 -50
  345. package/esm/checkbox/checkbox-foundation.d.ts +48 -18
  346. package/esm/checkbox/checkbox-foundation.js +139 -139
  347. package/esm/checkbox/checkbox.d.ts +120 -9
  348. package/esm/checkbox/checkbox.js +235 -36
  349. package/esm/checkbox/index.d.ts +1 -1
  350. package/esm/checkbox/index.js +1 -1
  351. package/esm/chip-field/chip-field-adapter.js +1 -1
  352. package/esm/chip-field/chip-field-constants.d.ts +3 -0
  353. package/esm/chip-field/chip-field-constants.js +4 -0
  354. package/esm/chip-field/chip-field-foundation.d.ts +5 -0
  355. package/esm/chip-field/chip-field-foundation.js +20 -1
  356. package/esm/chip-field/chip-field.d.ts +5 -0
  357. package/esm/chip-field/chip-field.js +21 -3
  358. package/esm/chips/chip/chip.js +1 -1
  359. package/esm/circular-progress/circular-progress-constants.d.ts +4 -0
  360. package/esm/circular-progress/circular-progress-constants.js +2 -0
  361. package/esm/circular-progress/circular-progress-foundation.d.ts +9 -0
  362. package/esm/circular-progress/circular-progress-foundation.js +21 -0
  363. package/esm/circular-progress/circular-progress.d.ts +15 -2
  364. package/esm/circular-progress/circular-progress.js +25 -3
  365. package/esm/color-picker/color-picker.js +2 -2
  366. package/esm/constants.d.ts +7 -0
  367. package/esm/constants.js +4 -0
  368. package/esm/core/base/base-adapter.d.ts +18 -3
  369. package/esm/core/base/base-adapter.js +30 -2
  370. package/esm/core/base/base-component.d.ts +0 -1
  371. package/esm/core/base/base-component.js +0 -1
  372. package/esm/core/base/base-focusable-component.d.ts +49 -0
  373. package/esm/core/base/base-focusable-component.js +90 -0
  374. package/esm/core/base/base-form-component.d.ts +45 -0
  375. package/esm/core/base/base-form-component.js +19 -0
  376. package/esm/core/base/base-nullable-form-component.d.ts +35 -0
  377. package/esm/core/base/base-nullable-form-component.js +20 -0
  378. package/esm/core/keyboard/key-manager.d.ts +18 -0
  379. package/esm/core/keyboard/key-manager.js +47 -0
  380. package/esm/core/utils/feature-detection.d.ts +10 -0
  381. package/esm/core/utils/feature-detection.js +12 -0
  382. package/esm/core/utils/index.d.ts +2 -0
  383. package/esm/core/utils/index.js +2 -0
  384. package/esm/core/utils/reflect-utils.d.ts +107 -0
  385. package/esm/core/utils/reflect-utils.js +227 -0
  386. package/esm/core/utils/utils.d.ts +8 -0
  387. package/esm/core/utils/utils.js +15 -0
  388. package/esm/date-picker/base/base-date-picker-foundation.js +1 -1
  389. package/esm/date-picker/base/base-date-picker-utils.js +5 -8
  390. package/esm/date-range-picker/date-range-picker-foundation.js +2 -2
  391. package/esm/drawer/drawer/drawer.js +1 -1
  392. package/esm/drawer/mini-drawer/mini-drawer.js +1 -1
  393. package/esm/drawer/modal-drawer/modal-drawer.js +1 -1
  394. package/esm/expansion-panel/expansion-panel-adapter.d.ts +1 -0
  395. package/esm/expansion-panel/expansion-panel-adapter.js +7 -2
  396. package/esm/expansion-panel/expansion-panel.js +1 -1
  397. package/esm/field/field-constants.d.ts +8 -0
  398. package/esm/field/field-constants.js +10 -8
  399. package/esm/field/field-foundation.d.ts +1 -0
  400. package/esm/field/field-foundation.js +17 -7
  401. package/esm/file-picker/file-picker-component-delegate.js +1 -1
  402. package/esm/file-picker/file-picker.js +1 -1
  403. package/esm/floating-label/floating-label-foundation.d.ts +4 -1
  404. package/esm/floating-label/floating-label-foundation.js +9 -6
  405. package/esm/floating-label/floating-label.d.ts +6 -2
  406. package/esm/floating-label/floating-label.js +2 -2
  407. package/esm/focus-indicator/focus-indicator-adapter.d.ts +2 -2
  408. package/esm/focus-indicator/focus-indicator-adapter.js +3 -3
  409. package/esm/focus-indicator/focus-indicator-foundation.js +4 -3
  410. package/esm/focus-indicator/focus-indicator.js +1 -1
  411. package/esm/icon/icon-adapter.d.ts +0 -2
  412. package/esm/icon/icon-adapter.js +4 -5
  413. package/esm/icon/icon-foundation.js +0 -1
  414. package/esm/icon-button/icon-button-adapter.d.ts +12 -0
  415. package/esm/icon-button/icon-button-adapter.js +11 -0
  416. package/esm/icon-button/icon-button-component-delegate.d.ts +0 -4
  417. package/esm/icon-button/icon-button-component-delegate.js +8 -18
  418. package/esm/icon-button/icon-button-constants.d.ts +26 -17
  419. package/esm/icon-button/icon-button-constants.js +17 -28
  420. package/esm/icon-button/icon-button-foundation.d.ts +39 -0
  421. package/esm/icon-button/icon-button-foundation.js +122 -0
  422. package/esm/icon-button/icon-button.d.ts +69 -41
  423. package/esm/icon-button/icon-button.js +107 -213
  424. package/esm/index.d.ts +3 -0
  425. package/esm/index.js +8 -1
  426. package/esm/keyboard-shortcut/keyboard-shortcut-constants.d.ts +1 -0
  427. package/esm/keyboard-shortcut/keyboard-shortcut-foundation.d.ts +6 -0
  428. package/esm/keyboard-shortcut/keyboard-shortcut-foundation.js +9 -0
  429. package/esm/keyboard-shortcut/keyboard-shortcut.d.ts +4 -0
  430. package/esm/keyboard-shortcut/keyboard-shortcut.js +3 -0
  431. package/esm/label/index.d.ts +11 -0
  432. package/esm/label/index.js +15 -0
  433. package/esm/label/label-adapter.d.ts +51 -0
  434. package/esm/label/label-adapter.js +102 -0
  435. package/esm/label/label-aware.d.ts +15 -0
  436. package/esm/label/label-aware.js +13 -0
  437. package/esm/label/label-constants.d.ts +17 -0
  438. package/esm/label/label-constants.js +31 -0
  439. package/esm/label/label-foundation.d.ts +40 -0
  440. package/esm/label/label-foundation.js +106 -0
  441. package/esm/label/label.d.ts +49 -0
  442. package/esm/label/label.js +80 -0
  443. package/esm/linear-progress/linear-progress-constants.d.ts +3 -0
  444. package/esm/linear-progress/linear-progress-constants.js +1 -0
  445. package/esm/linear-progress/linear-progress-foundation.d.ts +5 -0
  446. package/esm/linear-progress/linear-progress-foundation.js +13 -3
  447. package/esm/linear-progress/linear-progress.d.ts +8 -1
  448. package/esm/linear-progress/linear-progress.js +13 -2
  449. package/esm/list/list/list-adapter.d.ts +17 -41
  450. package/esm/list/list/list-adapter.js +42 -60
  451. package/esm/list/list/list-constants.d.ts +13 -5
  452. package/esm/list/list/list-constants.js +15 -7
  453. package/esm/list/list/list-foundation.d.ts +24 -16
  454. package/esm/list/list/list-foundation.js +84 -75
  455. package/esm/list/list/list.d.ts +47 -8
  456. package/esm/list/list/list.js +83 -11
  457. package/esm/list/list-item/list-item-adapter.d.ts +39 -90
  458. package/esm/list/list-item/list-item-adapter.js +147 -127
  459. package/esm/list/list-item/list-item-constants.d.ts +31 -27
  460. package/esm/list/list-item/list-item-constants.js +19 -32
  461. package/esm/list/list-item/list-item-foundation.d.ts +41 -56
  462. package/esm/list/list-item/list-item-foundation.js +139 -204
  463. package/esm/list/list-item/list-item.d.ts +120 -37
  464. package/esm/list/list-item/list-item.js +171 -84
  465. package/esm/list-dropdown/list-dropdown-adapter.js +1 -6
  466. package/esm/list-dropdown/list-dropdown-constants.d.ts +4 -0
  467. package/esm/list-dropdown/list-dropdown-utils.js +23 -24
  468. package/esm/menu/menu-constants.js +1 -1
  469. package/esm/menu/menu-foundation.js +0 -4
  470. package/esm/menu/menu.js +1 -1
  471. package/esm/paginator/paginator-adapter.d.ts +30 -24
  472. package/esm/paginator/paginator-adapter.js +68 -0
  473. package/esm/paginator/paginator-constants.js +4 -4
  474. package/esm/paginator/paginator-foundation.d.ts +35 -80
  475. package/esm/paginator/paginator-foundation.js +221 -255
  476. package/esm/paginator/paginator.d.ts +1 -2
  477. package/esm/paginator/paginator.js +5 -4
  478. package/esm/popup/popup-adapter.d.ts +3 -1
  479. package/esm/popup/popup-adapter.js +3 -0
  480. package/esm/popup/popup-foundation.js +5 -3
  481. package/esm/popup/popup.d.ts +4 -1
  482. package/esm/popup/popup.js +1 -1
  483. package/esm/profile-card/profile-card.js +2 -2
  484. package/esm/quantity-field/quantity-field-constants.js +2 -2
  485. package/esm/select/core/base-select-adapter.js +3 -0
  486. package/esm/select/core/base-select-foundation.js +3 -1
  487. package/esm/select/option/option-constants.d.ts +1 -0
  488. package/esm/select/option/option-constants.js +1 -0
  489. package/esm/select/option/option-foundation.d.ts +13 -0
  490. package/esm/select/option/option-foundation.js +28 -0
  491. package/esm/select/option/option.d.ts +7 -0
  492. package/esm/select/option/option.js +13 -0
  493. package/esm/slider/slider-adapter.d.ts +1 -1
  494. package/esm/slider/slider-adapter.js +3 -2
  495. package/esm/slider/slider-constants.js +3 -3
  496. package/esm/slider/slider.d.ts +6 -11
  497. package/esm/slider/slider.js +11 -7
  498. package/esm/split-button/index.d.ts +10 -0
  499. package/esm/split-button/index.js +14 -0
  500. package/esm/split-button/split-button-adapter.d.ts +30 -0
  501. package/esm/split-button/split-button-adapter.js +84 -0
  502. package/esm/split-button/split-button-constants.d.ts +21 -0
  503. package/esm/split-button/split-button-constants.js +23 -0
  504. package/esm/split-button/split-button-foundation.d.ts +37 -0
  505. package/esm/split-button/split-button-foundation.js +77 -0
  506. package/esm/split-button/split-button.d.ts +57 -0
  507. package/esm/split-button/split-button.js +103 -0
  508. package/esm/split-view/split-view-panel/split-view-panel.js +1 -1
  509. package/esm/state-layer/state-layer-adapter.js +1 -0
  510. package/esm/state-layer/state-layer-foundation.js +10 -1
  511. package/esm/state-layer/state-layer.js +1 -1
  512. package/esm/stepper/stepper/stepper-foundation.js +1 -1
  513. package/esm/switch/index.d.ts +2 -0
  514. package/esm/switch/index.js +2 -0
  515. package/esm/switch/switch-adapter.d.ts +64 -0
  516. package/esm/switch/switch-adapter.js +151 -0
  517. package/esm/switch/switch-component-delegate.d.ts +22 -6
  518. package/esm/switch/switch-component-delegate.js +64 -29
  519. package/esm/switch/switch-constants.d.ts +23 -6
  520. package/esm/switch/switch-constants.js +29 -10
  521. package/esm/switch/switch-foundation.d.ts +65 -0
  522. package/esm/switch/switch-foundation.js +162 -0
  523. package/esm/switch/switch.d.ts +162 -33
  524. package/esm/switch/switch.js +249 -136
  525. package/esm/table/table-foundation.d.ts +2 -0
  526. package/esm/table/table-foundation.js +17 -6
  527. package/esm/table/table-utils.js +13 -1
  528. package/esm/table/types.d.ts +1 -0
  529. package/esm/tabs/tab/tab.js +2 -2
  530. package/esm/tabs/tab-bar/tab-bar-adapter.js +17 -20
  531. package/esm/tabs/tab-bar/tab-bar.js +1 -1
  532. package/esm/time-picker/time-picker-adapter.js +5 -8
  533. package/esm/time-picker/time-picker-foundation.js +3 -3
  534. package/esm/toast/toast-adapter.d.ts +1 -1
  535. package/esm/toast/toast-adapter.js +1 -1
  536. package/esm/toast/toast.js +2 -2
  537. package/package.json +1 -7
  538. package/styles/app-bar/_mixins.scss +9 -4
  539. package/styles/banner/banner.scss +0 -1
  540. package/styles/bottom-sheet/bottom-sheet.scss +0 -1
  541. package/styles/busy-indicator/_mixins.scss +1 -1
  542. package/styles/busy-indicator/busy-indicator.scss +0 -1
  543. package/styles/button/_configuration.scss +16 -0
  544. package/styles/button/_core.scss +183 -0
  545. package/styles/button/_token-utils.scss +30 -0
  546. package/styles/button/button.scss +208 -0
  547. package/styles/button/index.scss +8 -0
  548. package/styles/button-area/_mixins.scss +47 -0
  549. package/styles/button-area/button-area.scss +16 -0
  550. package/styles/button-toggle/button-toggle/_mixins.scss +26 -7
  551. package/styles/calendar/calendar-menu/_mixins.scss +48 -2
  552. package/styles/calendar/calendar.scss +0 -4
  553. package/styles/{button/forge-button.scss → checkbox/_configuration.scss} +4 -3
  554. package/styles/checkbox/_core.scss +157 -0
  555. package/styles/checkbox/_token-utils.scss +30 -0
  556. package/styles/checkbox/checkbox.scss +143 -7
  557. package/styles/checkbox/index.scss +8 -0
  558. package/styles/chip-field/_base.scss +1 -0
  559. package/styles/chip-field/_selector.scss +2 -2
  560. package/styles/chips/chip/_mixins.scss +21 -7
  561. package/styles/circular-progress/_configuration.scss +8 -15
  562. package/styles/circular-progress/_core.scss +19 -19
  563. package/styles/circular-progress/_token-utils.scss +30 -0
  564. package/styles/circular-progress/circular-progress.scss +51 -4
  565. package/styles/circular-progress/index.scss +1 -0
  566. package/styles/color-picker/color-picker.scss +0 -3
  567. package/styles/core/styles/_utils.scss +148 -11
  568. package/styles/core/styles/scrollbar/index.scss +45 -0
  569. package/styles/core/styles/spacing/index.scss +8 -1
  570. package/styles/core/styles/theme/_color-utils.scss +63 -0
  571. package/styles/core/styles/theme/_utils.scss +82 -0
  572. package/styles/core/styles/theme/index.scss +39 -13
  573. package/styles/core/styles/tokens/_token-utils.scss +118 -0
  574. package/styles/core/styles/tokens/button/_tokens.scss +115 -0
  575. package/styles/core/styles/tokens/checkbox/_tokens.scss +69 -0
  576. package/styles/core/styles/tokens/circular-progress/_tokens.scss +13 -3
  577. package/styles/core/styles/tokens/color-palette/_extended-color-palette.scss +88 -0
  578. package/styles/core/styles/tokens/color-palette/index.scss +7 -0
  579. package/styles/core/styles/tokens/focus-indicator/_tokens.scss +8 -5
  580. package/styles/core/styles/tokens/icon-button/_tokens.scss +106 -0
  581. package/styles/core/styles/tokens/index.scss +0 -1
  582. package/styles/core/styles/tokens/linear-progress/_tokens.scss +15 -4
  583. package/styles/core/styles/tokens/list/list/_tokens.scss +16 -0
  584. package/styles/core/styles/tokens/list/list-item/_tokens.scss +77 -0
  585. package/styles/core/styles/tokens/scrollbar/_tokens.scss +26 -0
  586. package/styles/core/styles/tokens/slider/_tokens.scss +9 -11
  587. package/styles/core/styles/tokens/spacing/_tokens.scss +25 -11
  588. package/styles/core/styles/tokens/split-button/_tokens.scss +21 -0
  589. package/styles/core/styles/tokens/state-layer/_tokens.scss +5 -5
  590. package/styles/core/styles/tokens/switch/_tokens.scss +108 -0
  591. package/styles/core/styles/tokens/tabs/tab/_tokens.scss +3 -1
  592. package/styles/core/styles/tokens/tabs/tab-bar/_tokens.scss +3 -3
  593. package/styles/core/styles/tokens/theme/_color-emphasis.scss +38 -0
  594. package/styles/core/styles/tokens/theme/_token-utils.scss +50 -0
  595. package/styles/core/styles/tokens/theme/_tokens.core.scss +45 -0
  596. package/styles/core/styles/tokens/theme/_tokens.scss +62 -117
  597. package/styles/core/styles/tokens/theme/_tokens.status.scss +49 -0
  598. package/styles/core/styles/tokens/theme/_tokens.surface.scss +65 -0
  599. package/styles/core/styles/tokens/theme/_tokens.text.scss +38 -0
  600. package/styles/core/styles/tokens/theme/_tokens.utilities.scss +30 -0
  601. package/styles/core/styles/tokens/typography/_scale.scss +39 -0
  602. package/styles/core/styles/tokens/typography/_tokens.body.scss +41 -0
  603. package/styles/core/styles/tokens/typography/_tokens.core.scss +31 -0
  604. package/styles/core/styles/tokens/typography/_tokens.display.scss +67 -0
  605. package/styles/core/styles/tokens/typography/_tokens.heading.scss +70 -0
  606. package/styles/core/styles/tokens/typography/_tokens.label.scss +36 -0
  607. package/styles/core/styles/tokens/typography/_tokens.scss +16 -211
  608. package/styles/core/styles/tokens/typography/_tokens.subheading.scss +66 -0
  609. package/styles/core/styles/tokens/typography/_type-utils.scss +37 -0
  610. package/styles/core/styles/tokens/typography/_weight.scss +20 -0
  611. package/styles/core/styles/typography/index.scss +56 -6
  612. package/styles/file-picker/_mixins.scss +1 -1
  613. package/styles/focus-indicator/_animations.scss +6 -4
  614. package/styles/focus-indicator/_configuration.scss +2 -15
  615. package/styles/focus-indicator/_core.scss +20 -25
  616. package/styles/focus-indicator/_token-utils.scss +31 -0
  617. package/styles/focus-indicator/focus-indicator.scss +28 -6
  618. package/styles/focus-indicator/index.scss +1 -0
  619. package/styles/forge.scss +0 -2
  620. package/styles/icon-button/_configuration.scss +16 -0
  621. package/styles/icon-button/_core.scss +145 -0
  622. package/styles/icon-button/_token-utils.scss +30 -0
  623. package/styles/icon-button/icon-button.scss +315 -0
  624. package/styles/icon-button/index.scss +8 -0
  625. package/styles/label/_core.scss +17 -0
  626. package/styles/{icon-button/forge-icon-button.scss → label/index.scss} +1 -3
  627. package/styles/label/label.scss +18 -0
  628. package/styles/linear-progress/_animations.scss +3 -1
  629. package/styles/linear-progress/_configuration.scss +15 -16
  630. package/styles/linear-progress/_core.scss +17 -19
  631. package/styles/linear-progress/_token-utils.scss +31 -0
  632. package/styles/linear-progress/index.scss +1 -0
  633. package/styles/linear-progress/linear-progress.scss +42 -6
  634. package/styles/list/list/_configuration.scss +10 -0
  635. package/styles/list/list/_core.scss +16 -0
  636. package/styles/list/list/_token-utils.scss +30 -0
  637. package/styles/list/list/index.scss +8 -0
  638. package/styles/list/list/list.scss +29 -3
  639. package/styles/list/list-item/_configuration.scss +16 -0
  640. package/styles/list/list-item/_core.scss +195 -0
  641. package/styles/list/list-item/_token-utils.scss +30 -0
  642. package/styles/list/list-item/index.scss +8 -0
  643. package/styles/list/list-item/list-item.scss +199 -12
  644. package/styles/menu/menu.scss +1 -1
  645. package/styles/paginator/paginator.scss +0 -1
  646. package/styles/profile-card/profile-card.scss +0 -1
  647. package/styles/slider/_configuration.scss +5 -50
  648. package/styles/slider/_core.scss +59 -70
  649. package/styles/slider/_token-utils.scss +30 -0
  650. package/styles/slider/index.scss +1 -0
  651. package/styles/slider/slider.scss +28 -5
  652. package/styles/split-button/_configuration.scss +12 -0
  653. package/styles/split-button/_token-utils.scss +30 -0
  654. package/styles/split-button/index.scss +7 -0
  655. package/styles/split-button/split-button.scss +97 -0
  656. package/styles/state-layer/_configuration.scss +2 -9
  657. package/styles/state-layer/_core.scss +11 -16
  658. package/styles/state-layer/_token-utils.scss +31 -0
  659. package/styles/state-layer/index.scss +1 -0
  660. package/styles/state-layer/state-layer.scss +7 -0
  661. package/styles/switch/_configuration.scss +10 -0
  662. package/styles/switch/_core.scss +252 -0
  663. package/styles/switch/_token-utils.scss +30 -0
  664. package/styles/switch/index.scss +8 -0
  665. package/styles/switch/switch.scss +167 -47
  666. package/styles/table/_mixins.scss +20 -2
  667. package/styles/tabs/tab/_configuration.scss +7 -44
  668. package/styles/tabs/tab/_core.scss +30 -35
  669. package/styles/tabs/tab/_token-utils.scss +30 -0
  670. package/styles/tabs/tab/index.scss +1 -0
  671. package/styles/tabs/tab/tab.scss +89 -45
  672. package/styles/tabs/tab-bar/_configuration.scss +2 -5
  673. package/styles/tabs/tab-bar/_core.scss +26 -9
  674. package/styles/tabs/tab-bar/_token-utils.scss +30 -0
  675. package/styles/tabs/tab-bar/index.scss +2 -1
  676. package/styles/tabs/tab-bar/tab-bar.scss +68 -34
  677. package/styles/theme/_theme-dark.scss +0 -2
  678. package/styles/theme/_theme.scss +3 -45
  679. package/styles/theme/forge-theme.scss +21 -3
  680. package/styles/toast/_mixins.scss +1 -1
  681. package/styles/toast/toast.scss +0 -2
  682. package/styles/typography/_mixins.scss +0 -20
  683. package/styles/typography/forge-typography.scss +5 -2
  684. package/dist/button/forge-button.css +0 -6
  685. package/dist/esm/chunks/chunk.2AJ7FFI6.js +0 -7
  686. package/dist/esm/chunks/chunk.2AJ7FFI6.js.map +0 -7
  687. package/dist/esm/chunks/chunk.3HB22HCX.js +0 -7
  688. package/dist/esm/chunks/chunk.4C6KHYUO.js +0 -7
  689. package/dist/esm/chunks/chunk.54OOOQ4R.js +0 -7
  690. package/dist/esm/chunks/chunk.54OOOQ4R.js.map +0 -7
  691. package/dist/esm/chunks/chunk.5565ZSTH.js +0 -7
  692. package/dist/esm/chunks/chunk.6GC5AJPE.js +0 -7
  693. package/dist/esm/chunks/chunk.6GC5AJPE.js.map +0 -7
  694. package/dist/esm/chunks/chunk.6OUJSOJY.js +0 -7
  695. package/dist/esm/chunks/chunk.7CGKFRBK.js +0 -7
  696. package/dist/esm/chunks/chunk.7CGKFRBK.js.map +0 -7
  697. package/dist/esm/chunks/chunk.7DB3XVPI.js +0 -7
  698. package/dist/esm/chunks/chunk.ALIYGJXA.js +0 -129
  699. package/dist/esm/chunks/chunk.ALIYGJXA.js.map +0 -7
  700. package/dist/esm/chunks/chunk.B4T3R53C.js +0 -7
  701. package/dist/esm/chunks/chunk.BH2TUG2V.js +0 -7
  702. package/dist/esm/chunks/chunk.BH2TUG2V.js.map +0 -7
  703. package/dist/esm/chunks/chunk.BKL2BAYW.js +0 -7
  704. package/dist/esm/chunks/chunk.BKL2BAYW.js.map +0 -7
  705. package/dist/esm/chunks/chunk.BY25RT52.js +0 -7
  706. package/dist/esm/chunks/chunk.CDGZYUQS.js +0 -7
  707. package/dist/esm/chunks/chunk.CKW7KKDW.js +0 -7
  708. package/dist/esm/chunks/chunk.CKW7KKDW.js.map +0 -7
  709. package/dist/esm/chunks/chunk.CXY6K7EI.js +0 -7
  710. package/dist/esm/chunks/chunk.CXY6K7EI.js.map +0 -7
  711. package/dist/esm/chunks/chunk.D5TAI6Q7.js +0 -7
  712. package/dist/esm/chunks/chunk.D5TAI6Q7.js.map +0 -7
  713. package/dist/esm/chunks/chunk.DBNJHUYY.js +0 -7
  714. package/dist/esm/chunks/chunk.DBNJHUYY.js.map +0 -7
  715. package/dist/esm/chunks/chunk.DMCBAYQX.js +0 -7
  716. package/dist/esm/chunks/chunk.DMCBAYQX.js.map +0 -7
  717. package/dist/esm/chunks/chunk.DXN7ZOH3.js +0 -7
  718. package/dist/esm/chunks/chunk.DXN7ZOH3.js.map +0 -7
  719. package/dist/esm/chunks/chunk.F4VXEE76.js +0 -7
  720. package/dist/esm/chunks/chunk.F4VXEE76.js.map +0 -7
  721. package/dist/esm/chunks/chunk.F5SY2D4B.js +0 -7
  722. package/dist/esm/chunks/chunk.F74YURLV.js +0 -7
  723. package/dist/esm/chunks/chunk.F74YURLV.js.map +0 -7
  724. package/dist/esm/chunks/chunk.FG2GNAM2.js +0 -7
  725. package/dist/esm/chunks/chunk.FG2GNAM2.js.map +0 -7
  726. package/dist/esm/chunks/chunk.GNG64TXK.js +0 -7
  727. package/dist/esm/chunks/chunk.GNG64TXK.js.map +0 -7
  728. package/dist/esm/chunks/chunk.GO5A4GKZ.js +0 -7
  729. package/dist/esm/chunks/chunk.GO5A4GKZ.js.map +0 -7
  730. package/dist/esm/chunks/chunk.HHCO64F3.js +0 -7
  731. package/dist/esm/chunks/chunk.HHCO64F3.js.map +0 -7
  732. package/dist/esm/chunks/chunk.ISC7SZSP.js +0 -7
  733. package/dist/esm/chunks/chunk.ISC7SZSP.js.map +0 -7
  734. package/dist/esm/chunks/chunk.IX25DYIM.js +0 -7
  735. package/dist/esm/chunks/chunk.IX25DYIM.js.map +0 -7
  736. package/dist/esm/chunks/chunk.JUJGROHA.js +0 -7
  737. package/dist/esm/chunks/chunk.JUJGROHA.js.map +0 -7
  738. package/dist/esm/chunks/chunk.KJP2VA6Q.js +0 -7
  739. package/dist/esm/chunks/chunk.KJP2VA6Q.js.map +0 -7
  740. package/dist/esm/chunks/chunk.LK4AAUOP.js +0 -7
  741. package/dist/esm/chunks/chunk.LK4AAUOP.js.map +0 -7
  742. package/dist/esm/chunks/chunk.LXPFG7MW.js +0 -7
  743. package/dist/esm/chunks/chunk.LXPFG7MW.js.map +0 -7
  744. package/dist/esm/chunks/chunk.MACPUZC2.js +0 -7
  745. package/dist/esm/chunks/chunk.MACPUZC2.js.map +0 -7
  746. package/dist/esm/chunks/chunk.MGLL67VO.js +0 -7
  747. package/dist/esm/chunks/chunk.MXEKIEJA.js +0 -7
  748. package/dist/esm/chunks/chunk.MXEKIEJA.js.map +0 -7
  749. package/dist/esm/chunks/chunk.N43BCJHN.js +0 -7
  750. package/dist/esm/chunks/chunk.N43BCJHN.js.map +0 -7
  751. package/dist/esm/chunks/chunk.P2CW5MQO.js +0 -12
  752. package/dist/esm/chunks/chunk.P2CW5MQO.js.map +0 -7
  753. package/dist/esm/chunks/chunk.P2ZCNO63.js +0 -7
  754. package/dist/esm/chunks/chunk.P2ZCNO63.js.map +0 -7
  755. package/dist/esm/chunks/chunk.PEBT47AU.js +0 -7
  756. package/dist/esm/chunks/chunk.PH3HUFJJ.js +0 -7
  757. package/dist/esm/chunks/chunk.PH3HUFJJ.js.map +0 -7
  758. package/dist/esm/chunks/chunk.Q7JUJNYD.js +0 -7
  759. package/dist/esm/chunks/chunk.QCRRHGBA.js +0 -7
  760. package/dist/esm/chunks/chunk.QCRRHGBA.js.map +0 -7
  761. package/dist/esm/chunks/chunk.SBYX7VZ4.js +0 -7
  762. package/dist/esm/chunks/chunk.SFCGOCQK.js +0 -7
  763. package/dist/esm/chunks/chunk.SJJS4LYN.js +0 -7
  764. package/dist/esm/chunks/chunk.TYLOAD7R.js +0 -7
  765. package/dist/esm/chunks/chunk.UJ2WQOLO.js +0 -7
  766. package/dist/esm/chunks/chunk.UJ2WQOLO.js.map +0 -7
  767. package/dist/esm/chunks/chunk.VVXSELXX.js +0 -7
  768. package/dist/esm/chunks/chunk.VVXSELXX.js.map +0 -7
  769. package/dist/esm/chunks/chunk.VZWNNK7A.js +0 -7
  770. package/dist/esm/chunks/chunk.VZWNNK7A.js.map +0 -7
  771. package/dist/esm/chunks/chunk.X3C3J5MH.js +0 -7
  772. package/dist/esm/chunks/chunk.X3C3J5MH.js.map +0 -7
  773. package/dist/esm/chunks/chunk.XGOAYMK2.js +0 -7
  774. package/dist/esm/chunks/chunk.XGOAYMK2.js.map +0 -7
  775. package/dist/esm/chunks/chunk.YRMR7IOS.js +0 -7
  776. package/dist/esm/chunks/chunk.YRMR7IOS.js.map +0 -7
  777. package/dist/esm/chunks/chunk.YX7WLO5Y.js +0 -7
  778. package/dist/esm/chunks/chunk.YZLASVCK.js +0 -177
  779. package/dist/esm/chunks/chunk.YZLASVCK.js.map +0 -7
  780. package/dist/esm/chunks/chunk.ZDD2NLGP.js +0 -7
  781. package/dist/esm/chunks/chunk.ZKGSQQGU.js +0 -12
  782. package/dist/esm/chunks/chunk.ZKGSQQGU.js.map +0 -7
  783. package/dist/esm/chunks/chunk.ZVBZ3LGP.js +0 -7
  784. package/dist/esm/chunks/chunk.ZVBZ3LGP.js.map +0 -7
  785. package/dist/icon-button/forge-icon-button.css +0 -6
  786. package/styles/button/_button-base.scss +0 -183
  787. package/styles/button/_button-filled-theme.scss +0 -60
  788. package/styles/button/_button-filled.scss +0 -71
  789. package/styles/button/_button-outlined-theme.scss +0 -175
  790. package/styles/button/_button-outlined.scss +0 -76
  791. package/styles/button/_button-protected-theme.scss +0 -60
  792. package/styles/button/_button-protected.scss +0 -88
  793. package/styles/button/_button-ripple.scss +0 -69
  794. package/styles/button/_button-shared-theme.scss +0 -447
  795. package/styles/button/_button-text-theme.scss +0 -60
  796. package/styles/button/_button-text.scss +0 -57
  797. package/styles/button/_button.mixins.scss +0 -148
  798. package/styles/button/_mixins.scss +0 -183
  799. package/styles/checkbox/_checkbox-custom-properties.scss +0 -11
  800. package/styles/checkbox/_checkbox-theme.scss +0 -577
  801. package/styles/checkbox/_checkbox.mixins.scss +0 -595
  802. package/styles/icon-button/_mixins.scss +0 -345
  803. package/styles/icon-button/_variables.scss +0 -42
  804. package/styles/list/list/_mixins.scss +0 -45
  805. package/styles/list/list-item/_mixins.scss +0 -413
  806. package/styles/list/list-item/_variables.scss +0 -43
  807. package/styles/switch/_switch-mixins.scss +0 -301
  808. package/styles/switch/_switch-theme.scss +0 -701
  809. /package/dist/esm/chunks/{chunk.SMGXXR6K.js.map → chunk.2MSL7CYM.js.map} +0 -0
  810. /package/dist/esm/chunks/{chunk.M56LSSPW.js.map → chunk.3HCYRDRI.js.map} +0 -0
  811. /package/dist/esm/chunks/{chunk.4ZKX3SO5.js.map → chunk.3R4BUIQP.js.map} +0 -0
  812. /package/dist/esm/chunks/{chunk.YWNCJ7XP.js.map → chunk.3ZPSN2QG.js.map} +0 -0
  813. /package/dist/esm/chunks/{chunk.LFODKHUO.js.map → chunk.5N4N6DL6.js.map} +0 -0
  814. /package/dist/esm/chunks/{chunk.QOJESHEV.js.map → chunk.675V42JS.js.map} +0 -0
  815. /package/dist/esm/chunks/{chunk.DG4ZM3AW.js.map → chunk.AMLT6XJP.js.map} +0 -0
  816. /package/dist/esm/chunks/{chunk.MTKSU2BV.js.map → chunk.APPY5AYL.js.map} +0 -0
  817. /package/dist/esm/chunks/{chunk.4YFVG4KP.js.map → chunk.ARQMMZJL.js.map} +0 -0
  818. /package/dist/esm/chunks/{chunk.5MZ5SGMO.js.map → chunk.BB4UF5RX.js.map} +0 -0
  819. /package/dist/esm/chunks/{chunk.Q7Z3SJ5F.js.map → chunk.DTLZOIUQ.js.map} +0 -0
  820. /package/dist/esm/chunks/{chunk.OWCYRSI3.js.map → chunk.FLWNOP42.js.map} +0 -0
  821. /package/dist/esm/chunks/{chunk.S3JMOOWC.js.map → chunk.FXIWCHLW.js.map} +0 -0
  822. /package/dist/esm/chunks/{chunk.CWTV3TB3.js.map → chunk.GNDKQPDV.js.map} +0 -0
  823. /package/dist/esm/chunks/{chunk.ULY4H76N.js.map → chunk.HAKF2T2D.js.map} +0 -0
  824. /package/dist/esm/chunks/{chunk.WPG7NNQX.js.map → chunk.HOLCNJXC.js.map} +0 -0
  825. /package/dist/esm/chunks/{chunk.W4247Q2P.js.map → chunk.HRRJIFC5.js.map} +0 -0
  826. /package/dist/esm/chunks/{chunk.SU4FU7GK.js.map → chunk.IDMDBMBR.js.map} +0 -0
  827. /package/dist/esm/chunks/{chunk.FCATJM34.js.map → chunk.IHAHJPMB.js.map} +0 -0
  828. /package/dist/esm/chunks/{chunk.XKI46BH2.js.map → chunk.IMLJD35R.js.map} +0 -0
  829. /package/dist/esm/chunks/{chunk.624UKZFU.js.map → chunk.IT7XPDAV.js.map} +0 -0
  830. /package/dist/esm/chunks/{chunk.JLLHDJSO.js.map → chunk.JVLJH6PR.js.map} +0 -0
  831. /package/dist/esm/chunks/{chunk.4C6KHYUO.js.map → chunk.KPJWP77R.js.map} +0 -0
  832. /package/dist/esm/chunks/{chunk.2EWV2XBP.js.map → chunk.KV5IKYG2.js.map} +0 -0
  833. /package/dist/esm/chunks/{chunk.A62DE5PD.js.map → chunk.LCR4YH3O.js.map} +0 -0
  834. /package/dist/esm/chunks/{chunk.FWFOOQMA.js.map → chunk.LOG6GQOK.js.map} +0 -0
  835. /package/dist/esm/chunks/{chunk.YLG6ZC5K.js.map → chunk.NUMKGUCK.js.map} +0 -0
  836. /package/dist/esm/chunks/{chunk.XI3MJSIS.js.map → chunk.O6V3YNMO.js.map} +0 -0
  837. /package/dist/esm/chunks/{chunk.TK5I4RHF.js.map → chunk.QLCVRJ3Q.js.map} +0 -0
  838. /package/dist/esm/chunks/{chunk.Q7JUJNYD.js.map → chunk.RP674CRC.js.map} +0 -0
  839. /package/dist/esm/chunks/{chunk.LTT67HTW.js.map → chunk.SLJ6HDK7.js.map} +0 -0
  840. /package/dist/esm/chunks/{chunk.6OW6Q3EW.js.map → chunk.TU74SREL.js.map} +0 -0
  841. /package/dist/esm/chunks/{chunk.EK24Y56W.js.map → chunk.URJQNB3S.js.map} +0 -0
  842. /package/dist/esm/chunks/{chunk.K3KAM2PL.js.map → chunk.W2LN45WY.js.map} +0 -0
  843. /package/dist/esm/chunks/{chunk.Z6FCL3G3.js.map → chunk.XEFWZKHQ.js.map} +0 -0
  844. /package/dist/esm/chunks/{chunk.NR3MLTXF.js.map → chunk.XLL7L2UB.js.map} +0 -0
  845. /package/dist/esm/chunks/{chunk.3HB22HCX.js.map → chunk.XYAZVLPR.js.map} +0 -0
  846. /package/dist/esm/chunks/{chunk.2QHD3DCR.js.map → chunk.YAERJVPL.js.map} +0 -0
  847. /package/dist/esm/chunks/{chunk.ZDD2NLGP.js.map → chunk.YBZK6LJZ.js.map} +0 -0
  848. /package/dist/esm/chunks/{chunk.ZJC2DSNM.js.map → chunk.Z5ZLKM7W.js.map} +0 -0
  849. /package/styles/core/styles/tokens/{_color-palette.scss → color-palette/_material-color-palette.scss} +0 -0
@@ -3,9 +3,13 @@
3
3
  * Copyright 2023 Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- import { BaseComponent, IBaseComponent } from '../core/base/base-component';
7
- export interface IButtonComponent extends IBaseComponent {
8
- type: string;
6
+ import { BaseButton, IBaseButton } from './base/base-button';
7
+ import { ButtonTheme, ButtonVariant } from './button-constants';
8
+ import { ButtonFoundation } from './button-foundation';
9
+ export interface IButtonComponent extends IBaseButton {
10
+ variant: ButtonVariant;
11
+ pill: boolean;
12
+ theme: ButtonTheme;
9
13
  }
10
14
  declare global {
11
15
  interface HTMLElementTagNameMap {
@@ -13,36 +17,128 @@ declare global {
13
17
  }
14
18
  }
15
19
  /**
16
- * The custom element class behind the `<forge-button>` element.
17
- *
18
20
  * @tag forge-button
21
+ *
22
+ * @summary Buttons represent actions that a user can take.
23
+ *
24
+ * @description
25
+ * Buttons are used when a user needs to take an action, such as submitting a form or opening a dialog.
26
+ * Buttons can be used to trigger an action or to navigate to a new location. Buttons can be styled with
27
+ * a variety of themes and variants.
28
+ *
29
+ * @property {string} type - The type of button. Defaults to `button`. Valid values are `button`, `submit`, and `reset`.
30
+ * @property {ButtonVariant} variant - The variant of the button. Defaults to `text`.
31
+ * @property {boolean} disabled - Whether or not the button is disabled.
32
+ * @property {boolean} popoverIcon - Whether or not the button shows a built-in popover icon.
33
+ * @property {string} name - The name of the button.
34
+ * @property {string} value - The form value of the button.
35
+ * @property {boolean} dense - Whether or not the button is dense.
36
+ * @property {boolean} anchor - Whether or not the button is an `<a>` element.
37
+ * @property {string} href - The href of the anchor.
38
+ * @property {string} target - The target of the anchor.
39
+ * @property {string} download - The download of the anchor.
40
+ * @property {string} rel - The rel of the anchor.
41
+ * @property {HTMLFormElement | null} form - The form reference of the button if within a `<form>` element.
42
+ * @property {boolean} pill - Whether or not the button is pill-shaped.
43
+ * @property {ButtonTheme} theme - The theme of the button. Defaults to `primary`.
44
+ *
45
+ * @attribute {string} type - The type of button. Defaults to `button`. Valid values are `button`, `submit`, and `reset`.
46
+ * @attribute {ButtonVariant} variant - The variant of the button. Defaults to `text`.
47
+ * @attribute {boolean} disabled - Whether or not the button is disabled.
48
+ * @attribute {boolean} popover-icon - Whether or not the button shows a built-in popover icon.
49
+ * @attribute {string} name - The name of the button.
50
+ * @attribute {string} value - The form value of the button.
51
+ * @attribute {boolean} dense - Whether or not the button is dense.
52
+ * @attribute {boolean} anchor - Whether or not the button is an `<a>` element.
53
+ * @attribute {string} href - The href of the anchor.
54
+ * @attribute {string} target - The target of the anchor.
55
+ * @attribute {string} download - The download of the anchor.
56
+ * @attribute {string} rel - The rel of the anchor.
57
+ * @attribute {boolean} pill - Whether or not the button is pill-shaped.
58
+ * @attribute {ButtonTheme} theme - The theme of the button. Defaults to `primary`.
59
+ *
60
+ * @event {Event} click - Fires when the button is clicked.
61
+ *
62
+ * @cssproperty --forge-button-primary-color - The primary color of the button.
63
+ * @cssproperty --forge-button-text-color - The text color of the button. Inherits from primary color.
64
+ * @cssproperty --forge-button-disabled-color - The disabled color of the button.
65
+ * @cssproperty --forge-button-padding - The padding of the button.
66
+ * @cssproperty --forge-button-display - The display of the button.
67
+ * @cssproperty --forge-button-justify - The flex justify of the button.
68
+ * @cssproperty --forge-button-shape - The shape of the button.
69
+ * @cssproperty --forge-button-height - The height of the button.
70
+ * @cssproperty --forge-button-min-width - The min-width of the button.
71
+ * @cssproperty --forge-button-spacing - The spacing of the button.
72
+ * @cssproperty --forge-button-border-width - The border-width of the button.
73
+ * @cssproperty --forge-button-border-style - The border style of the button.
74
+ * @cssproperty --forge-button-border-color - The border color of the button.
75
+ * @cssproperty --forge-button-shape-start-start-radius - The shape start start radius of the button.
76
+ * @cssproperty --forge-button-shape-start-end-radius - The shape start end radius of the button.
77
+ * @cssproperty --forge-button-shape-end-start-radius - The shape end start radius of the button.
78
+ * @cssproperty --forge-button-shape-end-end-radius - The shape end end radius of the button.
79
+ * @cssproperty --forge-button-padding-block - The padding block of the button.
80
+ * @cssproperty --forge-button-padding-inline - The padding inline of the button.
81
+ * @cssproperty --forge-button-background - The background color of the button.
82
+ * @cssproperty --forge-button-hover-background - The background color of the button on hover.
83
+ * @cssproperty --forge-button-active-background - The background color of the button on active state.
84
+ * @cssproperty --forge-button-color - The text color of the button.
85
+ * @cssproperty --forge-button-icon-size - The size of the icon in the button.
86
+ * @cssproperty --forge-button-shadow - The shadow of the button.
87
+ * @cssproperty --forge-button-hover-shadow - The shadow of the button on hover.
88
+ * @cssproperty --forge-button-active-shadow - The shadow of the button on active state.
89
+ * @cssproperty --forge-button-cursor - The cursor type of the button.
90
+ * @cssproperty --forge-button-raised-background - The background color of the raised button.
91
+ * @cssproperty --forge-button-raised-disabled-background - The background color of the disabled raised button.
92
+ * @cssproperty --forge-button-raised-color - The text color of the raised button.
93
+ * @cssproperty --forge-button-raised-disabled-color - The text color of the disabled raised button.
94
+ * @cssproperty --forge-button-raised-shadow - The shadow of the raised button.
95
+ * @cssproperty --forge-button-raised-hover-shadow - The shadow of the raised button on hover.
96
+ * @cssproperty --forge-button-raised-active-shadow - The shadow of the raised button on active state.
97
+ * @cssproperty --forge-button-raised-disabled-shadow - The shadow of the disabled raised button.
98
+ * @cssproperty --forge-button-raised-transition-duration - The transition duration of the raised button.
99
+ * @cssproperty --forge-button-raised-transition-timing - The transition timing of the raised button.
100
+ * @cssproperty --forge-button-flat-background - The background color of the flat button.
101
+ * @cssproperty --forge-button-flat-disabled-background - The background color of the disabled flat button.
102
+ * @cssproperty --forge-button-flat-color - The text color of the flat button.
103
+ * @cssproperty --forge-button-flat-disabled-color - The text color of the disabled flat button.
104
+ * @cssproperty --forge-button-outlined-background - The background color of the outlined button.
105
+ * @cssproperty --forge-button-outlined-color - The text color of the outlined button.
106
+ * @cssproperty --forge-button-outlined-border-width - The border width of the outlined button.
107
+ * @cssproperty --forge-button-outlined-border-style - The border style of the outlined button.
108
+ * @cssproperty --forge-button-outlined-border-color - The border color of the outlined button.
109
+ * @cssproperty --forge-button-link-color - The text color of the link button.
110
+ * @cssproperty --forge-button-link-text-decoration - The text decoration of the link button.
111
+ * @cssproperty --forge-button-link-height - The height of the link button.
112
+ * @cssproperty --forge-button-link-padding - The padding of the link button.
113
+ * @cssproperty --forge-button-link-line-height - The line height of the link button.
114
+ * @cssproperty --forge-button-link-width - The width of the link button.
115
+ * @cssproperty --forge-button-link-hover-text-decoration - The text decoration of the link button on hover.
116
+ * @cssproperty --forge-button-link-active-opacity - The opacity of the link button on active state.
117
+ * @cssproperty --forge-button-link-transition-duration - The transition duration of the link button.
118
+ * @cssproperty --forge-button-link-transition-timing - The transition timing of the link button.
119
+ * @cssproperty --forge-button-disabled-cursor - The cursor type of the disabled button.
120
+ * @cssproperty --forge-button-disabled-text-color - The text color of the disabled button.
121
+ * @cssproperty --forge-button-disabled-background - The background color of the disabled button.
122
+ * @cssproperty --forge-button-disabled-border-color - The border color of the disabled button.
123
+ * @cssproperty --forge-button-disabled-shadow - The shadow of the disabled button.
124
+ * @cssproperty --forge-button-dense-height - The height of the dense button.
125
+ * @cssproperty --forge-button-pill-shape - The shape of the pill button.
126
+ * @cssproperty --forge-button-pill-padding-inline - The inline padding of the pill button.
127
+ *
128
+ * @csspart root - The root container element.
129
+ * @csspart focus-indicator - The focus-indicator indicator element.
130
+ * @csspart state-layer - The state-layer surface element.
131
+ *
132
+ * @slot - This is a default/unnamed slot for the label text.
133
+ * @slot start - Elements to logically render before the label text.
134
+ * @slot end - Elements to logically render after the label text.
19
135
  */
20
- export declare class ButtonComponent extends BaseComponent implements IButtonComponent {
136
+ export declare class ButtonComponent extends BaseButton<ButtonFoundation> implements IButtonComponent {
21
137
  static get observedAttributes(): string[];
22
- private _rippleInstance;
23
- private _buttonElement;
24
- private _type;
25
- private _mutationObserver;
26
- private _buttonAttrMutationObserver;
27
- private _destroyUserInteractionListener;
138
+ protected readonly _foundation: ButtonFoundation;
28
139
  constructor();
29
- connectedCallback(): void;
30
140
  attributeChangedCallback(name: string, oldValue: string, newValue: string): void;
31
- disconnectedCallback(): void;
32
- /**
33
- * Sets the type of button decoration.
34
- * Possible values are: raised, elevated, outlined, and dense.
35
- * Can be combined as: outlined-dense.
36
- */
37
- get type(): string;
38
- set type(value: string);
39
- private _applyType;
40
- private _initialize;
41
- private _initializeButton;
42
- private _deferRippleInitialization;
43
- private _createRipple;
44
- private _initializeButtonChildren;
45
- private _initializeMutationObserver;
46
- private _buttonWasAdded;
47
- private _syncDisabledState;
141
+ variant: ButtonVariant;
142
+ pill: boolean;
143
+ theme: ButtonTheme;
48
144
  }
@@ -4,179 +4,180 @@
4
4
  * License: Apache-2.0
5
5
  */
6
6
  import { __decorate } from "tslib";
7
- import { CustomElement, ensureChildren, toggleAttribute } from '@tylertech/forge-core';
8
- import { BaseComponent } from '../core/base/base-component';
9
- import { ALLOWED_CHILDREN, BUTTON_CONSTANTS } from './button-constants';
10
- import { createUserInteractionListener } from '../core/utils/utils';
11
- import { ForgeRipple } from '../ripple';
7
+ import { attachShadowTemplate, coerceBoolean, CustomElement, FoundationProperty } from '@tylertech/forge-core';
8
+ import { tylIconArrowDropDown } from '@tylertech/tyler-icons/standard';
9
+ import { FocusIndicatorComponent } from '../focus-indicator';
10
+ import { IconComponent, IconRegistry } from '../icon';
11
+ import { StateLayerComponent } from '../state-layer';
12
+ import { BaseButton } from './base/base-button';
13
+ import { BASE_BUTTON_CONSTANTS } from './base/base-button-constants';
14
+ import { ButtonAdapter } from './button-adapter';
15
+ import { BUTTON_CONSTANTS } from './button-constants';
16
+ import { ButtonFoundation } from './button-foundation';
17
+ const template = '<template><div class=\"forge-button\" part=\"root\"><slot name=\"start\"></slot><slot></slot><slot name=\"end\"></slot><forge-focus-indicator target=\":host\" exportparts=\"indicator:focus-indicator\"></forge-focus-indicator><forge-state-layer target=\":host\" exportparts=\"surface:state-layer\"></forge-state-layer></div></template>';
18
+ const styles = ':host{--_button-display:var(--forge-button-display, inline-flex);--_button-disabled-cursor:var(--forge-button-disabled-cursor, not-allowed)}:host{display:var(--_button-display);position:relative;outline:0;-webkit-tap-highlight-color:transparent}:host([hidden]){display:none}.forge-button{--_button-primary-color:var(--forge-button-primary-color, var(--forge-theme-primary, #3f51b5));--_button-text-color:var(--forge-button-text-color, var(--_button-primary-color));--_button-disabled-color:var(--forge-button-disabled, var(--forge-theme-surface-container, #e0e0e0));--_button-padding:var(--forge-button-padding, 8px);--_button-justify:var(--forge-button-justify, center);--_button-shape:var(--forge-button-shape, var(--forge-shape-medium, 4px));--_button-height:var(--forge-button-height, 36px);--_button-min-width:var(--forge-button-min-width, 64px);--_button-spacing:var(--forge-button-spacing, var(--forge-spacing-xsmall, 8px));--_button-border-width:var(--forge-button-border-width, medium);--_button-border-style:var(--forge-button-border-style, none);--_button-border-color:var(--forge-button-border-color, currentColor);--_button-shape-start-start-radius:var(--forge-button-shape-start-start-radius, var(--_button-shape));--_button-shape-start-end-radius:var(--forge-button-shape-start-end-radius, var(--_button-shape));--_button-shape-end-start-radius:var(--forge-button-shape-end-start-radius, var(--_button-shape));--_button-shape-end-end-radius:var(--forge-button-shape-end-end-radius, var(--_button-shape));--_button-padding-block:var(--forge-button-padding-block, var(--_button-padding));--_button-padding-inline:var(--forge-button-padding-inline, var(--_button-padding));--_button-background:var(--forge-button-background, transparent);--_button-hover-background:var(--forge-button-hover-background, var(--_button-background));--_button-active-background:var(--forge-button-active-background, var(--_button-background));--_button-color:var(--forge-button-color, var(--_button-text-color));--_button-icon-size:var(--forge-button-icon-size, calc(var(--forge-typography-font-size, 1rem) * 1.125));--_button-shadow:var(--forge-button-shadow, none);--_button-hover-shadow:var(--forge-button-hover-shadow, none);--_button-active-shadow:var(--forge-button-active-shadow, none);--_button-cursor:var(--forge-button-cursor, pointer);--_button-transition-duration:var(--forge-button-transition-duration, var(--forge-animation-duration-short3, 150ms));--_button-transition-timing:var(--forge-button-transition-timing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)));--_button-outlined-background:var(--forge-button-outlined-background, var(--_button-background));--_button-outlined-color:var(--forge-button-outlined-color, var(--_button-primary-color));--_button-outlined-border-width:var(--forge-button-outlined-border-width, var(--forge-border-thin, 1px));--_button-outlined-border-style:var(--forge-button-outlined-border-style, solid);--_button-outlined-border-color:var(--forge-button-outlined-border-color, var(--_button-primary-color));--_button-tonal-background:var(--forge-button-tonal-background, var(--forge-theme-primary-container, #d1d5ed));--_button-tonal-disabled-background:var(--forge-button-tonal-disabled-background, var(--_button-disabled-color));--_button-tonal-color:var(--forge-button-flat-color, var(--forge-theme-on-primary-container, #0f132b));--_button-tonal-disabled-color:var(--forge-button-tonal-disabled-color, var(--_button-disabled-text-color));--_button-filled-background:var(--forge-button-filled-background, var(--_button-primary-color));--_button-filled-disabled-background:var(--forge-button-filled-disabled-background, var(--_button-disabled-color));--_button-filled-color:var(--forge-button-filled-color, var(--forge-theme-on-primary, #ffffff));--_button-filled-disabled-color:var(--forge-button-filled-disabled-color, var(--_button-disabled-text-color));--_button-raised-shadow:var(--forge-button-raised-shadow, 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12));--_button-raised-hover-shadow:var(--forge-button-raised-hover-shadow, 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12));--_button-raised-active-shadow:var(--forge-button-raised-active-shadow, 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12));--_button-raised-disabled-shadow:var(--forge-button-raised-disabled-shadow, none);--_button-link-color:var(--forge-button-link-color, var(--_button-primary-color));--_button-link-text-decoration:var(--forge-button-link-text-decoration, underline);--_button-link-height:var(--forge-button-link-height, auto);--_button-link-padding:var(--forge-button-link-padding, 0);--_button-link-line-height:var(--forge-button-link-line-height, normal);--_button-link-width:var(--forge-button-link-width, auto);--_button-link-hover-text-decoration:var(--forge-button-link-hover-text-decoration, none);--_button-link-active-opacity:var(--forge-button-link-active-opacity, 0.65);--_button-link-transition-duration:var(--forge-button-link-transition-duration, var(--forge-animation-duration-short3, 150ms));--_button-link-transition-timing:var(--forge-button-link-transition-timing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)));--_button-disabled-text-color:var(--forge-button-disabled-text-color, var(--forge-theme-text-low, rgba(0, 0, 0, 0.38)));--_button-disabled-background:var(--forge-button-disabled-background, transparent);--_button-disabled-border-color:var(--forge-button-disabled-border-color, var(--_button-disabled-color));--_button-disabled-shadow:var(--forge-button-disabled-shadow, none);--_button-dense-height:var(--forge-button-dense-height, 24px);--_button-pill-shape:var(--forge-button-pill-shape, var(--forge-shape-full, 9999px));--_button-pill-padding-inline:var(--forge-button-pill-padding-inline, var(--forge-spacing-small, 12px));--_button-focus-indicator-offset:var(--forge-button-focus-indicator-offset, 4px);--_button-text-focus-indicator-offset:var(--forge-button-focus-indicator-offset, 0px);--_button-link-focus-indicator-offset:var(--forge-button-focus-indicator-offset, 2px);--_button-popover-icon-transition-duration:var(--forge-button-popover-icon-transition-duration, var(--forge-animation-duration-short3, 150ms));--_button-popover-icon-transition-timing:var(--forge-button-popover-icon-transition-timing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)));--_button-popover-icon-open-rotation:var(--forge-button-popover-icon-open-rotation, 180deg)}.forge-button{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-button-font-family, var(--forge-typography-font-family, \"Roboto\", sans-serif));font-size:var(--forge-typography-button-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-button-font-size-scale, .875)));font-weight:var(--forge-typography-button-font-weight,500);line-height:var(--forge-typography-button-line-height, normal);letter-spacing:var(--forge-typography-button-letter-spacing, .0714285714em);text-transform:var(--forge-typography-button-text-transform,inherit);-webkit-text-decoration:var(--forge-typography-button-text-decoration,inherit);text-decoration:var(--forge-typography-button-text-decoration,inherit);position:relative;display:var(--_button-display);-webkit-box-align:center;align-items:center;-webkit-box-pack:var(--_button-justify);justify-content:var(--_button-justify);gap:var(--_button-spacing);z-index:0;-webkit-box-sizing:border-box;box-sizing:border-box;min-inline-size:var(--_button-min-width);height:var(--_button-height);inline-size:100%;border-width:var(--_button-border-width);border-style:var(--_button-border-style);border-color:var(--_button-border-color);border-start-start-radius:var(--_button-shape-start-start-radius);border-start-end-radius:var(--_button-shape-start-end-radius);border-end-start-radius:var(--_button-shape-end-start-radius);border-end-end-radius:var(--_button-shape-end-end-radius);padding-block:var(--_button-padding-block);padding-inline:var(--_button-padding-inline);-webkit-box-shadow:var(--_button-shadow);box-shadow:var(--_button-shadow);outline:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-appearance:none;vertical-align:middle;text-decoration:none;white-space:nowrap;background:var(--_button-background);color:var(--_button-color);cursor:var(--_button-cursor);-webkit-transition-property:background,-webkit-box-shadow;transition-property:background,-webkit-box-shadow;transition-property:box-shadow,background;transition-property:box-shadow,background,-webkit-box-shadow;-webkit-transition-duration:var(--_button-transition-duration);transition-duration:var(--_button-transition-duration);-webkit-transition-timing-function:var(--_button-transition-timing);transition-timing-function:var(--_button-transition-timing)}.forge-button::-moz-focus-inner{padding:0;border:0}.forge-button:hover{--_button-shadow:var(--_button-hover-shadow);background:var(--_button-hover-background)}.forge-button:active{--_button-shadow:var(--_button-active-shadow);background:var(--_button-active-background)}.forge-button ::slotted(:is([slot=start],[slot=end])){font-size:var(--_button-icon-size)}a{position:absolute;inset:0;text-decoration:none}forge-state-layer{--forge-state-layer-color:var(--_button-color)}forge-focus-indicator{--forge-focus-indicator-color:var(--_button-primary-color);--forge-focus-indicator-outward-offset:var(--_button-focus-indicator-offset)}:host([theme=secondary]) .forge-button{--_button-primary-color:var(--forge-button-primary-color, var(--forge-theme-secondary, #ffc107))}:host([theme=secondary][variant=tonal]) .forge-button{--_button-tonal-background:var(--forge-button-tonal-background, var(--forge-theme-secondary-container, #fff0c3));--_button-tonal-color:var(--forge-button-tonal-color, var(--forge-theme-on-secondary-container, #3d2e02))}:host([theme=tertiary]) .forge-button{--_button-primary-color:var(--forge-button-primary-color, var(--forge-theme-tertiary, #3d5afe))}:host([theme=tertiary][variant=tonal]) .forge-button{--_button-tonal-background:var(--forge-button-tonal-background, var(--forge-theme-tertiary-container, #d0d7ff));--_button-tonal-color:var(--forge-button-tonal-color, var(--forge-theme-on-tertiary-container, #0f163d))}:host([theme=success]) .forge-button{--_button-primary-color:var(--forge-button-primary-color, var(--forge-theme-success, #2e7d32))}:host([theme=success][variant=tonal]) .forge-button{--_button-tonal-background:var(--forge-button-tonal-background, var(--forge-theme-success-container, #cde0ce));--_button-tonal-color:var(--forge-button-tonal-color, var(--forge-theme-on-success-container, #0b1e0c))}:host([theme=error]) .forge-button{--_button-primary-color:var(--forge-button-primary-color, var(--forge-theme-error, #b00020))}:host([theme=error][variant=tonal]) .forge-button{--_button-tonal-background:var(--forge-button-tonal-background, var(--forge-theme-error-container, #ecc2c9));--_button-tonal-color:var(--forge-button-tonal-color, var(--forge-theme-on-error-container, #2a0008))}:host([theme=warning]) .forge-button{--_button-primary-color:var(--forge-button-primary-color, var(--forge-theme-warning, #d14900))}:host([theme=warning][variant=tonal]) .forge-button{--_button-tonal-background:var(--forge-button-tonal-background, var(--forge-theme-warning-container, #f4d3c2));--_button-tonal-color:var(--forge-button-tonal-color, var(--forge-theme-on-warning-container, #321200))}:host([theme=info]) .forge-button{--_button-primary-color:var(--forge-button-primary-color, var(--forge-theme-info, #1565c0))}:host([theme=info][variant=tonal]) .forge-button{--_button-tonal-background:var(--forge-button-tonal-background, var(--forge-theme-info-container, #c7daf0));--_button-tonal-color:var(--forge-button-tonal-color, var(--forge-theme-on-info-container, #05182e))}:host(:is(:not([variant],[variant=text]))) .forge-button{--_button-focus-indicator-offset:var(--_button-text-focus-indicator-offset)}:host(:is([variant=filled],[variant=raised])) .forge-button{--_button-background:var(--_button-filled-background);--_button-color:var(--_button-filled-color)}:host(:is([variant=filled],[variant=raised])) forge-state-layer{--forge-state-layer-color:var(--_button-filled-color)}:host([variant=raised]) .forge-button{--_button-shadow:var(--_button-raised-shadow)}:host([variant=raised]) .forge-button:hover{--_button-shadow:var(--_button-raised-hover-shadow)}:host([variant=raised]) .forge-button:active{--_button-shadow:var(--_button-raised-active-shadow)}:host([variant=tonal]) .forge-button{--_button-background:var(--_button-tonal-background);--_button-color:var(--_button-tonal-color)}:host([variant=tonal]) forge-state-layer{--forge-state-layer-color:var(--_button-tonal-color)}:host([variant=outlined]) .forge-button{--_button-background:var(--_button-outlined-background);--_button-color:var(--_button-outlined-color);--_button-border-width:var(--_button-outlined-border-width);--_button-border-style:var(--_button-outlined-border-style);--_button-border-color:var(--_button-outlined-border-color)}:host([variant=link]) .forge-button{--_button-color:var(--_button-link-color);--_button-height:var(--_button-link-height);--_button-padding:var(--_button-link-padding);--_button-focus-indicator-offset:var(--_button-link-focus-indicator-offset);-webkit-text-decoration:var(--_button-link-text-decoration);text-decoration:var(--_button-link-text-decoration);line-height:var(--_button-link-line-height);-webkit-transition:opacity var(--_button-link-transition-duration) var(--_button-link-transition-timing);transition:opacity var(--_button-link-transition-duration) var(--_button-link-transition-timing);inline-size:var(--_button-link-width)}:host([variant=link]) .forge-button:hover{-webkit-text-decoration:var(--_button-link-hover-text-decoration);text-decoration:var(--_button-link-hover-text-decoration)}:host([variant=link]) .forge-button:active{opacity:var(--_button-link-active-opacity)}:host([dense]) .forge-button{--_button-height:var(--_button-dense-height)}:host([pill]) .forge-button{--_button-shape:var(--_button-pill-shape);--_button-padding-inline:var(--_button-pill-padding-inline)}:host([pill]) forge-focus-indicator{--forge-focus-indicator-shape:var(--_button-pill-shape)}:host(:not([anchor])[disabled]){cursor:var(--_button-disabled-cursor)}:host(:not([anchor])[disabled]) .forge-button{--_button-background:var(--_button-disabled-background);--_button-color:var(--_button-disabled-text-color);--_button-shadow:var(--_button-disabled-shadow);pointer-events:none}:host(:not([anchor])[variant=outlined][disabled]) .forge-button{--_button-border-color:var(--_button-disabled-border-color)}:host(:not([anchor])[variant=tonal][disabled]) .forge-button{--_button-background:var(--_button-tonal-disabled-background);--_button-color:var(--_button-tonal-disabled-color)}:host(:not([anchor]):is([variant=filled],[variant=raised])[disabled]) .forge-button{--_button-background:var(--_button-filled-disabled-background);--_button-color:var(--_button-filled-disabled-color)}:host(:not([anchor])[variant=raised][disabled]) .forge-button{--_button-shadow:var(--_button-raised-disabled-shadow)}:host([popover-icon]) .forge-button__popover-icon{-webkit-transition:rotate var(--_button-popover-icon-transition-duration) var(--_button-popover-icon-transition-timing);transition:rotate var(--_button-popover-icon-transition-duration) var(--_button-popover-icon-transition-timing)}:host([popover-icon][aria-expanded=true]) .forge-button__popover-icon{rotate:var(--_button-popover-icon-open-rotation)}';
12
19
  /**
13
- * The custom element class behind the `<forge-button>` element.
14
- *
15
20
  * @tag forge-button
21
+ *
22
+ * @summary Buttons represent actions that a user can take.
23
+ *
24
+ * @description
25
+ * Buttons are used when a user needs to take an action, such as submitting a form or opening a dialog.
26
+ * Buttons can be used to trigger an action or to navigate to a new location. Buttons can be styled with
27
+ * a variety of themes and variants.
28
+ *
29
+ * @property {string} type - The type of button. Defaults to `button`. Valid values are `button`, `submit`, and `reset`.
30
+ * @property {ButtonVariant} variant - The variant of the button. Defaults to `text`.
31
+ * @property {boolean} disabled - Whether or not the button is disabled.
32
+ * @property {boolean} popoverIcon - Whether or not the button shows a built-in popover icon.
33
+ * @property {string} name - The name of the button.
34
+ * @property {string} value - The form value of the button.
35
+ * @property {boolean} dense - Whether or not the button is dense.
36
+ * @property {boolean} anchor - Whether or not the button is an `<a>` element.
37
+ * @property {string} href - The href of the anchor.
38
+ * @property {string} target - The target of the anchor.
39
+ * @property {string} download - The download of the anchor.
40
+ * @property {string} rel - The rel of the anchor.
41
+ * @property {HTMLFormElement | null} form - The form reference of the button if within a `<form>` element.
42
+ * @property {boolean} pill - Whether or not the button is pill-shaped.
43
+ * @property {ButtonTheme} theme - The theme of the button. Defaults to `primary`.
44
+ *
45
+ * @attribute {string} type - The type of button. Defaults to `button`. Valid values are `button`, `submit`, and `reset`.
46
+ * @attribute {ButtonVariant} variant - The variant of the button. Defaults to `text`.
47
+ * @attribute {boolean} disabled - Whether or not the button is disabled.
48
+ * @attribute {boolean} popover-icon - Whether or not the button shows a built-in popover icon.
49
+ * @attribute {string} name - The name of the button.
50
+ * @attribute {string} value - The form value of the button.
51
+ * @attribute {boolean} dense - Whether or not the button is dense.
52
+ * @attribute {boolean} anchor - Whether or not the button is an `<a>` element.
53
+ * @attribute {string} href - The href of the anchor.
54
+ * @attribute {string} target - The target of the anchor.
55
+ * @attribute {string} download - The download of the anchor.
56
+ * @attribute {string} rel - The rel of the anchor.
57
+ * @attribute {boolean} pill - Whether or not the button is pill-shaped.
58
+ * @attribute {ButtonTheme} theme - The theme of the button. Defaults to `primary`.
59
+ *
60
+ * @event {Event} click - Fires when the button is clicked.
61
+ *
62
+ * @cssproperty --forge-button-primary-color - The primary color of the button.
63
+ * @cssproperty --forge-button-text-color - The text color of the button. Inherits from primary color.
64
+ * @cssproperty --forge-button-disabled-color - The disabled color of the button.
65
+ * @cssproperty --forge-button-padding - The padding of the button.
66
+ * @cssproperty --forge-button-display - The display of the button.
67
+ * @cssproperty --forge-button-justify - The flex justify of the button.
68
+ * @cssproperty --forge-button-shape - The shape of the button.
69
+ * @cssproperty --forge-button-height - The height of the button.
70
+ * @cssproperty --forge-button-min-width - The min-width of the button.
71
+ * @cssproperty --forge-button-spacing - The spacing of the button.
72
+ * @cssproperty --forge-button-border-width - The border-width of the button.
73
+ * @cssproperty --forge-button-border-style - The border style of the button.
74
+ * @cssproperty --forge-button-border-color - The border color of the button.
75
+ * @cssproperty --forge-button-shape-start-start-radius - The shape start start radius of the button.
76
+ * @cssproperty --forge-button-shape-start-end-radius - The shape start end radius of the button.
77
+ * @cssproperty --forge-button-shape-end-start-radius - The shape end start radius of the button.
78
+ * @cssproperty --forge-button-shape-end-end-radius - The shape end end radius of the button.
79
+ * @cssproperty --forge-button-padding-block - The padding block of the button.
80
+ * @cssproperty --forge-button-padding-inline - The padding inline of the button.
81
+ * @cssproperty --forge-button-background - The background color of the button.
82
+ * @cssproperty --forge-button-hover-background - The background color of the button on hover.
83
+ * @cssproperty --forge-button-active-background - The background color of the button on active state.
84
+ * @cssproperty --forge-button-color - The text color of the button.
85
+ * @cssproperty --forge-button-icon-size - The size of the icon in the button.
86
+ * @cssproperty --forge-button-shadow - The shadow of the button.
87
+ * @cssproperty --forge-button-hover-shadow - The shadow of the button on hover.
88
+ * @cssproperty --forge-button-active-shadow - The shadow of the button on active state.
89
+ * @cssproperty --forge-button-cursor - The cursor type of the button.
90
+ * @cssproperty --forge-button-raised-background - The background color of the raised button.
91
+ * @cssproperty --forge-button-raised-disabled-background - The background color of the disabled raised button.
92
+ * @cssproperty --forge-button-raised-color - The text color of the raised button.
93
+ * @cssproperty --forge-button-raised-disabled-color - The text color of the disabled raised button.
94
+ * @cssproperty --forge-button-raised-shadow - The shadow of the raised button.
95
+ * @cssproperty --forge-button-raised-hover-shadow - The shadow of the raised button on hover.
96
+ * @cssproperty --forge-button-raised-active-shadow - The shadow of the raised button on active state.
97
+ * @cssproperty --forge-button-raised-disabled-shadow - The shadow of the disabled raised button.
98
+ * @cssproperty --forge-button-raised-transition-duration - The transition duration of the raised button.
99
+ * @cssproperty --forge-button-raised-transition-timing - The transition timing of the raised button.
100
+ * @cssproperty --forge-button-flat-background - The background color of the flat button.
101
+ * @cssproperty --forge-button-flat-disabled-background - The background color of the disabled flat button.
102
+ * @cssproperty --forge-button-flat-color - The text color of the flat button.
103
+ * @cssproperty --forge-button-flat-disabled-color - The text color of the disabled flat button.
104
+ * @cssproperty --forge-button-outlined-background - The background color of the outlined button.
105
+ * @cssproperty --forge-button-outlined-color - The text color of the outlined button.
106
+ * @cssproperty --forge-button-outlined-border-width - The border width of the outlined button.
107
+ * @cssproperty --forge-button-outlined-border-style - The border style of the outlined button.
108
+ * @cssproperty --forge-button-outlined-border-color - The border color of the outlined button.
109
+ * @cssproperty --forge-button-link-color - The text color of the link button.
110
+ * @cssproperty --forge-button-link-text-decoration - The text decoration of the link button.
111
+ * @cssproperty --forge-button-link-height - The height of the link button.
112
+ * @cssproperty --forge-button-link-padding - The padding of the link button.
113
+ * @cssproperty --forge-button-link-line-height - The line height of the link button.
114
+ * @cssproperty --forge-button-link-width - The width of the link button.
115
+ * @cssproperty --forge-button-link-hover-text-decoration - The text decoration of the link button on hover.
116
+ * @cssproperty --forge-button-link-active-opacity - The opacity of the link button on active state.
117
+ * @cssproperty --forge-button-link-transition-duration - The transition duration of the link button.
118
+ * @cssproperty --forge-button-link-transition-timing - The transition timing of the link button.
119
+ * @cssproperty --forge-button-disabled-cursor - The cursor type of the disabled button.
120
+ * @cssproperty --forge-button-disabled-text-color - The text color of the disabled button.
121
+ * @cssproperty --forge-button-disabled-background - The background color of the disabled button.
122
+ * @cssproperty --forge-button-disabled-border-color - The border color of the disabled button.
123
+ * @cssproperty --forge-button-disabled-shadow - The shadow of the disabled button.
124
+ * @cssproperty --forge-button-dense-height - The height of the dense button.
125
+ * @cssproperty --forge-button-pill-shape - The shape of the pill button.
126
+ * @cssproperty --forge-button-pill-padding-inline - The inline padding of the pill button.
127
+ *
128
+ * @csspart root - The root container element.
129
+ * @csspart focus-indicator - The focus-indicator indicator element.
130
+ * @csspart state-layer - The state-layer surface element.
131
+ *
132
+ * @slot - This is a default/unnamed slot for the label text.
133
+ * @slot start - Elements to logically render before the label text.
134
+ * @slot end - Elements to logically render after the label text.
16
135
  */
17
- let ButtonComponent = class ButtonComponent extends BaseComponent {
136
+ let ButtonComponent = class ButtonComponent extends BaseButton {
18
137
  static get observedAttributes() {
19
- return [BUTTON_CONSTANTS.attributes.TYPE];
138
+ return [
139
+ ...Object.values(BASE_BUTTON_CONSTANTS.observedAttributes),
140
+ ...Object.values(BUTTON_CONSTANTS.observedAttributes)
141
+ ];
20
142
  }
21
143
  constructor() {
22
144
  super();
23
- }
24
- connectedCallback() {
25
- if (this.children.length) {
26
- this._initialize();
27
- }
28
- else {
29
- ensureChildren(this).then(() => this._initialize());
30
- }
145
+ IconRegistry.define(tylIconArrowDropDown);
146
+ attachShadowTemplate(this, template, styles);
147
+ this._foundation = new ButtonFoundation(new ButtonAdapter(this));
31
148
  }
32
149
  attributeChangedCallback(name, oldValue, newValue) {
33
150
  switch (name) {
34
- case BUTTON_CONSTANTS.attributes.TYPE:
35
- this.type = newValue;
36
- break;
37
- }
38
- }
39
- disconnectedCallback() {
40
- if (typeof this._destroyUserInteractionListener === 'function') {
41
- this._destroyUserInteractionListener();
42
- }
43
- if (this._rippleInstance) {
44
- this._rippleInstance.destroy();
45
- }
46
- if (this._mutationObserver) {
47
- this._mutationObserver.disconnect();
48
- }
49
- if (this._buttonAttrMutationObserver) {
50
- this._buttonAttrMutationObserver.disconnect();
51
- }
52
- }
53
- /**
54
- * Sets the type of button decoration.
55
- * Possible values are: raised, elevated, outlined, and dense.
56
- * Can be combined as: outlined-dense.
57
- */
58
- get type() {
59
- return this._type;
60
- }
61
- set type(value) {
62
- if (this._type !== value) {
63
- this._type = value;
64
- this._applyType(value);
65
- this.setAttribute(BUTTON_CONSTANTS.attributes.TYPE, this._type);
66
- }
67
- }
68
- _applyType(type) {
69
- if (this._buttonElement) {
70
- this._buttonElement.classList.remove(BUTTON_CONSTANTS.classes.BUTTON_RAISED);
71
- this._buttonElement.classList.remove(BUTTON_CONSTANTS.classes.BUTTON_UNELEVATED);
72
- this._buttonElement.classList.remove(BUTTON_CONSTANTS.classes.BUTTON_OUTLINED);
73
- this._buttonElement.classList.remove(BUTTON_CONSTANTS.classes.BUTTON_DENSE);
74
- if (type.includes('raised')) {
75
- this._buttonElement.classList.add(BUTTON_CONSTANTS.classes.BUTTON_RAISED);
76
- }
77
- if (type.includes('unelevated')) {
78
- this._buttonElement.classList.add(BUTTON_CONSTANTS.classes.BUTTON_UNELEVATED);
79
- }
80
- if (type.includes('outlined')) {
81
- this._buttonElement.classList.add(BUTTON_CONSTANTS.classes.BUTTON_OUTLINED);
82
- }
83
- if (type.includes('dense')) {
84
- this._buttonElement.classList.add(BUTTON_CONSTANTS.classes.BUTTON_DENSE);
85
- }
86
- }
87
- }
88
- _initialize() {
89
- this._initializeButton();
90
- this._initializeMutationObserver();
91
- }
92
- _initializeButton() {
93
- this._buttonElement = this.querySelector(BUTTON_CONSTANTS.selectors.BUTTON);
94
- if (!this._buttonElement) {
95
- return;
96
- }
97
- if (this.hasAttribute(BUTTON_CONSTANTS.attributes.TYPE)) {
98
- this._type = this.getAttribute(BUTTON_CONSTANTS.attributes.TYPE);
99
- this._applyType(this._type);
100
- }
101
- this._buttonElement.classList.add(BUTTON_CONSTANTS.classes.BUTTON);
102
- this._syncDisabledState();
103
- this._initializeButtonChildren();
104
- // We wait to initialize the ripple instance until the user interacts with the component to avoid unnecessary performance overhead
105
- this._deferRippleInitialization();
106
- }
107
- async _deferRippleInitialization() {
108
- const { userInteraction, destroy } = createUserInteractionListener(this._buttonElement);
109
- this._destroyUserInteractionListener = destroy;
110
- const { type } = await userInteraction;
111
- this._destroyUserInteractionListener = undefined;
112
- if (!this._rippleInstance) {
113
- this._rippleInstance = this._createRipple();
114
- if (type === 'focusin') {
115
- this._rippleInstance.handleFocus();
116
- }
117
- }
118
- }
119
- _createRipple() {
120
- if (this._rippleInstance) {
121
- this._rippleInstance.destroy();
122
- }
123
- return new ForgeRipple(this._buttonElement);
124
- }
125
- _initializeButtonChildren() {
126
- if (!this._buttonElement.querySelector(BUTTON_CONSTANTS.selectors.RIPPLE)) {
127
- const rippleElement = document.createElement('span');
128
- rippleElement.classList.add(BUTTON_CONSTANTS.classes.RIPPLE);
129
- this._buttonElement.appendChild(rippleElement);
130
- }
131
- const labelElement = this.querySelector(BUTTON_CONSTANTS.selectors.LABEL);
132
- if (labelElement) {
133
- labelElement.classList.add(BUTTON_CONSTANTS.classes.LABEL);
134
- }
135
- const iconElements = Array.from(this.querySelectorAll(BUTTON_CONSTANTS.selectors.ICON));
136
- iconElements.forEach(iconElement => {
137
- iconElement.classList.add(BUTTON_CONSTANTS.classes.ICON);
138
- if (!iconElement.hasAttribute('aria-hidden')) {
139
- iconElement.setAttribute('aria-hidden', 'true');
140
- }
141
- });
142
- }
143
- _initializeMutationObserver() {
144
- if (!this._mutationObserver) {
145
- const config = { childList: true, subtree: true };
146
- const callback = mutationList => {
147
- if (this._buttonWasAdded(mutationList)) {
148
- this._initializeButton();
149
- }
150
- else if (mutationList.some(mutation => mutation.addedNodes.length)) {
151
- this._initializeButtonChildren();
152
- }
153
- };
154
- this._mutationObserver = new MutationObserver(callback);
155
- this._mutationObserver.observe(this, config);
156
- if (this._buttonElement) {
157
- // Watch attributes on the `<button>` element
158
- this._buttonAttrMutationObserver = new MutationObserver(mutationList => {
159
- if (mutationList.some(mutation => mutation.attributeName === 'disabled')) {
160
- this._syncDisabledState();
161
- }
162
- });
163
- this._buttonAttrMutationObserver.observe(this._buttonElement, { attributes: true, attributeFilter: ['disabled'] });
164
- }
165
- }
166
- }
167
- _buttonWasAdded(mutationList) {
168
- return mutationList.some(mutation => {
169
- return Array.from(mutation.addedNodes)
170
- .some(node => ALLOWED_CHILDREN.includes(node.nodeName.toLowerCase()));
171
- });
172
- }
173
- _syncDisabledState() {
174
- toggleAttribute(this, this._buttonElement.disabled, BUTTON_CONSTANTS.attributes.DISABLED);
151
+ case BUTTON_CONSTANTS.observedAttributes.VARIANT:
152
+ this.variant = newValue;
153
+ return;
154
+ case BUTTON_CONSTANTS.observedAttributes.PILL:
155
+ this.pill = coerceBoolean(newValue);
156
+ return;
157
+ case BUTTON_CONSTANTS.observedAttributes.THEME:
158
+ this.theme = newValue;
159
+ return;
160
+ }
161
+ super.attributeChangedCallback(name, oldValue, newValue);
175
162
  }
176
163
  };
164
+ __decorate([
165
+ FoundationProperty()
166
+ ], ButtonComponent.prototype, "variant", void 0);
167
+ __decorate([
168
+ FoundationProperty()
169
+ ], ButtonComponent.prototype, "pill", void 0);
170
+ __decorate([
171
+ FoundationProperty()
172
+ ], ButtonComponent.prototype, "theme", void 0);
177
173
  ButtonComponent = __decorate([
178
174
  CustomElement({
179
- name: BUTTON_CONSTANTS.elementName
175
+ name: BUTTON_CONSTANTS.elementName,
176
+ dependencies: [
177
+ FocusIndicatorComponent,
178
+ StateLayerComponent,
179
+ IconComponent
180
+ ]
180
181
  })
181
182
  ], ButtonComponent);
182
183
  export { ButtonComponent };
@@ -4,6 +4,8 @@
4
4
  * License: Apache-2.0
5
5
  */
6
6
  export * from './button';
7
- export * from './button-constants';
7
+ export * from './button-adapter';
8
8
  export * from './button-component-delegate';
9
+ export * from './button-constants';
10
+ export * from './button-foundation';
9
11
  export declare function defineButtonComponent(): void;
@@ -6,8 +6,10 @@
6
6
  import { defineCustomElement } from '@tylertech/forge-core';
7
7
  import { ButtonComponent } from './button';
8
8
  export * from './button';
9
- export * from './button-constants';
9
+ export * from './button-adapter';
10
10
  export * from './button-component-delegate';
11
+ export * from './button-constants';
12
+ export * from './button-foundation';
11
13
  export function defineButtonComponent() {
12
14
  defineCustomElement(ButtonComponent);
13
15
  }
@@ -0,0 +1,48 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ import { BaseAdapter, IBaseAdapter } from '../core';
7
+ import { ForgeRippleCapableSurface } from '../ripple';
8
+ import { IButtonAreaComponent } from './button-area';
9
+ export interface IButtonAreaAdapter extends IBaseAdapter {
10
+ destroy(): void;
11
+ setDisabled(value: boolean): void;
12
+ addListener(type: string, listener: (event: Event) => void): void;
13
+ removeListener(type: string, listener: (event: Event) => void): void;
14
+ addSlotChangeListener(listener: () => void): void;
15
+ removeSlotChangeListener(listener: () => void): void;
16
+ startButtonObserver(callback: MutationCallback): void;
17
+ stopButtonObserver(): void;
18
+ detectSlottedButton(): void;
19
+ buttonIsDisabled(): boolean;
20
+ requestDisabledButtonFrame(): void;
21
+ createRipple(): Promise<void>;
22
+ }
23
+ export declare class ButtonAreaAdapter extends BaseAdapter<IButtonAreaComponent> implements IButtonAreaAdapter, ForgeRippleCapableSurface {
24
+ private _rootElement;
25
+ private _buttonSlotElement;
26
+ private _buttonElement?;
27
+ private _rippleInstance?;
28
+ private _buttonObserver?;
29
+ private _destroyUserInteractionListener;
30
+ constructor(component: IButtonAreaComponent);
31
+ destroy(): void;
32
+ get root(): HTMLElement;
33
+ get unbounded(): boolean | undefined;
34
+ get disabled(): boolean | undefined;
35
+ setDisabled(value: boolean): void;
36
+ addListener(type: string, listener: (event: Event) => void): void;
37
+ removeListener(type: string, listener: (event: Event) => void): void;
38
+ addSlotChangeListener(listener: () => void): void;
39
+ removeSlotChangeListener(listener: () => void): void;
40
+ startButtonObserver(callback: MutationCallback): void;
41
+ stopButtonObserver(): void;
42
+ detectSlottedButton(): void;
43
+ buttonIsDisabled(): boolean;
44
+ requestDisabledButtonFrame(): void;
45
+ createRipple(): Promise<void>;
46
+ private _userInteractionListener;
47
+ private _isRootEvent;
48
+ }