@nectary/components 0.10.0 → 0.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,23 @@
1
+ import type { TSinchElementReact } from '../types';
2
+ export declare type TSinchCardElement = HTMLElement & {
3
+ text: string;
4
+ label: string;
5
+ header: string;
6
+ disabled: boolean;
7
+ };
8
+ export declare type TSinchCardReact = TSinchElementReact<TSinchCardElement> & {
9
+ text: string;
10
+ label?: string;
11
+ header: string;
12
+ disabled?: boolean;
13
+ };
14
+ declare global {
15
+ namespace JSX {
16
+ interface IntrinsicElements {
17
+ 'sinch-card': TSinchCardReact;
18
+ }
19
+ }
20
+ interface HTMLElementTagNameMap {
21
+ 'sinch-card': TSinchCardElement;
22
+ }
23
+ }
package/card/index.js ADDED
@@ -0,0 +1,164 @@
1
+ import _classPrivateFieldGet from '@babel/runtime/helpers/classPrivateFieldGet';
2
+ import _classPrivateFieldSet from '@babel/runtime/helpers/classPrivateFieldSet';
3
+
4
+ var _$text, _$label, _$title, _$illustrationSlot, _$actionSlot, _$illustrationSlotWrapper, _onIllustrationSlotChange, _updateDisabledAttributeInChildren;
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 { isSinchCardButtonElement } from '../card-button';
11
+ import { isSinchCardLinkElement } from '../card-link';
12
+ import { defineCustomElement, getBooleanAttribute, getAttribute, updateBooleanAttribute, updateAttribute, setClass } from '../utils';
13
+ const templateHTML = '<style>:host{display:block;outline:0}#wrapper{position:relative}#card-body{padding:24px;box-sizing:border-box;display:flex;flex-direction:column;gap:16px;background-color:var(--sinch-color-snow-100);border-radius:8px;border:1px solid var(--sinch-color-snow-700)}#illustration-wrapper{display:none;flex-direction:column;align-items:center;border-top-left-radius:8px;border-top-right-radius:8px;overflow:hidden;background-color:var(--sinch-color-stormy-500);max-height:222px}#illustration-wrapper.active{display:flex}#illustration-wrapper.active+#card-body{border-top-left-radius:0;border-top-right-radius:0;border-top:none}#label{margin:0;font:var(--sinch-font-title-5);color:var(--sinch-color-stormy-300);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#label:empty{display:none}#header{display:flex;flex-direction:row;align-items:center;gap:8px}#title{font:var(--sinch-font-title-3);color:var(--sinch-color-stormy-500);flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}#description{margin:0;font:var(--sinch-font-body);color:var(--sinch-color-stormy-500);flex:1;min-height:0;max-height:120px;overflow-y:auto}#description:empty{display:none}:host([disabled]:not([disabled=false])) :is(#illustration-wrapper,#description,#header,#label){opacity:60%}::slotted(sinch-card-button),::slotted(sinch-card-link){margin-top:20px;align-self:flex-start;max-width:100%}</style><div id="wrapper"><div id="illustration-wrapper"><slot name="illustration"></slot></div><div id="card-body"><p id="label"></p><div id="header"><slot name="icon"></slot><span id="title"></span></div><p id="description"></p><slot name="action"></slot></div></div>';
14
+ const template = document.createElement('template');
15
+ template.innerHTML = templateHTML;
16
+ defineCustomElement('sinch-card', (_$text = new WeakMap(), _$label = new WeakMap(), _$title = new WeakMap(), _$illustrationSlot = new WeakMap(), _$actionSlot = new WeakMap(), _$illustrationSlotWrapper = new WeakMap(), _onIllustrationSlotChange = new WeakMap(), _updateDisabledAttributeInChildren = new WeakMap(), class extends HTMLElement {
17
+ constructor() {
18
+ super();
19
+
20
+ _classPrivateFieldInitSpec(this, _$text, {
21
+ writable: true,
22
+ value: void 0
23
+ });
24
+
25
+ _classPrivateFieldInitSpec(this, _$label, {
26
+ writable: true,
27
+ value: void 0
28
+ });
29
+
30
+ _classPrivateFieldInitSpec(this, _$title, {
31
+ writable: true,
32
+ value: void 0
33
+ });
34
+
35
+ _classPrivateFieldInitSpec(this, _$illustrationSlot, {
36
+ writable: true,
37
+ value: void 0
38
+ });
39
+
40
+ _classPrivateFieldInitSpec(this, _$actionSlot, {
41
+ writable: true,
42
+ value: void 0
43
+ });
44
+
45
+ _classPrivateFieldInitSpec(this, _$illustrationSlotWrapper, {
46
+ writable: true,
47
+ value: void 0
48
+ });
49
+
50
+ _classPrivateFieldInitSpec(this, _onIllustrationSlotChange, {
51
+ writable: true,
52
+ value: () => {
53
+ setClass(_classPrivateFieldGet(this, _$illustrationSlotWrapper), 'active', _classPrivateFieldGet(this, _$illustrationSlot).assignedElements().length > 0);
54
+ }
55
+ });
56
+
57
+ _classPrivateFieldInitSpec(this, _updateDisabledAttributeInChildren, {
58
+ writable: true,
59
+ value: () => {
60
+ _classPrivateFieldGet(this, _$actionSlot).assignedElements().forEach(el => {
61
+ if (isSinchCardButtonElement(el) || isSinchCardLinkElement(el)) {
62
+ updateAttribute(el, 'disabled', this.getAttribute('disabled'));
63
+ }
64
+ });
65
+ }
66
+ });
67
+
68
+ const shadowRoot = this.attachShadow({
69
+ mode: 'closed',
70
+ delegatesFocus: true
71
+ });
72
+ shadowRoot.appendChild(template.content.cloneNode(true));
73
+
74
+ _classPrivateFieldSet(this, _$text, shadowRoot.querySelector('#description'));
75
+
76
+ _classPrivateFieldSet(this, _$label, shadowRoot.querySelector('#label'));
77
+
78
+ _classPrivateFieldSet(this, _$title, shadowRoot.querySelector('#title'));
79
+
80
+ _classPrivateFieldSet(this, _$illustrationSlot, shadowRoot.querySelector('slot[name="illustration"]'));
81
+
82
+ _classPrivateFieldSet(this, _$actionSlot, shadowRoot.querySelector('slot[name="action"]'));
83
+
84
+ _classPrivateFieldSet(this, _$illustrationSlotWrapper, shadowRoot.querySelector('#illustration-wrapper'));
85
+ }
86
+
87
+ connectedCallback() {
88
+ _classPrivateFieldGet(this, _$illustrationSlot).addEventListener('slotchange', _classPrivateFieldGet(this, _onIllustrationSlotChange));
89
+
90
+ _classPrivateFieldGet(this, _$actionSlot).addEventListener('slotchange', _classPrivateFieldGet(this, _updateDisabledAttributeInChildren));
91
+ }
92
+
93
+ disconnectedCallback() {
94
+ _classPrivateFieldGet(this, _$illustrationSlot).removeEventListener('slotchange', _classPrivateFieldGet(this, _onIllustrationSlotChange));
95
+
96
+ _classPrivateFieldGet(this, _$actionSlot).removeEventListener('slotchange', _classPrivateFieldGet(this, _updateDisabledAttributeInChildren));
97
+ }
98
+
99
+ static get observedAttributes() {
100
+ return ['text', 'label', 'header', 'disabled'];
101
+ }
102
+
103
+ attributeChangedCallback(name, _, newVal) {
104
+ switch (name) {
105
+ case 'text':
106
+ {
107
+ _classPrivateFieldGet(this, _$text).textContent = newVal;
108
+ break;
109
+ }
110
+
111
+ case 'label':
112
+ {
113
+ _classPrivateFieldGet(this, _$label).textContent = newVal;
114
+ break;
115
+ }
116
+
117
+ case 'header':
118
+ {
119
+ _classPrivateFieldGet(this, _$title).textContent = newVal;
120
+ break;
121
+ }
122
+
123
+ case 'disabled':
124
+ {
125
+ _classPrivateFieldGet(this, _updateDisabledAttributeInChildren).call(this);
126
+
127
+ break;
128
+ }
129
+ }
130
+ }
131
+
132
+ set text(value) {
133
+ updateAttribute(this, 'text', value);
134
+ }
135
+
136
+ get text() {
137
+ return getAttribute(this, 'text', '');
138
+ }
139
+
140
+ set header(value) {
141
+ updateAttribute(this, 'header', value);
142
+ }
143
+
144
+ get header() {
145
+ return getAttribute(this, 'header', '');
146
+ }
147
+
148
+ set label(value) {
149
+ updateAttribute(this, 'label', value);
150
+ }
151
+
152
+ get label() {
153
+ return getAttribute(this, 'label', '');
154
+ }
155
+
156
+ set disabled(isDisabled) {
157
+ updateBooleanAttribute(this, 'disabled', isDisabled);
158
+ }
159
+
160
+ get disabled() {
161
+ return getBooleanAttribute(this, 'disabled');
162
+ }
163
+
164
+ }));
@@ -0,0 +1,27 @@
1
+ import type { TSinchElementReact } from '../types';
2
+ import type { FocusEvent, MouseEvent } from 'react';
3
+ export declare const isSinchCardButtonElement: (el: Element) => el is TSinchCardButtonElement;
4
+ export declare type TSinchCardButtonElement = HTMLElement & {
5
+ text: string;
6
+ disabled: boolean;
7
+ focus(): void;
8
+ blur(): void;
9
+ };
10
+ export declare type TSinchCardButtonReact = TSinchElementReact<TSinchCardButtonElement> & {
11
+ text: string;
12
+ 'aria-label': string;
13
+ disabled?: boolean;
14
+ onClick: (e: MouseEvent<TSinchCardButtonElement>) => void;
15
+ onFocus?: (e: FocusEvent<TSinchCardButtonElement>) => void;
16
+ onBlur?: (e: FocusEvent<TSinchCardButtonElement>) => void;
17
+ };
18
+ declare global {
19
+ namespace JSX {
20
+ interface IntrinsicElements {
21
+ 'sinch-card-button': TSinchCardButtonReact;
22
+ }
23
+ }
24
+ interface HTMLElementTagNameMap {
25
+ 'sinch-card-button': TSinchCardButtonElement;
26
+ }
27
+ }
@@ -0,0 +1,83 @@
1
+ import _classPrivateFieldGet from '@babel/runtime/helpers/classPrivateFieldGet';
2
+ import _classPrivateFieldSet from '@babel/runtime/helpers/classPrivateFieldSet';
3
+
4
+ var _$button;
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 { defineCustomElement, getBooleanAttribute, getAttribute, updateAttribute } from '../utils';
11
+ const templateHTML = '<style>:host{display:inline-block;outline:0}sinch-button{display:block}</style><sinch-button type="primary" small></sinch-button>';
12
+ export const isSinchCardButtonElement = el => {
13
+ return el.tagName === 'SINCH-CARD-BUTTON';
14
+ };
15
+ const template = document.createElement('template');
16
+ template.innerHTML = templateHTML;
17
+ defineCustomElement('sinch-card-button', (_$button = new WeakMap(), class extends HTMLElement {
18
+ constructor() {
19
+ super();
20
+
21
+ _classPrivateFieldInitSpec(this, _$button, {
22
+ writable: true,
23
+ value: void 0
24
+ });
25
+
26
+ const shadowRoot = this.attachShadow({
27
+ mode: 'closed',
28
+ delegatesFocus: true
29
+ });
30
+ shadowRoot.appendChild(template.content.cloneNode(true));
31
+
32
+ _classPrivateFieldSet(this, _$button, shadowRoot.querySelector('sinch-button'));
33
+ }
34
+
35
+ connectedCallback() {
36
+ this.setAttribute('role', 'button');
37
+ }
38
+
39
+ static get observedAttributes() {
40
+ return ['text', 'disabled'];
41
+ }
42
+
43
+ attributeChangedCallback(name, _, newVal) {
44
+ switch (name) {
45
+ case 'text':
46
+ {
47
+ updateAttribute(_classPrivateFieldGet(this, _$button), 'text', newVal);
48
+ break;
49
+ }
50
+
51
+ case 'disabled':
52
+ {
53
+ updateAttribute(_classPrivateFieldGet(this, _$button), 'disabled', newVal);
54
+ break;
55
+ }
56
+ }
57
+ }
58
+
59
+ set text(value) {
60
+ updateAttribute(this, 'text', value);
61
+ }
62
+
63
+ get text() {
64
+ return getAttribute(this, 'text', '');
65
+ }
66
+
67
+ set disabled(isDisabled) {
68
+ updateAttribute(this, 'disabled', isDisabled);
69
+ }
70
+
71
+ get disabled() {
72
+ return getBooleanAttribute(this, 'disabled');
73
+ }
74
+
75
+ focus() {
76
+ _classPrivateFieldGet(this, _$button).focus();
77
+ }
78
+
79
+ blur() {
80
+ _classPrivateFieldGet(this, _$button).blur();
81
+ }
82
+
83
+ }));
@@ -0,0 +1,29 @@
1
+ import '../icon/cancel';
2
+ import type { TSinchElementReact } from '../types';
3
+ import type { FocusEvent, MouseEvent } from 'react';
4
+ export declare const isSinchCardLinkElement: (el: Element) => el is TSinchCardLinkElement;
5
+ export declare type TSinchCardLinkElement = HTMLElement & {
6
+ text: string;
7
+ href: string;
8
+ disabled: boolean;
9
+ focus(): void;
10
+ blur(): void;
11
+ };
12
+ export declare type TSinchCardLinkReact = TSinchElementReact<TSinchCardLinkElement> & {
13
+ text: string;
14
+ href: string;
15
+ disabled?: boolean;
16
+ onClick?: (e: MouseEvent<TSinchCardLinkElement>) => void;
17
+ onFocus?: (e: FocusEvent<TSinchCardLinkElement>) => void;
18
+ onBlur?: (e: FocusEvent<TSinchCardLinkElement>) => void;
19
+ };
20
+ declare global {
21
+ namespace JSX {
22
+ interface IntrinsicElements {
23
+ 'sinch-card-link': TSinchCardLinkReact;
24
+ }
25
+ }
26
+ interface HTMLElementTagNameMap {
27
+ 'sinch-card-link': TSinchCardLinkElement;
28
+ }
29
+ }
@@ -0,0 +1,121 @@
1
+ import _classPrivateFieldGet from '@babel/runtime/helpers/classPrivateFieldGet';
2
+ import _classPrivateFieldSet from '@babel/runtime/helpers/classPrivateFieldSet';
3
+
4
+ var _$anchor, _$text, _onClick;
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 '../icon/cancel';
11
+ import { defineCustomElement, getBooleanAttribute, getAttribute, updateBooleanAttribute, updateAttribute } from '../utils';
12
+ const templateHTML = '<style>:host{display:inline;outline:0}a{display:flex;flex-direction:row;gap:8px;font:var(--sinch-font-emphasized-body);color:var(--sinch-color-tropical-500);text-decoration:none;outline:0;--sinch-color-icon:var(--sinch-color-tropical-500)}a:hover{color:var(--sinch-color-tropical-600);fill:var(--sinch-color-tropical-600)}:host([disabled]:not([disabled=false])) a{color:var(--sinch-color-tropical-300);pointer-events:none;cursor:initial;--sinch-color-icon:var(--sinch-color-tropical-300)}span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex-shrink:1}</style><a><span></span><sinch-icon-arrow-forward size="24"></sinch-icon-arrow-forward></a>';
13
+ export const isSinchCardLinkElement = el => {
14
+ return el.tagName === 'SINCH-CARD-LINK';
15
+ };
16
+ const template = document.createElement('template');
17
+ template.innerHTML = templateHTML;
18
+ defineCustomElement('sinch-card-link', (_$anchor = new WeakMap(), _$text = new WeakMap(), _onClick = new WeakMap(), class extends HTMLElement {
19
+ constructor() {
20
+ super();
21
+
22
+ _classPrivateFieldInitSpec(this, _$anchor, {
23
+ writable: true,
24
+ value: void 0
25
+ });
26
+
27
+ _classPrivateFieldInitSpec(this, _$text, {
28
+ writable: true,
29
+ value: void 0
30
+ });
31
+
32
+ _classPrivateFieldInitSpec(this, _onClick, {
33
+ writable: true,
34
+ value: e => {
35
+ if (this.disabled) {
36
+ e.preventDefault();
37
+ e.stopPropagation();
38
+ }
39
+ }
40
+ });
41
+
42
+ const shadowRoot = this.attachShadow({
43
+ mode: 'closed',
44
+ delegatesFocus: true
45
+ });
46
+ shadowRoot.appendChild(template.content.cloneNode(true));
47
+
48
+ _classPrivateFieldSet(this, _$anchor, shadowRoot.querySelector('a'));
49
+
50
+ _classPrivateFieldSet(this, _$text, shadowRoot.querySelector('span'));
51
+ }
52
+
53
+ connectedCallback() {
54
+ _classPrivateFieldGet(this, _$anchor).addEventListener('click', _classPrivateFieldGet(this, _onClick));
55
+ }
56
+
57
+ disconnectedCallback() {
58
+ _classPrivateFieldGet(this, _$anchor).removeEventListener('click', _classPrivateFieldGet(this, _onClick));
59
+ }
60
+
61
+ get text() {
62
+ return getAttribute(this, 'text', '');
63
+ }
64
+
65
+ set text(value) {
66
+ updateAttribute(this, 'text', value);
67
+ }
68
+
69
+ get href() {
70
+ return getAttribute(this, 'href', '');
71
+ }
72
+
73
+ set href(value) {
74
+ updateAttribute(this, 'href', value);
75
+ }
76
+
77
+ set disabled(isDisabled) {
78
+ updateBooleanAttribute(this, 'disabled', isDisabled);
79
+ }
80
+
81
+ get disabled() {
82
+ return getBooleanAttribute(this, 'disabled');
83
+ }
84
+
85
+ set external(isExternal) {
86
+ updateBooleanAttribute(this, 'external', isExternal);
87
+ }
88
+
89
+ get external() {
90
+ return getBooleanAttribute(this, 'external');
91
+ }
92
+
93
+ static get observedAttributes() {
94
+ return ['text', 'href'];
95
+ }
96
+
97
+ attributeChangedCallback(name, _, newVal) {
98
+ switch (name) {
99
+ case 'text':
100
+ {
101
+ _classPrivateFieldGet(this, _$text).textContent = newVal;
102
+ break;
103
+ }
104
+
105
+ case 'href':
106
+ {
107
+ updateAttribute(_classPrivateFieldGet(this, _$anchor), 'href', newVal);
108
+ break;
109
+ }
110
+ }
111
+ }
112
+
113
+ focus() {
114
+ _classPrivateFieldGet(this, _$anchor).focus();
115
+ }
116
+
117
+ blur() {
118
+ _classPrivateFieldGet(this, _$anchor).blur();
119
+ }
120
+
121
+ }));
@@ -0,0 +1,23 @@
1
+ import type { TRect, TSinchElementReact } from '../types';
2
+ import type { SyntheticEvent } from 'react';
3
+ declare type TSinchDialogElement = HTMLElement & {
4
+ title: string;
5
+ readonly dialogRect: TRect;
6
+ readonly closeButtonRect: TRect;
7
+ };
8
+ declare type TSinchDialogReact = TSinchElementReact<TSinchDialogElement> & {
9
+ title: string;
10
+ 'aria-label': string;
11
+ onClose: (event: SyntheticEvent<TSinchDialogElement, CustomEvent<void>>) => void;
12
+ };
13
+ declare global {
14
+ namespace JSX {
15
+ interface IntrinsicElements {
16
+ 'sinch-dialog': TSinchDialogReact;
17
+ }
18
+ }
19
+ interface HTMLElementTagNameMap {
20
+ 'sinch-dialog': TSinchDialogElement;
21
+ }
22
+ }
23
+ export {};
@@ -0,0 +1,181 @@
1
+ import _classPrivateFieldGet from '@babel/runtime/helpers/classPrivateFieldGet';
2
+ import _classPrivateFieldSet from '@babel/runtime/helpers/classPrivateFieldSet';
3
+
4
+ var _$main, _$closeButton, _$backDrop, _$title, _$prevActiveElement, _focusIn, _onCloseByMouse, _onCloseByEsc, _onClose, _onCloseReactHandler;
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 { defineCustomElement, getAttribute, getRect, updateAttribute } from '../utils';
11
+ const templateHTML = '<style>:host{outline:0}#wrapper{position:fixed;top:0;left:0;height:100vh;width:100vw;color:var(--sinch-color-text-default);font:var(--sinch-font-body);z-index:2147483647}#backdrop{background-color:#000;position:absolute;left:0;top:0;opacity:55%;width:100%;height:100%}#main{display:flex;flex-direction:column;position:relative;left:50%;top:50%;transform:translateX(-50%) translateY(-50%);padding:24px;width:100%;max-width:512px;border-radius:4px;box-sizing:border-box;background-color:var(--sinch-color-snow-100)}#header{display:flex;flex-direction:row;justify-content:space-between;align-content:center;margin-bottom:16px}#title{font:var(--sinch-font-title-3);color:var(--sinch-color-text-default)}#content-wrapper{max-height:50vh;overflow-y:auto;margin-top:16px}#close{all:initial;cursor:pointer}#buttons{display:flex;flex-direction:row;justify-content:flex-end;gap:16px;margin-top:24px}</style><div id="wrapper"><div id="backdrop"></div><div id="main"><div id="header"><span id="title"></span> <button id="close"><sinch-icon-close size="24"></sinch-icon-close></button></div><div id="content-wrapper"><slot name="content"></slot></div><div id="buttons"><slot name="buttons"></slot></div></div></div>';
12
+ const template = document.createElement('template');
13
+ template.innerHTML = templateHTML;
14
+
15
+ const getReactEventHandler = ($element, handlerName) => {
16
+ for (const key in $element) {
17
+ if (key.startsWith('__reactProps$')) {
18
+ return $element[key][handlerName];
19
+ }
20
+ }
21
+
22
+ return null;
23
+ };
24
+
25
+ defineCustomElement('sinch-dialog', (_$main = new WeakMap(), _$closeButton = new WeakMap(), _$backDrop = new WeakMap(), _$title = new WeakMap(), _$prevActiveElement = new WeakMap(), _focusIn = new WeakMap(), _onCloseByMouse = new WeakMap(), _onCloseByEsc = new WeakMap(), _onClose = new WeakMap(), _onCloseReactHandler = new WeakMap(), class extends HTMLElement {
26
+ constructor() {
27
+ super();
28
+
29
+ _classPrivateFieldInitSpec(this, _$main, {
30
+ writable: true,
31
+ value: void 0
32
+ });
33
+
34
+ _classPrivateFieldInitSpec(this, _$closeButton, {
35
+ writable: true,
36
+ value: void 0
37
+ });
38
+
39
+ _classPrivateFieldInitSpec(this, _$backDrop, {
40
+ writable: true,
41
+ value: void 0
42
+ });
43
+
44
+ _classPrivateFieldInitSpec(this, _$title, {
45
+ writable: true,
46
+ value: void 0
47
+ });
48
+
49
+ _classPrivateFieldInitSpec(this, _$prevActiveElement, {
50
+ writable: true,
51
+ value: null
52
+ });
53
+
54
+ _classPrivateFieldInitSpec(this, _focusIn, {
55
+ writable: true,
56
+ value: e => {
57
+ if (e.target === this) {
58
+ return;
59
+ }
60
+
61
+ if (!this.contains(e.target)) {
62
+ _classPrivateFieldGet(this, _$closeButton).focus();
63
+ }
64
+ }
65
+ });
66
+
67
+ _classPrivateFieldInitSpec(this, _onCloseByMouse, {
68
+ writable: true,
69
+ value: e => {
70
+ e.stopPropagation();
71
+
72
+ _classPrivateFieldGet(this, _onClose).call(this);
73
+ }
74
+ });
75
+
76
+ _classPrivateFieldInitSpec(this, _onCloseByEsc, {
77
+ writable: true,
78
+ value: e => {
79
+ switch (e.key) {
80
+ case 'Escape':
81
+ {
82
+ e.preventDefault();
83
+ e.stopPropagation();
84
+
85
+ _classPrivateFieldGet(this, _onClose).call(this);
86
+
87
+ break;
88
+ }
89
+ }
90
+ }
91
+ });
92
+
93
+ _classPrivateFieldInitSpec(this, _onClose, {
94
+ writable: true,
95
+ value: () => {
96
+ _classPrivateFieldGet(this, _$prevActiveElement)?.focus();
97
+ this.dispatchEvent(new CustomEvent('close', {
98
+ bubbles: true
99
+ }));
100
+ }
101
+ });
102
+
103
+ _classPrivateFieldInitSpec(this, _onCloseReactHandler, {
104
+ writable: true,
105
+ value: () => {
106
+ getReactEventHandler(this, 'onClose')?.();
107
+ }
108
+ });
109
+
110
+ const shadowRoot = this.attachShadow({
111
+ mode: 'closed',
112
+ delegatesFocus: true
113
+ });
114
+ shadowRoot.appendChild(template.content.cloneNode(true));
115
+
116
+ _classPrivateFieldSet(this, _$main, shadowRoot.querySelector('#main'));
117
+
118
+ _classPrivateFieldSet(this, _$closeButton, shadowRoot.querySelector('#close'));
119
+
120
+ _classPrivateFieldSet(this, _$backDrop, shadowRoot.querySelector('#backdrop'));
121
+
122
+ _classPrivateFieldSet(this, _$title, shadowRoot.querySelector('#title'));
123
+ }
124
+
125
+ static get observedAttributes() {
126
+ return ['title'];
127
+ }
128
+
129
+ attributeChangedCallback(name, _, newVal) {
130
+ switch (name) {
131
+ case 'title':
132
+ {
133
+ _classPrivateFieldGet(this, _$title).textContent = newVal;
134
+ break;
135
+ }
136
+ }
137
+ }
138
+
139
+ set title(title) {
140
+ updateAttribute(this, 'title', title);
141
+ }
142
+
143
+ get title() {
144
+ return getAttribute(this, 'title', '');
145
+ }
146
+
147
+ connectedCallback() {
148
+ this.setAttribute('role', 'dialog');
149
+
150
+ _classPrivateFieldSet(this, _$prevActiveElement, document.activeElement);
151
+
152
+ _classPrivateFieldGet(this, _$closeButton).addEventListener('click', _classPrivateFieldGet(this, _onCloseByMouse));
153
+
154
+ _classPrivateFieldGet(this, _$backDrop).addEventListener('click', _classPrivateFieldGet(this, _onCloseByMouse));
155
+
156
+ this.addEventListener('keydown', _classPrivateFieldGet(this, _onCloseByEsc));
157
+ this.addEventListener('close', _classPrivateFieldGet(this, _onCloseReactHandler));
158
+ document.addEventListener('focusin', _classPrivateFieldGet(this, _focusIn));
159
+ }
160
+
161
+ disconnectedCallback() {
162
+ _classPrivateFieldSet(this, _$prevActiveElement, null);
163
+
164
+ _classPrivateFieldGet(this, _$closeButton).removeEventListener('click', _classPrivateFieldGet(this, _onCloseByMouse));
165
+
166
+ _classPrivateFieldGet(this, _$backDrop).removeEventListener('click', _classPrivateFieldGet(this, _onCloseByMouse));
167
+
168
+ this.removeEventListener('keydown', _classPrivateFieldGet(this, _onCloseByEsc));
169
+ this.removeEventListener('close', _classPrivateFieldGet(this, _onCloseReactHandler));
170
+ document.removeEventListener('focusin', _classPrivateFieldGet(this, _focusIn));
171
+ }
172
+
173
+ get dialogRect() {
174
+ return getRect(_classPrivateFieldGet(this, _$main));
175
+ }
176
+
177
+ get closeButtonRect() {
178
+ return getRect(_classPrivateFieldGet(this, _$closeButton));
179
+ }
180
+
181
+ }));
@@ -0,0 +1,11 @@
1
+ import type { TSinchIconElement, TSinchIconReact } from '../types';
2
+ declare global {
3
+ namespace JSX {
4
+ interface IntrinsicElements {
5
+ 'sinch-icon-arrow-back': TSinchIconReact;
6
+ }
7
+ }
8
+ interface HTMLElementTagNameMap {
9
+ 'sinch-icon-arrow-back': 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"><path d="M19 11H7.83l4.88-4.88c.39-.39.39-1.03 0-1.42a.996.996 0 0 0-1.41 0l-6.59 6.59a.996.996 0 0 0 0 1.41l6.59 6.59a.996.996 0 1 0 1.41-1.41L7.83 13H19c.55 0 1-.45 1-1s-.45-1-1-1Z"/></svg>';
4
+ defineCustomElement('sinch-icon-arrow-back', createIconClass(templateHTML));
@@ -0,0 +1,11 @@
1
+ import type { TSinchIconElement, TSinchIconReact } from '../types';
2
+ declare global {
3
+ namespace JSX {
4
+ interface IntrinsicElements {
5
+ 'sinch-icon-arrow-downward': TSinchIconReact;
6
+ }
7
+ }
8
+ interface HTMLElementTagNameMap {
9
+ 'sinch-icon-arrow-downward': 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"><path d="M11 5v11.17l-4.88-4.88c-.39-.39-1.03-.39-1.42 0a.996.996 0 0 0 0 1.41l6.59 6.59c.39.39 1.02.39 1.41 0l6.59-6.59a.996.996 0 1 0-1.41-1.41L13 16.17V5c0-.55-.45-1-1-1s-1 .45-1 1Z"/></svg>';
4
+ defineCustomElement('sinch-icon-arrow-downward', createIconClass(templateHTML));
@@ -0,0 +1,11 @@
1
+ import type { TSinchIconElement, TSinchIconReact } from '../types';
2
+ declare global {
3
+ namespace JSX {
4
+ interface IntrinsicElements {
5
+ 'sinch-icon-arrow-forward': TSinchIconReact;
6
+ }
7
+ }
8
+ interface HTMLElementTagNameMap {
9
+ 'sinch-icon-arrow-forward': 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"><path d="M5 13h11.17l-4.88 4.88c-.39.39-.39 1.03 0 1.42.39.39 1.02.39 1.41 0l6.59-6.59a.996.996 0 0 0 0-1.41l-6.58-6.6a.996.996 0 1 0-1.41 1.41L16.17 11H5c-.55 0-1 .45-1 1s.45 1 1 1Z"/></svg>';
4
+ defineCustomElement('sinch-icon-arrow-forward', createIconClass(templateHTML));
@@ -0,0 +1,11 @@
1
+ import type { TSinchIconElement, TSinchIconReact } from '../types';
2
+ declare global {
3
+ namespace JSX {
4
+ interface IntrinsicElements {
5
+ 'sinch-icon-arrow-upward': TSinchIconReact;
6
+ }
7
+ }
8
+ interface HTMLElementTagNameMap {
9
+ 'sinch-icon-arrow-upward': 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"><path d="M13 19V7.83l4.88 4.88c.39.39 1.03.39 1.42 0a.996.996 0 0 0 0-1.41l-6.59-6.59a.996.996 0 0 0-1.41 0l-6.6 6.58a.996.996 0 1 0 1.41 1.41L11 7.83V19c0 .55.45 1 1 1s1-.45 1-1Z"/></svg>';
4
+ defineCustomElement('sinch-icon-arrow-upward', createIconClass(templateHTML));
@@ -0,0 +1,308 @@
1
+ export declare const createIllustrationClass: (templateHTML: string) => {
2
+ new (): {
3
+ $svg: SVGElement;
4
+ size: number;
5
+ connectedCallback(): void;
6
+ attributeChangedCallback(name: string, _: string | null, newVal: string | null): void;
7
+ accessKey: string;
8
+ readonly accessKeyLabel: string;
9
+ autocapitalize: string;
10
+ dir: string;
11
+ draggable: boolean;
12
+ hidden: boolean;
13
+ innerText: string;
14
+ lang: string;
15
+ readonly offsetHeight: number;
16
+ readonly offsetLeft: number;
17
+ readonly offsetParent: Element | null;
18
+ readonly offsetTop: number;
19
+ readonly offsetWidth: number;
20
+ outerText: string;
21
+ spellcheck: boolean;
22
+ title: string;
23
+ translate: boolean;
24
+ attachInternals(): ElementInternals;
25
+ click(): void;
26
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions | undefined): void;
27
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void;
28
+ removeEventListener<K_1 extends keyof HTMLElementEventMap>(type: K_1, listener: (this: HTMLElement, ev: HTMLElementEventMap[K_1]) => any, options?: boolean | EventListenerOptions | undefined): void;
29
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions | undefined): void;
30
+ readonly attributes: NamedNodeMap;
31
+ readonly classList: DOMTokenList;
32
+ className: string;
33
+ readonly clientHeight: number;
34
+ readonly clientLeft: number;
35
+ readonly clientTop: number;
36
+ readonly clientWidth: number;
37
+ id: string;
38
+ readonly localName: string;
39
+ readonly namespaceURI: string | null;
40
+ onfullscreenchange: ((this: Element, ev: Event) => any) | null;
41
+ onfullscreenerror: ((this: Element, ev: Event) => any) | null;
42
+ outerHTML: string;
43
+ readonly ownerDocument: Document;
44
+ readonly part: DOMTokenList;
45
+ readonly prefix: string | null;
46
+ readonly scrollHeight: number;
47
+ scrollLeft: number;
48
+ scrollTop: number;
49
+ readonly scrollWidth: number;
50
+ readonly shadowRoot: ShadowRoot | null;
51
+ slot: string;
52
+ readonly tagName: string;
53
+ attachShadow(init: ShadowRootInit): ShadowRoot;
54
+ closest<K_2 extends keyof HTMLElementTagNameMap>(selector: K_2): HTMLElementTagNameMap[K_2] | null;
55
+ closest<K_3 extends keyof SVGElementTagNameMap>(selector: K_3): SVGElementTagNameMap[K_3] | null;
56
+ closest<E extends Element = Element>(selectors: string): E | null;
57
+ getAttribute(qualifiedName: string): string | null;
58
+ getAttributeNS(namespace: string | null, localName: string): string | null;
59
+ getAttributeNames(): string[];
60
+ getAttributeNode(qualifiedName: string): Attr | null;
61
+ getAttributeNodeNS(namespace: string | null, localName: string): Attr | null;
62
+ getBoundingClientRect(): DOMRect;
63
+ getClientRects(): DOMRectList;
64
+ getElementsByClassName(classNames: string): HTMLCollectionOf<Element>;
65
+ getElementsByTagName<K_4 extends keyof HTMLElementTagNameMap>(qualifiedName: K_4): HTMLCollectionOf<HTMLElementTagNameMap[K_4]>;
66
+ getElementsByTagName<K_5 extends keyof SVGElementTagNameMap>(qualifiedName: K_5): HTMLCollectionOf<SVGElementTagNameMap[K_5]>;
67
+ getElementsByTagName(qualifiedName: string): HTMLCollectionOf<Element>;
68
+ getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1999/xhtml", localName: string): HTMLCollectionOf<HTMLElement>;
69
+ getElementsByTagNameNS(namespaceURI: "http://www.w3.org/2000/svg", localName: string): HTMLCollectionOf<SVGElement>;
70
+ getElementsByTagNameNS(namespace: string | null, localName: string): HTMLCollectionOf<Element>;
71
+ hasAttribute(qualifiedName: string): boolean;
72
+ hasAttributeNS(namespace: string | null, localName: string): boolean;
73
+ hasAttributes(): boolean;
74
+ hasPointerCapture(pointerId: number): boolean;
75
+ insertAdjacentElement(where: InsertPosition, element: Element): Element | null;
76
+ insertAdjacentHTML(position: InsertPosition, text: string): void;
77
+ insertAdjacentText(where: InsertPosition, data: string): void;
78
+ matches(selectors: string): boolean;
79
+ releasePointerCapture(pointerId: number): void;
80
+ removeAttribute(qualifiedName: string): void;
81
+ removeAttributeNS(namespace: string | null, localName: string): void;
82
+ removeAttributeNode(attr: Attr): Attr;
83
+ requestFullscreen(options?: FullscreenOptions | undefined): Promise<void>;
84
+ requestPointerLock(): void;
85
+ scroll(options?: ScrollToOptions | undefined): void;
86
+ scroll(x: number, y: number): void;
87
+ scrollBy(options?: ScrollToOptions | undefined): void;
88
+ scrollBy(x: number, y: number): void;
89
+ scrollIntoView(arg?: boolean | ScrollIntoViewOptions | undefined): void;
90
+ scrollTo(options?: ScrollToOptions | undefined): void;
91
+ scrollTo(x: number, y: number): void;
92
+ setAttribute(qualifiedName: string, value: string): void;
93
+ setAttributeNS(namespace: string | null, qualifiedName: string, value: string): void;
94
+ setAttributeNode(attr: Attr): Attr | null;
95
+ setAttributeNodeNS(attr: Attr): Attr | null;
96
+ setPointerCapture(pointerId: number): void;
97
+ toggleAttribute(qualifiedName: string, force?: boolean | undefined): boolean;
98
+ webkitMatchesSelector(selectors: string): boolean;
99
+ readonly baseURI: string;
100
+ readonly childNodes: NodeListOf<ChildNode>;
101
+ readonly firstChild: ChildNode | null;
102
+ readonly isConnected: boolean;
103
+ readonly lastChild: ChildNode | null;
104
+ readonly nextSibling: ChildNode | null;
105
+ readonly nodeName: string;
106
+ readonly nodeType: number;
107
+ nodeValue: string | null;
108
+ readonly parentElement: HTMLElement | null;
109
+ readonly parentNode: ParentNode | null;
110
+ readonly previousSibling: ChildNode | null;
111
+ textContent: string | null;
112
+ appendChild<T extends Node>(node: T): T;
113
+ cloneNode(deep?: boolean | undefined): Node;
114
+ compareDocumentPosition(other: Node): number;
115
+ contains(other: Node | null): boolean;
116
+ getRootNode(options?: GetRootNodeOptions | undefined): Node;
117
+ hasChildNodes(): boolean;
118
+ insertBefore<T_1 extends Node>(node: T_1, child: Node | null): T_1;
119
+ isDefaultNamespace(namespace: string | null): boolean;
120
+ isEqualNode(otherNode: Node | null): boolean;
121
+ isSameNode(otherNode: Node | null): boolean;
122
+ lookupNamespaceURI(prefix: string | null): string | null;
123
+ lookupPrefix(namespace: string | null): string | null;
124
+ normalize(): void;
125
+ removeChild<T_2 extends Node>(child: T_2): T_2;
126
+ replaceChild<T_3 extends Node>(node: Node, child: T_3): T_3;
127
+ readonly ATTRIBUTE_NODE: number;
128
+ readonly CDATA_SECTION_NODE: number;
129
+ readonly COMMENT_NODE: number;
130
+ readonly DOCUMENT_FRAGMENT_NODE: number;
131
+ readonly DOCUMENT_NODE: number;
132
+ readonly DOCUMENT_POSITION_CONTAINED_BY: number;
133
+ readonly DOCUMENT_POSITION_CONTAINS: number;
134
+ readonly DOCUMENT_POSITION_DISCONNECTED: number;
135
+ readonly DOCUMENT_POSITION_FOLLOWING: number;
136
+ readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: number;
137
+ readonly DOCUMENT_POSITION_PRECEDING: number;
138
+ readonly DOCUMENT_TYPE_NODE: number;
139
+ readonly ELEMENT_NODE: number;
140
+ readonly ENTITY_NODE: number;
141
+ readonly ENTITY_REFERENCE_NODE: number;
142
+ readonly NOTATION_NODE: number;
143
+ readonly PROCESSING_INSTRUCTION_NODE: number;
144
+ readonly TEXT_NODE: number;
145
+ dispatchEvent(event: Event): boolean;
146
+ ariaAtomic: string;
147
+ ariaAutoComplete: string;
148
+ ariaBusy: string;
149
+ ariaChecked: string;
150
+ ariaColCount: string;
151
+ ariaColIndex: string;
152
+ ariaColSpan: string;
153
+ ariaCurrent: string;
154
+ ariaDisabled: string;
155
+ ariaExpanded: string;
156
+ ariaHasPopup: string;
157
+ ariaHidden: string;
158
+ ariaKeyShortcuts: string;
159
+ ariaLabel: string;
160
+ ariaLevel: string;
161
+ ariaLive: string;
162
+ ariaModal: string;
163
+ ariaMultiLine: string;
164
+ ariaMultiSelectable: string;
165
+ ariaOrientation: string;
166
+ ariaPlaceholder: string;
167
+ ariaPosInSet: string;
168
+ ariaPressed: string;
169
+ ariaReadOnly: string;
170
+ ariaRequired: string;
171
+ ariaRoleDescription: string;
172
+ ariaRowCount: string;
173
+ ariaRowIndex: string;
174
+ ariaRowSpan: string;
175
+ ariaSelected: string;
176
+ ariaSetSize: string;
177
+ ariaSort: string;
178
+ ariaValueMax: string;
179
+ ariaValueMin: string;
180
+ ariaValueNow: string;
181
+ ariaValueText: string;
182
+ animate(keyframes: Keyframe[] | PropertyIndexedKeyframes | null, options?: number | KeyframeAnimationOptions | undefined): Animation;
183
+ getAnimations(options?: GetAnimationsOptions | undefined): Animation[];
184
+ after(...nodes: (string | Node)[]): void;
185
+ before(...nodes: (string | Node)[]): void;
186
+ remove(): void;
187
+ replaceWith(...nodes: (string | Node)[]): void;
188
+ innerHTML: string;
189
+ readonly nextElementSibling: Element | null;
190
+ readonly previousElementSibling: Element | null;
191
+ readonly childElementCount: number;
192
+ readonly children: HTMLCollection;
193
+ readonly firstElementChild: Element | null;
194
+ readonly lastElementChild: Element | null;
195
+ append(...nodes: (string | Node)[]): void;
196
+ prepend(...nodes: (string | Node)[]): void;
197
+ querySelector<K_6 extends keyof HTMLElementTagNameMap>(selectors: K_6): HTMLElementTagNameMap[K_6] | null;
198
+ querySelector<K_7 extends keyof SVGElementTagNameMap>(selectors: K_7): SVGElementTagNameMap[K_7] | null;
199
+ querySelector<E_1 extends Element = Element>(selectors: string): E_1 | null;
200
+ querySelectorAll<K_8 extends keyof HTMLElementTagNameMap>(selectors: K_8): NodeListOf<HTMLElementTagNameMap[K_8]>;
201
+ querySelectorAll<K_9 extends keyof SVGElementTagNameMap>(selectors: K_9): NodeListOf<SVGElementTagNameMap[K_9]>;
202
+ querySelectorAll<E_2 extends Element = Element>(selectors: string): NodeListOf<E_2>;
203
+ replaceChildren(...nodes: (string | Node)[]): void;
204
+ readonly assignedSlot: HTMLSlotElement | null;
205
+ oncopy: ((this: DocumentAndElementEventHandlers, ev: ClipboardEvent) => any) | null;
206
+ oncut: ((this: DocumentAndElementEventHandlers, ev: ClipboardEvent) => any) | null;
207
+ onpaste: ((this: DocumentAndElementEventHandlers, ev: ClipboardEvent) => any) | null;
208
+ readonly style: CSSStyleDeclaration;
209
+ contentEditable: string;
210
+ enterKeyHint: string;
211
+ inputMode: string;
212
+ readonly isContentEditable: boolean;
213
+ onabort: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null;
214
+ onanimationcancel: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
215
+ onanimationend: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
216
+ onanimationiteration: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
217
+ onanimationstart: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
218
+ onauxclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
219
+ onblur: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null;
220
+ oncanplay: ((this: GlobalEventHandlers, ev: Event) => any) | null;
221
+ oncanplaythrough: ((this: GlobalEventHandlers, ev: Event) => any) | null;
222
+ onchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
223
+ onclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
224
+ onclose: ((this: GlobalEventHandlers, ev: Event) => any) | null;
225
+ oncontextmenu: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
226
+ oncuechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
227
+ ondblclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
228
+ ondrag: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
229
+ ondragend: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
230
+ ondragenter: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
231
+ ondragleave: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
232
+ ondragover: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
233
+ ondragstart: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
234
+ ondrop: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
235
+ ondurationchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
236
+ onemptied: ((this: GlobalEventHandlers, ev: Event) => any) | null;
237
+ onended: ((this: GlobalEventHandlers, ev: Event) => any) | null;
238
+ onerror: OnErrorEventHandler;
239
+ onfocus: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null;
240
+ onformdata: ((this: GlobalEventHandlers, ev: FormDataEvent) => any) | null;
241
+ ongotpointercapture: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
242
+ oninput: ((this: GlobalEventHandlers, ev: Event) => any) | null;
243
+ oninvalid: ((this: GlobalEventHandlers, ev: Event) => any) | null;
244
+ onkeydown: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;
245
+ onkeypress: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;
246
+ onkeyup: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;
247
+ onload: ((this: GlobalEventHandlers, ev: Event) => any) | null;
248
+ onloadeddata: ((this: GlobalEventHandlers, ev: Event) => any) | null;
249
+ onloadedmetadata: ((this: GlobalEventHandlers, ev: Event) => any) | null;
250
+ onloadstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;
251
+ onlostpointercapture: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
252
+ onmousedown: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
253
+ onmouseenter: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
254
+ onmouseleave: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
255
+ onmousemove: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
256
+ onmouseout: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
257
+ onmouseover: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
258
+ onmouseup: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
259
+ onpause: ((this: GlobalEventHandlers, ev: Event) => any) | null;
260
+ onplay: ((this: GlobalEventHandlers, ev: Event) => any) | null;
261
+ onplaying: ((this: GlobalEventHandlers, ev: Event) => any) | null;
262
+ onpointercancel: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
263
+ onpointerdown: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
264
+ onpointerenter: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
265
+ onpointerleave: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
266
+ onpointermove: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
267
+ onpointerout: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
268
+ onpointerover: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
269
+ onpointerup: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
270
+ onprogress: ((this: GlobalEventHandlers, ev: ProgressEvent<EventTarget>) => any) | null;
271
+ onratechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
272
+ onreset: ((this: GlobalEventHandlers, ev: Event) => any) | null;
273
+ onresize: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null;
274
+ onscroll: ((this: GlobalEventHandlers, ev: Event) => any) | null;
275
+ onseeked: ((this: GlobalEventHandlers, ev: Event) => any) | null;
276
+ onseeking: ((this: GlobalEventHandlers, ev: Event) => any) | null;
277
+ onselect: ((this: GlobalEventHandlers, ev: Event) => any) | null;
278
+ onselectionchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
279
+ onselectstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;
280
+ onstalled: ((this: GlobalEventHandlers, ev: Event) => any) | null;
281
+ onsubmit: ((this: GlobalEventHandlers, ev: SubmitEvent) => any) | null;
282
+ onsuspend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
283
+ ontimeupdate: ((this: GlobalEventHandlers, ev: Event) => any) | null;
284
+ ontoggle: ((this: GlobalEventHandlers, ev: Event) => any) | null;
285
+ ontouchcancel?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
286
+ ontouchend?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
287
+ ontouchmove?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
288
+ ontouchstart?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
289
+ ontransitioncancel: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
290
+ ontransitionend: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
291
+ ontransitionrun: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
292
+ ontransitionstart: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
293
+ onvolumechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
294
+ onwaiting: ((this: GlobalEventHandlers, ev: Event) => any) | null;
295
+ onwebkitanimationend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
296
+ onwebkitanimationiteration: ((this: GlobalEventHandlers, ev: Event) => any) | null;
297
+ onwebkitanimationstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;
298
+ onwebkittransitionend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
299
+ onwheel: ((this: GlobalEventHandlers, ev: WheelEvent) => any) | null;
300
+ autofocus: boolean;
301
+ readonly dataset: DOMStringMap;
302
+ nonce?: string | undefined;
303
+ tabIndex: number;
304
+ blur(): void;
305
+ focus(options?: FocusOptions | undefined): void;
306
+ };
307
+ readonly observedAttributes: string[];
308
+ };
@@ -0,0 +1,53 @@
1
+ import { getIntegerAttribute, updateAttribute, updateIntegerAttribute } from '../utils';
2
+ const illustrationStylesHtml = '<style>:host{display:inline-block;vertical-align:middle}svg{display:block}</style>';
3
+ const DEFAULT_SIZE = 256;
4
+ const MIN_SIZE = 16;
5
+ const MAX_SIZE = 2048;
6
+ export const createIllustrationClass = templateHTML => {
7
+ const template = document.createElement('template');
8
+ template.innerHTML = illustrationStylesHtml + templateHTML;
9
+ return class extends HTMLElement {
10
+ constructor() {
11
+ super();
12
+ const shadowRoot = this.attachShadow({
13
+ mode: 'closed'
14
+ });
15
+ shadowRoot.appendChild(template.content.cloneNode(true));
16
+ this.$svg = shadowRoot.querySelector('svg');
17
+ }
18
+
19
+ static get observedAttributes() {
20
+ return ['size'];
21
+ }
22
+
23
+ set size(value) {
24
+ updateAttribute(this, 'size', value);
25
+ }
26
+
27
+ get size() {
28
+ return getIntegerAttribute(this, 'size', DEFAULT_SIZE);
29
+ }
30
+
31
+ connectedCallback() {
32
+ updateAttribute(this.$svg, 'preserveAspectRatio', 'xMinYMin meet');
33
+
34
+ if (!this.hasAttribute('size')) {
35
+ updateAttribute(this, 'size', DEFAULT_SIZE);
36
+ }
37
+ }
38
+
39
+ attributeChangedCallback(name, _, newVal) {
40
+ switch (name) {
41
+ case 'size':
42
+ {
43
+ updateIntegerAttribute(this.$svg, 'height', newVal, {
44
+ min: MIN_SIZE,
45
+ max: MAX_SIZE
46
+ });
47
+ break;
48
+ }
49
+ }
50
+ }
51
+
52
+ };
53
+ };
@@ -0,0 +1,11 @@
1
+ import type { TSinchIllustrationElement, TSinchIllustrationReact } from '../types';
2
+ declare global {
3
+ namespace JSX {
4
+ interface IntrinsicElements {
5
+ 'sinch-illustration-phone-and-cat': TSinchIllustrationReact;
6
+ }
7
+ }
8
+ interface HTMLElementTagNameMap {
9
+ 'sinch-illustration-phone-and-cat': TSinchIllustrationElement;
10
+ }
11
+ }
@@ -0,0 +1,4 @@
1
+ import { defineCustomElement } from '../../utils';
2
+ import { createIllustrationClass } from '../create-illustration-class';
3
+ const templateHTML = '<svg viewBox="0 0 868 800"><g clip-path="url(#a)"><path d="M743.029 800a65.073 65.073 0 0 1-53.216-27.573 65.073 65.073 0 0 1-8.106-59.384c5.049-14.202 10.693-26.125 17.244-36.43a16.512 16.512 0 0 1 10.349-7.26 16.52 16.52 0 0 1 17.112 6.636 16.528 16.528 0 0 1 2.747 12.34 16.528 16.528 0 0 1-2.331 6.009c-5.205 8.187-9.786 17.932-14.002 29.789a32.047 32.047 0 0 0 33.77 42.64c.093 0 .187-.02.281-.027a31.99 31.99 0 0 0 24.058-16.208l10.086-18.181a58.267 58.267 0 0 1 77.436-23.645 16.526 16.526 0 0 1 5.133 3.949 16.538 16.538 0 0 1 3.219 5.62 16.516 16.516 0 0 1-16.974 21.708 16.524 16.524 0 0 1-6.23-1.769 25.243 25.243 0 0 0-33.704 10.161l-10.088 18.184a65.081 65.081 0 0 1-49.516 33.037l-.404.041a65.03 65.03 0 0 1-6.864.363Z" fill="#F2A068"/><path d="M21.409 0h323.305a20.795 20.795 0 0 1 20.773 20.773V232.84H21.409A20.793 20.793 0 0 1 .636 212.063V20.773A20.793 20.793 0 0 1 21.409 0" fill="#007171"/><path d="M222.723 274.478H21.416a20.79 20.79 0 0 0-20.78 20.775v83.553h222.087a20.795 20.795 0 0 0 20.773-20.773v-62.78a20.796 20.796 0 0 0-20.773-20.775Z" fill="#FFBE3C"/><path d="M168.062 337.607c6.056 0 10.965-4.909 10.965-10.966 0-6.056-4.909-10.965-10.965-10.965-6.057 0-10.966 4.909-10.966 10.965 0 6.057 4.909 10.966 10.966 10.966Zm-45.997 0c6.056 0 10.965-4.909 10.965-10.966 0-6.056-4.909-10.965-10.965-10.965s-10.966 4.909-10.966 10.965c0 6.057 4.91 10.966 10.966 10.966Zm-45.992 0c6.056 0 10.965-4.909 10.965-10.966 0-6.056-4.91-10.965-10.965-10.965-6.057 0-10.966 4.909-10.966 10.965 0 6.057 4.91 10.966 10.966 10.966ZM275.57 92.165H90.555a5.386 5.386 0 0 1 0-10.771H275.57a5.386 5.386 0 1 1 0 10.771Zm-92.537 59.28H90.555a5.386 5.386 0 0 1 0-10.772h92.478a5.386 5.386 0 0 1 0 10.772Z" fill="#fff"/><path fill-rule="evenodd" clip-rule="evenodd" d="M615.675 402.718S506.567 240.893 512.588 287.271c10.022 77.194-28.652 55.324-28.549 143.141l131.636-27.694Z" fill="#FFD03C"/><path d="M277.401 386.038c3.642 5.698 6.05 11.584 6.768 17.594.717 6.009-.089 12.206-2.169 18.991l-1.732 5.513a59.046 59.046 0 0 0-1.677 6.901 63.145 63.145 0 0 0-1.008 14.117c.364 9.405 2.681 18.401 6.01 26.604l.286.701.42.72a16513.683 16513.683 0 0 0 38.013 64.194l19.116 32.031 19.213 31.974a10.593 10.593 0 0 0 14.477 3.621 10.592 10.592 0 0 0 3.739-14.447l-18.9-32.161-18.999-32.098a10513.726 10513.726 0 0 0-38.217-64.073l.709 1.419c-2.644-6.398-4.289-12.942-4.57-19.342a42.001 42.001 0 0 1 .612-9.467c.27-1.557.634-3.096 1.09-4.609l.818-2.742.882-3.08c2.308-8.338 3.82-18.177 2.031-27.827a53.554 53.554 0 0 0-4.341-13.764 61.473 61.473 0 0 0-7.372-11.782 9.387 9.387 0 0 0-12.851-1.906 9.391 9.391 0 0 0-2.458 12.758l.114.171-.004-.011Z" fill="#894915"/><path fill-rule="evenodd" clip-rule="evenodd" d="m413.954 576.288 29.177-60.157a30.487 30.487 0 0 1 19.292-16.079 38.811 38.811 0 0 1 45.387 54.136l-46.18 96.655 28.823 45.069h-71.817a47.175 47.175 0 0 1-42.602-26.915l-93.433-196.475a29.248 29.248 0 0 1 9.154-36.183l22.281-16.292 99.918 156.241Zm391.608-43.01a40.67 40.67 0 0 0-39.183-23.337l-9.69.564a40.68 40.68 0 0 0-38.301 41.27 40.68 40.68 0 0 0 5.493 19.756c19.347 33.317 43.264 74.49 60.566 104.293a40 40 0 0 0 27.069 19.203 40.01 40.01 0 0 0 32.249-7.837 39.705 39.705 0 0 0 11.425-48.074L805.571 533.28l-.009-.002Z" fill="#894915"/><path fill-rule="evenodd" clip-rule="evenodd" d="M377.824 344.949a12.204 12.204 0 0 0-11.115-7.168h-78.603a4.447 4.447 0 0 0-4.052 6.281l69.304 152.996a4.445 4.445 0 0 0 4.049 2.612h77.034a8.69 8.69 0 0 0 8.662-8.045 8.688 8.688 0 0 0-.751-4.223c-14.487-31.99-53.076-117.177-64.528-142.453Z" fill="#666"/><path fill-rule="evenodd" clip-rule="evenodd" d="M362.697 337.781h-74.443a12.207 12.207 0 0 0-10.253 5.589 12.196 12.196 0 0 0-.861 11.646l62.278 137.486a12.195 12.195 0 0 0 11.114 7.168h85.497l-73.332-161.889Z" fill="#CCC"/><path d="m306.957 436.433 69.078 1.008a9.722 9.722 0 0 0 .527-19.439l-69.027-2.755a10.6 10.6 0 0 0-.845 21.179h.267" fill="#894915"/><path d="m311.941 433.234 50.786-38.74a8.576 8.576 0 0 0-9.958-13.954l-53.145 35.442a10.605 10.605 0 1 0 12.317 17.252" fill="#894915"/><path d="m312.976 454.594 70.035.094a9.428 9.428 0 0 0 6.592-2.705 9.428 9.428 0 0 0 .24-13.192 9.429 9.429 0 0 0-6.49-2.943l-69.993-2.445a10.6 10.6 0 0 0-.741 21.187h.357" fill="#894915"/><path d="m318.832 472.223 69.075-.122a8.792 8.792 0 0 0 8.82-8.581 8.796 8.796 0 0 0-8.392-8.999l-68.986-3.485a10.604 10.604 0 0 0-11.189 10.048 10.594 10.594 0 0 0 2.745 7.668 10.596 10.596 0 0 0 7.374 3.457c.174 0 .38.014.553.014" fill="#894915"/><path d="m724.223 600.317-.616 95.556H418.485l69.064-149.989-46.043-26.175 46.507-100.311a50.8 50.8 0 0 1 45.514-29.433l169.531-1.917 22.393 22.361-.172 26.205 26.89-17.037 59.448 126.764-84.071 59.019-3.323-5.043Z" fill="#E83452"/><path d="M557.319 352.94a62.209 62.209 0 0 1-6.19-1.828 78.44 78.44 0 0 1-52.411-74.512l.299-65.106a78.392 78.392 0 0 1 11.777-41.066c16.146-25.985 45.044-40.056 75.404-36.729a78.44 78.44 0 0 1 70.058 78.517l-.285 65.113a78.75 78.75 0 0 1-15.324 46.262l8.24 43.835c4.301 14.496 9.597 21.436 21.433 21.436h6.444l-89.524 62.401a22.706 22.706 0 0 1-22.125 2.154 22.985 22.985 0 0 1-13.714-21.766 22.98 22.98 0 0 1 2.06-8.804c8.156-17.366 18.911-40.673 22.597-50.455 2.957-7.847-4.497-15.538-12.929-18.296a78.337 78.337 0 0 1-5.372-1.044c-.164 0-.331-.016-.498-.021l.057-.085.003-.006Z" fill="#894915"/><path d="M499.89 206.638c0-24.892 20.624-44.973 45.718-44.079 23.903.85 42.501 21.22 42.501 45.137v99.733c0 40.975 47.148 94.857 109.757 94.857 51.326 0 93.148-45.871 93.148-91.582 0-14.608-4.84-31.442-10.612-46.326a61.775 61.775 0 0 0-57.687-39.679v-.046a25.351 25.351 0 0 1-24.403-18.508c-5.425-19.304-13.939-47.59-18.822-53.627-13.175-16.298-29.999-19.136-42.958-18.19-12.567.925-25.066-3.231-34.731-11.318-12.074-10.093-31.682-20.741-59.108-18.081-54.897 5.331-81.467 68.801-42.803 102.806v-1.097Z" fill="#FFD03C"/><path d="m544.235 648.578 6.06-20.583c1.713-5.689 8.482-8.984 14.852-7.083 1.193.357 2.32.907 3.336 1.627a12.68 12.68 0 0 1 9.775-1.639c5.338 1.264 8.788 5.656 8.542 10.367a12.568 12.568 0 0 1 6.359 1.129c4.837 2.267 7.083 7.365 5.666 12.067l-.361 1.2c.08.018.16.027.229.046 6.156 1.457 9.809 7.083 8.164 12.546l-4.853 16.146-65.538-3.35s6.009-16.477 7.769-22.473" fill="#842306"/><path fill-rule="evenodd" clip-rule="evenodd" d="M794.51 319.469h.023s-3.59-16.909-6.663-31.407a6.855 6.855 0 0 0-12.933-1.417l-13.4 29.451-37.492-1.081-6.66-31.407a6.852 6.852 0 0 0-5.957-5.377 6.85 6.85 0 0 0-4.129.853 6.85 6.85 0 0 0-2.85 3.108l-36.989 81.247a28.247 28.247 0 0 0-1.444 19.494 28.259 28.259 0 0 0 11.557 15.766l3.581 2.371-121.276 262.123 194.176-24.87 16.098-41.198a493.41 493.41 0 0 0 30.635-235.66c-1.849-16.132-3.942-30.832-6.277-41.996Z" fill="#F2A068"/><path d="M297.328 363.199a6.942 6.942 0 1 0 0-13.884 6.942 6.942 0 0 0 0 13.884Z" fill="#666"/><path d="M789.706 625.226 663.321 642.93a49.191 49.191 0 0 1-16.109-.409l-11.708-2.251a49.199 49.199 0 0 0-32.134 4.744c-14.519 7.59-35.929 17.781-46.17 17.781h-17.535c-7.445 0-13.939 5.736-14.167 13.178a13.59 13.59 0 0 0 3.83 9.88 13.6 13.6 0 0 0 9.759 4.131h28.909c2.248 0 4.487.27 6.67.805l10.669 2.614a77.667 77.667 0 0 0 18.476 2.23h217.714l-31.832-70.407h.013Z" fill="#894915"/><path d="M532.62 303.419c1.787.351 3.608.504 5.429.457a25.29 25.29 0 0 0 17.014-7.209 2.774 2.774 0 0 0 .83-1.981 2.77 2.77 0 0 0-.83-1.981 2.853 2.853 0 0 0-4.005 0 19.426 19.426 0 0 1-26.552.644 2.857 2.857 0 0 0-4.001.192 2.773 2.773 0 0 0-.467 3.088 2.8 2.8 0 0 0 .661.877c3.375 3 7.492 5.041 11.923 5.909" fill="#842306"/></g><defs><clipPath id="a"><path fill="#fff" transform="translate(.636)" d="M0 0h867.101v800H0z"/></clipPath></defs></svg>';
4
+ defineCustomElement('sinch-illustration-phone-and-cat', createIllustrationClass(templateHTML));
@@ -0,0 +1,7 @@
1
+ import type { TSinchElementReact } from '../types';
2
+ export declare type TSinchIllustrationElement = HTMLElement & {
3
+ size: number;
4
+ };
5
+ export declare type TSinchIllustrationReact = TSinchElementReact<TSinchIllustrationElement> & {
6
+ size?: number;
7
+ };
@@ -0,0 +1 @@
1
+ export {};
package/index.d.ts CHANGED
@@ -5,6 +5,9 @@ import './alert';
5
5
  import './alert-button';
6
6
  import './alert-close';
7
7
  import './button';
8
+ import './card';
9
+ import './card-button';
10
+ import './card-link';
8
11
  import './checkbox';
9
12
  import './input';
10
13
  import './help-tooltip';
@@ -21,6 +24,10 @@ import './toggle';
21
24
  import './tooltip';
22
25
  import './dropdown';
23
26
  import './dropdown-option';
27
+ import './icon/arrow-back';
28
+ import './icon/arrow-downward';
29
+ import './icon/arrow-forward';
30
+ import './icon/arrow-upward';
24
31
  import './icon/keyboard-arrow-down';
25
32
  import './icon/keyboard-arrow-left';
26
33
  import './icon/keyboard-arrow-right';
@@ -45,6 +52,7 @@ import './icon/south';
45
52
  import './icon/south-east';
46
53
  import './icon/south-west';
47
54
  import './icon/west';
55
+ import './illustration/phone-and-cat';
48
56
  import './pagination';
49
57
  import './table';
50
58
  import './table-cell';
@@ -67,3 +75,4 @@ import './icon-branded/rocket';
67
75
  import './icon-branded/settings';
68
76
  import './icon-branded/user';
69
77
  import './icon-branded/users';
78
+ import './dialog';
package/index.js CHANGED
@@ -5,6 +5,9 @@ import './alert';
5
5
  import './alert-button';
6
6
  import './alert-close';
7
7
  import './button';
8
+ import './card';
9
+ import './card-button';
10
+ import './card-link';
8
11
  import './checkbox';
9
12
  import './input';
10
13
  import './help-tooltip';
@@ -21,6 +24,10 @@ import './toggle';
21
24
  import './tooltip';
22
25
  import './dropdown';
23
26
  import './dropdown-option';
27
+ import './icon/arrow-back';
28
+ import './icon/arrow-downward';
29
+ import './icon/arrow-forward';
30
+ import './icon/arrow-upward';
24
31
  import './icon/keyboard-arrow-down';
25
32
  import './icon/keyboard-arrow-left';
26
33
  import './icon/keyboard-arrow-right';
@@ -45,6 +52,7 @@ import './icon/south';
45
52
  import './icon/south-east';
46
53
  import './icon/south-west';
47
54
  import './icon/west';
55
+ import './illustration/phone-and-cat';
48
56
  import './pagination';
49
57
  import './table';
50
58
  import './table-cell';
@@ -66,4 +74,5 @@ import './icon-branded/multiple-channels';
66
74
  import './icon-branded/rocket';
67
75
  import './icon-branded/settings';
68
76
  import './icon-branded/user';
69
- import './icon-branded/users';
77
+ import './icon-branded/users';
78
+ import './dialog';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nectary/components",
3
- "version": "0.10.0",
3
+ "version": "0.11.1",
4
4
  "files": [
5
5
  "theme.css",
6
6
  "**/*/*.js",
package/theme.css CHANGED
@@ -1,4 +1,5 @@
1
- :root {
1
+ :root,
2
+ :host {
2
3
  --sinch-theme: 1;
3
4
  --sinch-color-honey-700: #CC8800;
4
5
  --sinch-color-honey-600: #FFAA00;
@@ -73,7 +74,7 @@
73
74
  --sinch-font-title-2: 600 24px/32px "Gilroy", "Arial", "sans-serif";
74
75
  --sinch-font-title-3: 600 20px/24px "Gilroy", "Arial", "sans-serif";
75
76
  --sinch-font-title-4: 600 16px/24px "Gilroy", "Arial", "sans-serif";
76
- --sinch-font-title-5: 700 16px/24px "Gilroy", "Arial", "sans-serif";
77
+ --sinch-font-title-5: 700 14px/22px "Gilroy", "Arial", "sans-serif";
77
78
  --sinch-font-body: 400 16px/24px "Gilroy", "Arial", "sans-serif";
78
79
  --sinch-font-emphasized-body: 600 16px/24px "Gilroy", "Arial", "sans-serif";
79
80
  --sinch-font-small-text: 400 14px/22px "Gilroy", "Arial", "sans-serif";