@tylertech/forge 2.17.0 → 2.18.1

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 (180) hide show
  1. package/custom-elements.json +178 -10
  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/calendar/index.js +1 -1
  13. package/dist/esm/chip-field/index.js +1 -1
  14. package/dist/esm/chips/chip/index.js +1 -1
  15. package/dist/esm/chips/chip-set/index.js +1 -1
  16. package/dist/esm/chips/index.js +1 -1
  17. package/dist/esm/chunks/{chunk.S2N5KJ7S.js → chunk.23QPY6PU.js} +2 -2
  18. package/dist/esm/chunks/{chunk.65II7E54.js → chunk.2NA4LVTZ.js} +2 -2
  19. package/dist/esm/chunks/{chunk.NOO2ZZKZ.js → chunk.3DYMGITQ.js} +2 -2
  20. package/dist/esm/chunks/{chunk.UW2HWAVL.js → chunk.42QTJZSF.js} +2 -2
  21. package/dist/esm/chunks/{chunk.LLK7YGQW.js → chunk.54KXJVRY.js} +2 -2
  22. package/dist/esm/chunks/{chunk.BKAZC53W.js → chunk.55HRCXPA.js} +2 -2
  23. package/dist/esm/chunks/{chunk.T6NVM7TN.js → chunk.67G7HT5S.js} +2 -2
  24. package/dist/esm/chunks/{chunk.AEKZWVNO.js → chunk.7G53ACL4.js} +2 -2
  25. package/dist/esm/chunks/{chunk.AEKZWVNO.js.map → chunk.7G53ACL4.js.map} +3 -3
  26. package/dist/esm/chunks/{chunk.YMBLWKRP.js → chunk.7IHNVPY5.js} +2 -2
  27. package/dist/esm/chunks/{chunk.RGAPFLQE.js → chunk.7LX3X2DU.js} +2 -2
  28. package/dist/esm/chunks/{chunk.XFAOB6LU.js → chunk.7NHFZL6J.js} +2 -2
  29. package/dist/esm/chunks/{chunk.D24CE6KE.js → chunk.AZFF62ZK.js} +2 -2
  30. package/dist/esm/chunks/chunk.BINM3NUA.js +7 -0
  31. package/dist/esm/chunks/chunk.BINM3NUA.js.map +7 -0
  32. package/dist/esm/chunks/{chunk.IWMA7NUU.js → chunk.D43PPRFO.js} +2 -2
  33. package/dist/esm/chunks/{chunk.SATUJNQX.js → chunk.ETJMASRZ.js} +2 -2
  34. package/dist/esm/chunks/{chunk.FOLQAW63.js → chunk.F7ZYEFH5.js} +2 -2
  35. package/dist/esm/chunks/chunk.GBUXAJPY.js +7 -0
  36. package/dist/esm/chunks/chunk.GBUXAJPY.js.map +7 -0
  37. package/dist/esm/chunks/{chunk.6CAOHLX6.js → chunk.GEWDZDXN.js} +2 -2
  38. package/dist/esm/chunks/{chunk.6CAOHLX6.js.map → chunk.GEWDZDXN.js.map} +2 -2
  39. package/dist/esm/chunks/{chunk.MSFGXRCM.js → chunk.IV2GMOPB.js} +2 -2
  40. package/dist/esm/chunks/chunk.IWICN773.js +7 -0
  41. package/dist/esm/chunks/chunk.IWICN773.js.map +7 -0
  42. package/dist/esm/chunks/{chunk.H4ZMVM5H.js → chunk.J2FXLTZT.js} +2 -2
  43. package/dist/esm/chunks/{chunk.H4ZMVM5H.js.map → chunk.J2FXLTZT.js.map} +1 -1
  44. package/dist/esm/chunks/{chunk.HTH3CEDN.js → chunk.J2PHUKSR.js} +2 -2
  45. package/dist/esm/chunks/{chunk.BKNYDA4V.js → chunk.JCDIPDQR.js} +2 -2
  46. package/dist/esm/chunks/{chunk.BAVLVCGK.js → chunk.JOLJ7WVN.js} +2 -2
  47. package/dist/esm/chunks/{chunk.BAVLVCGK.js.map → chunk.JOLJ7WVN.js.map} +2 -2
  48. package/dist/esm/chunks/chunk.KCC3C3WH.js +7 -0
  49. package/dist/esm/chunks/chunk.KCC3C3WH.js.map +7 -0
  50. package/dist/esm/chunks/{chunk.XIZILH2M.js → chunk.KNVCEYY2.js} +2 -2
  51. package/dist/esm/chunks/chunk.KQK2XX5H.js +7 -0
  52. package/dist/esm/chunks/chunk.KQK2XX5H.js.map +7 -0
  53. package/dist/esm/chunks/{chunk.PYXKGV4Z.js → chunk.MXVJSEF3.js} +2 -2
  54. package/dist/esm/chunks/{chunk.PYXKGV4Z.js.map → chunk.MXVJSEF3.js.map} +2 -2
  55. package/dist/esm/chunks/{chunk.SQTM36C3.js → chunk.N6XHXCZE.js} +2 -2
  56. package/dist/esm/chunks/{chunk.AB5XER3E.js → chunk.NOXJK2U7.js} +2 -2
  57. package/dist/esm/chunks/{chunk.JDLEPQKN.js → chunk.OEZZ2NEY.js} +2 -2
  58. package/dist/esm/chunks/{chunk.MS77SPS4.js → chunk.QZ2NXIGY.js} +2 -2
  59. package/dist/esm/chunks/{chunk.MS77SPS4.js.map → chunk.QZ2NXIGY.js.map} +2 -2
  60. package/dist/esm/chunks/{chunk.CG5CVENX.js → chunk.RLWX5BFQ.js} +2 -2
  61. package/dist/esm/chunks/{chunk.274MFEUZ.js → chunk.SFTWKDQV.js} +2 -2
  62. package/dist/esm/chunks/{chunk.Q5YD3PKM.js → chunk.TH7RLTJK.js} +2 -2
  63. package/dist/esm/chunks/{chunk.USXO7YKN.js → chunk.TOM77CWD.js} +2 -2
  64. package/dist/esm/chunks/chunk.U773QUMB.js +12 -0
  65. package/dist/esm/chunks/{chunk.K6LBO4KJ.js → chunk.UVL4TIK2.js} +2 -2
  66. package/dist/esm/chunks/chunk.WOTVTBJS.js +7 -0
  67. package/dist/esm/chunks/chunk.WOTVTBJS.js.map +7 -0
  68. package/dist/esm/chunks/chunk.WPJEXVHM.js +7 -0
  69. package/dist/esm/chunks/{chunk.NQZXAC65.js.map → chunk.WPJEXVHM.js.map} +2 -2
  70. package/dist/esm/chunks/{chunk.NX4EECNP.js → chunk.XTMXGKUO.js} +2 -2
  71. package/dist/esm/chunks/{chunk.2DAPNN6B.js → chunk.Y2I2VRMF.js} +2 -2
  72. package/dist/esm/chunks/{chunk.ERO7T6WC.js → chunk.Z4HBPQ42.js} +2 -2
  73. package/dist/esm/color-picker/index.js +1 -1
  74. package/dist/esm/date-picker/index.js +1 -1
  75. package/dist/esm/date-range-picker/index.js +1 -1
  76. package/dist/esm/expansion-panel/index.js +1 -1
  77. package/dist/esm/icon/index.js +1 -1
  78. package/dist/esm/icon-button/index.js +1 -1
  79. package/dist/esm/index.js +1 -1
  80. package/dist/esm/keyboard-shortcut/index.js +1 -1
  81. package/dist/esm/list-dropdown/index.js +1 -1
  82. package/dist/esm/menu/index.js +1 -1
  83. package/dist/esm/open-icon/index.js +1 -1
  84. package/dist/esm/paginator/index.js +1 -1
  85. package/dist/esm/profile-card/index.js +1 -1
  86. package/dist/esm/quantity-field/index.js +1 -1
  87. package/dist/esm/select/core/index.js +1 -1
  88. package/dist/esm/select/index.js +1 -1
  89. package/dist/esm/select/option/index.js +1 -1
  90. package/dist/esm/select/select/index.js +1 -1
  91. package/dist/esm/select/select-dropdown/index.js +1 -1
  92. package/dist/esm/split-view/index.js +1 -1
  93. package/dist/esm/split-view/split-view/index.js +1 -1
  94. package/dist/esm/split-view/split-view-panel/index.js +1 -1
  95. package/dist/esm/stepper/index.js +1 -1
  96. package/dist/esm/stepper/step/index.js +1 -1
  97. package/dist/esm/stepper/stepper/index.js +1 -1
  98. package/dist/esm/table/index.js +1 -1
  99. package/dist/esm/tabs/index.js +1 -1
  100. package/dist/esm/tabs/tab-bar/index.js +1 -1
  101. package/dist/esm/time-picker/index.js +1 -1
  102. package/dist/esm/toast/index.js +1 -1
  103. package/esm/autocomplete/autocomplete-constants.d.ts +3 -0
  104. package/esm/autocomplete/autocomplete-foundation.d.ts +3 -1
  105. package/esm/autocomplete/autocomplete-foundation.js +14 -0
  106. package/esm/autocomplete/autocomplete.d.ts +7 -1
  107. package/esm/autocomplete/autocomplete.js +7 -0
  108. package/esm/calendar/calendar-foundation.js +6 -0
  109. package/esm/chip-field/chip-field-adapter.js +1 -1
  110. package/esm/chip-field/chip-field.js +2 -2
  111. package/esm/date-picker/base/base-date-picker-foundation.js +1 -1
  112. package/esm/date-range-picker/date-range-picker-foundation.js +2 -2
  113. package/esm/icon/icon-adapter.d.ts +0 -2
  114. package/esm/icon/icon-adapter.js +4 -5
  115. package/esm/icon/icon-foundation.js +0 -1
  116. package/esm/keyboard-shortcut/keyboard-shortcut-constants.d.ts +1 -0
  117. package/esm/keyboard-shortcut/keyboard-shortcut-foundation.d.ts +6 -0
  118. package/esm/keyboard-shortcut/keyboard-shortcut-foundation.js +9 -0
  119. package/esm/keyboard-shortcut/keyboard-shortcut.d.ts +4 -0
  120. package/esm/keyboard-shortcut/keyboard-shortcut.js +3 -0
  121. package/esm/list-dropdown/list-dropdown-constants.d.ts +4 -0
  122. package/esm/list-dropdown/list-dropdown-utils.js +14 -3
  123. package/esm/paginator/paginator-adapter.d.ts +2 -0
  124. package/esm/paginator/paginator-adapter.js +57 -0
  125. package/esm/select/core/base-select-adapter.js +3 -0
  126. package/esm/select/option/option-constants.d.ts +1 -0
  127. package/esm/select/option/option-constants.js +1 -0
  128. package/esm/select/option/option-foundation.d.ts +13 -0
  129. package/esm/select/option/option-foundation.js +28 -0
  130. package/esm/select/option/option.d.ts +7 -0
  131. package/esm/select/option/option.js +13 -0
  132. package/esm/split-view/split-view-panel/split-view-panel.js +1 -1
  133. package/esm/time-picker/time-picker-foundation.js +3 -3
  134. package/package.json +1 -1
  135. package/styles/chip-field/_base.scss +1 -0
  136. package/styles/chip-field/_selector.scss +2 -2
  137. package/dist/esm/chunks/chunk.A4UN74PV.js +0 -7
  138. package/dist/esm/chunks/chunk.A4UN74PV.js.map +0 -7
  139. package/dist/esm/chunks/chunk.FFVZ6JMP.js +0 -7
  140. package/dist/esm/chunks/chunk.FFVZ6JMP.js.map +0 -7
  141. package/dist/esm/chunks/chunk.IMEODSRH.js +0 -7
  142. package/dist/esm/chunks/chunk.IMEODSRH.js.map +0 -7
  143. package/dist/esm/chunks/chunk.NQZXAC65.js +0 -7
  144. package/dist/esm/chunks/chunk.S2YVOMLW.js +0 -7
  145. package/dist/esm/chunks/chunk.S2YVOMLW.js.map +0 -7
  146. package/dist/esm/chunks/chunk.S7ZU6JKB.js +0 -7
  147. package/dist/esm/chunks/chunk.S7ZU6JKB.js.map +0 -7
  148. package/dist/esm/chunks/chunk.W3GR3VDN.js +0 -12
  149. package/dist/esm/chunks/chunk.XY45YU7I.js +0 -7
  150. package/dist/esm/chunks/chunk.XY45YU7I.js.map +0 -7
  151. /package/dist/esm/chunks/{chunk.S2N5KJ7S.js.map → chunk.23QPY6PU.js.map} +0 -0
  152. /package/dist/esm/chunks/{chunk.65II7E54.js.map → chunk.2NA4LVTZ.js.map} +0 -0
  153. /package/dist/esm/chunks/{chunk.NOO2ZZKZ.js.map → chunk.3DYMGITQ.js.map} +0 -0
  154. /package/dist/esm/chunks/{chunk.UW2HWAVL.js.map → chunk.42QTJZSF.js.map} +0 -0
  155. /package/dist/esm/chunks/{chunk.LLK7YGQW.js.map → chunk.54KXJVRY.js.map} +0 -0
  156. /package/dist/esm/chunks/{chunk.BKAZC53W.js.map → chunk.55HRCXPA.js.map} +0 -0
  157. /package/dist/esm/chunks/{chunk.T6NVM7TN.js.map → chunk.67G7HT5S.js.map} +0 -0
  158. /package/dist/esm/chunks/{chunk.YMBLWKRP.js.map → chunk.7IHNVPY5.js.map} +0 -0
  159. /package/dist/esm/chunks/{chunk.RGAPFLQE.js.map → chunk.7LX3X2DU.js.map} +0 -0
  160. /package/dist/esm/chunks/{chunk.XFAOB6LU.js.map → chunk.7NHFZL6J.js.map} +0 -0
  161. /package/dist/esm/chunks/{chunk.D24CE6KE.js.map → chunk.AZFF62ZK.js.map} +0 -0
  162. /package/dist/esm/chunks/{chunk.IWMA7NUU.js.map → chunk.D43PPRFO.js.map} +0 -0
  163. /package/dist/esm/chunks/{chunk.SATUJNQX.js.map → chunk.ETJMASRZ.js.map} +0 -0
  164. /package/dist/esm/chunks/{chunk.FOLQAW63.js.map → chunk.F7ZYEFH5.js.map} +0 -0
  165. /package/dist/esm/chunks/{chunk.MSFGXRCM.js.map → chunk.IV2GMOPB.js.map} +0 -0
  166. /package/dist/esm/chunks/{chunk.HTH3CEDN.js.map → chunk.J2PHUKSR.js.map} +0 -0
  167. /package/dist/esm/chunks/{chunk.BKNYDA4V.js.map → chunk.JCDIPDQR.js.map} +0 -0
  168. /package/dist/esm/chunks/{chunk.XIZILH2M.js.map → chunk.KNVCEYY2.js.map} +0 -0
  169. /package/dist/esm/chunks/{chunk.SQTM36C3.js.map → chunk.N6XHXCZE.js.map} +0 -0
  170. /package/dist/esm/chunks/{chunk.AB5XER3E.js.map → chunk.NOXJK2U7.js.map} +0 -0
  171. /package/dist/esm/chunks/{chunk.JDLEPQKN.js.map → chunk.OEZZ2NEY.js.map} +0 -0
  172. /package/dist/esm/chunks/{chunk.CG5CVENX.js.map → chunk.RLWX5BFQ.js.map} +0 -0
  173. /package/dist/esm/chunks/{chunk.274MFEUZ.js.map → chunk.SFTWKDQV.js.map} +0 -0
  174. /package/dist/esm/chunks/{chunk.Q5YD3PKM.js.map → chunk.TH7RLTJK.js.map} +0 -0
  175. /package/dist/esm/chunks/{chunk.USXO7YKN.js.map → chunk.TOM77CWD.js.map} +0 -0
  176. /package/dist/esm/chunks/{chunk.W3GR3VDN.js.map → chunk.U773QUMB.js.map} +0 -0
  177. /package/dist/esm/chunks/{chunk.K6LBO4KJ.js.map → chunk.UVL4TIK2.js.map} +0 -0
  178. /package/dist/esm/chunks/{chunk.NX4EECNP.js.map → chunk.XTMXGKUO.js.map} +0 -0
  179. /package/dist/esm/chunks/{chunk.2DAPNN6B.js.map → chunk.Y2I2VRMF.js.map} +0 -0
  180. /package/dist/esm/chunks/{chunk.ERO7T6WC.js.map → chunk.Z4HBPQ42.js.map} +0 -0
@@ -10,8 +10,8 @@ import { ChipFieldFoundation } from './chip-field-foundation';
10
10
  import { CHIP_FIELD_CONSTANTS } from './chip-field-constants';
11
11
  import { ChipComponent } from '../chips';
12
12
  import { FieldComponent } from '../field/field';
13
- const template = '<template><div class=\"forge-chip-field__wrapper\" part=\"root\"><div class=\"forge-chip-field forge-field\" part=\"container\"><slot name=\"leading\"></slot><div class=\"forge-field__label-input-container\" part=\"label-input-container\"><slot name=\"label\"></slot><div class=\"forge-field__input-container\" part=\"input-container\"><slot name=\"member\"></slot><slot></slot></div></div><slot name=\"trailing\"></slot><div class=\"forge-field__addon-end-container\" part=\"addon-end-container\"><slot name=\"addon-end\"></slot></div></div><slot name=\"helper-text\"></slot></div></template>';
14
- const styles = '.forge-field::before{content:\"\";display:-webkit-box;display:flex;position:absolute;top:0;right:0;left:0;z-index:-1;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;max-width:100%;height:100%;pointer-events:none;border-style:solid;border-style:var(--forge-chip-field-border-style,solid);border-width:1px;-webkit-transition:border-color .2s 0s cubic-bezier(0, 0, .2, 1);transition:border-color .2s 0s cubic-bezier(0, 0, .2, 1);background-color:transparent;background-color:var(--forge-chip-field-theme-background,transparent);text-align:left}.forge-field[dir=rtl]::before,[dir=rtl] .forge-field::before{text-align:right}.forge-field:not(.forge-field--disabled):not(.forge-field--invalid):not(.forge-field--focused)::before{border-color:rgba(0,0,0,.38);border-color:var(--mdc-theme-text-icon-on-background,rgba(0,0,0,.38))}.forge-field:not(.forge-field--disabled):not(.forge-field--invalid):not(.forge-field--focused):hover::before{border-color:rgba(0,0,0,.87);border-color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87))}.forge-field--focused:not(.forge-field--invalid):not(.forge-field--disabled)::before{border-color:#3f51b5;border-color:var(--mdc-theme-primary,#3f51b5)}.forge-field--invalid:not(.forge-field--disabled)::before{border-color:#b00020;border-color:var(--mdc-theme-error,#b00020)}.forge-field--invalid:not(.forge-field--disabled):not(.forge-field--focused):hover::before{border-color:#db8a98;border-color:var(--forge-theme-error-hover,#db8a98)}.forge-field--disabled::before{border-color:rgba(0,0,0,.12);border-color:var(--mdc-theme-text-disabled-on-background,rgba(0,0,0,.12))}.forge-field:not(.forge-field--shape-rounded){border-radius:4px}.forge-field:not(.forge-field--shape-rounded)::before{border-radius:4px}.forge-field--shape-rounded{border-radius:28px}.forge-field--shape-rounded::before{border-radius:28px}.forge-field--disabled::before{background-color:#f5f5f5;background-color:var(--forge-theme-form-field-disabled-on-background,#f5f5f5)}.forge-field--focused::before{border-color:#3f51b5;border-color:var(--mdc-theme-primary,#3f51b5);border-width:2px}.forge-field__label-input-container{position:relative;-webkit-box-flex:1;flex:1 1 0.0001px;height:100%;display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;-webkit-box-align:center;align-items:center;min-width:0}.forge-field ::slotted(label){color:rgba(0,0,0,.65);color:var(--forge-theme-form-field-label-on-background,rgba(0,0,0,.65));pointer-events:none;right:0;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-weight:400;font-weight:var(--mdc-typography-subtitle1-font-weight,400);letter-spacing:.009375em;letter-spacing:var(--mdc-typography-subtitle1-letter-spacing, .009375em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-subtitle1-text-decoration,inherit);text-decoration:var(--mdc-typography-subtitle1-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-subtitle1-text-transform,inherit);font-size:var(--mdc-typography-subtitle1-font-size, 1rem);position:absolute;left:0;-webkit-transform-origin:left top;transform-origin:left top;line-height:1.1rem;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:text;overflow:hidden;will-change:transform;-webkit-transition:color 150ms cubic-bezier(.4, 0, .2, 1),-webkit-transform 150ms cubic-bezier(.4, 0, .2, 1);transition:color 150ms cubic-bezier(.4, 0, .2, 1),-webkit-transform 150ms cubic-bezier(.4, 0, .2, 1);transition:transform 150ms cubic-bezier(.4, 0, .2, 1),color 150ms cubic-bezier(.4, 0, .2, 1);transition:transform 150ms cubic-bezier(.4, 0, .2, 1),color 150ms cubic-bezier(.4, 0, .2, 1),-webkit-transform 150ms cubic-bezier(.4, 0, .2, 1)}.forge-field ::slotted(label[dir=rtl]),[dir=rtl] .forge-field ::slotted(label){right:0;left:auto;-webkit-transform-origin:right top;transform-origin:right top;text-align:right}.forge-field--dense:not(.forge-field--roomy) ::slotted(label){display:none}.forge-field--required ::slotted(label)::after{content:none}.forge-field--required ::slotted(label)::before{color:#b00020;color:var(--mdc-theme-error,#b00020);content:\"*\";margin-right:4px}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted(label){font-size:1rem}.forge-field--roomy:not(.forge-field--dense) ::slotted(label){font-size:1rem}.forge-field--disabled ::slotted(label){color:rgba(0,0,0,.38);color:var(--forge-theme-label-disabled-on-background,rgba(0,0,0,.38))}.forge-field--invalid:not(.forge-field--disabled) ::slotted(label){color:#b00020;color:var(--mdc-theme-error,#b00020)}.forge-field--focused:not(.forge-field--invalid):not(.forge-field--disabled) ::slotted(label){color:#3f51b5;color:var(--mdc-theme-primary,#3f51b5)}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted(label){top:1rem}.forge-field--roomy:not(.forge-field--dense) ::slotted(label){top:1.285rem}.forge-field:not(.forge-field--shape-rounded):not(.forge-field--leading) ::slotted(label){left:12px!important}.forge-field--shape-rounded:not(.forge-field--leading) ::slotted(label){left:32px!important}.forge-field:not(.forge-field--trailing):not(.forge-field--addon-end):not(.forge-field--shape-rounded) ::slotted(label){padding-right:12px}.forge-field:not(.forge-field--trailing):not(.forge-field--addon-end).forge-field--shape-rounded ::slotted(label){padding-right:32px}.forge-field ::slotted(label.forge-floating-label--float-above){color:rgba(0,0,0,.65);color:var(--forge-theme-form-field-label-on-background,rgba(0,0,0,.65))}.forge-field--disabled ::slotted(label.forge-floating-label--float-above){color:rgba(0,0,0,.6);color:var(--forge-theme-form-field-text-disabled-on-background,rgba(0,0,0,.6))}.forge-field--invalid:not(.forge-field--disabled) ::slotted(label.forge-floating-label--float-above){color:#b00020;color:var(--mdc-theme-error,#b00020)}.forge-field--focused:not(.forge-field--invalid):not(.forge-field--disabled) ::slotted(label.forge-floating-label--float-above){color:#3f51b5;color:var(--mdc-theme-primary,#3f51b5)}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted(label.forge-floating-label--float-above){-webkit-transform:translateY(-.54rem) scale(.8125);transform:translateY(-.54rem) scale(.8125);cursor:auto}.forge-field--roomy:not(.forge-field--dense) ::slotted(label.forge-floating-label--float-above){-webkit-transform:translateY(-.72rem) scale(.8125);transform:translateY(-.72rem) scale(.8125);cursor:auto}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted(label.forge-floating-label--float-above.forge-floating-label--float-above-end-keyframe){-webkit-transition:none;transition:none;font-size:.8125rem;-webkit-transform:translateY(-.62rem) scale(1);transform:translateY(-.62rem) scale(1);cursor:auto}.forge-field--roomy:not(.forge-field--dense) ::slotted(label.forge-floating-label--float-above.forge-floating-label--float-above-end-keyframe){-webkit-transition:none;transition:none;font-size:.8125rem;-webkit-transform:translateY(-.8rem) scale(1);transform:translateY(-.8rem) scale(1);cursor:auto}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted(label.forge-floating-label--unfloat-above-start-keyframe){-webkit-transition:none;transition:none;font-size:1rem;-webkit-transform:translateY(-.62rem) scale(.8125);transform:translateY(-.62rem) scale(.8125);cursor:auto}.forge-field--roomy:not(.forge-field--dense) ::slotted(label.forge-floating-label--unfloat-above-start-keyframe){-webkit-transition:none;transition:none;font-size:1rem;-webkit-transform:translateY(-.8rem) scale(.8125);transform:translateY(-.8rem) scale(.8125);cursor:auto}.forge-field~::slotted([slot=helper-text]){-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));line-height:1.25rem;line-height:var(--mdc-typography-caption-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-caption-font-weight,400);letter-spacing:.0333333333em;letter-spacing:var(--mdc-typography-caption-letter-spacing, .0333333333em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-caption-text-transform,inherit);display:block;min-height:1.5rem;line-height:normal;padding-top:4px;-webkit-box-sizing:border-box;box-sizing:border-box}.forge-field:not(.forge-field--dense):not(.forge-field--roomy)~::slotted([slot=helper-text]){font-size:.75rem}.forge-field--roomy:not(.forge-field--dense)~::slotted([slot=helper-text]){font-size:.875rem}.forge-field--dense:not(.forge-field--roomy)~::slotted([slot=helper-text]){font-size:.75rem}.forge-field~::slotted([slot=helper-text]){color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54))}.forge-field--invalid:not(.forge-field--disabled)~::slotted([slot=helper-text]){color:#b00020;color:var(--mdc-theme-error,#b00020)}.forge-field:not(.forge-field--shape-rounded)~::slotted([slot=helper-text]){margin-left:12px}.forge-field--shape-rounded~::slotted([slot=helper-text]){margin-left:32px}.forge-field ::slotted([slot=leading]){display:-webkit-box;display:flex;align-self:center}.forge-field:not(.forge-field--disabled):not(.forge-field--invalid) ::slotted([slot=leading]){color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54))}.forge-field--invalid:not(.forge-field--disabled) ::slotted([slot=leading]){color:#b00020;color:var(--mdc-theme-error,#b00020)}.forge-field--disabled ::slotted([slot=leading]){color:rgba(0,0,0,.38);color:var(--mdc-theme-text-disabled-on-light,rgba(0,0,0,.38));cursor:not-allowed;pointer-events:none}.forge-field ::slotted([slot=leading]){margin:0 4px}.forge-field ::slotted([slot=leading]:not(forge-icon-button)){padding:6px}.forge-field ::slotted([slot=trailing]){align-self:center}.forge-field:not(.forge-field--disabled):not(.forge-field--invalid) ::slotted([slot=trailing]){color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54))}.forge-field--invalid:not(.forge-field--disabled) ::slotted([slot=trailing]){color:#b00020;color:var(--mdc-theme-error,#b00020)}.forge-field--disabled ::slotted([slot=trailing]){color:rgba(0,0,0,.38);color:var(--mdc-theme-text-disabled-on-light,rgba(0,0,0,.38));cursor:not-allowed;pointer-events:none}.forge-field ::slotted([slot=trailing]){margin:0 4px}.forge-field ::slotted([slot=trailing]:not(forge-icon-button)){padding:6px}.forge-field__addon-end-container{display:none}.forge-field--addon-end .forge-field__addon-end-container{height:100%;width:auto;display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center;padding:0 4px;border-left-width:1px;border-left-style:solid;-webkit-transition:border-left-color .2s 0s cubic-bezier(0, 0, .2, 1);transition:border-left-color .2s 0s cubic-bezier(0, 0, .2, 1)}.forge-field:not(.forge-field--disabled):not(.forge-field--focused):not(.forge-field--invalid) .forge-field__addon-end-container{border-left-color:rgba(0,0,0,.54);border-left-color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54))}.forge-field:not(.forge-field--disabled):not(.forge-field--focused):not(.forge-field--invalid) .forge-field__addon-end-container:hover{border-left-color:rgba(0,0,0,.87);border-left-color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87))}.forge-field.forge-field--focused:not(.forge-field--invalid):not(.forge-field--disabled) .forge-field__addon-end-container{border-left-color:#3f51b5;border-left-color:var(--mdc-theme-primary,#3f51b5)}.forge-field.forge-field--invalid:not(.forge-field--disabled) .forge-field__addon-end-container{border-left-color:#b00020;border-left-color:var(--mdc-theme-error,#b00020)}.forge-field.forge-field--invalid:not(.forge-field--focused):not(.forge-field--disabled) .forge-field__addon-end-container:hover{border-left-color:#db8a98;border-left-color:var(--forge-theme-error-hover,#db8a98)}.forge-field.forge-field--disabled .forge-field__addon-end-container{border-left-color:rgba(0,0,0,.12);border-left-color:var(--mdc-theme-text-disabled-on-background,rgba(0,0,0,.12))}.forge-field:not(.forge-field--disabled):not(.forge-field--invalid) ::slotted([slot=addon-end]){color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54))}.forge-field--invalid:not(.forge-field--disabled) ::slotted([slot=addon-end]){color:#b00020;color:var(--mdc-theme-error,#b00020)}.forge-field--disabled ::slotted([slot=addon-end]){color:rgba(0,0,0,.38);color:var(--mdc-theme-text-disabled-on-light,rgba(0,0,0,.38));cursor:not-allowed;pointer-events:none}.forge-chip-field{-webkit-box-sizing:border-box;box-sizing:border-box;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;position:relative;z-index:1;z-index:var(--forge-z-index-surface,1);margin-top:0;margin-top:var(--forge-chip-field-margin-top,0);display:grid;grid-template-columns:[leading] -webkit-min-content [input] 1fr [trailing] -webkit-min-content [addon-end] -webkit-min-content [end];grid-template-columns:[leading] min-content [input] 1fr [trailing] min-content [addon-end] min-content [end]}.forge-chip-field.forge-field--disabled{background-color:#f5f5f5;background-color:var(--forge-theme-form-field-disabled-on-background,#f5f5f5);cursor:not-allowed}.forge-chip-field:not(.forge-field--dense):not(.forge-field--roomy){height:auto;min-height:46px;min-height:var(--forge-chip-field-height,46px)}.forge-chip-field.forge-field--roomy:not(.forge-field--dense){height:auto;min-height:3.5rem;min-height:var(--forge-chip-field-height,3.5rem)}.forge-chip-field.forge-field--dense:not(.forge-field--roomy){height:auto;min-height:1.5rem;min-height:var(--forge-chip-field-height,1.5rem)}.forge-field__label-input-container{grid-column-start:input;grid-column-end:trailing}.forge-field__input-container{-webkit-box-flex:1;flex:1 1 0.0001px;display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;flex-wrap:wrap;-webkit-box-align:start;align-items:flex-start;-webkit-box-sizing:border-box;box-sizing:border-box}.forge-field__input-container{padding:2px 12px}.forge-field--label .forge-field__input-container{padding-top:22px}.forge-field--roomy.forge-field--label .forge-field__input-container{padding-top:22px}.forge-field--shape-rounded:not(.forge-field--leading) .forge-field__input-container{padding-left:32px}.forge-field--leading:not(.forge-field--shape-rounded) .forge-field__input-container{padding-left:0}.forge-field--shape-rounded.forge-field--leading .forge-field__input-container{padding-left:0}.forge-field--label .forge-field__input-container{padding-bottom:2px}.forge-field--roomy.forge-field--label .forge-field__input-container{padding-bottom:2px}.forge-field--shape-rounded:not(.forge-field--trailing):not(.forge-field--addon-end) .forge-field__input-container{padding-right:32px}.forge-field--addon-end:not(.forge-field--shape-rounded) .forge-field__input-container,.forge-field--trailing:not(.forge-field--shape-rounded) .forge-field__input-container{padding-right:0}.forge-field--shape-rounded.forge-field--addon-end .forge-field__input-container,.forge-field--shape-rounded.forge-field--trailing .forge-field__input-container{padding-right:0}.forge-field ::slotted([slot=member]){display:block}.forge-field--disabled ::slotted([slot=member]){--mdc-theme-primary:rgba(0, 0, 0, 0.38);--mdc-theme-primary:var(--mdc-theme-text-disabled-on-light, rgba(0, 0, 0, 0.38));cursor:not-allowed;pointer-events:none}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted([slot=member]){margin:2px 8px 2px 0}.forge-field--roomy:not(.forge-field--dense) ::slotted([slot=member]){margin:6px 12px 6px 0}.forge-field--dense:not(.forge-field--roomy) ::slotted([slot=member]){margin:2px 6px 2px 0}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted([slot=member]){--forge-chip-min-height:20px}.forge-field--dense:not(.forge-field--roomy) ::slotted([slot=member]){--forge-chip-min-height:16px}.forge-field ::slotted(input){-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-body1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-weight:400;font-weight:var(--mdc-typography-body1-font-weight,400);letter-spacing:.03125em;letter-spacing:var(--mdc-typography-body1-letter-spacing, .03125em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-body1-text-decoration,inherit);text-decoration:var(--mdc-typography-body1-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-body1-text-transform,inherit);align-self:flex-end;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:100%;-webkit-transition:opacity 150ms 0s cubic-bezier(.4, 0, .2, 1);transition:opacity 150ms 0s cubic-bezier(.4, 0, .2, 1);border:none;background:0 0;-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:0;line-height:normal;min-width:0}.forge-field ::slotted(input)::-webkit-input-placeholder{color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54));font-size:.875rem}.forge-field ::slotted(input)::-moz-placeholder{color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54));font-size:.875rem}.forge-field ::slotted(input):-ms-input-placeholder{color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54));font-size:.875rem}.forge-field ::slotted(input)::-ms-input-placeholder{color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54));font-size:.875rem}.forge-field ::slotted(input)::placeholder{color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54));font-size:.875rem}.forge-field ::slotted(input):invalid{-webkit-box-shadow:none;box-shadow:none}.forge-field ::slotted(input):-webkit-autofill{z-index:auto!important}.forge-field:not(.forge-field--disabled) ::slotted(input){color:rgba(0,0,0,.87);color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87))}.forge-field--disabled ::slotted(input){color:rgba(0,0,0,.6);color:var(--forge-theme-form-field-text-disabled-on-background,rgba(0,0,0,.6));cursor:not-allowed}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted(input){font-size:1rem;font-size:var(--forge-chip-field-font-size, 1rem)}.forge-field--roomy:not(.forge-field--dense) ::slotted(input){font-size:1rem;font-size:var(--forge-chip-field-font-size, 1rem)}.forge-field--dense:not(.forge-field--roomy) ::slotted(input){font-size:.875rem;font-size:var(--forge-chip-field-font-size, .875rem)}.forge-field ::slotted(input){-webkit-box-flex:1;flex:1 1 0.0001px;min-width:40px;display:block;align-self:flex-start;padding:0}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted(input){margin:4px 0}.forge-field--roomy:not(.forge-field--dense) ::slotted(input){margin:6px 0}.forge-field--dense:not(.forge-field--roomy) ::slotted(input){margin:2px 0}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted(input){height:1rem;line-height:1rem}.forge-field--roomy:not(.forge-field--dense) ::slotted(input){height:1.25rem;line-height:1.25rem}.forge-field--dense:not(.forge-field--roomy) ::slotted(input){height:1rem;line-height:1rem}.forge-field ::slotted([slot=leading]){grid-column-start:leading;grid-column-end:input;align-self:flex-start}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted([slot=leading]){margin-top:5px;margin-bottom:5px}.forge-field--roomy:not(.forge-field--dense) ::slotted([slot=leading]){margin-top:10px;margin-bottom:10px}.forge-field--dense:not(.forge-field--roomy) ::slotted([slot=leading]){margin-top:0;margin-bottom:0}.forge-field--dense:not(.forge-field--roomy) ::slotted([slot=leading]){padding-top:0;padding-bottom:0}.forge-field ::slotted([slot=trailing]){grid-column-start:trailing;grid-column-end:addon-end;display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start;align-self:flex-start}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted([slot=trailing]){margin-top:5px;margin-bottom:5px}.forge-field--roomy:not(.forge-field--dense) ::slotted([slot=trailing]){margin-top:10px;margin-bottom:10px}.forge-field--dense:not(.forge-field--roomy) ::slotted([slot=trailing]){margin-top:0;margin-bottom:0}.forge-field--dense:not(.forge-field--roomy) ::slotted([slot=trailing]){padding-top:0;padding-bottom:0}.forge-field--addon-end .forge-field__addon-end-container{grid-column-start:addon-end;grid-column-end:end;display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start;align-self:flex-start}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted([slot=addon-end]){margin-top:5px;margin-bottom:5px}.forge-field--roomy:not(.forge-field--dense) ::slotted([slot=addon-end]){margin-top:10px;margin-bottom:10px}.forge-field--dense:not(.forge-field--roomy) ::slotted([slot=addon-end]){margin-top:0;margin-bottom:0}.forge-field ::slotted(forge-icon-button){display:-webkit-inline-box!important;display:inline-flex!important}:host{display:block;contain:layout}:host([hidden]){display:none}';
13
+ const template = '<template><div class=\"forge-chip-field__wrapper\" part=\"root\"><div class=\"forge-chip-field forge-field\" part=\"container\"><div class=\"forge-field__leading-container\" part=\"leading-container\"><slot name=\"leading\"></slot></div><div class=\"forge-field__label-input-container\" part=\"label-input-container\"><slot name=\"label\"></slot><div class=\"forge-field__input-container\" part=\"input-container\"><slot name=\"member\"></slot><slot></slot></div></div><div class=\"forge-field__trailing-container\" part=\"trailing-container\"><slot name=\"trailing\"></slot></div><div class=\"forge-field__addon-end-container\" part=\"addon-end-container\"><slot name=\"addon-end\"></slot></div></div><slot name=\"helper-text\"></slot></div></template>';
14
+ const styles = '.forge-field::before{content:\"\";display:-webkit-box;display:flex;position:absolute;top:0;right:0;left:0;z-index:-1;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;max-width:100%;height:100%;pointer-events:none;border-style:solid;border-style:var(--forge-chip-field-border-style,solid);border-width:1px;-webkit-transition:border-color .2s 0s cubic-bezier(0, 0, .2, 1);transition:border-color .2s 0s cubic-bezier(0, 0, .2, 1);background-color:transparent;background-color:var(--forge-chip-field-theme-background,transparent);text-align:left}.forge-field[dir=rtl]::before,[dir=rtl] .forge-field::before{text-align:right}.forge-field:not(.forge-field--disabled):not(.forge-field--invalid):not(.forge-field--focused)::before{border-color:rgba(0,0,0,.38);border-color:var(--mdc-theme-text-icon-on-background,rgba(0,0,0,.38))}.forge-field:not(.forge-field--disabled):not(.forge-field--invalid):not(.forge-field--focused):hover::before{border-color:rgba(0,0,0,.87);border-color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87))}.forge-field--focused:not(.forge-field--invalid):not(.forge-field--disabled)::before{border-color:#3f51b5;border-color:var(--mdc-theme-primary,#3f51b5)}.forge-field--invalid:not(.forge-field--disabled)::before{border-color:#b00020;border-color:var(--mdc-theme-error,#b00020)}.forge-field--invalid:not(.forge-field--disabled):not(.forge-field--focused):hover::before{border-color:#db8a98;border-color:var(--forge-theme-error-hover,#db8a98)}.forge-field--disabled::before{border-color:rgba(0,0,0,.12);border-color:var(--mdc-theme-text-disabled-on-background,rgba(0,0,0,.12))}.forge-field:not(.forge-field--shape-rounded){border-radius:4px}.forge-field:not(.forge-field--shape-rounded)::before{border-radius:4px}.forge-field--shape-rounded{border-radius:28px}.forge-field--shape-rounded::before{border-radius:28px}.forge-field--disabled::before{background-color:#f5f5f5;background-color:var(--forge-theme-form-field-disabled-on-background,#f5f5f5)}.forge-field--focused::before{border-color:#3f51b5;border-color:var(--mdc-theme-primary,#3f51b5);border-width:2px}.forge-field__label-input-container{position:relative;-webkit-box-flex:1;flex:1 1 0.0001px;height:100%;display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;-webkit-box-align:center;align-items:center;min-width:0}.forge-field ::slotted(label){color:rgba(0,0,0,.65);color:var(--forge-theme-form-field-label-on-background,rgba(0,0,0,.65));pointer-events:none;right:0;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-subtitle1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-weight:400;font-weight:var(--mdc-typography-subtitle1-font-weight,400);letter-spacing:.009375em;letter-spacing:var(--mdc-typography-subtitle1-letter-spacing, .009375em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-subtitle1-text-decoration,inherit);text-decoration:var(--mdc-typography-subtitle1-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-subtitle1-text-transform,inherit);font-size:var(--mdc-typography-subtitle1-font-size, 1rem);position:absolute;left:0;-webkit-transform-origin:left top;transform-origin:left top;line-height:1.1rem;text-align:left;text-overflow:ellipsis;white-space:nowrap;cursor:text;overflow:hidden;will-change:transform;-webkit-transition:color 150ms cubic-bezier(.4, 0, .2, 1),-webkit-transform 150ms cubic-bezier(.4, 0, .2, 1);transition:color 150ms cubic-bezier(.4, 0, .2, 1),-webkit-transform 150ms cubic-bezier(.4, 0, .2, 1);transition:transform 150ms cubic-bezier(.4, 0, .2, 1),color 150ms cubic-bezier(.4, 0, .2, 1);transition:transform 150ms cubic-bezier(.4, 0, .2, 1),color 150ms cubic-bezier(.4, 0, .2, 1),-webkit-transform 150ms cubic-bezier(.4, 0, .2, 1)}.forge-field ::slotted(label[dir=rtl]),[dir=rtl] .forge-field ::slotted(label){right:0;left:auto;-webkit-transform-origin:right top;transform-origin:right top;text-align:right}.forge-field--dense:not(.forge-field--roomy) ::slotted(label){display:none}.forge-field--required ::slotted(label)::after{content:none}.forge-field--required ::slotted(label)::before{color:#b00020;color:var(--mdc-theme-error,#b00020);content:\"*\";margin-right:4px}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted(label){font-size:1rem}.forge-field--roomy:not(.forge-field--dense) ::slotted(label){font-size:1rem}.forge-field--disabled ::slotted(label){color:rgba(0,0,0,.38);color:var(--forge-theme-label-disabled-on-background,rgba(0,0,0,.38))}.forge-field--invalid:not(.forge-field--disabled) ::slotted(label){color:#b00020;color:var(--mdc-theme-error,#b00020)}.forge-field--focused:not(.forge-field--invalid):not(.forge-field--disabled) ::slotted(label){color:#3f51b5;color:var(--mdc-theme-primary,#3f51b5)}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted(label){top:1rem}.forge-field--roomy:not(.forge-field--dense) ::slotted(label){top:1.285rem}.forge-field:not(.forge-field--shape-rounded):not(.forge-field--leading) ::slotted(label){left:12px!important}.forge-field--shape-rounded:not(.forge-field--leading) ::slotted(label){left:32px!important}.forge-field:not(.forge-field--trailing):not(.forge-field--addon-end):not(.forge-field--shape-rounded) ::slotted(label){padding-right:12px}.forge-field:not(.forge-field--trailing):not(.forge-field--addon-end).forge-field--shape-rounded ::slotted(label){padding-right:32px}.forge-field ::slotted(label.forge-floating-label--float-above){color:rgba(0,0,0,.65);color:var(--forge-theme-form-field-label-on-background,rgba(0,0,0,.65))}.forge-field--disabled ::slotted(label.forge-floating-label--float-above){color:rgba(0,0,0,.6);color:var(--forge-theme-form-field-text-disabled-on-background,rgba(0,0,0,.6))}.forge-field--invalid:not(.forge-field--disabled) ::slotted(label.forge-floating-label--float-above){color:#b00020;color:var(--mdc-theme-error,#b00020)}.forge-field--focused:not(.forge-field--invalid):not(.forge-field--disabled) ::slotted(label.forge-floating-label--float-above){color:#3f51b5;color:var(--mdc-theme-primary,#3f51b5)}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted(label.forge-floating-label--float-above){-webkit-transform:translateY(-.54rem) scale(.8125);transform:translateY(-.54rem) scale(.8125);cursor:auto}.forge-field--roomy:not(.forge-field--dense) ::slotted(label.forge-floating-label--float-above){-webkit-transform:translateY(-.72rem) scale(.8125);transform:translateY(-.72rem) scale(.8125);cursor:auto}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted(label.forge-floating-label--float-above.forge-floating-label--float-above-end-keyframe){-webkit-transition:none;transition:none;font-size:.8125rem;-webkit-transform:translateY(-.62rem) scale(1);transform:translateY(-.62rem) scale(1);cursor:auto}.forge-field--roomy:not(.forge-field--dense) ::slotted(label.forge-floating-label--float-above.forge-floating-label--float-above-end-keyframe){-webkit-transition:none;transition:none;font-size:.8125rem;-webkit-transform:translateY(-.8rem) scale(1);transform:translateY(-.8rem) scale(1);cursor:auto}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted(label.forge-floating-label--unfloat-above-start-keyframe){-webkit-transition:none;transition:none;font-size:1rem;-webkit-transform:translateY(-.62rem) scale(.8125);transform:translateY(-.62rem) scale(.8125);cursor:auto}.forge-field--roomy:not(.forge-field--dense) ::slotted(label.forge-floating-label--unfloat-above-start-keyframe){-webkit-transition:none;transition:none;font-size:1rem;-webkit-transform:translateY(-.8rem) scale(.8125);transform:translateY(-.8rem) scale(.8125);cursor:auto}.forge-field~::slotted([slot=helper-text]){-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-caption-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));line-height:1.25rem;line-height:var(--mdc-typography-caption-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-caption-font-weight,400);letter-spacing:.0333333333em;letter-spacing:var(--mdc-typography-caption-letter-spacing, .0333333333em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-decoration:var(--mdc-typography-caption-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-caption-text-transform,inherit);display:block;min-height:1.5rem;line-height:normal;padding-top:4px;-webkit-box-sizing:border-box;box-sizing:border-box}.forge-field:not(.forge-field--dense):not(.forge-field--roomy)~::slotted([slot=helper-text]){font-size:.75rem}.forge-field--roomy:not(.forge-field--dense)~::slotted([slot=helper-text]){font-size:.875rem}.forge-field--dense:not(.forge-field--roomy)~::slotted([slot=helper-text]){font-size:.75rem}.forge-field~::slotted([slot=helper-text]){color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54))}.forge-field--invalid:not(.forge-field--disabled)~::slotted([slot=helper-text]){color:#b00020;color:var(--mdc-theme-error,#b00020)}.forge-field:not(.forge-field--shape-rounded)~::slotted([slot=helper-text]){margin-left:12px}.forge-field--shape-rounded~::slotted([slot=helper-text]){margin-left:32px}.forge-field ::slotted([slot=leading]){display:-webkit-box;display:flex;align-self:center}.forge-field:not(.forge-field--disabled):not(.forge-field--invalid) ::slotted([slot=leading]){color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54))}.forge-field--invalid:not(.forge-field--disabled) ::slotted([slot=leading]){color:#b00020;color:var(--mdc-theme-error,#b00020)}.forge-field--disabled ::slotted([slot=leading]){color:rgba(0,0,0,.38);color:var(--mdc-theme-text-disabled-on-light,rgba(0,0,0,.38));cursor:not-allowed;pointer-events:none}.forge-field ::slotted([slot=leading]){margin:0 4px}.forge-field ::slotted([slot=leading]:not(forge-icon-button)){padding:6px}.forge-field ::slotted([slot=trailing]){align-self:center}.forge-field:not(.forge-field--disabled):not(.forge-field--invalid) ::slotted([slot=trailing]){color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54))}.forge-field--invalid:not(.forge-field--disabled) ::slotted([slot=trailing]){color:#b00020;color:var(--mdc-theme-error,#b00020)}.forge-field--disabled ::slotted([slot=trailing]){color:rgba(0,0,0,.38);color:var(--mdc-theme-text-disabled-on-light,rgba(0,0,0,.38));cursor:not-allowed;pointer-events:none}.forge-field ::slotted([slot=trailing]){margin:0 4px}.forge-field ::slotted([slot=trailing]:not(forge-icon-button)){padding:6px}.forge-field__addon-end-container{display:none}.forge-field--addon-end .forge-field__addon-end-container{height:100%;width:auto;display:-webkit-box;display:flex;-webkit-box-pack:center;justify-content:center;-webkit-box-align:center;align-items:center;padding:0 4px;border-left-width:1px;border-left-style:solid;-webkit-transition:border-left-color .2s 0s cubic-bezier(0, 0, .2, 1);transition:border-left-color .2s 0s cubic-bezier(0, 0, .2, 1)}.forge-field:not(.forge-field--disabled):not(.forge-field--focused):not(.forge-field--invalid) .forge-field__addon-end-container{border-left-color:rgba(0,0,0,.54);border-left-color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54))}.forge-field:not(.forge-field--disabled):not(.forge-field--focused):not(.forge-field--invalid) .forge-field__addon-end-container:hover{border-left-color:rgba(0,0,0,.87);border-left-color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87))}.forge-field.forge-field--focused:not(.forge-field--invalid):not(.forge-field--disabled) .forge-field__addon-end-container{border-left-color:#3f51b5;border-left-color:var(--mdc-theme-primary,#3f51b5)}.forge-field.forge-field--invalid:not(.forge-field--disabled) .forge-field__addon-end-container{border-left-color:#b00020;border-left-color:var(--mdc-theme-error,#b00020)}.forge-field.forge-field--invalid:not(.forge-field--focused):not(.forge-field--disabled) .forge-field__addon-end-container:hover{border-left-color:#db8a98;border-left-color:var(--forge-theme-error-hover,#db8a98)}.forge-field.forge-field--disabled .forge-field__addon-end-container{border-left-color:rgba(0,0,0,.12);border-left-color:var(--mdc-theme-text-disabled-on-background,rgba(0,0,0,.12))}.forge-field:not(.forge-field--disabled):not(.forge-field--invalid) ::slotted([slot=addon-end]){color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54))}.forge-field--invalid:not(.forge-field--disabled) ::slotted([slot=addon-end]){color:#b00020;color:var(--mdc-theme-error,#b00020)}.forge-field--disabled ::slotted([slot=addon-end]){color:rgba(0,0,0,.38);color:var(--mdc-theme-text-disabled-on-light,rgba(0,0,0,.38));cursor:not-allowed;pointer-events:none}.forge-chip-field{-webkit-box-sizing:border-box;box-sizing:border-box;display:-webkit-box;display:flex;-webkit-box-align:center;align-items:center;position:relative;z-index:1;z-index:var(--forge-z-index-surface,1);margin-top:0;margin-top:var(--forge-chip-field-margin-top,0);display:grid;grid-template-columns:[leading] -webkit-min-content [input] 1fr [trailing] -webkit-min-content [addon-end] -webkit-min-content [end];grid-template-columns:[leading] min-content [input] 1fr [trailing] min-content [addon-end] min-content [end]}.forge-chip-field.forge-field--disabled{background-color:#f5f5f5;background-color:var(--forge-theme-form-field-disabled-on-background,#f5f5f5);cursor:not-allowed}.forge-chip-field:not(.forge-field--dense):not(.forge-field--roomy){height:auto;min-height:46px;min-height:var(--forge-chip-field-height,46px)}.forge-chip-field.forge-field--roomy:not(.forge-field--dense){height:auto;min-height:3.5rem;min-height:var(--forge-chip-field-height,3.5rem)}.forge-chip-field.forge-field--dense:not(.forge-field--roomy){height:auto;min-height:1.5rem;min-height:var(--forge-chip-field-height,1.5rem)}.forge-field__label-input-container{grid-column-start:input;grid-column-end:trailing}.forge-field__input-container{-webkit-box-flex:1;flex:1 1 0.0001px;display:-webkit-box;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;flex-direction:row;flex-wrap:wrap;-webkit-box-align:start;align-items:flex-start;-webkit-box-sizing:border-box;box-sizing:border-box}.forge-field__input-container{padding:2px 12px}.forge-field--label .forge-field__input-container{padding-top:22px}.forge-field--roomy.forge-field--label .forge-field__input-container{padding-top:22px}.forge-field--shape-rounded:not(.forge-field--leading) .forge-field__input-container{padding-left:32px}.forge-field--leading:not(.forge-field--shape-rounded) .forge-field__input-container{padding-left:0}.forge-field--shape-rounded.forge-field--leading .forge-field__input-container{padding-left:0}.forge-field--label .forge-field__input-container{padding-bottom:2px}.forge-field--roomy.forge-field--label .forge-field__input-container{padding-bottom:2px}.forge-field--shape-rounded:not(.forge-field--trailing):not(.forge-field--addon-end) .forge-field__input-container{padding-right:32px}.forge-field--addon-end:not(.forge-field--shape-rounded) .forge-field__input-container,.forge-field--trailing:not(.forge-field--shape-rounded) .forge-field__input-container{padding-right:0}.forge-field--shape-rounded.forge-field--addon-end .forge-field__input-container,.forge-field--shape-rounded.forge-field--trailing .forge-field__input-container{padding-right:0}.forge-field ::slotted([slot=member]){display:block}.forge-field--disabled ::slotted([slot=member]){--mdc-theme-primary:rgba(0, 0, 0, 0.38);--mdc-theme-primary:var(--mdc-theme-text-disabled-on-light, rgba(0, 0, 0, 0.38));cursor:not-allowed;pointer-events:none}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted([slot=member]){margin:2px 8px 2px 0}.forge-field--roomy:not(.forge-field--dense) ::slotted([slot=member]){margin:6px 12px 6px 0}.forge-field--dense:not(.forge-field--roomy) ::slotted([slot=member]){margin:2px 6px 2px 0}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted([slot=member]){--forge-chip-min-height:20px}.forge-field--dense:not(.forge-field--roomy) ::slotted([slot=member]){--forge-chip-min-height:16px}.forge-field ::slotted(input){-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto,sans-serif;font-family:var(--mdc-typography-body1-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-weight:400;font-weight:var(--mdc-typography-body1-font-weight,400);letter-spacing:.03125em;letter-spacing:var(--mdc-typography-body1-letter-spacing, .03125em);text-decoration:inherit;-webkit-text-decoration:var(--mdc-typography-body1-text-decoration,inherit);text-decoration:var(--mdc-typography-body1-text-decoration,inherit);text-transform:inherit;text-transform:var(--mdc-typography-body1-text-transform,inherit);align-self:flex-end;-webkit-box-sizing:border-box;box-sizing:border-box;width:100%;height:100%;-webkit-transition:opacity 150ms 0s cubic-bezier(.4, 0, .2, 1);transition:opacity 150ms 0s cubic-bezier(.4, 0, .2, 1);border:none;background:0 0;-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:0;line-height:normal;min-width:0}.forge-field ::slotted(input)::-webkit-input-placeholder{color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54));font-size:.875rem}.forge-field ::slotted(input)::-moz-placeholder{color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54));font-size:.875rem}.forge-field ::slotted(input):-ms-input-placeholder{color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54));font-size:.875rem}.forge-field ::slotted(input)::-ms-input-placeholder{color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54));font-size:.875rem}.forge-field ::slotted(input)::placeholder{color:rgba(0,0,0,.54);color:var(--mdc-theme-text-secondary-on-background,rgba(0,0,0,.54));font-size:.875rem}.forge-field ::slotted(input):invalid{-webkit-box-shadow:none;box-shadow:none}.forge-field ::slotted(input):-webkit-autofill{z-index:auto!important}.forge-field:not(.forge-field--disabled) ::slotted(input){color:rgba(0,0,0,.87);color:var(--mdc-theme-text-primary-on-background,rgba(0,0,0,.87))}.forge-field--disabled ::slotted(input){color:rgba(0,0,0,.6);color:var(--forge-theme-form-field-text-disabled-on-background,rgba(0,0,0,.6));cursor:not-allowed}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted(input){font-size:1rem;font-size:var(--forge-chip-field-font-size, 1rem)}.forge-field--roomy:not(.forge-field--dense) ::slotted(input){font-size:1rem;font-size:var(--forge-chip-field-font-size, 1rem)}.forge-field--dense:not(.forge-field--roomy) ::slotted(input){font-size:.875rem;font-size:var(--forge-chip-field-font-size, .875rem)}.forge-field ::slotted(input){-webkit-box-flex:1;flex:1 1 0.0001px;min-width:40px;display:block;align-self:flex-start;padding:0}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted(input){margin:4px 0}.forge-field--roomy:not(.forge-field--dense) ::slotted(input){margin:6px 0}.forge-field--dense:not(.forge-field--roomy) ::slotted(input){margin:2px 0}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted(input){height:1rem;line-height:1rem}.forge-field--roomy:not(.forge-field--dense) ::slotted(input){height:1.25rem;line-height:1.25rem}.forge-field--dense:not(.forge-field--roomy) ::slotted(input){height:1rem;line-height:1rem}.forge-field--leading .forge-field__leading-container{grid-column-start:leading;grid-column-end:input;align-self:flex-start;display:-webkit-box;display:flex}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted([slot=leading]){margin-top:5px;margin-bottom:5px}.forge-field--roomy:not(.forge-field--dense) ::slotted([slot=leading]){margin-top:10px;margin-bottom:10px}.forge-field--dense:not(.forge-field--roomy) ::slotted([slot=leading]){margin-top:0;margin-bottom:0}.forge-field--dense:not(.forge-field--roomy) ::slotted([slot=leading]){padding-top:0;padding-bottom:0}.forge-field--trailing .forge-field__trailing-container{grid-column-start:trailing;grid-column-end:addon-end;display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start;align-self:flex-start}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted([slot=trailing]){margin-top:5px;margin-bottom:5px}.forge-field--roomy:not(.forge-field--dense) ::slotted([slot=trailing]){margin-top:10px;margin-bottom:10px}.forge-field--dense:not(.forge-field--roomy) ::slotted([slot=trailing]){margin-top:0;margin-bottom:0}.forge-field--dense:not(.forge-field--roomy) ::slotted([slot=trailing]){padding-top:0;padding-bottom:0}.forge-field--addon-end .forge-field__addon-end-container{grid-column-start:addon-end;grid-column-end:end;display:-webkit-box;display:flex;-webkit-box-align:start;align-items:flex-start;align-self:flex-start}.forge-field:not(.forge-field--dense):not(.forge-field--roomy) ::slotted([slot=addon-end]){margin-top:5px;margin-bottom:5px}.forge-field--roomy:not(.forge-field--dense) ::slotted([slot=addon-end]){margin-top:10px;margin-bottom:10px}.forge-field--dense:not(.forge-field--roomy) ::slotted([slot=addon-end]){margin-top:0;margin-bottom:0}.forge-field ::slotted(forge-icon-button){display:-webkit-inline-box!important;display:inline-flex!important}:host{display:block;contain:layout}:host([hidden]){display:none}';
15
15
  /**
16
16
  * The web component class behind the `<forge-chip-field>` custom element.
17
17
  *
@@ -92,10 +92,10 @@ export class BaseDatePickerFoundation {
92
92
  this._handleInput(this._adapter.getInputValue());
93
93
  }
94
94
  _onInputFocus(evt) {
95
- this._adapter.selectInputText();
96
95
  if (this.masked && this.showMaskFormat) {
97
96
  this._applyMask();
98
97
  }
98
+ this._adapter.selectInputText();
99
99
  }
100
100
  _onInputBlur(evt) {
101
101
  if (this.masked && this.showMaskFormat) {
@@ -271,11 +271,11 @@ export class DateRangePickerFoundation extends BaseDatePickerFoundation {
271
271
  }
272
272
  }
273
273
  _onToInputFocus() {
274
- this._adapter.selectToInputText();
275
274
  if (this.masked && this._showMaskFormat) {
276
275
  this._initializeMask();
277
276
  this._initializeToMask();
278
277
  }
278
+ this._adapter.selectToInputText();
279
279
  }
280
280
  _onToInputBlur(evt) {
281
281
  if (this._masked && !this._adapter.isInputFocused(evt.relatedTarget)) {
@@ -288,11 +288,11 @@ export class DateRangePickerFoundation extends BaseDatePickerFoundation {
288
288
  }
289
289
  }
290
290
  _onInputFocus(evt) {
291
- this._adapter.selectInputText();
292
291
  if (this.masked && this._showMaskFormat) {
293
292
  this._initializeMask();
294
293
  this._initializeToMask();
295
294
  }
295
+ this._adapter.selectInputText();
296
296
  }
297
297
  _onInputBlur(evt) {
298
298
  if (this.masked && !this._adapter.isInputFocused(evt.relatedTarget)) {
@@ -6,7 +6,6 @@
6
6
  import { IIconComponent } from './icon';
7
7
  import { BaseAdapter, IBaseAdapter } from '../core';
8
8
  export interface IIconAdapter extends IBaseAdapter {
9
- initialize(): void;
10
9
  canLazyLoad(): boolean;
11
10
  observeVisibility(listener: () => void): void;
12
11
  destroyVisibilityObserver(): void;
@@ -15,7 +14,6 @@ export interface IIconAdapter extends IBaseAdapter {
15
14
  export declare class IconAdapter extends BaseAdapter<IIconComponent> implements IIconAdapter {
16
15
  private _observer;
17
16
  constructor(component: IIconComponent);
18
- initialize(): void;
19
17
  canLazyLoad(): boolean;
20
18
  observeVisibility(listener: () => void): void;
21
19
  destroyVisibilityObserver(): void;
@@ -9,11 +9,6 @@ export class IconAdapter extends BaseAdapter {
9
9
  constructor(component) {
10
10
  super(component);
11
11
  }
12
- initialize() {
13
- if (!this._component.hasAttribute('aria-hidden')) {
14
- this._component.setAttribute('aria-hidden', 'true');
15
- }
16
- }
17
12
  canLazyLoad() {
18
13
  return !!window.IntersectionObserver;
19
14
  }
@@ -33,9 +28,13 @@ export class IconAdapter extends BaseAdapter {
33
28
  }
34
29
  }
35
30
  setContent(content) {
31
+ var _a;
36
32
  const shadowRoot = this._component.shadowRoot;
37
33
  const styleTag = shadowRoot.querySelector('style');
38
34
  shadowRoot.innerHTML = content;
35
+ if (content) {
36
+ (_a = shadowRoot.firstElementChild) === null || _a === void 0 ? void 0 : _a.setAttribute('aria-hidden', 'true');
37
+ }
39
38
  if (styleTag) {
40
39
  shadowRoot.appendChild(styleTag);
41
40
  }
@@ -13,7 +13,6 @@ export class IconFoundation {
13
13
  this._lazyListener = () => this._loadIcon();
14
14
  }
15
15
  initialize() {
16
- this._adapter.initialize();
17
16
  this._applyIcon();
18
17
  }
19
18
  disconnect() {
@@ -23,6 +23,7 @@ export declare const KEYBOARD_SHORTCUT_CONSTANTS: {
23
23
  };
24
24
  };
25
25
  export declare const textInputTypes: string[];
26
+ export declare type KeyboardShortcutActivateCallback = (event: KeyboardEvent) => void;
26
27
  export interface IKeyCombination {
27
28
  key: string;
28
29
  modifier?: string;
@@ -5,6 +5,7 @@
5
5
  */
6
6
  import { ICustomElementFoundation } from '@tylertech/forge-core';
7
7
  import { IKeyboardShortcutAdapter } from './keyboard-shortcut-adapter';
8
+ import { KeyboardShortcutActivateCallback } from './keyboard-shortcut-constants';
8
9
  export interface IKeyboardShortcutFoundation extends ICustomElementFoundation {
9
10
  key: string | null | undefined;
10
11
  target: string;
@@ -14,6 +15,7 @@ export interface IKeyboardShortcutFoundation extends ICustomElementFoundation {
14
15
  capture: boolean;
15
16
  useCode: boolean;
16
17
  disabled: boolean;
18
+ activateCallback: KeyboardShortcutActivateCallback | null | undefined;
17
19
  }
18
20
  export declare class KeyboardShortcutFoundation implements IKeyboardShortcutFoundation {
19
21
  private _adapter;
@@ -25,6 +27,7 @@ export declare class KeyboardShortcutFoundation implements IKeyboardShortcutFoun
25
27
  private _capture;
26
28
  private _useCode;
27
29
  private _disabled;
30
+ private _activateCallback;
28
31
  private _keyCombinations;
29
32
  private _keyDownListener;
30
33
  constructor(_adapter: IKeyboardShortcutAdapter);
@@ -60,4 +63,7 @@ export declare class KeyboardShortcutFoundation implements IKeyboardShortcutFoun
60
63
  /** Gets/sets whether the event will be emitted. */
61
64
  get disabled(): boolean;
62
65
  set disabled(value: boolean);
66
+ /** Gets/sets the activation callback. */
67
+ get activateCallback(): KeyboardShortcutActivateCallback | null | undefined;
68
+ set activateCallback(value: KeyboardShortcutActivateCallback | null | undefined);
63
69
  }
@@ -48,6 +48,7 @@ export class KeyboardShortcutFoundation {
48
48
  }
49
49
  _onKeyDown(evt) {
50
50
  // Here we may check if the target element is disabled, but disabled elements typically can't receive focus anyway
51
+ var _a;
51
52
  // Ignore the event if it originates from a text field
52
53
  // TODO: bypass this and allow it if a modifier key is used?
53
54
  if (!this._allowWhileTyping && elementAcceptsTextInput(evt.target)) {
@@ -58,6 +59,7 @@ export class KeyboardShortcutFoundation {
58
59
  evt.preventDefault();
59
60
  }
60
61
  this._adapter.emitHostEvent(KEYBOARD_SHORTCUT_CONSTANTS.events.ACTIVATE, evt);
62
+ (_a = this._activateCallback) === null || _a === void 0 ? void 0 : _a.call(null, evt);
61
63
  }
62
64
  }
63
65
  /** Sets the key combinations. */
@@ -161,4 +163,11 @@ export class KeyboardShortcutFoundation {
161
163
  }
162
164
  }
163
165
  }
166
+ /** Gets/sets the activation callback. */
167
+ get activateCallback() {
168
+ return this._activateCallback;
169
+ }
170
+ set activateCallback(value) {
171
+ this._activateCallback = value;
172
+ }
164
173
  }
@@ -3,6 +3,7 @@
3
3
  * Copyright 2023 Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
+ import { KeyboardShortcutActivateCallback } from './keyboard-shortcut-constants';
6
7
  import { BaseComponent, IBaseComponent } from '../core/base/base-component';
7
8
  export interface IKeyboardShortcutComponent extends IBaseComponent {
8
9
  key: string | null | undefined;
@@ -14,6 +15,7 @@ export interface IKeyboardShortcutComponent extends IBaseComponent {
14
15
  capture: boolean;
15
16
  useCode: boolean;
16
17
  disabled: boolean;
18
+ activateCallback: KeyboardShortcutActivateCallback | null | undefined;
17
19
  }
18
20
  declare global {
19
21
  interface HTMLElementTagNameMap {
@@ -54,4 +56,6 @@ export declare class KeyboardShortcutComponent extends BaseComponent implements
54
56
  useCode: boolean;
55
57
  /** Gets/sets whether the callback will be called. */
56
58
  disabled: boolean;
59
+ /** Gets/sets whether the activation callback. */
60
+ activateCallback: KeyboardShortcutActivateCallback | null | undefined;
57
61
  }
@@ -97,6 +97,9 @@ __decorate([
97
97
  __decorate([
98
98
  FoundationProperty()
99
99
  ], KeyboardShortcutComponent.prototype, "disabled", void 0);
100
+ __decorate([
101
+ FoundationProperty()
102
+ ], KeyboardShortcutComponent.prototype, "activateCallback", void 0);
100
103
  KeyboardShortcutComponent = __decorate([
101
104
  CustomElement({
102
105
  name: KEYBOARD_SHORTCUT_CONSTANTS.elementName
@@ -3,6 +3,7 @@
3
3
  * Copyright 2023 Tyler Technologies, Inc.
4
4
  * License: Apache-2.0
5
5
  */
6
+ import { IIconComponent } from '../icon';
6
7
  import { IPopupPosition, PopupPlacement } from '../popup';
7
8
  export declare const LIST_DROPDOWN_CONSTANTS: {
8
9
  attributes: {
@@ -29,15 +30,18 @@ export declare type ListDropdownIconType = 'font' | 'component';
29
30
  export interface IBaseListDropdownOption<T = any> {
30
31
  value: T;
31
32
  label: string;
33
+ secondaryLabel?: string;
32
34
  disabled?: boolean;
33
35
  divider?: boolean;
34
36
  optionClass?: string | string[];
35
37
  leadingIcon?: string;
36
38
  leadingIconClass?: string;
37
39
  leadingIconType?: ListDropdownIconType;
40
+ leadingIconComponentProps?: Partial<IIconComponent>;
38
41
  trailingIcon?: string;
39
42
  trailingIconClass?: string;
40
43
  trailingIconType?: ListDropdownIconType;
44
+ trailingIconComponentProps?: Partial<IIconComponent>;
41
45
  leadingBuilder?: () => HTMLElement;
42
46
  trailingBuilder?: () => HTMLElement;
43
47
  }
@@ -204,6 +204,14 @@ export function createListItems(config, listElement, options, startIndex = 0, re
204
204
  }
205
205
  }
206
206
  }
207
+ // Check for secondary (subtitle) text
208
+ if (option.secondaryLabel) {
209
+ const secondaryLabelElement = document.createElement('span');
210
+ secondaryLabelElement.slot = 'subtitle';
211
+ secondaryLabelElement.textContent = option.secondaryLabel;
212
+ listItemElement.twoLine = true;
213
+ listItemElement.appendChild(secondaryLabelElement);
214
+ }
207
215
  // If multiple selections are enabled then we need to create and append a leading checkbox element
208
216
  if (config.multiple) {
209
217
  const checkboxElement = createCheckboxElement(isSelected);
@@ -225,7 +233,7 @@ export function createListItems(config, listElement, options, startIndex = 0, re
225
233
  }
226
234
  }
227
235
  else if (option.leadingIcon) {
228
- const leadingIconElement = createIconElement(option.leadingIconType, option.leadingIcon, option.leadingIconClass || config.iconClass);
236
+ const leadingIconElement = createIconElement(option.leadingIconType, option.leadingIcon, option.leadingIconClass || config.iconClass, option.leadingIconComponentProps);
229
237
  leadingIconElement.slot = 'leading';
230
238
  listItemElement.appendChild(leadingIconElement);
231
239
  }
@@ -238,7 +246,7 @@ export function createListItems(config, listElement, options, startIndex = 0, re
238
246
  }
239
247
  }
240
248
  else if (option.trailingIcon) {
241
- const trailingIconElement = createIconElement(option.trailingIconType, option.trailingIcon, option.trailingIconClass || config.iconClass);
249
+ const trailingIconElement = createIconElement(option.trailingIconType, option.trailingIcon, option.trailingIconClass || config.iconClass, option.trailingIconComponentProps);
242
250
  trailingIconElement.slot = 'trailing';
243
251
  listItemElement.appendChild(trailingIconElement);
244
252
  }
@@ -292,7 +300,7 @@ function createDivider() {
292
300
  divider.setAttribute('aria-hidden', 'true');
293
301
  return divider;
294
302
  }
295
- function createIconElement(type = 'font', iconName, iconClass) {
303
+ function createIconElement(type = 'font', iconName, iconClass, componentProps) {
296
304
  if (type === 'component') {
297
305
  const icon = document.createElement('forge-icon');
298
306
  if (iconClass) {
@@ -300,6 +308,9 @@ function createIconElement(type = 'font', iconName, iconClass) {
300
308
  }
301
309
  icon.setAttribute('aria-hidden', 'true');
302
310
  icon.name = iconName;
311
+ if (componentProps) {
312
+ Object.assign(icon, componentProps);
313
+ }
303
314
  return icon;
304
315
  }
305
316
  const iconElement = document.createElement('i');
@@ -93,4 +93,6 @@ export declare class PaginatorAdapter extends BaseAdapter<IPaginatorComponent> i
93
93
  enableLastPageButton(): void;
94
94
  setAlternative(alternative: boolean): void;
95
95
  setAlignment(alignment: PaginatorAlternativeAlignment): void;
96
+ private _handleFocusMove;
97
+ private _tryFocus;
96
98
  }
@@ -87,24 +87,28 @@ export class PaginatorAdapter extends BaseAdapter {
87
87
  this._lastPageButton.removeEventListener('click', listener);
88
88
  }
89
89
  disableFirstPageButton() {
90
+ this._handleFocusMove('first');
90
91
  this._firstPageButton.setAttribute('disabled', 'disabled');
91
92
  }
92
93
  enableFirstPageButton() {
93
94
  this._firstPageButton.removeAttribute('disabled');
94
95
  }
95
96
  disablePreviousPageButton() {
97
+ this._handleFocusMove('previous');
96
98
  this._previousPageButton.setAttribute('disabled', 'disabled');
97
99
  }
98
100
  enablePreviousPageButton() {
99
101
  this._previousPageButton.removeAttribute('disabled');
100
102
  }
101
103
  disableNextPageButton() {
104
+ this._handleFocusMove('next');
102
105
  this._nextPageButton.setAttribute('disabled', 'disabled');
103
106
  }
104
107
  enableNextPageButton() {
105
108
  this._nextPageButton.removeAttribute('disabled');
106
109
  }
107
110
  disablePageSizeSelect() {
111
+ this._handleFocusMove('page-size');
108
112
  this._pageSizeSelect.setAttribute('disabled', 'disabled');
109
113
  }
110
114
  enablePageSizeSelect() {
@@ -119,6 +123,7 @@ export class PaginatorAdapter extends BaseAdapter {
119
123
  }
120
124
  }
121
125
  disableLastPageButton() {
126
+ this._handleFocusMove('last');
122
127
  this._lastPageButton.setAttribute('disabled', 'disabled');
123
128
  }
124
129
  enableLastPageButton() {
@@ -146,4 +151,56 @@ export class PaginatorAdapter extends BaseAdapter {
146
151
  break;
147
152
  }
148
153
  }
154
+ _handleFocusMove(from) {
155
+ switch (from) {
156
+ case 'first':
157
+ this._tryFocus([
158
+ this._nextPageButton,
159
+ this._lastPageButton,
160
+ this._previousPageButton,
161
+ this._pageSizeSelect
162
+ ]);
163
+ break;
164
+ case 'last':
165
+ this._tryFocus([
166
+ this._previousPageButton,
167
+ this._firstPageButton,
168
+ this._nextPageButton,
169
+ this._pageSizeSelect
170
+ ]);
171
+ break;
172
+ case 'previous':
173
+ this._tryFocus([
174
+ this._nextPageButton,
175
+ this._lastPageButton,
176
+ this._firstPageButton,
177
+ this._pageSizeSelect
178
+ ]);
179
+ break;
180
+ case 'next':
181
+ this._tryFocus([
182
+ this._previousPageButton,
183
+ this._firstPageButton,
184
+ this._lastPageButton,
185
+ this._pageSizeSelect
186
+ ]);
187
+ break;
188
+ case 'page-size':
189
+ this._tryFocus([
190
+ this._nextPageButton,
191
+ this._lastPageButton,
192
+ this._firstPageButton,
193
+ this._previousPageButton
194
+ ]);
195
+ break;
196
+ }
197
+ }
198
+ _tryFocus(elements) {
199
+ for (const el of elements) {
200
+ if (el && el.isConnected && !el.disabled) {
201
+ el.focus();
202
+ return;
203
+ }
204
+ }
205
+ }
149
206
  }
@@ -46,6 +46,7 @@ export class BaseSelectAdapter extends BaseAdapter {
46
46
  return {
47
47
  // eslint-disable-next-line @typescript-eslint/no-extra-parens
48
48
  label: o.hasAttribute(OPTION_CONSTANTS.attributes.LABEL) ? o.getAttribute(OPTION_CONSTANTS.attributes.LABEL) : (isDefined(o.label) ? o.label : o.innerText),
49
+ secondaryLabel: o.hasAttribute(OPTION_CONSTANTS.attributes.SECONDARY_LABEL) ? o.getAttribute(OPTION_CONSTANTS.attributes.SECONDARY_LABEL) : isDefined(o.secondaryLabel) ? o.secondaryLabel : undefined,
49
50
  value: o.hasAttribute(OPTION_CONSTANTS.attributes.VALUE) ? o.getAttribute(OPTION_CONSTANTS.attributes.VALUE) : o.value,
50
51
  disabled: o.hasAttribute(OPTION_CONSTANTS.attributes.DISABLED),
51
52
  divider: o.hasAttribute(OPTION_CONSTANTS.attributes.DIVIDER),
@@ -53,9 +54,11 @@ export class BaseSelectAdapter extends BaseAdapter {
53
54
  leadingIcon: o.hasAttribute(OPTION_CONSTANTS.attributes.LEADING_ICON) ? o.getAttribute(OPTION_CONSTANTS.attributes.LEADING_ICON) : o.leadingIcon,
54
55
  leadingIconClass: o.hasAttribute(OPTION_CONSTANTS.attributes.LEADING_ICON_CLASS) ? o.getAttribute(OPTION_CONSTANTS.attributes.LEADING_ICON_CLASS) : o.leadingIconClass,
55
56
  leadingIconType: o.hasAttribute(OPTION_CONSTANTS.attributes.LEADING_ICON_TYPE) ? o.getAttribute(OPTION_CONSTANTS.attributes.LEADING_ICON_TYPE) : o.leadingIconType,
57
+ leadingIconComponentProps: o.leadingIconComponentProps,
56
58
  trailingIcon: o.hasAttribute(OPTION_CONSTANTS.attributes.TRAILING_ICON) ? o.getAttribute(OPTION_CONSTANTS.attributes.TRAILING_ICON) : o.trailingIcon,
57
59
  trailingIconClass: o.hasAttribute(OPTION_CONSTANTS.attributes.TRAILING_ICON_CLASS) ? o.getAttribute(OPTION_CONSTANTS.attributes.TRAILING_ICON_CLASS) : o.trailingIconClass,
58
60
  trailingIconType: o.hasAttribute(OPTION_CONSTANTS.attributes.TRAILING_ICON_TYPE) ? o.getAttribute(OPTION_CONSTANTS.attributes.TRAILING_ICON_TYPE) : o.trailingIconType,
61
+ trailingIconComponentProps: o.trailingIconComponentProps,
59
62
  leadingBuilder: o.leadingBuilder,
60
63
  trailingBuilder: o.trailingBuilder
61
64
  };
@@ -9,6 +9,7 @@ export declare const OPTION_CONSTANTS: {
9
9
  DISABLED: string;
10
10
  DIVIDER: string;
11
11
  LABEL: string;
12
+ SECONDARY_LABEL: string;
12
13
  LEADING_ICON_CLASS: string;
13
14
  LEADING_ICON_TYPE: string;
14
15
  LEADING_ICON: string;
@@ -9,6 +9,7 @@ const attributes = {
9
9
  DISABLED: 'disabled',
10
10
  DIVIDER: 'divider',
11
11
  LABEL: 'label',
12
+ SECONDARY_LABEL: 'secondary-label',
12
13
  LEADING_ICON_CLASS: 'leading-icon-class',
13
14
  LEADING_ICON_TYPE: 'leading-icon-type',
14
15
  LEADING_ICON: 'leading-icon',
@@ -4,6 +4,7 @@
4
4
  * License: Apache-2.0
5
5
  */
6
6
  import { ICustomElementFoundation } from '@tylertech/forge-core';
7
+ import { IIconComponent } from '../../icon';
7
8
  import { IBaseListDropdownOption, ListDropdownIconType } from '../../list-dropdown/list-dropdown-constants';
8
9
  import { IOptionAdapter } from './option-adapter';
9
10
  export interface IOptionFoundation extends ICustomElementFoundation, Required<IBaseListDropdownOption> {
@@ -13,15 +14,18 @@ export declare class OptionFoundation implements IOptionFoundation {
13
14
  private _adapter;
14
15
  private _value;
15
16
  private _label;
17
+ private _secondaryLabel;
16
18
  private _disabled;
17
19
  private _divider;
18
20
  private _optionClass;
19
21
  private _leadingIcon;
20
22
  private _leadingIconClass;
21
23
  private _leadingIconType;
24
+ private _leadingIconComponentProps;
22
25
  private _trailingIcon;
23
26
  private _trailingIconClass;
24
27
  private _trailingIconType;
28
+ private _trailingIconComponentProps;
25
29
  private _leadingBuilder;
26
30
  private _trailingBuilder;
27
31
  constructor(_adapter: IOptionAdapter);
@@ -31,6 +35,9 @@ export declare class OptionFoundation implements IOptionFoundation {
31
35
  /** Gets/sets the label of this option. */
32
36
  get label(): string;
33
37
  set label(value: string);
38
+ /** Gets/sets the secondary label of this option. */
39
+ get secondaryLabel(): string;
40
+ set secondaryLabel(value: string);
34
41
  /** Gets/sets the disabled status of this option. */
35
42
  get disabled(): boolean;
36
43
  set disabled(value: boolean);
@@ -49,6 +56,9 @@ export declare class OptionFoundation implements IOptionFoundation {
49
56
  /** Gets/sets the leading icon type of this option. */
50
57
  get leadingIconType(): ListDropdownIconType;
51
58
  set leadingIconType(value: ListDropdownIconType);
59
+ /** Gets/sets the props on the leading icon component. */
60
+ get leadingIconComponentProps(): Partial<IIconComponent>;
61
+ set leadingIconComponentProps(value: Partial<IIconComponent>);
52
62
  /** Gets/sets the trailing icon of this option. */
53
63
  get trailingIcon(): string;
54
64
  set trailingIcon(value: string);
@@ -58,6 +68,9 @@ export declare class OptionFoundation implements IOptionFoundation {
58
68
  /** Gets/sets the trailing icon type of this option. */
59
69
  get trailingIconType(): ListDropdownIconType;
60
70
  set trailingIconType(value: ListDropdownIconType);
71
+ /** Gets/sets the props on the trailing icon component. */
72
+ get trailingIconComponentProps(): Partial<IIconComponent>;
73
+ set trailingIconComponentProps(value: Partial<IIconComponent>);
61
74
  /** Gets/sets the leading builder of this option. */
62
75
  get leadingBuilder(): (() => HTMLElement);
63
76
  set leadingBuilder(value: (() => HTMLElement));
@@ -32,6 +32,16 @@ export class OptionFoundation {
32
32
  this._adapter.toggleHostAttribute(OPTION_CONSTANTS.attributes.LABEL, !!this._label, this._label);
33
33
  }
34
34
  }
35
+ /** Gets/sets the secondary label of this option. */
36
+ get secondaryLabel() {
37
+ return this._secondaryLabel;
38
+ }
39
+ set secondaryLabel(value) {
40
+ if (this._secondaryLabel !== value) {
41
+ this._secondaryLabel = value;
42
+ this._adapter.toggleHostAttribute(OPTION_CONSTANTS.attributes.SECONDARY_LABEL, !!this._secondaryLabel, this._secondaryLabel);
43
+ }
44
+ }
35
45
  /** Gets/sets the disabled status of this option. */
36
46
  get disabled() {
37
47
  return this._disabled;
@@ -99,6 +109,15 @@ export class OptionFoundation {
99
109
  this._adapter.toggleHostAttribute(OPTION_CONSTANTS.attributes.LEADING_ICON_TYPE, !!this._leadingIconType, this._leadingIconType);
100
110
  }
101
111
  }
112
+ /** Gets/sets the props on the leading icon component. */
113
+ get leadingIconComponentProps() {
114
+ return this._leadingIconComponentProps;
115
+ }
116
+ set leadingIconComponentProps(value) {
117
+ if (this._leadingIconComponentProps !== value) {
118
+ this._leadingIconComponentProps = value;
119
+ }
120
+ }
102
121
  /** Gets/sets the trailing icon of this option. */
103
122
  get trailingIcon() {
104
123
  return this._trailingIcon;
@@ -129,6 +148,15 @@ export class OptionFoundation {
129
148
  this._adapter.toggleHostAttribute(OPTION_CONSTANTS.attributes.TRAILING_ICON_TYPE, !!this._trailingIconType, this._trailingIconType);
130
149
  }
131
150
  }
151
+ /** Gets/sets the props on the trailing icon component. */
152
+ get trailingIconComponentProps() {
153
+ return this._trailingIconComponentProps;
154
+ }
155
+ set trailingIconComponentProps(value) {
156
+ if (this._trailingIconComponentProps !== value) {
157
+ this._trailingIconComponentProps = value;
158
+ }
159
+ }
132
160
  /** Gets/sets the leading builder of this option. */
133
161
  get leadingBuilder() {
134
162
  return this._leadingBuilder;