@nectary/components 0.33.0 → 0.35.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.
- package/accordion/index.js +35 -10
- package/accordion/types.d.ts +3 -2
- package/accordion-item/index.js +8 -4
- package/action-menu/index.js +7 -8
- package/action-menu/types.d.ts +3 -3
- package/action-menu-option/index.js +23 -3
- package/action-menu-option/types.d.ts +2 -0
- package/alert/index.js +1 -1
- package/avatar/index.js +1 -1
- package/button/index.js +68 -4
- package/button/types.d.ts +6 -0
- package/checkbox/index.js +64 -6
- package/checkbox/types.d.ts +8 -2
- package/date-picker/index.js +37 -12
- package/date-picker/types.d.ts +4 -2
- package/dialog/index.d.ts +1 -0
- package/dialog/index.js +8 -12
- package/dialog/types.d.ts +3 -3
- package/dropdown/index.js +44 -28
- package/dropdown/types.d.ts +6 -4
- package/dropdown-checkbox-option/index.js +1 -1
- package/dropdown-checkbox-option/types.d.ts +0 -2
- package/dropdown-radio-option/index.js +1 -1
- package/dropdown-radio-option/types.d.ts +0 -2
- package/dropdown-text-option/index.js +1 -1
- package/dropdown-text-option/types.d.ts +0 -2
- package/horizontal-stepper/index.d.ts +13 -0
- package/horizontal-stepper/index.js +104 -0
- package/horizontal-stepper/types.d.ts +9 -0
- package/horizontal-stepper/types.js +1 -0
- package/horizontal-stepper-item/index.d.ts +13 -0
- package/horizontal-stepper-item/index.js +100 -0
- package/horizontal-stepper-item/types.d.ts +15 -0
- package/horizontal-stepper-item/types.js +1 -0
- package/horizontal-stepper-item/utils.d.ts +2 -0
- package/horizontal-stepper-item/utils.js +1 -0
- package/icon-button/index.js +67 -3
- package/icon-button/types.d.ts +6 -0
- package/icons/create-icon-class.js +1 -1
- package/icons/exclamation/index.d.ts +11 -0
- package/icons/exclamation/index.js +4 -0
- package/icons-branded/create-icon-class.js +3 -7
- package/icons-branded/types.d.ts +3 -0
- package/icons-channel/create-icon-class.js +3 -7
- package/icons-channel/types.d.ts +3 -0
- package/input/index.js +50 -19
- package/input/types.d.ts +8 -2
- package/link/index.js +81 -3
- package/link/types.d.ts +9 -0
- package/package.json +1 -1
- package/pagination/index.js +24 -8
- package/pagination/types.d.ts +3 -1
- package/popover/index.js +10 -13
- package/popover/types.d.ts +4 -3
- package/radio/index.js +36 -8
- package/radio/types.d.ts +3 -1
- package/radio-option/index.js +1 -1
- package/search/types.d.ts +0 -1
- package/segment-collapse/index.js +28 -12
- package/segment-collapse/types.d.ts +3 -1
- package/segmented-control/index.js +28 -23
- package/segmented-control/types.d.ts +3 -2
- package/segmented-control-option/index.js +59 -13
- package/segmented-control-option/types.d.ts +4 -0
- package/segmented-icon-control/index.js +27 -16
- package/segmented-icon-control/types.d.ts +5 -2
- package/segmented-icon-control-option/index.js +54 -12
- package/segmented-icon-control-option/types.d.ts +4 -0
- package/select/index.js +68 -9
- package/select/types.d.ts +41 -7
- package/stop-events/index.d.ts +1 -0
- package/stop-events/index.js +40 -0
- package/tabs/index.js +32 -8
- package/tabs/types.d.ts +3 -2
- package/tabs-option/index.js +2 -2
- package/textarea/index.js +58 -4
- package/textarea/types.d.ts +7 -2
- package/tile-control/index.d.ts +11 -0
- package/tile-control/index.js +181 -0
- package/tile-control/types.d.ts +38 -0
- package/tile-control/types.js +1 -0
- package/tile-control-option/index.d.ts +11 -0
- package/tile-control-option/index.js +161 -0
- package/tile-control-option/types.d.ts +37 -0
- package/tile-control-option/types.js +1 -0
- package/time-picker/index.js +17 -3
- package/time-picker/types.d.ts +4 -2
- package/toggle/index.js +63 -5
- package/toggle/types.d.ts +3 -1
- package/utils.d.ts +1 -0
- package/utils.js +3 -0
|
@@ -8,7 +8,7 @@ function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedec
|
|
|
8
8
|
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
|
9
9
|
|
|
10
10
|
import { defineCustomElement, getAttribute, getBooleanAttribute, isAttrTrue, NectaryElement, updateAttribute, updateBooleanAttribute, updateExplicitBooleanAttribute } from '../utils';
|
|
11
|
-
const templateHTML = '<style>:host{display:block}#wrapper{display:flex;position:relative;box-sizing:border-box;height:40px;padding:4px 10px 4px 6px;align-items:center;gap:6px;user-select:none;cursor:pointer}#text{flex-shrink:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#icon-container{position:relative;width:32px;height:32px}#icon-container::before{content:"";position:absolute;top:7px;left:7px;width:18px;height:18px;border-radius:var(--sinch-shape-radius-xs);pointer-events:none;background-color:var(--sinch-color-snow-100);border:2px solid var(--sinch-color-stormy-300);transition:background-color .1s linear;box-sizing:border-box}#icon-checkmark{position:absolute;left:9px;top:10px;transition:opacity .1s linear;opacity:0;pointer-events:none;fill:var(--sinch-color-snow-100)}:host([checked]
|
|
11
|
+
const templateHTML = '<style>:host{display:block}#wrapper{display:flex;position:relative;box-sizing:border-box;height:40px;padding:4px 10px 4px 6px;align-items:center;gap:6px;user-select:none;cursor:pointer}#text{flex-shrink:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#icon-container{position:relative;width:32px;height:32px}#icon-container::before{content:"";position:absolute;top:7px;left:7px;width:18px;height:18px;border-radius:var(--sinch-shape-radius-xs);pointer-events:none;background-color:var(--sinch-color-snow-100);border:2px solid var(--sinch-color-stormy-300);transition:background-color .1s linear;box-sizing:border-box}#icon-checkmark{position:absolute;left:9px;top:10px;transition:opacity .1s linear;opacity:0;pointer-events:none;fill:var(--sinch-color-snow-100)}:host([data-checked]) #icon-container::before{background-color:var(--sinch-color-tropical-500);border-color:var(--sinch-color-tropical-500)}:host([data-checked]) #icon-checkmark{opacity:1}:host(:hover)>#wrapper,:host([data-selected])>#wrapper{background-color:var(--sinch-color-snow-500)}:host([disabled]:not([disabled=false]))>#wrapper{color:var(--sinch-color-stormy-100);cursor:initial}:host([disabled]:not([disabled=false])) #icon-container::before{border-color:var(--sinch-color-stormy-100)}@media (prefers-reduced-motion){#icon-checkmark,#icon-container::before{transition:none}}</style><div id="wrapper"><div id="icon-container"><svg id="icon-checkmark" width="14" height="11" aria-hidden="true"><path d="M14 1.99999L12.59 0.579987L4.98995 8.17L1.49997 4.5L0.0799694 5.91L4.98995 11L14 1.99999Z"/></svg></div><span id="text"></span></div>';
|
|
12
12
|
const template = document.createElement('template');
|
|
13
13
|
template.innerHTML = templateHTML;
|
|
14
14
|
defineCustomElement('sinch-dropdown-checkbox-option', (_$text = new WeakMap(), class extends NectaryElement {
|
|
@@ -2,11 +2,9 @@ import type { TSinchElementReact } from '../types';
|
|
|
2
2
|
export declare type TSinchDropdownCheckboxOptionElement = HTMLElement & {
|
|
3
3
|
value: string;
|
|
4
4
|
text: string;
|
|
5
|
-
checked: boolean;
|
|
6
5
|
disabled: boolean;
|
|
7
6
|
setAttribute(name: 'value', value: string): void;
|
|
8
7
|
setAttribute(name: 'text', value: string): void;
|
|
9
|
-
setAttribute(name: 'checked', value: ''): void;
|
|
10
8
|
setAttribute(name: 'disabled', value: ''): void;
|
|
11
9
|
};
|
|
12
10
|
export declare type TSinchDropdownCheckboxOptionReact = TSinchElementReact<TSinchDropdownCheckboxOptionElement> & {
|
|
@@ -8,7 +8,7 @@ function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedec
|
|
|
8
8
|
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
|
9
9
|
|
|
10
10
|
import { defineCustomElement, getAttribute, getBooleanAttribute, isAttrTrue, NectaryElement, updateAttribute, updateBooleanAttribute, updateExplicitBooleanAttribute } from '../utils';
|
|
11
|
-
const templateHTML = '<style>:host{display:block}#wrapper{display:flex;position:relative;box-sizing:border-box;height:40px;padding:4px 10px 4px 6px;align-items:center;gap:6px;user-select:none;cursor:pointer}#text{flex-shrink:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#icon-container{position:relative;width:32px;height:32px}#icon-container::before{content:"";position:absolute;top:6px;left:6px;width:20px;height:20px;border-radius:50%;pointer-events:none;background-color:var(--sinch-color-snow-100);border:2px solid var(--sinch-color-stormy-300);transition:background-color .1s linear;box-sizing:border-box}#icon-knob{position:absolute;left:11px;top:11px;width:10px;height:10px;border-radius:50%;transition:opacity .1s linear;opacity:0;background-color:var(--sinch-color-tropical-500);pointer-events:none}:host([checked]
|
|
11
|
+
const templateHTML = '<style>:host{display:block}#wrapper{display:flex;position:relative;box-sizing:border-box;height:40px;padding:4px 10px 4px 6px;align-items:center;gap:6px;user-select:none;cursor:pointer}#text{flex-shrink:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#icon-container{position:relative;width:32px;height:32px}#icon-container::before{content:"";position:absolute;top:6px;left:6px;width:20px;height:20px;border-radius:50%;pointer-events:none;background-color:var(--sinch-color-snow-100);border:2px solid var(--sinch-color-stormy-300);transition:background-color .1s linear;box-sizing:border-box}#icon-knob{position:absolute;left:11px;top:11px;width:10px;height:10px;border-radius:50%;transition:opacity .1s linear;opacity:0;background-color:var(--sinch-color-tropical-500);pointer-events:none}:host([data-checked]) #icon-container::before{border-color:var(--sinch-color-tropical-500)}:host([data-checked]) #icon-knob{opacity:1}:host(:hover)>#wrapper,:host([data-selected])>#wrapper{background-color:var(--sinch-color-snow-500)}:host([disabled]:not([disabled=false]))>#wrapper{color:var(--sinch-color-stormy-100);cursor:initial}:host([disabled]:not([disabled=false])) #icon-container::before{border-color:var(--sinch-color-stormy-100)}@media (prefers-reduced-motion){#icon-container::before,#icon-knob{transition:none}}</style><div id="wrapper"><div id="icon-container"><div id="icon-knob"></div></div><span id="text"></span></div>';
|
|
12
12
|
const template = document.createElement('template');
|
|
13
13
|
template.innerHTML = templateHTML;
|
|
14
14
|
defineCustomElement('sinch-dropdown-radio-option', (_$text = new WeakMap(), class extends NectaryElement {
|
|
@@ -2,11 +2,9 @@ import type { TSinchElementReact } from '../types';
|
|
|
2
2
|
export declare type TSinchDropdownRadioOptionElement = HTMLElement & {
|
|
3
3
|
value: string;
|
|
4
4
|
text: string;
|
|
5
|
-
checked: boolean;
|
|
6
5
|
disabled: boolean;
|
|
7
6
|
setAttribute(name: 'value', value: string): void;
|
|
8
7
|
setAttribute(name: 'text', value: string): void;
|
|
9
|
-
setAttribute(name: 'checked', value: ''): void;
|
|
10
8
|
setAttribute(name: 'disabled', value: ''): void;
|
|
11
9
|
};
|
|
12
10
|
export declare type TSinchDropdownRadioOptionReact = TSinchElementReact<TSinchDropdownRadioOptionElement> & {
|
|
@@ -7,7 +7,7 @@ function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollect
|
|
|
7
7
|
|
|
8
8
|
import '../icons/check';
|
|
9
9
|
import { defineCustomElement, getAttribute, getBooleanAttribute, isAttrTrue, NectaryElement, updateAttribute, updateBooleanAttribute, updateExplicitBooleanAttribute } from '../utils';
|
|
10
|
-
const templateHTML = '<style>:host{display:block}#wrapper{display:flex;position:relative;box-sizing:border-box;height:40px;padding:8px 16px;align-items:center;gap:10px;user-select:none;cursor:pointer;--sinch-size-icon:24px}#content{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}:host(:hover)>#wrapper,:host([data-selected])>#wrapper{background-color:var(--sinch-color-snow-500)}#check{display:none;margin-right:-6px}:host([checked]
|
|
10
|
+
const templateHTML = '<style>:host{display:block}#wrapper{display:flex;position:relative;box-sizing:border-box;height:40px;padding:8px 16px;align-items:center;gap:10px;user-select:none;cursor:pointer;--sinch-size-icon:24px}#content{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}:host(:hover)>#wrapper,:host([data-selected])>#wrapper{background-color:var(--sinch-color-snow-500)}#check{display:none;margin-right:-6px}:host([data-checked]) #check{display:block}:host([disabled]:not([disabled=false]))>#wrapper{color:var(--sinch-color-stormy-100);cursor:initial;--sinch-color-icon:var(--sinch-color-stormy-100)}::slotted(*){margin-left:-6px}</style><div id="wrapper"><slot name="icon"></slot><span id="content"></span><sinch-icon-check id="check"></sinch-icon-check></div>';
|
|
11
11
|
const template = document.createElement('template');
|
|
12
12
|
template.innerHTML = templateHTML;
|
|
13
13
|
|
|
@@ -2,12 +2,10 @@ import type { TSinchElementReact } from '../types';
|
|
|
2
2
|
export declare type TSinchDropdownTextOptionElement = HTMLElement & {
|
|
3
3
|
value: string;
|
|
4
4
|
text: string;
|
|
5
|
-
checked: boolean;
|
|
6
5
|
disabled: boolean;
|
|
7
6
|
readonly icon: Element | null;
|
|
8
7
|
setAttribute(name: 'value', value: string): void;
|
|
9
8
|
setAttribute(name: 'text', value: string): void;
|
|
10
|
-
setAttribute(name: 'checked', value: ''): void;
|
|
11
9
|
setAttribute(name: 'disabled', value: ''): void;
|
|
12
10
|
};
|
|
13
11
|
export declare type TSinchDropdownTextOptionReact = TSinchElementReact<TSinchDropdownTextOptionElement> & {
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import '../icons/check';
|
|
2
|
+
import '../icons/error-outline';
|
|
3
|
+
import type { TSinchHorizontalStepperElement, TSinchHorizontalStepperReact } from './types';
|
|
4
|
+
declare global {
|
|
5
|
+
namespace JSX {
|
|
6
|
+
interface IntrinsicElements {
|
|
7
|
+
'sinch-horizontal-stepper': TSinchHorizontalStepperReact;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
interface HTMLElementTagNameMap {
|
|
11
|
+
'sinch-horizontal-stepper': TSinchHorizontalStepperElement;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import _classPrivateFieldGet from '@babel/runtime/helpers/classPrivateFieldGet';
|
|
2
|
+
import _classPrivateFieldSet from '@babel/runtime/helpers/classPrivateFieldSet';
|
|
3
|
+
|
|
4
|
+
var _$itemsSlot, _$progressBar, _updateItems;
|
|
5
|
+
|
|
6
|
+
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
|
7
|
+
|
|
8
|
+
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
|
9
|
+
|
|
10
|
+
import '../icons/check';
|
|
11
|
+
import '../icons/error-outline';
|
|
12
|
+
import { clampNumber, defineCustomElement, getAttribute, getIntegerAttribute, NectaryElement, updateAttribute } from '../utils';
|
|
13
|
+
const templateHTML = '<style>:host{display:block;outline:0}#wrapper{position:relative;display:flex;flex-direction:row;gap:28px;width:fit-content}#progress{position:absolute;height:1px;background-color:var(--sinch-color-snow-700);left:72px;right:72px;top:16px;transform:translateY(-50%)}#bar{position:absolute;height:1px;background-color:var(--sinch-color-stormy-400);left:0;top:0}</style><div id="wrapper"><div id="progress"><div id="bar"></div></div><slot></slot></div>';
|
|
14
|
+
const template = document.createElement('template');
|
|
15
|
+
template.innerHTML = templateHTML;
|
|
16
|
+
defineCustomElement('sinch-horizontal-stepper', (_$itemsSlot = new WeakMap(), _$progressBar = new WeakMap(), _updateItems = new WeakMap(), class extends NectaryElement {
|
|
17
|
+
constructor() {
|
|
18
|
+
super();
|
|
19
|
+
|
|
20
|
+
_classPrivateFieldInitSpec(this, _$itemsSlot, {
|
|
21
|
+
writable: true,
|
|
22
|
+
value: void 0
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
_classPrivateFieldInitSpec(this, _$progressBar, {
|
|
26
|
+
writable: true,
|
|
27
|
+
value: void 0
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
_classPrivateFieldInitSpec(this, _updateItems, {
|
|
31
|
+
writable: true,
|
|
32
|
+
value: () => {
|
|
33
|
+
const $items = _classPrivateFieldGet(this, _$itemsSlot).assignedElements();
|
|
34
|
+
|
|
35
|
+
const activeIndex = clampNumber(getIntegerAttribute(this, 'index', 0), 0, $items.length + 1);
|
|
36
|
+
|
|
37
|
+
for (let i = 0; i < $items.length; i++) {
|
|
38
|
+
const $el = $items[i];
|
|
39
|
+
const itemIndex = i + 1;
|
|
40
|
+
$el.setAttribute('data-index', String(itemIndex));
|
|
41
|
+
|
|
42
|
+
if (itemIndex === activeIndex) {
|
|
43
|
+
$el.setAttribute('data-progress', 'active');
|
|
44
|
+
} else if (itemIndex < activeIndex) {
|
|
45
|
+
$el.setAttribute('data-progress', 'done');
|
|
46
|
+
} else {
|
|
47
|
+
$el.removeAttribute('data-progress');
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
const valueIndex = clampNumber(activeIndex - 1, 0, $items.length - 1);
|
|
52
|
+
_classPrivateFieldGet(this, _$progressBar).style.width = `${Math.floor(valueIndex / Math.max(1, $items.length - 1) * 100)}%`;
|
|
53
|
+
this.setAttribute('aria-valuemax', String($items.length));
|
|
54
|
+
this.setAttribute('aria-valuenow', String(valueIndex + 1));
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
const shadowRoot = this.attachShadow();
|
|
59
|
+
shadowRoot.appendChild(template.content.cloneNode(true));
|
|
60
|
+
|
|
61
|
+
_classPrivateFieldSet(this, _$itemsSlot, shadowRoot.querySelector('slot'));
|
|
62
|
+
|
|
63
|
+
_classPrivateFieldSet(this, _$progressBar, shadowRoot.querySelector('#bar'));
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
connectedCallback() {
|
|
67
|
+
this.setAttribute('role', 'progressbar');
|
|
68
|
+
this.setAttribute('aria-valuemin', '0');
|
|
69
|
+
|
|
70
|
+
_classPrivateFieldGet(this, _$itemsSlot).addEventListener('slotchange', _classPrivateFieldGet(this, _updateItems));
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
disconnectedCallback() {
|
|
74
|
+
_classPrivateFieldGet(this, _$itemsSlot).removeEventListener('slotchange', _classPrivateFieldGet(this, _updateItems));
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
static get observedAttributes() {
|
|
78
|
+
return ['index'];
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
attributeChangedCallback(name, oldVal, newVal) {
|
|
82
|
+
if (oldVal === newVal) {
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
switch (name) {
|
|
87
|
+
case 'index':
|
|
88
|
+
{
|
|
89
|
+
_classPrivateFieldGet(this, _updateItems).call(this);
|
|
90
|
+
|
|
91
|
+
break;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
set index(value) {
|
|
97
|
+
updateAttribute(this, 'index', value);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
get index() {
|
|
101
|
+
return getAttribute(this, 'index', '1');
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
}));
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { TSinchElementReact } from '../types';
|
|
2
|
+
export declare type TSinchHorizontalStepperElement = HTMLElement & {
|
|
3
|
+
index: string;
|
|
4
|
+
setAttribute(name: 'index', value: string): void;
|
|
5
|
+
};
|
|
6
|
+
export declare type TSinchHorizontalStepperReact = TSinchElementReact<TSinchHorizontalStepperElement> & {
|
|
7
|
+
index: string;
|
|
8
|
+
'aria-label': string;
|
|
9
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import '../icons/check';
|
|
2
|
+
import '../icons/exclamation';
|
|
3
|
+
import type { TSinchHorizontalStepperItemElement, TSinchHorizontalStepperItemReact } from './types';
|
|
4
|
+
declare global {
|
|
5
|
+
namespace JSX {
|
|
6
|
+
interface IntrinsicElements {
|
|
7
|
+
'sinch-horizontal-stepper-item': TSinchHorizontalStepperItemReact;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
interface HTMLElementTagNameMap {
|
|
11
|
+
'sinch-horizontal-stepper-item': TSinchHorizontalStepperItemElement;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import _classPrivateFieldGet from '@babel/runtime/helpers/classPrivateFieldGet';
|
|
2
|
+
import _classPrivateFieldSet from '@babel/runtime/helpers/classPrivateFieldSet';
|
|
3
|
+
|
|
4
|
+
var _$label, _$description, _$circleText;
|
|
5
|
+
|
|
6
|
+
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
|
7
|
+
|
|
8
|
+
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
|
9
|
+
|
|
10
|
+
import '../icons/check';
|
|
11
|
+
import '../icons/exclamation';
|
|
12
|
+
import { defineCustomElement, getAttribute, getLiteralAttribute, NectaryElement, updateAttribute, updateLiteralAttribute } from '../utils';
|
|
13
|
+
const templateHTML = '<style>:host{display:block;outline:0}#wrapper{width:144px;min-height:64px;display:flex;flex-direction:column}#circle{position:relative;display:flex;align-items:center;justify-content:center;align-self:center;width:32px;height:32px;background-color:var(--sinch-color-snow-700);font:var(--sinch-font-title-s);line-height:32px;text-align:center;color:var(--sinch-color-stormy-500);border:1px solid transparent;border-radius:50%;box-sizing:border-box;--sinch-icon-size:20px}#label{font:var(--sinch-font-title-s);color:var(--sinch-color-stormy-500);text-align:center;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin-top:8px}#description{font:var(--sinch-font-text-xs);color:var(--sinch-color-stormy-300);text-align:center;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#icon-error,#icon-success{display:none}:host([data-progress=active]) #circle{color:var(--sinch-color-snow-100);background-color:var(--sinch-color-stormy-400)}:host([data-progress=done]) #circle{border-color:var(--sinch-color-stormy-400)}:host([data-progress=done]:not([status])) #icon-success{display:block}:host([data-progress=done][status=error]) #circle{background-color:var(--sinch-color-error-200);border-color:var(--sinch-color-stormy-400)}:host([data-progress=done][status=error]) #icon-error{display:block}:host([data-progress=done]:not([status=skip])) #circle-text{display:none}</style><div id="wrapper"><div id="circle" aria-hidden="true"><sinch-icon-check id="icon-success"></sinch-icon-check><sinch-icon-exclamation id="icon-error"></sinch-icon-exclamation><span id="circle-text"></span></div><span id="label"></span><span id="description"></span></div>';
|
|
14
|
+
import { statusValues } from './utils';
|
|
15
|
+
const template = document.createElement('template');
|
|
16
|
+
template.innerHTML = templateHTML;
|
|
17
|
+
defineCustomElement('sinch-horizontal-stepper-item', (_$label = new WeakMap(), _$description = new WeakMap(), _$circleText = new WeakMap(), class extends NectaryElement {
|
|
18
|
+
constructor() {
|
|
19
|
+
super();
|
|
20
|
+
|
|
21
|
+
_classPrivateFieldInitSpec(this, _$label, {
|
|
22
|
+
writable: true,
|
|
23
|
+
value: void 0
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
_classPrivateFieldInitSpec(this, _$description, {
|
|
27
|
+
writable: true,
|
|
28
|
+
value: void 0
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
_classPrivateFieldInitSpec(this, _$circleText, {
|
|
32
|
+
writable: true,
|
|
33
|
+
value: void 0
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
const shadowRoot = this.attachShadow();
|
|
37
|
+
shadowRoot.appendChild(template.content.cloneNode(true));
|
|
38
|
+
|
|
39
|
+
_classPrivateFieldSet(this, _$label, shadowRoot.querySelector('#label'));
|
|
40
|
+
|
|
41
|
+
_classPrivateFieldSet(this, _$description, shadowRoot.querySelector('#description'));
|
|
42
|
+
|
|
43
|
+
_classPrivateFieldSet(this, _$circleText, shadowRoot.querySelector('#circle-text'));
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
connectedCallback() {}
|
|
47
|
+
|
|
48
|
+
disconnectedCallback() {}
|
|
49
|
+
|
|
50
|
+
static get observedAttributes() {
|
|
51
|
+
return ['label', 'description', 'data-index'];
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
attributeChangedCallback(name, oldVal, newVal) {
|
|
55
|
+
switch (name) {
|
|
56
|
+
case 'label':
|
|
57
|
+
{
|
|
58
|
+
_classPrivateFieldGet(this, _$label).textContent = newVal;
|
|
59
|
+
break;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
case 'description':
|
|
63
|
+
{
|
|
64
|
+
_classPrivateFieldGet(this, _$description).textContent = newVal;
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
case 'data-index':
|
|
69
|
+
{
|
|
70
|
+
_classPrivateFieldGet(this, _$circleText).textContent = newVal;
|
|
71
|
+
break;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
set label(value) {
|
|
77
|
+
updateAttribute(this, 'label', value);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
get label() {
|
|
81
|
+
return getAttribute(this, 'label', '');
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
set description(value) {
|
|
85
|
+
updateAttribute(this, 'description', value);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
get description() {
|
|
89
|
+
return getAttribute(this, 'description', '');
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
get status() {
|
|
93
|
+
return getLiteralAttribute(this, statusValues, 'status', null);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
set status(value) {
|
|
97
|
+
updateLiteralAttribute(this, statusValues, 'status', value);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
}));
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { TSinchElementReact } from '../types';
|
|
2
|
+
export declare type TSinchHorizontalStepperStatusType = 'error' | 'skip';
|
|
3
|
+
export declare type TSinchHorizontalStepperItemElement = HTMLElement & {
|
|
4
|
+
label: string;
|
|
5
|
+
description: string | null;
|
|
6
|
+
status: TSinchHorizontalStepperStatusType | null;
|
|
7
|
+
setAttribute(name: 'label', value: string): void;
|
|
8
|
+
setAttribute(name: 'description', value: string): void;
|
|
9
|
+
setAttribute(name: 'status', value: TSinchHorizontalStepperStatusType): void;
|
|
10
|
+
};
|
|
11
|
+
export declare type TSinchHorizontalStepperItemReact = TSinchElementReact<TSinchHorizontalStepperItemElement> & {
|
|
12
|
+
label: string;
|
|
13
|
+
description?: string;
|
|
14
|
+
status?: TSinchHorizontalStepperStatusType;
|
|
15
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const statusValues = ['skip', 'error'];
|
package/icon-button/index.js
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import _classPrivateFieldGet from '@babel/runtime/helpers/classPrivateFieldGet';
|
|
2
2
|
import _classPrivateFieldSet from '@babel/runtime/helpers/classPrivateFieldSet';
|
|
3
3
|
|
|
4
|
-
var _$button;
|
|
4
|
+
var _$button, _onButtonClick, _onButtonFocus, _onButtonBlur, _onFocusReactHandler, _onBlurReactHandler, _onClickReactHandler;
|
|
5
5
|
|
|
6
6
|
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
|
7
7
|
|
|
8
8
|
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
|
9
9
|
|
|
10
|
-
import { defineCustomElement, getBooleanAttribute, isAttrTrue, NectaryElement, updateBooleanAttribute } from '../utils';
|
|
10
|
+
import { defineCustomElement, getBooleanAttribute, getReactEventHandler, isAttrTrue, NectaryElement, updateBooleanAttribute } from '../utils';
|
|
11
11
|
const templateHTML = '<style>:host{display:inline-block;vertical-align:middle;outline:0}button{all:initial;position:relative;display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:48px;height:48px;border-radius:var(--sinch-shape-radius-s);border:1px solid transparent;background-color:transparent;cursor:pointer;--sinch-size-icon:24px;--sinch-color-icon:var(--sinch-icon-button-color, var(--sinch-color-stormy-500))}button:focus-visible::before{position:absolute;content:"";left:50%;top:50%;transform:translate(-50%,-50%);width:100%;height:100%;padding:2px;border:1px solid var(--sinch-color-aqua-400);border-radius:calc(var(--sinch-shape-radius-s) + 2px)}@supports not selector(:focus-visible){button:focus::before{position:absolute;content:"";left:50%;top:50%;transform:translate(-50%,-50%);width:100%;height:100%;padding:2px;border:1px solid var(--sinch-color-aqua-400);border-radius:calc(var(--sinch-shape-radius-s) + 2px)}}button:hover{background-color:var(--sinch-color-snow-500)}button:active{background-color:var(--sinch-color-snow-600)}button:disabled{background-color:transparent;cursor:initial;--sinch-color-spinner-bg:var(--sinch-color-snow-200);--sinch-color-spinner-fg:var(--sinch-color-stormy-200);--sinch-color-icon:var(--sinch-color-stormy-100)}:host([small]:not([small=false]))>button{width:32px;height:32px}button>*{pointer-events:none}</style><button><slot name="icon"></slot></button>';
|
|
12
12
|
const template = document.createElement('template');
|
|
13
13
|
template.innerHTML = templateHTML;
|
|
14
|
-
defineCustomElement('sinch-icon-button', (_$button = new WeakMap(), class extends NectaryElement {
|
|
14
|
+
defineCustomElement('sinch-icon-button', (_$button = new WeakMap(), _onButtonClick = new WeakMap(), _onButtonFocus = new WeakMap(), _onButtonBlur = new WeakMap(), _onFocusReactHandler = new WeakMap(), _onBlurReactHandler = new WeakMap(), _onClickReactHandler = new WeakMap(), class extends NectaryElement {
|
|
15
15
|
constructor() {
|
|
16
16
|
super();
|
|
17
17
|
|
|
@@ -20,6 +20,48 @@ defineCustomElement('sinch-icon-button', (_$button = new WeakMap(), class extend
|
|
|
20
20
|
value: void 0
|
|
21
21
|
});
|
|
22
22
|
|
|
23
|
+
_classPrivateFieldInitSpec(this, _onButtonClick, {
|
|
24
|
+
writable: true,
|
|
25
|
+
value: () => {
|
|
26
|
+
this.dispatchEvent(new CustomEvent('-click'));
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
_classPrivateFieldInitSpec(this, _onButtonFocus, {
|
|
31
|
+
writable: true,
|
|
32
|
+
value: () => {
|
|
33
|
+
this.dispatchEvent(new CustomEvent('-focus'));
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
_classPrivateFieldInitSpec(this, _onButtonBlur, {
|
|
38
|
+
writable: true,
|
|
39
|
+
value: () => {
|
|
40
|
+
this.dispatchEvent(new CustomEvent('-blur'));
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
_classPrivateFieldInitSpec(this, _onFocusReactHandler, {
|
|
45
|
+
writable: true,
|
|
46
|
+
value: () => {
|
|
47
|
+
getReactEventHandler(this, 'on-focus')?.();
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
_classPrivateFieldInitSpec(this, _onBlurReactHandler, {
|
|
52
|
+
writable: true,
|
|
53
|
+
value: () => {
|
|
54
|
+
getReactEventHandler(this, 'on-blur')?.();
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
_classPrivateFieldInitSpec(this, _onClickReactHandler, {
|
|
59
|
+
writable: true,
|
|
60
|
+
value: e => {
|
|
61
|
+
getReactEventHandler(this, 'on-click')?.(e);
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
|
|
23
65
|
const shadowRoot = this.attachShadow();
|
|
24
66
|
shadowRoot.appendChild(template.content.cloneNode(true));
|
|
25
67
|
|
|
@@ -28,6 +70,28 @@ defineCustomElement('sinch-icon-button', (_$button = new WeakMap(), class extend
|
|
|
28
70
|
|
|
29
71
|
connectedCallback() {
|
|
30
72
|
this.setAttribute('role', 'button');
|
|
73
|
+
|
|
74
|
+
_classPrivateFieldGet(this, _$button).addEventListener('click', _classPrivateFieldGet(this, _onButtonClick));
|
|
75
|
+
|
|
76
|
+
_classPrivateFieldGet(this, _$button).addEventListener('focus', _classPrivateFieldGet(this, _onButtonFocus));
|
|
77
|
+
|
|
78
|
+
_classPrivateFieldGet(this, _$button).addEventListener('blur', _classPrivateFieldGet(this, _onButtonBlur));
|
|
79
|
+
|
|
80
|
+
this.addEventListener('-click', _classPrivateFieldGet(this, _onClickReactHandler));
|
|
81
|
+
this.addEventListener('-focus', _classPrivateFieldGet(this, _onFocusReactHandler));
|
|
82
|
+
this.addEventListener('-blur', _classPrivateFieldGet(this, _onBlurReactHandler));
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
disconnectedCallback() {
|
|
86
|
+
_classPrivateFieldGet(this, _$button).removeEventListener('click', _classPrivateFieldGet(this, _onButtonClick));
|
|
87
|
+
|
|
88
|
+
_classPrivateFieldGet(this, _$button).removeEventListener('focus', _classPrivateFieldGet(this, _onButtonFocus));
|
|
89
|
+
|
|
90
|
+
_classPrivateFieldGet(this, _$button).removeEventListener('blur', _classPrivateFieldGet(this, _onButtonBlur));
|
|
91
|
+
|
|
92
|
+
this.removeEventListener('-click', _classPrivateFieldGet(this, _onClickReactHandler));
|
|
93
|
+
this.removeEventListener('-focus', _classPrivateFieldGet(this, _onFocusReactHandler));
|
|
94
|
+
this.removeEventListener('-blur', _classPrivateFieldGet(this, _onBlurReactHandler));
|
|
31
95
|
}
|
|
32
96
|
|
|
33
97
|
static get observedAttributes() {
|
package/icon-button/types.d.ts
CHANGED
|
@@ -2,6 +2,9 @@ import type { TSinchElementReact } from '../types';
|
|
|
2
2
|
export declare type TSinchIconButtonElement = HTMLElement & {
|
|
3
3
|
disabled: boolean;
|
|
4
4
|
small: boolean;
|
|
5
|
+
addEventListener(type: '-click', listener: (e: CustomEvent<void>) => void): void;
|
|
6
|
+
addEventListener(type: '-focus', listener: (e: CustomEvent<void>) => void): void;
|
|
7
|
+
addEventListener(type: '-blur', listener: (e: CustomEvent<void>) => void): void;
|
|
5
8
|
setAttribute(name: 'disabled', value: ''): void;
|
|
6
9
|
setAttribute(name: 'small', value: ''): void;
|
|
7
10
|
};
|
|
@@ -9,4 +12,7 @@ export declare type TSinchIconButtonReact = TSinchElementReact<TSinchIconButtonE
|
|
|
9
12
|
'aria-label': string;
|
|
10
13
|
disabled?: boolean;
|
|
11
14
|
small?: boolean;
|
|
15
|
+
'on-click'?: (e: CustomEvent<void>) => void;
|
|
16
|
+
'on-focus'?: (e: CustomEvent<void>) => void;
|
|
17
|
+
'on-blur'?: (e: CustomEvent<void>) => void;
|
|
12
18
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { NectaryElement, updateAttribute } from '../utils';
|
|
2
|
-
const iconStylesHtml = '<style>:host{display:inline-block;vertical-align:middle}svg{display:block;fill:var(--sinch-color-icon,--sinch-color-text-default);height:var(--sinch-size-icon,24px)}</style>';
|
|
2
|
+
const iconStylesHtml = '<style>:host{display:inline-block;vertical-align:middle}svg{display:block;pointer-events:none;fill:var(--sinch-color-icon,--sinch-color-text-default);height:var(--sinch-size-icon,24px)}</style>';
|
|
3
3
|
export const createIconClass = templateHTML => {
|
|
4
4
|
const template = document.createElement('template');
|
|
5
5
|
template.innerHTML = iconStylesHtml + templateHTML;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { TSinchIconElement, TSinchIconReact } from '../types';
|
|
2
|
+
declare global {
|
|
3
|
+
namespace JSX {
|
|
4
|
+
interface IntrinsicElements {
|
|
5
|
+
'sinch-icon-exclamation': TSinchIconReact;
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
interface HTMLElementTagNameMap {
|
|
9
|
+
'sinch-icon-exclamation': TSinchIconElement;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { defineCustomElement } from '../../utils';
|
|
2
|
+
import { createIconClass } from '../create-icon-class';
|
|
3
|
+
const templateHTML = '<svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M11 14V5h2v9Zm0 5v-2h2v2Z"/></svg>';
|
|
4
|
+
defineCustomElement('sinch-icon-exclamation', createIconClass(templateHTML));
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { getBooleanAttribute, getIntegerAttribute, NectaryElement, updateAttribute, updateBooleanAttribute
|
|
2
|
-
const iconStylesHtml = '<style>:host{display:inline-block;vertical-align:middle}svg{display:block;fill:var(--sinch-color-stormy-500)}.accent{fill:var(--sinch-color-text-link)}:host([inverted]:not([inverted=false])) svg{fill:var(--sinch-color-snow-100)}:host([inverted]:not([inverted=false])) .accent{fill:var(--sinch-color-honey-500)}</style>';
|
|
1
|
+
import { attrValueToPixels, getBooleanAttribute, getIntegerAttribute, NectaryElement, updateAttribute, updateBooleanAttribute } from '../utils';
|
|
2
|
+
const iconStylesHtml = '<style>:host{display:inline-block;vertical-align:middle}svg{display:block;pointer-events:none;fill:var(--sinch-color-stormy-500);height:var(--sinch-size-icon,48px)}.accent{fill:var(--sinch-color-text-link)}:host([inverted]:not([inverted=false])) svg{fill:var(--sinch-color-snow-100)}:host([inverted]:not([inverted=false])) .accent{fill:var(--sinch-color-honey-500)}</style>';
|
|
3
3
|
const DEFAULT_SIZE = 48;
|
|
4
4
|
const MIN_SIZE = 4;
|
|
5
5
|
const MAX_SIZE = 256;
|
|
@@ -36,17 +36,13 @@ export const createIconClass = templateHTML => {
|
|
|
36
36
|
|
|
37
37
|
connectedCallback() {
|
|
38
38
|
updateAttribute(this.$svg, 'preserveAspectRatio', 'xMinYMin meet');
|
|
39
|
-
|
|
40
|
-
if (!this.hasAttribute('size')) {
|
|
41
|
-
updateAttribute(this, 'size', DEFAULT_SIZE);
|
|
42
|
-
}
|
|
43
39
|
}
|
|
44
40
|
|
|
45
41
|
attributeChangedCallback(name, _, newVal) {
|
|
46
42
|
switch (name) {
|
|
47
43
|
case 'size':
|
|
48
44
|
{
|
|
49
|
-
|
|
45
|
+
this.$svg.style.height = attrValueToPixels(newVal, {
|
|
50
46
|
min: MIN_SIZE,
|
|
51
47
|
max: MAX_SIZE
|
|
52
48
|
});
|
package/icons-branded/types.d.ts
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import type { TSinchElementReact } from '../types';
|
|
2
2
|
export declare type TSinchIconBrandedElement = HTMLElement & {
|
|
3
|
+
/** @deprecated */
|
|
3
4
|
size: number;
|
|
4
5
|
inverted: boolean;
|
|
6
|
+
/** @deprecated */
|
|
5
7
|
setAttribute(name: 'size', value: string): void;
|
|
6
8
|
setAttribute(name: 'inverted', value: ''): void;
|
|
7
9
|
};
|
|
8
10
|
export declare type TSinchIconBrandedReact = TSinchElementReact<TSinchIconBrandedElement> & {
|
|
11
|
+
/** @deprecated */
|
|
9
12
|
size?: number;
|
|
10
13
|
inverted?: boolean;
|
|
11
14
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { getIntegerAttribute, NectaryElement, updateAttribute
|
|
2
|
-
const iconStylesHtml = '<style>:host{display:inline-block;vertical-align:middle}svg{display:block;pointer-events:none}</style>';
|
|
1
|
+
import { attrValueToPixels, getIntegerAttribute, NectaryElement, updateAttribute } from '../utils';
|
|
2
|
+
const iconStylesHtml = '<style>:host{display:inline-block;vertical-align:middle}svg{display:block;pointer-events:none;height:var(--sinch-size-icon,48px)}</style>';
|
|
3
3
|
const DEFAULT_SIZE = 48;
|
|
4
4
|
const MIN_SIZE = 4;
|
|
5
5
|
const MAX_SIZE = 256;
|
|
@@ -28,17 +28,13 @@ export const createIconClass = templateHTML => {
|
|
|
28
28
|
|
|
29
29
|
connectedCallback() {
|
|
30
30
|
updateAttribute(this.$svg, 'preserveAspectRatio', 'xMinYMin meet');
|
|
31
|
-
|
|
32
|
-
if (!this.hasAttribute('size')) {
|
|
33
|
-
updateAttribute(this, 'size', DEFAULT_SIZE);
|
|
34
|
-
}
|
|
35
31
|
}
|
|
36
32
|
|
|
37
33
|
attributeChangedCallback(name, _, newVal) {
|
|
38
34
|
switch (name) {
|
|
39
35
|
case 'size':
|
|
40
36
|
{
|
|
41
|
-
|
|
37
|
+
this.$svg.style.height = attrValueToPixels(newVal, {
|
|
42
38
|
min: MIN_SIZE,
|
|
43
39
|
max: MAX_SIZE
|
|
44
40
|
});
|
package/icons-channel/types.d.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import type { TSinchElementReact } from '../types';
|
|
2
2
|
export declare type TSinchIconChannelElement = HTMLElement & {
|
|
3
|
+
/** @deprecated */
|
|
3
4
|
size: number;
|
|
5
|
+
/** @deprecated */
|
|
4
6
|
setAttribute(name: 'size', value: string): void;
|
|
5
7
|
};
|
|
6
8
|
export declare type TSinchIconChannelReact = TSinchElementReact<TSinchIconChannelElement> & {
|
|
9
|
+
/** @deprecated */
|
|
7
10
|
size?: number;
|
|
8
11
|
};
|