@tylertech/forge 3.0.0-next.6 → 3.0.0-next.8

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 (254) hide show
  1. package/custom-elements.json +2084 -1482
  2. package/dist/esm/accordion/index.js +1 -1
  3. package/dist/esm/app-bar/help-button/index.js +1 -1
  4. package/dist/esm/app-bar/index.js +1 -1
  5. package/dist/esm/app-bar/menu-button/index.js +1 -1
  6. package/dist/esm/app-bar/notification-button/index.js +1 -1
  7. package/dist/esm/app-bar/profile-button/index.js +1 -1
  8. package/dist/esm/app-bar/search/index.js +1 -1
  9. package/dist/esm/autocomplete/index.js +1 -1
  10. package/dist/esm/banner/index.js +1 -1
  11. package/dist/esm/bottom-sheet/index.js +1 -1
  12. package/dist/esm/busy-indicator/index.js +1 -1
  13. package/dist/esm/button/index.js +1 -1
  14. package/dist/esm/button-toggle/button-toggle/index.js +1 -1
  15. package/dist/esm/button-toggle/button-toggle-group/index.js +1 -1
  16. package/dist/esm/button-toggle/index.js +1 -1
  17. package/dist/esm/calendar/calendar-dropdown/index.js +1 -1
  18. package/dist/esm/calendar/calendar-menu/index.js +1 -1
  19. package/dist/esm/calendar/index.js +1 -1
  20. package/dist/esm/card/index.js +1 -1
  21. package/dist/esm/checkbox/index.js +1 -1
  22. package/dist/esm/chip-field/index.js +1 -1
  23. package/dist/esm/chips/chip/index.js +1 -1
  24. package/dist/esm/chips/chip-set/index.js +1 -1
  25. package/dist/esm/chips/index.js +1 -1
  26. package/dist/esm/chunks/{chunk.Q6IP5GJ6.js → chunk.246JM2YT.js} +2 -2
  27. package/dist/esm/chunks/{chunk.DHTAH23Y.js → chunk.24L5GDD2.js} +2 -2
  28. package/dist/esm/chunks/{chunk.ZWTZJJ6H.js → chunk.2IQGDFQS.js} +2 -2
  29. package/dist/esm/chunks/{chunk.DAGXGSX7.js → chunk.2LRDPTHK.js} +2 -2
  30. package/dist/esm/chunks/{chunk.Q47M2LB5.js → chunk.2QFIMTVP.js} +2 -2
  31. package/dist/esm/chunks/{chunk.IVB6XTHQ.js → chunk.2TQONIPK.js} +2 -2
  32. package/dist/esm/chunks/{chunk.DXHKS7XO.js → chunk.2XFVFZ3P.js} +2 -2
  33. package/dist/esm/chunks/{chunk.3ICROIFD.js → chunk.2YAU7AXH.js} +2 -2
  34. package/dist/esm/chunks/{chunk.5B2CGITX.js → chunk.2YX7ASSX.js} +2 -2
  35. package/dist/esm/chunks/{chunk.QLNGQCJX.js → chunk.2ZTERGYF.js} +2 -2
  36. package/dist/esm/chunks/{chunk.BIJJCDHE.js → chunk.3AF7CJP2.js} +2 -2
  37. package/dist/esm/chunks/{chunk.BIJJCDHE.js.map → chunk.3AF7CJP2.js.map} +1 -1
  38. package/dist/esm/chunks/{chunk.Y2ANYRZH.js → chunk.4EB5NVCK.js} +2 -2
  39. package/dist/esm/chunks/{chunk.SACZLJPQ.js → chunk.4LVS2EYJ.js} +2 -2
  40. package/dist/esm/chunks/chunk.57XQ4F6F.js +12 -0
  41. package/dist/esm/chunks/chunk.57XQ4F6F.js.map +7 -0
  42. package/dist/esm/chunks/{chunk.E3VXLUEY.js → chunk.5IVB5L5Z.js} +2 -2
  43. package/dist/esm/chunks/{chunk.GZZ6GFKT.js → chunk.5MK5YWCK.js} +2 -2
  44. package/dist/esm/chunks/{chunk.QO37K76P.js → chunk.6SBTLXLH.js} +2 -2
  45. package/dist/esm/chunks/{chunk.BTZF6QGA.js → chunk.7JQHQKXN.js} +2 -2
  46. package/dist/esm/chunks/{chunk.TWV4OTF7.js → chunk.A5MBSCSQ.js} +2 -2
  47. package/dist/esm/chunks/{chunk.4EF7UJDK.js → chunk.A5R7KUIP.js} +2 -2
  48. package/dist/esm/chunks/{chunk.NQH4ZCXJ.js → chunk.AGMPIMJV.js} +2 -2
  49. package/dist/esm/chunks/{chunk.PMY4KVCF.js → chunk.BKCEVPKW.js} +2 -2
  50. package/dist/esm/chunks/{chunk.I5MLIFN5.js → chunk.BSTIDYQJ.js} +2 -2
  51. package/dist/esm/chunks/chunk.C2LTB7EX.js +7 -0
  52. package/dist/esm/chunks/chunk.C2LTB7EX.js.map +7 -0
  53. package/dist/esm/chunks/chunk.CN27IHDN.js +7 -0
  54. package/dist/esm/chunks/chunk.CN27IHDN.js.map +7 -0
  55. package/dist/esm/chunks/{chunk.MZNL36GJ.js → chunk.CNQESSA3.js} +2 -2
  56. package/dist/esm/chunks/{chunk.6FISJTFJ.js → chunk.E6KWYFZG.js} +2 -2
  57. package/dist/esm/chunks/{chunk.H3SBIXK5.js → chunk.ECRL6O3V.js} +2 -2
  58. package/dist/esm/chunks/{chunk.SBDWCXK3.js → chunk.ER52NFXX.js} +2 -2
  59. package/dist/esm/chunks/{chunk.GSQF3ACL.js → chunk.EUE3OVC7.js} +2 -2
  60. package/dist/esm/chunks/{chunk.DGNS4JNN.js → chunk.FAANPQES.js} +2 -2
  61. package/dist/esm/chunks/{chunk.MZLPUI6R.js → chunk.FYWPZFLJ.js} +2 -2
  62. package/dist/esm/chunks/{chunk.MZLPUI6R.js.map → chunk.FYWPZFLJ.js.map} +2 -2
  63. package/dist/esm/chunks/{chunk.LMSXJOPL.js → chunk.GF2GUVYS.js} +2 -2
  64. package/dist/esm/chunks/{chunk.QKRB6AIQ.js → chunk.GHSAKRYH.js} +2 -2
  65. package/dist/esm/chunks/{chunk.JHTGKXXX.js → chunk.GJW4WS4I.js} +2 -2
  66. package/dist/esm/chunks/{chunk.IW37LUQJ.js → chunk.GUYPITGA.js} +2 -2
  67. package/dist/esm/chunks/{chunk.G75X57KY.js → chunk.HKJEGD6C.js} +2 -2
  68. package/dist/esm/chunks/{chunk.3ARIVYGG.js → chunk.IGK3VYZG.js} +2 -2
  69. package/dist/esm/chunks/chunk.IIXLFXHZ.js +7 -0
  70. package/dist/esm/chunks/chunk.IIXLFXHZ.js.map +7 -0
  71. package/dist/esm/chunks/chunk.JQIOVCKI.js +7 -0
  72. package/dist/esm/chunks/chunk.JQIOVCKI.js.map +7 -0
  73. package/dist/esm/chunks/{chunk.7MDHI4PT.js → chunk.JVW6JGV3.js} +2 -2
  74. package/dist/esm/chunks/chunk.LJYTJ3RV.js +7 -0
  75. package/dist/esm/chunks/chunk.LJYTJ3RV.js.map +7 -0
  76. package/dist/esm/chunks/{chunk.LQ4RD7WW.js → chunk.MXNLCQRB.js} +2 -2
  77. package/dist/esm/chunks/{chunk.DCCJTW7C.js → chunk.NDGFQILG.js} +2 -2
  78. package/dist/esm/chunks/{chunk.PG4HEEX2.js → chunk.OTVT3XM2.js} +2 -2
  79. package/dist/esm/chunks/{chunk.VSO5QDBV.js → chunk.P5QIB6OY.js} +2 -2
  80. package/dist/esm/chunks/{chunk.XUV63FEH.js → chunk.PPPTT3SM.js} +2 -2
  81. package/dist/esm/chunks/{chunk.GZRMHYID.js → chunk.QA3NU7EN.js} +2 -2
  82. package/dist/esm/chunks/{chunk.MVYTV6WX.js → chunk.QYKO543K.js} +2 -2
  83. package/dist/esm/chunks/{chunk.XI4RWFCG.js → chunk.RHYRMQS7.js} +2 -2
  84. package/dist/esm/chunks/{chunk.Q4SCW4FN.js → chunk.RUSHOL23.js} +2 -2
  85. package/dist/esm/chunks/{chunk.AD4CP4UK.js → chunk.SIJGKRYS.js} +2 -2
  86. package/dist/esm/chunks/{chunk.RTMDWDS4.js → chunk.SYZB7B4F.js} +2 -2
  87. package/dist/esm/chunks/{chunk.GYPPM2D2.js → chunk.SZIM4KFZ.js} +2 -2
  88. package/dist/esm/chunks/{chunk.UXQZFI55.js → chunk.THPU5KBV.js} +2 -2
  89. package/dist/esm/chunks/{chunk.K6VWRQWY.js → chunk.TXFYS6EU.js} +2 -2
  90. package/dist/esm/chunks/{chunk.ZLFH7VOM.js → chunk.V4RBOYNH.js} +2 -2
  91. package/dist/esm/chunks/chunk.WH6C36MO.js +7 -0
  92. package/dist/esm/chunks/chunk.WH6C36MO.js.map +7 -0
  93. package/dist/esm/chunks/{chunk.JRV5FYMW.js → chunk.YUAU5IWT.js} +2 -2
  94. package/dist/esm/chunks/{chunk.YSFUL5AD.js → chunk.YZLASVCK.js} +2 -2
  95. package/dist/esm/chunks/{chunk.R7MQKCHR.js → chunk.Z5TWWM7I.js} +2 -2
  96. package/dist/esm/color-picker/index.js +1 -1
  97. package/dist/esm/core/index.js +1 -1
  98. package/dist/esm/date-picker/index.js +1 -1
  99. package/dist/esm/date-range-picker/index.js +1 -1
  100. package/dist/esm/expansion-panel/index.js +1 -1
  101. package/dist/esm/file-picker/index.js +1 -1
  102. package/dist/esm/floating-action-button/index.js +1 -1
  103. package/dist/esm/focus-indicator/index.js +7 -0
  104. package/dist/esm/focus-indicator/index.js.map +7 -0
  105. package/dist/esm/icon/index.js +1 -1
  106. package/dist/esm/icon-button/index.js +1 -1
  107. package/dist/esm/index.js +1 -1
  108. package/dist/esm/list/index.js +1 -1
  109. package/dist/esm/list/list/index.js +1 -1
  110. package/dist/esm/list/list-item/index.js +1 -1
  111. package/dist/esm/list-dropdown/index.js +1 -1
  112. package/dist/esm/menu/index.js +1 -1
  113. package/dist/esm/open-icon/index.js +1 -1
  114. package/dist/esm/paginator/index.js +1 -1
  115. package/dist/esm/profile-card/index.js +1 -1
  116. package/dist/esm/quantity-field/index.js +1 -1
  117. package/dist/esm/radio/index.js +1 -1
  118. package/dist/esm/ripple/index.js +1 -1
  119. package/dist/esm/select/core/index.js +1 -1
  120. package/dist/esm/select/index.js +1 -1
  121. package/dist/esm/select/select/index.js +1 -1
  122. package/dist/esm/select/select-dropdown/index.js +1 -1
  123. package/dist/esm/slider/index.js +1 -1
  124. package/dist/esm/split-view/index.js +1 -1
  125. package/dist/esm/split-view/split-view/index.js +1 -1
  126. package/dist/esm/split-view/split-view-panel/index.js +1 -1
  127. package/dist/esm/stepper/index.js +1 -1
  128. package/dist/esm/stepper/step/index.js +1 -1
  129. package/dist/esm/stepper/stepper/index.js +1 -1
  130. package/dist/esm/switch/index.js +1 -1
  131. package/dist/esm/table/index.js +1 -1
  132. package/dist/esm/tabs/index.js +1 -1
  133. package/dist/esm/tabs/tab/index.js +1 -1
  134. package/dist/esm/tabs/tab-bar/index.js +1 -1
  135. package/dist/esm/time-picker/index.js +1 -1
  136. package/dist/esm/toast/index.js +1 -1
  137. package/esm/card/card-constants.d.ts +2 -2
  138. package/esm/card/card-constants.js +2 -2
  139. package/esm/card/card.d.ts +19 -8
  140. package/esm/card/card.js +30 -21
  141. package/esm/focus-indicator/focus-indicator-adapter.d.ts +37 -0
  142. package/esm/focus-indicator/focus-indicator-adapter.js +59 -0
  143. package/esm/focus-indicator/focus-indicator-constants.d.ts +15 -0
  144. package/esm/focus-indicator/focus-indicator-constants.js +19 -0
  145. package/esm/focus-indicator/focus-indicator-foundation.d.ts +43 -0
  146. package/esm/focus-indicator/focus-indicator-foundation.js +110 -0
  147. package/esm/focus-indicator/focus-indicator.d.ts +67 -0
  148. package/esm/focus-indicator/focus-indicator.js +112 -0
  149. package/esm/focus-indicator/index.d.ts +10 -0
  150. package/esm/focus-indicator/index.js +14 -0
  151. package/esm/index.d.ts +1 -0
  152. package/esm/index.js +3 -0
  153. package/esm/slider/slider-utils.js +3 -0
  154. package/esm/slider/slider.d.ts +0 -1
  155. package/esm/slider/slider.js +7 -4
  156. package/esm/split-view/split-view-panel/split-view-panel.js +1 -1
  157. package/esm/tabs/tab/tab-adapter.d.ts +15 -39
  158. package/esm/tabs/tab/tab-adapter.js +65 -78
  159. package/esm/tabs/tab/tab-constants.d.ts +13 -13
  160. package/esm/tabs/tab/tab-constants.js +18 -10
  161. package/esm/tabs/tab/tab-foundation.d.ts +24 -23
  162. package/esm/tabs/tab/tab-foundation.js +68 -62
  163. package/esm/tabs/tab/tab-ripple.d.ts +17 -0
  164. package/esm/tabs/tab/tab-ripple.js +33 -0
  165. package/esm/tabs/tab/tab.d.ts +56 -19
  166. package/esm/tabs/tab/tab.js +82 -32
  167. package/esm/tabs/tab-bar/tab-bar-adapter.d.ts +49 -87
  168. package/esm/tabs/tab-bar/tab-bar-adapter.js +114 -188
  169. package/esm/tabs/tab-bar/tab-bar-constants.d.ts +15 -45
  170. package/esm/tabs/tab-bar/tab-bar-constants.js +22 -56
  171. package/esm/tabs/tab-bar/tab-bar-foundation.d.ts +56 -65
  172. package/esm/tabs/tab-bar/tab-bar-foundation.js +241 -302
  173. package/esm/tabs/tab-bar/tab-bar.d.ts +51 -36
  174. package/esm/tabs/tab-bar/tab-bar.js +84 -52
  175. package/package.json +1 -1
  176. package/styles/card/_mixins.scss +8 -7
  177. package/styles/core/style-layer/tabs/tab/_core.scss +419 -0
  178. package/styles/core/style-layer/tabs/tab/_variables.scss +20 -0
  179. package/styles/core/style-layer/tabs/tab/index.scss +13 -0
  180. package/styles/core/style-layer/tabs/tab-bar/_core.scss +110 -0
  181. package/styles/core/style-layer/tabs/tab-bar/_variables.scss +9 -0
  182. package/styles/core/style-layer/tabs/tab-bar/index.scss +13 -0
  183. package/styles/focus-indicator/_mixins.scss +147 -0
  184. package/styles/focus-indicator/_variables.scss +20 -0
  185. package/styles/focus-indicator/focus-indicator.scss +32 -0
  186. package/styles/slider/_mixins.scss +9 -0
  187. package/styles/tabs/tab/_mixins.scss +55 -126
  188. package/styles/tabs/tab/_variables.scss +26 -4
  189. package/styles/tabs/tab/tab.scss +50 -11
  190. package/styles/tabs/tab-bar/_mixins.scss +20 -60
  191. package/styles/tabs/tab-bar/_variables.scss +11 -0
  192. package/styles/tabs/tab-bar/tab-bar.scss +29 -2
  193. package/dist/esm/chunks/chunk.4B22UXEH.js +0 -7
  194. package/dist/esm/chunks/chunk.4B22UXEH.js.map +0 -7
  195. package/dist/esm/chunks/chunk.4QPMNWJ3.js +0 -129
  196. package/dist/esm/chunks/chunk.4QPMNWJ3.js.map +0 -7
  197. package/dist/esm/chunks/chunk.BWZKQ6WX.js +0 -7
  198. package/dist/esm/chunks/chunk.BWZKQ6WX.js.map +0 -7
  199. package/dist/esm/chunks/chunk.D3IAEEPM.js +0 -201
  200. package/dist/esm/chunks/chunk.D3IAEEPM.js.map +0 -7
  201. package/dist/esm/chunks/chunk.NV4U4DE6.js +0 -12
  202. package/dist/esm/chunks/chunk.NV4U4DE6.js.map +0 -7
  203. /package/dist/esm/chunks/{chunk.Q6IP5GJ6.js.map → chunk.246JM2YT.js.map} +0 -0
  204. /package/dist/esm/chunks/{chunk.DHTAH23Y.js.map → chunk.24L5GDD2.js.map} +0 -0
  205. /package/dist/esm/chunks/{chunk.ZWTZJJ6H.js.map → chunk.2IQGDFQS.js.map} +0 -0
  206. /package/dist/esm/chunks/{chunk.DAGXGSX7.js.map → chunk.2LRDPTHK.js.map} +0 -0
  207. /package/dist/esm/chunks/{chunk.Q47M2LB5.js.map → chunk.2QFIMTVP.js.map} +0 -0
  208. /package/dist/esm/chunks/{chunk.IVB6XTHQ.js.map → chunk.2TQONIPK.js.map} +0 -0
  209. /package/dist/esm/chunks/{chunk.DXHKS7XO.js.map → chunk.2XFVFZ3P.js.map} +0 -0
  210. /package/dist/esm/chunks/{chunk.3ICROIFD.js.map → chunk.2YAU7AXH.js.map} +0 -0
  211. /package/dist/esm/chunks/{chunk.5B2CGITX.js.map → chunk.2YX7ASSX.js.map} +0 -0
  212. /package/dist/esm/chunks/{chunk.QLNGQCJX.js.map → chunk.2ZTERGYF.js.map} +0 -0
  213. /package/dist/esm/chunks/{chunk.Y2ANYRZH.js.map → chunk.4EB5NVCK.js.map} +0 -0
  214. /package/dist/esm/chunks/{chunk.SACZLJPQ.js.map → chunk.4LVS2EYJ.js.map} +0 -0
  215. /package/dist/esm/chunks/{chunk.E3VXLUEY.js.map → chunk.5IVB5L5Z.js.map} +0 -0
  216. /package/dist/esm/chunks/{chunk.GZZ6GFKT.js.map → chunk.5MK5YWCK.js.map} +0 -0
  217. /package/dist/esm/chunks/{chunk.QO37K76P.js.map → chunk.6SBTLXLH.js.map} +0 -0
  218. /package/dist/esm/chunks/{chunk.BTZF6QGA.js.map → chunk.7JQHQKXN.js.map} +0 -0
  219. /package/dist/esm/chunks/{chunk.TWV4OTF7.js.map → chunk.A5MBSCSQ.js.map} +0 -0
  220. /package/dist/esm/chunks/{chunk.4EF7UJDK.js.map → chunk.A5R7KUIP.js.map} +0 -0
  221. /package/dist/esm/chunks/{chunk.NQH4ZCXJ.js.map → chunk.AGMPIMJV.js.map} +0 -0
  222. /package/dist/esm/chunks/{chunk.PMY4KVCF.js.map → chunk.BKCEVPKW.js.map} +0 -0
  223. /package/dist/esm/chunks/{chunk.I5MLIFN5.js.map → chunk.BSTIDYQJ.js.map} +0 -0
  224. /package/dist/esm/chunks/{chunk.MZNL36GJ.js.map → chunk.CNQESSA3.js.map} +0 -0
  225. /package/dist/esm/chunks/{chunk.6FISJTFJ.js.map → chunk.E6KWYFZG.js.map} +0 -0
  226. /package/dist/esm/chunks/{chunk.H3SBIXK5.js.map → chunk.ECRL6O3V.js.map} +0 -0
  227. /package/dist/esm/chunks/{chunk.SBDWCXK3.js.map → chunk.ER52NFXX.js.map} +0 -0
  228. /package/dist/esm/chunks/{chunk.GSQF3ACL.js.map → chunk.EUE3OVC7.js.map} +0 -0
  229. /package/dist/esm/chunks/{chunk.DGNS4JNN.js.map → chunk.FAANPQES.js.map} +0 -0
  230. /package/dist/esm/chunks/{chunk.LMSXJOPL.js.map → chunk.GF2GUVYS.js.map} +0 -0
  231. /package/dist/esm/chunks/{chunk.QKRB6AIQ.js.map → chunk.GHSAKRYH.js.map} +0 -0
  232. /package/dist/esm/chunks/{chunk.JHTGKXXX.js.map → chunk.GJW4WS4I.js.map} +0 -0
  233. /package/dist/esm/chunks/{chunk.IW37LUQJ.js.map → chunk.GUYPITGA.js.map} +0 -0
  234. /package/dist/esm/chunks/{chunk.G75X57KY.js.map → chunk.HKJEGD6C.js.map} +0 -0
  235. /package/dist/esm/chunks/{chunk.3ARIVYGG.js.map → chunk.IGK3VYZG.js.map} +0 -0
  236. /package/dist/esm/chunks/{chunk.7MDHI4PT.js.map → chunk.JVW6JGV3.js.map} +0 -0
  237. /package/dist/esm/chunks/{chunk.LQ4RD7WW.js.map → chunk.MXNLCQRB.js.map} +0 -0
  238. /package/dist/esm/chunks/{chunk.DCCJTW7C.js.map → chunk.NDGFQILG.js.map} +0 -0
  239. /package/dist/esm/chunks/{chunk.PG4HEEX2.js.map → chunk.OTVT3XM2.js.map} +0 -0
  240. /package/dist/esm/chunks/{chunk.VSO5QDBV.js.map → chunk.P5QIB6OY.js.map} +0 -0
  241. /package/dist/esm/chunks/{chunk.XUV63FEH.js.map → chunk.PPPTT3SM.js.map} +0 -0
  242. /package/dist/esm/chunks/{chunk.GZRMHYID.js.map → chunk.QA3NU7EN.js.map} +0 -0
  243. /package/dist/esm/chunks/{chunk.MVYTV6WX.js.map → chunk.QYKO543K.js.map} +0 -0
  244. /package/dist/esm/chunks/{chunk.XI4RWFCG.js.map → chunk.RHYRMQS7.js.map} +0 -0
  245. /package/dist/esm/chunks/{chunk.Q4SCW4FN.js.map → chunk.RUSHOL23.js.map} +0 -0
  246. /package/dist/esm/chunks/{chunk.AD4CP4UK.js.map → chunk.SIJGKRYS.js.map} +0 -0
  247. /package/dist/esm/chunks/{chunk.RTMDWDS4.js.map → chunk.SYZB7B4F.js.map} +0 -0
  248. /package/dist/esm/chunks/{chunk.GYPPM2D2.js.map → chunk.SZIM4KFZ.js.map} +0 -0
  249. /package/dist/esm/chunks/{chunk.UXQZFI55.js.map → chunk.THPU5KBV.js.map} +0 -0
  250. /package/dist/esm/chunks/{chunk.K6VWRQWY.js.map → chunk.TXFYS6EU.js.map} +0 -0
  251. /package/dist/esm/chunks/{chunk.ZLFH7VOM.js.map → chunk.V4RBOYNH.js.map} +0 -0
  252. /package/dist/esm/chunks/{chunk.JRV5FYMW.js.map → chunk.YUAU5IWT.js.map} +0 -0
  253. /package/dist/esm/chunks/{chunk.YSFUL5AD.js.map → chunk.YZLASVCK.js.map} +0 -0
  254. /package/dist/esm/chunks/{chunk.R7MQKCHR.js.map → chunk.Z5TWWM7I.js.map} +0 -0
@@ -0,0 +1,147 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ @use 'sass:list';
7
+ @use '../theme/theme-values';
8
+ @use './variables';
9
+
10
+ @mixin provide-theme($theme) {
11
+ @each $key, $value in $theme {
12
+ @if list.index(variables.$supported-theme-properties, $key) == null {
13
+ @error 'Invalid theme property: #{$key}';
14
+ }
15
+ @if $value {
16
+ --forge-focus-indicator-#{$key}: #{$value};
17
+ }
18
+ }
19
+ }
20
+
21
+ @mixin configuration {
22
+ --_active-width: var(--forge-focus-indicator-active-width, 6px);
23
+ --_color: var(--forge-focus-indicator-color, var(--mdc-theme-primary, #{theme-values.$primary}));
24
+ --_duration: var(--forge-focus-indicator-duration, 600ms);
25
+ --_outward-offset: var(--forge-focus-indicator-outward-offset, 4px);
26
+ --_inward-offset: var(--forge-focus-indicator-inward-offset, 0px); // stylelint-disable-line length-zero-no-unit
27
+ --_shape: var(--forge-focus-indicator-shape, 1px);
28
+ --_width: var(--forge-focus-indicator-width, 3px);
29
+ --_easing: var(--forge-focus-indicator-easing, cubic-bezier(0.2, 0, 0, 1));
30
+ --_shape-start-start: var(--forge-focus-indicator-shape-start-start, var(--_shape));
31
+ --_shape-start-end: var(--forge-focus-indicator-shape-start-end, var(--_shape));
32
+ --_shape-end-start: var(--forge-focus-indicator-shape-end-start, var(--_shape));
33
+ --_shape-end-end: var(--forge-focus-indicator-shape-end-end, var(--_shape));
34
+ --_margin-block: var(--forge-focus-indicator-offset-block, 0);
35
+ --_margin-inline: var(--forge-focus-indicator-offset-inline, 0);
36
+ }
37
+
38
+ @mixin core-styles {
39
+ .forge-focus-indicator {
40
+ @include configuration;
41
+ @include base;
42
+ }
43
+
44
+ @include reduced-motion-styles;
45
+ @include keyframes;
46
+ }
47
+
48
+ @mixin outward-styles {
49
+ .forge-focus-indicator {
50
+ @include outward;
51
+ }
52
+ }
53
+
54
+ @mixin inward-styles {
55
+ .forge-focus-indicator {
56
+ @include inward;
57
+ }
58
+ }
59
+
60
+ @mixin active-styles {
61
+ .forge-focus-indicator {
62
+ @include active;
63
+ }
64
+ }
65
+
66
+ @mixin circular-styles {
67
+ .forge-focus-indicator {
68
+ --_shape: 50%;
69
+ }
70
+ }
71
+
72
+ @mixin reduced-motion-styles {
73
+ @media (prefers-reduced-motion) {
74
+ .forge-focus-indicator {
75
+ animation: none;
76
+ }
77
+ }
78
+ }
79
+
80
+ @mixin base {
81
+ animation-delay: 0s, calc(var(--_duration) * 0.25);
82
+ animation-duration: calc(var(--_duration) * 0.25), calc(var(--_duration) * 0.75);
83
+ animation-timing-function: var(--_easing);
84
+ box-sizing: border-box;
85
+ color: var(--_color);
86
+ display: none;
87
+ pointer-events: none;
88
+ position: absolute;
89
+ margin-block: var(--_margin-block);
90
+ margin-inline: var(--_margin-inline);
91
+ }
92
+
93
+ @mixin active {
94
+ display: flex;
95
+ }
96
+
97
+ @mixin outward {
98
+ animation-name: outward-grow, outward-shrink;
99
+ border-end-end-radius: calc(var(--_shape-end-end) + var(--_outward-offset));
100
+ border-end-start-radius: calc(var(--_shape-end-start) + var(--_outward-offset));
101
+ border-start-end-radius: calc(var(--_shape-start-end) + var(--_outward-offset));
102
+ border-start-start-radius: calc(var(--_shape-start-start) + var(--_outward-offset));
103
+ inset: calc(-1 * var(--_outward-offset));
104
+ outline: var(--_width) solid currentColor;
105
+ }
106
+
107
+ @mixin inward {
108
+ animation-name: inward-grow, inward-shrink;
109
+ border-end-end-radius: calc(var(--_shape-end-end) - var(--_inward-offset));
110
+ border-end-start-radius: calc(var(--_shape-end-start) - var(--_inward-offset));
111
+ border-start-end-radius: calc(var(--_shape-start-end) - var(--_inward-offset));
112
+ border-start-start-radius: calc(var(--_shape-start-start) - var(--_inward-offset));
113
+ border: var(--_width) solid currentColor;
114
+ inset: var(--_inward-offset);
115
+ }
116
+
117
+ @mixin keyframes {
118
+ @keyframes outward-grow {
119
+ from {
120
+ outline-width: 0;
121
+ }
122
+ to {
123
+ outline-width: var(--_active-width);
124
+ }
125
+ }
126
+
127
+ @keyframes outward-shrink {
128
+ from {
129
+ outline-width: var(--_active-width);
130
+ }
131
+ }
132
+
133
+ @keyframes inward-grow {
134
+ from {
135
+ border-width: 0;
136
+ }
137
+ to {
138
+ border-width: var(--_active-width);
139
+ }
140
+ }
141
+
142
+ @keyframes inward-shrink {
143
+ from {
144
+ border-width: var(--_active-width);
145
+ }
146
+ }
147
+ }
@@ -0,0 +1,20 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ $supported-theme-properties: (
7
+ 'active-width',
8
+ 'color',
9
+ 'duration',
10
+ 'outward-offset',
11
+ 'inward-offset',
12
+ 'shape',
13
+ 'width',
14
+ 'shape-start-start',
15
+ 'shape-start-end',
16
+ 'shape-end-end',
17
+ 'shape-end-start',
18
+ 'offset-block',
19
+ 'offset-inline'
20
+ );
@@ -0,0 +1,32 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ @use './mixins';
7
+
8
+ @include mixins.core-styles;
9
+
10
+ :host {
11
+ display: contents;
12
+ }
13
+
14
+ :host([hidden]) {
15
+ display: none;
16
+ }
17
+
18
+ :host([active]) {
19
+ @include mixins.active-styles;
20
+ }
21
+
22
+ :host(:not([inward])) {
23
+ @include mixins.outward-styles;
24
+ }
25
+
26
+ :host([inward]) {
27
+ @include mixins.inward-styles;
28
+ }
29
+
30
+ :host([circular]) {
31
+ @include mixins.circular-styles;
32
+ }
@@ -5,6 +5,7 @@
5
5
  */
6
6
  @use 'sass:list';
7
7
  @use '../core/style-layer/slider';
8
+ @use '../focus-indicator/mixins' as focus-indicator;
8
9
  @use './variables';
9
10
 
10
11
  @mixin provide-theme($theme) {
@@ -24,4 +25,12 @@
24
25
 
25
26
  @mixin core-styles {
26
27
  @include slider.styles;
28
+
29
+ forge-focus-indicator {
30
+ /* stylelint-disable length-zero-no-unit */
31
+ @include focus-indicator.provide-theme((
32
+ shape: 50%,
33
+ outward-offset: 0px
34
+ ));
35
+ }
27
36
  }
@@ -3,163 +3,92 @@
3
3
  * Copyright 2023 Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- @use '@material/theme/theme' as mdc-theme;
7
- @use '@material/typography/typography' as mdc-typography;
8
- @use '@material/ripple/ripple' as mdc-ripple;
9
- @use '@material/ripple/ripple-theme' as mdc-ripple-theme;
10
- @use '../../typography/mixins' as typography-mixins;
6
+ @use '../../core/style-layer/tabs/tab';
7
+ @use '../../focus-indicator/mixins' as focus-indicator;
11
8
  @use './variables';
12
9
 
13
- @mixin core-styles() {
14
- .forge-tab {
15
- @include base;
16
-
17
- &:disabled {
18
- @include disabled;
10
+ @mixin provide-theme($theme) {
11
+ @each $key, $value in $theme {
12
+ @if list.index(variables.$supported-theme-properties, $key) == null {
13
+ @error 'Invalid theme property: #{$key}';
19
14
  }
20
-
21
- // Firefox still draws a dotted border around focused buttons unless specifically overridden
22
- &::-moz-focus-inner {
23
- padding: 0;
24
- border: 0;
15
+ @if $value {
16
+ --#{tab.$prefix}-#{$key}: #{$value};
25
17
  }
18
+ }
19
+ }
26
20
 
27
- ::slotted([slot=top]) {
28
- @include top;
29
- }
21
+ @mixin core-styles {
22
+ @include tab.styles;
30
23
 
31
- ::slotted([slot=top]),
32
- ::slotted([slot=leading]),
33
- ::slotted([slot=trailing]) {
34
- @include icon-base;
35
- }
36
-
37
- ::slotted([slot=leading]),
38
- ::slotted([slot=trailing]) {
39
- padding: 0 8px;
40
- }
24
+ forge-focus-indicator {
25
+ @include focus-indicator.provide-theme(( shape: 8px ));
26
+ }
27
+ }
41
28
 
42
- &__content {
43
- @include content;
44
- }
29
+ @mixin focus-styles {
30
+ @include tab.focus-styles;
31
+ }
45
32
 
46
- &__text {
47
- @include text;
48
- }
49
-
50
- &--active {
51
- @include active;
52
-
53
- ::slotted([slot=top]),
54
- ::slotted([slot=leading]),
55
- ::slotted([slot=trailing]) {
56
- transition-delay: 100ms;
57
- }
58
- }
33
+ @mixin focus-selected-styles {
34
+ @include tab.focus-selected-styles;
35
+ }
59
36
 
60
- &__ripple {
61
- @include mdc-ripple.surface();
62
- @include mdc-ripple.radius-bounded();
63
- @include mdc-ripple-theme.states($color: primary);
64
-
65
- position: absolute;
66
- top: 0;
67
- left: 0;
68
- width: 100%;
69
- height: 100%;
70
- overflow: hidden;
71
- }
72
- }
37
+ @mixin pressed-styles {
38
+ @include tab.pressed-styles;
73
39
  }
74
40
 
75
- @mixin host() {
76
- display: inline-block;
41
+ @mixin pressed-selected-styles {
42
+ @include tab.pressed-selected-styles;
77
43
  }
78
44
 
79
- @mixin host-stretch() {
80
- flex: 1;
45
+ @mixin disabled-styles {
46
+ @include tab.disabled-styles;
81
47
  }
82
48
 
83
- @mixin base() {
84
- @include mdc-typography.typography(button);
85
- @include mdc-theme.property(color, text-secondary-on-light);
49
+ @mixin selected-styles {
50
+ @include tab.selected-styles;
51
+ @include tab.forced-colors-styles;
86
52
 
87
- position: relative;
88
- display: flex;
89
- flex-direction: column;
90
- flex: 1 0 auto;
91
- justify-content: center;
92
- align-items: center;
93
- box-sizing: border-box;
94
- margin: 0; // To override safari default margin for button elements
95
- padding-top: 0;
96
- padding-bottom: 0;
97
- border: none;
98
- outline: none;
99
- background: none;
100
- text-align: center;
101
- white-space: nowrap;
102
- cursor: pointer;
103
- -webkit-appearance: none;
104
- z-index: 1;
105
- padding-right: variables.$horizontal-padding;
106
- padding-left: variables.$horizontal-padding;
107
- height: 100%;
108
- width: 100%;
53
+ forge-focus-indicator {
54
+ @include focus-indicator.provide-theme((
55
+ 'offset-block': 0 calc(var(--_active-indicator-height) + 1px)
56
+ ));
57
+ }
109
58
  }
110
59
 
111
- @mixin disabled() {
112
- @include mdc-theme.property(color, text-disabled-on-background);
113
-
114
- cursor: not-allowed;
115
- pointer-events: none;
60
+ @mixin stacked-styles {
61
+ @include tab.stacked-styles;
116
62
  }
117
63
 
118
- @mixin top() {
119
- padding-top: variables.$stacked-padding;
64
+ @mixin secondary-styles {
65
+ @include tab.secondary-styles;
120
66
  }
121
67
 
122
- @mixin icon-base() {
123
- transition: 150ms color linear;
124
- fill: currentColor;
125
- width: 24px;
126
- height: 24px;
127
- font-size: 24px;
128
- z-index: 2;
68
+ @mixin vertical-styles {
69
+ @include tab.vertical-styles;
129
70
  }
130
71
 
131
- @mixin content() {
132
- position: relative;
133
- display: flex;
134
- align-items: center;
135
- justify-content: center;
136
- height: inherit;
137
- pointer-events: none;
72
+ @mixin vertical-primary-styles {
73
+ @include tab.vertical-primary-styles;
138
74
  }
139
75
 
140
- @mixin text() {
141
- transition: 150ms color linear;
142
- display: inline-block;
143
- line-height: 1;
144
- z-index: 2;
76
+ @mixin vertical-secondary-styles {
77
+ @include tab.vertical-secondary-styles;
145
78
  }
146
79
 
147
- @mixin active() {
148
- @include mdc-theme.property(color, primary);
80
+ @mixin vertical-inverted-styles {
81
+ @include tab.vertical-inverted-styles;
149
82
  }
150
83
 
151
- @mixin host-theme($theme, $properties) {
152
- :host([theme=#{$theme}]) {
153
- @include theme($theme, $properties);
154
- }
84
+ @mixin inverted-styles {
85
+ @include tab.inverted-styles;
155
86
  }
156
87
 
157
- @mixin theme($theme, $properties) {
158
- $defaultValue: map-get($properties, $theme);
159
- --mdc-theme-primary: var(--mdc-theme-#{$theme}, $defaultValue);
88
+ @mixin host {
89
+ @include tab.host;
90
+ }
160
91
 
161
- // IE support
162
- .forge-tab.forge-tab--active {
163
- color: $defaultValue;
164
- }
92
+ @mixin host-disabled {
93
+ @include tab.host-disabled;
165
94
  }
@@ -3,7 +3,29 @@
3
3
  * Copyright 2023 Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- $horizontal-padding: 24px !default;
7
- $height: 48px !default;
8
- $height-stacked: 72px !default;
9
- $stacked-padding: 8px !default;
6
+ $supported-theme-properties: (
7
+ 'indicator-color',
8
+ 'indicator-height',
9
+ 'indicator-shape',
10
+ 'container-color',
11
+ 'container-height',
12
+ 'shape',
13
+ 'height',
14
+ 'active-focus-icon-color',
15
+ 'active-hover-icon-color',
16
+ 'active-icon-color',
17
+ 'active-pressed-icon-color',
18
+ 'icon-size',
19
+ 'focus-icon-color',
20
+ 'hover-icon-color',
21
+ 'icon-color',
22
+ 'pressed-icon-color',
23
+ 'active-focus-label-text-color',
24
+ 'active-hover-label-text-color',
25
+ 'active-label-text-color',
26
+ 'active-pressed-label-text-color',
27
+ 'focus-label-text-color',
28
+ 'hover-label-text-color',
29
+ 'label-text-color',
30
+ 'pressed-label-text-color'
31
+ );
@@ -3,10 +3,7 @@
3
3
  * Copyright 2023 Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- @use '../../theme/theme-values';
7
6
  @use './mixins';
8
- @use '../../ripple/forge-ripple';
9
- @use '@material/tab-indicator/mdc-tab-indicator';
10
7
 
11
8
  @include mixins.core-styles;
12
9
 
@@ -18,13 +15,55 @@
18
15
  display: none;
19
16
  }
20
17
 
21
- :host([stretch]) {
22
- @include mixins.host-stretch;
18
+ :host(:focus) {
19
+ @include mixins.focus-styles;
23
20
  }
24
21
 
25
- @include mixins.host-theme(primary, theme-values.$mdc-property-values);
26
- @include mixins.host-theme(secondary, theme-values.$mdc-property-values);
27
- @include mixins.host-theme(warning, theme-values.$property-values);
28
- @include mixins.host-theme(success, theme-values.$property-values);
29
- @include mixins.host-theme(danger, theme-values.$property-values);
30
- @include mixins.host-theme(info, theme-values.$property-values);
22
+ :host(:active) {
23
+ @include mixins.pressed-styles;
24
+ }
25
+
26
+ :host([disabled]) {
27
+ @include mixins.host-disabled;
28
+ @include mixins.disabled-styles;
29
+ }
30
+
31
+ :host([selected]) {
32
+ @include mixins.selected-styles;
33
+ }
34
+
35
+ :host([selected]:focus) {
36
+ @include mixins.focus-selected-styles;
37
+ }
38
+
39
+ :host([selected]:active) {
40
+ @include mixins.pressed-selected-styles;
41
+ }
42
+
43
+ :host([stacked]) {
44
+ @include mixins.stacked-styles;
45
+ }
46
+
47
+ :host([secondary]) {
48
+ @include mixins.secondary-styles;
49
+ }
50
+
51
+ :host([vertical]) {
52
+ @include mixins.vertical-styles;
53
+ }
54
+
55
+ :host([vertical][secondary]) {
56
+ @include mixins.vertical-secondary-styles;
57
+ }
58
+
59
+ :host([vertical]:not([secondary])) {
60
+ @include mixins.vertical-primary-styles;
61
+ }
62
+
63
+ :host([inverted]) {
64
+ @include mixins.inverted-styles;
65
+ }
66
+
67
+ :host([inverted][vertical]) {
68
+ @include mixins.vertical-inverted-styles;
69
+ }
@@ -3,76 +3,36 @@
3
3
  * Copyright 2023 Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
- @use '../../theme';
7
- @use '../tab/variables';
6
+ @use '../../core/style-layer/tabs/tab-bar';
7
+ @use './variables';
8
8
 
9
- @mixin core-styles() {
10
- .forge-tab-bar {
11
- @include base;
12
-
13
- &--underlined {
14
- &::after {
15
- @include theme.property(border-bottom-color, border-color);
16
-
17
- content: '';
18
- border-bottom-width: 1px;
19
- border-bottom-style: solid;
20
- box-sizing: border-box;
21
- width: 100%;
22
- position: absolute;
23
- bottom: 0;
24
- left: 0;
25
- right: 0;
26
- }
27
- }
28
-
29
- &--align-center {
30
- .mdc-tab-scroller__scroll-content {
31
- justify-content: center;
32
- }
9
+ @mixin provide-theme($theme) {
10
+ @each $key, $value in $theme {
11
+ @if list.index(variables.$supported-theme-properties, $key) == null {
12
+ @error 'Invalid theme property: #{$key}';
33
13
  }
34
-
35
- &--align-end {
36
- .mdc-tab-scroller__scroll-content {
37
- justify-content: flex-end;
38
- }
39
- }
40
-
41
- &--stacked {
42
- @include stacked;
43
-
44
- .mdc-tab-scroller {
45
- height: 100%;
46
- }
47
- }
48
- }
49
-
50
- .mdc-tab-scroller {
51
- z-index: 1;
52
- width: 100%;
53
-
54
- &__scroll-area {
55
- height: 100%;
56
- overflow-x: auto;
57
- scrollbar-width: none; // Hide scrollbar in Firefox
14
+ @if $value {
15
+ --#{tab-bar.$prefix}-#{$key}: #{$value};
58
16
  }
59
17
  }
60
18
  }
61
19
 
62
- @mixin host() {
63
- display: block;
64
- overflow: hidden;
20
+ @mixin host {
21
+ @include tab-bar.host;
65
22
  }
66
23
 
67
- @mixin base() {
68
- @include theme.css-custom-property(height, --forge-tab-bar-height, variables.$height);
24
+ @mixin core-styles {
25
+ @include tab-bar.styles;
26
+ }
69
27
 
70
- display: flex;
71
- position: relative;
28
+ @mixin vertical-styles {
29
+ @include tab-bar.vertical-styles;
72
30
  }
73
31
 
74
- @mixin stacked() {
75
- @include theme.css-custom-property(height, --forge-tab-bar-height, variables.$height-stacked);
32
+ @mixin inverted-styles {
33
+ @include tab-bar.inverted-styles;
34
+ }
76
35
 
77
- align-items: center;
36
+ @mixin inverted-vertical-styles {
37
+ @include tab-bar.inverted-vertical-styles;
78
38
  }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Tyler Technologies, Inc.
4
+ * License: Apache-2.0
5
+ */
6
+ $supported-theme-properties: (
7
+ 'justify',
8
+ 'stretch',
9
+ 'underline-color',
10
+ 'underline-thickness'
11
+ );