@tylertech/forge 3.1.3 → 3.3.0

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 (68) hide show
  1. package/custom-elements.json +239 -60
  2. package/dist/chips/forge-chips.css +1 -0
  3. package/dist/field/forge-field.css +2 -0
  4. package/dist/inline-message/forge-inline-message.css +2 -0
  5. package/dist/lib.js +1 -1
  6. package/dist/lib.js.map +4 -4
  7. package/dist/vscode.css-custom-data.json +5 -0
  8. package/dist/vscode.html-custom-data.json +22 -2
  9. package/esm/app-bar/app-bar/app-bar.d.ts +2 -0
  10. package/esm/app-bar/app-bar/app-bar.js +2 -0
  11. package/esm/autocomplete/autocomplete-adapter.js +1 -7
  12. package/esm/button/base/base-button-adapter.js +1 -1
  13. package/esm/calendar/calendar-adapter.d.ts +6 -6
  14. package/esm/calendar/calendar-adapter.js +45 -11
  15. package/esm/calendar/calendar-constants.d.ts +20 -0
  16. package/esm/calendar/calendar-constants.js +22 -0
  17. package/esm/calendar/calendar-core.d.ts +3 -3
  18. package/esm/calendar/calendar-core.js +5 -17
  19. package/esm/calendar/calendar-dom-utils.js +10 -4
  20. package/esm/calendar/calendar-dropdown/calendar-dropdown-constants.d.ts +2 -0
  21. package/esm/calendar/calendar.d.ts +9 -0
  22. package/esm/calendar/calendar.js +9 -0
  23. package/esm/chip-field/chip-field.js +1 -1
  24. package/esm/chips/chip/chip-core.js +0 -1
  25. package/esm/chips/chip/chip.d.ts +1 -0
  26. package/esm/chips/chip/chip.js +2 -1
  27. package/esm/circular-progress/circular-progress.js +1 -1
  28. package/esm/date-picker/base/base-date-picker-adapter.d.ts +3 -0
  29. package/esm/date-picker/base/base-date-picker-adapter.js +56 -0
  30. package/esm/date-picker/base/base-date-picker-constants.d.ts +11 -0
  31. package/esm/date-picker/base/base-date-picker-constants.js +2 -1
  32. package/esm/date-picker/base/base-date-picker-core.d.ts +4 -1
  33. package/esm/date-picker/base/base-date-picker-core.js +12 -1
  34. package/esm/date-picker/base/base-date-picker.d.ts +5 -1
  35. package/esm/date-picker/base/base-date-picker.js +8 -0
  36. package/esm/field/field-adapter.d.ts +2 -0
  37. package/esm/field/field-adapter.js +4 -0
  38. package/esm/field/field-core.js +1 -0
  39. package/esm/field/field.js +1 -1
  40. package/esm/inline-message/inline-message.js +1 -1
  41. package/esm/paginator/paginator.js +1 -1
  42. package/esm/select/select/select.js +1 -1
  43. package/esm/skip-link/skip-link-constants.d.ts +2 -0
  44. package/esm/skip-link/skip-link-constants.js +2 -1
  45. package/esm/skip-link/skip-link.d.ts +36 -12
  46. package/esm/skip-link/skip-link.js +55 -12
  47. package/esm/tabs/tab/tab-constants.d.ts +1 -3
  48. package/esm/tabs/tab/tab-constants.js +1 -3
  49. package/esm/tabs/tab/tab.d.ts +1 -1
  50. package/esm/tabs/tab/tab.js +1 -1
  51. package/esm/tabs/tab-bar/tab-bar-core.js +2 -1
  52. package/esm/tabs/tab-bar/tab-bar.d.ts +1 -1
  53. package/esm/tabs/tab-bar/tab-bar.js +1 -1
  54. package/esm/text-field/text-field-adapter.d.ts +8 -4
  55. package/esm/text-field/text-field-adapter.js +9 -4
  56. package/esm/text-field/text-field-constants.d.ts +2 -0
  57. package/esm/text-field/text-field-constants.js +2 -0
  58. package/esm/text-field/text-field-core.d.ts +2 -0
  59. package/esm/text-field/text-field-core.js +10 -3
  60. package/package.json +1 -1
  61. package/sass/chip-field/chip-field.scss +2 -1
  62. package/sass/chips/chip/chip.scss +1 -1
  63. package/sass/circular-progress/_core.scss +2 -2
  64. package/sass/core/styles/tokens/chips/chip/_tokens.scss +1 -0
  65. package/sass/field/_core.scss +1 -0
  66. package/sass/field/field.scss +1 -1
  67. package/sass/field/forge-field.scss +3 -1
  68. package/sass/inline-message/_core.scss +2 -0
@@ -15,7 +15,7 @@ import { ChipAdapter } from './chip-adapter';
15
15
  import { CHIP_CONSTANTS } from './chip-constants';
16
16
  import { ChipCore } from './chip-core';
17
17
  const template = '<template><div class=\"forge-chip\" part=\"root\"><button type=\"button\" id=\"trigger\" class=\"trigger\" part=\"trigger\"><slot name=\"start\"><slot name=\"leading\"></slot></slot><slot></slot><slot name=\"end\"><slot name=\"trailing\"></slot></slot></button><forge-focus-indicator target=\"trigger\" part=\"focus-indicator\"></forge-focus-indicator><forge-state-layer target=\"trigger\" exportparts=\"surface:state-layer\"></forge-state-layer></div></template>';
18
- const styles = ':host{display:inline-flex}:host([hidden]){display:none}.forge-chip{--_chip-background:var(--forge-chip-background, transparent);--_chip-color:var(--forge-chip-color, var(--forge-theme-primary, #3f51b5));--_chip-shape:var(--forge-chip-shape, calc(var(--forge-shape-full, 9999px) * var(--forge-shape-factor, 1)));--_chip-spacing:var(--forge-chip-spacing, var(--forge-spacing-xsmall, 8px));--_chip-height:var(--forge-chip-height, 32px);--_chip-padding-inline:var(--forge-chip-padding-inline, var(--forge-spacing-small, 12px));--_chip-padding-block:var(--forge-chip-padding-block, 0);--_chip-cursor:var(--forge-chip-cursor, pointer);--_chip-icon-font-size:var(--forge-chip-icon-font-size, 1.5rem);--_chip-disabled-opacity:var(--forge-chip-disabled-opacity, 0.38);--_chip-disabled-cursor:var(--forge-chip-disabled-cursor, not-allowed);--_chip-dense-height:var(--forge-chip-dense-height, 24px);--_chip-dense-padding-inline:var(--forge-chip-dense-padding-inline, var(--forge-spacing-xsmall, 8px));--_chip-dense-spacing:var(--forge-chip-dense-spacing, var(--forge-spacing-xxsmall, 4px));--_chip-dense-font-size:var(--forge-chip-dense-font-size, 0.75rem);--_chip-dense-font-weight:var(--forge-chip-dense-font-weight, normal);--_chip-dense-focus-indicator-offset:var(--forge-chip-dense-focus-indicator-offset, var(--forge-spacing-xxxsmall, 2px));--_chip-dense-icon-font-size:var(--forge-chip-dense-icon-font-size, 1.25rem);--_chip-remove-button-spacing:var(--forge-chip-remove-button-spacing, var(--forge-spacing-xsmall, 8px) var(--forge-spacing-xxsmall, 4px));--_chip-remove-button-height-dense:var(--forge-chip-remove-button-height-dense, 18px);--_chip-remove-button-icon-size-dense:var(--forge-chip-remove-button-icon-size-dense, 16px);--_chip-remove-button-spacing-dense:var(--forge-chip-remove-button-spacing-dense, 0 var(--forge-spacing-xxxsmall, 2px));--_chip-selected-background:var(--forge-chip-selected-background, var(--forge-theme-primary, #3f51b5));--_chip-selected-color:var(--forge-chip-selected-color, var(--forge-theme-on-primary, #ffffff));--_chip-invalid-color:var(--forge-chip-invalid-color, var(--forge-theme-error, #b00020));--_chip-invalid-selected-background:var(--forge-chip-invalid-selected-background, var(--forge-theme-error, #b00020));--_chip-invalid-selected-color:var(--forge-chip-invalid-selected-color, var(--forge-theme-on-error, #ffffff));--_chip-border-width:var(--forge-chip-border-width, var(--forge-border-thin, 1px));--_chip-border-style:var(--forge-chip-border-style, solid);--_chip-border-color:var(--forge-chip-border-color, var(--_chip-color));--_chip-field-background:var(--forge-chip-field-background, var(--forge-theme-surface-container-low, #ebebeb));--_chip-field-color:var(--forge-chip-field-color, var(--forge-theme-on-surface-container-low, #000000));--_chip-field-shape:var(--forge-chip-field-shape, calc(var(--forge-shape-medium, 4px) * var(--forge-shape-factor, 1)));--_chip-field-border-color:var(--forge-chip-field-border-color, transparent);--_chip-field-cursor:var(--forge-chip-field-cursor, default);--_chip-checkmark-size:var(--forge-chip-checkmark-size, 1.25em);--_chip-checkmark-color:var(--forge-chip-checkmark-color, var(--_chip-color));--_chip-checkmark-spacing:var(--forge-chip-checkmark-spacing, var(--forge-spacing-xsmall, 8px));--_chip-avatar-size:var(--forge-chip-avatar-size, 24px);--_chip-avatar-size-dense:var(--forge-chip-avatar-size-dense, 18px);--_chip-avatar-font-size:var(--forge-chip-avatar-font-size, 0.75rem);--_chip-avatar-font-size-dense:var(--forge-chip-avatar-font-size-dense, 0.5rem);--_chip-avatar-spacing:var(--forge-chip-avatar-spacing, calc(var(--forge-spacing-xsmall, 8px) * -1));--_chip-avatar-spacing-dense:var(--forge-chip-avatar-spacing-dense, calc(var(--forge-spacing-xxsmall, 4px) * -1));--_chip-transition-duration:var(--forge-chip-transition-duration, var(--forge-animation-duration-short3, 150ms));--_chip-transition-easing:var(--forge-chip-transition-easing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)));--_chip-checkmark-transition-delay:var(--forge-chip-checkmark-transition-delay, 50ms)}.forge-chip{position:relative;display:inline-flex;align-items:center;box-sizing:border-box;height:var(--_chip-height);border-width:var(--_chip-border-width);border-style:var(--_chip-border-style);border-color:var(--_chip-border-color);border-radius:var(--_chip-shape);background:var(--_chip-background);color:var(--_chip-color);transition-property:background-color,color;transition-duration:var(--_chip-transition-duration);transition-timing-function:var(--_chip-transition-easing)}.trigger{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-button-font-family, var(--forge-typography-font-family, \"Roboto\", sans-serif));font-size:var(--forge-typography-button-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-button-font-size-scale, .875)));font-weight:var(--forge-typography-button-font-weight,500);line-height:var(--forge-typography-button-line-height, normal);letter-spacing:var(--forge-typography-button-letter-spacing, .0714285714em);text-transform:var(--forge-typography-button-text-transform,inherit);text-decoration:var(--forge-typography-button-text-decoration,inherit);display:inline-flex;align-items:center;justify-content:center;gap:var(--_chip-spacing);box-sizing:border-box;height:100%;padding-inline:var(--_chip-padding-inline);padding-block:var(--_chip-padding-block);cursor:var(--_chip-cursor);z-index:0;text-decoration:none;border:none;background:inherit;color:inherit;-webkit-tap-highlight-color:transparent;border-radius:var(--_chip-shape);outline:0}.remove{padding-inline:var(--_chip-remove-button-spacing);--forge-icon-button-focus-indicator-color:var(--_chip-color)}forge-focus-indicator{--forge-focus-indicator-color:var(--_chip-color);--forge-focus-indicator-shape:var(--_chip-shape)}forge-state-layer{--forge-state-layer-color:var(--_chip-color)}:host([dense]) .forge-chip{--_chip-height:var(--_chip-dense-height);--_chip-padding-inline:var(--_chip-dense-padding-inline);--_chip-spacing:var(--_chip-dense-spacing)}:host([dense]) .trigger{--forge-typography-font-size:var(--_chip-dense-font-size);--forge-typography-font-weight:var(--_chip-dense-font-weight)}:host([dense]) .remove{--_chip-remove-button-spacing:var(--_chip-remove-button-spacing-dense);--forge-icon-button-density-small-size:var(--_chip-remove-button-height-dense);--forge-icon-button-density-small-icon-size:var(--_chip-remove-button-icon-size-dense)}:host([dense]) forge-focus-indicator{--forge-focus-indicator-outward-offset:var(--_chip-dense-focus-indicator-offset)}:host([dense]) ::slotted(forge-avatar){--_chip-avatar-spacing:var(--_chip-avatar-spacing-dense);--forge-typography-font-size:var(--_chip-avatar-font-size-dense);--forge-avatar-size:var(--_chip-avatar-size-dense)}:host([dense]) ::slotted(:is([slot=start],[slot=leading],[slot=end],[slot=trailing])){--_chip-icon-font-size:var(--_chip-dense-icon-font-size)}:host(:is([type=filter],[type=choice],[type=input])[selected]) .forge-chip{--_chip-background:var(--_chip-selected-background);--_chip-color:var(--_chip-selected-color)}:host(:is([type=filter],[type=choice],[type=input])[selected]) forge-focus-indicator{--forge-focus-indicator-color:var(--_chip-background)}:host([invalid]) .forge-chip{--_chip-color:var(--_chip-invalid-color)}:host([invalid]:is([type=filter],[type=choice],[type=input])[selected]) .forge-chip{--_chip-background:var(--_chip-invalid-selected-background);--_chip-color:var(--_chip-invalid-selected-color)}:host([disabled]:not([href])) .forge-chip{opacity:var(--_chip-disabled-opacity)}:host([disabled]:not([href])) .trigger{cursor:var(--_chip-disabled-cursor)}::slotted(:not(forge-avatar):is([slot=start],[slot=leading],[slot=end],[slot=trailing])){font-size:var(--_chip-icon-font-size)}::slotted(forge-avatar:is([slot=start],[slot=leading])){margin-inline-start:var(--_chip-avatar-spacing)}::slotted(forge-avatar:is([slot=end],[slot=trailing])){margin-inline-end:var(--_chip-avatar-spacing)}::slotted(forge-avatar){--forge-typography-font-size:var(--_chip-avatar-font-size);--forge-avatar-size:var(--_chip-avatar-size)}:host([type=filter]) .checkmark{height:var(--_chip-checkmark-size)}:host([type=filter]) .checkmark svg{width:0;height:var(--_chip-checkmark-size);transition-property:width;transition-duration:var(--_chip-transition-duration);transition-timing-function:var(--_chip-transition-easing)}:host([type=filter]) .checkmark svg path{stroke:var(--_chip-checkmark-color);transition-property:stroke-dashoffset;transition-duration:var(--_chip-transition-duration);transition-timing-function:var(--_chip-transition-easing);stroke-width:2px;stroke-dashoffset:29.7833385;stroke-dasharray:29.7833385}:host([type=filter][selected]) .checkmark{padding-inline-start:var(--_chip-checkmark-spacing)}:host([type=filter][selected]) .checkmark svg{width:var(--_chip-checkmark-size)}:host([type=filter][selected]) .checkmark svg path{transition-delay:var(--_chip-checkmark-transition-delay);stroke-dashoffset:0}:host([type=input]) .trigger{padding-inline:var(--_chip-padding-inline) 0}:host([type=field]) .forge-chip{--_chip-background:var(--_chip-field-background);--_chip-color:var(--_chip-field-color);--_chip-border-color:var(--_chip-field-border-color);--_chip-shape:var(--_chip-field-shape);--_chip-cursor:var(--_chip-field-cursor)}:host([theme=secondary]) .forge-chip{--_chip-color:var(--forge-chip-color, var(--forge-theme-text-high, rgba(0, 0, 0, 0.87)));--_chip-border-color:var(--forge-chip-border-color, var(--forge-theme-secondary, #ffc107))}:host([theme=secondary]:is([type=filter],[type=choice],[type=input])[selected]) .forge-chip{--_chip-background:var(--forge-chip-background, var(--forge-theme-secondary, #ffc107));--_chip-color:var(--forge-chip-color, var(--forge-theme-on-secondary, #000000))}:host([theme=secondary][type=field]) .forge-chip{--_chip-background:var(--forge-chip-background, var(--forge-theme-secondary-container-low, #fff8e1));--_chip-color:var(--forge-chip-color, var(--forge-theme-on-secondary-container-low, #8a6804))}:host([theme=tertiary]) .forge-chip{--_chip-color:var(--forge-chip-color, var(--forge-theme-tertiary, #3d5afe))}:host([theme=tertiary]:is([type=filter],[type=choice],[type=input])[selected]) .forge-chip{--_chip-background:var(--forge-chip-background, var(--forge-theme-tertiary, #3d5afe));--_chip-color:var(--forge-chip-color, var(--forge-theme-on-tertiary, #ffffff))}:host([theme=tertiary][type=field]) .forge-chip{--_chip-background:var(--forge-chip-background, var(--forge-theme-tertiary-container-low, #e8ebff));--_chip-color:var(--forge-chip-color, var(--forge-theme-on-tertiary-container-low, #213189))}:host([theme=success]) .forge-chip{--_chip-color:var(--forge-chip-color, var(--forge-theme-success, #2e7d32))}:host([theme=success]:is([type=filter],[type=choice],[type=input])[selected]) .forge-chip{--_chip-background:var(--forge-chip-background, var(--forge-theme-success, #2e7d32));--_chip-color:var(--forge-chip-color, var(--forge-theme-on-success, #ffffff))}:host([theme=success][type=field]) .forge-chip{--_chip-background:var(--forge-chip-background, var(--forge-theme-success-container-low, #e6efe6));--_chip-color:var(--forge-chip-color, var(--forge-theme-on-success-container-low, #19441b))}:host([theme=warning]) .forge-chip{--_chip-color:var(--forge-chip-color, var(--forge-theme-warning, #d14900))}:host([theme=warning]:is([type=filter],[type=choice],[type=input])[selected]) .forge-chip{--_chip-background:var(--forge-chip-background, var(--forge-theme-warning, #d14900));--_chip-color:var(--forge-chip-color, var(--forge-theme-on-warning, #ffffff))}:host([theme=warning][type=field]) .forge-chip{--_chip-background:var(--forge-chip-background, var(--forge-theme-warning-container-low, #f9e9e0));--_chip-color:var(--forge-chip-color, var(--forge-theme-on-warning-container-low, #712700))}:host([theme=error]) .forge-chip{--_chip-color:var(--forge-chip-color, var(--forge-theme-error, #b00020))}:host([theme=error]:is([type=filter],[type=choice],[type=input])[selected]) .forge-chip{--_chip-background:var(--forge-chip-background, var(--forge-theme-error, #b00020));--_chip-color:var(--forge-chip-color, var(--forge-theme-on-error, #ffffff))}:host([theme=error][type=field]) .forge-chip{--_chip-background:var(--forge-chip-background, var(--forge-theme-error-container-low, #f6e0e4));--_chip-color:var(--forge-chip-color, var(--forge-theme-on-error-container-low, #5f0011))}:host([theme=info]) .forge-chip{--_chip-color:var(--forge-chip-color, var(--forge-theme-info, #1565c0))}:host([theme=info]:is([type=filter],[type=choice],[type=input])[selected]) .forge-chip{--_chip-background:var(--forge-chip-background, var(--forge-theme-info, #1565c0));--_chip-color:var(--forge-chip-color, var(--forge-theme-on-info, #ffffff))}:host([theme=info][type=field]) .forge-chip{--_chip-background:var(--forge-chip-background, var(--forge-theme-info-container-low, #e3edf7));--_chip-color:var(--forge-chip-color, var(--forge-theme-on-info-container-low, #0b3768))}';
18
+ const styles = ':host{display:inline-flex}:host([hidden]){display:none}.forge-chip{--_chip-background:var(--forge-chip-background, transparent);--_chip-color:var(--forge-chip-color, var(--forge-theme-primary, #3f51b5));--_chip-shape:var(--forge-chip-shape, calc(var(--forge-shape-full, 9999px) * var(--forge-shape-factor, 1)));--_chip-spacing:var(--forge-chip-spacing, var(--forge-spacing-xsmall, 8px));--_chip-height:var(--forge-chip-height, 32px);--_chip-padding-inline:var(--forge-chip-padding-inline, var(--forge-spacing-small, 12px));--_chip-padding-block:var(--forge-chip-padding-block, 0);--_chip-cursor:var(--forge-chip-cursor, pointer);--_chip-icon-font-size:var(--forge-chip-icon-font-size, 1.5rem);--_chip-focus-indicator-color:var(--forge-chip-focus-indicator-color, var(--_chip-color));--_chip-disabled-opacity:var(--forge-chip-disabled-opacity, 0.38);--_chip-disabled-cursor:var(--forge-chip-disabled-cursor, not-allowed);--_chip-dense-height:var(--forge-chip-dense-height, 24px);--_chip-dense-padding-inline:var(--forge-chip-dense-padding-inline, var(--forge-spacing-xsmall, 8px));--_chip-dense-spacing:var(--forge-chip-dense-spacing, var(--forge-spacing-xxsmall, 4px));--_chip-dense-font-size:var(--forge-chip-dense-font-size, 0.75rem);--_chip-dense-font-weight:var(--forge-chip-dense-font-weight, normal);--_chip-dense-focus-indicator-offset:var(--forge-chip-dense-focus-indicator-offset, var(--forge-spacing-xxxsmall, 2px));--_chip-dense-icon-font-size:var(--forge-chip-dense-icon-font-size, 1.25rem);--_chip-remove-button-spacing:var(--forge-chip-remove-button-spacing, var(--forge-spacing-xsmall, 8px) var(--forge-spacing-xxsmall, 4px));--_chip-remove-button-height-dense:var(--forge-chip-remove-button-height-dense, 18px);--_chip-remove-button-icon-size-dense:var(--forge-chip-remove-button-icon-size-dense, 16px);--_chip-remove-button-spacing-dense:var(--forge-chip-remove-button-spacing-dense, 0 var(--forge-spacing-xxxsmall, 2px));--_chip-selected-background:var(--forge-chip-selected-background, var(--forge-theme-primary, #3f51b5));--_chip-selected-color:var(--forge-chip-selected-color, var(--forge-theme-on-primary, #ffffff));--_chip-invalid-color:var(--forge-chip-invalid-color, var(--forge-theme-error, #b00020));--_chip-invalid-selected-background:var(--forge-chip-invalid-selected-background, var(--forge-theme-error, #b00020));--_chip-invalid-selected-color:var(--forge-chip-invalid-selected-color, var(--forge-theme-on-error, #ffffff));--_chip-border-width:var(--forge-chip-border-width, var(--forge-border-thin, 1px));--_chip-border-style:var(--forge-chip-border-style, solid);--_chip-border-color:var(--forge-chip-border-color, var(--_chip-color));--_chip-field-background:var(--forge-chip-field-background, var(--forge-theme-surface-container-low, #ebebeb));--_chip-field-color:var(--forge-chip-field-color, var(--forge-theme-on-surface-container-low, #000000));--_chip-field-shape:var(--forge-chip-field-shape, calc(var(--forge-shape-medium, 4px) * var(--forge-shape-factor, 1)));--_chip-field-border-color:var(--forge-chip-field-border-color, transparent);--_chip-field-cursor:var(--forge-chip-field-cursor, default);--_chip-checkmark-size:var(--forge-chip-checkmark-size, 1.25em);--_chip-checkmark-color:var(--forge-chip-checkmark-color, var(--_chip-color));--_chip-checkmark-spacing:var(--forge-chip-checkmark-spacing, var(--forge-spacing-xsmall, 8px));--_chip-avatar-size:var(--forge-chip-avatar-size, 24px);--_chip-avatar-size-dense:var(--forge-chip-avatar-size-dense, 18px);--_chip-avatar-font-size:var(--forge-chip-avatar-font-size, 0.75rem);--_chip-avatar-font-size-dense:var(--forge-chip-avatar-font-size-dense, 0.5rem);--_chip-avatar-spacing:var(--forge-chip-avatar-spacing, calc(var(--forge-spacing-xsmall, 8px) * -1));--_chip-avatar-spacing-dense:var(--forge-chip-avatar-spacing-dense, calc(var(--forge-spacing-xxsmall, 4px) * -1));--_chip-transition-duration:var(--forge-chip-transition-duration, var(--forge-animation-duration-short3, 150ms));--_chip-transition-easing:var(--forge-chip-transition-easing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)));--_chip-checkmark-transition-delay:var(--forge-chip-checkmark-transition-delay, 50ms)}.forge-chip{position:relative;display:inline-flex;align-items:center;box-sizing:border-box;height:var(--_chip-height);border-width:var(--_chip-border-width);border-style:var(--_chip-border-style);border-color:var(--_chip-border-color);border-radius:var(--_chip-shape);background:var(--_chip-background);color:var(--_chip-color);transition-property:background-color,color;transition-duration:var(--_chip-transition-duration);transition-timing-function:var(--_chip-transition-easing)}.trigger{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:var(--forge-typography-button-font-family, var(--forge-typography-font-family, \"Roboto\", sans-serif));font-size:var(--forge-typography-button-font-size, calc(var(--forge-typography-font-size, 1rem) * var(--forge-typography-button-font-size-scale, .875)));font-weight:var(--forge-typography-button-font-weight,500);line-height:var(--forge-typography-button-line-height, normal);letter-spacing:var(--forge-typography-button-letter-spacing, .0714285714em);text-transform:var(--forge-typography-button-text-transform,inherit);text-decoration:var(--forge-typography-button-text-decoration,inherit);display:inline-flex;align-items:center;justify-content:center;gap:var(--_chip-spacing);box-sizing:border-box;height:100%;padding-inline:var(--_chip-padding-inline);padding-block:var(--_chip-padding-block);cursor:var(--_chip-cursor);z-index:0;text-decoration:none;border:none;background:inherit;color:inherit;-webkit-tap-highlight-color:transparent;border-radius:var(--_chip-shape);outline:0}.remove{padding-inline:var(--_chip-remove-button-spacing);--forge-icon-button-focus-indicator-color:var(--_chip-color)}forge-focus-indicator{--forge-focus-indicator-color:var(--_chip-focus-indicator-color);--forge-focus-indicator-shape:var(--_chip-shape)}forge-state-layer{--forge-state-layer-color:var(--_chip-color)}:host([dense]) .forge-chip{--_chip-height:var(--_chip-dense-height);--_chip-padding-inline:var(--_chip-dense-padding-inline);--_chip-spacing:var(--_chip-dense-spacing)}:host([dense]) .trigger{--forge-typography-font-size:var(--_chip-dense-font-size);--forge-typography-font-weight:var(--_chip-dense-font-weight)}:host([dense]) .remove{--_chip-remove-button-spacing:var(--_chip-remove-button-spacing-dense);--forge-icon-button-density-small-size:var(--_chip-remove-button-height-dense);--forge-icon-button-density-small-icon-size:var(--_chip-remove-button-icon-size-dense)}:host([dense]) forge-focus-indicator{--forge-focus-indicator-outward-offset:var(--_chip-dense-focus-indicator-offset)}:host([dense]) ::slotted(forge-avatar){--_chip-avatar-spacing:var(--_chip-avatar-spacing-dense);--forge-typography-font-size:var(--_chip-avatar-font-size-dense);--forge-avatar-size:var(--_chip-avatar-size-dense)}:host([dense]) ::slotted(:is([slot=start],[slot=leading],[slot=end],[slot=trailing])){--_chip-icon-font-size:var(--_chip-dense-icon-font-size)}:host(:is([type=filter],[type=choice],[type=input])[selected]) .forge-chip{--_chip-background:var(--_chip-selected-background);--_chip-color:var(--_chip-selected-color)}:host(:is([type=filter],[type=choice],[type=input])[selected]) forge-focus-indicator{--forge-focus-indicator-color:var(--_chip-background)}:host([invalid]) .forge-chip{--_chip-color:var(--_chip-invalid-color)}:host([invalid]:is([type=filter],[type=choice],[type=input])[selected]) .forge-chip{--_chip-background:var(--_chip-invalid-selected-background);--_chip-color:var(--_chip-invalid-selected-color)}:host([disabled]:not([href])) .forge-chip{opacity:var(--_chip-disabled-opacity)}:host([disabled]:not([href])) .trigger{cursor:var(--_chip-disabled-cursor)}::slotted(:not(forge-avatar):is([slot=start],[slot=leading],[slot=end],[slot=trailing])){font-size:var(--_chip-icon-font-size)}::slotted(forge-avatar:is([slot=start],[slot=leading])){margin-inline-start:var(--_chip-avatar-spacing)}::slotted(forge-avatar:is([slot=end],[slot=trailing])){margin-inline-end:var(--_chip-avatar-spacing)}::slotted(forge-avatar){--forge-typography-font-size:var(--_chip-avatar-font-size);--forge-avatar-size:var(--_chip-avatar-size)}:host([type=filter]) .checkmark{height:var(--_chip-checkmark-size)}:host([type=filter]) .checkmark svg{width:0;height:var(--_chip-checkmark-size);transition-property:width;transition-duration:var(--_chip-transition-duration);transition-timing-function:var(--_chip-transition-easing)}:host([type=filter]) .checkmark svg path{stroke:var(--_chip-checkmark-color);transition-property:stroke-dashoffset;transition-duration:var(--_chip-transition-duration);transition-timing-function:var(--_chip-transition-easing);stroke-width:2px;stroke-dashoffset:29.7833385;stroke-dasharray:29.7833385}:host([type=filter][selected]) .checkmark{padding-inline-start:var(--_chip-checkmark-spacing)}:host([type=filter][selected]) .checkmark svg{width:var(--_chip-checkmark-size)}:host([type=filter][selected]) .checkmark svg path{transition-delay:var(--_chip-checkmark-transition-delay);stroke-dashoffset:0}:host([type=input]) .trigger{padding-inline:var(--_chip-padding-inline) 0}:host([type=field]) .forge-chip{--_chip-background:var(--_chip-field-background);--_chip-color:var(--_chip-field-color);--_chip-border-color:var(--_chip-field-border-color);--_chip-shape:var(--_chip-field-shape);--_chip-cursor:var(--_chip-field-cursor)}:host([theme=secondary]) .forge-chip{--_chip-color:var(--forge-chip-color, var(--forge-theme-text-high, rgba(0, 0, 0, 0.87)));--_chip-border-color:var(--forge-chip-border-color, var(--forge-theme-secondary, #ffc107))}:host([theme=secondary]:is([type=filter],[type=choice],[type=input])[selected]) .forge-chip{--_chip-background:var(--forge-chip-background, var(--forge-theme-secondary, #ffc107));--_chip-color:var(--forge-chip-color, var(--forge-theme-on-secondary, #000000))}:host([theme=secondary][type=field]) .forge-chip{--_chip-background:var(--forge-chip-background, var(--forge-theme-secondary-container-low, #fff8e1));--_chip-color:var(--forge-chip-color, var(--forge-theme-on-secondary-container-low, #8a6804))}:host([theme=tertiary]) .forge-chip{--_chip-color:var(--forge-chip-color, var(--forge-theme-tertiary, #3d5afe))}:host([theme=tertiary]:is([type=filter],[type=choice],[type=input])[selected]) .forge-chip{--_chip-background:var(--forge-chip-background, var(--forge-theme-tertiary, #3d5afe));--_chip-color:var(--forge-chip-color, var(--forge-theme-on-tertiary, #ffffff))}:host([theme=tertiary][type=field]) .forge-chip{--_chip-background:var(--forge-chip-background, var(--forge-theme-tertiary-container-low, #e8ebff));--_chip-color:var(--forge-chip-color, var(--forge-theme-on-tertiary-container-low, #213189))}:host([theme=success]) .forge-chip{--_chip-color:var(--forge-chip-color, var(--forge-theme-success, #2e7d32))}:host([theme=success]:is([type=filter],[type=choice],[type=input])[selected]) .forge-chip{--_chip-background:var(--forge-chip-background, var(--forge-theme-success, #2e7d32));--_chip-color:var(--forge-chip-color, var(--forge-theme-on-success, #ffffff))}:host([theme=success][type=field]) .forge-chip{--_chip-background:var(--forge-chip-background, var(--forge-theme-success-container-low, #e6efe6));--_chip-color:var(--forge-chip-color, var(--forge-theme-on-success-container-low, #19441b))}:host([theme=warning]) .forge-chip{--_chip-color:var(--forge-chip-color, var(--forge-theme-warning, #d14900))}:host([theme=warning]:is([type=filter],[type=choice],[type=input])[selected]) .forge-chip{--_chip-background:var(--forge-chip-background, var(--forge-theme-warning, #d14900));--_chip-color:var(--forge-chip-color, var(--forge-theme-on-warning, #ffffff))}:host([theme=warning][type=field]) .forge-chip{--_chip-background:var(--forge-chip-background, var(--forge-theme-warning-container-low, #f9e9e0));--_chip-color:var(--forge-chip-color, var(--forge-theme-on-warning-container-low, #712700))}:host([theme=error]) .forge-chip{--_chip-color:var(--forge-chip-color, var(--forge-theme-error, #b00020))}:host([theme=error]:is([type=filter],[type=choice],[type=input])[selected]) .forge-chip{--_chip-background:var(--forge-chip-background, var(--forge-theme-error, #b00020));--_chip-color:var(--forge-chip-color, var(--forge-theme-on-error, #ffffff))}:host([theme=error][type=field]) .forge-chip{--_chip-background:var(--forge-chip-background, var(--forge-theme-error-container-low, #f6e0e4));--_chip-color:var(--forge-chip-color, var(--forge-theme-on-error-container-low, #5f0011))}:host([theme=info]) .forge-chip{--_chip-color:var(--forge-chip-color, var(--forge-theme-info, #1565c0))}:host([theme=info]:is([type=filter],[type=choice],[type=input])[selected]) .forge-chip{--_chip-background:var(--forge-chip-background, var(--forge-theme-info, #1565c0));--_chip-color:var(--forge-chip-color, var(--forge-theme-on-info, #ffffff))}:host([theme=info][type=field]) .forge-chip{--_chip-background:var(--forge-chip-background, var(--forge-theme-info-container-low, #e3edf7));--_chip-color:var(--forge-chip-color, var(--forge-theme-on-info-container-low, #0b3768))}';
19
19
  /**
20
20
  * @tag forge-chip
21
21
  *
@@ -55,6 +55,7 @@ const styles = ':host{display:inline-flex}:host([hidden]){display:none}.forge-ch
55
55
  * @cssproperty --forge-chip-padding-block - The block padding of the chip.
56
56
  * @cssproperty --forge-chip-cursor - The cursor style of the chip.
57
57
  * @cssproperty --forge-chip-icon-font-size - The font size of the chip icon.
58
+ * @cssproperty --forge-chip-focus-indicator-color - The color of the focus indicator.
58
59
  * @cssproperty --forge-chip-disabled-opacity - The opacity of the disabled chip.
59
60
  * @cssproperty --forge-chip-disabled-cursor - The cursor style of the disabled chip.
60
61
  * @cssproperty --forge-chip-dense-height - The height of the dense chip.
@@ -12,7 +12,7 @@ import { BaseComponent } from '../core/base/base-component';
12
12
  import { WithElementInternals } from '../core/mixins/internals/with-element-internals';
13
13
  import { WithDefaultAria } from '../core/mixins/internals/with-default-aria';
14
14
  const template = '<template><div class=\"forge-circular-progress\" part=\"progressbar\"><slot class=\"center-content\"></slot></div></template>';
15
- const styles = ':host{--_circular-progress-size:var(--forge-circular-progress-size, 48px)}:host{display:inline-flex;vertical-align:middle;min-block-size:var(--_circular-progress-size);min-inline-size:var(--_circular-progress-size);position:relative;align-items:center;justify-content:center;transition:background-color var(--_circular-progress-theme-transition-duration) var(--_circular-progress-theme-transition-timing);contain:strict;content-visibility:auto}:host([hidden]){display:none}.forge-circular-progress{--_circular-progress-padding:var(--forge-circular-progress-padding, 0);--_circular-progress-track-width:var(--forge-circular-progress-track-width, 12);--_circular-progress-track-color:var(--forge-circular-progress-track-color, transparent);--_circular-progress-track-fill-color:var(--forge-circular-progress-track-fill-color, var(--forge-theme-tertiary-container, #d0d7ff));--_circular-progress-indicator-color:var(--forge-circular-progress-indicator-color, var(--forge-theme-tertiary, #3d5afe));--_circular-progress-arc-duration:var(--forge-circular-progress-arc-duration, 1333ms);--_circular-progress-theme-transition-duration:var(--forge-circular-progress-theme-transition-duration, var(--forge-animation-duration-short3, 150ms));--_circular-progress-theme-transition-timing:var(--forge-circular-progress-theme-transition-timing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)))}.forge-circular-progress{flex:1;align-self:stretch;margin:var(--_circular-progress-padding)}.forge-circular-progress--indeterminate{will-change:transform;animation:linear infinite linear-rotate;animation-duration:calc(var(--_circular-progress-arc-duration) * 360 / 306)}.circle,.forge-circular-progress,.left,.right,.spinner,svg{position:absolute;inset:0}.center-content{display:flex;justify-content:center;align-items:center;width:100%;height:100%}.left{overflow:hidden;inset:0 50% 0 0}.left .circle{rotate:135deg;inset:0 -100% 0 0}.right{overflow:hidden;inset:0 0 0 50%}.right .circle{rotate:100deg;inset:0 0 0 -100%;animation-delay:calc(-.5 * var(--_circular-progress-arc-duration)),0s}.circle{box-sizing:border-box;border-radius:50%;border:solid calc(var(--_circular-progress-size) * var(--_circular-progress-track-width)/ 100);border-color:var(--_circular-progress-indicator-color) var(--_circular-progress-indicator-color) transparent transparent;transition:border-color var(--_circular-progress-theme-transition-duration) var(--_circular-progress-theme-transition-timing);will-change:transform;animation:expand-arc;animation-iteration-count:infinite;animation-fill-mode:both;animation-duration:var(--_circular-progress-arc-duration),calc(4 * var(--_circular-progress-arc-duration));animation-timing-function:cubic-bezier(0.4,0,0.2,1)}svg{transform:rotate(-90deg)}svg circle{cx:50%;cy:50%;r:calc(50% * (1 - var(--_circular-progress-track-width)/ 100));stroke-width:calc(var(--_circular-progress-track-width) * 1%);stroke-dasharray:100;fill:transparent}.progress{transition:stroke-dashoffset .5s cubic-bezier(0, 0, .2, 1),stroke var(--_circular-progress-theme-transition-duration) var(--_circular-progress-theme-transition-timing);stroke:var(--_circular-progress-indicator-color)}.track{stroke:transparent}.track-background{transition:stroke var(--_circular-progress-theme-transition-duration) var(--_circular-progress-theme-transition-timing);stroke:var(--_circular-progress-track-color)}.spinner{will-change:transform;animation:infinite both rotate-arc;animation-duration:calc(4 * var(--_circular-progress-arc-duration));animation-timing-function:cubic-bezier(0.4,0,0.2,1)}:host(:is([track],[determinate])) .forge-circular-progress{--_circular-progress-track-color:var(--_circular-progress-track-fill-color)}:host([theme=primary]) .forge-circular-progress{--_circular-progress-indicator-color:var(--forge-circular-progress-indicator-color, var(--forge-theme-primary, #3f51b5))}:host([theme=primary]:is([track],[determinate])) .forge-circular-progress{--_circular-progress-track-color:var(--forge-circular-progress-track-color, var(--forge-theme-primary-container, #d1d5ed))}:host([theme=secondary]) .forge-circular-progress{--_circular-progress-indicator-color:var(--forge-circular-progress-indicator-color, var(--forge-theme-secondary, #ffc107))}:host([theme=secondary]:is([track],[determinate])) .forge-circular-progress{--_circular-progress-track-color:var(--forge-circular-progress-track-color, var(--forge-theme-secondary-container, #fff0c3))}:host([theme=success]) .forge-circular-progress{--_circular-progress-indicator-color:var(--forge-circular-progress-indicator-color, var(--forge-theme-success, #2e7d32))}:host([theme=success]:is([track],[determinate])) .forge-circular-progress{--_circular-progress-track-color:var(--forge-circular-progress-track-color, var(--forge-theme-success-container, #cde0ce))}:host([theme=error]) .forge-circular-progress{--_circular-progress-indicator-color:var(--forge-circular-progress-indicator-color, var(--forge-theme-error, #b00020))}:host([theme=error]:is([track],[determinate])) .forge-circular-progress{--_circular-progress-track-color:var(--forge-circular-progress-track-color, var(--forge-theme-error-container, #ecc2c9))}:host([theme=warning]) .forge-circular-progress{--_circular-progress-indicator-color:var(--forge-circular-progress-indicator-color, var(--forge-theme-warning, #d14900))}:host([theme=warning]:is([track],[determinate])) .forge-circular-progress{--_circular-progress-track-color:var(--forge-circular-progress-track-color, var(--forge-theme-warning-container, #f4d3c2))}:host([theme=info]) .forge-circular-progress{--_circular-progress-indicator-color:var(--forge-circular-progress-indicator-color, var(--forge-theme-info, #1565c0))}:host([theme=info]:is([track],[determinate])) .forge-circular-progress{--_circular-progress-track-color:var(--forge-circular-progress-track-color, var(--forge-theme-info-container, #c7daf0))}@media screen and (forced-colors:active){.progress{stroke:CanvasText}.circle{border-color:CanvasText CanvasText Canvas Canvas}}@keyframes expand-arc{0%{transform:rotate(265deg)}50%{transform:rotate(130deg)}100%{transform:rotate(265deg)}}@keyframes rotate-arc{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}100%{transform:rotate(1080deg)}}@keyframes linear-rotate{to{transform:rotate(360deg)}}';
15
+ const styles = ':host{--_circular-progress-size:var(--forge-circular-progress-size, 48px)}:host{display:inline-flex;vertical-align:middle;block-size:var(--_circular-progress-size);inline-size:var(--_circular-progress-size);position:relative;align-items:center;justify-content:center;transition:background-color var(--_circular-progress-theme-transition-duration) var(--_circular-progress-theme-transition-timing);contain:strict;content-visibility:auto}:host([hidden]){display:none}.forge-circular-progress{--_circular-progress-padding:var(--forge-circular-progress-padding, 0);--_circular-progress-track-width:var(--forge-circular-progress-track-width, 12);--_circular-progress-track-color:var(--forge-circular-progress-track-color, transparent);--_circular-progress-track-fill-color:var(--forge-circular-progress-track-fill-color, var(--forge-theme-tertiary-container, #d0d7ff));--_circular-progress-indicator-color:var(--forge-circular-progress-indicator-color, var(--forge-theme-tertiary, #3d5afe));--_circular-progress-arc-duration:var(--forge-circular-progress-arc-duration, 1333ms);--_circular-progress-theme-transition-duration:var(--forge-circular-progress-theme-transition-duration, var(--forge-animation-duration-short3, 150ms));--_circular-progress-theme-transition-timing:var(--forge-circular-progress-theme-transition-timing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)))}.forge-circular-progress{flex:1;align-self:stretch;margin:var(--_circular-progress-padding)}.forge-circular-progress--indeterminate{will-change:transform;animation:linear infinite linear-rotate;animation-duration:calc(var(--_circular-progress-arc-duration) * 360 / 306)}.circle,.forge-circular-progress,.left,.right,.spinner,svg{position:absolute;inset:0}.center-content{display:flex;justify-content:center;align-items:center;width:100%;height:100%}.left{overflow:hidden;inset:0 50% 0 0}.left .circle{rotate:135deg;inset:0 -100% 0 0}.right{overflow:hidden;inset:0 0 0 50%}.right .circle{rotate:100deg;inset:0 0 0 -100%;animation-delay:calc(-.5 * var(--_circular-progress-arc-duration)),0s}.circle{box-sizing:border-box;border-radius:50%;border:solid calc(var(--_circular-progress-size) * var(--_circular-progress-track-width)/ 100);border-color:var(--_circular-progress-indicator-color) var(--_circular-progress-indicator-color) transparent transparent;transition:border-color var(--_circular-progress-theme-transition-duration) var(--_circular-progress-theme-transition-timing);will-change:transform;animation:expand-arc;animation-iteration-count:infinite;animation-fill-mode:both;animation-duration:var(--_circular-progress-arc-duration),calc(4 * var(--_circular-progress-arc-duration));animation-timing-function:cubic-bezier(0.4,0,0.2,1)}svg{transform:rotate(-90deg)}svg circle{cx:50%;cy:50%;r:calc(50% * (1 - var(--_circular-progress-track-width)/ 100));stroke-width:calc(var(--_circular-progress-track-width) * 1%);stroke-dasharray:100;fill:transparent}.progress{transition:stroke-dashoffset .5s cubic-bezier(0, 0, .2, 1),stroke var(--_circular-progress-theme-transition-duration) var(--_circular-progress-theme-transition-timing);stroke:var(--_circular-progress-indicator-color)}.track{stroke:transparent}.track-background{transition:stroke var(--_circular-progress-theme-transition-duration) var(--_circular-progress-theme-transition-timing);stroke:var(--_circular-progress-track-color)}.spinner{will-change:transform;animation:infinite both rotate-arc;animation-duration:calc(4 * var(--_circular-progress-arc-duration));animation-timing-function:cubic-bezier(0.4,0,0.2,1)}:host(:is([track],[determinate])) .forge-circular-progress{--_circular-progress-track-color:var(--_circular-progress-track-fill-color)}:host([theme=primary]) .forge-circular-progress{--_circular-progress-indicator-color:var(--forge-circular-progress-indicator-color, var(--forge-theme-primary, #3f51b5))}:host([theme=primary]:is([track],[determinate])) .forge-circular-progress{--_circular-progress-track-color:var(--forge-circular-progress-track-color, var(--forge-theme-primary-container, #d1d5ed))}:host([theme=secondary]) .forge-circular-progress{--_circular-progress-indicator-color:var(--forge-circular-progress-indicator-color, var(--forge-theme-secondary, #ffc107))}:host([theme=secondary]:is([track],[determinate])) .forge-circular-progress{--_circular-progress-track-color:var(--forge-circular-progress-track-color, var(--forge-theme-secondary-container, #fff0c3))}:host([theme=success]) .forge-circular-progress{--_circular-progress-indicator-color:var(--forge-circular-progress-indicator-color, var(--forge-theme-success, #2e7d32))}:host([theme=success]:is([track],[determinate])) .forge-circular-progress{--_circular-progress-track-color:var(--forge-circular-progress-track-color, var(--forge-theme-success-container, #cde0ce))}:host([theme=error]) .forge-circular-progress{--_circular-progress-indicator-color:var(--forge-circular-progress-indicator-color, var(--forge-theme-error, #b00020))}:host([theme=error]:is([track],[determinate])) .forge-circular-progress{--_circular-progress-track-color:var(--forge-circular-progress-track-color, var(--forge-theme-error-container, #ecc2c9))}:host([theme=warning]) .forge-circular-progress{--_circular-progress-indicator-color:var(--forge-circular-progress-indicator-color, var(--forge-theme-warning, #d14900))}:host([theme=warning]:is([track],[determinate])) .forge-circular-progress{--_circular-progress-track-color:var(--forge-circular-progress-track-color, var(--forge-theme-warning-container, #f4d3c2))}:host([theme=info]) .forge-circular-progress{--_circular-progress-indicator-color:var(--forge-circular-progress-indicator-color, var(--forge-theme-info, #1565c0))}:host([theme=info]:is([track],[determinate])) .forge-circular-progress{--_circular-progress-track-color:var(--forge-circular-progress-track-color, var(--forge-theme-info-container, #c7daf0))}@media screen and (forced-colors:active){.progress{stroke:CanvasText}.circle{border-color:CanvasText CanvasText Canvas Canvas}}@keyframes expand-arc{0%{transform:rotate(265deg)}50%{transform:rotate(130deg)}100%{transform:rotate(265deg)}}@keyframes rotate-arc{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}100%{transform:rotate(1080deg)}}@keyframes linear-rotate{to{transform:rotate(360deg)}}';
16
16
  /**
17
17
  * @tag forge-circular-progress
18
18
  *
@@ -7,6 +7,7 @@ import { DateRange, DayOfWeek, ICalendarComponent } from '../../calendar';
7
7
  import { ICalendarDropdown, ICalendarDropdownPopupConfig } from '../../calendar/calendar-dropdown';
8
8
  import { BaseAdapter, IBaseAdapter, IDateInputMaskOptions } from '../../core';
9
9
  import { BaseComponent } from '../../core/base/base-component';
10
+ import { IDatePickerCalendarDropdownText } from './base-date-picker-constants';
10
11
  export interface IBaseDatePickerAdapter extends IBaseAdapter {
11
12
  initialize(): void;
12
13
  initializeAccessibility(): void;
@@ -45,6 +46,7 @@ export interface IBaseDatePickerAdapter extends IBaseAdapter {
45
46
  getCalendarActiveDate(): Date | undefined;
46
47
  setCalendarYearRange(value: string): void;
47
48
  setCalendarLocale(locale: string | undefined): void;
49
+ setCalendarText(text: IDatePickerCalendarDropdownText): void;
48
50
  propagateCalendarKey(evt: KeyboardEvent): void;
49
51
  }
50
52
  export declare abstract class BaseDatePickerAdapter<T extends BaseComponent> extends BaseAdapter<T> implements IBaseDatePickerAdapter {
@@ -93,6 +95,7 @@ export declare abstract class BaseDatePickerAdapter<T extends BaseComponent> ext
93
95
  getCalendarActiveDate(): Date | undefined;
94
96
  setCalendarYearRange(value: string): void;
95
97
  setCalendarLocale(locale: string | undefined): void;
98
+ setCalendarText(text: IDatePickerCalendarDropdownText): void;
96
99
  propagateCalendarKey(evt: KeyboardEvent): void;
97
100
  tryCreateToggle(): void;
98
101
  protected _createToggleElement(): HTMLElement;
@@ -4,6 +4,7 @@
4
4
  * License: Apache-2.0
5
5
  */
6
6
  import { randomChars } from '@tylertech/forge-core';
7
+ import { CALENDAR_CONSTANTS } from '../../calendar';
7
8
  import { BaseAdapter } from '../../core';
8
9
  import { ICON_BUTTON_CONSTANTS } from '../../icon-button';
9
10
  import { TEXT_FIELD_CONSTANTS } from '../../text-field';
@@ -43,6 +44,7 @@ export class BaseDatePickerAdapter extends BaseAdapter {
43
44
  this._calendarDropdown.open(calendarConfig);
44
45
  this._calendarDropdown.dropdownElement?.style.setProperty('--forge-calendar-width', '320px');
45
46
  this._calendarDropdown.calendar?.style.setProperty('margin', '8px');
47
+ this.setCalendarText(dropdownConfig?.calendarText || {});
46
48
  }
47
49
  detachCalendar() {
48
50
  if (this._calendarDropdown && this._calendarDropdown.isOpen) {
@@ -104,6 +106,60 @@ export class BaseDatePickerAdapter extends BaseAdapter {
104
106
  this._calendarDropdown.locale = locale;
105
107
  }
106
108
  }
109
+ setCalendarText(text) {
110
+ const calendar = this._calendarDropdown?.calendar;
111
+ if (!calendar) {
112
+ return;
113
+ }
114
+ if (text.today) {
115
+ const el = document.createElement('span');
116
+ el.slot = CALENDAR_CONSTANTS.slots.TODAY_BUTTON_TEXT;
117
+ el.textContent = text.today;
118
+ calendar.append(el);
119
+ }
120
+ if (text.clear) {
121
+ const el = document.createElement('span');
122
+ el.slot = CALENDAR_CONSTANTS.slots.CLEAR_BUTTON_TEXT;
123
+ el.textContent = text.clear;
124
+ calendar.append(el);
125
+ }
126
+ if (text.nextMonth) {
127
+ const el = document.createElement('span');
128
+ el.slot = CALENDAR_CONSTANTS.slots.NEXT_MONTH_BUTTON_TEXT;
129
+ el.textContent = text.nextMonth;
130
+ calendar.append(el);
131
+ }
132
+ if (text.previousMonth) {
133
+ const el = document.createElement('span');
134
+ el.slot = CALENDAR_CONSTANTS.slots.PREVIOUS_MONTH_BUTTON_TEXT;
135
+ el.textContent = text.previousMonth;
136
+ calendar.append(el);
137
+ }
138
+ if (text.nextYear) {
139
+ const el = document.createElement('span');
140
+ el.slot = CALENDAR_CONSTANTS.slots.NEXT_YEAR_BUTTON_TEXT;
141
+ el.textContent = text.nextYear;
142
+ calendar.append(el);
143
+ }
144
+ if (text.previousYear) {
145
+ const el = document.createElement('span');
146
+ el.slot = CALENDAR_CONSTANTS.slots.PREVIOUS_YEAR_BUTTON_TEXT;
147
+ el.textContent = text.previousYear;
148
+ calendar.append(el);
149
+ }
150
+ if (text.nextYears) {
151
+ const el = document.createElement('span');
152
+ el.slot = CALENDAR_CONSTANTS.slots.NEXT_YEARS_BUTTON_TEXT;
153
+ el.textContent = text.nextYears;
154
+ calendar.append(el);
155
+ }
156
+ if (text.previousYears) {
157
+ const el = document.createElement('span');
158
+ el.slot = CALENDAR_CONSTANTS.slots.PREVIOUS_YEARS_BUTTON_TEXT;
159
+ el.textContent = text.previousYears;
160
+ calendar.append(el);
161
+ }
162
+ }
107
163
  propagateCalendarKey(evt) {
108
164
  this._calendarDropdown?.calendar?.handleKey(evt);
109
165
  }
@@ -25,6 +25,16 @@ export interface IDatePickerCalendarDropdownConfig<T> {
25
25
  clearCallback: () => void;
26
26
  disabledDaysOfWeek?: DayOfWeek[] | null;
27
27
  }
28
+ export interface IDatePickerCalendarDropdownText {
29
+ today?: string;
30
+ clear?: string;
31
+ previousMonth?: string;
32
+ nextMonth?: string;
33
+ previousYear?: string;
34
+ nextYear?: string;
35
+ previousYears?: string;
36
+ nextYears?: string;
37
+ }
28
38
  export declare const BASE_DATE_PICKER_CONSTANTS: {
29
39
  observedAttributes: {
30
40
  MIN: string;
@@ -42,6 +52,7 @@ export declare const BASE_DATE_PICKER_CONSTANTS: {
42
52
  DISABLED_DAYS_OF_WEEK: string;
43
53
  YEAR_RANGE: string;
44
54
  LOCALE: string;
55
+ CALENDAR_TEXT: string;
45
56
  };
46
57
  attributes: {
47
58
  TOGGLE: string;
@@ -18,7 +18,8 @@ const observedAttributes = {
18
18
  SHOW_CLEAR: 'show-clear',
19
19
  DISABLED_DAYS_OF_WEEK: 'disabled-days-of-week',
20
20
  YEAR_RANGE: 'year-range',
21
- LOCALE: 'locale'
21
+ LOCALE: 'locale',
22
+ CALENDAR_TEXT: 'calendar-text'
22
23
  };
23
24
  const attributes = {
24
25
  TOGGLE: 'forge-date-picker-toggle'
@@ -5,7 +5,7 @@
5
5
  */
6
6
  import { CalendarMode, DayOfWeek, ICalendarDateSelectEventData } from '../../calendar/calendar-constants';
7
7
  import { IBaseDatePickerAdapter } from './base-date-picker-adapter';
8
- import { DatePickerFormatCallback, DatePickerParseCallback, DatePickerPrepareMaskCallback, DatePickerValueMode } from './base-date-picker-constants';
8
+ import { DatePickerFormatCallback, DatePickerParseCallback, DatePickerPrepareMaskCallback, DatePickerValueMode, IDatePickerCalendarDropdownText } from './base-date-picker-constants';
9
9
  export interface IBaseDatePickerCore<TValue> {
10
10
  value: TValue | null | undefined;
11
11
  min: Date | string | null | undefined;
@@ -53,6 +53,7 @@ export declare abstract class BaseDatePickerCore<TAdapter extends IBaseDatePicke
53
53
  protected _disabledDaysOfWeek: DayOfWeek[];
54
54
  protected _yearRange: string;
55
55
  protected _locale: string | undefined;
56
+ protected _calendarText: IDatePickerCalendarDropdownText;
56
57
  protected _isInitialized: boolean;
57
58
  private _inputListener;
58
59
  private _inputKeydownListener;
@@ -154,4 +155,6 @@ export declare abstract class BaseDatePickerCore<TAdapter extends IBaseDatePicke
154
155
  set yearRange(value: string);
155
156
  get locale(): string | undefined;
156
157
  set locale(value: string | undefined);
158
+ get calendarText(): IDatePickerCalendarDropdownText;
159
+ set calendarText(value: IDatePickerCalendarDropdownText);
157
160
  }
@@ -26,6 +26,7 @@ export class BaseDatePickerCore {
26
26
  this._showToday = false;
27
27
  this._showClear = false;
28
28
  this._yearRange = '-50:+50';
29
+ this._calendarText = {};
29
30
  this._isInitialized = false;
30
31
  this._inputListener = evt => this._onInput(evt);
31
32
  this._inputKeydownListener = evt => this._onInputKeydown(evt);
@@ -131,7 +132,8 @@ export class BaseDatePickerCore {
131
132
  const dropdownConfig = {
132
133
  popupClasses: this._popupClasses,
133
134
  closeCallback: this._dropdownCloseListener,
134
- activeChangeCallback: this._activeChangeListener
135
+ activeChangeCallback: this._activeChangeListener,
136
+ calendarText: this._calendarText
135
137
  };
136
138
  // If the max date is in the past, set the calendar to the min date
137
139
  const currentDate = new Date().getTime();
@@ -633,4 +635,13 @@ export class BaseDatePickerCore {
633
635
  }
634
636
  }
635
637
  }
638
+ get calendarText() {
639
+ return { ...this._calendarText };
640
+ }
641
+ set calendarText(value) {
642
+ if (JSON.stringify(this._calendarText) !== JSON.stringify(value)) {
643
+ this._calendarText = { ...value };
644
+ this._adapter.setCalendarText(this._calendarText);
645
+ }
646
+ }
636
647
  }
@@ -5,7 +5,7 @@
5
5
  */
6
6
  import { DayOfWeek } from '../../calendar/calendar-constants';
7
7
  import { BaseComponent, IBaseComponent } from '../../core/base/base-component';
8
- import { DatePickerFormatCallback, DatePickerParseCallback, DatePickerPrepareMaskCallback, DatePickerValueMode } from './base-date-picker-constants';
8
+ import { DatePickerFormatCallback, DatePickerParseCallback, DatePickerPrepareMaskCallback, DatePickerValueMode, IDatePickerCalendarDropdownText } from './base-date-picker-constants';
9
9
  import { BaseDatePickerCore } from './base-date-picker-core';
10
10
  import { IBaseDatePickerAdapter } from './base-date-picker-adapter';
11
11
  export interface IBaseDatePickerComponent<TValue> extends IBaseComponent {
@@ -31,9 +31,11 @@ export interface IBaseDatePickerComponent<TValue> extends IBaseComponent {
31
31
  disabledDaysOfWeek: DayOfWeek[];
32
32
  yearRange: string;
33
33
  locale: string | undefined;
34
+ calendarText: IDatePickerCalendarDropdownText;
34
35
  }
35
36
  /**
36
37
  * @property {boolean} [allowInvalidDate=false] - Whether to allow an invalid date to be input. When true, the date picker will not clear out the value of the input if the date was invalid (i.e. could not be parsed).
38
+ * @property {DatePickerCalendarDropdownText} calendarText - Customized strings to display in the calendar dropdown UI.
37
39
  * @property {boolean} [disabled=false] - Whether the date picker is disabled or not.
38
40
  * @property {(date: Date) => boolean} disableDayCallback - The callback to use for testing whether a specific date should be disabled or not.
39
41
  * @property {Date | Date[] | null | undefined} disabledDates - The dates that are restricted from being selected.
@@ -57,6 +59,7 @@ export interface IBaseDatePickerComponent<TValue> extends IBaseComponent {
57
59
  * @property {string} yearRange - The year range.
58
60
  *
59
61
  * @attribute {boolean} [allow-invalid-date=false] - Whether to allow an invalid date to be input. When true, the date picker will not clear out the value of the input if the date was invalid (i.e. could not be parsed).
62
+ * @attribute {DatePickerCalendarDropdownText} [calendar-text] - Customized strings to display in the calendar dropdown UI.
60
63
  * @attribute {boolean} [disabled=false] - Whether the date picker is disabled or not.
61
64
  * @attribute {string} [disabled-days-of-week] - The days of the week to disable from selection.
62
65
  * @attribute {string} [locale] - The locale to use.
@@ -100,4 +103,5 @@ export declare abstract class BaseDatePickerComponent<TPublicValue, TPrivateValu
100
103
  disableDayCallback: (date: Date) => boolean;
101
104
  yearRange: string;
102
105
  locale: string | undefined;
106
+ calendarText: IDatePickerCalendarDropdownText;
103
107
  }
@@ -9,6 +9,7 @@ import { BaseComponent } from '../../core/base/base-component';
9
9
  import { BASE_DATE_PICKER_CONSTANTS } from './base-date-picker-constants';
10
10
  /**
11
11
  * @property {boolean} [allowInvalidDate=false] - Whether to allow an invalid date to be input. When true, the date picker will not clear out the value of the input if the date was invalid (i.e. could not be parsed).
12
+ * @property {DatePickerCalendarDropdownText} calendarText - Customized strings to display in the calendar dropdown UI.
12
13
  * @property {boolean} [disabled=false] - Whether the date picker is disabled or not.
13
14
  * @property {(date: Date) => boolean} disableDayCallback - The callback to use for testing whether a specific date should be disabled or not.
14
15
  * @property {Date | Date[] | null | undefined} disabledDates - The dates that are restricted from being selected.
@@ -32,6 +33,7 @@ import { BASE_DATE_PICKER_CONSTANTS } from './base-date-picker-constants';
32
33
  * @property {string} yearRange - The year range.
33
34
  *
34
35
  * @attribute {boolean} [allow-invalid-date=false] - Whether to allow an invalid date to be input. When true, the date picker will not clear out the value of the input if the date was invalid (i.e. could not be parsed).
36
+ * @attribute {DatePickerCalendarDropdownText} [calendar-text] - Customized strings to display in the calendar dropdown UI.
35
37
  * @attribute {boolean} [disabled=false] - Whether the date picker is disabled or not.
36
38
  * @attribute {string} [disabled-days-of-week] - The days of the week to disable from selection.
37
39
  * @attribute {string} [locale] - The locale to use.
@@ -111,6 +113,9 @@ export class BaseDatePickerComponent extends BaseComponent {
111
113
  case BASE_DATE_PICKER_CONSTANTS.observedAttributes.LOCALE:
112
114
  this.locale = newValue;
113
115
  break;
116
+ case BASE_DATE_PICKER_CONSTANTS.observedAttributes.CALENDAR_TEXT:
117
+ this.calendarText = JSON.parse(newValue);
118
+ break;
114
119
  }
115
120
  }
116
121
  }
@@ -180,3 +185,6 @@ __decorate([
180
185
  __decorate([
181
186
  coreProperty()
182
187
  ], BaseDatePickerComponent.prototype, "locale", void 0);
188
+ __decorate([
189
+ coreProperty()
190
+ ], BaseDatePickerComponent.prototype, "calendarText", void 0);
@@ -15,6 +15,7 @@ export interface IFieldAdapter extends IBaseAdapter<IFieldComponent> {
15
15
  setLabelPosition(value: FieldLabelPosition): void;
16
16
  setFloatingLabel(value: boolean, skipAnimation?: boolean): void;
17
17
  handleSlotChange(slot: HTMLSlotElement): void;
18
+ initializeSlots(): void;
18
19
  }
19
20
  export declare class FieldAdapter extends BaseAdapter<IFieldComponent> implements IFieldAdapter {
20
21
  private readonly _rootElement;
@@ -41,6 +42,7 @@ export declare class FieldAdapter extends BaseAdapter<IFieldComponent> implement
41
42
  * nodes.
42
43
  */
43
44
  handleSlotChange(slot: HTMLSlotElement): void;
45
+ initializeSlots(): void;
44
46
  /**
45
47
  * Gets `<label>` and `<forge-label>` elements from the default slot and assigns them to the
46
48
  * 'label' slot.
@@ -87,6 +87,10 @@ export class FieldAdapter extends BaseAdapter {
87
87
  toggleClass(this._rootElement, !!slot.assignedNodes({ flatten: true }).length, classMap[slot.name]);
88
88
  }
89
89
  }
90
+ initializeSlots() {
91
+ const slotElements = this._rootElement.querySelectorAll('slot');
92
+ slotElements.forEach(slotElement => this.handleSlotChange(slotElement));
93
+ }
90
94
  /**
91
95
  * Gets `<label>` and `<forge-label>` elements from the default slot and assigns them to the
92
96
  * 'label' slot.
@@ -28,6 +28,7 @@ export class FieldCore {
28
28
  }
29
29
  initialize() {
30
30
  this._adapter.addRootListener('slotchange', this._slotChangeListener);
31
+ this._adapter.initializeSlots();
31
32
  this._adapter.tryApplyGlobalConfiguration(['labelPosition', 'variant']);
32
33
  this._adapter.setLabelPosition(this._labelPosition);
33
34
  if (this._popoverIcon) {