@designbasekorea/ui-wc 0.8.0 → 0.8.2

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 (158) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/README.md +18 -0
  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-activity-heatmap.d.ts +38 -0
  6. package/dist/esm/components/db-activity-heatmap.js +1 -0
  7. package/dist/esm/components/db-animation-background.d.ts +2 -0
  8. package/dist/esm/components/db-animation-background.js +1 -1
  9. package/dist/esm/components/db-app-badge.d.ts +2 -0
  10. package/dist/esm/components/db-app-badge.js +1 -1
  11. package/dist/esm/components/db-audio-player.d.ts +4 -0
  12. package/dist/esm/components/db-audio-player.js +1 -1
  13. package/dist/esm/components/db-avatar.js +1 -1
  14. package/dist/esm/components/db-backdrop.d.ts +4 -0
  15. package/dist/esm/components/db-backdrop.js +1 -1
  16. package/dist/esm/components/db-badge.d.ts +2 -2
  17. package/dist/esm/components/db-badge.js +1 -1
  18. package/dist/esm/components/db-banner.d.ts +5 -0
  19. package/dist/esm/components/db-banner.js +1 -1
  20. package/dist/esm/components/db-bottom-navigation.js +1 -1
  21. package/dist/esm/components/db-bottom-sheet.d.ts +5 -0
  22. package/dist/esm/components/db-bottom-sheet.js +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 +3 -0
  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 +55 -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.js +1 -1
  112. package/dist/esm/components/db-testimonial.js +1 -1
  113. package/dist/esm/components/db-textarea.js +1 -1
  114. package/dist/esm/components/db-time-picker.d.ts +5 -2
  115. package/dist/esm/components/db-time-picker.js +1 -1
  116. package/dist/esm/components/db-timeline.js +1 -1
  117. package/dist/esm/components/db-toast.d.ts +8 -1
  118. package/dist/esm/components/db-toast.js +1 -1
  119. package/dist/esm/components/db-toggle.d.ts +2 -0
  120. package/dist/esm/components/db-toggle.js +1 -1
  121. package/dist/esm/components/db-tooltip.js +1 -1
  122. package/dist/esm/components/db-top-banner.js +1 -1
  123. package/dist/esm/components/db-tutorial.d.ts +1 -0
  124. package/dist/esm/components/db-tutorial.js +1 -1
  125. package/dist/esm/components/db-two-factor.d.ts +2 -2
  126. package/dist/esm/components/db-two-factor.js +1 -1
  127. package/dist/esm/components/db-video-player.d.ts +3 -0
  128. package/dist/esm/components/db-video-player.js +1 -1
  129. package/dist/esm/components/section-block-header-utils.js +1 -1
  130. package/dist/esm/core/a11y.d.ts +40 -0
  131. package/dist/esm/core/a11y.js +1 -0
  132. package/dist/esm/core/base-element.d.ts +41 -0
  133. package/dist/esm/core/base-element.js +1 -0
  134. package/dist/esm/core/dom.d.ts +35 -0
  135. package/dist/esm/core/dom.js +1 -0
  136. package/dist/esm/core/focus-trap.d.ts +41 -0
  137. package/dist/esm/core/focus-trap.js +1 -0
  138. package/dist/esm/core/i18n.d.ts +82 -0
  139. package/dist/esm/core/i18n.js +1 -0
  140. package/dist/esm/core/scroll-lock.d.ts +19 -0
  141. package/dist/esm/core/scroll-lock.js +1 -0
  142. package/dist/esm/core/uid.d.ts +23 -0
  143. package/dist/esm/core/uid.js +1 -0
  144. package/dist/esm/helpers/toast.d.ts +10 -10
  145. package/dist/esm/helpers/toast.js +1 -1
  146. package/dist/esm/index.d.ts +12 -3
  147. package/dist/esm/index.js +1 -1
  148. package/dist/esm/node_modules/@designbasekorea/ui-contracts/dist/components.js +1 -0
  149. package/dist/esm/node_modules/@designbasekorea/ui-contracts/dist/primitives.js +1 -0
  150. package/dist/index.cjs +1 -1
  151. package/dist/index.css +1 -1
  152. package/dist/index.d.ts +602 -59
  153. package/dist/index.esm.js +1 -1
  154. package/dist/react/index.cjs +1 -1
  155. package/dist/react/index.d.ts +495 -56
  156. package/dist/react/index.esm.js +1 -1
  157. package/package.json +12 -3
  158. /package/dist/chunks/{lottie-78a72482.js → lottie-3f885725.js} +0 -0
@@ -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;
@@ -202,6 +236,8 @@ declare global {
202
236
  }
203
237
 
204
238
  declare class DbBanner extends HTMLElement {
239
+ private clickHandler?;
240
+ private keydownHandler?;
205
241
  static get observedAttributes(): string[];
206
242
  connectedCallback(): void;
207
243
  attributeChangedCallback(): void;
@@ -211,6 +247,9 @@ declare class DbBanner extends HTMLElement {
211
247
  private resolveIconName;
212
248
  private createActionControl;
213
249
  private render;
250
+ private createCloseButton;
251
+ private handleClose;
252
+ private setupInteractivity;
214
253
  }
215
254
  declare global {
216
255
  interface HTMLElementTagNameMap {
@@ -219,6 +258,10 @@ declare global {
219
258
  }
220
259
 
221
260
  declare class DbSpinner extends HTMLElement {
261
+ /** 현재 그려진 스피너 타입 — 바뀔 때만 그래픽을 다시 만든다 */
262
+ private renderedType?;
263
+ private graphicEl?;
264
+ private labelEl?;
222
265
  static get observedAttributes(): string[];
223
266
  get type(): string;
224
267
  set type(value: string);
@@ -348,6 +391,7 @@ declare class DbModal extends HTMLElement {
348
391
  private segmentEl?;
349
392
  private contentEl?;
350
393
  private titleId;
394
+ private focusTrap?;
351
395
  private isMounted;
352
396
  private internalTabId;
353
397
  private internalSegment;
@@ -387,7 +431,16 @@ declare class DbModal extends HTMLElement {
387
431
  private exitTimerId;
388
432
  private syncVisibility;
389
433
  private syncOpenState;
434
+ /** 열릴 때 포커스를 패널 안으로 가둔다. 닫으면 직전 포커스 요소로 복원된다. */
435
+ private activateFocusTrap;
390
436
  private teardown;
437
+ /** 소비자가 `role="alertdialog"` 를 지정하지 않으면 dialog */
438
+ private dialogRole;
439
+ /**
440
+ * 본문 설명을 대화상자에 연결한다.
441
+ * `describedby` 로 id 를 직접 주거나, 없으면 본문 컨테이너를 자동으로 가리킨다.
442
+ */
443
+ private syncDescribedBy;
391
444
  private close;
392
445
  private handleDocumentKeyDown;
393
446
  }
@@ -667,6 +720,14 @@ declare class DbSelect extends HTMLElement {
667
720
  private getFilteredOptions;
668
721
  private selectOption;
669
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;
670
731
  private syncState;
671
732
  private syncOpenState;
672
733
  private syncTrigger;
@@ -719,6 +780,7 @@ declare class DbRadio extends HTMLElement {
719
780
  private dot?;
720
781
  private labelEl?;
721
782
  private built;
783
+ private userInteracted;
722
784
  get checked(): boolean;
723
785
  set checked(value: boolean);
724
786
  get disabled(): boolean;
@@ -939,6 +1001,8 @@ declare global {
939
1001
  declare class DbBackdrop extends HTMLElement {
940
1002
  static get observedAttributes(): string[];
941
1003
  private portal?;
1004
+ /** 참조 카운트 스크롤락을 이 인스턴스가 잡고 있는지 (PERF-GLOBAL-STATE) */
1005
+ private scrollLocked;
942
1006
  private keyHandler;
943
1007
  get open(): boolean;
944
1008
  set open(value: boolean);
@@ -952,6 +1016,8 @@ declare class DbBackdrop extends HTMLElement {
952
1016
  private detachListeners;
953
1017
  private handlePortalClick;
954
1018
  private render;
1019
+ /** 잠근 적이 있을 때만 푼다 — 참조 카운트가 음수로 새지 않도록 */
1020
+ private releaseScrollLock;
955
1021
  }
956
1022
  declare global {
957
1023
  interface HTMLElementTagNameMap {
@@ -1025,15 +1091,19 @@ declare class DbDrawer extends HTMLElement {
1025
1091
  private root?;
1026
1092
  private overlay?;
1027
1093
  private container?;
1094
+ private focusTrap?;
1028
1095
  private contentEl?;
1029
1096
  private isMounted;
1030
1097
  private isActive;
1031
1098
  private enterFrame?;
1032
1099
  private exitTimer?;
1033
- private previousActiveElement;
1100
+ /** 참조 카운트 스크롤락을 이 인스턴스가 잡고 있는지 (PERF-GLOBAL-STATE) */
1101
+ private scrollLocked;
1034
1102
  private keyHandler;
1035
1103
  connectedCallback(): void;
1036
1104
  disconnectedCallback(): void;
1105
+ /** 잠근 적이 있을 때만 푼다 — 카운트가 음수로 새지 않도록 */
1106
+ private releaseScrollLock;
1037
1107
  attributeChangedCallback(name: string): void;
1038
1108
  private isOpenRequested;
1039
1109
  private clearTimers;
@@ -1057,14 +1127,21 @@ declare class DbToast extends HTMLElement {
1057
1127
  private progressInterval;
1058
1128
  private closeTimerId;
1059
1129
  private closed;
1130
+ private readonly cleanups;
1131
+ /** 일시정지 시점까지 소비한 시간 (ms) */
1132
+ private elapsedBeforePause;
1133
+ private runStartedAt;
1134
+ private paused;
1060
1135
  connectedCallback(): void;
1061
1136
  disconnectedCallback(): void;
1137
+ private pauseTimers;
1138
+ private resumeTimers;
1062
1139
  attributeChangedCallback(name: string): void;
1063
1140
  private clearTimers;
1064
1141
  private startTimers;
1065
1142
  /** 토스트를 닫고(애니메이션 포함) auto-remove 설정 시 DOM에서 제거합니다. */
1066
1143
  close(): void;
1067
- private iconForStatus;
1144
+ private iconForVariant;
1068
1145
  private render;
1069
1146
  }
1070
1147
  declare global {
@@ -1077,8 +1154,13 @@ declare class DbConfirm extends HTMLElement {
1077
1154
  static get observedAttributes(): string[];
1078
1155
  private root;
1079
1156
  private keyHandler;
1157
+ private focusTrap?;
1158
+ /** 참조 카운트 스크롤락을 이 인스턴스가 잡고 있는지 (PERF-GLOBAL-STATE) */
1159
+ private scrollLocked;
1080
1160
  connectedCallback(): void;
1081
1161
  disconnectedCallback(): void;
1162
+ /** 트랩 해제(=포커스 복원)와 스크롤락 반환을 한 곳에서 처리한다 */
1163
+ private teardownOverlay;
1082
1164
  attributeChangedCallback(): void;
1083
1165
  private isOpen;
1084
1166
  private attachEscape;
@@ -1370,6 +1452,33 @@ declare global {
1370
1452
  }
1371
1453
  }
1372
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
+
1373
1482
  declare class DbImage extends HTMLElement {
1374
1483
  private imageState;
1375
1484
  private currentSrc;
@@ -1438,6 +1547,10 @@ declare global {
1438
1547
 
1439
1548
  declare class DbLightbox extends HTMLElement {
1440
1549
  private portalEl;
1550
+ private focusTrap?;
1551
+ /** 참조 카운트 스크롤락을 이 인스턴스가 잡고 있는지 (PERF-GLOBAL-STATE) */
1552
+ private scrollLocked;
1553
+ private readonly titleId;
1441
1554
  private imageEl;
1442
1555
  private loadingEl;
1443
1556
  private errorEl;
@@ -1545,8 +1658,8 @@ interface DbNavbarUserProfile {
1545
1658
  email?: string;
1546
1659
  avatar?: string;
1547
1660
  badge?: number;
1548
- badgeVariant?: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'danger';
1549
- badgeStyle?: 'dot' | 'number' | 'text' | 'outlined';
1661
+ badgeVariant?: BadgeVariant;
1662
+ badgeType?: BadgeType;
1550
1663
  badgeText?: string;
1551
1664
  }
1552
1665
  declare class DbNavbar extends HTMLElement {
@@ -1679,7 +1792,7 @@ interface DbSidebarItem {
1679
1792
  selected?: boolean;
1680
1793
  /** 프로필 메뉴에서 이 항목 앞에 구분선을 표시합니다. */
1681
1794
  dividerBefore?: boolean;
1682
- /** 클릭 시 이동할 사이드바 패널 id (예: settings) */
1795
+ /** 클릭 시 이동할 사이드바 패널 id (예: authentication, settings) */
1683
1796
  openPanel?: string;
1684
1797
  children?: DbSidebarItem[];
1685
1798
  }
@@ -1690,6 +1803,20 @@ interface DbSidebarSection {
1690
1803
  gap?: 'none' | 's' | 'm' | 'l';
1691
1804
  items: DbSidebarItem[];
1692
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
+ }
1693
1820
  interface DbSidebarUserProfile {
1694
1821
  name: string;
1695
1822
  email?: string;
@@ -1713,6 +1840,15 @@ interface DbSidebarPromoBanner {
1713
1840
  ctaHref?: string;
1714
1841
  icon?: string;
1715
1842
  }
1843
+ interface DbSidebarUpdateBanner {
1844
+ title: string;
1845
+ description?: string;
1846
+ icon?: string;
1847
+ ctaLabel?: string;
1848
+ ctaHref?: string;
1849
+ /** db-banner variant. 기본 outline(흰 배경+보더). */
1850
+ variant?: 'primary' | 'secondary' | 'tertiary' | 'outline';
1851
+ }
1716
1852
  declare class DbSidebar extends HTMLElement {
1717
1853
  private expandedItems;
1718
1854
  private userMenuOpen;
@@ -1722,6 +1858,9 @@ declare class DbSidebar extends HTMLElement {
1722
1858
  private flyoutCloseTimer;
1723
1859
  private userFlyoutCloseTimer;
1724
1860
  private outsideHandler;
1861
+ private panelMediaQuery;
1862
+ private panelMediaHandler;
1863
+ private resolvedPanelMode;
1725
1864
  /**
1726
1865
  * db-sidebar는 Light DOM으로 렌더링하므로 이름 있는 자식 요소를 직접 보존하고
1727
1866
  * 해당 내비게이션 영역으로 이동해 슬롯처럼 투영합니다.
@@ -1732,7 +1871,9 @@ declare class DbSidebar extends HTMLElement {
1732
1871
  static get observedAttributes(): string[];
1733
1872
  connectedCallback(): void;
1734
1873
  disconnectedCallback(): void;
1735
- attributeChangedCallback(name: string): void;
1874
+ attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
1875
+ private bindPanelMediaQuery;
1876
+ private unbindPanelMediaQuery;
1736
1877
  private seedExpanded;
1737
1878
  get items(): DbSidebarItem[];
1738
1879
  set items(value: DbSidebarItem[] | string);
@@ -1762,18 +1903,35 @@ declare class DbSidebar extends HTMLElement {
1762
1903
  set bottomSections(value: DbSidebarSection[] | string);
1763
1904
  get promoBanner(): DbSidebarPromoBanner | null;
1764
1905
  set promoBanner(value: DbSidebarPromoBanner | string | null);
1906
+ get updateBanner(): DbSidebarUpdateBanner | null;
1907
+ set updateBanner(value: DbSidebarUpdateBanner | string | null);
1765
1908
  get headerType(): 'default' | 'back';
1766
1909
  set headerType(value: 'default' | 'back');
1767
1910
  get backLabel(): string;
1768
1911
  set backLabel(value: string);
1769
1912
  get backHref(): string;
1770
1913
  set backHref(value: string);
1914
+ get panels(): DbSidebarPanel[];
1915
+ set panels(value: DbSidebarPanel[] | string);
1916
+ /**
1917
+ * @deprecated panels를 사용하세요. 기존 settings-sections는 settings 패널로 자동 변환됩니다.
1918
+ */
1771
1919
  get settingsSections(): DbSidebarSection[];
1772
1920
  set settingsSections(value: DbSidebarSection[] | string);
1773
1921
  get activePanel(): string;
1774
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;
1775
1930
  private parseSettingsSections;
1776
- private hasSettingsPanel;
1931
+ private parsePanels;
1932
+ private hasPanels;
1933
+ private findPanel;
1934
+ private getActivePanelConfig;
1777
1935
  private parseSections;
1778
1936
  private parseUserMenuItems;
1779
1937
  private parseUserProfile;
@@ -1781,6 +1939,7 @@ declare class DbSidebar extends HTMLElement {
1781
1939
  private parseBottomItems;
1782
1940
  private parseBottomSections;
1783
1941
  private parsePromoBanner;
1942
+ private parseUpdateBanner;
1784
1943
  private getSelectedProject;
1785
1944
  private bindOutsideClick;
1786
1945
  private closeOverlayMenus;
@@ -1793,7 +1952,6 @@ declare class DbSidebar extends HTMLElement {
1793
1952
  private setUserFlyout;
1794
1953
  private scheduleUserFlyoutClose;
1795
1954
  private syncHostClasses;
1796
- private syncActivePanelTrack;
1797
1955
  private navigateToPanel;
1798
1956
  private dispatchItemClick;
1799
1957
  private dispatchUserMenuItemClick;
@@ -1801,6 +1959,7 @@ declare class DbSidebar extends HTMLElement {
1801
1959
  private dispatchProjectChange;
1802
1960
  private dispatchProjectManage;
1803
1961
  private dispatchPromoCtaClick;
1962
+ private dispatchUpdateCtaClick;
1804
1963
  private createProjectAvatar;
1805
1964
  private createProjectEmptyMark;
1806
1965
  private createProjectBadge;
@@ -1811,9 +1970,12 @@ declare class DbSidebar extends HTMLElement {
1811
1970
  private renderNav;
1812
1971
  private renderBottomNav;
1813
1972
  private createUserDropdown;
1973
+ private createUpdateBanner;
1814
1974
  private createPromoBanner;
1815
- private createHeader;
1975
+ private createMainHeader;
1976
+ private createPanelHeader;
1816
1977
  private createNavWrapper;
1978
+ private createFooter;
1817
1979
  private render;
1818
1980
  }
1819
1981
  declare global {
@@ -1904,6 +2066,81 @@ declare global {
1904
2066
  }
1905
2067
  }
1906
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
+
1907
2144
  /**
1908
2145
  * SegmentControl Web Component
1909
2146
  * packages/ui SegmentControl.tsx와 DOM·동작·스타일 1:1 동기화
@@ -2218,6 +2455,7 @@ declare global {
2218
2455
  }
2219
2456
 
2220
2457
  declare class DbFloatingActionButton extends HTMLElement {
2458
+ private detachKeyActivation?;
2221
2459
  static get observedAttributes(): string[];
2222
2460
  get size(): string;
2223
2461
  set size(value: string);
@@ -2248,6 +2486,9 @@ declare class DbBottomSheet extends HTMLElement {
2248
2486
  private grabBar?;
2249
2487
  private contentEl?;
2250
2488
  private sheetHeightPercent;
2489
+ private focusTrap?;
2490
+ /** 참조 카운트 스크롤락을 이 인스턴스가 잡고 있는지 (PERF-GLOBAL-STATE) */
2491
+ private scrollLocked;
2251
2492
  private isDragging;
2252
2493
  private isVisible;
2253
2494
  private isMounted;
@@ -2261,6 +2502,8 @@ declare class DbBottomSheet extends HTMLElement {
2261
2502
  private shouldMountPortal;
2262
2503
  connectedCallback(): void;
2263
2504
  disconnectedCallback(): void;
2505
+ /** 트랩 해제(=포커스 복원)와 스크롤락 반환 */
2506
+ private teardownOverlay;
2264
2507
  attributeChangedCallback(name: string): void;
2265
2508
  private isOpenRequested;
2266
2509
  private clearTimers;
@@ -2347,6 +2590,9 @@ type OnboardingStep$1 = {
2347
2590
  declare class DbOnboardingModal extends HTMLElement {
2348
2591
  static get observedAttributes(): string[];
2349
2592
  private root?;
2593
+ private focusTrap?;
2594
+ /** 참조 카운트 스크롤락을 이 인스턴스가 잡고 있는지 (PERF-GLOBAL-STATE) */
2595
+ private scrollLocked;
2350
2596
  private internalStep;
2351
2597
  private keyHandler;
2352
2598
  private isMounted;
@@ -2473,6 +2719,9 @@ declare class DbDatePicker extends HTMLElement {
2473
2719
  private boundDocumentMouseDown;
2474
2720
  connectedCallback(): void;
2475
2721
  disconnectedCallback(): void;
2722
+ /** 열린 달력은 Escape 로 닫히고 포커스는 트리거로 돌아간다 (A11Y-ESCAPE) */
2723
+ private handleDocumentKeyDown;
2724
+ private boundDocumentKeyDown;
2476
2725
  attributeChangedCallback(name: string): void;
2477
2726
  get value(): string;
2478
2727
  set value(value: string);
@@ -2532,8 +2781,7 @@ declare global {
2532
2781
  }
2533
2782
  }
2534
2783
 
2535
- declare const FORMATS: readonly ["12h", "24h", "12h-with-seconds", "24h-with-seconds"];
2536
- type TimeFormat = (typeof FORMATS)[number];
2784
+ type TimeFormat = (typeof TIME_PICKER_FORMATS)[number];
2537
2785
  declare class DbTimePicker extends HTMLElement {
2538
2786
  static get observedAttributes(): string[];
2539
2787
  private built;
@@ -2554,6 +2802,9 @@ declare class DbTimePicker extends HTMLElement {
2554
2802
  private boundDocumentMouseDown;
2555
2803
  connectedCallback(): void;
2556
2804
  disconnectedCallback(): void;
2805
+ /** 열린 드롭다운은 Escape 로 닫히고 포커스는 트리거로 돌아간다 (A11Y-ESCAPE) */
2806
+ private handleDocumentKeyDown;
2807
+ private boundDocumentKeyDown;
2557
2808
  attributeChangedCallback(name: string): void;
2558
2809
  get value(): string;
2559
2810
  set value(value: string);
@@ -3167,8 +3418,17 @@ declare class DbResizablePanels extends HTMLElement {
3167
3418
  private startSize;
3168
3419
  private startPos;
3169
3420
  private currentSize;
3421
+ /** 포인터 이동을 프레임당 1회로 병합하기 위한 핸들 (PERF-RAF) */
3422
+ private rafId;
3423
+ private pendingPoint;
3170
3424
  static get observedAttributes(): string[];
3171
3425
  connectedCallback(): void;
3426
+ /**
3427
+ * 드래그 중에 엘리먼트가 DOM 에서 제거되면 mouseup/touchend 가 오지 않아
3428
+ * document 리스너가 영원히 남는다. 여기서 확실히 걷어낸다. (PERF-CLEANUP)
3429
+ */
3430
+ disconnectedCallback(): void;
3431
+ private detachDragListeners;
3172
3432
  attributeChangedCallback(): void;
3173
3433
  private getBool;
3174
3434
  private getNumber;
@@ -3182,6 +3442,11 @@ declare class DbResizablePanels extends HTMLElement {
3182
3442
  private onTouchStart;
3183
3443
  private startResize;
3184
3444
  private onMouseMove;
3445
+ /**
3446
+ * pointer 이동마다 레이아웃을 다시 계산하면 프레임을 넘겨 버린다.
3447
+ * 마지막 좌표만 남겨 두고 다음 프레임에 한 번만 반영한다.
3448
+ */
3449
+ private scheduleResize;
3185
3450
  private onTouchMove;
3186
3451
  private applyResize;
3187
3452
  private onMouseUp;
@@ -3234,6 +3499,9 @@ declare class DbVideoPlayer extends HTMLElement {
3234
3499
  private getPlaylist;
3235
3500
  private getCurrentSrc;
3236
3501
  private formatTime;
3502
+ /**
3503
+ * 아이콘만 있는 컨트롤 버튼. `label` 이 유일한 접근 가능한 이름이다. (A11Y-NAME)
3504
+ */
3237
3505
  private iconButton;
3238
3506
  private skipButton;
3239
3507
  private syncFromAttributes;
@@ -3337,6 +3605,10 @@ declare class DbAudioPlayer extends HTMLElement {
3337
3605
  private toggleShuffle;
3338
3606
  private handlePlaybackRateChange;
3339
3607
  private handleKeyDown;
3608
+ /**
3609
+ * 아이콘만 있는 컨트롤 버튼. `label` 은 선택이 아니라 필수다 —
3610
+ * 아이콘은 aria-hidden 이므로 이것이 유일한 접근 가능한 이름이 된다. (A11Y-NAME)
3611
+ */
3340
3612
  private iconButton;
3341
3613
  private build;
3342
3614
  private get leftControls();
@@ -3553,6 +3825,7 @@ declare global {
3553
3825
  }
3554
3826
 
3555
3827
  declare class DbAppBadge extends HTMLElement {
3828
+ private detachKeyActivation?;
3556
3829
  static get observedAttributes(): string[];
3557
3830
  private built;
3558
3831
  private labelEl?;
@@ -3563,6 +3836,7 @@ declare class DbAppBadge extends HTMLElement {
3563
3836
  private getStore;
3564
3837
  private getIconSize;
3565
3838
  private build;
3839
+ disconnectedCallback(): void;
3566
3840
  private updateUI;
3567
3841
  }
3568
3842
  declare global {
@@ -4017,6 +4291,7 @@ type TutorialStep$1 = {
4017
4291
  declare class DbTutorial extends HTMLElement {
4018
4292
  static get observedAttributes(): string[];
4019
4293
  private root?;
4294
+ private focusTrap?;
4020
4295
  private overlayEl?;
4021
4296
  private popoverEl?;
4022
4297
  private closeButtonEl?;
@@ -4073,6 +4348,8 @@ declare class DbAnimationBackground extends HTMLElement {
4073
4348
  private syncingControls;
4074
4349
  static get observedAttributes(): string[];
4075
4350
  connectedCallback(): void;
4351
+ /** 열린 설정 패널은 Escape 로 닫힌다 (A11Y-ESCAPE) */
4352
+ private handleDocumentKeyDown;
4076
4353
  disconnectedCallback(): void;
4077
4354
  attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
4078
4355
  private getBool;
@@ -4241,10 +4518,8 @@ declare global {
4241
4518
  }
4242
4519
  }
4243
4520
 
4244
- declare const STATUSES: readonly ["downloading", "paused", "error", "complete"];
4245
- type DownloadStatus = (typeof STATUSES)[number];
4246
- declare const POSITIONS$1: readonly ["bottom-right", "bottom-left", "bottom-center", "top-right", "top-left", "top-center"];
4247
- type DownloadPosition = (typeof POSITIONS$1)[number];
4521
+ type DownloadStatus = (typeof DOWNLOAD_PROGRESS_STATUSES)[number];
4522
+ type DownloadPosition = (typeof DOWNLOAD_PROGRESS_POSITIONS)[number];
4248
4523
  /**
4249
4524
  * 우측 하단(기본)에 떠 있는 다운로드 진행률 위젯.
4250
4525
  *
@@ -4331,8 +4606,7 @@ declare global {
4331
4606
  *
4332
4607
  * 분할 자릿수 OTP/PIN 입력. 붙여넣기·화살표·백스페이스를 지원합니다.
4333
4608
  */
4334
- declare const SIZES$4: readonly ["s", "m", "l"];
4335
- type OtpSize = (typeof SIZES$4)[number];
4609
+ type OtpSize = (typeof OTP_INPUT_SIZES)[number];
4336
4610
  declare class DbOtpInput extends HTMLElement {
4337
4611
  static formAssociated: boolean;
4338
4612
  static get observedAttributes(): string[];
@@ -4384,8 +4658,7 @@ declare global {
4384
4658
  * 한국형 휴대폰 본인인증: 통신사 → 번호 → 인증번호 발송 → OTP + 타이머/재전송.
4385
4659
  */
4386
4660
 
4387
- declare const SIZES$3: readonly ["s", "m", "l"];
4388
- type Size$2 = (typeof SIZES$3)[number];
4661
+ type Size$2 = (typeof PHONE_VERIFY_SIZES)[number];
4389
4662
  declare class DbPhoneVerify extends HTMLElement {
4390
4663
  static get observedAttributes(): string[];
4391
4664
  private built;
@@ -4441,8 +4714,7 @@ declare global {
4441
4714
  * 이메일 인증: code(OTP) 모드 / confirm(메일함 확인) 모드.
4442
4715
  */
4443
4716
 
4444
- declare const SIZES$2: readonly ["s", "m", "l"];
4445
- type Size$1 = (typeof SIZES$2)[number];
4717
+ type Size$1 = (typeof EMAIL_VERIFY_SIZES)[number];
4446
4718
  declare class DbEmailVerify extends HTMLElement {
4447
4719
  static get observedAttributes(): string[];
4448
4720
  private built;
@@ -4500,6 +4772,7 @@ declare global {
4500
4772
  * 2단계 인증(2FA): 인증앱 / SMS / 이메일 방식 + OTP.
4501
4773
  */
4502
4774
 
4775
+ type Size = (typeof TWO_FACTOR_SIZES)[number];
4503
4776
  declare const METHODS: readonly [{
4504
4777
  readonly value: "app";
4505
4778
  readonly label: "인증 앱";
@@ -4510,8 +4783,6 @@ declare const METHODS: readonly [{
4510
4783
  readonly value: "email";
4511
4784
  readonly label: "이메일";
4512
4785
  }];
4513
- declare const SIZES$1: readonly ["s", "m", "l"];
4514
- type Size = (typeof SIZES$1)[number];
4515
4786
  type Method = (typeof METHODS)[number]['value'];
4516
4787
  declare class DbTwoFactor extends HTMLElement {
4517
4788
  static get observedAttributes(): string[];
@@ -4559,14 +4830,10 @@ declare global {
4559
4830
  }
4560
4831
  }
4561
4832
 
4562
- declare const SIZES: readonly ["xs", "s", "m", "l", "xl"];
4563
- declare const VARIANTS: readonly ["aurora", "ocean", "emerald", "violet", "mono"];
4564
- declare const STATES: readonly ["idle", "thinking", "listening"];
4565
- declare const THEMES: readonly ["auto", "light", "dark"];
4566
- type OrbSize = (typeof SIZES)[number];
4567
- type OrbVariant = (typeof VARIANTS)[number];
4568
- type OrbState = (typeof STATES)[number];
4569
- type OrbTheme = (typeof THEMES)[number];
4833
+ type OrbSize = (typeof CHAT_ORB_SIZES)[number];
4834
+ type OrbVariant = (typeof CHAT_ORB_VARIANTS)[number];
4835
+ type OrbState = (typeof CHAT_ORB_STATES)[number];
4836
+ type OrbTheme = (typeof CHAT_ORB_THEMES)[number];
4570
4837
  /**
4571
4838
  * AI 어시스턴트를 상징하는 캔버스 기반 애니메이션 오브(구체).
4572
4839
  * 광택 있는 3D 구체 위에 유체처럼 흐르는 내부 광원 + 프레넬 림 라이트 + 스페큘러 하이라이트로
@@ -4759,6 +5026,8 @@ declare class DbChatComposer extends HTMLElement {
4759
5026
  private fileInput;
4760
5027
  private micBtn;
4761
5028
  private sendBtn;
5029
+ private dropOverlay;
5030
+ private dragDepth;
4762
5031
  get value(): string;
4763
5032
  set value(v: string);
4764
5033
  get streaming(): boolean;
@@ -4791,12 +5060,24 @@ declare class DbChatComposer extends HTMLElement {
4791
5060
  private handleOutsideClick;
4792
5061
  private chooseAttachOption;
4793
5062
  private handleFilePicked;
5063
+ private hasDragFiles;
5064
+ private handleDragEnter;
5065
+ private handleDragOver;
5066
+ private handleDragLeave;
5067
+ private handleDrop;
5068
+ private showDropOverlay;
4794
5069
  private addFile;
5070
+ /** 동일 파일을 두 번 끌어놓거나 다시 선택해도 첨부 목록에는 한 번만 표시한다. */
5071
+ private hasAttachment;
4795
5072
  private attachmentMeta;
4796
5073
  private handleInput;
4797
5074
  private handleKeyDown;
4798
5075
  private handleSendClick;
4799
5076
  private submit;
5077
+ /** 여러 파일을 첨부합니다. */
5078
+ addFiles(files: File[], type?: string): void;
5079
+ /** 현재 입력·첨부를 전송합니다. */
5080
+ send(): void;
4800
5081
  /** 입력 필드를 비웁니다. */
4801
5082
  clear(): void;
4802
5083
  /** 첨부를 하나 제거합니다. */
@@ -4855,8 +5136,14 @@ declare global {
4855
5136
  }
4856
5137
  }
4857
5138
 
4858
- declare const ROLES: readonly ["user", "assistant", "system"];
4859
- type Role = (typeof ROLES)[number];
5139
+ type Role = (typeof CHAT_MESSAGE_ROLES)[number];
5140
+ interface DbChatMessageAttachment {
5141
+ name: string;
5142
+ kind?: 'image' | 'video' | 'file';
5143
+ /** 미리보기/다운로드 URL (blob: 또는 https:) */
5144
+ url?: string;
5145
+ mime?: string;
5146
+ }
4860
5147
  /**
4861
5148
  * 채팅 메시지 한 줄. 본문은 라이트 DOM 자식으로 전달하며 컴포넌트가 감쌉니다.
4862
5149
  * 아바타는 `db-avatar` 를 재사용합니다.
@@ -4870,17 +5157,22 @@ declare class DbChatMessage extends HTMLElement {
4870
5157
  static get observedAttributes(): string[];
4871
5158
  private built;
4872
5159
  private contentEl;
5160
+ private mediaEl;
4873
5161
  private avatarWrap;
4874
5162
  private headerEl;
4875
5163
  private nameEl;
4876
5164
  private timeEl;
4877
5165
  private actionsEl;
5166
+ private _attachments;
4878
5167
  get role(): Role;
4879
5168
  set role(v: Role);
5169
+ get attachments(): DbChatMessageAttachment[];
5170
+ set attachments(list: DbChatMessageAttachment[]);
4880
5171
  connectedCallback(): void;
4881
5172
  attributeChangedCallback(name: string): void;
4882
5173
  private build;
4883
5174
  private sync;
5175
+ private renderAttachments;
4884
5176
  private renderAvatar;
4885
5177
  private renderActions;
4886
5178
  private handleAction;
@@ -4910,10 +5202,10 @@ declare global {
4910
5202
  }
4911
5203
  }
4912
5204
 
4913
- declare const VIEWS: readonly ["home", "messages", "conversation", "help"];
4914
- type ChatView = (typeof VIEWS)[number];
4915
- declare const POSITIONS: readonly ["bottom-right", "bottom-left"];
4916
- type ChatPosition = (typeof POSITIONS)[number];
5205
+ type ChatView = (typeof CHAT_WIDGET_VIEWS)[number];
5206
+ type ChatPosition = (typeof CHAT_WIDGET_POSITIONS)[number];
5207
+ /** 홈 메뉴 선택 시 위젯 내부 이동. `none`이면 이벤트만 발행(호스트가 처리) */
5208
+ type DbChatWidgetMenuAction = 'conversation' | 'help' | 'none';
4917
5209
  interface DbChatWidgetMessage {
4918
5210
  id?: string;
4919
5211
  /** `assistant`(상담원/봇) 또는 `user` */
@@ -4925,6 +5217,13 @@ interface DbChatWidgetMessage {
4925
5217
  avatarInitials?: string;
4926
5218
  /** 말풍선 액션 (예: 'copy,like,dislike') — db-chat-message 로 전달 */
4927
5219
  actions?: string;
5220
+ /** 첨부 파일/이미지 */
5221
+ attachments?: Array<{
5222
+ name: string;
5223
+ kind?: 'image' | 'video' | 'file';
5224
+ url?: string;
5225
+ mime?: string;
5226
+ }>;
4928
5227
  }
4929
5228
  interface DbChatWidgetConversation {
4930
5229
  id?: string;
@@ -4936,6 +5235,15 @@ interface DbChatWidgetConversation {
4936
5235
  unread?: number;
4937
5236
  online?: boolean;
4938
5237
  }
5238
+ /** 홈 바로가기 메뉴 — 필요한 항목만 `menuItems`로 전달 (없으면 숨김) */
5239
+ interface DbChatWidgetMenuItem extends DbChatSuggestion {
5240
+ action?: DbChatWidgetMenuAction;
5241
+ }
5242
+ /** 도움말 문서 — 클릭 시 상세(`article`) 화면으로 이동 */
5243
+ interface DbChatWidgetArticle extends DbChatSuggestion {
5244
+ /** 상세 본문. 없으면 description을 본문으로 사용 */
5245
+ body?: string;
5246
+ }
4939
5247
  /**
4940
5248
  * FAB 로 열고 닫는 우측 하단 채팅 상담 위젯(껍데기).
4941
5249
  *
@@ -4949,11 +5257,12 @@ interface DbChatWidgetConversation {
4949
5257
  * @fires db-toggle - FAB 토글 (detail: { open })
4950
5258
  * @fires db-view-change - 화면 전환 (detail: { view })
4951
5259
  * @fires db-send - 메시지 전송 (detail: { text })
4952
- * @fires db-menu-select - 홈 메뉴 선택 (detail: { id, value })
5260
+ * @fires db-menu-select - 홈 메뉴 선택 (detail: { id, value, action })
4953
5261
  * @fires db-quick-reply - 빠른 답변 선택 (detail: { id, value })
4954
5262
  * @fires db-article-select - 도움말 문서 선택 (detail: { id, title })
4955
5263
  * @fires db-conversation-select - 대화 목록 선택 (detail: { id })
4956
5264
  * @fires db-message-action - 말풍선 액션 (detail: { action, text })
5265
+ * @fires db-start-chat - 대화 시작 CTA (홈·메시지 empty)
4957
5266
  *
4958
5267
  * @example
4959
5268
  * const chat = document.createElement('db-chat-widget');
@@ -4972,6 +5281,8 @@ declare class DbChatWidget extends HTMLElement {
4972
5281
  static get observedAttributes(): string[];
4973
5282
  private built;
4974
5283
  private typing;
5284
+ private helpQuery;
5285
+ private _activeArticle;
4975
5286
  private _messages;
4976
5287
  private _conversations;
4977
5288
  private _menuItems;
@@ -4998,16 +5309,24 @@ declare class DbChatWidget extends HTMLElement {
4998
5309
  get messages(): DbChatWidgetMessage[];
4999
5310
  set conversations(v: DbChatWidgetConversation[]);
5000
5311
  get conversations(): DbChatWidgetConversation[];
5001
- set menuItems(v: DbChatSuggestion[]);
5002
- get menuItems(): DbChatSuggestion[];
5312
+ set menuItems(v: DbChatWidgetMenuItem[]);
5313
+ get menuItems(): DbChatWidgetMenuItem[];
5003
5314
  set quickReplies(v: DbChatSuggestion[]);
5004
5315
  get quickReplies(): DbChatSuggestion[];
5005
- set articles(v: DbChatSuggestion[]);
5006
- get articles(): DbChatSuggestion[];
5316
+ set articles(v: DbChatWidgetArticle[]);
5317
+ get articles(): DbChatWidgetArticle[];
5007
5318
  connectedCallback(): void;
5319
+ disconnectedCallback(): void;
5320
+ /** 열린 위젯 패널은 Escape 로 닫히고 포커스는 런처로 돌아간다 (A11Y-ESCAPE) */
5321
+ private handleDocumentKeyDown;
5008
5322
  attributeChangedCallback(name: string, oldVal: string | null, newVal: string | null): void;
5009
5323
  private hydrateFromAttributes;
5010
5324
  private build;
5325
+ private panelDragDepth;
5326
+ private handlePanelDragEnter;
5327
+ private handlePanelDragOver;
5328
+ private handlePanelDragLeave;
5329
+ private handlePanelDrop;
5011
5330
  private sync;
5012
5331
  private syncOpenState;
5013
5332
  private renderBadge;
@@ -5018,9 +5337,14 @@ declare class DbChatWidget extends HTMLElement {
5018
5337
  private renderMessages;
5019
5338
  private renderConversation;
5020
5339
  private renderHelp;
5340
+ private renderHelpResults;
5341
+ private renderArticle;
5342
+ private openArticle;
5343
+ private startConversation;
5021
5344
  private buildMessage;
5022
5345
  private buildTyping;
5023
5346
  private buildEmpty;
5347
+ private buildStartChatButton;
5024
5348
  private renderFooter;
5025
5349
  private renderNav;
5026
5350
  private scrollThreadToEnd;
@@ -5289,6 +5613,7 @@ interface DbChatRoomMessage {
5289
5613
  name?: string;
5290
5614
  avatarSrc?: string;
5291
5615
  avatarInitials?: string;
5616
+ attachments?: DbChatMessageAttachment[];
5292
5617
  }
5293
5618
  /**
5294
5619
  * 사람 간 1:1/그룹 대화 화면. 상단 헤더(상대 정보) + 메시지 스레드 + 하단 컴포저.
@@ -5308,15 +5633,18 @@ declare class DbChatRoom extends HTMLElement {
5308
5633
  static get observedAttributes(): string[];
5309
5634
  private built;
5310
5635
  private typing;
5636
+ private dragDepth;
5311
5637
  private _messages;
5312
5638
  private headerEl;
5313
5639
  private scrollEl;
5314
5640
  private threadEl;
5315
5641
  private dockEl;
5642
+ private dropOverlay;
5316
5643
  private composer;
5317
5644
  set messages(v: DbChatRoomMessage[]);
5318
5645
  get messages(): DbChatRoomMessage[];
5319
5646
  connectedCallback(): void;
5647
+ disconnectedCallback(): void;
5320
5648
  attributeChangedCallback(): void;
5321
5649
  private build;
5322
5650
  private sync;
@@ -5325,6 +5653,13 @@ declare class DbChatRoom extends HTMLElement {
5325
5653
  private buildMessage;
5326
5654
  private buildTyping;
5327
5655
  private scrollToEnd;
5656
+ private nowLabel;
5657
+ private hasDragFiles;
5658
+ private handleDragEnter;
5659
+ private handleDragOver;
5660
+ private handleDragLeave;
5661
+ private handleDrop;
5662
+ private showDropOverlay;
5328
5663
  /** 메시지 추가. 추가된 id 반환 */
5329
5664
  addMessage(msg: DbChatRoomMessage): string;
5330
5665
  /** 전체 메시지 교체 */
@@ -6570,7 +6905,7 @@ type FormProps = WebComponentProps & {
6570
6905
  type BadgeProps = WebComponentProps & {
6571
6906
  variant?: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'danger';
6572
6907
  size?: 's' | 'm' | 'l';
6573
- badgeStyle?: 'dot' | 'number' | 'text' | 'outlined';
6908
+ type?: 'dot' | 'number' | 'text' | 'outlined';
6574
6909
  count?: number;
6575
6910
  maxCount?: number;
6576
6911
  disabled?: boolean;
@@ -6592,8 +6927,27 @@ type BannerProps = WebComponentProps & {
6592
6927
  imageAlt?: string;
6593
6928
  actions?: BannerAction[] | string;
6594
6929
  size?: 's' | 'm' | 'l';
6595
- variant?: 'primary' | 'secondary' | 'tertiary' | 'image';
6930
+ /** 배너 스타일입니다. primary · secondary · tertiary · outline(흰 배경+보더) · image. */
6931
+ variant?: 'primary' | 'secondary' | 'tertiary' | 'outline' | 'image';
6596
6932
  backgroundImage?: string;
6933
+ /** 지정하면 배너 전체가 링크로 동작합니다. */
6934
+ href?: string;
6935
+ /** href 이동 대상입니다. 기본 _self. */
6936
+ target?: '_self' | '_blank';
6937
+ /** true이면 배너 전체가 클릭 요소가 되어 db-click 이벤트를 발생시킵니다. */
6938
+ clickable?: boolean;
6939
+ /** true이면 우측에 닫기 버튼을 표시합니다. */
6940
+ closable?: boolean;
6941
+ /** 닫기 버튼 aria-label입니다. 기본 Close. */
6942
+ closeLabel?: string;
6943
+ onClick?: DbEventHandler<{
6944
+ href: string | null;
6945
+ }>;
6946
+ onDbClick?: DbEventHandler<{
6947
+ href: string | null;
6948
+ }>;
6949
+ onClose?: DbEventHandler<Record<string, never>>;
6950
+ onDbClose?: DbEventHandler<Record<string, never>>;
6597
6951
  };
6598
6952
  type LogoProps = WebComponentProps & {
6599
6953
  type?: 'designbase' | 'designbase-mark' | 'custom';
@@ -6661,6 +7015,35 @@ type StatChange = {
6661
7015
  type: 'increase' | 'decrease';
6662
7016
  period?: string;
6663
7017
  };
7018
+ type ActivityHeatmapItem = {
7019
+ date: string;
7020
+ value: number;
7021
+ };
7022
+ type ActivityHeatmapCellDetail = {
7023
+ date: string;
7024
+ value: number;
7025
+ level: number;
7026
+ };
7027
+ type ActivityHeatmapProps = WebComponentProps & {
7028
+ data?: string | ActivityHeatmapItem[];
7029
+ endDate?: string;
7030
+ weeks?: number;
7031
+ weekStartsOn?: 0 | 1;
7032
+ size?: 's' | 'm' | 'l';
7033
+ locale?: string;
7034
+ colorScheme?: 'green' | 'primary';
7035
+ showLegend?: boolean;
7036
+ showMonthLabels?: boolean;
7037
+ showDayLabels?: boolean;
7038
+ legendLessLabel?: string;
7039
+ legendMoreLabel?: string;
7040
+ valueLabel?: string;
7041
+ maxValue?: number;
7042
+ footerText?: string;
7043
+ footerHref?: string;
7044
+ onCellClick?: DbEventHandler<ActivityHeatmapCellDetail>;
7045
+ onDbCellClick?: DbEventHandler<ActivityHeatmapCellDetail>;
7046
+ };
6664
7047
  type StatProps = WebComponentProps & {
6665
7048
  value?: string | number;
6666
7049
  label?: string;
@@ -7188,6 +7571,17 @@ type SidebarSection = {
7188
7571
  gap?: 'none' | 's' | 'm' | 'l';
7189
7572
  items: SidebarItem[];
7190
7573
  };
7574
+ type SidebarPanelMode = 'auto' | 'adjacent' | 'replace';
7575
+ type SidebarPanel = {
7576
+ id: string;
7577
+ title: string;
7578
+ description?: string;
7579
+ ariaLabel?: string;
7580
+ backLabel?: string;
7581
+ /** @deprecated 레이아웃 폭은 panelWidth만 사용합니다. */
7582
+ width?: number | string;
7583
+ sections: SidebarSection[];
7584
+ };
7191
7585
  type SidebarUserProfile = {
7192
7586
  name: string;
7193
7587
  email?: string;
@@ -7209,6 +7603,15 @@ type SidebarPromoBanner = {
7209
7603
  ctaHref?: string;
7210
7604
  icon?: string;
7211
7605
  };
7606
+ type SidebarUpdateBanner = {
7607
+ title: string;
7608
+ description?: string;
7609
+ icon?: string;
7610
+ ctaLabel?: string;
7611
+ ctaHref?: string;
7612
+ /** db-banner variant. 기본 outline(흰 배경+보더). */
7613
+ variant?: 'primary' | 'secondary' | 'tertiary' | 'outline';
7614
+ };
7212
7615
  type SidebarProps = WebComponentProps & {
7213
7616
  /**
7214
7617
  * 커스텀 내비게이션 콘텐츠입니다.
@@ -7230,11 +7633,25 @@ type SidebarProps = WebComponentProps & {
7230
7633
  bottomItems?: SidebarItem[] | string;
7231
7634
  bottomSections?: SidebarSection[] | string;
7232
7635
  promoBanner?: SidebarPromoBanner | string;
7636
+ /** 업데이트/공지 배너 영역입니다. Banner 컴포넌트를 활용해 표시합니다. */
7637
+ updateBanner?: SidebarUpdateBanner | string;
7233
7638
  headerType?: 'default' | 'back';
7234
7639
  backLabel?: string;
7235
7640
  backHref?: string;
7641
+ /** 범용 Secondary Panel 목록입니다. openPanel id와 연결합니다. */
7642
+ panels?: SidebarPanel[] | string;
7643
+ /**
7644
+ * @deprecated panels를 사용하세요. settings 패널로 자동 변환됩니다.
7645
+ */
7236
7646
  settingsSections?: SidebarSection[] | string;
7647
+ /** 현재 열린 패널 id. 닫을 때는 main. */
7237
7648
  activePanel?: string;
7649
+ /** auto(기본) · adjacent · replace */
7650
+ panelMode?: SidebarPanelMode;
7651
+ /** Secondary Panel 기본 너비. 숫자(px) 또는 CSS length. */
7652
+ panelWidth?: number | string;
7653
+ /** panelMode=auto일 때 adjacent 전환 기준(px). 기본 1024. */
7654
+ panelBreakpoint?: number;
7238
7655
  size?: 's' | 'm' | 'l';
7239
7656
  /** 레이아웃 외형입니다. default(우측 보더만) · wrapper(패딩+radius+보더 카드형). */
7240
7657
  variant?: 'default' | 'wrapper';
@@ -7256,11 +7673,31 @@ type SidebarProps = WebComponentProps & {
7256
7673
  }>;
7257
7674
  onPanelChange?: DbEventHandler<{
7258
7675
  panel: string;
7259
- previous?: string;
7676
+ panelConfig?: SidebarPanel | null;
7677
+ mode?: Exclude<SidebarPanelMode, 'auto'>;
7260
7678
  }>;
7261
7679
  onDbPanelChange?: DbEventHandler<{
7262
7680
  panel: string;
7263
- previous?: string;
7681
+ panelConfig?: SidebarPanel | null;
7682
+ mode?: Exclude<SidebarPanelMode, 'auto'>;
7683
+ }>;
7684
+ onPanelModeChange?: DbEventHandler<{
7685
+ mode: Exclude<SidebarPanelMode, 'auto'>;
7686
+ }>;
7687
+ onDbPanelModeChange?: DbEventHandler<{
7688
+ mode: Exclude<SidebarPanelMode, 'auto'>;
7689
+ }>;
7690
+ onPromoCtaClick?: DbEventHandler<{
7691
+ banner: SidebarPromoBanner;
7692
+ }>;
7693
+ onDbPromoCtaClick?: DbEventHandler<{
7694
+ banner: SidebarPromoBanner;
7695
+ }>;
7696
+ onUpdateCtaClick?: DbEventHandler<{
7697
+ banner: SidebarUpdateBanner;
7698
+ }>;
7699
+ onDbUpdateCtaClick?: DbEventHandler<{
7700
+ banner: SidebarUpdateBanner;
7264
7701
  }>;
7265
7702
  };
7266
7703
  type SpinnerProps = WebComponentProps & {
@@ -7400,7 +7837,7 @@ type ProgressStepProps = WebComponentProps & {
7400
7837
  };
7401
7838
  type ToastProps = WebComponentProps & {
7402
7839
  toastId?: string;
7403
- status?: 'info' | 'success' | 'warning' | 'error';
7840
+ variant?: 'default' | 'info' | 'success' | 'warning' | 'danger';
7404
7841
  title?: string;
7405
7842
  description?: string;
7406
7843
  duration?: number;
@@ -7612,7 +8049,7 @@ type AvatarProps = WebComponentProps & {
7612
8049
  badge?: number;
7613
8050
  badgeMaxCount?: number;
7614
8051
  badgeVariant?: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'danger';
7615
- badgeStyle?: 'dot' | 'number' | 'text' | 'outlined';
8052
+ badgeType?: 'dot' | 'number' | 'text' | 'outlined';
7616
8053
  badgeText?: string;
7617
8054
  onClick?: DbEventHandler;
7618
8055
  onDbClick?: DbEventHandler;
@@ -9487,7 +9924,7 @@ type ChatTypingProps = WebComponentProps & {
9487
9924
  };
9488
9925
  type ChatWidgetProps = WebComponentProps & {
9489
9926
  open?: boolean;
9490
- view?: 'home' | 'messages' | 'conversation' | 'help';
9927
+ view?: 'home' | 'messages' | 'conversation' | 'help' | 'article';
9491
9928
  position?: 'bottom-right' | 'bottom-left';
9492
9929
  agentName?: string;
9493
9930
  agentAvatar?: string;
@@ -9500,12 +9937,11 @@ type ChatWidgetProps = WebComponentProps & {
9500
9937
  accent?: string;
9501
9938
  orbVariant?: 'aurora' | 'ocean' | 'emerald' | 'violet' | 'mono';
9502
9939
  launcherLabel?: string;
9503
- searchEnabled?: boolean;
9504
9940
  messages?: DbChatWidgetMessage[];
9505
9941
  conversations?: DbChatWidgetConversation[];
9506
- menuItems?: DbChatSuggestion[];
9942
+ menuItems?: DbChatWidgetMenuItem[];
9507
9943
  quickReplies?: DbChatSuggestion[];
9508
- articles?: DbChatSuggestion[];
9944
+ articles?: DbChatWidgetArticle[];
9509
9945
  onOpen?: DbEventHandler;
9510
9946
  onClose?: DbEventHandler;
9511
9947
  onToggle?: DbEventHandler<{
@@ -9520,6 +9956,7 @@ type ChatWidgetProps = WebComponentProps & {
9520
9956
  onMenuSelect?: DbEventHandler<{
9521
9957
  id: string;
9522
9958
  value: string;
9959
+ action?: string;
9523
9960
  }>;
9524
9961
  onQuickReply?: DbEventHandler<{
9525
9962
  id: string;
@@ -9536,6 +9973,7 @@ type ChatWidgetProps = WebComponentProps & {
9536
9973
  action: string;
9537
9974
  text: string;
9538
9975
  }>;
9976
+ onStartChat?: DbEventHandler;
9539
9977
  };
9540
9978
  declare const ChatOrb: react.ForwardRefExoticComponent<Omit<ChatOrbProps, "ref"> & react.RefAttributes<HTMLElement>>;
9541
9979
  declare const ChatWelcome: react.ForwardRefExoticComponent<Omit<ChatWelcomeProps, "ref"> & react.RefAttributes<HTMLElement>>;
@@ -9652,6 +10090,7 @@ declare const Share: react.ForwardRefExoticComponent<Omit<ShareProps, "ref"> & r
9652
10090
  declare const TopBanner: react.ForwardRefExoticComponent<Omit<TopBannerProps, "ref"> & react.RefAttributes<HTMLElement>>;
9653
10091
  declare const CookieBanner: react.ForwardRefExoticComponent<Omit<CookieBannerProps, "ref"> & react.RefAttributes<HTMLElement>>;
9654
10092
  declare const Stat: react.ForwardRefExoticComponent<Omit<StatProps, "ref"> & react.RefAttributes<HTMLElement>>;
10093
+ declare const ActivityHeatmap: react.ForwardRefExoticComponent<Omit<ActivityHeatmapProps, "ref"> & react.RefAttributes<HTMLElement>>;
9655
10094
  declare const Image: react.ForwardRefExoticComponent<Omit<ImageProps, "ref"> & react.RefAttributes<HTMLElement>>;
9656
10095
  declare const ImagePlaceholder: react.ForwardRefExoticComponent<Omit<ImagePlaceholderProps, "ref"> & react.RefAttributes<HTMLElement>>;
9657
10096
  declare const ImageList: react.ForwardRefExoticComponent<Omit<ImageListProps, "ref"> & react.RefAttributes<HTMLElement>>;
@@ -9753,5 +10192,5 @@ declare const DatePicker: react.ForwardRefExoticComponent<Omit<DatePickerProps,
9753
10192
  declare const TimePicker: react.ForwardRefExoticComponent<Omit<TimePickerProps, "ref"> & react.RefAttributes<HTMLElement>>;
9754
10193
  declare const Calendar: react.ForwardRefExoticComponent<Omit<CalendarProps, "ref"> & react.RefAttributes<HTMLElement>>;
9755
10194
 
9756
- 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 };
9757
- 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, 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 };
10195
+ 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, 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 };
10196
+ 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, 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, 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 };