@vonage/vivid 5.9.0 → 5.11.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 (114) hide show
  1. package/bundled/affix.js +1 -1
  2. package/bundled/anchored.cjs +1 -1
  3. package/bundled/anchored.js +6 -6
  4. package/bundled/definition10.js +4 -4
  5. package/bundled/definition7.js +3 -3
  6. package/bundled/host-semantics.js +4 -4
  7. package/bundled/localized.cjs +1 -1
  8. package/bundled/localized.js +14 -12
  9. package/bundled/mixins.cjs +2 -2
  10. package/bundled/mixins.js +6 -6
  11. package/bundled/{feature.cjs → slottable-request.cjs} +3 -3
  12. package/bundled/{feature.js → slottable-request.js} +63 -42
  13. package/bundled/vivid-element.cjs +1 -1
  14. package/bundled/vivid-element.js +1 -1
  15. package/card/definition.cjs +1 -1
  16. package/card/definition.js +1 -1
  17. package/card/index.cjs +10 -10
  18. package/card/index.js +42 -42
  19. package/country/definition.cjs +340 -0
  20. package/country/definition.js +334 -0
  21. package/country/index.cjs +12 -0
  22. package/country/index.js +317 -0
  23. package/custom-elements.json +12768 -9834
  24. package/index.cjs +26 -14
  25. package/index.js +4 -2
  26. package/lib/components.d.ts +3 -1
  27. package/lib/country/countries-data.d.ts +6 -0
  28. package/lib/country/country-code-to-flag-icon.d.ts +5 -0
  29. package/lib/country/country.d.ts +5 -0
  30. package/lib/country/country.template.d.ts +3 -0
  31. package/lib/country/definition.d.ts +3 -0
  32. package/lib/rich-text-editor/locale.d.ts +2 -0
  33. package/lib/rich-text-editor/popover.d.ts +1 -0
  34. package/lib/rich-text-editor/rte/config.d.ts +2 -1
  35. package/lib/rich-text-editor/rte/exports.d.ts +4 -0
  36. package/lib/rich-text-editor/rte/feature.d.ts +7 -1
  37. package/lib/rich-text-editor/rte/features/internal/basic-text-blocks.d.ts +1 -1
  38. package/lib/rich-text-editor/rte/features/internal/foreign-html.d.ts +1 -1
  39. package/lib/rich-text-editor/rte/features/internal/history.d.ts +1 -1
  40. package/lib/rich-text-editor/rte/features/internal/input-rules.d.ts +15 -0
  41. package/lib/rich-text-editor/rte/instance.d.ts +4 -2
  42. package/lib/rich-text-editor/rte/utils/feature-state.d.ts +8 -0
  43. package/lib/rich-text-editor/rte/utils/sanitization.d.ts +7 -0
  44. package/lib/rich-text-editor/rte/utils/text-before-cursor.d.ts +2 -0
  45. package/lib/rich-text-editor/rte/utils/ui.d.ts +2 -0
  46. package/lib/rich-text-editor/rte/view.d.ts +2 -2
  47. package/lib/rich-text-view/definition.d.ts +1 -0
  48. package/lib/rich-text-view/rich-text-view.d.ts +4 -0
  49. package/lib/selectable-box/selectable-box.d.ts +1 -0
  50. package/lib/status/definition.d.ts +4 -0
  51. package/lib/status/status.d.ts +388 -0
  52. package/lib/status/status.template.d.ts +3 -0
  53. package/lib/{data-table → table}/definition.d.ts +1 -1
  54. package/lib/tag/tag.d.ts +1 -1
  55. package/lib/tag-name-map.d.ts +3 -1
  56. package/locales/de-DE.cjs +3 -1
  57. package/locales/de-DE.js +3 -1
  58. package/locales/en-GB.cjs +3 -1
  59. package/locales/en-GB.js +3 -1
  60. package/locales/en-US.cjs +3 -1
  61. package/locales/en-US.js +3 -1
  62. package/locales/ja-JP.cjs +3 -1
  63. package/locales/ja-JP.js +3 -1
  64. package/locales/zh-CN.cjs +3 -1
  65. package/locales/zh-CN.js +3 -1
  66. package/package.json +6 -5
  67. package/rich-text-editor/definition.cjs +3246 -2183
  68. package/rich-text-editor/definition.js +3042 -1983
  69. package/rich-text-editor/index.cjs +20 -19
  70. package/rich-text-editor/index.js +3897 -3117
  71. package/rich-text-view/definition.cjs +30 -18
  72. package/rich-text-view/definition.js +22 -10
  73. package/rich-text-view/index.cjs +1 -1
  74. package/rich-text-view/index.js +46 -38
  75. package/selectable-box/definition.cjs +16 -5
  76. package/selectable-box/definition.js +16 -5
  77. package/selectable-box/index.cjs +11 -9
  78. package/selectable-box/index.js +86 -78
  79. package/shared/utils/slottable-request.d.ts +7 -0
  80. package/status/definition.cjs +76 -0
  81. package/status/definition.js +70 -0
  82. package/status/index.cjs +11 -0
  83. package/status/index.js +55 -0
  84. package/styles/core/all.css +2 -2
  85. package/styles/core/theme.css +2 -2
  86. package/styles/core/typography.css +1 -1
  87. package/styles/tokens/theme-dark.css +4 -4
  88. package/styles/tokens/theme-light.css +4 -4
  89. package/styles/tokens/vivid-2-compat.css +1 -1
  90. package/{data-table → table}/definition.cjs +21 -57
  91. package/{data-table → table}/definition.js +21 -57
  92. package/{data-table → table}/index.cjs +8 -8
  93. package/{data-table → table}/index.js +43 -79
  94. package/tag/definition.cjs +1 -1
  95. package/tag/definition.js +1 -1
  96. package/tag/index.cjs +24 -24
  97. package/tag/index.js +89 -89
  98. package/unbundled/{feature.cjs → slottable-request.cjs} +24 -0
  99. package/unbundled/{feature.js → slottable-request.js} +23 -1
  100. package/unbundled/vivid-element.cjs +1 -1
  101. package/unbundled/vivid-element.js +1 -1
  102. package/vivid.api.json +505 -26
  103. /package/lib/{data-table → table}/table-body.d.ts +0 -0
  104. /package/lib/{data-table → table}/table-body.template.d.ts +0 -0
  105. /package/lib/{data-table → table}/table-cell.d.ts +0 -0
  106. /package/lib/{data-table → table}/table-cell.template.d.ts +0 -0
  107. /package/lib/{data-table → table}/table-head.d.ts +0 -0
  108. /package/lib/{data-table → table}/table-head.template.d.ts +0 -0
  109. /package/lib/{data-table → table}/table-header-cell.d.ts +0 -0
  110. /package/lib/{data-table → table}/table-header-cell.template.d.ts +0 -0
  111. /package/lib/{data-table → table}/table-row.d.ts +0 -0
  112. /package/lib/{data-table → table}/table-row.template.d.ts +0 -0
  113. /package/lib/{data-table → table}/table.d.ts +0 -0
  114. /package/lib/{data-table → table}/table.template.d.ts +0 -0
@@ -4,9 +4,9 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
5
  const vividElement = require('../unbundled/vivid-element.cjs');
6
6
  const fastElement = require('@microsoft/fast-element');
7
- const feature = require('../unbundled/feature.cjs');
7
+ const slottableRequest = require('../unbundled/slottable-request.cjs');
8
8
 
9
- const styles = ":host{display:contents}.content{display:contents}";
9
+ const styles = ":host{display:contents}.content{display:contents;overflow-wrap:break-word;white-space:break-spaces}";
10
10
 
11
11
  var __defProp = Object.defineProperty;
12
12
  var __decorateClass = (decorators, target, key, kind) => {
@@ -22,6 +22,7 @@ class RichTextView extends vividElement.VividElement {
22
22
  super(...arguments);
23
23
  this._slotCounter = 0;
24
24
  this._slottedChildren = /* @__PURE__ */ new Set();
25
+ this._slotRequests = /* @__PURE__ */ new Set();
25
26
  /**
26
27
  * @internal
27
28
  */
@@ -40,9 +41,9 @@ class RichTextView extends vividElement.VividElement {
40
41
  this._updateView();
41
42
  }
42
43
  _addStyles(view) {
43
- const config = view[feature.impl].config[feature.impl];
44
+ const config = view[slottableRequest.impl].config[slottableRequest.impl];
44
45
  this._styles = new fastElement.ElementStyles(
45
- feature.sortedContributions(config.features.flatMap((f) => f.getStyles()))
46
+ slottableRequest.sortedContributions(config.features.flatMap((f) => f.getStyles()))
46
47
  );
47
48
  this._styles.addStylesTo(this.shadowRoot);
48
49
  }
@@ -56,7 +57,11 @@ class RichTextView extends vividElement.VividElement {
56
57
  for (const el of this._slottedChildren) {
57
58
  this.removeChild(el);
58
59
  }
60
+ for (const slotName of this._slotRequests) {
61
+ slottableRequest.dispatchSlottableRequest(this, "child", slotName, slottableRequest.removeSymbol);
62
+ }
59
63
  this._slottedChildren.clear();
64
+ this._slotRequests.clear();
60
65
  this._slotCounter = 0;
61
66
  }
62
67
  _updateView() {
@@ -70,7 +75,7 @@ class RichTextView extends vividElement.VividElement {
70
75
  }
71
76
  }
72
77
  _renderView(rteView) {
73
- const ctx = rteView[feature.impl];
78
+ const ctx = rteView[slottableRequest.impl];
74
79
  if (rteView.type === "node" && rteView.node.type === "doc") {
75
80
  rteView = rteView.children;
76
81
  }
@@ -89,29 +94,36 @@ class RichTextView extends vividElement.VividElement {
89
94
  }
90
95
  }
91
96
  _handleCustomRender(rteView, customResult) {
92
- const { dom, contentDom = dom } = customResult;
93
- const slotName = `view-${this._slotCounter++}`;
97
+ const slotName = `child-view-${this._slotCounter++}`;
94
98
  const slot = document.createElement("slot");
95
99
  slot.setAttribute("name", slotName);
96
- const nestedView = document.createElement(this.tagName);
97
- nestedView.view = rteView.children;
98
- contentDom.appendChild(nestedView);
99
- dom.setAttribute("slot", slotName);
100
- this.appendChild(dom);
101
- this._slottedChildren.add(dom);
100
+ if (customResult === true) {
101
+ this._slotRequests.add(slotName);
102
+ slottableRequest.dispatchSlottableRequest(this, "child", slotName, {
103
+ view: rteView
104
+ });
105
+ } else {
106
+ const { dom, contentDom = dom } = customResult;
107
+ const nestedView = document.createElement(this.tagName);
108
+ nestedView.view = rteView.children;
109
+ contentDom.appendChild(nestedView);
110
+ dom.setAttribute("slot", slotName);
111
+ this.appendChild(dom);
112
+ this._slottedChildren.add(dom);
113
+ }
102
114
  return slot;
103
115
  }
104
116
  _renderDefault(view) {
105
- const ctx = view[feature.impl];
106
- const config = ctx.config[feature.impl];
117
+ const ctx = view[slottableRequest.impl];
118
+ const config = ctx.config[slottableRequest.impl];
107
119
  const schema = config.schema;
108
120
  if (view.type === "node" && view.node.type === "text") {
109
121
  return document.createTextNode(view.node.text);
110
122
  }
111
123
  const item = view.type === "node" ? view.node : view.mark;
112
- const pmItem = view.type === "node" ? feature.Node.fromJSON(schema, item) : feature.Mark.fromJSON(schema, item);
113
- const spec = pmItem instanceof feature.Node ? pmItem.type.spec.toDOM(pmItem) : pmItem.type.spec.toDOM(pmItem, true);
114
- const { dom, contentDOM = dom } = feature.DOMSerializer.renderSpec(document, spec);
124
+ const pmItem = view.type === "node" ? slottableRequest.Node.fromJSON(schema, item) : slottableRequest.Mark.fromJSON(schema, item);
125
+ const spec = pmItem instanceof slottableRequest.Node ? pmItem.type.spec.toDOM(pmItem) : pmItem.type.spec.toDOM(pmItem, true);
126
+ const { dom, contentDOM = dom } = slottableRequest.DOMSerializer.renderSpec(document, spec);
115
127
  const childrenRendered = this._renderView(view.children);
116
128
  contentDOM.appendChild(childrenRendered);
117
129
  return dom;
@@ -1,8 +1,8 @@
1
1
  import { V as VividElement, d as defineVividComponent, c as createRegisterFunction } from '../unbundled/vivid-element.js';
2
2
  import { ElementStyles, observable, ref, html } from '@microsoft/fast-element';
3
- import { i as impl, s as sortedContributions, N as Node, M as Mark, D as DOMSerializer } from '../unbundled/feature.js';
3
+ import { i as impl, s as sortedContributions, d as dispatchSlottableRequest, N as Node, M as Mark, D as DOMSerializer, r as removeSymbol } from '../unbundled/slottable-request.js';
4
4
 
5
- const styles = ":host{display:contents}.content{display:contents}";
5
+ const styles = ":host{display:contents}.content{display:contents;overflow-wrap:break-word;white-space:break-spaces}";
6
6
 
7
7
  var __defProp = Object.defineProperty;
8
8
  var __decorateClass = (decorators, target, key, kind) => {
@@ -18,6 +18,7 @@ class RichTextView extends VividElement {
18
18
  super(...arguments);
19
19
  this._slotCounter = 0;
20
20
  this._slottedChildren = /* @__PURE__ */ new Set();
21
+ this._slotRequests = /* @__PURE__ */ new Set();
21
22
  /**
22
23
  * @internal
23
24
  */
@@ -52,7 +53,11 @@ class RichTextView extends VividElement {
52
53
  for (const el of this._slottedChildren) {
53
54
  this.removeChild(el);
54
55
  }
56
+ for (const slotName of this._slotRequests) {
57
+ dispatchSlottableRequest(this, "child", slotName, removeSymbol);
58
+ }
55
59
  this._slottedChildren.clear();
60
+ this._slotRequests.clear();
56
61
  this._slotCounter = 0;
57
62
  }
58
63
  _updateView() {
@@ -85,16 +90,23 @@ class RichTextView extends VividElement {
85
90
  }
86
91
  }
87
92
  _handleCustomRender(rteView, customResult) {
88
- const { dom, contentDom = dom } = customResult;
89
- const slotName = `view-${this._slotCounter++}`;
93
+ const slotName = `child-view-${this._slotCounter++}`;
90
94
  const slot = document.createElement("slot");
91
95
  slot.setAttribute("name", slotName);
92
- const nestedView = document.createElement(this.tagName);
93
- nestedView.view = rteView.children;
94
- contentDom.appendChild(nestedView);
95
- dom.setAttribute("slot", slotName);
96
- this.appendChild(dom);
97
- this._slottedChildren.add(dom);
96
+ if (customResult === true) {
97
+ this._slotRequests.add(slotName);
98
+ dispatchSlottableRequest(this, "child", slotName, {
99
+ view: rteView
100
+ });
101
+ } else {
102
+ const { dom, contentDom = dom } = customResult;
103
+ const nestedView = document.createElement(this.tagName);
104
+ nestedView.view = rteView.children;
105
+ contentDom.appendChild(nestedView);
106
+ dom.setAttribute("slot", slotName);
107
+ this.appendChild(dom);
108
+ this._slottedChildren.add(dom);
109
+ }
98
110
  return slot;
99
111
  }
100
112
  _renderDefault(view) {
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("../bundled/vivid-element.cjs"),r=require("../bundled/feature.cjs"),_=require("../bundled/ref.cjs"),f=":host{display:contents}.content{display:contents}";var y=Object.defineProperty,C=(l,e,n,s)=>{for(var t=void 0,o=l.length-1,i;o>=0;o--)(i=l[o])&&(t=i(e,n,t)||t);return t&&y(e,n,t),t};class h extends c.VividElement{constructor(){super(...arguments),this._slotCounter=0,this._slottedChildren=new Set,this._contentElement=null}viewChanged(e,n){e&&this._removeStyles(),n&&this._addStyles(n),this._updateView()}_addStyles(e){const n=e[r.impl].config[r.impl];this._styles=new c.ElementStyles(r.sortedContributions(n.features.flatMap(s=>s.getStyles()))),this._styles.addStylesTo(this.shadowRoot)}_removeStyles(){this._styles&&(this._styles.removeStylesFrom(this.shadowRoot),this._styles=void 0)}_cleanupLightDom(){for(const e of this._slottedChildren)this.removeChild(e);this._slottedChildren.clear(),this._slotCounter=0}_updateView(){this._contentElement&&(this._contentElement.innerHTML="",this._cleanupLightDom(),this.view&&this._contentElement.appendChild(this._renderView(this.view)))}_renderView(e){const n=e[r.impl];if(e.type==="node"&&e.node.type==="doc"&&(e=e.children),e.type==="fragment"){const t=document.createDocumentFragment();for(const o of e.content)t.appendChild(this._renderView(o));return t}const s=n.options.renderChildView?.(e)??!1;return s?this._handleCustomRender(e,s):this._renderDefault(e)}_handleCustomRender(e,n){const{dom:s,contentDom:t=s}=n,o=`view-${this._slotCounter++}`,i=document.createElement("slot");i.setAttribute("name",o);const d=document.createElement(this.tagName);return d.view=e.children,t.appendChild(d),s.setAttribute("slot",o),this.appendChild(s),this._slottedChildren.add(s),i}_renderDefault(e){const t=e[r.impl].config[r.impl].schema;if(e.type==="node"&&e.node.type==="text")return document.createTextNode(e.node.text);const o=e.type==="node"?e.node:e.mark,i=e.type==="node"?r.Node.fromJSON(t,o):r.Mark.fromJSON(t,o),d=i instanceof r.Node?i.type.spec.toDOM(i):i.type.spec.toDOM(i,!0),{dom:a,contentDOM:p=a}=r.DOMSerializer.renderSpec(document,d),u=this._renderView(e.children);return p.appendChild(u),a}connectedCallback(){super.connectedCallback(),this._updateView()}disconnectedCallback(){super.disconnectedCallback(),this._removeStyles(),this._cleanupLightDom()}}C([c.observable],h.prototype,"view");const g=()=>c.html`<div class="content rich-text" ${_.ref("_contentElement")}></div>`,v=c.defineVividComponent("rich-text-view",h,g,[],{styles:f,shadowOptions:{delegatesFocus:!0}}),m=c.createRegisterFunction(v);m();exports.RichTextView=h;exports.registerRichTextView=m;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("../bundled/vivid-element.cjs"),o=require("../bundled/slottable-request.cjs"),_=require("../bundled/ref.cjs"),f=":host{display:contents}.content{display:contents;overflow-wrap:break-word;white-space:break-spaces}";var y=Object.defineProperty,C=(d,e,s,i)=>{for(var t=void 0,n=d.length-1,l;n>=0;n--)(l=d[n])&&(t=l(e,s,t)||t);return t&&y(e,s,t),t};class h extends c.VividElement{constructor(){super(...arguments),this._slotCounter=0,this._slottedChildren=new Set,this._slotRequests=new Set,this._contentElement=null}viewChanged(e,s){e&&this._removeStyles(),s&&this._addStyles(s),this._updateView()}_addStyles(e){const s=e[o.impl].config[o.impl];this._styles=new c.ElementStyles(o.sortedContributions(s.features.flatMap(i=>i.getStyles()))),this._styles.addStylesTo(this.shadowRoot)}_removeStyles(){this._styles&&(this._styles.removeStylesFrom(this.shadowRoot),this._styles=void 0)}_cleanupLightDom(){for(const e of this._slottedChildren)this.removeChild(e);for(const e of this._slotRequests)o.dispatchSlottableRequest(this,"child",e,o.removeSymbol);this._slottedChildren.clear(),this._slotRequests.clear(),this._slotCounter=0}_updateView(){this._contentElement&&(this._contentElement.innerHTML="",this._cleanupLightDom(),this.view&&this._contentElement.appendChild(this._renderView(this.view)))}_renderView(e){const s=e[o.impl];if(e.type==="node"&&e.node.type==="doc"&&(e=e.children),e.type==="fragment"){const t=document.createDocumentFragment();for(const n of e.content)t.appendChild(this._renderView(n));return t}const i=s.options.renderChildView?.(e)??!1;return i?this._handleCustomRender(e,i):this._renderDefault(e)}_handleCustomRender(e,s){const i=`child-view-${this._slotCounter++}`,t=document.createElement("slot");if(t.setAttribute("name",i),s===!0)this._slotRequests.add(i),o.dispatchSlottableRequest(this,"child",i,{view:e});else{const{dom:n,contentDom:l=n}=s,r=document.createElement(this.tagName);r.view=e.children,l.appendChild(r),n.setAttribute("slot",i),this.appendChild(n),this._slottedChildren.add(n)}return t}_renderDefault(e){const t=e[o.impl].config[o.impl].schema;if(e.type==="node"&&e.node.type==="text")return document.createTextNode(e.node.text);const n=e.type==="node"?e.node:e.mark,l=e.type==="node"?o.Node.fromJSON(t,n):o.Mark.fromJSON(t,n),r=l instanceof o.Node?l.type.spec.toDOM(l):l.type.spec.toDOM(l,!0),{dom:a,contentDOM:p=a}=o.DOMSerializer.renderSpec(document,r),u=this._renderView(e.children);return p.appendChild(u),a}connectedCallback(){super.connectedCallback(),this._updateView()}disconnectedCallback(){super.disconnectedCallback(),this._removeStyles(),this._cleanupLightDom()}}C([c.observable],h.prototype,"view");const g=()=>c.html`<div class="content rich-text" ${_.ref("_contentElement")}></div>`,v=c.defineVividComponent("rich-text-view",h,g,[],{styles:f,shadowOptions:{delegatesFocus:!0}}),m=c.createRegisterFunction(v);m();exports.RichTextView=h;exports.registerRichTextView=m;
@@ -1,26 +1,26 @@
1
- import { V as u, w as _, o as f, h as y, c as C, d as g } from "../bundled/vivid-element.js";
2
- import { i as r, s as v, N as a, M as x, D as S } from "../bundled/feature.js";
3
- import { r as D } from "../bundled/ref.js";
4
- const b = ":host{display:contents}.content{display:contents}";
5
- var R = Object.defineProperty, E = (d, e, n, s) => {
6
- for (var t = void 0, o = d.length - 1, i; o >= 0; o--)
7
- (i = d[o]) && (t = i(e, n, t) || t);
8
- return t && R(e, n, t), t;
1
+ import { V as _, w as f, o as y, h as C, c as g, d as v } from "../bundled/vivid-element.js";
2
+ import { i as r, s as S, h as a, N as h, M as b, D as x, r as R } from "../bundled/slottable-request.js";
3
+ import { r as w } from "../bundled/ref.js";
4
+ const D = ":host{display:contents}.content{display:contents;overflow-wrap:break-word;white-space:break-spaces}";
5
+ var E = Object.defineProperty, k = (d, e, s, o) => {
6
+ for (var t = void 0, n = d.length - 1, i; n >= 0; n--)
7
+ (i = d[n]) && (t = i(e, s, t) || t);
8
+ return t && E(e, s, t), t;
9
9
  };
10
- class h extends u {
10
+ class m extends _ {
11
11
  constructor() {
12
- super(...arguments), this._slotCounter = 0, this._slottedChildren = /* @__PURE__ */ new Set(), this._contentElement = null;
12
+ super(...arguments), this._slotCounter = 0, this._slottedChildren = /* @__PURE__ */ new Set(), this._slotRequests = /* @__PURE__ */ new Set(), this._contentElement = null;
13
13
  }
14
14
  /**
15
15
  * @internal
16
16
  */
17
- viewChanged(e, n) {
18
- e && this._removeStyles(), n && this._addStyles(n), this._updateView();
17
+ viewChanged(e, s) {
18
+ e && this._removeStyles(), s && this._addStyles(s), this._updateView();
19
19
  }
20
20
  _addStyles(e) {
21
- const n = e[r].config[r];
22
- this._styles = new _(
23
- v(n.features.flatMap((s) => s.getStyles()))
21
+ const s = e[r].config[r];
22
+ this._styles = new f(
23
+ S(s.features.flatMap((o) => o.getStyles()))
24
24
  ), this._styles.addStylesTo(this.shadowRoot);
25
25
  }
26
26
  _removeStyles() {
@@ -29,34 +29,42 @@ class h extends u {
29
29
  _cleanupLightDom() {
30
30
  for (const e of this._slottedChildren)
31
31
  this.removeChild(e);
32
- this._slottedChildren.clear(), this._slotCounter = 0;
32
+ for (const e of this._slotRequests)
33
+ a(this, "child", e, R);
34
+ this._slottedChildren.clear(), this._slotRequests.clear(), this._slotCounter = 0;
33
35
  }
34
36
  _updateView() {
35
37
  this._contentElement && (this._contentElement.innerHTML = "", this._cleanupLightDom(), this.view && this._contentElement.appendChild(this._renderView(this.view)));
36
38
  }
37
39
  _renderView(e) {
38
- const n = e[r];
40
+ const s = e[r];
39
41
  if (e.type === "node" && e.node.type === "doc" && (e = e.children), e.type === "fragment") {
40
42
  const t = document.createDocumentFragment();
41
- for (const o of e.content)
42
- t.appendChild(this._renderView(o));
43
+ for (const n of e.content)
44
+ t.appendChild(this._renderView(n));
43
45
  return t;
44
46
  }
45
- const s = n.options.renderChildView?.(e) ?? !1;
46
- return s ? this._handleCustomRender(e, s) : this._renderDefault(e);
47
+ const o = s.options.renderChildView?.(e) ?? !1;
48
+ return o ? this._handleCustomRender(e, o) : this._renderDefault(e);
47
49
  }
48
- _handleCustomRender(e, n) {
49
- const { dom: s, contentDom: t = s } = n, o = `view-${this._slotCounter++}`, i = document.createElement("slot");
50
- i.setAttribute("name", o);
51
- const c = document.createElement(this.tagName);
52
- return c.view = e.children, t.appendChild(c), s.setAttribute("slot", o), this.appendChild(s), this._slottedChildren.add(s), i;
50
+ _handleCustomRender(e, s) {
51
+ const o = `child-view-${this._slotCounter++}`, t = document.createElement("slot");
52
+ if (t.setAttribute("name", o), s === !0)
53
+ this._slotRequests.add(o), a(this, "child", o, {
54
+ view: e
55
+ });
56
+ else {
57
+ const { dom: n, contentDom: i = n } = s, c = document.createElement(this.tagName);
58
+ c.view = e.children, i.appendChild(c), n.setAttribute("slot", o), this.appendChild(n), this._slottedChildren.add(n);
59
+ }
60
+ return t;
53
61
  }
54
62
  _renderDefault(e) {
55
63
  const t = e[r].config[r].schema;
56
64
  if (e.type === "node" && e.node.type === "text")
57
65
  return document.createTextNode(e.node.text);
58
- const o = e.type === "node" ? e.node : e.mark, i = e.type === "node" ? a.fromJSON(t, o) : x.fromJSON(t, o), c = i instanceof a ? i.type.spec.toDOM(i) : i.type.spec.toDOM(i, !0), { dom: l, contentDOM: m = l } = S.renderSpec(document, c), p = this._renderView(e.children);
59
- return m.appendChild(p), l;
66
+ const n = e.type === "node" ? e.node : e.mark, i = e.type === "node" ? h.fromJSON(t, n) : b.fromJSON(t, n), c = i instanceof h ? i.type.spec.toDOM(i) : i.type.spec.toDOM(i, !0), { dom: l, contentDOM: p = l } = x.renderSpec(document, c), u = this._renderView(e.children);
67
+ return p.appendChild(u), l;
60
68
  }
61
69
  /**
62
70
  * @internal
@@ -71,25 +79,25 @@ class h extends u {
71
79
  super.disconnectedCallback(), this._removeStyles(), this._cleanupLightDom();
72
80
  }
73
81
  }
74
- E([
75
- f
76
- ], h.prototype, "view");
77
- const w = () => y`<div class="content rich-text" ${D("_contentElement")}></div>`, M = g(
82
+ k([
83
+ y
84
+ ], m.prototype, "view");
85
+ const M = () => C`<div class="content rich-text" ${w("_contentElement")}></div>`, N = v(
78
86
  "rich-text-view",
79
- h,
80
- w,
87
+ m,
88
+ M,
81
89
  [],
82
90
  {
83
- styles: b,
91
+ styles: D,
84
92
  shadowOptions: {
85
93
  delegatesFocus: !0
86
94
  }
87
95
  }
88
- ), O = C(
89
- M
96
+ ), O = g(
97
+ N
90
98
  );
91
99
  O();
92
100
  export {
93
- h as RichTextView,
101
+ m as RichTextView,
94
102
  O as registerRichTextView
95
103
  };
@@ -10,7 +10,7 @@ const delegatesAria = require('../unbundled/delegates-aria.cjs');
10
10
  const fastWebUtilities = require('@microsoft/fast-web-utilities');
11
11
  const enums = require('../unbundled/enums.cjs');
12
12
 
13
- const styles = ":host{display:flex}.base.connotation-cta{--_connotation-color-firm-all: var(--vvd-selectable-box-cta-firm-all, var(--vvd-color-cta-600));--_connotation-color-pale: var(--vvd-selectable-box-cta-pale, var(--vvd-color-cta-300));--_connotation-color-fierce: var(--vvd-selectable-box-cta-fierce, var(--vvd-color-cta-700));--_connotation-color-faint: var(--vvd-selectable-box-cta-faint, var(--vvd-color-cta-50));--_connotation-color-soft: var(--vvd-selectable-box-cta-soft, var(--vvd-color-cta-100))}.base:not(.connotation-cta){--_connotation-color-firm-all: var(--vvd-selectable-box-accent-firm-all, var(--vvd-color-neutral-600));--_connotation-color-pale: var(--vvd-selectable-box-accent-pale, var(--vvd-color-neutral-300));--_connotation-color-fierce: var(--vvd-selectable-box-accent-fierce, var(--vvd-color-neutral-700));--_connotation-color-faint: var(--vvd-selectable-box-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-selectable-box-accent-soft, var(--vvd-color-neutral-100))}.base{--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--_connotation-color-pale)}@media (hover: hover){.base:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--_connotation-color-firm-all)}}.base.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--_connotation-color-firm-all)}.base.selected:where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: var(--_connotation-color-pale)}@media (hover: hover){.base.selected:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: var(--_connotation-color-firm-all)}}.base.selected.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: var(--_connotation-color-firm-all)}.base{--control-offset: calc(var(--selectable-box-spacing, 16px) + 36px)}.base{position:relative;padding:var(--selectable-box-spacing, 16px);border:1px solid var(--_appearance-color-outline);border-radius:8px;background-color:var(--_appearance-color-fill);inline-size:100%;text-align:start}.base.control-placement-end-stacked,.base.control-placement-start-stacked{padding-block-start:var(--control-offset)}.base.control-placement-start{padding-inline-start:var(--control-offset)}.base.control-placement-end{padding-inline-end:var(--control-offset)}.base:focus-visible{--focus-stroke-gap-color: transparent;box-shadow:0 0 0 4px color-mix(in srgb,var(--focus-stroke-color, 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.tight{overflow:hidden;min-height:calc(var(--selectable-box-spacing, 16px) * 2 + 22px);padding:0}.base.selected{background-color:var(--selectable-box-checked-bg, var(--_appearance-color-fill))}.base.clickable{cursor:pointer}.control{position:absolute;inset-block-start:var(--selectable-box-spacing, 16px)}.control.start-stacked,.control.start{inset-inline-start:var(--selectable-box-spacing, 16px)}.control.end-stacked,.control.end{inset-inline-end:var(--selectable-box-spacing, 16px)}";
13
+ const styles = ":host{display:flex}.base.connotation-cta{--_connotation-color-firm-all: var(--vvd-selectable-box-cta-firm-all, var(--vvd-color-cta-600));--_connotation-color-pale: var(--vvd-selectable-box-cta-pale, var(--vvd-color-cta-300));--_connotation-color-fierce: var(--vvd-selectable-box-cta-fierce, var(--vvd-color-cta-700));--_connotation-color-faint: var(--vvd-selectable-box-cta-faint, var(--vvd-color-cta-50));--_connotation-color-soft: var(--vvd-selectable-box-cta-soft, var(--vvd-color-cta-100))}.base:not(.connotation-cta){--_connotation-color-firm-all: var(--vvd-selectable-box-accent-firm-all, var(--vvd-color-neutral-600));--_connotation-color-pale: var(--vvd-selectable-box-accent-pale, var(--vvd-color-neutral-300));--_connotation-color-fierce: var(--vvd-selectable-box-accent-fierce, var(--vvd-color-neutral-700));--_connotation-color-faint: var(--vvd-selectable-box-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-selectable-box-accent-soft, var(--vvd-color-neutral-100))}.base{--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--_connotation-color-pale)}@media (hover: hover){.base:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--_connotation-color-firm-all)}}.base.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--_connotation-color-firm-all)}.base.selected:where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: var(--_connotation-color-pale)}@media (hover: hover){.base.selected:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: var(--_connotation-color-firm-all)}}.base.selected.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: var(--_connotation-color-firm-all)}.base:disabled{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--vvd-color-neutral-100)}.base.disabled{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--vvd-color-neutral-100)}.base{--control-offset: calc(var(--selectable-box-spacing, 16px) + 36px)}.base{position:relative;padding:var(--selectable-box-spacing, 16px);border:1px solid var(--_appearance-color-outline);border-radius:8px;background-color:var(--_appearance-color-fill);inline-size:100%;text-align:start}.base.control-placement-end-stacked,.base.control-placement-start-stacked{padding-block-start:var(--control-offset)}.base.control-placement-start{padding-inline-start:var(--control-offset)}.base.control-placement-end{padding-inline-end:var(--control-offset)}.base:focus-visible{--focus-stroke-gap-color: transparent;box-shadow:0 0 0 4px color-mix(in srgb,var(--focus-stroke-color, 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.tight{overflow:hidden;min-height:calc(var(--selectable-box-spacing, 16px) * 2 + 22px);padding:0}.base.selected{background-color:var(--selectable-box-checked-bg, var(--_appearance-color-fill))}.base.clickable{cursor:pointer}.control{position:absolute;inset-block-start:var(--selectable-box-spacing, 16px)}.control.start-stacked,.control.start{inset-inline-start:var(--selectable-box-spacing, 16px)}.control.end-stacked,.control.end{inset-inline-end:var(--selectable-box-spacing, 16px)}";
14
14
 
15
15
  var __defProp = Object.defineProperty;
16
16
  var __decorateClass = (decorators, target, key, kind) => {
@@ -28,11 +28,13 @@ class SelectableBox extends delegatesAria.DelegatesAria(vividElement.VividElemen
28
28
  this.clickableBox = false;
29
29
  this.controlPlacement = "end-stacked";
30
30
  this.tight = false;
31
+ this.disabled = false;
31
32
  }
32
33
  /**
33
34
  * @internal
34
35
  */
35
36
  _handleCheckedChange() {
37
+ if (this.disabled) return;
36
38
  if (this.controlType === "radio" && this.checked) return;
37
39
  this.checked = !this.checked;
38
40
  if (this.clickableBox) this.$emit("change");
@@ -41,6 +43,7 @@ class SelectableBox extends delegatesAria.DelegatesAria(vividElement.VividElemen
41
43
  * @internal
42
44
  */
43
45
  _handleKeydown(event) {
46
+ if (this.disabled) return true;
44
47
  if ((event.code === "Space" || event.code === "Enter") && this.clickableBox)
45
48
  return this._handleCheckedChange();
46
49
  return true;
@@ -64,13 +67,17 @@ __decorateClass([
64
67
  __decorateClass([
65
68
  fastElement.attr({ mode: "boolean" })
66
69
  ], SelectableBox.prototype, "tight");
70
+ __decorateClass([
71
+ fastElement.attr({ mode: "boolean" })
72
+ ], SelectableBox.prototype, "disabled");
67
73
 
68
74
  const getClasses = ({
69
75
  connotation,
70
76
  tight,
71
77
  checked,
72
78
  clickableBox,
73
- controlPlacement
79
+ controlPlacement,
80
+ disabled
74
81
  }) => fastWebUtilities.classNames(
75
82
  "base",
76
83
  [`connotation-${connotation}`, Boolean(connotation)],
@@ -78,7 +85,8 @@ const getClasses = ({
78
85
  ["selected", checked],
79
86
  ["clickable", clickableBox],
80
87
  ["readonly", !clickableBox],
81
- [`control-placement-${controlPlacement}`, Boolean(controlPlacement)]
88
+ [`control-placement-${controlPlacement}`, Boolean(controlPlacement)],
89
+ ["disabled", disabled]
82
90
  );
83
91
  function handleControlChange(x) {
84
92
  if (!x.clickableBox) x._handleCheckedChange();
@@ -99,6 +107,7 @@ function checkbox(context) {
99
107
  class="control checkbox ${(x) => x.controlPlacement}"
100
108
  connotation="${(x) => x.connotation === "cta" ? enums.Connotation.CTA : enums.Connotation.Accent}"
101
109
  :checked="${(x) => x.checked}"
110
+ ?disabled="${(x) => x.disabled}"
102
111
  inert="${(x) => x.clickableBox ? true : null}"
103
112
  ></${checkboxTag}>`
104
113
  )} `;
@@ -119,6 +128,7 @@ function radio(context) {
119
128
  class="control radio ${(x) => x.controlPlacement}"
120
129
  connotation="${(x) => x.connotation === "cta" ? enums.Connotation.CTA : enums.Connotation.Accent}"
121
130
  :checked="${(x) => x.checked}"
131
+ ?disabled="${(x) => x.disabled}"
122
132
  inert="${(x) => x.clickableBox ? true : null}"
123
133
  ></${radioTag}>`
124
134
  )} `;
@@ -127,11 +137,12 @@ const SelectableBoxTemplate = (context) => {
127
137
  return fastElement.html`<template>
128
138
  <div
129
139
  class="${getClasses}"
130
- tabindex="${(x) => x.clickableBox ? "0" : null}"
140
+ tabindex="${(x) => x.clickableBox && !x.disabled ? "0" : null}"
131
141
  ${delegatesAria.delegateAria({
132
142
  role: (x) => x.clickableBox ? "button" : null,
133
143
  ariaPressed: (x) => x.clickableBox ? x.checked ? "true" : "false" : null,
134
- ariaLabel: (x) => x.clickableBox ? x.ariaLabel : null
144
+ ariaLabel: (x) => x.clickableBox ? x.ariaLabel : null,
145
+ ariaDisabled: (x) => x.clickableBox && x.disabled ? "true" : null
135
146
  })}
136
147
  @keydown="${(x, c) => x._handleKeydown(c.event)}"
137
148
  @click="${(x) => x.clickableBox ? x._handleCheckedChange() : null}"
@@ -6,7 +6,7 @@ import { D as DelegatesAria, d as delegateAria } from '../unbundled/delegates-ar
6
6
  import { classNames } from '@microsoft/fast-web-utilities';
7
7
  import { C as Connotation } from '../unbundled/enums.js';
8
8
 
9
- const styles = ":host{display:flex}.base.connotation-cta{--_connotation-color-firm-all: var(--vvd-selectable-box-cta-firm-all, var(--vvd-color-cta-600));--_connotation-color-pale: var(--vvd-selectable-box-cta-pale, var(--vvd-color-cta-300));--_connotation-color-fierce: var(--vvd-selectable-box-cta-fierce, var(--vvd-color-cta-700));--_connotation-color-faint: var(--vvd-selectable-box-cta-faint, var(--vvd-color-cta-50));--_connotation-color-soft: var(--vvd-selectable-box-cta-soft, var(--vvd-color-cta-100))}.base:not(.connotation-cta){--_connotation-color-firm-all: var(--vvd-selectable-box-accent-firm-all, var(--vvd-color-neutral-600));--_connotation-color-pale: var(--vvd-selectable-box-accent-pale, var(--vvd-color-neutral-300));--_connotation-color-fierce: var(--vvd-selectable-box-accent-fierce, var(--vvd-color-neutral-700));--_connotation-color-faint: var(--vvd-selectable-box-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-selectable-box-accent-soft, var(--vvd-color-neutral-100))}.base{--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--_connotation-color-pale)}@media (hover: hover){.base:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--_connotation-color-firm-all)}}.base.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--_connotation-color-firm-all)}.base.selected:where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: var(--_connotation-color-pale)}@media (hover: hover){.base.selected:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: var(--_connotation-color-firm-all)}}.base.selected.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: var(--_connotation-color-firm-all)}.base{--control-offset: calc(var(--selectable-box-spacing, 16px) + 36px)}.base{position:relative;padding:var(--selectable-box-spacing, 16px);border:1px solid var(--_appearance-color-outline);border-radius:8px;background-color:var(--_appearance-color-fill);inline-size:100%;text-align:start}.base.control-placement-end-stacked,.base.control-placement-start-stacked{padding-block-start:var(--control-offset)}.base.control-placement-start{padding-inline-start:var(--control-offset)}.base.control-placement-end{padding-inline-end:var(--control-offset)}.base:focus-visible{--focus-stroke-gap-color: transparent;box-shadow:0 0 0 4px color-mix(in srgb,var(--focus-stroke-color, 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.tight{overflow:hidden;min-height:calc(var(--selectable-box-spacing, 16px) * 2 + 22px);padding:0}.base.selected{background-color:var(--selectable-box-checked-bg, var(--_appearance-color-fill))}.base.clickable{cursor:pointer}.control{position:absolute;inset-block-start:var(--selectable-box-spacing, 16px)}.control.start-stacked,.control.start{inset-inline-start:var(--selectable-box-spacing, 16px)}.control.end-stacked,.control.end{inset-inline-end:var(--selectable-box-spacing, 16px)}";
9
+ const styles = ":host{display:flex}.base.connotation-cta{--_connotation-color-firm-all: var(--vvd-selectable-box-cta-firm-all, var(--vvd-color-cta-600));--_connotation-color-pale: var(--vvd-selectable-box-cta-pale, var(--vvd-color-cta-300));--_connotation-color-fierce: var(--vvd-selectable-box-cta-fierce, var(--vvd-color-cta-700));--_connotation-color-faint: var(--vvd-selectable-box-cta-faint, var(--vvd-color-cta-50));--_connotation-color-soft: var(--vvd-selectable-box-cta-soft, var(--vvd-color-cta-100))}.base:not(.connotation-cta){--_connotation-color-firm-all: var(--vvd-selectable-box-accent-firm-all, var(--vvd-color-neutral-600));--_connotation-color-pale: var(--vvd-selectable-box-accent-pale, var(--vvd-color-neutral-300));--_connotation-color-fierce: var(--vvd-selectable-box-accent-fierce, var(--vvd-color-neutral-700));--_connotation-color-faint: var(--vvd-selectable-box-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-selectable-box-accent-soft, var(--vvd-color-neutral-100))}.base{--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--_connotation-color-pale)}@media (hover: hover){.base:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--_connotation-color-firm-all)}}.base.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--_connotation-color-firm-all)}.base.selected:where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: var(--_connotation-color-pale)}@media (hover: hover){.base.selected:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: var(--_connotation-color-firm-all)}}.base.selected.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: var(--_connotation-color-firm-all)}.base:disabled{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--vvd-color-neutral-100)}.base.disabled{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--vvd-color-neutral-100)}.base{--control-offset: calc(var(--selectable-box-spacing, 16px) + 36px)}.base{position:relative;padding:var(--selectable-box-spacing, 16px);border:1px solid var(--_appearance-color-outline);border-radius:8px;background-color:var(--_appearance-color-fill);inline-size:100%;text-align:start}.base.control-placement-end-stacked,.base.control-placement-start-stacked{padding-block-start:var(--control-offset)}.base.control-placement-start{padding-inline-start:var(--control-offset)}.base.control-placement-end{padding-inline-end:var(--control-offset)}.base:focus-visible{--focus-stroke-gap-color: transparent;box-shadow:0 0 0 4px color-mix(in srgb,var(--focus-stroke-color, 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.tight{overflow:hidden;min-height:calc(var(--selectable-box-spacing, 16px) * 2 + 22px);padding:0}.base.selected{background-color:var(--selectable-box-checked-bg, var(--_appearance-color-fill))}.base.clickable{cursor:pointer}.control{position:absolute;inset-block-start:var(--selectable-box-spacing, 16px)}.control.start-stacked,.control.start{inset-inline-start:var(--selectable-box-spacing, 16px)}.control.end-stacked,.control.end{inset-inline-end:var(--selectable-box-spacing, 16px)}";
10
10
 
11
11
  var __defProp = Object.defineProperty;
12
12
  var __decorateClass = (decorators, target, key, kind) => {
@@ -24,11 +24,13 @@ class SelectableBox extends DelegatesAria(VividElement) {
24
24
  this.clickableBox = false;
25
25
  this.controlPlacement = "end-stacked";
26
26
  this.tight = false;
27
+ this.disabled = false;
27
28
  }
28
29
  /**
29
30
  * @internal
30
31
  */
31
32
  _handleCheckedChange() {
33
+ if (this.disabled) return;
32
34
  if (this.controlType === "radio" && this.checked) return;
33
35
  this.checked = !this.checked;
34
36
  if (this.clickableBox) this.$emit("change");
@@ -37,6 +39,7 @@ class SelectableBox extends DelegatesAria(VividElement) {
37
39
  * @internal
38
40
  */
39
41
  _handleKeydown(event) {
42
+ if (this.disabled) return true;
40
43
  if ((event.code === "Space" || event.code === "Enter") && this.clickableBox)
41
44
  return this._handleCheckedChange();
42
45
  return true;
@@ -60,13 +63,17 @@ __decorateClass([
60
63
  __decorateClass([
61
64
  attr({ mode: "boolean" })
62
65
  ], SelectableBox.prototype, "tight");
66
+ __decorateClass([
67
+ attr({ mode: "boolean" })
68
+ ], SelectableBox.prototype, "disabled");
63
69
 
64
70
  const getClasses = ({
65
71
  connotation,
66
72
  tight,
67
73
  checked,
68
74
  clickableBox,
69
- controlPlacement
75
+ controlPlacement,
76
+ disabled
70
77
  }) => classNames(
71
78
  "base",
72
79
  [`connotation-${connotation}`, Boolean(connotation)],
@@ -74,7 +81,8 @@ const getClasses = ({
74
81
  ["selected", checked],
75
82
  ["clickable", clickableBox],
76
83
  ["readonly", !clickableBox],
77
- [`control-placement-${controlPlacement}`, Boolean(controlPlacement)]
84
+ [`control-placement-${controlPlacement}`, Boolean(controlPlacement)],
85
+ ["disabled", disabled]
78
86
  );
79
87
  function handleControlChange(x) {
80
88
  if (!x.clickableBox) x._handleCheckedChange();
@@ -95,6 +103,7 @@ function checkbox(context) {
95
103
  class="control checkbox ${(x) => x.controlPlacement}"
96
104
  connotation="${(x) => x.connotation === "cta" ? Connotation.CTA : Connotation.Accent}"
97
105
  :checked="${(x) => x.checked}"
106
+ ?disabled="${(x) => x.disabled}"
98
107
  inert="${(x) => x.clickableBox ? true : null}"
99
108
  ></${checkboxTag}>`
100
109
  )} `;
@@ -115,6 +124,7 @@ function radio(context) {
115
124
  class="control radio ${(x) => x.controlPlacement}"
116
125
  connotation="${(x) => x.connotation === "cta" ? Connotation.CTA : Connotation.Accent}"
117
126
  :checked="${(x) => x.checked}"
127
+ ?disabled="${(x) => x.disabled}"
118
128
  inert="${(x) => x.clickableBox ? true : null}"
119
129
  ></${radioTag}>`
120
130
  )} `;
@@ -123,11 +133,12 @@ const SelectableBoxTemplate = (context) => {
123
133
  return html`<template>
124
134
  <div
125
135
  class="${getClasses}"
126
- tabindex="${(x) => x.clickableBox ? "0" : null}"
136
+ tabindex="${(x) => x.clickableBox && !x.disabled ? "0" : null}"
127
137
  ${delegateAria({
128
138
  role: (x) => x.clickableBox ? "button" : null,
129
139
  ariaPressed: (x) => x.clickableBox ? x.checked ? "true" : "false" : null,
130
- ariaLabel: (x) => x.clickableBox ? x.ariaLabel : null
140
+ ariaLabel: (x) => x.clickableBox ? x.ariaLabel : null,
141
+ ariaDisabled: (x) => x.clickableBox && x.disabled ? "true" : null
131
142
  })}
132
143
  @keydown="${(x, c) => x._handleKeydown(c.event)}"
133
144
  @click="${(x) => x.clickableBox ? x._handleCheckedChange() : null}"
@@ -1,28 +1,30 @@
1
- "use strict";const b=require("../bundled/definition8.cjs"),p=require("../bundled/definition18.cjs"),t=require("../bundled/vivid-element.cjs"),i=require("../bundled/delegates-aria.cjs"),r=require("../bundled/enums.cjs"),f=require("../bundled/when.cjs"),u=require("../bundled/class-names.cjs"),x=":host{display:flex}.base.connotation-cta{--_connotation-color-firm-all: var(--vvd-selectable-box-cta-firm-all, var(--vvd-color-cta-600));--_connotation-color-pale: var(--vvd-selectable-box-cta-pale, var(--vvd-color-cta-300));--_connotation-color-fierce: var(--vvd-selectable-box-cta-fierce, var(--vvd-color-cta-700));--_connotation-color-faint: var(--vvd-selectable-box-cta-faint, var(--vvd-color-cta-50));--_connotation-color-soft: var(--vvd-selectable-box-cta-soft, var(--vvd-color-cta-100))}.base:not(.connotation-cta){--_connotation-color-firm-all: var(--vvd-selectable-box-accent-firm-all, var(--vvd-color-neutral-600));--_connotation-color-pale: var(--vvd-selectable-box-accent-pale, var(--vvd-color-neutral-300));--_connotation-color-fierce: var(--vvd-selectable-box-accent-fierce, var(--vvd-color-neutral-700));--_connotation-color-faint: var(--vvd-selectable-box-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-selectable-box-accent-soft, var(--vvd-color-neutral-100))}.base{--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--_connotation-color-pale)}@media (hover: hover){.base:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--_connotation-color-firm-all)}}.base.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--_connotation-color-firm-all)}.base.selected:where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: var(--_connotation-color-pale)}@media (hover: hover){.base.selected:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: var(--_connotation-color-firm-all)}}.base.selected.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: var(--_connotation-color-firm-all)}.base{--control-offset: calc(var(--selectable-box-spacing, 16px) + 36px)}.base{position:relative;padding:var(--selectable-box-spacing, 16px);border:1px solid var(--_appearance-color-outline);border-radius:8px;background-color:var(--_appearance-color-fill);inline-size:100%;text-align:start}.base.control-placement-end-stacked,.base.control-placement-start-stacked{padding-block-start:var(--control-offset)}.base.control-placement-start{padding-inline-start:var(--control-offset)}.base.control-placement-end{padding-inline-end:var(--control-offset)}.base:focus-visible{--focus-stroke-gap-color: transparent;box-shadow:0 0 0 4px color-mix(in srgb,var(--focus-stroke-color, 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.tight{overflow:hidden;min-height:calc(var(--selectable-box-spacing, 16px) * 2 + 22px);padding:0}.base.selected{background-color:var(--selectable-box-checked-bg, var(--_appearance-color-fill))}.base.clickable{cursor:pointer}.control{position:absolute;inset-block-start:var(--selectable-box-spacing, 16px)}.control.start-stacked,.control.start{inset-inline-start:var(--selectable-box-spacing, 16px)}.control.end-stacked,.control.end{inset-inline-end:var(--selectable-box-spacing, 16px)}";var _=Object.defineProperty,c=(a,o,e,s)=>{for(var l=void 0,d=a.length-1,v;d>=0;d--)(v=a[d])&&(l=v(o,e,l)||l);return l&&_(o,e,l),l};class n extends i.DelegatesAria(t.VividElement){constructor(){super(...arguments),this.checked=!1,this.clickableBox=!1,this.controlPlacement="end-stacked",this.tight=!1}_handleCheckedChange(){this.controlType==="radio"&&this.checked||(this.checked=!this.checked,this.clickableBox&&this.$emit("change"))}_handleKeydown(o){return(o.code==="Space"||o.code==="Enter")&&this.clickableBox?this._handleCheckedChange():!0}}c([t.attr({mode:"boolean"})],n.prototype,"checked");c([t.attr({attribute:"clickable-box",mode:"boolean"})],n.prototype,"clickableBox");c([t.attr],n.prototype,"connotation");c([t.attr({attribute:"control-type"})],n.prototype,"controlType");c([t.attr({attribute:"control-placement",mode:"fromView"})],n.prototype,"controlPlacement");c([t.attr({mode:"boolean"})],n.prototype,"tight");const k=({connotation:a,tight:o,checked:e,clickableBox:s,controlPlacement:l})=>u.classNames("base",[`connotation-${a}`,!!a],["tight",o],["selected",e],["clickable",s],["readonly",!s],[`control-placement-${l}`,!!l]);function h(a){a.clickableBox||a._handleCheckedChange()}function m(a){const o=a.tagFor(b.Checkbox);return t.html`${f.when(e=>e.controlType!=="radio",t.html`
1
+ "use strict";const p=require("../bundled/definition8.cjs"),v=require("../bundled/definition18.cjs"),t=require("../bundled/vivid-element.cjs"),s=require("../bundled/delegates-aria.cjs"),i=require("../bundled/enums.cjs"),f=require("../bundled/when.cjs"),u=require("../bundled/class-names.cjs"),_=":host{display:flex}.base.connotation-cta{--_connotation-color-firm-all: var(--vvd-selectable-box-cta-firm-all, var(--vvd-color-cta-600));--_connotation-color-pale: var(--vvd-selectable-box-cta-pale, var(--vvd-color-cta-300));--_connotation-color-fierce: var(--vvd-selectable-box-cta-fierce, var(--vvd-color-cta-700));--_connotation-color-faint: var(--vvd-selectable-box-cta-faint, var(--vvd-color-cta-50));--_connotation-color-soft: var(--vvd-selectable-box-cta-soft, var(--vvd-color-cta-100))}.base:not(.connotation-cta){--_connotation-color-firm-all: var(--vvd-selectable-box-accent-firm-all, var(--vvd-color-neutral-600));--_connotation-color-pale: var(--vvd-selectable-box-accent-pale, var(--vvd-color-neutral-300));--_connotation-color-fierce: var(--vvd-selectable-box-accent-fierce, var(--vvd-color-neutral-700));--_connotation-color-faint: var(--vvd-selectable-box-accent-faint, var(--vvd-color-neutral-50));--_connotation-color-soft: var(--vvd-selectable-box-accent-soft, var(--vvd-color-neutral-100))}.base{--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--_connotation-color-pale)}@media (hover: hover){.base:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--_connotation-color-firm-all)}}.base.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--_connotation-color-firm-all)}.base.selected:where(:not(.disabled,:disabled)){--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: var(--_connotation-color-soft);--_appearance-color-outline: var(--_connotation-color-pale)}@media (hover: hover){.base.selected:hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: var(--_connotation-color-firm-all)}}.base.selected.hover:where(:not(.disabled,:disabled,.readonly)){--_appearance-color-text: var(--_connotation-color-firm-all);--_appearance-color-fill: var(--_connotation-color-faint);--_appearance-color-outline: var(--_connotation-color-firm-all)}.base:disabled{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--vvd-color-neutral-100)}.base.disabled{--_appearance-color-text: var(--vvd-color-neutral-300);--_appearance-color-fill: transparent;--_appearance-color-outline: var(--vvd-color-neutral-100)}.base{--control-offset: calc(var(--selectable-box-spacing, 16px) + 36px)}.base{position:relative;padding:var(--selectable-box-spacing, 16px);border:1px solid var(--_appearance-color-outline);border-radius:8px;background-color:var(--_appearance-color-fill);inline-size:100%;text-align:start}.base.control-placement-end-stacked,.base.control-placement-start-stacked{padding-block-start:var(--control-offset)}.base.control-placement-start{padding-inline-start:var(--control-offset)}.base.control-placement-end{padding-inline-end:var(--control-offset)}.base:focus-visible{--focus-stroke-gap-color: transparent;box-shadow:0 0 0 4px color-mix(in srgb,var(--focus-stroke-color, 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.tight{overflow:hidden;min-height:calc(var(--selectable-box-spacing, 16px) * 2 + 22px);padding:0}.base.selected{background-color:var(--selectable-box-checked-bg, var(--_appearance-color-fill))}.base.clickable{cursor:pointer}.control{position:absolute;inset-block-start:var(--selectable-box-spacing, 16px)}.control.start-stacked,.control.start{inset-inline-start:var(--selectable-box-spacing, 16px)}.control.end-stacked,.control.end{inset-inline-end:var(--selectable-box-spacing, 16px)}";var x=Object.defineProperty,n=(a,o,e,d)=>{for(var l=void 0,c=a.length-1,b;c>=0;c--)(b=a[c])&&(l=b(o,e,l)||l);return l&&x(o,e,l),l};class r extends s.DelegatesAria(t.VividElement){constructor(){super(...arguments),this.checked=!1,this.clickableBox=!1,this.controlPlacement="end-stacked",this.tight=!1,this.disabled=!1}_handleCheckedChange(){this.disabled||this.controlType==="radio"&&this.checked||(this.checked=!this.checked,this.clickableBox&&this.$emit("change"))}_handleKeydown(o){return this.disabled?!0:(o.code==="Space"||o.code==="Enter")&&this.clickableBox?this._handleCheckedChange():!0}}n([t.attr({mode:"boolean"})],r.prototype,"checked");n([t.attr({attribute:"clickable-box",mode:"boolean"})],r.prototype,"clickableBox");n([t.attr],r.prototype,"connotation");n([t.attr({attribute:"control-type"})],r.prototype,"controlType");n([t.attr({attribute:"control-placement",mode:"fromView"})],r.prototype,"controlPlacement");n([t.attr({mode:"boolean"})],r.prototype,"tight");n([t.attr({mode:"boolean"})],r.prototype,"disabled");const k=({connotation:a,tight:o,checked:e,clickableBox:d,controlPlacement:l,disabled:c})=>u.classNames("base",[`connotation-${a}`,!!a],["tight",o],["selected",e],["clickable",d],["readonly",!d],[`control-placement-${l}`,!!l],["disabled",c]);function h(a){a.clickableBox||a._handleCheckedChange()}function m(a){const o=a.tagFor(p.Checkbox);return t.html`${f.when(e=>e.controlType!=="radio",t.html`
2
2
  <${o}
3
- ${i.delegateAria({ariaLabel:e=>!e.clickableBox&&e.ariaLabel?e.ariaLabel:null},{onlySpecified:!0})}
3
+ ${s.delegateAria({ariaLabel:e=>!e.clickableBox&&e.ariaLabel?e.ariaLabel:null},{onlySpecified:!0})}
4
4
  @change="${e=>h(e)}"
5
5
  class="control checkbox ${e=>e.controlPlacement}"
6
- connotation="${e=>e.connotation==="cta"?r.Connotation.CTA:r.Connotation.Accent}"
6
+ connotation="${e=>e.connotation==="cta"?i.Connotation.CTA:i.Connotation.Accent}"
7
7
  :checked="${e=>e.checked}"
8
+ ?disabled="${e=>e.disabled}"
8
9
  inert="${e=>e.clickableBox?!0:null}"
9
- ></${o}>`)} `}function g(a){const o=a.tagFor(p.Radio);return t.html`${f.when(e=>e.controlType==="radio",t.html`
10
+ ></${o}>`)} `}function g(a){const o=a.tagFor(v.Radio);return t.html`${f.when(e=>e.controlType==="radio",t.html`
10
11
  <${o}
11
- ${i.delegateAria({ariaLabel:e=>!e.clickableBox&&e.ariaLabel?e.ariaLabel:null},{onlySpecified:!0})}
12
+ ${s.delegateAria({ariaLabel:e=>!e.clickableBox&&e.ariaLabel?e.ariaLabel:null},{onlySpecified:!0})}
12
13
  @change="${e=>h(e)}"
13
14
  class="control radio ${e=>e.controlPlacement}"
14
- connotation="${e=>e.connotation==="cta"?r.Connotation.CTA:r.Connotation.Accent}"
15
+ connotation="${e=>e.connotation==="cta"?i.Connotation.CTA:i.Connotation.Accent}"
15
16
  :checked="${e=>e.checked}"
17
+ ?disabled="${e=>e.disabled}"
16
18
  inert="${e=>e.clickableBox?!0:null}"
17
19
  ></${o}>`)} `}const $=a=>t.html`<template>
18
20
  <div
19
21
  class="${k}"
20
- tabindex="${o=>o.clickableBox?"0":null}"
21
- ${i.delegateAria({role:o=>o.clickableBox?"button":null,ariaPressed:o=>o.clickableBox?o.checked?"true":"false":null,ariaLabel:o=>o.clickableBox?o.ariaLabel:null})}
22
+ tabindex="${o=>o.clickableBox&&!o.disabled?"0":null}"
23
+ ${s.delegateAria({role:o=>o.clickableBox?"button":null,ariaPressed:o=>o.clickableBox?o.checked?"true":"false":null,ariaLabel:o=>o.clickableBox?o.ariaLabel:null,ariaDisabled:o=>o.clickableBox&&o.disabled?"true":null})}
22
24
  @keydown="${(o,e)=>o._handleKeydown(e.event)}"
23
25
  @click="${o=>o.clickableBox?o._handleCheckedChange():null}"
24
26
  >
25
27
  ${m(a)} ${g(a)}
26
28
  <slot></slot>
27
29
  </div>
28
- </template>`,y=t.defineVividComponent("selectable-box",n,$,[b.checkboxDefinition,p.radioDefinition],{styles:x,shadowOptions:{delegatesFocus:!0}}),C=t.createRegisterFunction(y);C();
30
+ </template>`,y=t.defineVividComponent("selectable-box",r,$,[p.checkboxDefinition,v.radioDefinition],{styles:_,shadowOptions:{delegatesFocus:!0}}),C=t.createRegisterFunction(y);C();