@designbasekorea/ui-wc 0.8.1 → 0.8.3

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 (162) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/README.md +18 -1
  3. package/dist/esm/components/animation-background/controls.js +1 -1
  4. package/dist/esm/components/animation-background/layers.js +1 -1
  5. package/dist/esm/components/db-accordion.d.ts +1 -1
  6. package/dist/esm/components/db-activity-heatmap.d.ts +38 -0
  7. package/dist/esm/components/db-activity-heatmap.js +1 -0
  8. package/dist/esm/components/db-animation-background.d.ts +2 -0
  9. package/dist/esm/components/db-animation-background.js +1 -1
  10. package/dist/esm/components/db-app-badge.d.ts +2 -0
  11. package/dist/esm/components/db-app-badge.js +1 -1
  12. package/dist/esm/components/db-audio-player.d.ts +4 -0
  13. package/dist/esm/components/db-audio-player.js +1 -1
  14. package/dist/esm/components/db-avatar.js +1 -1
  15. package/dist/esm/components/db-backdrop.d.ts +4 -0
  16. package/dist/esm/components/db-backdrop.js +1 -1
  17. package/dist/esm/components/db-badge.d.ts +2 -2
  18. package/dist/esm/components/db-badge.js +1 -1
  19. package/dist/esm/components/db-bottom-navigation.js +1 -1
  20. package/dist/esm/components/db-bottom-sheet.d.ts +5 -0
  21. package/dist/esm/components/db-bottom-sheet.js +1 -1
  22. package/dist/esm/components/db-breadcrumbs.d.ts +1 -1
  23. package/dist/esm/components/db-button.d.ts +13 -0
  24. package/dist/esm/components/db-button.js +1 -1
  25. package/dist/esm/components/db-calendar.js +1 -1
  26. package/dist/esm/components/db-card.js +1 -1
  27. package/dist/esm/components/db-carousel.js +1 -1
  28. package/dist/esm/components/db-chat-composer.d.ts +14 -0
  29. package/dist/esm/components/db-chat-composer.js +1 -1
  30. package/dist/esm/components/db-chat-message.d.ts +15 -2
  31. package/dist/esm/components/db-chat-message.js +1 -1
  32. package/dist/esm/components/db-chat-orb.d.ts +6 -8
  33. package/dist/esm/components/db-chat-orb.js +1 -1
  34. package/dist/esm/components/db-chat-room.d.ts +12 -1
  35. package/dist/esm/components/db-chat-room.js +1 -1
  36. package/dist/esm/components/db-chat-welcome.js +1 -1
  37. package/dist/esm/components/db-chat-widget.d.ts +43 -10
  38. package/dist/esm/components/db-chat-widget.js +1 -1
  39. package/dist/esm/components/db-checkbox.d.ts +11 -0
  40. package/dist/esm/components/db-checkbox.js +1 -1
  41. package/dist/esm/components/db-chip.js +1 -1
  42. package/dist/esm/components/db-color-picker.js +1 -1
  43. package/dist/esm/components/db-confirm.d.ts +5 -0
  44. package/dist/esm/components/db-confirm.js +1 -1
  45. package/dist/esm/components/db-container.js +1 -1
  46. package/dist/esm/components/db-cookie-banner.js +1 -1
  47. package/dist/esm/components/db-date-picker.d.ts +4 -1
  48. package/dist/esm/components/db-date-picker.js +1 -1
  49. package/dist/esm/components/db-divider.js +1 -1
  50. package/dist/esm/components/db-download-progress.d.ts +3 -4
  51. package/dist/esm/components/db-download-progress.js +1 -1
  52. package/dist/esm/components/db-drawer.d.ts +5 -1
  53. package/dist/esm/components/db-drawer.js +1 -1
  54. package/dist/esm/components/db-dropdown.js +1 -1
  55. package/dist/esm/components/db-dropzone.js +1 -1
  56. package/dist/esm/components/db-email-verify.d.ts +2 -2
  57. package/dist/esm/components/db-email-verify.js +1 -1
  58. package/dist/esm/components/db-file-uploader.js +1 -1
  59. package/dist/esm/components/db-floating-action-button.d.ts +1 -0
  60. package/dist/esm/components/db-floating-action-button.js +1 -1
  61. package/dist/esm/components/db-footer.js +1 -1
  62. package/dist/esm/components/db-gantt.js +1 -1
  63. package/dist/esm/components/db-indicator.js +1 -1
  64. package/dist/esm/components/db-input.d.ts +7 -0
  65. package/dist/esm/components/db-input.js +1 -1
  66. package/dist/esm/components/db-kanban.js +1 -1
  67. package/dist/esm/components/db-lightbox.d.ts +4 -0
  68. package/dist/esm/components/db-lightbox.js +1 -1
  69. package/dist/esm/components/db-list.js +1 -1
  70. package/dist/esm/components/db-masonry.js +1 -1
  71. package/dist/esm/components/db-menu-item.js +1 -1
  72. package/dist/esm/components/db-modal.d.ts +10 -0
  73. package/dist/esm/components/db-modal.js +1 -1
  74. package/dist/esm/components/db-navbar.d.ts +4 -2
  75. package/dist/esm/components/db-navbar.js +1 -1
  76. package/dist/esm/components/db-onboarding-modal.d.ts +3 -0
  77. package/dist/esm/components/db-onboarding-modal.js +1 -1
  78. package/dist/esm/components/db-otp-input.d.ts +3 -2
  79. package/dist/esm/components/db-otp-input.js +1 -1
  80. package/dist/esm/components/db-page-header.js +1 -1
  81. package/dist/esm/components/db-phone-verify.d.ts +2 -2
  82. package/dist/esm/components/db-phone-verify.js +1 -1
  83. package/dist/esm/components/db-popover.js +1 -1
  84. package/dist/esm/components/db-progress-step.js +1 -1
  85. package/dist/esm/components/db-progress.js +1 -1
  86. package/dist/esm/components/db-progressbar.js +1 -1
  87. package/dist/esm/components/db-radio.d.ts +1 -0
  88. package/dist/esm/components/db-radio.js +1 -1
  89. package/dist/esm/components/db-range-slider.d.ts +9 -4
  90. package/dist/esm/components/db-range-slider.js +1 -1
  91. package/dist/esm/components/db-rating.js +1 -1
  92. package/dist/esm/components/db-resizable-panels.d.ts +14 -0
  93. package/dist/esm/components/db-resizable-panels.js +1 -1
  94. package/dist/esm/components/db-search-bar.js +1 -1
  95. package/dist/esm/components/db-section-cta.js +1 -1
  96. package/dist/esm/components/db-section-feature.js +1 -1
  97. package/dist/esm/components/db-section-pricing.js +1 -1
  98. package/dist/esm/components/db-section.js +1 -1
  99. package/dist/esm/components/db-segment-control.js +1 -1
  100. package/dist/esm/components/db-select.d.ts +8 -0
  101. package/dist/esm/components/db-select.js +1 -1
  102. package/dist/esm/components/db-sidebar.d.ts +41 -6
  103. package/dist/esm/components/db-sidebar.js +1 -1
  104. package/dist/esm/components/db-skeleton.js +1 -1
  105. package/dist/esm/components/db-spinner.d.ts +4 -0
  106. package/dist/esm/components/db-spinner.js +1 -1
  107. package/dist/esm/components/db-split-view.js +1 -1
  108. package/dist/esm/components/db-stat.js +1 -1
  109. package/dist/esm/components/db-stepper.js +1 -1
  110. package/dist/esm/components/db-table.js +1 -1
  111. package/dist/esm/components/db-tabs.d.ts +1 -1
  112. package/dist/esm/components/db-tabs.js +1 -1
  113. package/dist/esm/components/db-testimonial.js +1 -1
  114. package/dist/esm/components/db-textarea.js +1 -1
  115. package/dist/esm/components/db-time-picker.d.ts +5 -2
  116. package/dist/esm/components/db-time-picker.js +1 -1
  117. package/dist/esm/components/db-timeline.js +1 -1
  118. package/dist/esm/components/db-toast.d.ts +8 -1
  119. package/dist/esm/components/db-toast.js +1 -1
  120. package/dist/esm/components/db-toggle.d.ts +2 -0
  121. package/dist/esm/components/db-toggle.js +1 -1
  122. package/dist/esm/components/db-tooltip.js +1 -1
  123. package/dist/esm/components/db-top-banner.js +1 -1
  124. package/dist/esm/components/db-tutorial.d.ts +1 -0
  125. package/dist/esm/components/db-tutorial.js +1 -1
  126. package/dist/esm/components/db-two-factor.d.ts +2 -2
  127. package/dist/esm/components/db-two-factor.js +1 -1
  128. package/dist/esm/components/db-video-player.d.ts +3 -0
  129. package/dist/esm/components/db-video-player.js +1 -1
  130. package/dist/esm/components/section-block-header-utils.js +1 -1
  131. package/dist/esm/core/a11y.d.ts +40 -0
  132. package/dist/esm/core/a11y.js +1 -0
  133. package/dist/esm/core/base-element.d.ts +41 -0
  134. package/dist/esm/core/base-element.js +1 -0
  135. package/dist/esm/core/dom.d.ts +35 -0
  136. package/dist/esm/core/dom.js +1 -0
  137. package/dist/esm/core/focus-trap.d.ts +41 -0
  138. package/dist/esm/core/focus-trap.js +1 -0
  139. package/dist/esm/core/i18n.d.ts +82 -0
  140. package/dist/esm/core/i18n.js +1 -0
  141. package/dist/esm/core/scroll-lock.d.ts +19 -0
  142. package/dist/esm/core/scroll-lock.js +1 -0
  143. package/dist/esm/core/uid.d.ts +23 -0
  144. package/dist/esm/core/uid.js +1 -0
  145. package/dist/esm/helpers/toast.d.ts +10 -10
  146. package/dist/esm/helpers/toast.js +1 -1
  147. package/dist/esm/index.d.ts +12 -4
  148. package/dist/esm/index.js +1 -1
  149. package/dist/esm/node_modules/@designbasekorea/ui-contracts/dist/components.js +1 -0
  150. package/dist/esm/node_modules/@designbasekorea/ui-contracts/dist/primitives.js +1 -0
  151. package/dist/index.cjs +1 -1
  152. package/dist/index.css +1 -1
  153. package/dist/index.d.ts +587 -82
  154. package/dist/index.esm.js +1 -1
  155. package/dist/react/index.cjs +1 -1
  156. package/dist/react/index.d.ts +470 -122
  157. package/dist/react/index.esm.js +1 -1
  158. package/package.json +37 -10
  159. package/dist/chunks/lottie-26a5e98f.js +0 -1
  160. package/dist/esm/components/db-lottie.d.ts +0 -20
  161. package/dist/esm/components/db-lottie.js +0 -1
  162. package/dist/react/chunks/lottie-14e7addb.js +0 -1
@@ -1,5 +1,6 @@
1
1
  import * as react from 'react';
2
2
  import react__default, { ReactNode } from 'react';
3
+ import { BadgeVariant, BadgeType, TIME_PICKER_FORMATS, DOWNLOAD_PROGRESS_STATUSES, DOWNLOAD_PROGRESS_POSITIONS, OTP_INPUT_SIZES, PHONE_VERIFY_SIZES, EMAIL_VERIFY_SIZES, TWO_FACTOR_SIZES, CHAT_ORB_SIZES, CHAT_ORB_VARIANTS, CHAT_ORB_STATES, CHAT_ORB_THEMES, CHAT_MESSAGE_ROLES, CHAT_WIDGET_VIEWS, CHAT_WIDGET_POSITIONS } from '@designbasekorea/ui-contracts';
3
4
 
4
5
  /**
5
6
  * Light DOM custom element for the canonical web Button.
@@ -9,10 +10,15 @@ import react__default, { ReactNode } from 'react';
9
10
  */
10
11
  declare class DbButton extends HTMLElement {
11
12
  static get observedAttributes(): string[];
13
+ /**
14
+ * 계약에 없는 값이 attribute 로 들어오면 기본값으로 되돌린다 — throw 하지 않는다.
15
+ * 커스텀 엘리먼트의 attribute 는 임의 문자열을 받으므로 타입으로 막을 수 없다. (STD-COERCE)
16
+ */
12
17
  get variant(): string;
13
18
  set variant(value: string);
14
19
  get size(): string;
15
20
  set size(value: string);
21
+ /** 빈 값은 "사이즈에 따라 자동" 을 뜻하므로 계약값에 포함되지 않아도 유효하다 */
16
22
  get radius(): string;
17
23
  set radius(value: string);
18
24
  get accentStyle(): string;
@@ -45,6 +51,14 @@ declare class DbButton extends HTMLElement {
45
51
  private getDefaultRadiusClass;
46
52
  private syncRadius;
47
53
  private syncAccentStyle;
54
+ /**
55
+ * outline 스타일의 회전하는 테두리 글로우.
56
+ *
57
+ * conic-gradient 의 각도를 직접 애니메이션하려면 `@property` 가 필요해 기준선이 올라간다.
58
+ * 대신 넘치는 정사각형을 `overflow: hidden` 컨테이너 안에서 회전시키고,
59
+ * 컨테이너의 `::after` 가 안쪽을 덮어 1.5px 테두리만 남기는 방식을 쓴다.
60
+ */
61
+ private syncAccentRing;
48
62
  private syncAccentField;
49
63
  private syncModifier;
50
64
  private syncBooleanModifier;
@@ -58,6 +72,8 @@ declare global {
58
72
  }
59
73
 
60
74
  declare class DbInput extends HTMLElement {
75
+ /** 현재 렌더된 DOM 구조의 형태 키 — 바뀔 때만 재구축한다 (PERF-RECONCILE) */
76
+ private shapeKey;
61
77
  static get observedAttributes(): string[];
62
78
  private input?;
63
79
  private passwordVisible;
@@ -87,6 +103,11 @@ declare class DbInput extends HTMLElement {
87
103
  private resolveIconName;
88
104
  private resolveStartIcon;
89
105
  private getCurrentValue;
106
+ /**
107
+ * DOM 골격을 만든다. 구조가 실제로 달라질 때만 호출되며,
108
+ * 그 외에는 render() 가 기존 노드의 속성만 갱신한다.
109
+ */
110
+ private buildStructure;
90
111
  private render;
91
112
  private mountIcons;
92
113
  private shouldShowPasswordValidation;
@@ -114,6 +135,8 @@ declare class DbCheckbox extends HTMLElement {
114
135
  private visual?;
115
136
  private labelEl?;
116
137
  private built;
138
+ private userInteracted;
139
+ private readonly cleanups;
117
140
  get checked(): boolean;
118
141
  set checked(value: boolean);
119
142
  get indeterminate(): boolean;
@@ -124,13 +147,22 @@ declare class DbCheckbox extends HTMLElement {
124
147
  set readOnly(value: boolean);
125
148
  get required(): boolean;
126
149
  set required(value: boolean);
150
+ /** 계약에 없는 값은 기본값으로 되돌린다 — throw 하지 않는다 (STD-COERCE) */
127
151
  get size(): string;
128
152
  set size(value: string);
129
153
  connectedCallback(): void;
154
+ disconnectedCallback(): void;
155
+ /** form.reset() 이후 네이티브 input 의 실제 상태를 호스트 attribute 로 되돌린다 */
156
+ private syncAfterReset;
130
157
  attributeChangedCallback(name: string): void;
131
158
  private get hasLabel();
132
159
  private build;
133
160
  private handleChange;
161
+ /**
162
+ * 네이티브 검증 상태를 보조기술에 노출한다.
163
+ * 값 자체는 네이티브 input 이 폼에 싣고, 여기서는 표현만 맞춘다.
164
+ */
165
+ private syncValidity;
134
166
  private syncState;
135
167
  private syncVisual;
136
168
  private syncClasses;
@@ -148,6 +180,8 @@ declare class DbToggle extends HTMLElement {
148
180
  private root?;
149
181
  private labelEl?;
150
182
  private built;
183
+ /** default-checked 는 초기값일 뿐 — 한 번 조작하면 checked/selected 만 본다 */
184
+ private userInteracted;
151
185
  get checked(): boolean;
152
186
  set checked(value: boolean);
153
187
  get name(): string;
@@ -181,8 +215,8 @@ declare class DbBadge extends HTMLElement {
181
215
  set variant(value: string);
182
216
  get size(): string;
183
217
  set size(value: string);
184
- get badgeStyle(): string;
185
- set badgeStyle(value: string);
218
+ get type(): string;
219
+ set type(value: string);
186
220
  get count(): number | undefined;
187
221
  set count(value: number | undefined);
188
222
  get maxCount(): number;
@@ -224,6 +258,10 @@ declare global {
224
258
  }
225
259
 
226
260
  declare class DbSpinner extends HTMLElement {
261
+ /** 현재 그려진 스피너 타입 — 바뀔 때만 그래픽을 다시 만든다 */
262
+ private renderedType?;
263
+ private graphicEl?;
264
+ private labelEl?;
227
265
  static get observedAttributes(): string[];
228
266
  get type(): string;
229
267
  set type(value: string);
@@ -307,7 +345,7 @@ declare class DbTabs extends HTMLElement {
307
345
  private childObserver?;
308
346
  private resizeObserver?;
309
347
  private resizeRaf?;
310
- get labels(): string[] | string;
348
+ get labels(): string[];
311
349
  set labels(value: string[] | string);
312
350
  get tabItems(): TabItemConfig$1[];
313
351
  get items(): TabItemConfig$1[];
@@ -353,6 +391,7 @@ declare class DbModal extends HTMLElement {
353
391
  private segmentEl?;
354
392
  private contentEl?;
355
393
  private titleId;
394
+ private focusTrap?;
356
395
  private isMounted;
357
396
  private internalTabId;
358
397
  private internalSegment;
@@ -392,7 +431,16 @@ declare class DbModal extends HTMLElement {
392
431
  private exitTimerId;
393
432
  private syncVisibility;
394
433
  private syncOpenState;
434
+ /** 열릴 때 포커스를 패널 안으로 가둔다. 닫으면 직전 포커스 요소로 복원된다. */
435
+ private activateFocusTrap;
395
436
  private teardown;
437
+ /** 소비자가 `role="alertdialog"` 를 지정하지 않으면 dialog */
438
+ private dialogRole;
439
+ /**
440
+ * 본문 설명을 대화상자에 연결한다.
441
+ * `describedby` 로 id 를 직접 주거나, 없으면 본문 컨테이너를 자동으로 가리킨다.
442
+ */
443
+ private syncDescribedBy;
396
444
  private close;
397
445
  private handleDocumentKeyDown;
398
446
  }
@@ -546,7 +594,7 @@ declare class DbAccordion extends HTMLElement {
546
594
  set items(value: AccordionItemConfig$1[] | string);
547
595
  get allowMultiple(): boolean;
548
596
  set allowMultiple(value: boolean);
549
- get expandedItems(): string[] | string;
597
+ get expandedItems(): string[];
550
598
  set expandedItems(value: string[] | string);
551
599
  connectedCallback(): void;
552
600
  disconnectedCallback(): void;
@@ -672,6 +720,14 @@ declare class DbSelect extends HTMLElement {
672
720
  private getFilteredOptions;
673
721
  private selectOption;
674
722
  private dispatchChange;
723
+ /**
724
+ * combobox 트리거에 접근 가능한 이름을 붙인다.
725
+ *
726
+ * 트리거는 `<div role="combobox">` 라서 `<label for>` 로는 연결되지 않는다.
727
+ * 라벨이 있으면 `aria-labelledby`, 없으면 소비자가 준 `aria-label`,
728
+ * 그것도 없으면 placeholder 를 이름으로 쓴다. (A11Y-NAME)
729
+ */
730
+ private syncAccessibleName;
675
731
  private syncState;
676
732
  private syncOpenState;
677
733
  private syncTrigger;
@@ -724,6 +780,7 @@ declare class DbRadio extends HTMLElement {
724
780
  private dot?;
725
781
  private labelEl?;
726
782
  private built;
783
+ private userInteracted;
727
784
  get checked(): boolean;
728
785
  set checked(value: boolean);
729
786
  get disabled(): boolean;
@@ -795,7 +852,7 @@ declare class DbBreadcrumbs extends HTMLElement {
795
852
  private openMenuId;
796
853
  private onDocumentMouseDown;
797
854
  private onDocumentKeyDown;
798
- get items(): BreadcrumbItem[] | string;
855
+ get items(): BreadcrumbItem[];
799
856
  set items(value: BreadcrumbItem[] | string);
800
857
  connectedCallback(): void;
801
858
  disconnectedCallback(): void;
@@ -944,6 +1001,8 @@ declare global {
944
1001
  declare class DbBackdrop extends HTMLElement {
945
1002
  static get observedAttributes(): string[];
946
1003
  private portal?;
1004
+ /** 참조 카운트 스크롤락을 이 인스턴스가 잡고 있는지 (PERF-GLOBAL-STATE) */
1005
+ private scrollLocked;
947
1006
  private keyHandler;
948
1007
  get open(): boolean;
949
1008
  set open(value: boolean);
@@ -957,6 +1016,8 @@ declare class DbBackdrop extends HTMLElement {
957
1016
  private detachListeners;
958
1017
  private handlePortalClick;
959
1018
  private render;
1019
+ /** 잠근 적이 있을 때만 푼다 — 참조 카운트가 음수로 새지 않도록 */
1020
+ private releaseScrollLock;
960
1021
  }
961
1022
  declare global {
962
1023
  interface HTMLElementTagNameMap {
@@ -1030,15 +1091,19 @@ declare class DbDrawer extends HTMLElement {
1030
1091
  private root?;
1031
1092
  private overlay?;
1032
1093
  private container?;
1094
+ private focusTrap?;
1033
1095
  private contentEl?;
1034
1096
  private isMounted;
1035
1097
  private isActive;
1036
1098
  private enterFrame?;
1037
1099
  private exitTimer?;
1038
- private previousActiveElement;
1100
+ /** 참조 카운트 스크롤락을 이 인스턴스가 잡고 있는지 (PERF-GLOBAL-STATE) */
1101
+ private scrollLocked;
1039
1102
  private keyHandler;
1040
1103
  connectedCallback(): void;
1041
1104
  disconnectedCallback(): void;
1105
+ /** 잠근 적이 있을 때만 푼다 — 카운트가 음수로 새지 않도록 */
1106
+ private releaseScrollLock;
1042
1107
  attributeChangedCallback(name: string): void;
1043
1108
  private isOpenRequested;
1044
1109
  private clearTimers;
@@ -1062,14 +1127,21 @@ declare class DbToast extends HTMLElement {
1062
1127
  private progressInterval;
1063
1128
  private closeTimerId;
1064
1129
  private closed;
1130
+ private readonly cleanups;
1131
+ /** 일시정지 시점까지 소비한 시간 (ms) */
1132
+ private elapsedBeforePause;
1133
+ private runStartedAt;
1134
+ private paused;
1065
1135
  connectedCallback(): void;
1066
1136
  disconnectedCallback(): void;
1137
+ private pauseTimers;
1138
+ private resumeTimers;
1067
1139
  attributeChangedCallback(name: string): void;
1068
1140
  private clearTimers;
1069
1141
  private startTimers;
1070
1142
  /** 토스트를 닫고(애니메이션 포함) auto-remove 설정 시 DOM에서 제거합니다. */
1071
1143
  close(): void;
1072
- private iconForStatus;
1144
+ private iconForVariant;
1073
1145
  private render;
1074
1146
  }
1075
1147
  declare global {
@@ -1082,8 +1154,13 @@ declare class DbConfirm extends HTMLElement {
1082
1154
  static get observedAttributes(): string[];
1083
1155
  private root;
1084
1156
  private keyHandler;
1157
+ private focusTrap?;
1158
+ /** 참조 카운트 스크롤락을 이 인스턴스가 잡고 있는지 (PERF-GLOBAL-STATE) */
1159
+ private scrollLocked;
1085
1160
  connectedCallback(): void;
1086
1161
  disconnectedCallback(): void;
1162
+ /** 트랩 해제(=포커스 복원)와 스크롤락 반환을 한 곳에서 처리한다 */
1163
+ private teardownOverlay;
1087
1164
  attributeChangedCallback(): void;
1088
1165
  private isOpen;
1089
1166
  private attachEscape;
@@ -1375,6 +1452,33 @@ declare global {
1375
1452
  }
1376
1453
  }
1377
1454
 
1455
+ declare class DbActivityHeatmap extends HTMLElement {
1456
+ static get observedAttributes(): string[];
1457
+ connectedCallback(): void;
1458
+ disconnectedCallback(): void;
1459
+ attributeChangedCallback(): void;
1460
+ private handleClick;
1461
+ private parseData;
1462
+ private parseEndDate;
1463
+ private parseISODate;
1464
+ private formatISODate;
1465
+ private addDays;
1466
+ private startOfWeek;
1467
+ private isAfter;
1468
+ private buildWeeks;
1469
+ private resolveLevel;
1470
+ private formatMonthLabel;
1471
+ private formatTooltip;
1472
+ private getDayLabels;
1473
+ private getMonthLabels;
1474
+ private render;
1475
+ }
1476
+ declare global {
1477
+ interface HTMLElementTagNameMap {
1478
+ 'db-activity-heatmap': DbActivityHeatmap;
1479
+ }
1480
+ }
1481
+
1378
1482
  declare class DbImage extends HTMLElement {
1379
1483
  private imageState;
1380
1484
  private currentSrc;
@@ -1443,6 +1547,10 @@ declare global {
1443
1547
 
1444
1548
  declare class DbLightbox extends HTMLElement {
1445
1549
  private portalEl;
1550
+ private focusTrap?;
1551
+ /** 참조 카운트 스크롤락을 이 인스턴스가 잡고 있는지 (PERF-GLOBAL-STATE) */
1552
+ private scrollLocked;
1553
+ private readonly titleId;
1446
1554
  private imageEl;
1447
1555
  private loadingEl;
1448
1556
  private errorEl;
@@ -1550,8 +1658,8 @@ interface DbNavbarUserProfile {
1550
1658
  email?: string;
1551
1659
  avatar?: string;
1552
1660
  badge?: number;
1553
- badgeVariant?: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'danger';
1554
- badgeStyle?: 'dot' | 'number' | 'text' | 'outlined';
1661
+ badgeVariant?: BadgeVariant;
1662
+ badgeType?: BadgeType;
1555
1663
  badgeText?: string;
1556
1664
  }
1557
1665
  declare class DbNavbar extends HTMLElement {
@@ -1684,7 +1792,7 @@ interface DbSidebarItem {
1684
1792
  selected?: boolean;
1685
1793
  /** 프로필 메뉴에서 이 항목 앞에 구분선을 표시합니다. */
1686
1794
  dividerBefore?: boolean;
1687
- /** 클릭 시 이동할 사이드바 패널 id (예: settings) */
1795
+ /** 클릭 시 이동할 사이드바 패널 id (예: authentication, settings) */
1688
1796
  openPanel?: string;
1689
1797
  children?: DbSidebarItem[];
1690
1798
  }
@@ -1695,6 +1803,20 @@ interface DbSidebarSection {
1695
1803
  gap?: 'none' | 's' | 'm' | 'l';
1696
1804
  items: DbSidebarItem[];
1697
1805
  }
1806
+ type DbSidebarPanelMode = 'auto' | 'adjacent' | 'replace';
1807
+ interface DbSidebarPanel {
1808
+ id: string;
1809
+ title: string;
1810
+ description?: string;
1811
+ ariaLabel?: string;
1812
+ backLabel?: string;
1813
+ /**
1814
+ * @deprecated 레이아웃 폭은 전역 `panel-width`만 사용합니다.
1815
+ * 패널마다 다른 폭을 주면 adjacent에서 폭이 흔들립니다.
1816
+ */
1817
+ width?: number | string;
1818
+ sections: DbSidebarSection[];
1819
+ }
1698
1820
  interface DbSidebarUserProfile {
1699
1821
  name: string;
1700
1822
  email?: string;
@@ -1736,6 +1858,9 @@ declare class DbSidebar extends HTMLElement {
1736
1858
  private flyoutCloseTimer;
1737
1859
  private userFlyoutCloseTimer;
1738
1860
  private outsideHandler;
1861
+ private panelMediaQuery;
1862
+ private panelMediaHandler;
1863
+ private resolvedPanelMode;
1739
1864
  /**
1740
1865
  * db-sidebar는 Light DOM으로 렌더링하므로 이름 있는 자식 요소를 직접 보존하고
1741
1866
  * 해당 내비게이션 영역으로 이동해 슬롯처럼 투영합니다.
@@ -1746,7 +1871,9 @@ declare class DbSidebar extends HTMLElement {
1746
1871
  static get observedAttributes(): string[];
1747
1872
  connectedCallback(): void;
1748
1873
  disconnectedCallback(): void;
1749
- attributeChangedCallback(name: string): void;
1874
+ attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
1875
+ private bindPanelMediaQuery;
1876
+ private unbindPanelMediaQuery;
1750
1877
  private seedExpanded;
1751
1878
  get items(): DbSidebarItem[];
1752
1879
  set items(value: DbSidebarItem[] | string);
@@ -1784,12 +1911,27 @@ declare class DbSidebar extends HTMLElement {
1784
1911
  set backLabel(value: string);
1785
1912
  get backHref(): string;
1786
1913
  set backHref(value: string);
1914
+ get panels(): DbSidebarPanel[];
1915
+ set panels(value: DbSidebarPanel[] | string);
1916
+ /**
1917
+ * @deprecated panels를 사용하세요. 기존 settings-sections는 settings 패널로 자동 변환됩니다.
1918
+ */
1787
1919
  get settingsSections(): DbSidebarSection[];
1788
1920
  set settingsSections(value: DbSidebarSection[] | string);
1789
1921
  get activePanel(): string;
1790
1922
  set activePanel(value: string);
1923
+ get panelMode(): DbSidebarPanelMode;
1924
+ set panelMode(value: DbSidebarPanelMode);
1925
+ get panelWidth(): string;
1926
+ set panelWidth(value: string | number);
1927
+ get panelBreakpoint(): number;
1928
+ set panelBreakpoint(value: number);
1929
+ private normalizeCssLength;
1791
1930
  private parseSettingsSections;
1792
- private hasSettingsPanel;
1931
+ private parsePanels;
1932
+ private hasPanels;
1933
+ private findPanel;
1934
+ private getActivePanelConfig;
1793
1935
  private parseSections;
1794
1936
  private parseUserMenuItems;
1795
1937
  private parseUserProfile;
@@ -1810,7 +1952,6 @@ declare class DbSidebar extends HTMLElement {
1810
1952
  private setUserFlyout;
1811
1953
  private scheduleUserFlyoutClose;
1812
1954
  private syncHostClasses;
1813
- private syncActivePanelTrack;
1814
1955
  private navigateToPanel;
1815
1956
  private dispatchItemClick;
1816
1957
  private dispatchUserMenuItemClick;
@@ -1831,8 +1972,10 @@ declare class DbSidebar extends HTMLElement {
1831
1972
  private createUserDropdown;
1832
1973
  private createUpdateBanner;
1833
1974
  private createPromoBanner;
1834
- private createHeader;
1975
+ private createMainHeader;
1976
+ private createPanelHeader;
1835
1977
  private createNavWrapper;
1978
+ private createFooter;
1836
1979
  private render;
1837
1980
  }
1838
1981
  declare global {
@@ -1923,6 +2066,81 @@ declare global {
1923
2066
  }
1924
2067
  }
1925
2068
 
2069
+ declare class DbRangeSlider extends HTMLElement {
2070
+ static get observedAttributes(): string[];
2071
+ private built;
2072
+ private headerEl;
2073
+ private labelEl;
2074
+ private valuesEl;
2075
+ private containerEl;
2076
+ private trackEl;
2077
+ private fillEl;
2078
+ private thumbEls;
2079
+ private currentValue;
2080
+ private currentRange;
2081
+ private isDragging;
2082
+ private activeThumb;
2083
+ private boundTrackClick;
2084
+ private boundPointerMove;
2085
+ private boundPointerUp;
2086
+ private boundContainerKeyDown;
2087
+ private eventsBound;
2088
+ connectedCallback(): void;
2089
+ disconnectedCallback(): void;
2090
+ attributeChangedCallback(name: string): void;
2091
+ private isStructuralAttribute;
2092
+ get value(): number;
2093
+ set value(v: number);
2094
+ get range(): [number, number] | undefined;
2095
+ set range(v: [number, number] | string | undefined);
2096
+ private build;
2097
+ private getValuePosition;
2098
+ private shouldShowLabel;
2099
+ private formatValue;
2100
+ private syncDomOrder;
2101
+ private bindEvents;
2102
+ private unbindEvents;
2103
+ private readAttributeValues;
2104
+ private syncClasses;
2105
+ private syncStructure;
2106
+ private isMarkActive;
2107
+ private syncVisuals;
2108
+ private syncThumbTooltips;
2109
+ private syncA11y;
2110
+ private setThumbPosition;
2111
+ private valueToPercent;
2112
+ private percentToValue;
2113
+ private snapToStep;
2114
+ private clamp;
2115
+ private getNumberAttr;
2116
+ private normalizeRangeInput;
2117
+ private parseRangeAttr;
2118
+ private parseMarks;
2119
+ private parseMarkLabels;
2120
+ private isInteractive;
2121
+ private getTrackPercent;
2122
+ private handleThumbPointerDown;
2123
+ private handleTrackClick;
2124
+ /**
2125
+ * 포인터 이동을 프레임당 1회로 병합한다. preventDefault 를 쓰지 않으므로 안전하다. (PERF-RAF)
2126
+ * 메서드가 아니라 필드로 선언해야 rafThrottle 로 감쌀 수 있다.
2127
+ */
2128
+ private handlePointerMove;
2129
+ private handlePointerUp;
2130
+ private setThumbActive;
2131
+ private applyDragValue;
2132
+ private commitValueAtPosition;
2133
+ private handleKeyDown;
2134
+ private afterKeyboard;
2135
+ private dispatchValueChange;
2136
+ private dispatchRangeChange;
2137
+ }
2138
+ declare global {
2139
+ interface HTMLElementTagNameMap {
2140
+ 'db-range-slider': DbRangeSlider;
2141
+ }
2142
+ }
2143
+
1926
2144
  /**
1927
2145
  * SegmentControl Web Component
1928
2146
  * packages/ui SegmentControl.tsx와 DOM·동작·스타일 1:1 동기화
@@ -2237,6 +2455,7 @@ declare global {
2237
2455
  }
2238
2456
 
2239
2457
  declare class DbFloatingActionButton extends HTMLElement {
2458
+ private detachKeyActivation?;
2240
2459
  static get observedAttributes(): string[];
2241
2460
  get size(): string;
2242
2461
  set size(value: string);
@@ -2267,6 +2486,9 @@ declare class DbBottomSheet extends HTMLElement {
2267
2486
  private grabBar?;
2268
2487
  private contentEl?;
2269
2488
  private sheetHeightPercent;
2489
+ private focusTrap?;
2490
+ /** 참조 카운트 스크롤락을 이 인스턴스가 잡고 있는지 (PERF-GLOBAL-STATE) */
2491
+ private scrollLocked;
2270
2492
  private isDragging;
2271
2493
  private isVisible;
2272
2494
  private isMounted;
@@ -2280,6 +2502,8 @@ declare class DbBottomSheet extends HTMLElement {
2280
2502
  private shouldMountPortal;
2281
2503
  connectedCallback(): void;
2282
2504
  disconnectedCallback(): void;
2505
+ /** 트랩 해제(=포커스 복원)와 스크롤락 반환 */
2506
+ private teardownOverlay;
2283
2507
  attributeChangedCallback(name: string): void;
2284
2508
  private isOpenRequested;
2285
2509
  private clearTimers;
@@ -2366,6 +2590,9 @@ type OnboardingStep$1 = {
2366
2590
  declare class DbOnboardingModal extends HTMLElement {
2367
2591
  static get observedAttributes(): string[];
2368
2592
  private root?;
2593
+ private focusTrap?;
2594
+ /** 참조 카운트 스크롤락을 이 인스턴스가 잡고 있는지 (PERF-GLOBAL-STATE) */
2595
+ private scrollLocked;
2369
2596
  private internalStep;
2370
2597
  private keyHandler;
2371
2598
  private isMounted;
@@ -2492,6 +2719,9 @@ declare class DbDatePicker extends HTMLElement {
2492
2719
  private boundDocumentMouseDown;
2493
2720
  connectedCallback(): void;
2494
2721
  disconnectedCallback(): void;
2722
+ /** 열린 달력은 Escape 로 닫히고 포커스는 트리거로 돌아간다 (A11Y-ESCAPE) */
2723
+ private handleDocumentKeyDown;
2724
+ private boundDocumentKeyDown;
2495
2725
  attributeChangedCallback(name: string): void;
2496
2726
  get value(): string;
2497
2727
  set value(value: string);
@@ -2528,7 +2758,7 @@ declare class DbDatePicker extends HTMLElement {
2528
2758
  private handlePendingApply;
2529
2759
  private handlePendingCancel;
2530
2760
  private handleInputBlur;
2531
- private get disabled();
2761
+ get disabled(): boolean;
2532
2762
  set disabled(value: boolean);
2533
2763
  get readonly(): boolean;
2534
2764
  set readonly(value: boolean);
@@ -2551,8 +2781,7 @@ declare global {
2551
2781
  }
2552
2782
  }
2553
2783
 
2554
- declare const FORMATS: readonly ["12h", "24h", "12h-with-seconds", "24h-with-seconds"];
2555
- type TimeFormat = (typeof FORMATS)[number];
2784
+ type TimeFormat = (typeof TIME_PICKER_FORMATS)[number];
2556
2785
  declare class DbTimePicker extends HTMLElement {
2557
2786
  static get observedAttributes(): string[];
2558
2787
  private built;
@@ -2573,6 +2802,9 @@ declare class DbTimePicker extends HTMLElement {
2573
2802
  private boundDocumentMouseDown;
2574
2803
  connectedCallback(): void;
2575
2804
  disconnectedCallback(): void;
2805
+ /** 열린 드롭다운은 Escape 로 닫히고 포커스는 트리거로 돌아간다 (A11Y-ESCAPE) */
2806
+ private handleDocumentKeyDown;
2807
+ private boundDocumentKeyDown;
2576
2808
  attributeChangedCallback(name: string): void;
2577
2809
  get value(): string;
2578
2810
  set value(value: string);
@@ -3186,8 +3418,17 @@ declare class DbResizablePanels extends HTMLElement {
3186
3418
  private startSize;
3187
3419
  private startPos;
3188
3420
  private currentSize;
3421
+ /** 포인터 이동을 프레임당 1회로 병합하기 위한 핸들 (PERF-RAF) */
3422
+ private rafId;
3423
+ private pendingPoint;
3189
3424
  static get observedAttributes(): string[];
3190
3425
  connectedCallback(): void;
3426
+ /**
3427
+ * 드래그 중에 엘리먼트가 DOM 에서 제거되면 mouseup/touchend 가 오지 않아
3428
+ * document 리스너가 영원히 남는다. 여기서 확실히 걷어낸다. (PERF-CLEANUP)
3429
+ */
3430
+ disconnectedCallback(): void;
3431
+ private detachDragListeners;
3191
3432
  attributeChangedCallback(): void;
3192
3433
  private getBool;
3193
3434
  private getNumber;
@@ -3201,6 +3442,11 @@ declare class DbResizablePanels extends HTMLElement {
3201
3442
  private onTouchStart;
3202
3443
  private startResize;
3203
3444
  private onMouseMove;
3445
+ /**
3446
+ * pointer 이동마다 레이아웃을 다시 계산하면 프레임을 넘겨 버린다.
3447
+ * 마지막 좌표만 남겨 두고 다음 프레임에 한 번만 반영한다.
3448
+ */
3449
+ private scheduleResize;
3204
3450
  private onTouchMove;
3205
3451
  private applyResize;
3206
3452
  private onMouseUp;
@@ -3253,6 +3499,9 @@ declare class DbVideoPlayer extends HTMLElement {
3253
3499
  private getPlaylist;
3254
3500
  private getCurrentSrc;
3255
3501
  private formatTime;
3502
+ /**
3503
+ * 아이콘만 있는 컨트롤 버튼. `label` 이 유일한 접근 가능한 이름이다. (A11Y-NAME)
3504
+ */
3256
3505
  private iconButton;
3257
3506
  private skipButton;
3258
3507
  private syncFromAttributes;
@@ -3356,6 +3605,10 @@ declare class DbAudioPlayer extends HTMLElement {
3356
3605
  private toggleShuffle;
3357
3606
  private handlePlaybackRateChange;
3358
3607
  private handleKeyDown;
3608
+ /**
3609
+ * 아이콘만 있는 컨트롤 버튼. `label` 은 선택이 아니라 필수다 —
3610
+ * 아이콘은 aria-hidden 이므로 이것이 유일한 접근 가능한 이름이 된다. (A11Y-NAME)
3611
+ */
3359
3612
  private iconButton;
3360
3613
  private build;
3361
3614
  private get leftControls();
@@ -3572,6 +3825,7 @@ declare global {
3572
3825
  }
3573
3826
 
3574
3827
  declare class DbAppBadge extends HTMLElement {
3828
+ private detachKeyActivation?;
3575
3829
  static get observedAttributes(): string[];
3576
3830
  private built;
3577
3831
  private labelEl?;
@@ -3582,6 +3836,7 @@ declare class DbAppBadge extends HTMLElement {
3582
3836
  private getStore;
3583
3837
  private getIconSize;
3584
3838
  private build;
3839
+ disconnectedCallback(): void;
3585
3840
  private updateUI;
3586
3841
  }
3587
3842
  declare global {
@@ -4036,6 +4291,7 @@ type TutorialStep$1 = {
4036
4291
  declare class DbTutorial extends HTMLElement {
4037
4292
  static get observedAttributes(): string[];
4038
4293
  private root?;
4294
+ private focusTrap?;
4039
4295
  private overlayEl?;
4040
4296
  private popoverEl?;
4041
4297
  private closeButtonEl?;
@@ -4092,6 +4348,8 @@ declare class DbAnimationBackground extends HTMLElement {
4092
4348
  private syncingControls;
4093
4349
  static get observedAttributes(): string[];
4094
4350
  connectedCallback(): void;
4351
+ /** 열린 설정 패널은 Escape 로 닫힌다 (A11Y-ESCAPE) */
4352
+ private handleDocumentKeyDown;
4095
4353
  disconnectedCallback(): void;
4096
4354
  attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
4097
4355
  private getBool;
@@ -4241,29 +4499,8 @@ declare global {
4241
4499
  }
4242
4500
  }
4243
4501
 
4244
- declare class DbLottie extends HTMLElement {
4245
- private container?;
4246
- private animation?;
4247
- private loadToken;
4248
- static get observedAttributes(): string[];
4249
- connectedCallback(): void;
4250
- disconnectedCallback(): void;
4251
- attributeChangedCallback(): void;
4252
- private getBool;
4253
- private getSizeStyle;
4254
- private destroyAnimation;
4255
- private renderAnimation;
4256
- }
4257
- declare global {
4258
- interface HTMLElementTagNameMap {
4259
- 'db-lottie': DbLottie;
4260
- }
4261
- }
4262
-
4263
- declare const STATUSES: readonly ["downloading", "paused", "error", "complete"];
4264
- type DownloadStatus = (typeof STATUSES)[number];
4265
- declare const POSITIONS$1: readonly ["bottom-right", "bottom-left", "bottom-center", "top-right", "top-left", "top-center"];
4266
- type DownloadPosition = (typeof POSITIONS$1)[number];
4502
+ type DownloadStatus = (typeof DOWNLOAD_PROGRESS_STATUSES)[number];
4503
+ type DownloadPosition = (typeof DOWNLOAD_PROGRESS_POSITIONS)[number];
4267
4504
  /**
4268
4505
  * 우측 하단(기본)에 떠 있는 다운로드 진행률 위젯.
4269
4506
  *
@@ -4350,8 +4587,7 @@ declare global {
4350
4587
  *
4351
4588
  * 분할 자릿수 OTP/PIN 입력. 붙여넣기·화살표·백스페이스를 지원합니다.
4352
4589
  */
4353
- declare const SIZES$4: readonly ["s", "m", "l"];
4354
- type OtpSize = (typeof SIZES$4)[number];
4590
+ type OtpSize = (typeof OTP_INPUT_SIZES)[number];
4355
4591
  declare class DbOtpInput extends HTMLElement {
4356
4592
  static formAssociated: boolean;
4357
4593
  static get observedAttributes(): string[];
@@ -4403,8 +4639,7 @@ declare global {
4403
4639
  * 한국형 휴대폰 본인인증: 통신사 → 번호 → 인증번호 발송 → OTP + 타이머/재전송.
4404
4640
  */
4405
4641
 
4406
- declare const SIZES$3: readonly ["s", "m", "l"];
4407
- type Size$2 = (typeof SIZES$3)[number];
4642
+ type Size$2 = (typeof PHONE_VERIFY_SIZES)[number];
4408
4643
  declare class DbPhoneVerify extends HTMLElement {
4409
4644
  static get observedAttributes(): string[];
4410
4645
  private built;
@@ -4460,8 +4695,7 @@ declare global {
4460
4695
  * 이메일 인증: code(OTP) 모드 / confirm(메일함 확인) 모드.
4461
4696
  */
4462
4697
 
4463
- declare const SIZES$2: readonly ["s", "m", "l"];
4464
- type Size$1 = (typeof SIZES$2)[number];
4698
+ type Size$1 = (typeof EMAIL_VERIFY_SIZES)[number];
4465
4699
  declare class DbEmailVerify extends HTMLElement {
4466
4700
  static get observedAttributes(): string[];
4467
4701
  private built;
@@ -4519,6 +4753,7 @@ declare global {
4519
4753
  * 2단계 인증(2FA): 인증앱 / SMS / 이메일 방식 + OTP.
4520
4754
  */
4521
4755
 
4756
+ type Size = (typeof TWO_FACTOR_SIZES)[number];
4522
4757
  declare const METHODS: readonly [{
4523
4758
  readonly value: "app";
4524
4759
  readonly label: "인증 앱";
@@ -4529,8 +4764,6 @@ declare const METHODS: readonly [{
4529
4764
  readonly value: "email";
4530
4765
  readonly label: "이메일";
4531
4766
  }];
4532
- declare const SIZES$1: readonly ["s", "m", "l"];
4533
- type Size = (typeof SIZES$1)[number];
4534
4767
  type Method = (typeof METHODS)[number]['value'];
4535
4768
  declare class DbTwoFactor extends HTMLElement {
4536
4769
  static get observedAttributes(): string[];
@@ -4578,14 +4811,10 @@ declare global {
4578
4811
  }
4579
4812
  }
4580
4813
 
4581
- declare const SIZES: readonly ["xs", "s", "m", "l", "xl"];
4582
- declare const VARIANTS: readonly ["aurora", "ocean", "emerald", "violet", "mono"];
4583
- declare const STATES: readonly ["idle", "thinking", "listening"];
4584
- declare const THEMES: readonly ["auto", "light", "dark"];
4585
- type OrbSize = (typeof SIZES)[number];
4586
- type OrbVariant = (typeof VARIANTS)[number];
4587
- type OrbState = (typeof STATES)[number];
4588
- type OrbTheme = (typeof THEMES)[number];
4814
+ type OrbSize = (typeof CHAT_ORB_SIZES)[number];
4815
+ type OrbVariant = (typeof CHAT_ORB_VARIANTS)[number];
4816
+ type OrbState = (typeof CHAT_ORB_STATES)[number];
4817
+ type OrbTheme = (typeof CHAT_ORB_THEMES)[number];
4589
4818
  /**
4590
4819
  * AI 어시스턴트를 상징하는 캔버스 기반 애니메이션 오브(구체).
4591
4820
  * 광택 있는 3D 구체 위에 유체처럼 흐르는 내부 광원 + 프레넬 림 라이트 + 스페큘러 하이라이트로
@@ -4778,6 +5007,8 @@ declare class DbChatComposer extends HTMLElement {
4778
5007
  private fileInput;
4779
5008
  private micBtn;
4780
5009
  private sendBtn;
5010
+ private dropOverlay;
5011
+ private dragDepth;
4781
5012
  get value(): string;
4782
5013
  set value(v: string);
4783
5014
  get streaming(): boolean;
@@ -4810,12 +5041,24 @@ declare class DbChatComposer extends HTMLElement {
4810
5041
  private handleOutsideClick;
4811
5042
  private chooseAttachOption;
4812
5043
  private handleFilePicked;
5044
+ private hasDragFiles;
5045
+ private handleDragEnter;
5046
+ private handleDragOver;
5047
+ private handleDragLeave;
5048
+ private handleDrop;
5049
+ private showDropOverlay;
4813
5050
  private addFile;
5051
+ /** 동일 파일을 두 번 끌어놓거나 다시 선택해도 첨부 목록에는 한 번만 표시한다. */
5052
+ private hasAttachment;
4814
5053
  private attachmentMeta;
4815
5054
  private handleInput;
4816
5055
  private handleKeyDown;
4817
5056
  private handleSendClick;
4818
5057
  private submit;
5058
+ /** 여러 파일을 첨부합니다. */
5059
+ addFiles(files: File[], type?: string): void;
5060
+ /** 현재 입력·첨부를 전송합니다. */
5061
+ send(): void;
4819
5062
  /** 입력 필드를 비웁니다. */
4820
5063
  clear(): void;
4821
5064
  /** 첨부를 하나 제거합니다. */
@@ -4874,8 +5117,14 @@ declare global {
4874
5117
  }
4875
5118
  }
4876
5119
 
4877
- declare const ROLES: readonly ["user", "assistant", "system"];
4878
- type Role = (typeof ROLES)[number];
5120
+ type Role = (typeof CHAT_MESSAGE_ROLES)[number];
5121
+ interface DbChatMessageAttachment {
5122
+ name: string;
5123
+ kind?: 'image' | 'video' | 'file';
5124
+ /** 미리보기/다운로드 URL (blob: 또는 https:) */
5125
+ url?: string;
5126
+ mime?: string;
5127
+ }
4879
5128
  /**
4880
5129
  * 채팅 메시지 한 줄. 본문은 라이트 DOM 자식으로 전달하며 컴포넌트가 감쌉니다.
4881
5130
  * 아바타는 `db-avatar` 를 재사용합니다.
@@ -4889,17 +5138,22 @@ declare class DbChatMessage extends HTMLElement {
4889
5138
  static get observedAttributes(): string[];
4890
5139
  private built;
4891
5140
  private contentEl;
5141
+ private mediaEl;
4892
5142
  private avatarWrap;
4893
5143
  private headerEl;
4894
5144
  private nameEl;
4895
5145
  private timeEl;
4896
5146
  private actionsEl;
5147
+ private _attachments;
4897
5148
  get role(): Role;
4898
5149
  set role(v: Role);
5150
+ get attachments(): DbChatMessageAttachment[];
5151
+ set attachments(list: DbChatMessageAttachment[]);
4899
5152
  connectedCallback(): void;
4900
5153
  attributeChangedCallback(name: string): void;
4901
5154
  private build;
4902
5155
  private sync;
5156
+ private renderAttachments;
4903
5157
  private renderAvatar;
4904
5158
  private renderActions;
4905
5159
  private handleAction;
@@ -4929,10 +5183,10 @@ declare global {
4929
5183
  }
4930
5184
  }
4931
5185
 
4932
- declare const VIEWS: readonly ["home", "messages", "conversation", "help"];
4933
- type ChatView = (typeof VIEWS)[number];
4934
- declare const POSITIONS: readonly ["bottom-right", "bottom-left"];
4935
- type ChatPosition = (typeof POSITIONS)[number];
5186
+ type ChatView = (typeof CHAT_WIDGET_VIEWS)[number];
5187
+ type ChatPosition = (typeof CHAT_WIDGET_POSITIONS)[number];
5188
+ /** 홈 메뉴 선택 시 위젯 내부 이동. `none`이면 이벤트만 발행(호스트가 처리) */
5189
+ type DbChatWidgetMenuAction = 'conversation' | 'help' | 'none';
4936
5190
  interface DbChatWidgetMessage {
4937
5191
  id?: string;
4938
5192
  /** `assistant`(상담원/봇) 또는 `user` */
@@ -4944,6 +5198,13 @@ interface DbChatWidgetMessage {
4944
5198
  avatarInitials?: string;
4945
5199
  /** 말풍선 액션 (예: 'copy,like,dislike') — db-chat-message 로 전달 */
4946
5200
  actions?: string;
5201
+ /** 첨부 파일/이미지 */
5202
+ attachments?: Array<{
5203
+ name: string;
5204
+ kind?: 'image' | 'video' | 'file';
5205
+ url?: string;
5206
+ mime?: string;
5207
+ }>;
4947
5208
  }
4948
5209
  interface DbChatWidgetConversation {
4949
5210
  id?: string;
@@ -4955,6 +5216,15 @@ interface DbChatWidgetConversation {
4955
5216
  unread?: number;
4956
5217
  online?: boolean;
4957
5218
  }
5219
+ /** 홈 바로가기 메뉴 — 필요한 항목만 `menuItems`로 전달 (없으면 숨김) */
5220
+ interface DbChatWidgetMenuItem extends DbChatSuggestion {
5221
+ action?: DbChatWidgetMenuAction;
5222
+ }
5223
+ /** 도움말 문서 — 클릭 시 상세(`article`) 화면으로 이동 */
5224
+ interface DbChatWidgetArticle extends DbChatSuggestion {
5225
+ /** 상세 본문. 없으면 description을 본문으로 사용 */
5226
+ body?: string;
5227
+ }
4958
5228
  /**
4959
5229
  * FAB 로 열고 닫는 우측 하단 채팅 상담 위젯(껍데기).
4960
5230
  *
@@ -4968,11 +5238,12 @@ interface DbChatWidgetConversation {
4968
5238
  * @fires db-toggle - FAB 토글 (detail: { open })
4969
5239
  * @fires db-view-change - 화면 전환 (detail: { view })
4970
5240
  * @fires db-send - 메시지 전송 (detail: { text })
4971
- * @fires db-menu-select - 홈 메뉴 선택 (detail: { id, value })
5241
+ * @fires db-menu-select - 홈 메뉴 선택 (detail: { id, value, action })
4972
5242
  * @fires db-quick-reply - 빠른 답변 선택 (detail: { id, value })
4973
5243
  * @fires db-article-select - 도움말 문서 선택 (detail: { id, title })
4974
5244
  * @fires db-conversation-select - 대화 목록 선택 (detail: { id })
4975
5245
  * @fires db-message-action - 말풍선 액션 (detail: { action, text })
5246
+ * @fires db-start-chat - 대화 시작 CTA (홈·메시지 empty)
4976
5247
  *
4977
5248
  * @example
4978
5249
  * const chat = document.createElement('db-chat-widget');
@@ -4991,6 +5262,8 @@ declare class DbChatWidget extends HTMLElement {
4991
5262
  static get observedAttributes(): string[];
4992
5263
  private built;
4993
5264
  private typing;
5265
+ private helpQuery;
5266
+ private _activeArticle;
4994
5267
  private _messages;
4995
5268
  private _conversations;
4996
5269
  private _menuItems;
@@ -5017,16 +5290,24 @@ declare class DbChatWidget extends HTMLElement {
5017
5290
  get messages(): DbChatWidgetMessage[];
5018
5291
  set conversations(v: DbChatWidgetConversation[]);
5019
5292
  get conversations(): DbChatWidgetConversation[];
5020
- set menuItems(v: DbChatSuggestion[]);
5021
- get menuItems(): DbChatSuggestion[];
5293
+ set menuItems(v: DbChatWidgetMenuItem[]);
5294
+ get menuItems(): DbChatWidgetMenuItem[];
5022
5295
  set quickReplies(v: DbChatSuggestion[]);
5023
5296
  get quickReplies(): DbChatSuggestion[];
5024
- set articles(v: DbChatSuggestion[]);
5025
- get articles(): DbChatSuggestion[];
5297
+ set articles(v: DbChatWidgetArticle[]);
5298
+ get articles(): DbChatWidgetArticle[];
5026
5299
  connectedCallback(): void;
5300
+ disconnectedCallback(): void;
5301
+ /** 열린 위젯 패널은 Escape 로 닫히고 포커스는 런처로 돌아간다 (A11Y-ESCAPE) */
5302
+ private handleDocumentKeyDown;
5027
5303
  attributeChangedCallback(name: string, oldVal: string | null, newVal: string | null): void;
5028
5304
  private hydrateFromAttributes;
5029
5305
  private build;
5306
+ private panelDragDepth;
5307
+ private handlePanelDragEnter;
5308
+ private handlePanelDragOver;
5309
+ private handlePanelDragLeave;
5310
+ private handlePanelDrop;
5030
5311
  private sync;
5031
5312
  private syncOpenState;
5032
5313
  private renderBadge;
@@ -5037,9 +5318,14 @@ declare class DbChatWidget extends HTMLElement {
5037
5318
  private renderMessages;
5038
5319
  private renderConversation;
5039
5320
  private renderHelp;
5321
+ private renderHelpResults;
5322
+ private renderArticle;
5323
+ private openArticle;
5324
+ private startConversation;
5040
5325
  private buildMessage;
5041
5326
  private buildTyping;
5042
5327
  private buildEmpty;
5328
+ private buildStartChatButton;
5043
5329
  private renderFooter;
5044
5330
  private renderNav;
5045
5331
  private scrollThreadToEnd;
@@ -5308,6 +5594,7 @@ interface DbChatRoomMessage {
5308
5594
  name?: string;
5309
5595
  avatarSrc?: string;
5310
5596
  avatarInitials?: string;
5597
+ attachments?: DbChatMessageAttachment[];
5311
5598
  }
5312
5599
  /**
5313
5600
  * 사람 간 1:1/그룹 대화 화면. 상단 헤더(상대 정보) + 메시지 스레드 + 하단 컴포저.
@@ -5327,15 +5614,18 @@ declare class DbChatRoom extends HTMLElement {
5327
5614
  static get observedAttributes(): string[];
5328
5615
  private built;
5329
5616
  private typing;
5617
+ private dragDepth;
5330
5618
  private _messages;
5331
5619
  private headerEl;
5332
5620
  private scrollEl;
5333
5621
  private threadEl;
5334
5622
  private dockEl;
5623
+ private dropOverlay;
5335
5624
  private composer;
5336
5625
  set messages(v: DbChatRoomMessage[]);
5337
5626
  get messages(): DbChatRoomMessage[];
5338
5627
  connectedCallback(): void;
5628
+ disconnectedCallback(): void;
5339
5629
  attributeChangedCallback(): void;
5340
5630
  private build;
5341
5631
  private sync;
@@ -5344,6 +5634,13 @@ declare class DbChatRoom extends HTMLElement {
5344
5634
  private buildMessage;
5345
5635
  private buildTyping;
5346
5636
  private scrollToEnd;
5637
+ private nowLabel;
5638
+ private hasDragFiles;
5639
+ private handleDragEnter;
5640
+ private handleDragOver;
5641
+ private handleDragLeave;
5642
+ private handleDrop;
5643
+ private showDropOverlay;
5347
5644
  /** 메시지 추가. 추가된 id 반환 */
5348
5645
  addMessage(msg: DbChatRoomMessage): string;
5349
5646
  /** 전체 메시지 교체 */
@@ -5497,18 +5794,18 @@ declare function ModalHeader({ className, children, ...props }: PartProps): reac
5497
5794
  onFocusCapture?: react.FocusEventHandler<HTMLDivElement> | undefined;
5498
5795
  onBlur?: react.FocusEventHandler<HTMLDivElement> | undefined;
5499
5796
  onBlurCapture?: react.FocusEventHandler<HTMLDivElement> | undefined;
5500
- onChange?: react.FormEventHandler<HTMLDivElement> | undefined;
5501
- onChangeCapture?: react.FormEventHandler<HTMLDivElement> | undefined;
5797
+ onChange?: react.ChangeEventHandler<HTMLDivElement, Element> | undefined;
5798
+ onChangeCapture?: react.ChangeEventHandler<HTMLDivElement, Element> | undefined;
5502
5799
  onBeforeInput?: react.InputEventHandler<HTMLDivElement> | undefined;
5503
- onBeforeInputCapture?: react.FormEventHandler<HTMLDivElement> | undefined;
5504
- onInput?: react.FormEventHandler<HTMLDivElement> | undefined;
5505
- onInputCapture?: react.FormEventHandler<HTMLDivElement> | undefined;
5506
- onReset?: react.FormEventHandler<HTMLDivElement> | undefined;
5507
- onResetCapture?: react.FormEventHandler<HTMLDivElement> | undefined;
5508
- onSubmit?: react.FormEventHandler<HTMLDivElement> | undefined;
5509
- onSubmitCapture?: react.FormEventHandler<HTMLDivElement> | undefined;
5510
- onInvalid?: react.FormEventHandler<HTMLDivElement> | undefined;
5511
- onInvalidCapture?: react.FormEventHandler<HTMLDivElement> | undefined;
5800
+ onBeforeInputCapture?: react.InputEventHandler<HTMLDivElement> | undefined;
5801
+ onInput?: react.InputEventHandler<HTMLDivElement> | undefined;
5802
+ onInputCapture?: react.InputEventHandler<HTMLDivElement> | undefined;
5803
+ onReset?: react.ReactEventHandler<HTMLDivElement> | undefined;
5804
+ onResetCapture?: react.ReactEventHandler<HTMLDivElement> | undefined;
5805
+ onSubmit?: react.SubmitEventHandler<HTMLDivElement> | undefined;
5806
+ onSubmitCapture?: react.SubmitEventHandler<HTMLDivElement> | undefined;
5807
+ onInvalid?: react.ReactEventHandler<HTMLDivElement> | undefined;
5808
+ onInvalidCapture?: react.ReactEventHandler<HTMLDivElement> | undefined;
5512
5809
  onLoad?: react.ReactEventHandler<HTMLDivElement> | undefined;
5513
5810
  onLoadCapture?: react.ReactEventHandler<HTMLDivElement> | undefined;
5514
5811
  onError?: react.ReactEventHandler<HTMLDivElement> | undefined;
@@ -5779,18 +6076,18 @@ declare function ModalBody({ className, children, ...props }: PartProps): react.
5779
6076
  onFocusCapture?: react.FocusEventHandler<HTMLDivElement> | undefined;
5780
6077
  onBlur?: react.FocusEventHandler<HTMLDivElement> | undefined;
5781
6078
  onBlurCapture?: react.FocusEventHandler<HTMLDivElement> | undefined;
5782
- onChange?: react.FormEventHandler<HTMLDivElement> | undefined;
5783
- onChangeCapture?: react.FormEventHandler<HTMLDivElement> | undefined;
6079
+ onChange?: react.ChangeEventHandler<HTMLDivElement, Element> | undefined;
6080
+ onChangeCapture?: react.ChangeEventHandler<HTMLDivElement, Element> | undefined;
5784
6081
  onBeforeInput?: react.InputEventHandler<HTMLDivElement> | undefined;
5785
- onBeforeInputCapture?: react.FormEventHandler<HTMLDivElement> | undefined;
5786
- onInput?: react.FormEventHandler<HTMLDivElement> | undefined;
5787
- onInputCapture?: react.FormEventHandler<HTMLDivElement> | undefined;
5788
- onReset?: react.FormEventHandler<HTMLDivElement> | undefined;
5789
- onResetCapture?: react.FormEventHandler<HTMLDivElement> | undefined;
5790
- onSubmit?: react.FormEventHandler<HTMLDivElement> | undefined;
5791
- onSubmitCapture?: react.FormEventHandler<HTMLDivElement> | undefined;
5792
- onInvalid?: react.FormEventHandler<HTMLDivElement> | undefined;
5793
- onInvalidCapture?: react.FormEventHandler<HTMLDivElement> | undefined;
6082
+ onBeforeInputCapture?: react.InputEventHandler<HTMLDivElement> | undefined;
6083
+ onInput?: react.InputEventHandler<HTMLDivElement> | undefined;
6084
+ onInputCapture?: react.InputEventHandler<HTMLDivElement> | undefined;
6085
+ onReset?: react.ReactEventHandler<HTMLDivElement> | undefined;
6086
+ onResetCapture?: react.ReactEventHandler<HTMLDivElement> | undefined;
6087
+ onSubmit?: react.SubmitEventHandler<HTMLDivElement> | undefined;
6088
+ onSubmitCapture?: react.SubmitEventHandler<HTMLDivElement> | undefined;
6089
+ onInvalid?: react.ReactEventHandler<HTMLDivElement> | undefined;
6090
+ onInvalidCapture?: react.ReactEventHandler<HTMLDivElement> | undefined;
5794
6091
  onLoad?: react.ReactEventHandler<HTMLDivElement> | undefined;
5795
6092
  onLoadCapture?: react.ReactEventHandler<HTMLDivElement> | undefined;
5796
6093
  onError?: react.ReactEventHandler<HTMLDivElement> | undefined;
@@ -6061,18 +6358,18 @@ declare function ModalFooter({ className, children, ...props }: PartProps): reac
6061
6358
  onFocusCapture?: react.FocusEventHandler<HTMLDivElement> | undefined;
6062
6359
  onBlur?: react.FocusEventHandler<HTMLDivElement> | undefined;
6063
6360
  onBlurCapture?: react.FocusEventHandler<HTMLDivElement> | undefined;
6064
- onChange?: react.FormEventHandler<HTMLDivElement> | undefined;
6065
- onChangeCapture?: react.FormEventHandler<HTMLDivElement> | undefined;
6361
+ onChange?: react.ChangeEventHandler<HTMLDivElement, Element> | undefined;
6362
+ onChangeCapture?: react.ChangeEventHandler<HTMLDivElement, Element> | undefined;
6066
6363
  onBeforeInput?: react.InputEventHandler<HTMLDivElement> | undefined;
6067
- onBeforeInputCapture?: react.FormEventHandler<HTMLDivElement> | undefined;
6068
- onInput?: react.FormEventHandler<HTMLDivElement> | undefined;
6069
- onInputCapture?: react.FormEventHandler<HTMLDivElement> | undefined;
6070
- onReset?: react.FormEventHandler<HTMLDivElement> | undefined;
6071
- onResetCapture?: react.FormEventHandler<HTMLDivElement> | undefined;
6072
- onSubmit?: react.FormEventHandler<HTMLDivElement> | undefined;
6073
- onSubmitCapture?: react.FormEventHandler<HTMLDivElement> | undefined;
6074
- onInvalid?: react.FormEventHandler<HTMLDivElement> | undefined;
6075
- onInvalidCapture?: react.FormEventHandler<HTMLDivElement> | undefined;
6364
+ onBeforeInputCapture?: react.InputEventHandler<HTMLDivElement> | undefined;
6365
+ onInput?: react.InputEventHandler<HTMLDivElement> | undefined;
6366
+ onInputCapture?: react.InputEventHandler<HTMLDivElement> | undefined;
6367
+ onReset?: react.ReactEventHandler<HTMLDivElement> | undefined;
6368
+ onResetCapture?: react.ReactEventHandler<HTMLDivElement> | undefined;
6369
+ onSubmit?: react.SubmitEventHandler<HTMLDivElement> | undefined;
6370
+ onSubmitCapture?: react.SubmitEventHandler<HTMLDivElement> | undefined;
6371
+ onInvalid?: react.ReactEventHandler<HTMLDivElement> | undefined;
6372
+ onInvalidCapture?: react.ReactEventHandler<HTMLDivElement> | undefined;
6076
6373
  onLoad?: react.ReactEventHandler<HTMLDivElement> | undefined;
6077
6374
  onLoadCapture?: react.ReactEventHandler<HTMLDivElement> | undefined;
6078
6375
  onError?: react.ReactEventHandler<HTMLDivElement> | undefined;
@@ -6589,7 +6886,7 @@ type FormProps = WebComponentProps & {
6589
6886
  type BadgeProps = WebComponentProps & {
6590
6887
  variant?: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'danger';
6591
6888
  size?: 's' | 'm' | 'l';
6592
- badgeStyle?: 'dot' | 'number' | 'text' | 'outlined';
6889
+ type?: 'dot' | 'number' | 'text' | 'outlined';
6593
6890
  count?: number;
6594
6891
  maxCount?: number;
6595
6892
  disabled?: boolean;
@@ -6699,6 +6996,35 @@ type StatChange = {
6699
6996
  type: 'increase' | 'decrease';
6700
6997
  period?: string;
6701
6998
  };
6999
+ type ActivityHeatmapItem = {
7000
+ date: string;
7001
+ value: number;
7002
+ };
7003
+ type ActivityHeatmapCellDetail = {
7004
+ date: string;
7005
+ value: number;
7006
+ level: number;
7007
+ };
7008
+ type ActivityHeatmapProps = WebComponentProps & {
7009
+ data?: string | ActivityHeatmapItem[];
7010
+ endDate?: string;
7011
+ weeks?: number;
7012
+ weekStartsOn?: 0 | 1;
7013
+ size?: 's' | 'm' | 'l';
7014
+ locale?: string;
7015
+ colorScheme?: 'green' | 'primary';
7016
+ showLegend?: boolean;
7017
+ showMonthLabels?: boolean;
7018
+ showDayLabels?: boolean;
7019
+ legendLessLabel?: string;
7020
+ legendMoreLabel?: string;
7021
+ valueLabel?: string;
7022
+ maxValue?: number;
7023
+ footerText?: string;
7024
+ footerHref?: string;
7025
+ onCellClick?: DbEventHandler<ActivityHeatmapCellDetail>;
7026
+ onDbCellClick?: DbEventHandler<ActivityHeatmapCellDetail>;
7027
+ };
6702
7028
  type StatProps = WebComponentProps & {
6703
7029
  value?: string | number;
6704
7030
  label?: string;
@@ -7226,6 +7552,17 @@ type SidebarSection = {
7226
7552
  gap?: 'none' | 's' | 'm' | 'l';
7227
7553
  items: SidebarItem[];
7228
7554
  };
7555
+ type SidebarPanelMode = 'auto' | 'adjacent' | 'replace';
7556
+ type SidebarPanel = {
7557
+ id: string;
7558
+ title: string;
7559
+ description?: string;
7560
+ ariaLabel?: string;
7561
+ backLabel?: string;
7562
+ /** @deprecated 레이아웃 폭은 panelWidth만 사용합니다. */
7563
+ width?: number | string;
7564
+ sections: SidebarSection[];
7565
+ };
7229
7566
  type SidebarUserProfile = {
7230
7567
  name: string;
7231
7568
  email?: string;
@@ -7282,8 +7619,20 @@ type SidebarProps = WebComponentProps & {
7282
7619
  headerType?: 'default' | 'back';
7283
7620
  backLabel?: string;
7284
7621
  backHref?: string;
7622
+ /** 범용 Secondary Panel 목록입니다. openPanel id와 연결합니다. */
7623
+ panels?: SidebarPanel[] | string;
7624
+ /**
7625
+ * @deprecated panels를 사용하세요. settings 패널로 자동 변환됩니다.
7626
+ */
7285
7627
  settingsSections?: SidebarSection[] | string;
7628
+ /** 현재 열린 패널 id. 닫을 때는 main. */
7286
7629
  activePanel?: string;
7630
+ /** auto(기본) · adjacent · replace */
7631
+ panelMode?: SidebarPanelMode;
7632
+ /** Secondary Panel 기본 너비. 숫자(px) 또는 CSS length. */
7633
+ panelWidth?: number | string;
7634
+ /** panelMode=auto일 때 adjacent 전환 기준(px). 기본 1024. */
7635
+ panelBreakpoint?: number;
7287
7636
  size?: 's' | 'm' | 'l';
7288
7637
  /** 레이아웃 외형입니다. default(우측 보더만) · wrapper(패딩+radius+보더 카드형). */
7289
7638
  variant?: 'default' | 'wrapper';
@@ -7305,11 +7654,19 @@ type SidebarProps = WebComponentProps & {
7305
7654
  }>;
7306
7655
  onPanelChange?: DbEventHandler<{
7307
7656
  panel: string;
7308
- previous?: string;
7657
+ panelConfig?: SidebarPanel | null;
7658
+ mode?: Exclude<SidebarPanelMode, 'auto'>;
7309
7659
  }>;
7310
7660
  onDbPanelChange?: DbEventHandler<{
7311
7661
  panel: string;
7312
- previous?: string;
7662
+ panelConfig?: SidebarPanel | null;
7663
+ mode?: Exclude<SidebarPanelMode, 'auto'>;
7664
+ }>;
7665
+ onPanelModeChange?: DbEventHandler<{
7666
+ mode: Exclude<SidebarPanelMode, 'auto'>;
7667
+ }>;
7668
+ onDbPanelModeChange?: DbEventHandler<{
7669
+ mode: Exclude<SidebarPanelMode, 'auto'>;
7313
7670
  }>;
7314
7671
  onPromoCtaClick?: DbEventHandler<{
7315
7672
  banner: SidebarPromoBanner;
@@ -7461,7 +7818,7 @@ type ProgressStepProps = WebComponentProps & {
7461
7818
  };
7462
7819
  type ToastProps = WebComponentProps & {
7463
7820
  toastId?: string;
7464
- status?: 'info' | 'success' | 'warning' | 'error';
7821
+ variant?: 'default' | 'info' | 'success' | 'warning' | 'danger';
7465
7822
  title?: string;
7466
7823
  description?: string;
7467
7824
  duration?: number;
@@ -7673,7 +8030,7 @@ type AvatarProps = WebComponentProps & {
7673
8030
  badge?: number;
7674
8031
  badgeMaxCount?: number;
7675
8032
  badgeVariant?: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'danger';
7676
- badgeStyle?: 'dot' | 'number' | 'text' | 'outlined';
8033
+ badgeType?: 'dot' | 'number' | 'text' | 'outlined';
7677
8034
  badgeText?: string;
7678
8035
  onClick?: DbEventHandler;
7679
8036
  onDbClick?: DbEventHandler;
@@ -9403,16 +9760,6 @@ type CursorFollowerProps = WebComponentProps & {
9403
9760
  hideNativeCursor?: boolean;
9404
9761
  showIcon?: boolean;
9405
9762
  };
9406
- type LottieProps = WebComponentProps & {
9407
- src?: string;
9408
- animationData?: object | string;
9409
- loop?: boolean;
9410
- autoplay?: boolean;
9411
- speed?: number;
9412
- width?: string | number;
9413
- height?: string | number;
9414
- renderer?: 'svg' | 'canvas' | 'html';
9415
- };
9416
9763
  type SelectProps = SelectionProps & {
9417
9764
  showClearButton?: boolean;
9418
9765
  };
@@ -9548,7 +9895,7 @@ type ChatTypingProps = WebComponentProps & {
9548
9895
  };
9549
9896
  type ChatWidgetProps = WebComponentProps & {
9550
9897
  open?: boolean;
9551
- view?: 'home' | 'messages' | 'conversation' | 'help';
9898
+ view?: 'home' | 'messages' | 'conversation' | 'help' | 'article';
9552
9899
  position?: 'bottom-right' | 'bottom-left';
9553
9900
  agentName?: string;
9554
9901
  agentAvatar?: string;
@@ -9561,12 +9908,11 @@ type ChatWidgetProps = WebComponentProps & {
9561
9908
  accent?: string;
9562
9909
  orbVariant?: 'aurora' | 'ocean' | 'emerald' | 'violet' | 'mono';
9563
9910
  launcherLabel?: string;
9564
- searchEnabled?: boolean;
9565
9911
  messages?: DbChatWidgetMessage[];
9566
9912
  conversations?: DbChatWidgetConversation[];
9567
- menuItems?: DbChatSuggestion[];
9913
+ menuItems?: DbChatWidgetMenuItem[];
9568
9914
  quickReplies?: DbChatSuggestion[];
9569
- articles?: DbChatSuggestion[];
9915
+ articles?: DbChatWidgetArticle[];
9570
9916
  onOpen?: DbEventHandler;
9571
9917
  onClose?: DbEventHandler;
9572
9918
  onToggle?: DbEventHandler<{
@@ -9581,6 +9927,7 @@ type ChatWidgetProps = WebComponentProps & {
9581
9927
  onMenuSelect?: DbEventHandler<{
9582
9928
  id: string;
9583
9929
  value: string;
9930
+ action?: string;
9584
9931
  }>;
9585
9932
  onQuickReply?: DbEventHandler<{
9586
9933
  id: string;
@@ -9597,6 +9944,7 @@ type ChatWidgetProps = WebComponentProps & {
9597
9944
  action: string;
9598
9945
  text: string;
9599
9946
  }>;
9947
+ onStartChat?: DbEventHandler;
9600
9948
  };
9601
9949
  declare const ChatOrb: react.ForwardRefExoticComponent<Omit<ChatOrbProps, "ref"> & react.RefAttributes<HTMLElement>>;
9602
9950
  declare const ChatWelcome: react.ForwardRefExoticComponent<Omit<ChatWelcomeProps, "ref"> & react.RefAttributes<HTMLElement>>;
@@ -9713,6 +10061,7 @@ declare const Share: react.ForwardRefExoticComponent<Omit<ShareProps, "ref"> & r
9713
10061
  declare const TopBanner: react.ForwardRefExoticComponent<Omit<TopBannerProps, "ref"> & react.RefAttributes<HTMLElement>>;
9714
10062
  declare const CookieBanner: react.ForwardRefExoticComponent<Omit<CookieBannerProps, "ref"> & react.RefAttributes<HTMLElement>>;
9715
10063
  declare const Stat: react.ForwardRefExoticComponent<Omit<StatProps, "ref"> & react.RefAttributes<HTMLElement>>;
10064
+ declare const ActivityHeatmap: react.ForwardRefExoticComponent<Omit<ActivityHeatmapProps, "ref"> & react.RefAttributes<HTMLElement>>;
9716
10065
  declare const Image: react.ForwardRefExoticComponent<Omit<ImageProps, "ref"> & react.RefAttributes<HTMLElement>>;
9717
10066
  declare const ImagePlaceholder: react.ForwardRefExoticComponent<Omit<ImagePlaceholderProps, "ref"> & react.RefAttributes<HTMLElement>>;
9718
10067
  declare const ImageList: react.ForwardRefExoticComponent<Omit<ImageListProps, "ref"> & react.RefAttributes<HTMLElement>>;
@@ -9800,7 +10149,6 @@ type GridBackgroundProps = WebComponentProps & {
9800
10149
  };
9801
10150
  declare const GridBackground: react.ForwardRefExoticComponent<Omit<GridBackgroundProps, "ref"> & react.RefAttributes<HTMLElement>>;
9802
10151
  declare const CursorFollower: react.ForwardRefExoticComponent<Omit<CursorFollowerProps, "ref"> & react.RefAttributes<HTMLElement>>;
9803
- declare const Lottie: react.ForwardRefExoticComponent<Omit<LottieProps, "ref"> & react.RefAttributes<HTMLElement>>;
9804
10152
  declare const PageHeader: react.ForwardRefExoticComponent<Omit<PageHeaderProps, "ref"> & react.RefAttributes<HTMLElement>>;
9805
10153
  declare const Section: react.ForwardRefExoticComponent<Omit<SectionProps, "ref"> & react.RefAttributes<HTMLElement>>;
9806
10154
  declare const FloatingActionButton: react.ForwardRefExoticComponent<Omit<FloatingActionButtonProps, "ref"> & react.RefAttributes<HTMLElement>>;
@@ -9814,5 +10162,5 @@ declare const DatePicker: react.ForwardRefExoticComponent<Omit<DatePickerProps,
9814
10162
  declare const TimePicker: react.ForwardRefExoticComponent<Omit<TimePickerProps, "ref"> & react.RefAttributes<HTMLElement>>;
9815
10163
  declare const Calendar: react.ForwardRefExoticComponent<Omit<CalendarProps, "ref"> & react.RefAttributes<HTMLElement>>;
9816
10164
 
9817
- export { Accordion, AdBanner, AiChat, AiChatList, Alert, AnimationBackground, AnimationText, AppBadge, AudioPlayer, Avatar, Backdrop, Badge, Banner, BottomNavigation, BottomSheet, Breadcrumbs, Button, Calendar, Card, Carousel, ChatComposer, ChatList, ChatMessage, ChatOrb, ChatRoom, ChatSuggestions, ChatTyping, ChatWelcome, ChatWidget, Checkbox, Chip, CodeBlock, ColorPicker, ColorSwatch, Confirm, Container, ContextMenu, CookieBanner, Countdown, CursorFollower, DatePicker, Divider, DownloadProgress, Drawer, Dropdown, Dropzone, EmailVerify, EmptyState, FileUploader, FloatingActionButton, Footer, Form, Gantt, Gradient, Grid, GridBackground, GridItem, Image, ImageList, ImagePlaceholder, Indicator, Input, Kanban, Label, Lightbox, List, Logo, Lottie, MarkdownEditor, Marquee, Masonry, MenuItem, Modal, ModalBody, ModalFooter, ModalHeader, Navbar, OnboardingModal, OtpInput, PageHeader, Pagination, PhoneVerify, Popover, Progress, ProgressStep, Progressbar, Radio, RandomGradient, RangeSlider, Rating, Reorder, ResizablePanels, ScrollArea, SearchBar, Section, SectionAppDownload, SectionContact, SectionCta, SectionFaq, SectionFeature, SectionFeatureGrid, SectionHero, SectionLogoCloud, SectionPricing, SectionStats, SectionTestimonials, SegmentControl, Select, Share, Sidebar, Signature, Skeleton, Spinner, SplitView, Stack, Stat, Stepper, Table, Tabs, Testimonial, Textarea, TimePicker, Timeline, Toast, Toggle, Toolbar, Tooltip, TopBanner, Tutorial, TwoFactor, VideoPlayer, YouTubePlayer, useContextMenu };
9818
- export type { AccordionItemConfig, AccordionProps, AdBannerProps, AiChatListProps, AiChatProps, AlertAction, AlertProps, AnimationBackgroundProps, AnimationTextProps, AppBadgeProps, AudioPlayerProps, AvatarProps, BackdropProps, BadgeProps, BannerAction, BannerProps, BottomNavigationItem, BottomNavigationProps, BottomSheetProps, BreadcrumbItemConfig, BreadcrumbMenuItemConfig, BreadcrumbsProps, ButtonProps, CalendarEvent, CalendarProps, CardProps, CarouselItem, CarouselProps, ChatComposerProps, ChatListProps, ChatMessageProps, ChatOrbProps, ChatRoomProps, ChatSuggestionsProps, ChatTypingProps, ChatWelcomeProps, ChatWidgetProps, ChipProps, CodeBlockItem, CodeBlockProps, ColorPickerProps, ColorSwatchItem, ColorSwatchProps, ConfirmProps, ContextMenuItemConfig, ContextMenuProps, CookieBannerProps, CountdownProps, CursorFollowerProps, DatePickerProps, DbChatSuggestion, DbChatTool, DbChatWidgetConversation, DbChatWidgetMessage, DbEventHandler, DividerProps, DownloadProgressProps, DrawerProps, DropdownItemConfig, DropdownProps, DropzoneProps, EmailVerifyProps, EmptyStateProps, FileUploaderProps, FloatingActionButtonProps, FooterCompanyInfo, FooterFamilySite, FooterLink, FooterLinkColumn, FooterProps, FooterSocialLink, FormFieldData, FormProps, GanttAssignee, GanttGroup, GanttItem, GanttProps, GanttRow, GradientColor, GradientProps, GradientScheme, GradientTone, GridBackgroundProps, ImageListItem, ImageListProps, ImagePlaceholderProps, ImageProps, IndicatorProps, InputProps, KanbanAssignee, KanbanCard, KanbanColumn, KanbanProps, KanbanTag, LabelProps, LightboxImage, LightboxProps, ListItemConfig, ListProps, LogoProps, LottieProps, MarkdownEditorProps, MarqueeImageItem, MarqueeProps, MasonryItem, MasonryProps, MenuItemChildConfig, MenuItemProps, ModalProps, ModalSegmentItem, ModalTabItem, NavbarItem, NavbarProps, NavbarUserProfile, OnboardingModalProps, OnboardingStep, OtpInputProps, PageHeaderProps, PageHeaderTabItem, PaginationProps, PhoneVerifyProps, PopoverProps, ProgressProps, ProgressStepItem, ProgressStepProps, RadioProps, RandomGradientProps, RangeSliderProps, RatingProps, ReorderItem, ReorderProps, ResizablePanelsProps, ScrollAreaProps, SearchBarProps, SectionAppDownloadProps, SectionAppDownloadStore, SectionBlockBadge, SectionContactAction, SectionContactProps, SectionCtaButton, SectionCtaProps, SectionFaqItem, SectionFaqProps, SectionFeatureAction, SectionFeatureBadge, SectionFeatureGridItem, SectionFeatureGridProps, SectionFeatureProps, SectionHeroButton, SectionHeroProps, SectionLogoCloudItem, SectionLogoCloudProps, SectionPricingCta, SectionPricingPlan, SectionPricingProps, SectionProps, SectionStatItem, SectionStatsProps, SectionTestimonialItem, SectionTestimonialsProps, SegmentControlProps, SelectProps, SelectionProps, SharePlatform, ShareProps, SidebarItem, SidebarProject, SidebarPromoBanner, SidebarProps, SidebarSection, SidebarUpdateBanner, SidebarUserProfile, SignatureProps, SkeletonProps, SpinnerProps, SplitViewProps, StatChange, StatProps, StepperProps, TabItemConfig, TableColumn, TableProps, TabsProps, TestimonialProps, TextareaProps, TimePickerProps, TimelineItem, TimelineProps, ToastProps, ToggleProps, TooltipProps, TopBannerProps, TutorialProps, TutorialStep, TwoFactorProps, UseContextMenuReturn, VideoPlayerProps, WebComponentProps, YouTubePlayerProps };
10165
+ export { Accordion, ActivityHeatmap, AdBanner, AiChat, AiChatList, Alert, AnimationBackground, AnimationText, AppBadge, AudioPlayer, Avatar, Backdrop, Badge, Banner, BottomNavigation, BottomSheet, Breadcrumbs, Button, Calendar, Card, Carousel, ChatComposer, ChatList, ChatMessage, ChatOrb, ChatRoom, ChatSuggestions, ChatTyping, ChatWelcome, ChatWidget, Checkbox, Chip, CodeBlock, ColorPicker, ColorSwatch, Confirm, Container, ContextMenu, CookieBanner, Countdown, CursorFollower, DatePicker, Divider, DownloadProgress, Drawer, Dropdown, Dropzone, EmailVerify, EmptyState, FileUploader, FloatingActionButton, Footer, Form, Gantt, Gradient, Grid, GridBackground, GridItem, Image, ImageList, ImagePlaceholder, Indicator, Input, Kanban, Label, Lightbox, List, Logo, MarkdownEditor, Marquee, Masonry, MenuItem, Modal, ModalBody, ModalFooter, ModalHeader, Navbar, OnboardingModal, OtpInput, PageHeader, Pagination, PhoneVerify, Popover, Progress, ProgressStep, Progressbar, Radio, RandomGradient, RangeSlider, Rating, Reorder, ResizablePanels, ScrollArea, SearchBar, Section, SectionAppDownload, SectionContact, SectionCta, SectionFaq, SectionFeature, SectionFeatureGrid, SectionHero, SectionLogoCloud, SectionPricing, SectionStats, SectionTestimonials, SegmentControl, Select, Share, Sidebar, Signature, Skeleton, Spinner, SplitView, Stack, Stat, Stepper, Table, Tabs, Testimonial, Textarea, TimePicker, Timeline, Toast, Toggle, Toolbar, Tooltip, TopBanner, Tutorial, TwoFactor, VideoPlayer, YouTubePlayer, useContextMenu };
10166
+ export type { AccordionItemConfig, AccordionProps, ActivityHeatmapCellDetail, ActivityHeatmapItem, ActivityHeatmapProps, AdBannerProps, AiChatListProps, AiChatProps, AlertAction, AlertProps, AnimationBackgroundProps, AnimationTextProps, AppBadgeProps, AudioPlayerProps, AvatarProps, BackdropProps, BadgeProps, BannerAction, BannerProps, BottomNavigationItem, BottomNavigationProps, BottomSheetProps, BreadcrumbItemConfig, BreadcrumbMenuItemConfig, BreadcrumbsProps, ButtonProps, CalendarEvent, CalendarProps, CardProps, CarouselItem, CarouselProps, ChatComposerProps, ChatListProps, ChatMessageProps, ChatOrbProps, ChatRoomProps, ChatSuggestionsProps, ChatTypingProps, ChatWelcomeProps, ChatWidgetProps, ChipProps, CodeBlockItem, CodeBlockProps, ColorPickerProps, ColorSwatchItem, ColorSwatchProps, ConfirmProps, ContextMenuItemConfig, ContextMenuProps, CookieBannerProps, CountdownProps, CursorFollowerProps, DatePickerProps, DbChatSuggestion, DbChatTool, DbChatWidgetArticle, DbChatWidgetConversation, DbChatWidgetMenuAction, DbChatWidgetMenuItem, DbChatWidgetMessage, DbEventHandler, DividerProps, DownloadProgressProps, DrawerProps, DropdownItemConfig, DropdownProps, DropzoneProps, EmailVerifyProps, EmptyStateProps, FileUploaderProps, FloatingActionButtonProps, FooterCompanyInfo, FooterFamilySite, FooterLink, FooterLinkColumn, FooterProps, FooterSocialLink, FormFieldData, FormProps, GanttAssignee, GanttGroup, GanttItem, GanttProps, GanttRow, GradientColor, GradientProps, GradientScheme, GradientTone, GridBackgroundProps, ImageListItem, ImageListProps, ImagePlaceholderProps, ImageProps, IndicatorProps, InputProps, KanbanAssignee, KanbanCard, KanbanColumn, KanbanProps, KanbanTag, LabelProps, LightboxImage, LightboxProps, ListItemConfig, ListProps, LogoProps, MarkdownEditorProps, MarqueeImageItem, MarqueeProps, MasonryItem, MasonryProps, MenuItemChildConfig, MenuItemProps, ModalProps, ModalSegmentItem, ModalTabItem, NavbarItem, NavbarProps, NavbarUserProfile, OnboardingModalProps, OnboardingStep, OtpInputProps, PageHeaderProps, PageHeaderTabItem, PaginationProps, PhoneVerifyProps, PopoverProps, ProgressProps, ProgressStepItem, ProgressStepProps, RadioProps, RandomGradientProps, RangeSliderProps, RatingProps, ReorderItem, ReorderProps, ResizablePanelsProps, ScrollAreaProps, SearchBarProps, SectionAppDownloadProps, SectionAppDownloadStore, SectionBlockBadge, SectionContactAction, SectionContactProps, SectionCtaButton, SectionCtaProps, SectionFaqItem, SectionFaqProps, SectionFeatureAction, SectionFeatureBadge, SectionFeatureGridItem, SectionFeatureGridProps, SectionFeatureProps, SectionHeroButton, SectionHeroProps, SectionLogoCloudItem, SectionLogoCloudProps, SectionPricingCta, SectionPricingPlan, SectionPricingProps, SectionProps, SectionStatItem, SectionStatsProps, SectionTestimonialItem, SectionTestimonialsProps, SegmentControlProps, SelectProps, SelectionProps, SharePlatform, ShareProps, SidebarItem, SidebarPanel, SidebarPanelMode, SidebarProject, SidebarPromoBanner, SidebarProps, SidebarSection, SidebarUpdateBanner, SidebarUserProfile, SignatureProps, SkeletonProps, SpinnerProps, SplitViewProps, StatChange, StatProps, StepperProps, TabItemConfig, TableColumn, TableProps, TabsProps, TestimonialProps, TextareaProps, TimePickerProps, TimelineItem, TimelineProps, ToastProps, ToggleProps, TooltipProps, TopBannerProps, TutorialProps, TutorialStep, TwoFactorProps, UseContextMenuReturn, VideoPlayerProps, WebComponentProps, YouTubePlayerProps };