@nectary/components 4.10.5 → 4.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.
Files changed (173) hide show
  1. package/accordion/index.d.ts +13 -0
  2. package/accordion/index.js +3 -2
  3. package/accordion-item/index.d.ts +23 -1
  4. package/accordion-item/index.js +3 -2
  5. package/action-menu/index.d.ts +12 -0
  6. package/action-menu/index.js +3 -2
  7. package/action-menu-option/index.d.ts +14 -0
  8. package/action-menu-option/index.js +3 -2
  9. package/alert/index.d.ts +14 -1
  10. package/alert/index.js +3 -2
  11. package/avatar/index.d.ts +21 -1
  12. package/avatar/index.js +3 -2
  13. package/badge/index.d.ts +21 -2
  14. package/badge/index.js +3 -2
  15. package/button/index.d.ts +25 -1
  16. package/button/index.js +3 -2
  17. package/button-group/index.d.ts +14 -0
  18. package/button-group/index.js +3 -2
  19. package/button-group-item/index.d.ts +15 -0
  20. package/button-group-item/index.js +3 -2
  21. package/card/index.d.ts +17 -1
  22. package/card/index.js +3 -2
  23. package/card-container/index.d.ts +4 -0
  24. package/card-container/index.js +3 -2
  25. package/card-v2/index.d.ts +15 -0
  26. package/card-v2/index.js +3 -2
  27. package/card-v2-title/index.d.ts +15 -1
  28. package/card-v2-title/index.js +3 -2
  29. package/checkbox/index.d.ts +28 -0
  30. package/checkbox/index.js +3 -2
  31. package/chip/index.d.ts +16 -0
  32. package/chip/index.js +3 -2
  33. package/code-tag/index.d.ts +9 -0
  34. package/code-tag/index.js +3 -2
  35. package/color-menu/index.d.ts +20 -1
  36. package/color-menu/index.js +3 -2
  37. package/color-menu-option/index.d.ts +11 -0
  38. package/color-menu-option/index.js +3 -2
  39. package/color-swatch/index.d.ts +11 -0
  40. package/color-swatch/index.js +3 -2
  41. package/date-picker/index.d.ts +35 -1
  42. package/date-picker/index.js +3 -2
  43. package/dialog/index.d.ts +15 -0
  44. package/dialog/index.js +3 -2
  45. package/emoji/index.d.ts +11 -0
  46. package/emoji/index.js +3 -2
  47. package/emoji-picker/index.d.ts +15 -1
  48. package/emoji-picker/index.js +3 -2
  49. package/field/index.d.ts +21 -0
  50. package/field/index.js +3 -2
  51. package/file-drop/index.d.ts +23 -0
  52. package/file-drop/index.js +3 -2
  53. package/file-picker/index.d.ts +15 -0
  54. package/file-picker/index.js +3 -2
  55. package/file-status/index.d.ts +14 -1
  56. package/file-status/index.js +3 -2
  57. package/flag/index.d.ts +11 -0
  58. package/flag/index.js +3 -2
  59. package/grid/index.d.ts +4 -0
  60. package/grid/index.js +3 -2
  61. package/grid-item/index.d.ts +12 -0
  62. package/grid-item/index.js +3 -2
  63. package/help-tooltip/index.d.ts +17 -0
  64. package/help-tooltip/index.js +3 -2
  65. package/horizontal-stepper/index.d.ts +11 -0
  66. package/horizontal-stepper/index.js +3 -2
  67. package/horizontal-stepper-item/index.d.ts +14 -1
  68. package/horizontal-stepper-item/index.js +3 -2
  69. package/icon/index.d.ts +12 -0
  70. package/icon/index.js +3 -2
  71. package/inline-alert/index.d.ts +16 -1
  72. package/inline-alert/index.js +3 -2
  73. package/input/index.d.ts +45 -1
  74. package/input/index.js +3 -2
  75. package/link/index.d.ts +26 -0
  76. package/link/index.js +3 -2
  77. package/list/index.d.ts +5 -0
  78. package/list/index.js +3 -2
  79. package/list-item/index.d.ts +5 -0
  80. package/list-item/index.js +3 -2
  81. package/package.json +2 -2
  82. package/pagination/index.d.ts +20 -1
  83. package/pagination/index.js +3 -2
  84. package/persistent-overlay/index.d.ts +13 -0
  85. package/persistent-overlay/index.js +3 -2
  86. package/pop/index.d.ts +21 -2
  87. package/pop/index.js +3 -2
  88. package/popover/index.d.ts +20 -1
  89. package/popover/index.js +3 -2
  90. package/progress/index.d.ts +12 -0
  91. package/progress/index.js +3 -2
  92. package/progress-stepper/index.d.ts +15 -1
  93. package/progress-stepper/index.js +3 -2
  94. package/progress-stepper-item/index.d.ts +16 -0
  95. package/progress-stepper-item/index.js +3 -2
  96. package/radio/index.d.ts +19 -0
  97. package/radio/index.js +3 -2
  98. package/radio-option/index.d.ts +18 -0
  99. package/radio-option/index.js +3 -2
  100. package/rich-text/index.d.ts +14 -0
  101. package/rich-text/index.js +3 -2
  102. package/rich-textarea/index.d.ts +28 -0
  103. package/rich-textarea/index.js +3 -2
  104. package/segment/index.d.ts +18 -1
  105. package/segment/index.js +3 -2
  106. package/segment-collapse/index.d.ts +14 -0
  107. package/segment-collapse/index.js +3 -2
  108. package/segmented-control/index.d.ts +11 -0
  109. package/segmented-control/index.js +3 -2
  110. package/segmented-control-option/index.d.ts +16 -0
  111. package/segmented-control-option/index.js +3 -2
  112. package/segmented-icon-control/index.d.ts +13 -0
  113. package/segmented-icon-control/index.js +3 -2
  114. package/segmented-icon-control-option/index.d.ts +14 -0
  115. package/segmented-icon-control-option/index.js +3 -2
  116. package/select-button/index.d.ts +21 -0
  117. package/select-button/index.js +3 -2
  118. package/select-menu/index.d.ts +30 -0
  119. package/select-menu/index.js +3 -2
  120. package/skeleton/index.d.ts +9 -0
  121. package/skeleton/index.js +3 -2
  122. package/skeleton-item/index.d.ts +4 -0
  123. package/skeleton-item/index.js +3 -2
  124. package/spinner/index.d.ts +12 -0
  125. package/spinner/index.js +3 -2
  126. package/stop-events/index.d.ts +6 -1
  127. package/stop-events/index.js +3 -2
  128. package/table/index.d.ts +5 -0
  129. package/table/index.js +3 -2
  130. package/table-body/index.d.ts +5 -0
  131. package/table-body/index.js +3 -2
  132. package/table-cell/index.d.ts +8 -1
  133. package/table-cell/index.js +3 -2
  134. package/table-head/index.d.ts +5 -0
  135. package/table-head/index.js +3 -2
  136. package/table-head-cell/index.d.ts +15 -0
  137. package/table-head-cell/index.js +3 -2
  138. package/table-row/index.d.ts +11 -0
  139. package/table-row/index.js +3 -2
  140. package/tabs/index.d.ts +13 -1
  141. package/tabs/index.js +3 -2
  142. package/tabs-icon-option/index.d.ts +16 -0
  143. package/tabs-icon-option/index.js +3 -2
  144. package/tabs-option/index.d.ts +18 -0
  145. package/tabs-option/index.js +3 -2
  146. package/tag/index.d.ts +15 -0
  147. package/tag/index.js +3 -2
  148. package/text/index.d.ts +17 -1
  149. package/text/index.js +3 -2
  150. package/textarea/index.d.ts +38 -0
  151. package/textarea/index.js +3 -2
  152. package/tile-control/index.d.ts +17 -0
  153. package/tile-control/index.js +3 -2
  154. package/tile-control-option/index.d.ts +18 -0
  155. package/tile-control-option/index.js +3 -2
  156. package/time-picker/index.d.ts +21 -1
  157. package/time-picker/index.js +3 -2
  158. package/title/index.d.ts +15 -1
  159. package/title/index.js +3 -2
  160. package/toast/index.d.ts +16 -1
  161. package/toast/index.js +3 -2
  162. package/toast-manager/index.d.ts +14 -2
  163. package/toast-manager/index.js +3 -2
  164. package/toggle/index.d.ts +20 -0
  165. package/toggle/index.js +3 -2
  166. package/tooltip/index.d.ts +21 -2
  167. package/tooltip/index.js +3 -2
  168. package/types.d.ts +10 -7
  169. package/utils/adapters.d.ts +4 -4
  170. package/vertical-stepper/index.d.ts +11 -0
  171. package/vertical-stepper/index.js +3 -2
  172. package/vertical-stepper-item/index.d.ts +14 -1
  173. package/vertical-stepper-item/index.js +3 -2
@@ -16,7 +16,7 @@ const HOUR_24_RADIUS = HOUR_12_RADIUS - HOUR_24_DIGIT_SIZE;
16
16
  const NEEDLE_HOUR_12_LENGTH = HOUR_12_RADIUS;
17
17
  const NEEDLE_HOUR_24_LENGTH = HOUR_24_RADIUS;
18
18
  const NEEDLE_MINUTE_LENGTH = MINUTE_RADIUS;
19
- defineCustomElement('sinch-time-picker', class extends NectaryElement {
19
+ export class TimePicker extends NectaryElement {
20
20
  #$pickerHours;
21
21
  #$pickerMinutes;
22
22
  #$pickerTouch;
@@ -333,4 +333,5 @@ defineCustomElement('sinch-time-picker', class extends NectaryElement {
333
333
  #onChangeReactHandler = e => {
334
334
  getReactEventHandler(this, 'on-change')?.(e);
335
335
  };
336
- });
336
+ }
337
+ defineCustomElement('sinch-time-picker', TimePicker);
package/title/index.d.ts CHANGED
@@ -1,5 +1,19 @@
1
- import type { TSinchTitle } from './types';
1
+ import { NectaryElement } from '../utils';
2
+ import type { TSinchTitleType, TSinchTitle } from './types';
2
3
  import type { NectaryComponentReact, NectaryComponentVanilla } from '../types';
4
+ export declare class Title extends NectaryElement {
5
+ #private;
6
+ constructor();
7
+ connectedCallback(): void;
8
+ static get observedAttributes(): string[];
9
+ attributeChangedCallback(name: string, oldVal: string | null, newVal: string | null): void;
10
+ get text(): string;
11
+ set text(value: string);
12
+ set type(value: TSinchTitleType);
13
+ get type(): TSinchTitleType;
14
+ set ellipsis(isEllipsis: boolean);
15
+ get ellipsis(): boolean;
16
+ }
3
17
  declare global {
4
18
  interface NectaryComponentMap {
5
19
  'sinch-title': TSinchTitle;
package/title/index.js CHANGED
@@ -3,7 +3,7 @@ const templateHTML = '<style>:host{display:block;--sinch-comp-title-font:var(--s
3
3
  import { typeValues } from './utils';
4
4
  const template = document.createElement('template');
5
5
  template.innerHTML = templateHTML;
6
- defineCustomElement('sinch-title', class extends NectaryElement {
6
+ export class Title extends NectaryElement {
7
7
  #$text;
8
8
  constructor() {
9
9
  super();
@@ -57,4 +57,5 @@ defineCustomElement('sinch-title', class extends NectaryElement {
57
57
  get ellipsis() {
58
58
  return getBooleanAttribute(this, 'ellipsis');
59
59
  }
60
- });
60
+ }
61
+ defineCustomElement('sinch-title', Title);
package/toast/index.d.ts CHANGED
@@ -1,7 +1,22 @@
1
1
  import '../icon';
2
2
  import '../rich-text';
3
- import type { TSinchToast } from './types';
3
+ import { NectaryElement } from '../utils';
4
+ import type { TSinchToastType, TSinchToast } from './types';
4
5
  import type { NectaryComponentReact, NectaryComponentVanilla } from '../types';
6
+ export declare class Toast extends NectaryElement {
7
+ #private;
8
+ constructor();
9
+ connectedCallback(): void;
10
+ disconnectedCallback(): void;
11
+ static get observedAttributes(): string[];
12
+ attributeChangedCallback(name: string, oldVal: string | null, newVal: string | null): void;
13
+ get type(): TSinchToastType;
14
+ set type(value: TSinchToastType);
15
+ get text(): string;
16
+ set text(value: string);
17
+ get persistent(): boolean;
18
+ set persistent(isPersistent: boolean);
19
+ }
5
20
  declare global {
6
21
  interface NectaryComponentMap {
7
22
  'sinch-toast': TSinchToast;
package/toast/index.js CHANGED
@@ -6,7 +6,7 @@ import { typeValues } from './utils';
6
6
  const TIMEOUT = 5000;
7
7
  const template = document.createElement('template');
8
8
  template.innerHTML = templateHTML;
9
- defineCustomElement('sinch-toast', class extends NectaryElement {
9
+ export class Toast extends NectaryElement {
10
10
  #$text;
11
11
  #tid = null;
12
12
  constructor() {
@@ -83,4 +83,5 @@ defineCustomElement('sinch-toast', class extends NectaryElement {
83
83
  #onTimeoutReactHandler = e => {
84
84
  getReactEventHandler(this, 'on-timeout')?.(e);
85
85
  };
86
- });
86
+ }
87
+ defineCustomElement('sinch-toast', Toast);
@@ -1,7 +1,19 @@
1
1
  import '../title';
2
2
  import '../text';
3
- import type { TSinchToastManager } from './types';
4
- import type { NectaryComponentReact, NectaryComponentVanilla } from '../types';
3
+ import { NectaryElement } from '../utils';
4
+ import type { TSinchToastManagerOrigin, TSinchToastManager } from './types';
5
+ import type { NectaryComponentReact, NectaryComponentVanilla, TRect } from '../types';
6
+ export declare class ToastManager extends NectaryElement {
7
+ #private;
8
+ constructor();
9
+ connectedCallback(): void;
10
+ disconnectedCallback(): void;
11
+ get origin(): TSinchToastManagerOrigin;
12
+ set origin(value: TSinchToastManagerOrigin);
13
+ get containerRect(): TRect;
14
+ nthActionRect(nth: number): TRect | null;
15
+ nthCloseRect(nth: number): TRect | null;
16
+ }
5
17
  declare global {
6
18
  interface NectaryComponentMap {
7
19
  'sinch-toast-manager': TSinchToastManager;
@@ -8,7 +8,7 @@ const DURATION_REMOVE = 250;
8
8
  const ITEMS_GAP = 16;
9
9
  const template = document.createElement('template');
10
10
  template.innerHTML = templateHTML;
11
- defineCustomElement('sinch-toast-manager', class extends NectaryElement {
11
+ export class ToastManager extends NectaryElement {
12
12
  #$slot;
13
13
  #$list;
14
14
  #map = (() => new WeakMap())();
@@ -167,4 +167,5 @@ defineCustomElement('sinch-toast-manager', class extends NectaryElement {
167
167
  this.#map.get(item)?.querySelector('[slot=action]')?.dispatchEvent(new CustomEvent('-click'));
168
168
  }
169
169
  };
170
- });
170
+ }
171
+ defineCustomElement('sinch-toast-manager', ToastManager);
package/toggle/index.d.ts CHANGED
@@ -1,5 +1,25 @@
1
+ import { NectaryElement } from '../utils';
1
2
  import type { TSinchToggle } from './types';
2
3
  import type { NectaryComponentReact, NectaryComponentVanilla } from '../types';
4
+ export declare class Toggle extends NectaryElement {
5
+ #private;
6
+ constructor();
7
+ connectedCallback(): void;
8
+ disconnectedCallback(): void;
9
+ static get observedAttributes(): string[];
10
+ attributeChangedCallback(name: string, oldVal: string | null, newVal: string | null): void;
11
+ set checked(isChecked: boolean);
12
+ get checked(): boolean;
13
+ set small(isSmall: boolean);
14
+ get small(): boolean;
15
+ set labeled(isLabeled: boolean);
16
+ get labeled(): boolean;
17
+ set disabled(isDisabled: boolean);
18
+ get disabled(): boolean;
19
+ set text(value: string | null);
20
+ get text(): string | null;
21
+ get focusable(): boolean;
22
+ }
3
23
  declare global {
4
24
  interface NectaryComponentMap {
5
25
  'sinch-toggle': TSinchToggle;
package/toggle/index.js CHANGED
@@ -2,7 +2,7 @@ import { defineCustomElement, getAttribute, getBooleanAttribute, getReactEventHa
2
2
  const templateHTML = '<style>:host{display:inline-block;vertical-align:middle;outline:0}#wrapper{position:relative;display:flex;flex-direction:row;gap:8px;width:100%;height:var(--sinch-local-size);cursor:pointer;user-select:none;--sinch-local-size:20px}:host([small]) #wrapper{--sinch-local-size:16px}:host([disabled]) #wrapper{cursor:initial}#knob-container{position:relative;width:40px;height:var(--sinch-local-size);border-radius:calc(var(--sinch-local-size) * .5);background-color:var(--sinch-comp-toggle-color-default-background-initial);pointer-events:none;transition:background-color .15s ease-in-out}:host([small]) #knob-container{width:32px;height:var(--sinch-local-size)}:host([checked]) #knob-container{background-color:var(--sinch-comp-toggle-color-checked-background-initial)}:host([disabled]) #knob-container{background-color:var(--sinch-comp-toggle-color-disabled-background-initial)}:host([checked][disabled]) #knob-container{background-color:var(--sinch-comp-toggle-color-checked-disabled-background-initial)}#knob{position:relative;width:16px;height:16px;left:2px;top:2px;border-radius:50%;background-color:var(--sinch-comp-toggle-color-default-knob-background-initial);box-shadow:var(--sinch-comp-toggle-shadow-knob-default);transform:translateX(0);transition:transform .15s ease-in-out;will-change:transform}:host([small]) #knob{width:12px;height:12px}:host([disabled]) #knob-container>#knob{box-shadow:var(--sinch-comp-toggle-shadow-knob-disabled)}:host([checked]) #knob-container>#knob{transform:translateX(20px)}:host([small][checked]) #knob-container>#knob{transform:translateX(16px)}#knob::after,#knob::before{font:var(--sinch-comp-toggle-font-size-m-inside-text);color:var(--sinch-comp-toggle-color-default-text-inside-initial);text-transform:uppercase;position:absolute;top:0;padding:0 1px;opacity:0;transition:opacity .15s ease-in-out;user-select:none}#knob::before{content:"on";right:100%}#knob::after{content:"off";left:100%}:host([labeled]:not([small]):not([checked])) #knob::after{opacity:1}:host([labeled]:not([small])[checked]) #knob::before{opacity:1}@media (prefers-reduced-motion){#knob,#knob-container,#knob::after,#knob::before{transition:none}}#outline{display:none;position:absolute;left:-3px;top:-3px;right:-3px;bottom:-3px;border:2px solid var(--sinch-comp-toggle-color-default-outline-focus);border-radius:17px;pointer-events:none}:host(:focus-visible) #outline{display:block}#label{flex:1;min-width:0;align-self:center;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font:var(--sinch-comp-toggle-font-size-m-label);color:var(--sinch-comp-toggle-color-default-label-initial)}#label:empty{display:none}:host([small]) #label{font:var(--sinch-comp-toggle-font-size-s-label)}:host([disabled]) #label{color:var(--sinch-comp-toggle-color-disabled-label-initial)}</style><div id="wrapper"><div id="knob-container"><div id="outline"></div><div id="knob"></div></div><span id="label"></span></div>';
3
3
  const template = document.createElement('template');
4
4
  template.innerHTML = templateHTML;
5
- defineCustomElement('sinch-toggle', class extends NectaryElement {
5
+ export class Toggle extends NectaryElement {
6
6
  #$label;
7
7
  #controller = null;
8
8
  constructor() {
@@ -138,4 +138,5 @@ defineCustomElement('sinch-toggle', class extends NectaryElement {
138
138
  #onBlurReactHandler = e => {
139
139
  getReactEventHandler(this, 'on-blur')?.(e);
140
140
  };
141
- });
141
+ }
142
+ defineCustomElement('sinch-toggle', Toggle);
@@ -1,7 +1,26 @@
1
1
  import '../text';
2
2
  import '../pop';
3
- import type { TSinchTooltip } from './types';
4
- import type { NectaryComponentReact, NectaryComponentVanilla } from '../types';
3
+ import { NectaryElement } from '../utils';
4
+ import type { TSinchTooltipOrientation, TSinchTooltipTextAlign, TSinchTooltipType, TSinchTooltip } from './types';
5
+ import type { NectaryComponentReact, NectaryComponentVanilla, TRect } from '../types';
6
+ export declare class Tooltip extends NectaryElement {
7
+ #private;
8
+ constructor();
9
+ connectedCallback(): void;
10
+ disconnectedCallback(): void;
11
+ static get observedAttributes(): string[];
12
+ attributeChangedCallback(name: string, _: string | null, newVal: string | null): void;
13
+ get text(): string;
14
+ set text(value: string);
15
+ get orientation(): TSinchTooltipOrientation;
16
+ set orientation(value: TSinchTooltipOrientation);
17
+ get 'text-align'(): TSinchTooltipTextAlign;
18
+ set 'text-align'(value: TSinchTooltipTextAlign);
19
+ get type(): TSinchTooltipType;
20
+ set type(value: TSinchTooltipType);
21
+ get footprintRect(): TRect;
22
+ get tooltipRect(): TRect;
23
+ }
5
24
  declare global {
6
25
  interface NectaryComponentMap {
7
26
  'sinch-tooltip': TSinchTooltip;
package/tooltip/index.js CHANGED
@@ -11,7 +11,7 @@ const HIDE_DELAY = 0;
11
11
  const ANIMATION_DURATION = 100;
12
12
  const template = document.createElement('template');
13
13
  template.innerHTML = templateHTML;
14
- defineCustomElement('sinch-tooltip', class extends NectaryElement {
14
+ export class Tooltip extends NectaryElement {
15
15
  #$pop;
16
16
  #$tooltipText;
17
17
  #$content;
@@ -272,4 +272,5 @@ defineCustomElement('sinch-tooltip', class extends NectaryElement {
272
272
  #onHideReactHandler = () => {
273
273
  getReactEventHandler(this, 'on-hide')?.();
274
274
  };
275
- });
275
+ }
276
+ defineCustomElement('sinch-tooltip', Tooltip);
package/types.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import type { ClassAttributes, DOMAttributes, HTMLAttributes } from 'react'
2
- import type { ReactifyEvents, ReactifyElement, SafeSelect, CamelCaseify, RemoveReadonly, SetAttributes, ExtendEventListeners } from './utils/adapters'
1
+ import type { HTMLAttributes, CSSProperties } from 'react'
2
+ import type { ReactifyEvents, WebComponentReactBaseProp, SafeSelect, CamelCaseify, RemoveReadonly, SetAttributes, ExtendEventListeners } from './utils/adapters'
3
3
 
4
4
  export type TRect = {
5
5
  x: number,
@@ -8,21 +8,24 @@ export type TRect = {
8
8
  height: number,
9
9
  }
10
10
 
11
- export type NectaryComponentVanillaByType<T extends object> =
11
+ export type NectaryComponentVanillaByType<T extends NectaryComponentMap[keyof NectaryComponentMap]> =
12
12
  Omit<HTMLElement, 'addEventListener' | 'removeEventListener'> &
13
13
  ExtendEventListeners<Required<SafeSelect<T, 'events'>>> &
14
14
  SetAttributes<Required<RemoveReadonly<SafeSelect<T, 'props'>>>> &
15
15
  Required<CamelCaseify<SafeSelect<T, 'props'>>> &
16
16
  Required<SafeSelect<T, 'methods'>>
17
17
 
18
- export type NectaryComponentReactByType<T extends object> =
19
- ReactifyElement<HTMLElement> &
18
+ export type NectaryComponentReactByType<T extends NectaryComponentMap[keyof NectaryComponentMap]> =
19
+ WebComponentReactBaseProp<NectaryComponentVanillaByType<T>> &
20
20
  ReactifyEvents<SafeSelect<T, 'events'>> &
21
21
  RemoveReadonly<SafeSelect<T, 'props'>> &
22
- { style?: SafeSelect<T, 'style'> }
22
+ {
23
+ style?: Partial<SafeSelect<T, 'style'>> & CSSProperties;
24
+ }
25
+
23
26
 
24
27
  export type NectaryComponentVanilla<K extends keyof NectaryComponentMap> =
25
28
  NectaryComponentVanillaByType<NectaryComponentMap[K]>
26
29
 
27
30
  export type NectaryComponentReact<K extends keyof NectaryComponentMap> =
28
- NectaryComponentReactByType<NectaryComponentMap[K]>
31
+ NectaryComponentReactByType<NectaryComponentMap[K]>
@@ -1,4 +1,4 @@
1
- import type { ClassAttributes, DOMAttributes, HTMLAttributes } from 'react';
1
+ import type { DetailedHTMLProps, HTMLAttributes } from 'react';
2
2
  export type SafeSelect<T extends object, K extends string | number | symbol> = K extends keyof T ? T[K] extends object ? T[K] : {} : {};
3
3
  type CamelCaseString<S extends string> = S extends `${infer P1}-${infer P2}${infer P3}` ? `${Lowercase<P1>}${Uppercase<P2>}${CamelCaseString<P3>}` : S;
4
4
  export type CamelCaseify<T> = T extends object ? {
@@ -21,10 +21,10 @@ export type ExtendEventListeners<Events> = {
21
21
  export type SetAttributes<Props> = {
22
22
  setAttribute<K extends keyof Props>(attr: K, value: Props[K] extends boolean ? '' : Props[K]): void;
23
23
  };
24
- export type ReactifyElement<TElement> = Pick<HTMLAttributes<HTMLElement>, 'id' | 'className' | 'style' | 'slot' | 'children'> & ClassAttributes<TElement> & Pick<DOMAttributes<TElement>, 'onClick' | 'onDoubleClick' | 'onMouseDown' | 'onMouseUp' | 'onMouseMove' | 'onMouseOver' | 'onMouseOut' | 'onFocus' | 'onBlur' | 'onKeyDown' | 'onKeyUp' | 'onKeyPress'> & {
25
- class?: string;
26
- };
27
24
  export type ReactifyEvents<T> = {
28
25
  [K in keyof T as K extends string ? `on${K}` : never]: T[K];
29
26
  };
27
+ export type WebComponentReactBaseProp<T = HTMLElement> = Omit<DetailedHTMLProps<HTMLAttributes<T>, T>, 'className' | 'style'> & {
28
+ class?: string;
29
+ };
30
30
  export {};
@@ -1,5 +1,16 @@
1
+ import { NectaryElement } from '../utils';
1
2
  import type { TSinchVerticalStepper } from './types';
2
3
  import type { NectaryComponentReact, NectaryComponentVanilla } from '../types';
4
+ export declare class VerticalStepper extends NectaryElement {
5
+ #private;
6
+ constructor();
7
+ connectedCallback(): void;
8
+ disconnectedCallback(): void;
9
+ static get observedAttributes(): string[];
10
+ attributeChangedCallback(name: string): void;
11
+ set index(value: string);
12
+ get index(): string;
13
+ }
3
14
  declare global {
4
15
  interface NectaryComponentMap {
5
16
  'sinch-vertical-stepper': TSinchVerticalStepper;
@@ -2,7 +2,7 @@ import { clampNumber, defineCustomElement, getAttribute, getIntegerAttribute, Ne
2
2
  const templateHTML = '<style>:host{display:block;outline:0;--sinch-comp-vertical-stepper-color-background-default:var(--sinch-sys-color-surface-tertiary-default);--sinch-comp-vertical-stepper-color-background-visited-skip:var(--sinch-sys-color-surface-tertiary-default);--sinch-comp-vertical-stepper-color-background-active:var(--sinch-ref-color-neutral-700);--sinch-comp-vertical-stepper-color-background-visited:var(--sinch-ref-color-neutral-350);--sinch-comp-vertical-stepper-color-background-visited-error:var(--sinch-sys-color-feedback-danger-strong);--sinch-comp-vertical-stepper-color-border-default:transparent;--sinch-comp-vertical-stepper-color-border-visited-skip:var(--sinch-ref-color-neutral-700);--sinch-comp-vertical-stepper-color-border-active:transparent;--sinch-comp-vertical-stepper-color-border-visited:var(--sinch-ref-color-neutral-700);--sinch-comp-vertical-stepper-color-border-visited-error:var(--sinch-ref-color-neutral-700);--sinch-comp-vertical-stepper-color-icon-default:var(--sinch-ref-color-neutral-900);--sinch-comp-vertical-stepper-color-icon-visited-skip:var(--sinch-ref-color-neutral-900);--sinch-comp-vertical-stepper-color-icon-active:var(--sinch-sys-color-basic-pure);--sinch-comp-vertical-stepper-color-icon-visited:var(--sinch-ref-color-neutral-900);--sinch-comp-vertical-stepper-color-icon-visited-error:var(--sinch-ref-color-neutral-900);--sinch-comp-vertical-stepper-color-label:var(--sinch-sys-color-text-default);--sinch-comp-vertical-stepper-color-description:var(--sinch-sys-color-text-muted);--sinch-comp-vertical-stepper-color-progress:var(--sinch-ref-color-neutral-350);--sinch-comp-vertical-stepper-color-progress-visited:var(--sinch-ref-color-neutral-700)}#wrapper{position:relative;display:flex;flex-direction:column;width:100%}</style><div id="wrapper"><slot></slot></div>';
3
3
  const template = document.createElement('template');
4
4
  template.innerHTML = templateHTML;
5
- defineCustomElement('sinch-vertical-stepper', class extends NectaryElement {
5
+ export class VerticalStepper extends NectaryElement {
6
6
  #$itemsSlot;
7
7
  constructor() {
8
8
  super();
@@ -54,4 +54,5 @@ defineCustomElement('sinch-vertical-stepper', class extends NectaryElement {
54
54
  this.setAttribute('aria-valuemax', String($items.length));
55
55
  this.setAttribute('aria-valuenow', String(clampNumber(activeIndex, 0, $items.length)));
56
56
  };
57
- });
57
+ }
58
+ defineCustomElement('sinch-vertical-stepper', VerticalStepper);
@@ -1,8 +1,21 @@
1
1
  import '../icon';
2
2
  import '../title';
3
3
  import '../text';
4
- import type { TSinchVerticalStepperItem } from './types';
4
+ import { NectaryElement } from '../utils';
5
+ import type { TSinchVerticalStepperItem, TSinchVerticalStepperStatusType } from './types';
5
6
  import type { NectaryComponentReact, NectaryComponentVanilla } from '../types';
7
+ export declare class VerticalStepperItem extends NectaryElement {
8
+ #private;
9
+ constructor();
10
+ static get observedAttributes(): string[];
11
+ attributeChangedCallback(name: string, oldVal: string | null, newVal: string | null): void;
12
+ set label(value: string);
13
+ get label(): string;
14
+ set description(value: string);
15
+ get description(): string;
16
+ get status(): TSinchVerticalStepperStatusType | null;
17
+ set status(value: TSinchVerticalStepperStatusType | null);
18
+ }
6
19
  declare global {
7
20
  interface NectaryComponentMap {
8
21
  'sinch-vertical-stepper-item': TSinchVerticalStepperItem;
@@ -6,7 +6,7 @@ const templateHTML = '<style>:host{display:block;outline:0}#wrapper{display:flex
6
6
  import { statusValues } from './utils';
7
7
  const template = document.createElement('template');
8
8
  template.innerHTML = templateHTML;
9
- defineCustomElement('sinch-vertical-stepper-item', class extends NectaryElement {
9
+ export class VerticalStepperItem extends NectaryElement {
10
10
  #$label;
11
11
  #$description;
12
12
  #$circleText;
@@ -58,4 +58,5 @@ defineCustomElement('sinch-vertical-stepper-item', class extends NectaryElement
58
58
  set status(value) {
59
59
  updateLiteralAttribute(this, statusValues, 'status', value);
60
60
  }
61
- });
61
+ }
62
+ defineCustomElement('sinch-vertical-stepper-item', VerticalStepperItem);