@vonage/vivid 4.26.0 → 4.28.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 (131) hide show
  1. package/custom-elements.json +2398 -2120
  2. package/lib/accordion-item/accordion-item.d.ts +1 -1
  3. package/lib/alert/alert.d.ts +3 -3
  4. package/lib/audio-player/audio-player.d.ts +2 -2
  5. package/lib/avatar/avatar.d.ts +393 -1
  6. package/lib/avatar/avatar.template.d.ts +2 -2
  7. package/lib/badge/badge.d.ts +1 -1
  8. package/lib/banner/banner.d.ts +3 -3
  9. package/lib/button/button.d.ts +3 -3
  10. package/lib/checkbox/checkbox.d.ts +7 -7
  11. package/lib/combobox/combobox.d.ts +8 -8
  12. package/lib/data-grid/data-grid-cell.d.ts +2 -2
  13. package/lib/date-picker/date-picker.d.ts +71 -71
  14. package/lib/date-picker/date-picker.template.d.ts +1 -1
  15. package/lib/date-range-picker/date-range-picker.d.ts +42 -42
  16. package/lib/date-range-picker/date-range-picker.template.d.ts +1 -1
  17. package/lib/date-time-picker/date-time-picker.d.ts +60 -60
  18. package/lib/date-time-picker/date-time-picker.template.d.ts +1 -1
  19. package/lib/dial-pad/dial-pad.d.ts +2 -2
  20. package/lib/dialog/dialog.d.ts +2 -2
  21. package/lib/fab/fab.d.ts +1 -1
  22. package/lib/file-picker/file-picker.d.ts +7 -7
  23. package/lib/menu/menu.d.ts +1 -1
  24. package/lib/menu-item/menu-item.d.ts +1 -1
  25. package/lib/nav-disclosure/nav-disclosure.d.ts +1 -1
  26. package/lib/nav-item/nav-item.d.ts +1 -1
  27. package/lib/note/note.d.ts +1 -1
  28. package/lib/number-field/number-field.d.ts +10 -10
  29. package/lib/option/option.d.ts +1 -1
  30. package/lib/pagination/pagination.d.ts +2 -2
  31. package/lib/radio/radio.d.ts +3 -3
  32. package/lib/radio-group/radio-group.d.ts +3 -3
  33. package/lib/range-slider/range-slider.d.ts +4 -4
  34. package/lib/rich-text-editor/menubar/menubar.d.ts +2 -2
  35. package/lib/rich-text-editor/rich-text-editor.d.ts +2 -2
  36. package/lib/searchable-select/locale.d.ts +1 -1
  37. package/lib/searchable-select/option-tag.d.ts +2 -2
  38. package/lib/searchable-select/searchable-select.d.ts +10 -10
  39. package/lib/select/select.d.ts +8 -8
  40. package/lib/slider/slider.d.ts +3 -3
  41. package/lib/split-button/split-button.d.ts +3 -3
  42. package/lib/switch/switch.d.ts +1 -1
  43. package/lib/tab/tab.d.ts +3 -3
  44. package/lib/tag/locale.d.ts +3 -0
  45. package/lib/tag/tag.d.ts +341 -4
  46. package/lib/text-area/text-area.d.ts +10 -10
  47. package/lib/text-field/text-field.d.ts +11 -11
  48. package/lib/time-picker/time-picker.d.ts +19 -19
  49. package/lib/toggletip/toggletip.d.ts +1 -1
  50. package/lib/tooltip/tooltip.d.ts +1 -1
  51. package/lib/tree-item/tree-item.d.ts +1 -1
  52. package/lib/video-player/video-player.d.ts +2 -2
  53. package/locales/de-DE.cjs +19 -2
  54. package/locales/de-DE.js +19 -2
  55. package/locales/en-GB.cjs +19 -2
  56. package/locales/en-GB.js +19 -2
  57. package/locales/en-US.cjs +19 -2
  58. package/locales/en-US.js +19 -2
  59. package/locales/ja-JP.cjs +19 -2
  60. package/locales/ja-JP.js +19 -2
  61. package/locales/zh-CN.cjs +19 -2
  62. package/locales/zh-CN.js +19 -2
  63. package/package.json +73 -45
  64. package/shared/calendar-picker.template.cjs +48 -22
  65. package/shared/calendar-picker.template.js +48 -22
  66. package/shared/definition17.cjs +3 -3
  67. package/shared/definition17.js +3 -3
  68. package/shared/definition18.cjs +8 -1
  69. package/shared/definition18.js +8 -1
  70. package/shared/definition19.cjs +9 -2
  71. package/shared/definition19.js +9 -2
  72. package/shared/definition2.cjs +1 -1
  73. package/shared/definition2.js +1 -1
  74. package/shared/definition20.cjs +3 -1
  75. package/shared/definition20.js +3 -1
  76. package/shared/definition28.cjs +2 -2
  77. package/shared/definition28.js +2 -2
  78. package/shared/definition30.cjs +3 -2
  79. package/shared/definition30.js +3 -2
  80. package/shared/definition31.cjs +5 -1
  81. package/shared/definition31.js +5 -1
  82. package/shared/definition36.cjs +1 -1
  83. package/shared/definition36.js +1 -1
  84. package/shared/definition4.cjs +1 -1
  85. package/shared/definition4.js +1 -1
  86. package/shared/definition41.cjs +1 -1
  87. package/shared/definition41.js +1 -1
  88. package/shared/definition44.cjs +129 -117
  89. package/shared/definition44.js +130 -118
  90. package/shared/definition45.cjs +15 -5
  91. package/shared/definition45.js +15 -5
  92. package/shared/definition49.cjs +4 -4
  93. package/shared/definition49.js +4 -4
  94. package/shared/definition54.cjs +2 -2
  95. package/shared/definition54.js +2 -2
  96. package/shared/definition56.cjs +5 -4
  97. package/shared/definition56.js +5 -4
  98. package/shared/definition57.cjs +1 -1
  99. package/shared/definition57.js +1 -1
  100. package/shared/definition58.cjs +1 -1
  101. package/shared/definition58.js +1 -1
  102. package/shared/definition59.cjs +3 -1
  103. package/shared/definition59.js +3 -1
  104. package/shared/definition6.cjs +45 -12
  105. package/shared/definition6.js +45 -12
  106. package/shared/definition64.cjs +136 -38
  107. package/shared/definition64.js +136 -38
  108. package/shared/definition67.cjs +27 -14
  109. package/shared/definition67.js +27 -14
  110. package/shared/form-associated.cjs +4 -0
  111. package/shared/form-associated.js +4 -0
  112. package/shared/localization/Locale.d.ts +2 -0
  113. package/shared/picker-field/mixins/calendar-picker.d.ts +1 -1
  114. package/shared/picker-field/mixins/calendar-picker.locale.d.ts +5 -0
  115. package/shared/picker-field/mixins/calendar-picker.template.d.ts +1 -1
  116. package/shared/picker-field/mixins/calendar-segments/segment.d.ts +1 -0
  117. package/shared/picker-field/mixins/inline-time-picker/inline-time-picker.d.ts +1 -0
  118. package/shared/picker-field/mixins/min-max-calendar-picker.d.ts +2 -2
  119. package/shared/picker-field/mixins/single-date-picker.d.ts +1 -1
  120. package/shared/time-selection-picker.template.cjs +71 -22
  121. package/shared/time-selection-picker.template.js +71 -22
  122. package/shared/vivid-element.cjs +1 -1
  123. package/shared/vivid-element.js +1 -1
  124. package/styles/core/all.css +5 -5
  125. package/styles/core/theme.css +2 -2
  126. package/styles/core/typography.css +4 -4
  127. package/styles/fonts/spezia-variable.css +15 -15
  128. package/styles/tokens/theme-dark.css +4 -4
  129. package/styles/tokens/theme-light.css +4 -4
  130. package/styles/tokens/vivid-2-compat.css +1 -1
  131. package/vivid.api.json +241 -211
@@ -4,6 +4,7 @@ const definition = require('./definition28.cjs');
4
4
  const vividElement = require('./vivid-element.cjs');
5
5
  const affix = require('./affix.cjs');
6
6
  const delegatesAria = require('./delegates-aria.cjs');
7
+ const localized = require('./localized.cjs');
7
8
  const classNames = require('./class-names.cjs');
8
9
  const when = require('./when.cjs');
9
10
 
@@ -16,7 +17,7 @@ var __decorateClass = (decorators, target, key, kind) => {
16
17
  if (result) __defProp(target, key, result);
17
18
  return result;
18
19
  };
19
- class Tag extends delegatesAria.DelegatesAria(affix.AffixIcon(vividElement.VividElement)) {
20
+ class Tag extends localized.Localized(delegatesAria.DelegatesAria(affix.AffixIcon(vividElement.VividElement))) {
20
21
  constructor() {
21
22
  super(...arguments);
22
23
  this.removable = false;
@@ -77,7 +78,7 @@ __decorateClass([
77
78
  vividElement.attr({ mode: "boolean" })
78
79
  ], Tag.prototype, "selected");
79
80
 
80
- const styles = ".base.connotation-cta{--_connotation-color-contrast: var(--vvd-tag-cta-contrast, var(--vvd-color-cta-800));--_connotation-color-soft: var(--vvd-tag-cta-soft, var(--vvd-color-cta-100));--_connotation-color-pale: var(--vvd-tag-cta-pale, var(--vvd-color-cta-300));--_connotation-color-fierce: var(--vvd-tag-cta-fierce, var(--vvd-color-cta-700));--_connotation-color-firm-all: var(--vvd-tag-cta-firm-all, var(--vvd-color-cta-600));--_connotation-color-faint: var(--vvd-tag-cta-faint, var(--vvd-color-cta-50));--_connotation-color-dim: var(--vvd-tag-cta-dim, var(--vvd-color-cta-200))}.base:not(.connotation-cta){--_connotation-color-contrast: var(--vvd-tag-accent-contrast, var(--vvd-color-neutral-800));--_connotation-color-soft: var(--vvd-tag-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-pale: var(--vvd-tag-accent-pale, var(--vvd-color-neutral-300));--_connotation-color-fierce: var(--vvd-tag-accent-fierce, var(--vvd-color-neutral-700));--_connotation-color-firm-all: var(--vvd-tag-accent-firm-all, var(--vvd-color-neutral-600));--_connotation-color-faint: var(--vvd-tag-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-dim: var(--vvd-tag-accent-dim, var(--vvd-color-neutral-200))}.base{--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.base.appearance-duotone{--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--_connotation-color-pale)}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)).appearance-duotone{--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--_connotation-color-firm-all)}.base:where(.active,:active):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: var(--_connotation-color-dim);--_appearance-color-outline: transparent}.base:where(.active,:active):where(:not(.disabled,:disabled)).appearance-duotone{--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: var(--_connotation-color-pale)}.base:where(.disabled,:disabled){--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: transparent}.base:where(.disabled,:disabled).appearance-duotone{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--vvd-color-neutral-100)}.base:where(.selected):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: var(--_connotation-color-pale);--_appearance-color-outline: transparent}.base:where(.selected):where(:not(.disabled,:disabled)).appearance-duotone{--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: var(--_connotation-color-pale)}.base{--tag-block-size: calc(1px*(24 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) ;position:relative;display:inline-flex;box-sizing:border-box;align-items:center;background-color:var(--_appearance-color-fill);block-size:var(--tag-block-size);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);color:var(--_appearance-color-text);column-gap:8px;font:var(--vvd-typography-base-bold);max-inline-size:100%;padding-inline:8px;vertical-align:middle}.base:not(.shape-pill){border-radius:4px}.base.shape-pill{border-radius:16px}.base:focus-visible{--focus-stroke-gap-color: transparent;box-shadow:0 0 0 4px color-mix(in srgb,var(--vvd-color-cta-500),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px))}@supports (user-select: none){.base{user-select:none}}.base:not(.disabled){cursor:pointer}.base.disabled{cursor:not-allowed;pointer-events:none}.base.removable{cursor:auto}.label{overflow:hidden;max-inline-size:100%;text-overflow:ellipsis;white-space:nowrap}slot[name=icon]{font-size:calc(var(--tag-block-size) / 1.5);line-height:1}.dismiss-button{display:flex;align-items:center;border-radius:inherit;background-color:var(--_appearance-color-fill);cursor:pointer}";
81
+ const styles = ".base.connotation-cta{--_connotation-color-contrast: var(--vvd-tag-cta-contrast, var(--vvd-color-cta-800));--_connotation-color-soft: var(--vvd-tag-cta-soft, var(--vvd-color-cta-100));--_connotation-color-pale: var(--vvd-tag-cta-pale, var(--vvd-color-cta-300));--_connotation-color-fierce: var(--vvd-tag-cta-fierce, var(--vvd-color-cta-700));--_connotation-color-firm-all: var(--vvd-tag-cta-firm-all, var(--vvd-color-cta-600));--_connotation-color-faint: var(--vvd-tag-cta-faint, var(--vvd-color-cta-50));--_connotation-color-dim: var(--vvd-tag-cta-dim, var(--vvd-color-cta-200))}.base:not(.connotation-cta){--_connotation-color-contrast: var(--vvd-tag-accent-contrast, var(--vvd-color-neutral-800));--_connotation-color-soft: var(--vvd-tag-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-pale: var(--vvd-tag-accent-pale, var(--vvd-color-neutral-300));--_connotation-color-fierce: var(--vvd-tag-accent-fierce, var(--vvd-color-neutral-700));--_connotation-color-firm-all: var(--vvd-tag-accent-firm-all, var(--vvd-color-neutral-600));--_connotation-color-faint: var(--vvd-tag-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-dim: var(--vvd-tag-accent-dim, var(--vvd-color-neutral-200))}.base{--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.base.appearance-duotone{--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--_connotation-color-pale)}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)).appearance-duotone{--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--_connotation-color-firm-all)}.base:where(.active,:active):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: var(--_connotation-color-dim);--_appearance-color-outline: transparent}.base:where(.active,:active):where(:not(.disabled,:disabled)).appearance-duotone{--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: var(--_connotation-color-pale)}.base:where(.disabled,:disabled){--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: transparent}.base:where(.disabled,:disabled).appearance-duotone{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--vvd-color-neutral-100)}.base:where(.selected):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: var(--_connotation-color-pale);--_appearance-color-outline: transparent}.base:where(.selected):where(:not(.disabled,:disabled)).appearance-duotone{--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: var(--_connotation-color-pale)}.base{--tag-block-size: calc(1px*(24 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) ;position:relative;display:inline-flex;box-sizing:border-box;align-items:center;background-color:var(--_appearance-color-fill);block-size:var(--tag-block-size);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);color:var(--_appearance-color-text);column-gap:8px;font:var(--vvd-typography-base-bold);max-inline-size:100%;padding-inline:8px;vertical-align:middle}.base:not(.shape-pill){border-radius:4px}.base.shape-pill{border-radius:16px}.base:focus-visible{--focus-stroke-gap-color: transparent;box-shadow:0 0 0 4px color-mix(in srgb,var(--vvd-color-cta-500),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px))}@supports (user-select: none){.base{user-select:none}}.base:not(.disabled){cursor:pointer}.base.disabled{cursor:not-allowed;pointer-events:none}.base.removable{cursor:auto}.label{overflow:hidden;max-inline-size:100%;text-overflow:ellipsis;white-space:nowrap}slot[name=icon]{font-size:calc(var(--tag-block-size) / 1.5);line-height:1}.dismiss-button{display:flex;align-items:center;padding:0;border:none;border-radius:inherit;background-color:var(--_appearance-color-fill);cursor:pointer}.dismiss-button:focus{--focus-stroke-gap-color: transparent;box-shadow:0 0 0 4px color-mix(in srgb,var(--vvd-color-cta-500),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px))}";
81
82
 
82
83
  const getClasses = ({
83
84
  connotation,
@@ -100,8 +101,8 @@ const getClasses = ({
100
101
  function renderDismissButton(iconTag) {
101
102
  return vividElement.html`
102
103
  <span
103
- aria-hidden="true"
104
104
  class="dismiss-button"
105
+ aria-label="${(x) => x.locale.tag.remove(x.label)}"
105
106
  @click="${(x) => x.remove()}">
106
107
  <${iconTag} name="close-line"></${iconTag}>
107
108
  </span>`;
@@ -116,7 +117,7 @@ const tagTemplate = (context) => {
116
117
  ariaDisabled: (x) => x.disabled,
117
118
  ariaSelected: (x) => x.selectable
118
119
  })}
119
- tabindex="${(x) => x.disabled ? null : 0}"
120
+ tabindex="${(x) => x.disabled || x.removable ? null : 0}"
120
121
  @keydown="${(x, c) => x.handleKeydown(c.event)}"
121
122
  @click="${(x) => x.handleClick()}"
122
123
  >
@@ -2,6 +2,7 @@ import { I as Icon, i as iconDefinition } from './definition28.js';
2
2
  import { V as VividElement, a as attr, h as html, d as createRegisterFunction, f as defineVividComponent } from './vivid-element.js';
3
3
  import { b as AffixIcon, a as affixIconTemplateFactory, I as IconWrapper } from './affix.js';
4
4
  import { D as DelegatesAria, d as delegateAria } from './delegates-aria.js';
5
+ import { L as Localized } from './localized.js';
5
6
  import { c as classNames } from './class-names.js';
6
7
  import { w as when } from './when.js';
7
8
 
@@ -14,7 +15,7 @@ var __decorateClass = (decorators, target, key, kind) => {
14
15
  if (result) __defProp(target, key, result);
15
16
  return result;
16
17
  };
17
- class Tag extends DelegatesAria(AffixIcon(VividElement)) {
18
+ class Tag extends Localized(DelegatesAria(AffixIcon(VividElement))) {
18
19
  constructor() {
19
20
  super(...arguments);
20
21
  this.removable = false;
@@ -75,7 +76,7 @@ __decorateClass([
75
76
  attr({ mode: "boolean" })
76
77
  ], Tag.prototype, "selected");
77
78
 
78
- const styles = ".base.connotation-cta{--_connotation-color-contrast: var(--vvd-tag-cta-contrast, var(--vvd-color-cta-800));--_connotation-color-soft: var(--vvd-tag-cta-soft, var(--vvd-color-cta-100));--_connotation-color-pale: var(--vvd-tag-cta-pale, var(--vvd-color-cta-300));--_connotation-color-fierce: var(--vvd-tag-cta-fierce, var(--vvd-color-cta-700));--_connotation-color-firm-all: var(--vvd-tag-cta-firm-all, var(--vvd-color-cta-600));--_connotation-color-faint: var(--vvd-tag-cta-faint, var(--vvd-color-cta-50));--_connotation-color-dim: var(--vvd-tag-cta-dim, var(--vvd-color-cta-200))}.base:not(.connotation-cta){--_connotation-color-contrast: var(--vvd-tag-accent-contrast, var(--vvd-color-neutral-800));--_connotation-color-soft: var(--vvd-tag-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-pale: var(--vvd-tag-accent-pale, var(--vvd-color-neutral-300));--_connotation-color-fierce: var(--vvd-tag-accent-fierce, var(--vvd-color-neutral-700));--_connotation-color-firm-all: var(--vvd-tag-accent-firm-all, var(--vvd-color-neutral-600));--_connotation-color-faint: var(--vvd-tag-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-dim: var(--vvd-tag-accent-dim, var(--vvd-color-neutral-200))}.base{--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.base.appearance-duotone{--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--_connotation-color-pale)}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)).appearance-duotone{--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--_connotation-color-firm-all)}.base:where(.active,:active):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: var(--_connotation-color-dim);--_appearance-color-outline: transparent}.base:where(.active,:active):where(:not(.disabled,:disabled)).appearance-duotone{--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: var(--_connotation-color-pale)}.base:where(.disabled,:disabled){--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: transparent}.base:where(.disabled,:disabled).appearance-duotone{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--vvd-color-neutral-100)}.base:where(.selected):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: var(--_connotation-color-pale);--_appearance-color-outline: transparent}.base:where(.selected):where(:not(.disabled,:disabled)).appearance-duotone{--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: var(--_connotation-color-pale)}.base{--tag-block-size: calc(1px*(24 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) ;position:relative;display:inline-flex;box-sizing:border-box;align-items:center;background-color:var(--_appearance-color-fill);block-size:var(--tag-block-size);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);color:var(--_appearance-color-text);column-gap:8px;font:var(--vvd-typography-base-bold);max-inline-size:100%;padding-inline:8px;vertical-align:middle}.base:not(.shape-pill){border-radius:4px}.base.shape-pill{border-radius:16px}.base:focus-visible{--focus-stroke-gap-color: transparent;box-shadow:0 0 0 4px color-mix(in srgb,var(--vvd-color-cta-500),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px))}@supports (user-select: none){.base{user-select:none}}.base:not(.disabled){cursor:pointer}.base.disabled{cursor:not-allowed;pointer-events:none}.base.removable{cursor:auto}.label{overflow:hidden;max-inline-size:100%;text-overflow:ellipsis;white-space:nowrap}slot[name=icon]{font-size:calc(var(--tag-block-size) / 1.5);line-height:1}.dismiss-button{display:flex;align-items:center;border-radius:inherit;background-color:var(--_appearance-color-fill);cursor:pointer}";
79
+ const styles = ".base.connotation-cta{--_connotation-color-contrast: var(--vvd-tag-cta-contrast, var(--vvd-color-cta-800));--_connotation-color-soft: var(--vvd-tag-cta-soft, var(--vvd-color-cta-100));--_connotation-color-pale: var(--vvd-tag-cta-pale, var(--vvd-color-cta-300));--_connotation-color-fierce: var(--vvd-tag-cta-fierce, var(--vvd-color-cta-700));--_connotation-color-firm-all: var(--vvd-tag-cta-firm-all, var(--vvd-color-cta-600));--_connotation-color-faint: var(--vvd-tag-cta-faint, var(--vvd-color-cta-50));--_connotation-color-dim: var(--vvd-tag-cta-dim, var(--vvd-color-cta-200))}.base:not(.connotation-cta){--_connotation-color-contrast: var(--vvd-tag-accent-contrast, var(--vvd-color-neutral-800));--_connotation-color-soft: var(--vvd-tag-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-pale: var(--vvd-tag-accent-pale, var(--vvd-color-neutral-300));--_connotation-color-fierce: var(--vvd-tag-accent-fierce, var(--vvd-color-neutral-700));--_connotation-color-firm-all: var(--vvd-tag-accent-firm-all, var(--vvd-color-neutral-600));--_connotation-color-faint: var(--vvd-tag-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-dim: var(--vvd-tag-accent-dim, var(--vvd-color-neutral-200))}.base{--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.base.appearance-duotone{--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--_connotation-color-pale)}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: transparent}.base:where(.hover,:hover):where(:not(.disabled,:disabled,.readonly)).appearance-duotone{--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--_connotation-color-firm-all)}.base:where(.active,:active):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: var(--_connotation-color-dim);--_appearance-color-outline: transparent}.base:where(.active,:active):where(:not(.disabled,:disabled)).appearance-duotone{--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: var(--_connotation-color-pale)}.base:where(.disabled,:disabled){--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: var(--vvd-color-neutral-100);--_appearance-color-outline: transparent}.base:where(.disabled,:disabled).appearance-duotone{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--vvd-color-neutral-100)}.base:where(.selected):where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: var(--_connotation-color-pale);--_appearance-color-outline: transparent}.base:where(.selected):where(:not(.disabled,:disabled)).appearance-duotone{--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: var(--_connotation-color-pale)}.base{--tag-block-size: calc(1px*(24 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) ;position:relative;display:inline-flex;box-sizing:border-box;align-items:center;background-color:var(--_appearance-color-fill);block-size:var(--tag-block-size);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);color:var(--_appearance-color-text);column-gap:8px;font:var(--vvd-typography-base-bold);max-inline-size:100%;padding-inline:8px;vertical-align:middle}.base:not(.shape-pill){border-radius:4px}.base.shape-pill{border-radius:16px}.base:focus-visible{--focus-stroke-gap-color: transparent;box-shadow:0 0 0 4px color-mix(in srgb,var(--vvd-color-cta-500),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px))}@supports (user-select: none){.base{user-select:none}}.base:not(.disabled){cursor:pointer}.base.disabled{cursor:not-allowed;pointer-events:none}.base.removable{cursor:auto}.label{overflow:hidden;max-inline-size:100%;text-overflow:ellipsis;white-space:nowrap}slot[name=icon]{font-size:calc(var(--tag-block-size) / 1.5);line-height:1}.dismiss-button{display:flex;align-items:center;padding:0;border:none;border-radius:inherit;background-color:var(--_appearance-color-fill);cursor:pointer}.dismiss-button:focus{--focus-stroke-gap-color: transparent;box-shadow:0 0 0 4px color-mix(in srgb,var(--vvd-color-cta-500),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px))}";
79
80
 
80
81
  const getClasses = ({
81
82
  connotation,
@@ -98,8 +99,8 @@ const getClasses = ({
98
99
  function renderDismissButton(iconTag) {
99
100
  return html`
100
101
  <span
101
- aria-hidden="true"
102
102
  class="dismiss-button"
103
+ aria-label="${(x) => x.locale.tag.remove(x.label)}"
103
104
  @click="${(x) => x.remove()}">
104
105
  <${iconTag} name="close-line"></${iconTag}>
105
106
  </span>`;
@@ -114,7 +115,7 @@ const tagTemplate = (context) => {
114
115
  ariaDisabled: (x) => x.disabled,
115
116
  ariaSelected: (x) => x.selectable
116
117
  })}
117
- tabindex="${(x) => x.disabled ? null : 0}"
118
+ tabindex="${(x) => x.disabled || x.removable ? null : 0}"
118
119
  @keydown="${(x, c) => x.handleKeydown(c.event)}"
119
120
  @click="${(x) => x.handleClick()}"
120
121
  >
@@ -108,7 +108,7 @@ class TextArea extends mixins.WithFeedback(
108
108
  * @internal
109
109
  */
110
110
  this.proxy = document.createElement("textarea");
111
- // eslint-disable-next-line @nrwl/nx/workspace/no-attribute-default-value
111
+ // eslint-disable-next-line @repo/repo/no-attribute-default-value
112
112
  this.resize = TextAreaResize.none;
113
113
  this.cols = 20;
114
114
  /**
@@ -106,7 +106,7 @@ class TextArea extends WithFeedback(
106
106
  * @internal
107
107
  */
108
108
  this.proxy = document.createElement("textarea");
109
- // eslint-disable-next-line @nrwl/nx/workspace/no-attribute-default-value
109
+ // eslint-disable-next-line @repo/repo/no-attribute-default-value
110
110
  this.resize = TextAreaResize.none;
111
111
  this.cols = 20;
112
112
  /**
@@ -80,7 +80,7 @@ class TextField extends mixins.WithLightDOMFeedback(
80
80
  * @internal
81
81
  */
82
82
  this.proxy = document.createElement("input");
83
- // eslint-disable-next-line @nrwl/nx/workspace/no-attribute-default-value
83
+ // eslint-disable-next-line @repo/repo/no-attribute-default-value
84
84
  this.type = TextFieldType.text;
85
85
  this.#randomId = mixins.generateRandomId();
86
86
  }
@@ -78,7 +78,7 @@ class TextField extends WithLightDOMFeedback(
78
78
  * @internal
79
79
  */
80
80
  this.proxy = document.createElement("input");
81
- // eslint-disable-next-line @nrwl/nx/workspace/no-attribute-default-value
81
+ // eslint-disable-next-line @repo/repo/no-attribute-default-value
82
82
  this.type = TextFieldType.text;
83
83
  this.#randomId = generateRandomId();
84
84
  }
@@ -6,6 +6,7 @@ const definition$2 = require('./definition11.cjs');
6
6
  const vividElement = require('./vivid-element.cjs');
7
7
  const pickerField_template = require('./picker-field.template.cjs');
8
8
  const timeSelectionPicker_template = require('./time-selection-picker.template.cjs');
9
+ const definition$3 = require('./definition66.cjs');
9
10
 
10
11
  const TimePickerTemplate = (context) => {
11
12
  return pickerField_template.PickerFieldTemplate(context, timeSelectionPicker_template.TimeSelectionPickerTemplate(context, 6), {
@@ -22,7 +23,8 @@ const timePickerDefinition = vividElement.defineVividComponent(
22
23
  definition.textFieldDefinition,
23
24
  definition$1.popupDefinition,
24
25
  definition$2.buttonDefinition,
25
- timeSelectionPicker_template.inlineTimePickerDefinition
26
+ timeSelectionPicker_template.inlineTimePickerDefinition,
27
+ definition$3.visuallyHiddenDefinition
26
28
  ],
27
29
  {
28
30
  styles: pickerField_template.pickerFieldStyles,
@@ -4,6 +4,7 @@ import { b as buttonDefinition } from './definition11.js';
4
4
  import { d as createRegisterFunction, f as defineVividComponent } from './vivid-element.js';
5
5
  import { P as PickerFieldTemplate, p as pickerFieldStyles } from './picker-field.template.js';
6
6
  import { a as TimeSelectionPickerTemplate, i as inlineTimePickerDefinition, T as TimePicker } from './time-selection-picker.template.js';
7
+ import { v as visuallyHiddenDefinition } from './definition66.js';
7
8
 
8
9
  const TimePickerTemplate = (context) => {
9
10
  return PickerFieldTemplate(context, TimeSelectionPickerTemplate(context, 6), {
@@ -20,7 +21,8 @@ const timePickerDefinition = defineVividComponent(
20
21
  textFieldDefinition,
21
22
  popupDefinition,
22
23
  buttonDefinition,
23
- inlineTimePickerDefinition
24
+ inlineTimePickerDefinition,
25
+ visuallyHiddenDefinition
24
26
  ],
25
27
  {
26
28
  styles: pickerFieldStyles,
@@ -2,10 +2,12 @@
2
2
 
3
3
  const definition = require('./definition28.cjs');
4
4
  const vividElement = require('./vivid-element.cjs');
5
- const classNames = require('./class-names.cjs');
5
+ const linkable = require('./linkable.cjs');
6
+ const delegatesAria = require('./delegates-aria.cjs');
6
7
  const when = require('./when.cjs');
8
+ const classNames = require('./class-names.cjs');
7
9
 
8
- const styles = ".base.connotation-cta{--_connotation-color-primary: var(--vvd-avatar-cta-primary, var(--vvd-color-cta-500));--_connotation-color-primary-text: var(--vvd-avatar-cta-primary-text, var(--vvd-color-canvas));--_connotation-color-firm: var(--vvd-avatar-cta-firm, var(--vvd-color-cta-600));--_connotation-color-firm-all: var(--vvd-avatar-cta-firm-all, var(--vvd-color-cta-600));--_connotation-color-fierce: var(--vvd-avatar-cta-fierce, var(--vvd-color-cta-700));--_connotation-color-pale: var(--vvd-avatar-cta-pale, var(--vvd-color-cta-300));--_connotation-color-soft: var(--vvd-avatar-cta-soft, var(--vvd-color-cta-100));--_connotation-color-contrast: var(--vvd-avatar-cta-contrast, var(--vvd-color-cta-800))}.base:not(.connotation-cta){--_connotation-color-primary: var(--vvd-avatar-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-avatar-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-firm: var(--vvd-avatar-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-firm-all: var(--vvd-avatar-accent-firm-all, var(--vvd-color-neutral-600));--_connotation-color-fierce: var(--vvd-avatar-accent-fierce, var(--vvd-color-neutral-700));--_connotation-color-pale: var(--vvd-avatar-accent-pale, var(--vvd-color-neutral-300));--_connotation-color-soft: var(--vvd-avatar-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-contrast: var(--vvd-avatar-accent-contrast, var(--vvd-color-neutral-800))}.base{--_appearance-color-text: var(--_connotation-color-primary-text);--_appearance-color-fill: var(--_connotation-color-primary);--_appearance-color-outline: transparent}.base.appearance-outlined{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--vvd-color-neutral-300)}.base.appearance-duotone{--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--_connotation-color-pale)}.base.appearance-subtle{--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.base{display:inline-flex;overflow:hidden;align-items:center;justify-content:center;border-radius:var(--_avatar-border-radius);background-color:var(--_appearance-color-fill);block-size:var(--_size);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);color:var(--_appearance-color-text);inline-size:var(--_size);vertical-align:middle}.base.size-condensed{--_size: calc(1px*(32 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) }.base.size-condensed .initials{font:var(--vvd-typography-base-condensed-bold)}.base.size-condensed .icon{font-size:calc(1px*(32 + 4*clamp(-1,var(--vvd-size-density, 0),2))/2);line-height:1}.base.size-expanded{--_size: calc(1px*(48 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) }.base.size-expanded .initials{font:var(--vvd-typography-heading-4)}.base.size-expanded .icon{font-size:calc(1px*(48 + 4*clamp(-1,var(--vvd-size-density, 0),2))/2);line-height:1}.base:not(.size-condensed,.size-expanded){--_size: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) }.base:not(.size-condensed,.size-expanded) .initials{font:var(--vvd-typography-base-extended-bold)}.base:not(.size-condensed,.size-expanded) .icon{font-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2))/2);line-height:1}.base:not(.shape-pill){--_avatar-border-radius: 8px}.base:not(.shape-pill).size-condensed{--_avatar-border-radius: 4px}.base.shape-pill{--_avatar-border-radius: 50%}.base .initials{text-transform:uppercase}.base ::slotted(*){block-size:100%;inline-size:100%;object-fit:cover}";
10
+ const styles = ":host{display:inline-block}.base.connotation-cta{--_connotation-color-primary: var(--vvd-avatar-cta-primary, var(--vvd-color-cta-500));--_connotation-color-primary-text: var(--vvd-avatar-cta-primary-text, var(--vvd-color-canvas));--_connotation-color-firm: var(--vvd-avatar-cta-firm, var(--vvd-color-cta-600));--_connotation-color-firm-all: var(--vvd-avatar-cta-firm-all, var(--vvd-color-cta-600));--_connotation-color-fierce: var(--vvd-avatar-cta-fierce, var(--vvd-color-cta-700));--_connotation-color-pale: var(--vvd-avatar-cta-pale, var(--vvd-color-cta-300));--_connotation-color-soft: var(--vvd-avatar-cta-soft, var(--vvd-color-cta-100));--_connotation-color-contrast: var(--vvd-avatar-cta-contrast, var(--vvd-color-cta-800))}.base:not(.connotation-cta){--_connotation-color-primary: var(--vvd-avatar-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-avatar-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-firm: var(--vvd-avatar-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-firm-all: var(--vvd-avatar-accent-firm-all, var(--vvd-color-neutral-600));--_connotation-color-fierce: var(--vvd-avatar-accent-fierce, var(--vvd-color-neutral-700));--_connotation-color-pale: var(--vvd-avatar-accent-pale, var(--vvd-color-neutral-300));--_connotation-color-soft: var(--vvd-avatar-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-contrast: var(--vvd-avatar-accent-contrast, var(--vvd-color-neutral-800))}.base{--_appearance-color-text: var(--_connotation-color-primary-text);--_appearance-color-fill: var(--_connotation-color-primary);--_appearance-color-outline: transparent}.base.appearance-outlined{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--vvd-color-neutral-300)}.base.appearance-duotone{--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--_connotation-color-pale)}.base.appearance-subtle{--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.base{display:inline-flex;overflow:hidden;align-items:center;justify-content:center;border:none;border-radius:var(--_avatar-border-radius);background-color:var(--_appearance-color-fill);block-size:var(--_size);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);color:var(--_appearance-color-text);inline-size:var(--_size);vertical-align:middle}.base.size-condensed{--_size: calc(1px*(32 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) }.base.size-condensed .initials{font:var(--vvd-typography-base-condensed-bold)}.base.size-condensed .icon{font-size:calc(1px*(32 + 4*clamp(-1,var(--vvd-size-density, 0),2))/2);line-height:1}.base.size-expanded{--_size: calc(1px*(48 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) }.base.size-expanded .initials{font:var(--vvd-typography-heading-4)}.base.size-expanded .icon{font-size:calc(1px*(48 + 4*clamp(-1,var(--vvd-size-density, 0),2))/2);line-height:1}.base:is(a,button){cursor:pointer;--focus-stroke-gap-color: transparent}.base:not(.shape-pill){--_avatar-border-radius: 8px}.base:not(.shape-pill).size-condensed{--_avatar-border-radius: 4px}.base:not(.size-condensed,.size-expanded){--_size: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) }.base:not(.size-condensed,.size-expanded) .initials{font:var(--vvd-typography-base-extended-bold)}.base:not(.size-condensed,.size-expanded) .icon{font-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2))/2);line-height:1}.base:is(a,button):focus-visible{box-shadow:0 0 0 4px color-mix(in srgb,var(--vvd-color-cta-500),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px))}.base.shape-pill{--_avatar-border-radius: 50%}.base .initials{text-transform:uppercase}.base ::slotted([slot=graphic]){block-size:100%;inline-size:100%;object-fit:cover}";
9
11
 
10
12
  var __defProp = Object.defineProperty;
11
13
  var __decorateClass = (decorators, target, key, kind) => {
@@ -16,7 +18,11 @@ var __decorateClass = (decorators, target, key, kind) => {
16
18
  if (result) __defProp(target, key, result);
17
19
  return result;
18
20
  };
19
- class Avatar extends vividElement.VividElement {
21
+ class Avatar extends linkable.Linkable(vividElement.VividElement) {
22
+ constructor() {
23
+ super(...arguments);
24
+ this.clickable = false;
25
+ }
20
26
  }
21
27
  __decorateClass([
22
28
  vividElement.attr
@@ -36,6 +42,12 @@ __decorateClass([
36
42
  __decorateClass([
37
43
  vividElement.attr
38
44
  ], Avatar.prototype, "initials");
45
+ __decorateClass([
46
+ vividElement.attr({
47
+ mode: "boolean",
48
+ attribute: "clickable"
49
+ })
50
+ ], Avatar.prototype, "clickable");
39
51
 
40
52
  const getClasses = ({ appearance, connotation, shape, size }) => classNames.classNames(
41
53
  "base",
@@ -46,9 +58,7 @@ const getClasses = ({ appearance, connotation, shape, size }) => classNames.clas
46
58
  );
47
59
  function renderIcon(iconTag) {
48
60
  return vividElement.html`
49
- <span class="icon">
50
- <${iconTag} name="${(x) => x.icon ? `${x.icon}` : "user-line"}"></${iconTag}>
51
- </span>
61
+ <${iconTag} name="${(x) => x.icon ? `${x.icon}` : "user-line"}"></${iconTag}>
52
62
  `;
53
63
  }
54
64
  function renderInitials() {
@@ -56,14 +66,37 @@ function renderInitials() {
56
66
  <span class="initials">${({ initials }) => initials.substring(0, 2)}</span>
57
67
  `;
58
68
  }
69
+ function renderAvatarBaseElement(x, content) {
70
+ if (x.href) {
71
+ return x._renderLinkElement(content, getClasses);
72
+ } else if (x.clickable) {
73
+ return vividElement.html`<button
74
+ type="button"
75
+ class="${getClasses}"
76
+ ${delegatesAria.delegateAria()}
77
+ >
78
+ ${content}
79
+ </button>`;
80
+ } else {
81
+ return vividElement.html`<span class="${getClasses}">${content}</span>`;
82
+ }
83
+ }
59
84
  const AvatarTemplate = (context) => {
60
85
  const iconTag = context.tagFor(definition.Icon);
61
- return vividElement.html` <span class="${getClasses}">
62
- <slot name="graphic">
63
- ${when.when((x) => x.initials, renderInitials())}
64
- ${when.when((x) => !x.initials, renderIcon(iconTag))}
65
- </slot>
66
- </span>`;
86
+ return vividElement.html`
87
+ ${(x) => renderAvatarBaseElement(
88
+ x,
89
+ vividElement.html`<slot name="graphic">
90
+ ${when.when((x2) => x2.initials, renderInitials())}
91
+ ${when.when(
92
+ (x2) => !x2.initials,
93
+ vividElement.html`<span class="icon"
94
+ ><slot name="icon">${renderIcon(iconTag)}</slot></span
95
+ >`
96
+ )}</slot
97
+ >`
98
+ )}
99
+ `;
67
100
  };
68
101
 
69
102
  const avatarDefinition = vividElement.defineVividComponent(
@@ -1,9 +1,11 @@
1
1
  import { I as Icon, i as iconDefinition } from './definition28.js';
2
2
  import { V as VividElement, a as attr, h as html, d as createRegisterFunction, f as defineVividComponent } from './vivid-element.js';
3
- import { c as classNames } from './class-names.js';
3
+ import { L as Linkable } from './linkable.js';
4
+ import { d as delegateAria } from './delegates-aria.js';
4
5
  import { w as when } from './when.js';
6
+ import { c as classNames } from './class-names.js';
5
7
 
6
- const styles = ".base.connotation-cta{--_connotation-color-primary: var(--vvd-avatar-cta-primary, var(--vvd-color-cta-500));--_connotation-color-primary-text: var(--vvd-avatar-cta-primary-text, var(--vvd-color-canvas));--_connotation-color-firm: var(--vvd-avatar-cta-firm, var(--vvd-color-cta-600));--_connotation-color-firm-all: var(--vvd-avatar-cta-firm-all, var(--vvd-color-cta-600));--_connotation-color-fierce: var(--vvd-avatar-cta-fierce, var(--vvd-color-cta-700));--_connotation-color-pale: var(--vvd-avatar-cta-pale, var(--vvd-color-cta-300));--_connotation-color-soft: var(--vvd-avatar-cta-soft, var(--vvd-color-cta-100));--_connotation-color-contrast: var(--vvd-avatar-cta-contrast, var(--vvd-color-cta-800))}.base:not(.connotation-cta){--_connotation-color-primary: var(--vvd-avatar-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-avatar-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-firm: var(--vvd-avatar-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-firm-all: var(--vvd-avatar-accent-firm-all, var(--vvd-color-neutral-600));--_connotation-color-fierce: var(--vvd-avatar-accent-fierce, var(--vvd-color-neutral-700));--_connotation-color-pale: var(--vvd-avatar-accent-pale, var(--vvd-color-neutral-300));--_connotation-color-soft: var(--vvd-avatar-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-contrast: var(--vvd-avatar-accent-contrast, var(--vvd-color-neutral-800))}.base{--_appearance-color-text: var(--_connotation-color-primary-text);--_appearance-color-fill: var(--_connotation-color-primary);--_appearance-color-outline: transparent}.base.appearance-outlined{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--vvd-color-neutral-300)}.base.appearance-duotone{--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--_connotation-color-pale)}.base.appearance-subtle{--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.base{display:inline-flex;overflow:hidden;align-items:center;justify-content:center;border-radius:var(--_avatar-border-radius);background-color:var(--_appearance-color-fill);block-size:var(--_size);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);color:var(--_appearance-color-text);inline-size:var(--_size);vertical-align:middle}.base.size-condensed{--_size: calc(1px*(32 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) }.base.size-condensed .initials{font:var(--vvd-typography-base-condensed-bold)}.base.size-condensed .icon{font-size:calc(1px*(32 + 4*clamp(-1,var(--vvd-size-density, 0),2))/2);line-height:1}.base.size-expanded{--_size: calc(1px*(48 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) }.base.size-expanded .initials{font:var(--vvd-typography-heading-4)}.base.size-expanded .icon{font-size:calc(1px*(48 + 4*clamp(-1,var(--vvd-size-density, 0),2))/2);line-height:1}.base:not(.size-condensed,.size-expanded){--_size: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) }.base:not(.size-condensed,.size-expanded) .initials{font:var(--vvd-typography-base-extended-bold)}.base:not(.size-condensed,.size-expanded) .icon{font-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2))/2);line-height:1}.base:not(.shape-pill){--_avatar-border-radius: 8px}.base:not(.shape-pill).size-condensed{--_avatar-border-radius: 4px}.base.shape-pill{--_avatar-border-radius: 50%}.base .initials{text-transform:uppercase}.base ::slotted(*){block-size:100%;inline-size:100%;object-fit:cover}";
8
+ const styles = ":host{display:inline-block}.base.connotation-cta{--_connotation-color-primary: var(--vvd-avatar-cta-primary, var(--vvd-color-cta-500));--_connotation-color-primary-text: var(--vvd-avatar-cta-primary-text, var(--vvd-color-canvas));--_connotation-color-firm: var(--vvd-avatar-cta-firm, var(--vvd-color-cta-600));--_connotation-color-firm-all: var(--vvd-avatar-cta-firm-all, var(--vvd-color-cta-600));--_connotation-color-fierce: var(--vvd-avatar-cta-fierce, var(--vvd-color-cta-700));--_connotation-color-pale: var(--vvd-avatar-cta-pale, var(--vvd-color-cta-300));--_connotation-color-soft: var(--vvd-avatar-cta-soft, var(--vvd-color-cta-100));--_connotation-color-contrast: var(--vvd-avatar-cta-contrast, var(--vvd-color-cta-800))}.base:not(.connotation-cta){--_connotation-color-primary: var(--vvd-avatar-accent-primary, var(--vvd-color-canvas-text));--_connotation-color-primary-text: var(--vvd-avatar-accent-primary-text, var(--vvd-color-canvas));--_connotation-color-firm: var(--vvd-avatar-accent-firm, var(--vvd-color-canvas-text));--_connotation-color-firm-all: var(--vvd-avatar-accent-firm-all, var(--vvd-color-neutral-600));--_connotation-color-fierce: var(--vvd-avatar-accent-fierce, var(--vvd-color-neutral-700));--_connotation-color-pale: var(--vvd-avatar-accent-pale, var(--vvd-color-neutral-300));--_connotation-color-soft: var(--vvd-avatar-accent-soft, var(--vvd-color-neutral-100));--_connotation-color-contrast: var(--vvd-avatar-accent-contrast, var(--vvd-color-neutral-800))}.base{--_appearance-color-text: var(--_connotation-color-primary-text);--_appearance-color-fill: var(--_connotation-color-primary);--_appearance-color-outline: transparent}.base.appearance-outlined{--_appearance-color-text: var(--_connotation-color-firm);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--vvd-color-neutral-300)}.base.appearance-duotone{--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--_connotation-color-pale)}.base.appearance-subtle{--_appearance-color-text: var(--_connotation-color-contrast);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: transparent}.base{display:inline-flex;overflow:hidden;align-items:center;justify-content:center;border:none;border-radius:var(--_avatar-border-radius);background-color:var(--_appearance-color-fill);block-size:var(--_size);box-shadow:inset 0 0 0 1px var(--_appearance-color-outline);color:var(--_appearance-color-text);inline-size:var(--_size);vertical-align:middle}.base.size-condensed{--_size: calc(1px*(32 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) }.base.size-condensed .initials{font:var(--vvd-typography-base-condensed-bold)}.base.size-condensed .icon{font-size:calc(1px*(32 + 4*clamp(-1,var(--vvd-size-density, 0),2))/2);line-height:1}.base.size-expanded{--_size: calc(1px*(48 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) }.base.size-expanded .initials{font:var(--vvd-typography-heading-4)}.base.size-expanded .icon{font-size:calc(1px*(48 + 4*clamp(-1,var(--vvd-size-density, 0),2))/2);line-height:1}.base:is(a,button){cursor:pointer;--focus-stroke-gap-color: transparent}.base:not(.shape-pill){--_avatar-border-radius: 8px}.base:not(.shape-pill).size-condensed{--_avatar-border-radius: 4px}.base:not(.size-condensed,.size-expanded){--_size: calc(1px*(40 + 4*clamp(-1, var(--vvd-size-density, 0), 2))) }.base:not(.size-condensed,.size-expanded) .initials{font:var(--vvd-typography-base-extended-bold)}.base:not(.size-condensed,.size-expanded) .icon{font-size:calc(1px*(40 + 4*clamp(-1,var(--vvd-size-density, 0),2))/2);line-height:1}.base:is(a,button):focus-visible{box-shadow:0 0 0 4px color-mix(in srgb,var(--vvd-color-cta-500),transparent 85%),inset 0 0 0 3px var(--focus-stroke-gap-color, currentColor);outline:1px solid var(--focus-stroke-color, var(--vvd-color-cta-500));outline-offset:calc(-1px - var(--focus-inset, 0px))}.base.shape-pill{--_avatar-border-radius: 50%}.base .initials{text-transform:uppercase}.base ::slotted([slot=graphic]){block-size:100%;inline-size:100%;object-fit:cover}";
7
9
 
8
10
  var __defProp = Object.defineProperty;
9
11
  var __decorateClass = (decorators, target, key, kind) => {
@@ -14,7 +16,11 @@ var __decorateClass = (decorators, target, key, kind) => {
14
16
  if (result) __defProp(target, key, result);
15
17
  return result;
16
18
  };
17
- class Avatar extends VividElement {
19
+ class Avatar extends Linkable(VividElement) {
20
+ constructor() {
21
+ super(...arguments);
22
+ this.clickable = false;
23
+ }
18
24
  }
19
25
  __decorateClass([
20
26
  attr
@@ -34,6 +40,12 @@ __decorateClass([
34
40
  __decorateClass([
35
41
  attr
36
42
  ], Avatar.prototype, "initials");
43
+ __decorateClass([
44
+ attr({
45
+ mode: "boolean",
46
+ attribute: "clickable"
47
+ })
48
+ ], Avatar.prototype, "clickable");
37
49
 
38
50
  const getClasses = ({ appearance, connotation, shape, size }) => classNames(
39
51
  "base",
@@ -44,9 +56,7 @@ const getClasses = ({ appearance, connotation, shape, size }) => classNames(
44
56
  );
45
57
  function renderIcon(iconTag) {
46
58
  return html`
47
- <span class="icon">
48
- <${iconTag} name="${(x) => x.icon ? `${x.icon}` : "user-line"}"></${iconTag}>
49
- </span>
59
+ <${iconTag} name="${(x) => x.icon ? `${x.icon}` : "user-line"}"></${iconTag}>
50
60
  `;
51
61
  }
52
62
  function renderInitials() {
@@ -54,14 +64,37 @@ function renderInitials() {
54
64
  <span class="initials">${({ initials }) => initials.substring(0, 2)}</span>
55
65
  `;
56
66
  }
67
+ function renderAvatarBaseElement(x, content) {
68
+ if (x.href) {
69
+ return x._renderLinkElement(content, getClasses);
70
+ } else if (x.clickable) {
71
+ return html`<button
72
+ type="button"
73
+ class="${getClasses}"
74
+ ${delegateAria()}
75
+ >
76
+ ${content}
77
+ </button>`;
78
+ } else {
79
+ return html`<span class="${getClasses}">${content}</span>`;
80
+ }
81
+ }
57
82
  const AvatarTemplate = (context) => {
58
83
  const iconTag = context.tagFor(Icon);
59
- return html` <span class="${getClasses}">
60
- <slot name="graphic">
61
- ${when((x) => x.initials, renderInitials())}
62
- ${when((x) => !x.initials, renderIcon(iconTag))}
63
- </slot>
64
- </span>`;
84
+ return html`
85
+ ${(x) => renderAvatarBaseElement(
86
+ x,
87
+ html`<slot name="graphic">
88
+ ${when((x2) => x2.initials, renderInitials())}
89
+ ${when(
90
+ (x2) => !x2.initials,
91
+ html`<span class="icon"
92
+ ><slot name="icon">${renderIcon(iconTag)}</slot></span
93
+ >`
94
+ )}</slot
95
+ >`
96
+ )}
97
+ `;
65
98
  };
66
99
 
67
100
  const avatarDefinition = defineVividComponent(