@nectary/components 2.12.4 → 3.0.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.
Files changed (85) hide show
  1. package/lib/cjs/card/index.js +1 -1
  2. package/lib/cjs/card-container/index.js +1 -1
  3. package/lib/cjs/checkbox/index.js +1 -1
  4. package/lib/cjs/color-swatch/index.js +1 -1
  5. package/lib/cjs/date-picker/index.d.ts +0 -1
  6. package/lib/cjs/date-picker/index.js +1 -2
  7. package/lib/cjs/dialog/index.d.ts +0 -1
  8. package/lib/cjs/dialog/index.js +12 -8
  9. package/lib/cjs/emoji-picker/index.d.ts +0 -1
  10. package/lib/cjs/emoji-picker/index.js +2 -3
  11. package/lib/cjs/horizontal-stepper/index.js +1 -1
  12. package/lib/cjs/segment-collapse/index.d.ts +0 -1
  13. package/lib/cjs/segment-collapse/index.js +1 -2
  14. package/lib/cjs/select-menu/index.d.ts +0 -1
  15. package/lib/cjs/select-menu/index.js +1 -2
  16. package/lib/cjs/skeleton/index.js +1 -1
  17. package/lib/cjs/skeleton-item/index.js +1 -1
  18. package/lib/cjs/standalone.d.ts +0 -4
  19. package/lib/cjs/standalone.js +0 -4
  20. package/lib/cjs/time-picker/index.d.ts +0 -1
  21. package/lib/cjs/time-picker/index.js +1 -2
  22. package/lib/cjs/vertical-stepper/index.js +1 -1
  23. package/lib/esm/card/index.js +1 -1
  24. package/lib/esm/card-container/index.js +1 -1
  25. package/lib/esm/checkbox/index.js +1 -1
  26. package/lib/esm/color-swatch/index.js +1 -1
  27. package/lib/esm/date-picker/index.d.ts +0 -1
  28. package/lib/esm/date-picker/index.js +1 -2
  29. package/lib/esm/dialog/index.d.ts +0 -1
  30. package/lib/esm/dialog/index.js +12 -8
  31. package/lib/esm/emoji-picker/index.d.ts +0 -1
  32. package/lib/esm/emoji-picker/index.js +2 -3
  33. package/lib/esm/horizontal-stepper/index.js +1 -1
  34. package/lib/esm/segment-collapse/index.d.ts +0 -1
  35. package/lib/esm/segment-collapse/index.js +1 -2
  36. package/lib/esm/select-menu/index.d.ts +0 -1
  37. package/lib/esm/select-menu/index.js +1 -2
  38. package/lib/esm/skeleton/index.js +1 -1
  39. package/lib/esm/skeleton-item/index.js +1 -1
  40. package/lib/esm/standalone.d.ts +0 -4
  41. package/lib/esm/standalone.js +0 -4
  42. package/lib/esm/time-picker/index.d.ts +0 -1
  43. package/lib/esm/time-picker/index.js +1 -2
  44. package/lib/esm/vertical-stepper/index.js +1 -1
  45. package/package.json +1 -1
  46. package/lib/cjs/chat/index.d.ts +0 -11
  47. package/lib/cjs/chat/index.js +0 -13
  48. package/lib/cjs/chat/types.d.ts +0 -3
  49. package/lib/cjs/chat/types.js +0 -1
  50. package/lib/cjs/chat-block/index.d.ts +0 -11
  51. package/lib/cjs/chat-block/index.js +0 -88
  52. package/lib/cjs/chat-block/types.d.ts +0 -30
  53. package/lib/cjs/chat-block/types.js +0 -1
  54. package/lib/cjs/chat-bubble/index.d.ts +0 -11
  55. package/lib/cjs/chat-bubble/index.js +0 -43
  56. package/lib/cjs/chat-bubble/types.d.ts +0 -20
  57. package/lib/cjs/chat-bubble/types.js +0 -1
  58. package/lib/cjs/chat-bubble/utils.d.ts +0 -3
  59. package/lib/cjs/chat-bubble/utils.js +0 -8
  60. package/lib/cjs/icon-button/index.d.ts +0 -12
  61. package/lib/cjs/icon-button/index.js +0 -177
  62. package/lib/cjs/icon-button/types.d.ts +0 -44
  63. package/lib/cjs/icon-button/types.js +0 -1
  64. package/lib/cjs/icon-button/utils.d.ts +0 -2
  65. package/lib/cjs/icon-button/utils.js +0 -7
  66. package/lib/esm/chat/index.d.ts +0 -11
  67. package/lib/esm/chat/index.js +0 -11
  68. package/lib/esm/chat/types.d.ts +0 -3
  69. package/lib/esm/chat/types.js +0 -1
  70. package/lib/esm/chat-block/index.d.ts +0 -11
  71. package/lib/esm/chat-block/index.js +0 -86
  72. package/lib/esm/chat-block/types.d.ts +0 -30
  73. package/lib/esm/chat-block/types.js +0 -1
  74. package/lib/esm/chat-bubble/index.d.ts +0 -11
  75. package/lib/esm/chat-bubble/index.js +0 -41
  76. package/lib/esm/chat-bubble/types.d.ts +0 -20
  77. package/lib/esm/chat-bubble/types.js +0 -1
  78. package/lib/esm/chat-bubble/utils.d.ts +0 -3
  79. package/lib/esm/chat-bubble/utils.js +0 -2
  80. package/lib/esm/icon-button/index.d.ts +0 -12
  81. package/lib/esm/icon-button/index.js +0 -175
  82. package/lib/esm/icon-button/types.d.ts +0 -44
  83. package/lib/esm/icon-button/types.js +0 -1
  84. package/lib/esm/icon-button/utils.d.ts +0 -2
  85. package/lib/esm/icon-button/utils.js +0 -1
@@ -1,175 +0,0 @@
1
- import '../tooltip';
2
- import { defineCustomElement, getBooleanAttribute, getLiteralAttribute, getReactEventHandler, isAttrTrue, NectaryElement, subscribeContext, updateAttribute, updateBooleanAttribute, updateLiteralAttribute, Context, getAttribute, isAttrEqual } from '../utils';
3
- import { DEFAULT_SIZE, sizeExValues } from '../utils/size';
4
- const templateHTML = '<style>:host{display:inline-block;vertical-align:middle;outline:0}#button{display:block;position:relative;width:var(--sinch-local-size);height:var(--sinch-local-size);cursor:pointer;user-select:none;contain:size;--sinch-global-color-icon:var(--sinch-local-color-icon)}:host([disabled]) #button{cursor:initial}:host([data-size="l"]) #button{--sinch-local-size:var(--sinch-comp-button-size-container-l);--sinch-global-size-icon:var(--sinch-comp-button-size-icon-l);--sinch-local-shape-radius:var(--sinch-comp-button-shape-radius-size-l)}#button,:host([data-size="m"]) #button{--sinch-local-size:var(--sinch-comp-button-size-container-m);--sinch-global-size-icon:var(--sinch-comp-button-size-icon-m);--sinch-local-shape-radius:var(--sinch-comp-button-shape-radius-size-m)}:host([data-size="s"]) #button{--sinch-local-size:var(--sinch-comp-button-size-container-s);--sinch-global-size-icon:var(--sinch-comp-button-size-icon-s);--sinch-local-shape-radius:var(--sinch-comp-button-shape-radius-size-s)}:host([data-size=xs]) #button{--sinch-local-size:var(--sinch-comp-button-size-container-xs);--sinch-global-size-icon:var(--sinch-comp-button-size-icon-xs);--sinch-local-shape-radius:var(--sinch-comp-button-shape-radius-size-xs)}:host([type=primary]) #button{--sinch-local-color-background:var(--sinch-comp-button-color-primary-default-background-initial);--sinch-local-color-border:var(--sinch-comp-button-color-primary-default-border-initial);--sinch-local-color-icon:var(--sinch-comp-button-color-primary-default-icon-initial);--sinch-local-shadow:var(--sinch-comp-button-shadow-primary-initial);--sinch-local-color-outline:var(--sinch-comp-button-color-primary-default-outline-focus)}:host([type=secondary]) #button{--sinch-local-color-background:var(--sinch-comp-button-color-secondary-default-background-initial);--sinch-local-color-border:var(--sinch-comp-button-color-secondary-default-border-initial);--sinch-local-color-icon:var(--sinch-comp-button-color-secondary-default-icon-initial);--sinch-local-shadow:var(--sinch-comp-button-shadow-secondary-initial);--sinch-local-color-outline:var(--sinch-comp-button-color-secondary-default-outline-focus)}#button,:host([type=tertiary]) #button{--sinch-local-color-background:var(--sinch-comp-button-color-subtle-secondary-default-background-initial);--sinch-local-color-border:var(--sinch-comp-button-color-subtle-secondary-default-border-initial);--sinch-local-color-icon:var(--sinch-comp-button-color-subtle-secondary-default-icon-initial);--sinch-local-shadow:var(--sinch-comp-button-shadow-subtle-initial);--sinch-local-color-outline:var(--sinch-comp-button-color-subtle-secondary-default-outline-focus)}:host([type=primary][disabled]) #button{--sinch-local-color-background:var(--sinch-comp-button-color-primary-disabled-background-initial);--sinch-local-color-border:var(--sinch-comp-button-color-primary-disabled-border-initial);--sinch-local-color-icon:var(--sinch-comp-button-color-primary-disabled-icon-initial);--sinch-local-shadow:var(--sinch-comp-button-shadow-primary-disabled)}:host([type=secondary][disabled]) #button{--sinch-local-color-background:var(--sinch-comp-button-color-secondary-disabled-background-initial);--sinch-local-color-border:var(--sinch-comp-button-color-secondary-disabled-border-initial);--sinch-local-color-icon:var(--sinch-comp-button-color-secondary-disabled-icon-initial);--sinch-local-shadow:var(--sinch-comp-button-shadow-secondary-disabled)}:host([disabled]) #button,:host([type=tertiary][disabled]) #button{--sinch-local-color-background:var(--sinch-comp-button-color-subtle-secondary-disabled-background-initial);--sinch-local-color-border:var(--sinch-comp-button-color-subtle-secondary-disabled-border-initial);--sinch-local-color-icon:var(--sinch-comp-button-color-subtle-secondary-disabled-icon-initial);--sinch-local-shadow:var(--sinch-comp-button-shadow-subtle-disabled)}:host([type=primary]:focus) #button{--sinch-local-shadow:var(--sinch-comp-button-shadow-primary-focus)}:host([type=secondary]:focus) #button{--sinch-local-shadow:var(--sinch-comp-button-shadow-secondary-focus)}:host(:focus),:host([type=tertiary]:focus) #button{--sinch-local-shadow:var(--sinch-comp-button-shadow-subtle-focus)}:host([type=primary]:not([disabled]):hover) #button{--sinch-local-color-background:var(--sinch-comp-button-color-primary-default-background-hover);--sinch-local-shadow:var(--sinch-comp-button-shadow-primary-hover)}:host([type=secondary]:not([disabled]):hover) #button{--sinch-local-color-background:var(--sinch-comp-button-color-secondary-default-background-hover);--sinch-local-shadow:var(--sinch-comp-button-shadow-secondary-hover)}:host(:not([disabled]):hover) #button,:host([type=tertiary]:not([disabled]):active) #button{--sinch-local-color-background:var(--sinch-comp-button-color-subtle-secondary-default-background-hover);--sinch-local-shadow:var(--sinch-comp-button-shadow-subtle-hover)}:host([type=primary]:not([disabled]):active) #button{--sinch-local-color-background:var(--sinch-comp-button-color-primary-default-background-active);--sinch-local-shadow:var(--sinch-comp-button-shadow-primary-active)}:host([type=secondary]:not([disabled]):active) #button{--sinch-local-color-background:var(--sinch-comp-button-color-secondary-default-background-active);--sinch-local-shadow:var(--sinch-comp-button-shadow-secondary-active)}:host(:not([disabled]):active) #button,:host([type=tertiary]:not([disabled]):active) #button{--sinch-local-color-background:var(--sinch-comp-button-color-subtle-secondary-default-background-active);--sinch-local-shadow:var(--sinch-comp-button-shadow-subtle-active)}#button::before{content:"";position:absolute;inset:0;background-color:var(--sinch-local-color-background);border:1px solid var(--sinch-local-color-border);border-radius:var(--sinch-local-shape-radius);box-shadow:var(--sinch-local-shadow);pointer-events:none}:host(:focus-visible) #button::after{content:"";position:absolute;inset:-3px;border:2px solid var(--sinch-local-color-outline);border-radius:calc(var(--sinch-local-shape-radius) + 3px);pointer-events:none}#content{position:relative;display:flex;align-items:center;justify-content:center;width:100%;height:100%}</style><sinch-tooltip id="tooltip"><div id="button"><div id="content" inert><slot name="icon"></slot></div></div></sinch-tooltip>';
5
- import { typeValues } from './utils';
6
- const template = document.createElement('template');
7
- template.innerHTML = templateHTML;
8
- defineCustomElement('sinch-icon-button', class extends NectaryElement {
9
- #$button;
10
- #$tooltip;
11
- #controller = null;
12
- #sizeContext;
13
- constructor() {
14
- super();
15
- const shadowRoot = this.attachShadow();
16
- shadowRoot.appendChild(template.content.cloneNode(true));
17
- this.#$button = shadowRoot.querySelector('#button');
18
- this.#$tooltip = shadowRoot.querySelector('#tooltip');
19
- this.#sizeContext = new Context(this.#$button, 'size');
20
- }
21
- connectedCallback() {
22
- super.connectedCallback();
23
- this.#controller = new AbortController();
24
- const options = {
25
- signal: this.#controller.signal
26
- };
27
- this.role = 'button';
28
- this.tabIndex = 0;
29
- this.addEventListener('click', this.#onButtonClick, options);
30
- this.addEventListener('focus', this.#onButtonFocus, options);
31
- this.addEventListener('blur', this.#onButtonBlur, options);
32
- this.addEventListener('keydown', this.#onButtonKeydown, options);
33
- this.addEventListener('-click', this.#onClickReactHandler, options);
34
- this.addEventListener('-focus', this.#onFocusReactHandler, options);
35
- this.addEventListener('-blur', this.#onBlurReactHandler, options);
36
- this.#$tooltip.addEventListener('-show', this.#onTooltipShow, options);
37
- this.#$tooltip.addEventListener('-hide', this.#onTooltipHide, options);
38
- this.addEventListener('-tooltip-show', this.#onTooltipShowReactHandler, options);
39
- this.addEventListener('-tooltip-hide', this.#onTooltipHideReactHandler, options);
40
- subscribeContext(this, 'size', this.#onContextSize, this.#controller.signal);
41
- this.#sizeContext.listen(this.#controller.signal);
42
- this.#onSizeUpdate();
43
- }
44
- disconnectedCallback() {
45
- super.disconnectedCallback();
46
- this.#controller.abort();
47
- this.#controller = null;
48
- }
49
- static get observedAttributes() {
50
- return ['size', 'disabled', 'aria-label', 'data-size'];
51
- }
52
- attributeChangedCallback(name, oldVal, newVal) {
53
- switch (name) {
54
- case 'disabled':
55
- {
56
- if (isAttrEqual(oldVal, newVal)) {
57
- return;
58
- }
59
- const isDisabled = isAttrTrue(newVal);
60
- this.ariaDisabled = isDisabled.toString();
61
- updateBooleanAttribute(this, 'disabled', isDisabled);
62
- break;
63
- }
64
- case 'aria-label':
65
- {
66
- updateAttribute(this.#$tooltip, 'text', newVal);
67
- break;
68
- }
69
- case 'size':
70
- {
71
- updateAttribute(this, 'data-size', newVal);
72
- break;
73
- }
74
- case 'data-size':
75
- {
76
- this.#onSizeUpdate();
77
- break;
78
- }
79
- }
80
- }
81
- set type(value) {
82
- updateLiteralAttribute(this, typeValues, 'type', value);
83
- }
84
- get type() {
85
- return getLiteralAttribute(this, typeValues, 'type', 'tertiary');
86
- }
87
- set disabled(isDisabled) {
88
- updateBooleanAttribute(this, 'disabled', isDisabled);
89
- }
90
- get disabled() {
91
- return getBooleanAttribute(this, 'disabled');
92
- }
93
- set size(size) {
94
- updateLiteralAttribute(this, sizeExValues, 'size', size);
95
- }
96
- get size() {
97
- return getLiteralAttribute(this, sizeExValues, 'size', DEFAULT_SIZE);
98
- }
99
- get tooltipRect() {
100
- return this.#$tooltip.tooltipRect;
101
- }
102
- get focusable() {
103
- return true;
104
- }
105
- #onSizeUpdate() {
106
- if (!this.isDomConnected) {
107
- return;
108
- }
109
- const size = getAttribute(this, 'data-size', DEFAULT_SIZE);
110
- this.#sizeContext.dispatch(size);
111
- }
112
- #onContextSize = e => {
113
- if (this.hasAttribute('size')) {
114
- return;
115
- }
116
- switch (e.detail) {
117
- case 'l':
118
- {
119
- this.setAttribute('data-size', 'm');
120
- break;
121
- }
122
- case 'm':
123
- {
124
- this.setAttribute('data-size', 's');
125
- break;
126
- }
127
- default:
128
- {
129
- this.setAttribute('data-size', 'xs');
130
- }
131
- }
132
- };
133
- #onButtonClick = () => {
134
- if (!this.disabled) {
135
- this.dispatchEvent(new CustomEvent('-click'));
136
- }
137
- };
138
- #onButtonFocus = () => {
139
- this.dispatchEvent(new CustomEvent('-focus'));
140
- };
141
- #onButtonBlur = () => {
142
- this.dispatchEvent(new CustomEvent('-blur'));
143
- };
144
- #onButtonKeydown = e => {
145
- switch (e.code) {
146
- case 'Space':
147
- case 'Enter':
148
- {
149
- e.preventDefault();
150
- this.click();
151
- }
152
- }
153
- };
154
- #onTooltipShow = () => {
155
- this.dispatchEvent(new CustomEvent('-tooltip-show'));
156
- };
157
- #onTooltipHide = () => {
158
- this.dispatchEvent(new CustomEvent('-tooltip-hide'));
159
- };
160
- #onFocusReactHandler = () => {
161
- getReactEventHandler(this, 'on-focus')?.();
162
- };
163
- #onBlurReactHandler = () => {
164
- getReactEventHandler(this, 'on-blur')?.();
165
- };
166
- #onClickReactHandler = e => {
167
- getReactEventHandler(this, 'on-click')?.(e);
168
- };
169
- #onTooltipShowReactHandler = () => {
170
- getReactEventHandler(this, 'on-tooltip-show')?.();
171
- };
172
- #onTooltipHideReactHandler = () => {
173
- getReactEventHandler(this, 'on-tooltip-hide')?.();
174
- };
175
- });
@@ -1,44 +0,0 @@
1
- import type { TRect, TSinchElementReact } from '../types';
2
- import type { TSinchSizeEx } from '../utils/size';
3
- export type TSinchIconButtonType = 'primary' | 'secondary' | 'tertiary';
4
- export type TSinchIconButtonElement = HTMLElement & {
5
- /** Type, `tertiary` by default */
6
- type: TSinchIconButtonType;
7
- /** Size, `m` by default */
8
- size: TSinchSizeEx;
9
- /** Disabled */
10
- disabled: boolean;
11
- readonly tooltipRect: TRect;
12
- /** Click event */
13
- addEventListener(type: '-click', listener: (e: CustomEvent<void>) => void): void;
14
- /** Focus event */
15
- addEventListener(type: '-focus', listener: (e: CustomEvent<void>) => void): void;
16
- /** Blur event */
17
- addEventListener(type: '-blur', listener: (e: CustomEvent<void>) => void): void;
18
- /** Type, `tertiary` by default */
19
- setAttribute(name: 'type', value: string): void;
20
- /** Size, `m` by default */
21
- setAttribute(name: 'size', value: string): void;
22
- /** Disabled */
23
- setAttribute(name: 'disabled', value: ''): void;
24
- };
25
- export type TSinchIconButtonReact = TSinchElementReact<TSinchIconButtonElement> & {
26
- /** Type, `tertiary` by default */
27
- type?: TSinchIconButtonType;
28
- /** Size, `m` by default */
29
- size?: TSinchSizeEx;
30
- /** Disabled */
31
- disabled?: boolean;
32
- /** Label that is used for a11y */
33
- 'aria-label': string;
34
- /** Click event handler */
35
- 'on-click'?: (e: CustomEvent<void>) => void;
36
- /** Focus event handler */
37
- 'on-focus'?: (e: CustomEvent<void>) => void;
38
- /** Blur event handler */
39
- 'on-blur'?: (e: CustomEvent<void>) => void;
40
- /** Tooltip Show Event */
41
- 'on-tooltip-show'?: (e: CustomEvent<void>) => void;
42
- /** Tooltip Hide Event */
43
- 'on-tooltip-hide'?: (e: CustomEvent<void>) => void;
44
- };
@@ -1 +0,0 @@
1
- export {};
@@ -1,2 +0,0 @@
1
- import type { TSinchIconButtonType } from './types';
2
- export declare const typeValues: readonly TSinchIconButtonType[];
@@ -1 +0,0 @@
1
- export const typeValues = ['primary', 'secondary', 'tertiary'];