@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.
- package/CHANGELOG.md +33 -0
- package/README.md +18 -0
- package/dist/esm/components/animation-background/controls.js +1 -1
- package/dist/esm/components/animation-background/layers.js +1 -1
- package/dist/esm/components/db-activity-heatmap.d.ts +38 -0
- package/dist/esm/components/db-activity-heatmap.js +1 -0
- package/dist/esm/components/db-animation-background.d.ts +2 -0
- package/dist/esm/components/db-animation-background.js +1 -1
- package/dist/esm/components/db-app-badge.d.ts +2 -0
- package/dist/esm/components/db-app-badge.js +1 -1
- package/dist/esm/components/db-audio-player.d.ts +4 -0
- package/dist/esm/components/db-audio-player.js +1 -1
- package/dist/esm/components/db-avatar.js +1 -1
- package/dist/esm/components/db-backdrop.d.ts +4 -0
- package/dist/esm/components/db-backdrop.js +1 -1
- package/dist/esm/components/db-badge.d.ts +2 -2
- package/dist/esm/components/db-badge.js +1 -1
- package/dist/esm/components/db-banner.d.ts +5 -0
- package/dist/esm/components/db-banner.js +1 -1
- package/dist/esm/components/db-bottom-navigation.js +1 -1
- package/dist/esm/components/db-bottom-sheet.d.ts +5 -0
- package/dist/esm/components/db-bottom-sheet.js +1 -1
- package/dist/esm/components/db-button.d.ts +13 -0
- package/dist/esm/components/db-button.js +1 -1
- package/dist/esm/components/db-calendar.js +1 -1
- package/dist/esm/components/db-card.js +1 -1
- package/dist/esm/components/db-carousel.js +1 -1
- package/dist/esm/components/db-chat-composer.d.ts +14 -0
- package/dist/esm/components/db-chat-composer.js +1 -1
- package/dist/esm/components/db-chat-message.d.ts +15 -2
- package/dist/esm/components/db-chat-message.js +1 -1
- package/dist/esm/components/db-chat-orb.d.ts +6 -8
- package/dist/esm/components/db-chat-orb.js +1 -1
- package/dist/esm/components/db-chat-room.d.ts +12 -1
- package/dist/esm/components/db-chat-room.js +1 -1
- package/dist/esm/components/db-chat-welcome.js +1 -1
- package/dist/esm/components/db-chat-widget.d.ts +43 -10
- package/dist/esm/components/db-chat-widget.js +1 -1
- package/dist/esm/components/db-checkbox.d.ts +11 -0
- package/dist/esm/components/db-checkbox.js +1 -1
- package/dist/esm/components/db-chip.js +1 -1
- package/dist/esm/components/db-color-picker.js +1 -1
- package/dist/esm/components/db-confirm.d.ts +5 -0
- package/dist/esm/components/db-confirm.js +1 -1
- package/dist/esm/components/db-container.js +1 -1
- package/dist/esm/components/db-cookie-banner.js +1 -1
- package/dist/esm/components/db-date-picker.d.ts +3 -0
- package/dist/esm/components/db-date-picker.js +1 -1
- package/dist/esm/components/db-divider.js +1 -1
- package/dist/esm/components/db-download-progress.d.ts +3 -4
- package/dist/esm/components/db-download-progress.js +1 -1
- package/dist/esm/components/db-drawer.d.ts +5 -1
- package/dist/esm/components/db-drawer.js +1 -1
- package/dist/esm/components/db-dropdown.js +1 -1
- package/dist/esm/components/db-dropzone.js +1 -1
- package/dist/esm/components/db-email-verify.d.ts +2 -2
- package/dist/esm/components/db-email-verify.js +1 -1
- package/dist/esm/components/db-file-uploader.js +1 -1
- package/dist/esm/components/db-floating-action-button.d.ts +1 -0
- package/dist/esm/components/db-floating-action-button.js +1 -1
- package/dist/esm/components/db-footer.js +1 -1
- package/dist/esm/components/db-gantt.js +1 -1
- package/dist/esm/components/db-indicator.js +1 -1
- package/dist/esm/components/db-input.d.ts +7 -0
- package/dist/esm/components/db-input.js +1 -1
- package/dist/esm/components/db-kanban.js +1 -1
- package/dist/esm/components/db-lightbox.d.ts +4 -0
- package/dist/esm/components/db-lightbox.js +1 -1
- package/dist/esm/components/db-list.js +1 -1
- package/dist/esm/components/db-masonry.js +1 -1
- package/dist/esm/components/db-menu-item.js +1 -1
- package/dist/esm/components/db-modal.d.ts +10 -0
- package/dist/esm/components/db-modal.js +1 -1
- package/dist/esm/components/db-navbar.d.ts +4 -2
- package/dist/esm/components/db-navbar.js +1 -1
- package/dist/esm/components/db-onboarding-modal.d.ts +3 -0
- package/dist/esm/components/db-onboarding-modal.js +1 -1
- package/dist/esm/components/db-otp-input.d.ts +3 -2
- package/dist/esm/components/db-otp-input.js +1 -1
- package/dist/esm/components/db-page-header.js +1 -1
- package/dist/esm/components/db-phone-verify.d.ts +2 -2
- package/dist/esm/components/db-phone-verify.js +1 -1
- package/dist/esm/components/db-popover.js +1 -1
- package/dist/esm/components/db-progress-step.js +1 -1
- package/dist/esm/components/db-progress.js +1 -1
- package/dist/esm/components/db-progressbar.js +1 -1
- package/dist/esm/components/db-radio.d.ts +1 -0
- package/dist/esm/components/db-radio.js +1 -1
- package/dist/esm/components/db-range-slider.d.ts +9 -4
- package/dist/esm/components/db-range-slider.js +1 -1
- package/dist/esm/components/db-rating.js +1 -1
- package/dist/esm/components/db-resizable-panels.d.ts +14 -0
- package/dist/esm/components/db-resizable-panels.js +1 -1
- package/dist/esm/components/db-search-bar.js +1 -1
- package/dist/esm/components/db-section-cta.js +1 -1
- package/dist/esm/components/db-section-feature.js +1 -1
- package/dist/esm/components/db-section-pricing.js +1 -1
- package/dist/esm/components/db-section.js +1 -1
- package/dist/esm/components/db-segment-control.js +1 -1
- package/dist/esm/components/db-select.d.ts +8 -0
- package/dist/esm/components/db-select.js +1 -1
- package/dist/esm/components/db-sidebar.d.ts +55 -6
- package/dist/esm/components/db-sidebar.js +1 -1
- package/dist/esm/components/db-skeleton.js +1 -1
- package/dist/esm/components/db-spinner.d.ts +4 -0
- package/dist/esm/components/db-spinner.js +1 -1
- package/dist/esm/components/db-split-view.js +1 -1
- package/dist/esm/components/db-stat.js +1 -1
- package/dist/esm/components/db-stepper.js +1 -1
- package/dist/esm/components/db-table.js +1 -1
- package/dist/esm/components/db-tabs.js +1 -1
- package/dist/esm/components/db-testimonial.js +1 -1
- package/dist/esm/components/db-textarea.js +1 -1
- package/dist/esm/components/db-time-picker.d.ts +5 -2
- package/dist/esm/components/db-time-picker.js +1 -1
- package/dist/esm/components/db-timeline.js +1 -1
- package/dist/esm/components/db-toast.d.ts +8 -1
- package/dist/esm/components/db-toast.js +1 -1
- package/dist/esm/components/db-toggle.d.ts +2 -0
- package/dist/esm/components/db-toggle.js +1 -1
- package/dist/esm/components/db-tooltip.js +1 -1
- package/dist/esm/components/db-top-banner.js +1 -1
- package/dist/esm/components/db-tutorial.d.ts +1 -0
- package/dist/esm/components/db-tutorial.js +1 -1
- package/dist/esm/components/db-two-factor.d.ts +2 -2
- package/dist/esm/components/db-two-factor.js +1 -1
- package/dist/esm/components/db-video-player.d.ts +3 -0
- package/dist/esm/components/db-video-player.js +1 -1
- package/dist/esm/components/section-block-header-utils.js +1 -1
- package/dist/esm/core/a11y.d.ts +40 -0
- package/dist/esm/core/a11y.js +1 -0
- package/dist/esm/core/base-element.d.ts +41 -0
- package/dist/esm/core/base-element.js +1 -0
- package/dist/esm/core/dom.d.ts +35 -0
- package/dist/esm/core/dom.js +1 -0
- package/dist/esm/core/focus-trap.d.ts +41 -0
- package/dist/esm/core/focus-trap.js +1 -0
- package/dist/esm/core/i18n.d.ts +82 -0
- package/dist/esm/core/i18n.js +1 -0
- package/dist/esm/core/scroll-lock.d.ts +19 -0
- package/dist/esm/core/scroll-lock.js +1 -0
- package/dist/esm/core/uid.d.ts +23 -0
- package/dist/esm/core/uid.js +1 -0
- package/dist/esm/helpers/toast.d.ts +10 -10
- package/dist/esm/helpers/toast.js +1 -1
- package/dist/esm/index.d.ts +12 -3
- package/dist/esm/index.js +1 -1
- package/dist/esm/node_modules/@designbasekorea/ui-contracts/dist/components.js +1 -0
- package/dist/esm/node_modules/@designbasekorea/ui-contracts/dist/primitives.js +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.css +1 -1
- package/dist/index.d.ts +602 -59
- package/dist/index.esm.js +1 -1
- package/dist/react/index.cjs +1 -1
- package/dist/react/index.d.ts +495 -56
- package/dist/react/index.esm.js +1 -1
- package/package.json +12 -3
- /package/dist/chunks/{lottie-78a72482.js → lottie-3f885725.js} +0 -0
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,275 @@
|
|
|
1
|
+
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, ToastVariant, ToastPosition } from '@designbasekorea/ui-contracts';
|
|
2
|
+
export { ToastPosition as DbToastPosition, ToastVariant as DbToastVariant } from '@designbasekorea/ui-contracts';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* 엘리먼트 id 생성.
|
|
6
|
+
*
|
|
7
|
+
* 각 컴포넌트가 `Math.random().toString(36)` 을 따로 굴리면 충돌 가능성이 있고,
|
|
8
|
+
* 무엇보다 SSR/스냅샷에서 diff 노이즈가 된다. 생성은 여기서만 한다.
|
|
9
|
+
*
|
|
10
|
+
* 규격: DX-UID
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* `prefix` 로 시작하는 문서 내 고유 id 를 만든다.
|
|
14
|
+
*
|
|
15
|
+
* `crypto.randomUUID` 가 있으면 그 앞 8자리를 쓰고, 없으면 증가 카운터로 폴백한다.
|
|
16
|
+
* 어느 쪽이든 한 문서 안에서는 절대 겹치지 않는다.
|
|
17
|
+
*/
|
|
18
|
+
declare function dbUid(prefix?: string): string;
|
|
19
|
+
/**
|
|
20
|
+
* 엘리먼트에 id 가 없으면 만들어 붙이고, 그 id 를 돌려준다.
|
|
21
|
+
*
|
|
22
|
+
* `aria-labelledby` / `aria-controls` 배선에 쓴다 — 소비자가 직접 지정한 id 는 존중한다.
|
|
23
|
+
*/
|
|
24
|
+
declare function ensureId(el: Element, prefix?: string): string;
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* 정리(cleanup) 관리.
|
|
28
|
+
*
|
|
29
|
+
* `connectedCallback` 에서 등록한 리스너·타이머·observer 를 `disconnectedCallback`
|
|
30
|
+
* 에서 빠짐없이 해제하기 위한 도구. 등록과 해제를 한 줄로 묶어두면
|
|
31
|
+
* "add 는 했는데 remove 를 빠뜨리는" 실수가 구조적으로 불가능해진다.
|
|
32
|
+
*
|
|
33
|
+
* 규격: PERF-CLEANUP
|
|
34
|
+
*/
|
|
35
|
+
type Cleanup = () => void;
|
|
36
|
+
/** 해제 함수를 모아뒀다가 한 번에 실행하는 가방 */
|
|
37
|
+
declare class CleanupBag {
|
|
38
|
+
private items;
|
|
39
|
+
/** 해제 함수를 직접 등록 */
|
|
40
|
+
add(fn: Cleanup): void;
|
|
41
|
+
/** 리스너를 달고 해제 함수를 자동 등록 */
|
|
42
|
+
listen<T extends EventTarget>(target: T, type: string, handler: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
43
|
+
/** setTimeout — 해제 시 자동 clear */
|
|
44
|
+
timeout(fn: () => void, ms: number): number;
|
|
45
|
+
/** setInterval — 해제 시 자동 clear */
|
|
46
|
+
interval(fn: () => void, ms: number): number;
|
|
47
|
+
/** MutationObserver / ResizeObserver / IntersectionObserver 등록 */
|
|
48
|
+
observe<T extends {
|
|
49
|
+
disconnect(): void;
|
|
50
|
+
}>(observer: T): T;
|
|
51
|
+
/** 등록된 모든 해제 함수를 실행하고 비운다. 여러 번 호출해도 안전하다. */
|
|
52
|
+
run(): void;
|
|
53
|
+
}
|
|
54
|
+
/** 스크롤/리사이즈처럼 고빈도로 발생하는 핸들러를 프레임당 1회로 병합한다. (PERF-RAF) */
|
|
55
|
+
declare function rafThrottle<A extends unknown[]>(fn: (...args: A) => void): ((...args: A) => void) & {
|
|
56
|
+
cancel(): void;
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* 포커스 트랩.
|
|
61
|
+
*
|
|
62
|
+
* 모달·드로어·바텀시트 같은 오버레이가 열려 있는 동안 Tab 이 오버레이 밖으로
|
|
63
|
+
* 새어나가지 않게 하고, 닫을 때 **열기 직전에 포커스를 갖고 있던 요소로 되돌린다**.
|
|
64
|
+
* 포커스 복원이 없으면 키보드 사용자는 모달을 닫는 순간 문서 맨 앞으로 튕긴다.
|
|
65
|
+
*
|
|
66
|
+
* 규격: A11Y-TRAP, A11Y-AUTOFOCUS
|
|
67
|
+
*/
|
|
68
|
+
/** 컨테이너 안에서 Tab 순서대로 포커스 가능한 요소들 */
|
|
69
|
+
declare function getTabbables(container: HTMLElement): HTMLElement[];
|
|
70
|
+
interface FocusTrapOptions {
|
|
71
|
+
/**
|
|
72
|
+
* 활성화 시 포커스를 받을 요소.
|
|
73
|
+
* 지정하지 않으면 `[autofocus]` → 첫 포커서블 → 컨테이너 순으로 결정한다.
|
|
74
|
+
*/
|
|
75
|
+
initialFocus?: HTMLElement | (() => HTMLElement | null) | null;
|
|
76
|
+
/** 해제 시 포커스를 돌려줄 요소. 기본값은 활성화 직전의 `document.activeElement` */
|
|
77
|
+
returnFocus?: HTMLElement | null;
|
|
78
|
+
/** 포커스 복원을 끄고 싶을 때 (기본 true) */
|
|
79
|
+
restoreFocus?: boolean;
|
|
80
|
+
}
|
|
81
|
+
interface FocusTrap {
|
|
82
|
+
activate(): void;
|
|
83
|
+
deactivate(): void;
|
|
84
|
+
/** 컨테이너 내용이 바뀌었을 때 포커서블 목록을 다시 계산할 필요는 없다 — 매번 조회하므로 no-op 호환용 */
|
|
85
|
+
readonly active: boolean;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* `container` 안에 포커스를 가두는 트랩을 만든다.
|
|
89
|
+
*
|
|
90
|
+
* ```ts
|
|
91
|
+
* this.trap = createFocusTrap(panel);
|
|
92
|
+
* this.trap.activate(); // 열 때
|
|
93
|
+
* this.trap.deactivate(); // 닫을 때 — 포커스가 트리거로 돌아간다
|
|
94
|
+
* ```
|
|
95
|
+
*/
|
|
96
|
+
declare function createFocusTrap(container: HTMLElement, options?: FocusTrapOptions): FocusTrap;
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* 문서 스크롤 잠금.
|
|
100
|
+
*
|
|
101
|
+
* 각 오버레이가 `document.body.style.overflow` 를 직접 만지면, 모달 위에 드로어를
|
|
102
|
+
* 띄웠다가 드로어만 닫는 순간 스크롤락이 통째로 풀린다. 잠금은 참조 카운트로만 관리한다.
|
|
103
|
+
*
|
|
104
|
+
* 규격: PERF-GLOBAL-STATE
|
|
105
|
+
*/
|
|
106
|
+
/**
|
|
107
|
+
* 문서 스크롤을 잠근다. 중첩 호출은 카운트되며, 같은 횟수만큼 `unlockScroll()`
|
|
108
|
+
* 해야 실제로 풀린다.
|
|
109
|
+
*/
|
|
110
|
+
declare function lockScroll(): void;
|
|
111
|
+
/** `lockScroll()` 을 되돌린다. 카운트가 0 이 될 때만 실제로 해제된다. */
|
|
112
|
+
declare function unlockScroll(): void;
|
|
113
|
+
/** 현재 잠금 카운트 — 테스트/디버깅용 */
|
|
114
|
+
declare function scrollLockDepth(): number;
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* 접근성 런타임 유틸.
|
|
118
|
+
*
|
|
119
|
+
* 규격: A11Y-LIVE, A11Y-NAME
|
|
120
|
+
*/
|
|
121
|
+
type Politeness = 'polite' | 'assertive';
|
|
122
|
+
/**
|
|
123
|
+
* 스크린리더에 메시지를 알린다.
|
|
124
|
+
*
|
|
125
|
+
* @param message 읽어줄 문장
|
|
126
|
+
* @param politeness `polite` 는 현재 읽는 것을 끝낸 뒤, `assertive` 는 즉시 끼어든다.
|
|
127
|
+
* 오류·경고에만 assertive 를 쓴다.
|
|
128
|
+
*/
|
|
129
|
+
declare function announce(message: string, politeness?: Politeness): void;
|
|
130
|
+
/** 피드백 톤에 맞는 politeness. danger/warning 만 즉시 끼어든다. */
|
|
131
|
+
declare function politenessForTone(tone: string): Politeness;
|
|
132
|
+
/**
|
|
133
|
+
* 접근 가능한 이름을 붙인다.
|
|
134
|
+
*
|
|
135
|
+
* 보이는 텍스트가 이미 있으면 `aria-label` 로 덮어쓰지 않는다 — 스크린리더 사용자와
|
|
136
|
+
* 음성 제어 사용자가 서로 다른 이름을 보게 되는 문제를 막는다.
|
|
137
|
+
*/
|
|
138
|
+
declare function setAccessibleName(el: HTMLElement, name: string): void;
|
|
139
|
+
/** 시각적으로만 감춘 텍스트 노드를 만든다 (스크린리더는 읽음) */
|
|
140
|
+
declare function createSrOnly(text: string): HTMLSpanElement;
|
|
141
|
+
/**
|
|
142
|
+
* 네이티브가 아닌 요소(`role="button"` 을 얹은 div 등)에 Enter/Space 활성화를 붙인다.
|
|
143
|
+
*
|
|
144
|
+
* 네이티브 `<button>` 은 브라우저가 이걸 해 주지만, 커스텀 엘리먼트 호스트에
|
|
145
|
+
* role 만 얹은 경우에는 직접 배선해야 마우스와 키보드가 같아진다.
|
|
146
|
+
*
|
|
147
|
+
* 규격: A11Y-KEYBOARD
|
|
148
|
+
*
|
|
149
|
+
* @returns 등록을 해제하는 함수
|
|
150
|
+
*/
|
|
151
|
+
declare function activateOnKey(el: HTMLElement, options?: {
|
|
152
|
+
isDisabled?: () => boolean;
|
|
153
|
+
}): () => void;
|
|
154
|
+
|
|
155
|
+
/**
|
|
156
|
+
* 사용자 노출 문자열.
|
|
157
|
+
*
|
|
158
|
+
* 컴포넌트 소스에 `'모달 닫기'` 같은 한국어를 박아두면 한국어 외 서비스에서는
|
|
159
|
+
* 스크린리더가 엉뚱한 언어를 읽는다. 문자열은 전부 여기를 통과시키고,
|
|
160
|
+
* 소비자가 `dbSetLocale()` 로 덮어쓸 수 있게 한다.
|
|
161
|
+
*
|
|
162
|
+
* 기본값은 현재 소스에 박혀 있던 한국어 그대로다 — 동작 변화 없이 교체 지점만 생긴다.
|
|
163
|
+
*
|
|
164
|
+
* 규격: DX-I18N
|
|
165
|
+
*/
|
|
166
|
+
/** 컴포넌트가 쓰는 문자열 키 → 기본(한국어) 값 */
|
|
167
|
+
declare const DEFAULT_STRINGS: {
|
|
168
|
+
readonly close: "닫기";
|
|
169
|
+
readonly 'modal.close': "모달 닫기";
|
|
170
|
+
readonly 'drawer.close': "드로어 닫기";
|
|
171
|
+
readonly 'dialog.close': "대화상자 닫기";
|
|
172
|
+
readonly 'toast.close': "알림 닫기";
|
|
173
|
+
readonly clear: "지우기";
|
|
174
|
+
readonly clearAll: "모든 값 지우기";
|
|
175
|
+
readonly loading: "로딩 중";
|
|
176
|
+
readonly required: "필수";
|
|
177
|
+
readonly optional: "선택";
|
|
178
|
+
readonly error: "오류";
|
|
179
|
+
readonly success: "성공";
|
|
180
|
+
readonly warning: "경고";
|
|
181
|
+
readonly info: "안내";
|
|
182
|
+
readonly previous: "이전";
|
|
183
|
+
readonly next: "다음";
|
|
184
|
+
readonly 'select.placeholder': "선택하세요";
|
|
185
|
+
readonly 'select.noResults': "결과 없음";
|
|
186
|
+
readonly 'tabs.label': "탭 목록";
|
|
187
|
+
readonly 'pagination.label': "페이지 번호";
|
|
188
|
+
readonly 'search.label': "검색";
|
|
189
|
+
readonly 'media.play': "재생";
|
|
190
|
+
readonly 'media.pause': "일시정지";
|
|
191
|
+
readonly 'media.mute': "음소거";
|
|
192
|
+
readonly 'media.unmute': "음소거 해제";
|
|
193
|
+
readonly 'media.settings': "설정";
|
|
194
|
+
readonly 'media.shuffle': "셔플";
|
|
195
|
+
readonly 'media.repeat': "반복";
|
|
196
|
+
readonly 'media.previous': "이전 트랙";
|
|
197
|
+
readonly 'media.next': "다음 트랙";
|
|
198
|
+
readonly 'media.fullscreen': "전체화면";
|
|
199
|
+
readonly 'carousel.previous': "이전 슬라이드";
|
|
200
|
+
readonly 'carousel.next': "다음 슬라이드";
|
|
201
|
+
readonly 'breadcrumbs.expand': "생략된 경로 펼치기";
|
|
202
|
+
readonly 'input.showPassword': "비밀번호 보기";
|
|
203
|
+
readonly 'input.hidePassword': "비밀번호 숨기기";
|
|
204
|
+
readonly 'input.clearSearch': "검색어 지우기";
|
|
205
|
+
readonly 'verify.done': "인증 완료";
|
|
206
|
+
readonly 'verify.phoneDone': "휴대폰 번호 인증이 완료되었습니다.";
|
|
207
|
+
};
|
|
208
|
+
type DbStringKey = keyof typeof DEFAULT_STRINGS;
|
|
209
|
+
type DbStrings = Partial<Record<DbStringKey, string>> & Record<string, string>;
|
|
210
|
+
/**
|
|
211
|
+
* 문자열을 전역으로 덮어쓴다. 앱 부트스트랩에서 한 번 호출한다.
|
|
212
|
+
*
|
|
213
|
+
* ```ts
|
|
214
|
+
* dbSetLocale({ 'modal.close': 'Close dialog', close: 'Close' });
|
|
215
|
+
* ```
|
|
216
|
+
*/
|
|
217
|
+
declare function dbSetLocale(strings: DbStrings): void;
|
|
218
|
+
/** 현재 적용된 오버라이드를 모두 지운다 (테스트용) */
|
|
219
|
+
declare function dbResetLocale(): void;
|
|
220
|
+
/**
|
|
221
|
+
* 문자열을 조회한다.
|
|
222
|
+
*
|
|
223
|
+
* @param key 문자열 키
|
|
224
|
+
* @param fallback 키가 사전에 없을 때 쓸 값
|
|
225
|
+
*/
|
|
226
|
+
declare function t(key: DbStringKey | string, fallback?: string): string;
|
|
227
|
+
/**
|
|
228
|
+
* 엘리먼트에서 라벨을 읽는다 — 소비자가 준 속성이 항상 우선한다.
|
|
229
|
+
*
|
|
230
|
+
* 컴포넌트는 `label-close` 같은 속성으로 개별 오버라이드를 받고,
|
|
231
|
+
* 없으면 전역 로케일로 폴백한다.
|
|
232
|
+
*/
|
|
233
|
+
declare function labelFrom(el: Element, attribute: string, key: DbStringKey | string): string;
|
|
234
|
+
|
|
235
|
+
/**
|
|
236
|
+
* 선택적 베이스 클래스.
|
|
237
|
+
*
|
|
238
|
+
* 기존 130개 컴포넌트는 전부 `extends HTMLElement` 이며 그대로 동작한다.
|
|
239
|
+
* 새 컴포넌트나 개선 대상만 이 클래스를 상속하면 정리(cleanup)와 이벤트 발행이
|
|
240
|
+
* 규격에 맞게 강제된다. **상속은 강제가 아니다.**
|
|
241
|
+
*
|
|
242
|
+
* 규격: PERF-CLEANUP, STD-EVENT
|
|
243
|
+
*/
|
|
244
|
+
|
|
245
|
+
declare abstract class DbElement extends HTMLElement {
|
|
246
|
+
/**
|
|
247
|
+
* `connectedCallback` 에서 등록한 것들을 담아두는 가방.
|
|
248
|
+
* `disconnectedCallback` 에서 자동으로 비워진다.
|
|
249
|
+
*/
|
|
250
|
+
protected readonly cleanups: CleanupBag;
|
|
251
|
+
/**
|
|
252
|
+
* 하위 클래스는 `disconnectedCallback` 을 오버라이드할 때 반드시
|
|
253
|
+
* `super.disconnectedCallback()` 을 호출해야 한다.
|
|
254
|
+
*/
|
|
255
|
+
disconnectedCallback(): void;
|
|
256
|
+
/**
|
|
257
|
+
* 규격에 맞는 커스텀 이벤트를 발행한다 — `db-` 접두사 + bubbles + composed.
|
|
258
|
+
*
|
|
259
|
+
* @returns `preventDefault()` 되지 않았으면 true
|
|
260
|
+
*/
|
|
261
|
+
protected dbEmit<T>(name: string, detail?: T, options?: {
|
|
262
|
+
cancelable?: boolean;
|
|
263
|
+
}): boolean;
|
|
264
|
+
/**
|
|
265
|
+
* 커스텀 엘리먼트가 정의되기 **전에** 프레임워크가 프로퍼티로 값을 넣어둔 경우,
|
|
266
|
+
* 그 값은 인스턴스 자체 프로퍼티로 남아 접근자를 가린다. 정의 후 회수한다.
|
|
267
|
+
*
|
|
268
|
+
* 규격: STD-UPGRADE
|
|
269
|
+
*/
|
|
270
|
+
protected upgradeProperties(names: string[]): void;
|
|
271
|
+
}
|
|
272
|
+
|
|
1
273
|
/**
|
|
2
274
|
* Light DOM custom element for the canonical web Button.
|
|
3
275
|
*
|
|
@@ -6,10 +278,15 @@
|
|
|
6
278
|
*/
|
|
7
279
|
declare class DbButton extends HTMLElement {
|
|
8
280
|
static get observedAttributes(): string[];
|
|
281
|
+
/**
|
|
282
|
+
* 계약에 없는 값이 attribute 로 들어오면 기본값으로 되돌린다 — throw 하지 않는다.
|
|
283
|
+
* 커스텀 엘리먼트의 attribute 는 임의 문자열을 받으므로 타입으로 막을 수 없다. (STD-COERCE)
|
|
284
|
+
*/
|
|
9
285
|
get variant(): string;
|
|
10
286
|
set variant(value: string);
|
|
11
287
|
get size(): string;
|
|
12
288
|
set size(value: string);
|
|
289
|
+
/** 빈 값은 "사이즈에 따라 자동" 을 뜻하므로 계약값에 포함되지 않아도 유효하다 */
|
|
13
290
|
get radius(): string;
|
|
14
291
|
set radius(value: string);
|
|
15
292
|
get accentStyle(): string;
|
|
@@ -42,6 +319,14 @@ declare class DbButton extends HTMLElement {
|
|
|
42
319
|
private getDefaultRadiusClass;
|
|
43
320
|
private syncRadius;
|
|
44
321
|
private syncAccentStyle;
|
|
322
|
+
/**
|
|
323
|
+
* outline 스타일의 회전하는 테두리 글로우.
|
|
324
|
+
*
|
|
325
|
+
* conic-gradient 의 각도를 직접 애니메이션하려면 `@property` 가 필요해 기준선이 올라간다.
|
|
326
|
+
* 대신 넘치는 정사각형을 `overflow: hidden` 컨테이너 안에서 회전시키고,
|
|
327
|
+
* 컨테이너의 `::after` 가 안쪽을 덮어 1.5px 테두리만 남기는 방식을 쓴다.
|
|
328
|
+
*/
|
|
329
|
+
private syncAccentRing;
|
|
45
330
|
private syncAccentField;
|
|
46
331
|
private syncModifier;
|
|
47
332
|
private syncBooleanModifier;
|
|
@@ -55,6 +340,8 @@ declare global {
|
|
|
55
340
|
}
|
|
56
341
|
|
|
57
342
|
declare class DbInput extends HTMLElement {
|
|
343
|
+
/** 현재 렌더된 DOM 구조의 형태 키 — 바뀔 때만 재구축한다 (PERF-RECONCILE) */
|
|
344
|
+
private shapeKey;
|
|
58
345
|
static get observedAttributes(): string[];
|
|
59
346
|
private input?;
|
|
60
347
|
private passwordVisible;
|
|
@@ -84,6 +371,11 @@ declare class DbInput extends HTMLElement {
|
|
|
84
371
|
private resolveIconName;
|
|
85
372
|
private resolveStartIcon;
|
|
86
373
|
private getCurrentValue;
|
|
374
|
+
/**
|
|
375
|
+
* DOM 골격을 만든다. 구조가 실제로 달라질 때만 호출되며,
|
|
376
|
+
* 그 외에는 render() 가 기존 노드의 속성만 갱신한다.
|
|
377
|
+
*/
|
|
378
|
+
private buildStructure;
|
|
87
379
|
private render;
|
|
88
380
|
private mountIcons;
|
|
89
381
|
private shouldShowPasswordValidation;
|
|
@@ -111,6 +403,8 @@ declare class DbCheckbox extends HTMLElement {
|
|
|
111
403
|
private visual?;
|
|
112
404
|
private labelEl?;
|
|
113
405
|
private built;
|
|
406
|
+
private userInteracted;
|
|
407
|
+
private readonly cleanups;
|
|
114
408
|
get checked(): boolean;
|
|
115
409
|
set checked(value: boolean);
|
|
116
410
|
get indeterminate(): boolean;
|
|
@@ -121,13 +415,22 @@ declare class DbCheckbox extends HTMLElement {
|
|
|
121
415
|
set readOnly(value: boolean);
|
|
122
416
|
get required(): boolean;
|
|
123
417
|
set required(value: boolean);
|
|
418
|
+
/** 계약에 없는 값은 기본값으로 되돌린다 — throw 하지 않는다 (STD-COERCE) */
|
|
124
419
|
get size(): string;
|
|
125
420
|
set size(value: string);
|
|
126
421
|
connectedCallback(): void;
|
|
422
|
+
disconnectedCallback(): void;
|
|
423
|
+
/** form.reset() 이후 네이티브 input 의 실제 상태를 호스트 attribute 로 되돌린다 */
|
|
424
|
+
private syncAfterReset;
|
|
127
425
|
attributeChangedCallback(name: string): void;
|
|
128
426
|
private get hasLabel();
|
|
129
427
|
private build;
|
|
130
428
|
private handleChange;
|
|
429
|
+
/**
|
|
430
|
+
* 네이티브 검증 상태를 보조기술에 노출한다.
|
|
431
|
+
* 값 자체는 네이티브 input 이 폼에 싣고, 여기서는 표현만 맞춘다.
|
|
432
|
+
*/
|
|
433
|
+
private syncValidity;
|
|
131
434
|
private syncState;
|
|
132
435
|
private syncVisual;
|
|
133
436
|
private syncClasses;
|
|
@@ -145,6 +448,8 @@ declare class DbToggle extends HTMLElement {
|
|
|
145
448
|
private root?;
|
|
146
449
|
private labelEl?;
|
|
147
450
|
private built;
|
|
451
|
+
/** default-checked 는 초기값일 뿐 — 한 번 조작하면 checked/selected 만 본다 */
|
|
452
|
+
private userInteracted;
|
|
148
453
|
get checked(): boolean;
|
|
149
454
|
set checked(value: boolean);
|
|
150
455
|
get name(): string;
|
|
@@ -178,8 +483,8 @@ declare class DbBadge extends HTMLElement {
|
|
|
178
483
|
set variant(value: string);
|
|
179
484
|
get size(): string;
|
|
180
485
|
set size(value: string);
|
|
181
|
-
get
|
|
182
|
-
set
|
|
486
|
+
get type(): string;
|
|
487
|
+
set type(value: string);
|
|
183
488
|
get count(): number | undefined;
|
|
184
489
|
set count(value: number | undefined);
|
|
185
490
|
get maxCount(): number;
|
|
@@ -208,6 +513,8 @@ interface DbBannerAction {
|
|
|
208
513
|
iconOnly?: boolean;
|
|
209
514
|
}
|
|
210
515
|
declare class DbBanner extends HTMLElement {
|
|
516
|
+
private clickHandler?;
|
|
517
|
+
private keydownHandler?;
|
|
211
518
|
static get observedAttributes(): string[];
|
|
212
519
|
connectedCallback(): void;
|
|
213
520
|
attributeChangedCallback(): void;
|
|
@@ -217,6 +524,9 @@ declare class DbBanner extends HTMLElement {
|
|
|
217
524
|
private resolveIconName;
|
|
218
525
|
private createActionControl;
|
|
219
526
|
private render;
|
|
527
|
+
private createCloseButton;
|
|
528
|
+
private handleClose;
|
|
529
|
+
private setupInteractivity;
|
|
220
530
|
}
|
|
221
531
|
declare global {
|
|
222
532
|
interface HTMLElementTagNameMap {
|
|
@@ -225,6 +535,10 @@ declare global {
|
|
|
225
535
|
}
|
|
226
536
|
|
|
227
537
|
declare class DbSpinner extends HTMLElement {
|
|
538
|
+
/** 현재 그려진 스피너 타입 — 바뀔 때만 그래픽을 다시 만든다 */
|
|
539
|
+
private renderedType?;
|
|
540
|
+
private graphicEl?;
|
|
541
|
+
private labelEl?;
|
|
228
542
|
static get observedAttributes(): string[];
|
|
229
543
|
get type(): string;
|
|
230
544
|
set type(value: string);
|
|
@@ -354,6 +668,7 @@ declare class DbModal extends HTMLElement {
|
|
|
354
668
|
private segmentEl?;
|
|
355
669
|
private contentEl?;
|
|
356
670
|
private titleId;
|
|
671
|
+
private focusTrap?;
|
|
357
672
|
private isMounted;
|
|
358
673
|
private internalTabId;
|
|
359
674
|
private internalSegment;
|
|
@@ -393,7 +708,16 @@ declare class DbModal extends HTMLElement {
|
|
|
393
708
|
private exitTimerId;
|
|
394
709
|
private syncVisibility;
|
|
395
710
|
private syncOpenState;
|
|
711
|
+
/** 열릴 때 포커스를 패널 안으로 가둔다. 닫으면 직전 포커스 요소로 복원된다. */
|
|
712
|
+
private activateFocusTrap;
|
|
396
713
|
private teardown;
|
|
714
|
+
/** 소비자가 `role="alertdialog"` 를 지정하지 않으면 dialog */
|
|
715
|
+
private dialogRole;
|
|
716
|
+
/**
|
|
717
|
+
* 본문 설명을 대화상자에 연결한다.
|
|
718
|
+
* `describedby` 로 id 를 직접 주거나, 없으면 본문 컨테이너를 자동으로 가리킨다.
|
|
719
|
+
*/
|
|
720
|
+
private syncDescribedBy;
|
|
397
721
|
private close;
|
|
398
722
|
private handleDocumentKeyDown;
|
|
399
723
|
}
|
|
@@ -673,6 +997,14 @@ declare class DbSelect extends HTMLElement {
|
|
|
673
997
|
private getFilteredOptions;
|
|
674
998
|
private selectOption;
|
|
675
999
|
private dispatchChange;
|
|
1000
|
+
/**
|
|
1001
|
+
* combobox 트리거에 접근 가능한 이름을 붙인다.
|
|
1002
|
+
*
|
|
1003
|
+
* 트리거는 `<div role="combobox">` 라서 `<label for>` 로는 연결되지 않는다.
|
|
1004
|
+
* 라벨이 있으면 `aria-labelledby`, 없으면 소비자가 준 `aria-label`,
|
|
1005
|
+
* 그것도 없으면 placeholder 를 이름으로 쓴다. (A11Y-NAME)
|
|
1006
|
+
*/
|
|
1007
|
+
private syncAccessibleName;
|
|
676
1008
|
private syncState;
|
|
677
1009
|
private syncOpenState;
|
|
678
1010
|
private syncTrigger;
|
|
@@ -725,6 +1057,7 @@ declare class DbRadio extends HTMLElement {
|
|
|
725
1057
|
private dot?;
|
|
726
1058
|
private labelEl?;
|
|
727
1059
|
private built;
|
|
1060
|
+
private userInteracted;
|
|
728
1061
|
get checked(): boolean;
|
|
729
1062
|
set checked(value: boolean);
|
|
730
1063
|
get disabled(): boolean;
|
|
@@ -951,6 +1284,8 @@ declare global {
|
|
|
951
1284
|
declare class DbBackdrop extends HTMLElement {
|
|
952
1285
|
static get observedAttributes(): string[];
|
|
953
1286
|
private portal?;
|
|
1287
|
+
/** 참조 카운트 스크롤락을 이 인스턴스가 잡고 있는지 (PERF-GLOBAL-STATE) */
|
|
1288
|
+
private scrollLocked;
|
|
954
1289
|
private keyHandler;
|
|
955
1290
|
get open(): boolean;
|
|
956
1291
|
set open(value: boolean);
|
|
@@ -964,6 +1299,8 @@ declare class DbBackdrop extends HTMLElement {
|
|
|
964
1299
|
private detachListeners;
|
|
965
1300
|
private handlePortalClick;
|
|
966
1301
|
private render;
|
|
1302
|
+
/** 잠근 적이 있을 때만 푼다 — 참조 카운트가 음수로 새지 않도록 */
|
|
1303
|
+
private releaseScrollLock;
|
|
967
1304
|
}
|
|
968
1305
|
declare global {
|
|
969
1306
|
interface HTMLElementTagNameMap {
|
|
@@ -1037,15 +1374,19 @@ declare class DbDrawer extends HTMLElement {
|
|
|
1037
1374
|
private root?;
|
|
1038
1375
|
private overlay?;
|
|
1039
1376
|
private container?;
|
|
1377
|
+
private focusTrap?;
|
|
1040
1378
|
private contentEl?;
|
|
1041
1379
|
private isMounted;
|
|
1042
1380
|
private isActive;
|
|
1043
1381
|
private enterFrame?;
|
|
1044
1382
|
private exitTimer?;
|
|
1045
|
-
|
|
1383
|
+
/** 참조 카운트 스크롤락을 이 인스턴스가 잡고 있는지 (PERF-GLOBAL-STATE) */
|
|
1384
|
+
private scrollLocked;
|
|
1046
1385
|
private keyHandler;
|
|
1047
1386
|
connectedCallback(): void;
|
|
1048
1387
|
disconnectedCallback(): void;
|
|
1388
|
+
/** 잠근 적이 있을 때만 푼다 — 카운트가 음수로 새지 않도록 */
|
|
1389
|
+
private releaseScrollLock;
|
|
1049
1390
|
attributeChangedCallback(name: string): void;
|
|
1050
1391
|
private isOpenRequested;
|
|
1051
1392
|
private clearTimers;
|
|
@@ -1069,14 +1410,21 @@ declare class DbToast extends HTMLElement {
|
|
|
1069
1410
|
private progressInterval;
|
|
1070
1411
|
private closeTimerId;
|
|
1071
1412
|
private closed;
|
|
1413
|
+
private readonly cleanups;
|
|
1414
|
+
/** 일시정지 시점까지 소비한 시간 (ms) */
|
|
1415
|
+
private elapsedBeforePause;
|
|
1416
|
+
private runStartedAt;
|
|
1417
|
+
private paused;
|
|
1072
1418
|
connectedCallback(): void;
|
|
1073
1419
|
disconnectedCallback(): void;
|
|
1420
|
+
private pauseTimers;
|
|
1421
|
+
private resumeTimers;
|
|
1074
1422
|
attributeChangedCallback(name: string): void;
|
|
1075
1423
|
private clearTimers;
|
|
1076
1424
|
private startTimers;
|
|
1077
1425
|
/** 토스트를 닫고(애니메이션 포함) auto-remove 설정 시 DOM에서 제거합니다. */
|
|
1078
1426
|
close(): void;
|
|
1079
|
-
private
|
|
1427
|
+
private iconForVariant;
|
|
1080
1428
|
private render;
|
|
1081
1429
|
}
|
|
1082
1430
|
declare global {
|
|
@@ -1089,8 +1437,13 @@ declare class DbConfirm extends HTMLElement {
|
|
|
1089
1437
|
static get observedAttributes(): string[];
|
|
1090
1438
|
private root;
|
|
1091
1439
|
private keyHandler;
|
|
1440
|
+
private focusTrap?;
|
|
1441
|
+
/** 참조 카운트 스크롤락을 이 인스턴스가 잡고 있는지 (PERF-GLOBAL-STATE) */
|
|
1442
|
+
private scrollLocked;
|
|
1092
1443
|
connectedCallback(): void;
|
|
1093
1444
|
disconnectedCallback(): void;
|
|
1445
|
+
/** 트랩 해제(=포커스 복원)와 스크롤락 반환을 한 곳에서 처리한다 */
|
|
1446
|
+
private teardownOverlay;
|
|
1094
1447
|
attributeChangedCallback(): void;
|
|
1095
1448
|
private isOpen;
|
|
1096
1449
|
private attachEscape;
|
|
@@ -1389,6 +1742,42 @@ declare global {
|
|
|
1389
1742
|
}
|
|
1390
1743
|
}
|
|
1391
1744
|
|
|
1745
|
+
type DbActivityHeatmapItem = {
|
|
1746
|
+
date: string;
|
|
1747
|
+
value: number;
|
|
1748
|
+
};
|
|
1749
|
+
type DbActivityHeatmapCellDetail = {
|
|
1750
|
+
date: string;
|
|
1751
|
+
value: number;
|
|
1752
|
+
level: number;
|
|
1753
|
+
};
|
|
1754
|
+
declare class DbActivityHeatmap extends HTMLElement {
|
|
1755
|
+
static get observedAttributes(): string[];
|
|
1756
|
+
connectedCallback(): void;
|
|
1757
|
+
disconnectedCallback(): void;
|
|
1758
|
+
attributeChangedCallback(): void;
|
|
1759
|
+
private handleClick;
|
|
1760
|
+
private parseData;
|
|
1761
|
+
private parseEndDate;
|
|
1762
|
+
private parseISODate;
|
|
1763
|
+
private formatISODate;
|
|
1764
|
+
private addDays;
|
|
1765
|
+
private startOfWeek;
|
|
1766
|
+
private isAfter;
|
|
1767
|
+
private buildWeeks;
|
|
1768
|
+
private resolveLevel;
|
|
1769
|
+
private formatMonthLabel;
|
|
1770
|
+
private formatTooltip;
|
|
1771
|
+
private getDayLabels;
|
|
1772
|
+
private getMonthLabels;
|
|
1773
|
+
private render;
|
|
1774
|
+
}
|
|
1775
|
+
declare global {
|
|
1776
|
+
interface HTMLElementTagNameMap {
|
|
1777
|
+
'db-activity-heatmap': DbActivityHeatmap;
|
|
1778
|
+
}
|
|
1779
|
+
}
|
|
1780
|
+
|
|
1392
1781
|
declare class DbImage extends HTMLElement {
|
|
1393
1782
|
private imageState;
|
|
1394
1783
|
private currentSrc;
|
|
@@ -1480,6 +1869,10 @@ interface DbLightboxImage {
|
|
|
1480
1869
|
}
|
|
1481
1870
|
declare class DbLightbox extends HTMLElement {
|
|
1482
1871
|
private portalEl;
|
|
1872
|
+
private focusTrap?;
|
|
1873
|
+
/** 참조 카운트 스크롤락을 이 인스턴스가 잡고 있는지 (PERF-GLOBAL-STATE) */
|
|
1874
|
+
private scrollLocked;
|
|
1875
|
+
private readonly titleId;
|
|
1483
1876
|
private imageEl;
|
|
1484
1877
|
private loadingEl;
|
|
1485
1878
|
private errorEl;
|
|
@@ -1587,8 +1980,8 @@ interface DbNavbarUserProfile {
|
|
|
1587
1980
|
email?: string;
|
|
1588
1981
|
avatar?: string;
|
|
1589
1982
|
badge?: number;
|
|
1590
|
-
badgeVariant?:
|
|
1591
|
-
|
|
1983
|
+
badgeVariant?: BadgeVariant;
|
|
1984
|
+
badgeType?: BadgeType;
|
|
1592
1985
|
badgeText?: string;
|
|
1593
1986
|
}
|
|
1594
1987
|
declare class DbNavbar extends HTMLElement {
|
|
@@ -1721,7 +2114,7 @@ interface DbSidebarItem {
|
|
|
1721
2114
|
selected?: boolean;
|
|
1722
2115
|
/** 프로필 메뉴에서 이 항목 앞에 구분선을 표시합니다. */
|
|
1723
2116
|
dividerBefore?: boolean;
|
|
1724
|
-
/** 클릭 시 이동할 사이드바 패널 id (예: settings) */
|
|
2117
|
+
/** 클릭 시 이동할 사이드바 패널 id (예: authentication, settings) */
|
|
1725
2118
|
openPanel?: string;
|
|
1726
2119
|
children?: DbSidebarItem[];
|
|
1727
2120
|
}
|
|
@@ -1732,6 +2125,20 @@ interface DbSidebarSection {
|
|
|
1732
2125
|
gap?: 'none' | 's' | 'm' | 'l';
|
|
1733
2126
|
items: DbSidebarItem[];
|
|
1734
2127
|
}
|
|
2128
|
+
type DbSidebarPanelMode = 'auto' | 'adjacent' | 'replace';
|
|
2129
|
+
interface DbSidebarPanel {
|
|
2130
|
+
id: string;
|
|
2131
|
+
title: string;
|
|
2132
|
+
description?: string;
|
|
2133
|
+
ariaLabel?: string;
|
|
2134
|
+
backLabel?: string;
|
|
2135
|
+
/**
|
|
2136
|
+
* @deprecated 레이아웃 폭은 전역 `panel-width`만 사용합니다.
|
|
2137
|
+
* 패널마다 다른 폭을 주면 adjacent에서 폭이 흔들립니다.
|
|
2138
|
+
*/
|
|
2139
|
+
width?: number | string;
|
|
2140
|
+
sections: DbSidebarSection[];
|
|
2141
|
+
}
|
|
1735
2142
|
interface DbSidebarUserProfile {
|
|
1736
2143
|
name: string;
|
|
1737
2144
|
email?: string;
|
|
@@ -1755,6 +2162,15 @@ interface DbSidebarPromoBanner {
|
|
|
1755
2162
|
ctaHref?: string;
|
|
1756
2163
|
icon?: string;
|
|
1757
2164
|
}
|
|
2165
|
+
interface DbSidebarUpdateBanner {
|
|
2166
|
+
title: string;
|
|
2167
|
+
description?: string;
|
|
2168
|
+
icon?: string;
|
|
2169
|
+
ctaLabel?: string;
|
|
2170
|
+
ctaHref?: string;
|
|
2171
|
+
/** db-banner variant. 기본 outline(흰 배경+보더). */
|
|
2172
|
+
variant?: 'primary' | 'secondary' | 'tertiary' | 'outline';
|
|
2173
|
+
}
|
|
1758
2174
|
declare class DbSidebar extends HTMLElement {
|
|
1759
2175
|
private expandedItems;
|
|
1760
2176
|
private userMenuOpen;
|
|
@@ -1764,6 +2180,9 @@ declare class DbSidebar extends HTMLElement {
|
|
|
1764
2180
|
private flyoutCloseTimer;
|
|
1765
2181
|
private userFlyoutCloseTimer;
|
|
1766
2182
|
private outsideHandler;
|
|
2183
|
+
private panelMediaQuery;
|
|
2184
|
+
private panelMediaHandler;
|
|
2185
|
+
private resolvedPanelMode;
|
|
1767
2186
|
/**
|
|
1768
2187
|
* db-sidebar는 Light DOM으로 렌더링하므로 이름 있는 자식 요소를 직접 보존하고
|
|
1769
2188
|
* 해당 내비게이션 영역으로 이동해 슬롯처럼 투영합니다.
|
|
@@ -1774,7 +2193,9 @@ declare class DbSidebar extends HTMLElement {
|
|
|
1774
2193
|
static get observedAttributes(): string[];
|
|
1775
2194
|
connectedCallback(): void;
|
|
1776
2195
|
disconnectedCallback(): void;
|
|
1777
|
-
attributeChangedCallback(name: string): void;
|
|
2196
|
+
attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
|
|
2197
|
+
private bindPanelMediaQuery;
|
|
2198
|
+
private unbindPanelMediaQuery;
|
|
1778
2199
|
private seedExpanded;
|
|
1779
2200
|
get items(): DbSidebarItem[];
|
|
1780
2201
|
set items(value: DbSidebarItem[] | string);
|
|
@@ -1804,18 +2225,35 @@ declare class DbSidebar extends HTMLElement {
|
|
|
1804
2225
|
set bottomSections(value: DbSidebarSection[] | string);
|
|
1805
2226
|
get promoBanner(): DbSidebarPromoBanner | null;
|
|
1806
2227
|
set promoBanner(value: DbSidebarPromoBanner | string | null);
|
|
2228
|
+
get updateBanner(): DbSidebarUpdateBanner | null;
|
|
2229
|
+
set updateBanner(value: DbSidebarUpdateBanner | string | null);
|
|
1807
2230
|
get headerType(): 'default' | 'back';
|
|
1808
2231
|
set headerType(value: 'default' | 'back');
|
|
1809
2232
|
get backLabel(): string;
|
|
1810
2233
|
set backLabel(value: string);
|
|
1811
2234
|
get backHref(): string;
|
|
1812
2235
|
set backHref(value: string);
|
|
2236
|
+
get panels(): DbSidebarPanel[];
|
|
2237
|
+
set panels(value: DbSidebarPanel[] | string);
|
|
2238
|
+
/**
|
|
2239
|
+
* @deprecated panels를 사용하세요. 기존 settings-sections는 settings 패널로 자동 변환됩니다.
|
|
2240
|
+
*/
|
|
1813
2241
|
get settingsSections(): DbSidebarSection[];
|
|
1814
2242
|
set settingsSections(value: DbSidebarSection[] | string);
|
|
1815
2243
|
get activePanel(): string;
|
|
1816
2244
|
set activePanel(value: string);
|
|
2245
|
+
get panelMode(): DbSidebarPanelMode;
|
|
2246
|
+
set panelMode(value: DbSidebarPanelMode);
|
|
2247
|
+
get panelWidth(): string;
|
|
2248
|
+
set panelWidth(value: string | number);
|
|
2249
|
+
get panelBreakpoint(): number;
|
|
2250
|
+
set panelBreakpoint(value: number);
|
|
2251
|
+
private normalizeCssLength;
|
|
1817
2252
|
private parseSettingsSections;
|
|
1818
|
-
private
|
|
2253
|
+
private parsePanels;
|
|
2254
|
+
private hasPanels;
|
|
2255
|
+
private findPanel;
|
|
2256
|
+
private getActivePanelConfig;
|
|
1819
2257
|
private parseSections;
|
|
1820
2258
|
private parseUserMenuItems;
|
|
1821
2259
|
private parseUserProfile;
|
|
@@ -1823,6 +2261,7 @@ declare class DbSidebar extends HTMLElement {
|
|
|
1823
2261
|
private parseBottomItems;
|
|
1824
2262
|
private parseBottomSections;
|
|
1825
2263
|
private parsePromoBanner;
|
|
2264
|
+
private parseUpdateBanner;
|
|
1826
2265
|
private getSelectedProject;
|
|
1827
2266
|
private bindOutsideClick;
|
|
1828
2267
|
private closeOverlayMenus;
|
|
@@ -1835,7 +2274,6 @@ declare class DbSidebar extends HTMLElement {
|
|
|
1835
2274
|
private setUserFlyout;
|
|
1836
2275
|
private scheduleUserFlyoutClose;
|
|
1837
2276
|
private syncHostClasses;
|
|
1838
|
-
private syncActivePanelTrack;
|
|
1839
2277
|
private navigateToPanel;
|
|
1840
2278
|
private dispatchItemClick;
|
|
1841
2279
|
private dispatchUserMenuItemClick;
|
|
@@ -1843,6 +2281,7 @@ declare class DbSidebar extends HTMLElement {
|
|
|
1843
2281
|
private dispatchProjectChange;
|
|
1844
2282
|
private dispatchProjectManage;
|
|
1845
2283
|
private dispatchPromoCtaClick;
|
|
2284
|
+
private dispatchUpdateCtaClick;
|
|
1846
2285
|
private createProjectAvatar;
|
|
1847
2286
|
private createProjectEmptyMark;
|
|
1848
2287
|
private createProjectBadge;
|
|
@@ -1853,9 +2292,12 @@ declare class DbSidebar extends HTMLElement {
|
|
|
1853
2292
|
private renderNav;
|
|
1854
2293
|
private renderBottomNav;
|
|
1855
2294
|
private createUserDropdown;
|
|
2295
|
+
private createUpdateBanner;
|
|
1856
2296
|
private createPromoBanner;
|
|
1857
|
-
private
|
|
2297
|
+
private createMainHeader;
|
|
2298
|
+
private createPanelHeader;
|
|
1858
2299
|
private createNavWrapper;
|
|
2300
|
+
private createFooter;
|
|
1859
2301
|
private render;
|
|
1860
2302
|
}
|
|
1861
2303
|
declare global {
|
|
@@ -1946,10 +2388,6 @@ declare global {
|
|
|
1946
2388
|
}
|
|
1947
2389
|
}
|
|
1948
2390
|
|
|
1949
|
-
/**
|
|
1950
|
-
* RangeSlider Web Component
|
|
1951
|
-
* packages/ui RangeSlider.tsx와 DOM·동작·스타일 1:1 동기화
|
|
1952
|
-
*/
|
|
1953
2391
|
declare class DbRangeSlider extends HTMLElement {
|
|
1954
2392
|
static get observedAttributes(): string[];
|
|
1955
2393
|
private built;
|
|
@@ -2005,6 +2443,10 @@ declare class DbRangeSlider extends HTMLElement {
|
|
|
2005
2443
|
private getTrackPercent;
|
|
2006
2444
|
private handleThumbPointerDown;
|
|
2007
2445
|
private handleTrackClick;
|
|
2446
|
+
/**
|
|
2447
|
+
* 포인터 이동을 프레임당 1회로 병합한다. preventDefault 를 쓰지 않으므로 안전하다. (PERF-RAF)
|
|
2448
|
+
* 메서드가 아니라 필드로 선언해야 rafThrottle 로 감쌀 수 있다.
|
|
2449
|
+
*/
|
|
2008
2450
|
private handlePointerMove;
|
|
2009
2451
|
private handlePointerUp;
|
|
2010
2452
|
private setThumbActive;
|
|
@@ -2015,6 +2457,11 @@ declare class DbRangeSlider extends HTMLElement {
|
|
|
2015
2457
|
private dispatchValueChange;
|
|
2016
2458
|
private dispatchRangeChange;
|
|
2017
2459
|
}
|
|
2460
|
+
declare global {
|
|
2461
|
+
interface HTMLElementTagNameMap {
|
|
2462
|
+
'db-range-slider': DbRangeSlider;
|
|
2463
|
+
}
|
|
2464
|
+
}
|
|
2018
2465
|
|
|
2019
2466
|
/**
|
|
2020
2467
|
* SegmentControl Web Component
|
|
@@ -2336,6 +2783,7 @@ declare global {
|
|
|
2336
2783
|
}
|
|
2337
2784
|
|
|
2338
2785
|
declare class DbFloatingActionButton extends HTMLElement {
|
|
2786
|
+
private detachKeyActivation?;
|
|
2339
2787
|
static get observedAttributes(): string[];
|
|
2340
2788
|
get size(): string;
|
|
2341
2789
|
set size(value: string);
|
|
@@ -2366,6 +2814,9 @@ declare class DbBottomSheet extends HTMLElement {
|
|
|
2366
2814
|
private grabBar?;
|
|
2367
2815
|
private contentEl?;
|
|
2368
2816
|
private sheetHeightPercent;
|
|
2817
|
+
private focusTrap?;
|
|
2818
|
+
/** 참조 카운트 스크롤락을 이 인스턴스가 잡고 있는지 (PERF-GLOBAL-STATE) */
|
|
2819
|
+
private scrollLocked;
|
|
2369
2820
|
private isDragging;
|
|
2370
2821
|
private isVisible;
|
|
2371
2822
|
private isMounted;
|
|
@@ -2379,6 +2830,8 @@ declare class DbBottomSheet extends HTMLElement {
|
|
|
2379
2830
|
private shouldMountPortal;
|
|
2380
2831
|
connectedCallback(): void;
|
|
2381
2832
|
disconnectedCallback(): void;
|
|
2833
|
+
/** 트랩 해제(=포커스 복원)와 스크롤락 반환 */
|
|
2834
|
+
private teardownOverlay;
|
|
2382
2835
|
attributeChangedCallback(name: string): void;
|
|
2383
2836
|
private isOpenRequested;
|
|
2384
2837
|
private clearTimers;
|
|
@@ -2465,6 +2918,9 @@ type OnboardingStep = {
|
|
|
2465
2918
|
declare class DbOnboardingModal extends HTMLElement {
|
|
2466
2919
|
static get observedAttributes(): string[];
|
|
2467
2920
|
private root?;
|
|
2921
|
+
private focusTrap?;
|
|
2922
|
+
/** 참조 카운트 스크롤락을 이 인스턴스가 잡고 있는지 (PERF-GLOBAL-STATE) */
|
|
2923
|
+
private scrollLocked;
|
|
2468
2924
|
private internalStep;
|
|
2469
2925
|
private keyHandler;
|
|
2470
2926
|
private isMounted;
|
|
@@ -2591,6 +3047,9 @@ declare class DbDatePicker extends HTMLElement {
|
|
|
2591
3047
|
private boundDocumentMouseDown;
|
|
2592
3048
|
connectedCallback(): void;
|
|
2593
3049
|
disconnectedCallback(): void;
|
|
3050
|
+
/** 열린 달력은 Escape 로 닫히고 포커스는 트리거로 돌아간다 (A11Y-ESCAPE) */
|
|
3051
|
+
private handleDocumentKeyDown;
|
|
3052
|
+
private boundDocumentKeyDown;
|
|
2594
3053
|
attributeChangedCallback(name: string): void;
|
|
2595
3054
|
get value(): string;
|
|
2596
3055
|
set value(value: string);
|
|
@@ -2650,8 +3109,7 @@ declare global {
|
|
|
2650
3109
|
}
|
|
2651
3110
|
}
|
|
2652
3111
|
|
|
2653
|
-
|
|
2654
|
-
type TimeFormat = (typeof FORMATS)[number];
|
|
3112
|
+
type TimeFormat = (typeof TIME_PICKER_FORMATS)[number];
|
|
2655
3113
|
declare class DbTimePicker extends HTMLElement {
|
|
2656
3114
|
static get observedAttributes(): string[];
|
|
2657
3115
|
private built;
|
|
@@ -2672,6 +3130,9 @@ declare class DbTimePicker extends HTMLElement {
|
|
|
2672
3130
|
private boundDocumentMouseDown;
|
|
2673
3131
|
connectedCallback(): void;
|
|
2674
3132
|
disconnectedCallback(): void;
|
|
3133
|
+
/** 열린 드롭다운은 Escape 로 닫히고 포커스는 트리거로 돌아간다 (A11Y-ESCAPE) */
|
|
3134
|
+
private handleDocumentKeyDown;
|
|
3135
|
+
private boundDocumentKeyDown;
|
|
2675
3136
|
attributeChangedCallback(name: string): void;
|
|
2676
3137
|
get value(): string;
|
|
2677
3138
|
set value(value: string);
|
|
@@ -3298,8 +3759,17 @@ declare class DbResizablePanels extends HTMLElement {
|
|
|
3298
3759
|
private startSize;
|
|
3299
3760
|
private startPos;
|
|
3300
3761
|
private currentSize;
|
|
3762
|
+
/** 포인터 이동을 프레임당 1회로 병합하기 위한 핸들 (PERF-RAF) */
|
|
3763
|
+
private rafId;
|
|
3764
|
+
private pendingPoint;
|
|
3301
3765
|
static get observedAttributes(): string[];
|
|
3302
3766
|
connectedCallback(): void;
|
|
3767
|
+
/**
|
|
3768
|
+
* 드래그 중에 엘리먼트가 DOM 에서 제거되면 mouseup/touchend 가 오지 않아
|
|
3769
|
+
* document 리스너가 영원히 남는다. 여기서 확실히 걷어낸다. (PERF-CLEANUP)
|
|
3770
|
+
*/
|
|
3771
|
+
disconnectedCallback(): void;
|
|
3772
|
+
private detachDragListeners;
|
|
3303
3773
|
attributeChangedCallback(): void;
|
|
3304
3774
|
private getBool;
|
|
3305
3775
|
private getNumber;
|
|
@@ -3313,6 +3783,11 @@ declare class DbResizablePanels extends HTMLElement {
|
|
|
3313
3783
|
private onTouchStart;
|
|
3314
3784
|
private startResize;
|
|
3315
3785
|
private onMouseMove;
|
|
3786
|
+
/**
|
|
3787
|
+
* pointer 이동마다 레이아웃을 다시 계산하면 프레임을 넘겨 버린다.
|
|
3788
|
+
* 마지막 좌표만 남겨 두고 다음 프레임에 한 번만 반영한다.
|
|
3789
|
+
*/
|
|
3790
|
+
private scheduleResize;
|
|
3316
3791
|
private onTouchMove;
|
|
3317
3792
|
private applyResize;
|
|
3318
3793
|
private onMouseUp;
|
|
@@ -3365,6 +3840,9 @@ declare class DbVideoPlayer extends HTMLElement {
|
|
|
3365
3840
|
private getPlaylist;
|
|
3366
3841
|
private getCurrentSrc;
|
|
3367
3842
|
private formatTime;
|
|
3843
|
+
/**
|
|
3844
|
+
* 아이콘만 있는 컨트롤 버튼. `label` 이 유일한 접근 가능한 이름이다. (A11Y-NAME)
|
|
3845
|
+
*/
|
|
3368
3846
|
private iconButton;
|
|
3369
3847
|
private skipButton;
|
|
3370
3848
|
private syncFromAttributes;
|
|
@@ -3468,6 +3946,10 @@ declare class DbAudioPlayer extends HTMLElement {
|
|
|
3468
3946
|
private toggleShuffle;
|
|
3469
3947
|
private handlePlaybackRateChange;
|
|
3470
3948
|
private handleKeyDown;
|
|
3949
|
+
/**
|
|
3950
|
+
* 아이콘만 있는 컨트롤 버튼. `label` 은 선택이 아니라 필수다 —
|
|
3951
|
+
* 아이콘은 aria-hidden 이므로 이것이 유일한 접근 가능한 이름이 된다. (A11Y-NAME)
|
|
3952
|
+
*/
|
|
3471
3953
|
private iconButton;
|
|
3472
3954
|
private build;
|
|
3473
3955
|
private get leftControls();
|
|
@@ -3684,6 +4166,7 @@ declare global {
|
|
|
3684
4166
|
}
|
|
3685
4167
|
|
|
3686
4168
|
declare class DbAppBadge extends HTMLElement {
|
|
4169
|
+
private detachKeyActivation?;
|
|
3687
4170
|
static get observedAttributes(): string[];
|
|
3688
4171
|
private built;
|
|
3689
4172
|
private labelEl?;
|
|
@@ -3694,6 +4177,7 @@ declare class DbAppBadge extends HTMLElement {
|
|
|
3694
4177
|
private getStore;
|
|
3695
4178
|
private getIconSize;
|
|
3696
4179
|
private build;
|
|
4180
|
+
disconnectedCallback(): void;
|
|
3697
4181
|
private updateUI;
|
|
3698
4182
|
}
|
|
3699
4183
|
declare global {
|
|
@@ -4148,6 +4632,7 @@ type TutorialStep = {
|
|
|
4148
4632
|
declare class DbTutorial extends HTMLElement {
|
|
4149
4633
|
static get observedAttributes(): string[];
|
|
4150
4634
|
private root?;
|
|
4635
|
+
private focusTrap?;
|
|
4151
4636
|
private overlayEl?;
|
|
4152
4637
|
private popoverEl?;
|
|
4153
4638
|
private closeButtonEl?;
|
|
@@ -4204,6 +4689,8 @@ declare class DbAnimationBackground extends HTMLElement {
|
|
|
4204
4689
|
private syncingControls;
|
|
4205
4690
|
static get observedAttributes(): string[];
|
|
4206
4691
|
connectedCallback(): void;
|
|
4692
|
+
/** 열린 설정 패널은 Escape 로 닫힌다 (A11Y-ESCAPE) */
|
|
4693
|
+
private handleDocumentKeyDown;
|
|
4207
4694
|
disconnectedCallback(): void;
|
|
4208
4695
|
attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null): void;
|
|
4209
4696
|
private getBool;
|
|
@@ -4372,10 +4859,8 @@ declare global {
|
|
|
4372
4859
|
}
|
|
4373
4860
|
}
|
|
4374
4861
|
|
|
4375
|
-
|
|
4376
|
-
type
|
|
4377
|
-
declare const POSITIONS$1: readonly ["bottom-right", "bottom-left", "bottom-center", "top-right", "top-left", "top-center"];
|
|
4378
|
-
type DownloadPosition = (typeof POSITIONS$1)[number];
|
|
4862
|
+
type DownloadStatus = (typeof DOWNLOAD_PROGRESS_STATUSES)[number];
|
|
4863
|
+
type DownloadPosition = (typeof DOWNLOAD_PROGRESS_POSITIONS)[number];
|
|
4379
4864
|
/**
|
|
4380
4865
|
* 우측 하단(기본)에 떠 있는 다운로드 진행률 위젯.
|
|
4381
4866
|
*
|
|
@@ -4462,8 +4947,7 @@ declare global {
|
|
|
4462
4947
|
*
|
|
4463
4948
|
* 분할 자릿수 OTP/PIN 입력. 붙여넣기·화살표·백스페이스를 지원합니다.
|
|
4464
4949
|
*/
|
|
4465
|
-
|
|
4466
|
-
type OtpSize = (typeof SIZES$4)[number];
|
|
4950
|
+
type OtpSize = (typeof OTP_INPUT_SIZES)[number];
|
|
4467
4951
|
declare class DbOtpInput extends HTMLElement {
|
|
4468
4952
|
static formAssociated: boolean;
|
|
4469
4953
|
static get observedAttributes(): string[];
|
|
@@ -4515,8 +4999,7 @@ declare global {
|
|
|
4515
4999
|
* 한국형 휴대폰 본인인증: 통신사 → 번호 → 인증번호 발송 → OTP + 타이머/재전송.
|
|
4516
5000
|
*/
|
|
4517
5001
|
|
|
4518
|
-
|
|
4519
|
-
type Size$2 = (typeof SIZES$3)[number];
|
|
5002
|
+
type Size$2 = (typeof PHONE_VERIFY_SIZES)[number];
|
|
4520
5003
|
declare class DbPhoneVerify extends HTMLElement {
|
|
4521
5004
|
static get observedAttributes(): string[];
|
|
4522
5005
|
private built;
|
|
@@ -4572,8 +5055,7 @@ declare global {
|
|
|
4572
5055
|
* 이메일 인증: code(OTP) 모드 / confirm(메일함 확인) 모드.
|
|
4573
5056
|
*/
|
|
4574
5057
|
|
|
4575
|
-
|
|
4576
|
-
type Size$1 = (typeof SIZES$2)[number];
|
|
5058
|
+
type Size$1 = (typeof EMAIL_VERIFY_SIZES)[number];
|
|
4577
5059
|
declare class DbEmailVerify extends HTMLElement {
|
|
4578
5060
|
static get observedAttributes(): string[];
|
|
4579
5061
|
private built;
|
|
@@ -4631,6 +5113,7 @@ declare global {
|
|
|
4631
5113
|
* 2단계 인증(2FA): 인증앱 / SMS / 이메일 방식 + OTP.
|
|
4632
5114
|
*/
|
|
4633
5115
|
|
|
5116
|
+
type Size = (typeof TWO_FACTOR_SIZES)[number];
|
|
4634
5117
|
declare const METHODS: readonly [{
|
|
4635
5118
|
readonly value: "app";
|
|
4636
5119
|
readonly label: "인증 앱";
|
|
@@ -4641,8 +5124,6 @@ declare const METHODS: readonly [{
|
|
|
4641
5124
|
readonly value: "email";
|
|
4642
5125
|
readonly label: "이메일";
|
|
4643
5126
|
}];
|
|
4644
|
-
declare const SIZES$1: readonly ["s", "m", "l"];
|
|
4645
|
-
type Size = (typeof SIZES$1)[number];
|
|
4646
5127
|
type Method = (typeof METHODS)[number]['value'];
|
|
4647
5128
|
declare class DbTwoFactor extends HTMLElement {
|
|
4648
5129
|
static get observedAttributes(): string[];
|
|
@@ -4690,14 +5171,10 @@ declare global {
|
|
|
4690
5171
|
}
|
|
4691
5172
|
}
|
|
4692
5173
|
|
|
4693
|
-
|
|
4694
|
-
|
|
4695
|
-
|
|
4696
|
-
|
|
4697
|
-
type OrbSize = (typeof SIZES)[number];
|
|
4698
|
-
type OrbVariant = (typeof VARIANTS)[number];
|
|
4699
|
-
type OrbState = (typeof STATES)[number];
|
|
4700
|
-
type OrbTheme = (typeof THEMES)[number];
|
|
5174
|
+
type OrbSize = (typeof CHAT_ORB_SIZES)[number];
|
|
5175
|
+
type OrbVariant = (typeof CHAT_ORB_VARIANTS)[number];
|
|
5176
|
+
type OrbState = (typeof CHAT_ORB_STATES)[number];
|
|
5177
|
+
type OrbTheme = (typeof CHAT_ORB_THEMES)[number];
|
|
4701
5178
|
/**
|
|
4702
5179
|
* AI 어시스턴트를 상징하는 캔버스 기반 애니메이션 오브(구체).
|
|
4703
5180
|
* 광택 있는 3D 구체 위에 유체처럼 흐르는 내부 광원 + 프레넬 림 라이트 + 스페큘러 하이라이트로
|
|
@@ -4890,6 +5367,8 @@ declare class DbChatComposer extends HTMLElement {
|
|
|
4890
5367
|
private fileInput;
|
|
4891
5368
|
private micBtn;
|
|
4892
5369
|
private sendBtn;
|
|
5370
|
+
private dropOverlay;
|
|
5371
|
+
private dragDepth;
|
|
4893
5372
|
get value(): string;
|
|
4894
5373
|
set value(v: string);
|
|
4895
5374
|
get streaming(): boolean;
|
|
@@ -4922,12 +5401,24 @@ declare class DbChatComposer extends HTMLElement {
|
|
|
4922
5401
|
private handleOutsideClick;
|
|
4923
5402
|
private chooseAttachOption;
|
|
4924
5403
|
private handleFilePicked;
|
|
5404
|
+
private hasDragFiles;
|
|
5405
|
+
private handleDragEnter;
|
|
5406
|
+
private handleDragOver;
|
|
5407
|
+
private handleDragLeave;
|
|
5408
|
+
private handleDrop;
|
|
5409
|
+
private showDropOverlay;
|
|
4925
5410
|
private addFile;
|
|
5411
|
+
/** 동일 파일을 두 번 끌어놓거나 다시 선택해도 첨부 목록에는 한 번만 표시한다. */
|
|
5412
|
+
private hasAttachment;
|
|
4926
5413
|
private attachmentMeta;
|
|
4927
5414
|
private handleInput;
|
|
4928
5415
|
private handleKeyDown;
|
|
4929
5416
|
private handleSendClick;
|
|
4930
5417
|
private submit;
|
|
5418
|
+
/** 여러 파일을 첨부합니다. */
|
|
5419
|
+
addFiles(files: File[], type?: string): void;
|
|
5420
|
+
/** 현재 입력·첨부를 전송합니다. */
|
|
5421
|
+
send(): void;
|
|
4931
5422
|
/** 입력 필드를 비웁니다. */
|
|
4932
5423
|
clear(): void;
|
|
4933
5424
|
/** 첨부를 하나 제거합니다. */
|
|
@@ -4986,8 +5477,14 @@ declare global {
|
|
|
4986
5477
|
}
|
|
4987
5478
|
}
|
|
4988
5479
|
|
|
4989
|
-
|
|
4990
|
-
|
|
5480
|
+
type Role = (typeof CHAT_MESSAGE_ROLES)[number];
|
|
5481
|
+
interface DbChatMessageAttachment {
|
|
5482
|
+
name: string;
|
|
5483
|
+
kind?: 'image' | 'video' | 'file';
|
|
5484
|
+
/** 미리보기/다운로드 URL (blob: 또는 https:) */
|
|
5485
|
+
url?: string;
|
|
5486
|
+
mime?: string;
|
|
5487
|
+
}
|
|
4991
5488
|
/**
|
|
4992
5489
|
* 채팅 메시지 한 줄. 본문은 라이트 DOM 자식으로 전달하며 컴포넌트가 감쌉니다.
|
|
4993
5490
|
* 아바타는 `db-avatar` 를 재사용합니다.
|
|
@@ -5001,17 +5498,22 @@ declare class DbChatMessage extends HTMLElement {
|
|
|
5001
5498
|
static get observedAttributes(): string[];
|
|
5002
5499
|
private built;
|
|
5003
5500
|
private contentEl;
|
|
5501
|
+
private mediaEl;
|
|
5004
5502
|
private avatarWrap;
|
|
5005
5503
|
private headerEl;
|
|
5006
5504
|
private nameEl;
|
|
5007
5505
|
private timeEl;
|
|
5008
5506
|
private actionsEl;
|
|
5507
|
+
private _attachments;
|
|
5009
5508
|
get role(): Role;
|
|
5010
5509
|
set role(v: Role);
|
|
5510
|
+
get attachments(): DbChatMessageAttachment[];
|
|
5511
|
+
set attachments(list: DbChatMessageAttachment[]);
|
|
5011
5512
|
connectedCallback(): void;
|
|
5012
5513
|
attributeChangedCallback(name: string): void;
|
|
5013
5514
|
private build;
|
|
5014
5515
|
private sync;
|
|
5516
|
+
private renderAttachments;
|
|
5015
5517
|
private renderAvatar;
|
|
5016
5518
|
private renderActions;
|
|
5017
5519
|
private handleAction;
|
|
@@ -5041,10 +5543,10 @@ declare global {
|
|
|
5041
5543
|
}
|
|
5042
5544
|
}
|
|
5043
5545
|
|
|
5044
|
-
|
|
5045
|
-
type
|
|
5046
|
-
|
|
5047
|
-
type
|
|
5546
|
+
type ChatView = (typeof CHAT_WIDGET_VIEWS)[number];
|
|
5547
|
+
type ChatPosition = (typeof CHAT_WIDGET_POSITIONS)[number];
|
|
5548
|
+
/** 홈 메뉴 선택 시 위젯 내부 이동. `none`이면 이벤트만 발행(호스트가 처리) */
|
|
5549
|
+
type DbChatWidgetMenuAction = 'conversation' | 'help' | 'none';
|
|
5048
5550
|
interface DbChatWidgetMessage {
|
|
5049
5551
|
id?: string;
|
|
5050
5552
|
/** `assistant`(상담원/봇) 또는 `user` */
|
|
@@ -5056,6 +5558,13 @@ interface DbChatWidgetMessage {
|
|
|
5056
5558
|
avatarInitials?: string;
|
|
5057
5559
|
/** 말풍선 액션 (예: 'copy,like,dislike') — db-chat-message 로 전달 */
|
|
5058
5560
|
actions?: string;
|
|
5561
|
+
/** 첨부 파일/이미지 */
|
|
5562
|
+
attachments?: Array<{
|
|
5563
|
+
name: string;
|
|
5564
|
+
kind?: 'image' | 'video' | 'file';
|
|
5565
|
+
url?: string;
|
|
5566
|
+
mime?: string;
|
|
5567
|
+
}>;
|
|
5059
5568
|
}
|
|
5060
5569
|
interface DbChatWidgetConversation {
|
|
5061
5570
|
id?: string;
|
|
@@ -5067,6 +5576,15 @@ interface DbChatWidgetConversation {
|
|
|
5067
5576
|
unread?: number;
|
|
5068
5577
|
online?: boolean;
|
|
5069
5578
|
}
|
|
5579
|
+
/** 홈 바로가기 메뉴 — 필요한 항목만 `menuItems`로 전달 (없으면 숨김) */
|
|
5580
|
+
interface DbChatWidgetMenuItem extends DbChatSuggestion {
|
|
5581
|
+
action?: DbChatWidgetMenuAction;
|
|
5582
|
+
}
|
|
5583
|
+
/** 도움말 문서 — 클릭 시 상세(`article`) 화면으로 이동 */
|
|
5584
|
+
interface DbChatWidgetArticle extends DbChatSuggestion {
|
|
5585
|
+
/** 상세 본문. 없으면 description을 본문으로 사용 */
|
|
5586
|
+
body?: string;
|
|
5587
|
+
}
|
|
5070
5588
|
/**
|
|
5071
5589
|
* FAB 로 열고 닫는 우측 하단 채팅 상담 위젯(껍데기).
|
|
5072
5590
|
*
|
|
@@ -5080,11 +5598,12 @@ interface DbChatWidgetConversation {
|
|
|
5080
5598
|
* @fires db-toggle - FAB 토글 (detail: { open })
|
|
5081
5599
|
* @fires db-view-change - 화면 전환 (detail: { view })
|
|
5082
5600
|
* @fires db-send - 메시지 전송 (detail: { text })
|
|
5083
|
-
* @fires db-menu-select - 홈 메뉴 선택 (detail: { id, value })
|
|
5601
|
+
* @fires db-menu-select - 홈 메뉴 선택 (detail: { id, value, action })
|
|
5084
5602
|
* @fires db-quick-reply - 빠른 답변 선택 (detail: { id, value })
|
|
5085
5603
|
* @fires db-article-select - 도움말 문서 선택 (detail: { id, title })
|
|
5086
5604
|
* @fires db-conversation-select - 대화 목록 선택 (detail: { id })
|
|
5087
5605
|
* @fires db-message-action - 말풍선 액션 (detail: { action, text })
|
|
5606
|
+
* @fires db-start-chat - 대화 시작 CTA (홈·메시지 empty)
|
|
5088
5607
|
*
|
|
5089
5608
|
* @example
|
|
5090
5609
|
* const chat = document.createElement('db-chat-widget');
|
|
@@ -5103,6 +5622,8 @@ declare class DbChatWidget extends HTMLElement {
|
|
|
5103
5622
|
static get observedAttributes(): string[];
|
|
5104
5623
|
private built;
|
|
5105
5624
|
private typing;
|
|
5625
|
+
private helpQuery;
|
|
5626
|
+
private _activeArticle;
|
|
5106
5627
|
private _messages;
|
|
5107
5628
|
private _conversations;
|
|
5108
5629
|
private _menuItems;
|
|
@@ -5129,16 +5650,24 @@ declare class DbChatWidget extends HTMLElement {
|
|
|
5129
5650
|
get messages(): DbChatWidgetMessage[];
|
|
5130
5651
|
set conversations(v: DbChatWidgetConversation[]);
|
|
5131
5652
|
get conversations(): DbChatWidgetConversation[];
|
|
5132
|
-
set menuItems(v:
|
|
5133
|
-
get menuItems():
|
|
5653
|
+
set menuItems(v: DbChatWidgetMenuItem[]);
|
|
5654
|
+
get menuItems(): DbChatWidgetMenuItem[];
|
|
5134
5655
|
set quickReplies(v: DbChatSuggestion[]);
|
|
5135
5656
|
get quickReplies(): DbChatSuggestion[];
|
|
5136
|
-
set articles(v:
|
|
5137
|
-
get articles():
|
|
5657
|
+
set articles(v: DbChatWidgetArticle[]);
|
|
5658
|
+
get articles(): DbChatWidgetArticle[];
|
|
5138
5659
|
connectedCallback(): void;
|
|
5660
|
+
disconnectedCallback(): void;
|
|
5661
|
+
/** 열린 위젯 패널은 Escape 로 닫히고 포커스는 런처로 돌아간다 (A11Y-ESCAPE) */
|
|
5662
|
+
private handleDocumentKeyDown;
|
|
5139
5663
|
attributeChangedCallback(name: string, oldVal: string | null, newVal: string | null): void;
|
|
5140
5664
|
private hydrateFromAttributes;
|
|
5141
5665
|
private build;
|
|
5666
|
+
private panelDragDepth;
|
|
5667
|
+
private handlePanelDragEnter;
|
|
5668
|
+
private handlePanelDragOver;
|
|
5669
|
+
private handlePanelDragLeave;
|
|
5670
|
+
private handlePanelDrop;
|
|
5142
5671
|
private sync;
|
|
5143
5672
|
private syncOpenState;
|
|
5144
5673
|
private renderBadge;
|
|
@@ -5149,9 +5678,14 @@ declare class DbChatWidget extends HTMLElement {
|
|
|
5149
5678
|
private renderMessages;
|
|
5150
5679
|
private renderConversation;
|
|
5151
5680
|
private renderHelp;
|
|
5681
|
+
private renderHelpResults;
|
|
5682
|
+
private renderArticle;
|
|
5683
|
+
private openArticle;
|
|
5684
|
+
private startConversation;
|
|
5152
5685
|
private buildMessage;
|
|
5153
5686
|
private buildTyping;
|
|
5154
5687
|
private buildEmpty;
|
|
5688
|
+
private buildStartChatButton;
|
|
5155
5689
|
private renderFooter;
|
|
5156
5690
|
private renderNav;
|
|
5157
5691
|
private scrollThreadToEnd;
|
|
@@ -5420,6 +5954,7 @@ interface DbChatRoomMessage {
|
|
|
5420
5954
|
name?: string;
|
|
5421
5955
|
avatarSrc?: string;
|
|
5422
5956
|
avatarInitials?: string;
|
|
5957
|
+
attachments?: DbChatMessageAttachment[];
|
|
5423
5958
|
}
|
|
5424
5959
|
/**
|
|
5425
5960
|
* 사람 간 1:1/그룹 대화 화면. 상단 헤더(상대 정보) + 메시지 스레드 + 하단 컴포저.
|
|
@@ -5439,15 +5974,18 @@ declare class DbChatRoom extends HTMLElement {
|
|
|
5439
5974
|
static get observedAttributes(): string[];
|
|
5440
5975
|
private built;
|
|
5441
5976
|
private typing;
|
|
5977
|
+
private dragDepth;
|
|
5442
5978
|
private _messages;
|
|
5443
5979
|
private headerEl;
|
|
5444
5980
|
private scrollEl;
|
|
5445
5981
|
private threadEl;
|
|
5446
5982
|
private dockEl;
|
|
5983
|
+
private dropOverlay;
|
|
5447
5984
|
private composer;
|
|
5448
5985
|
set messages(v: DbChatRoomMessage[]);
|
|
5449
5986
|
get messages(): DbChatRoomMessage[];
|
|
5450
5987
|
connectedCallback(): void;
|
|
5988
|
+
disconnectedCallback(): void;
|
|
5451
5989
|
attributeChangedCallback(): void;
|
|
5452
5990
|
private build;
|
|
5453
5991
|
private sync;
|
|
@@ -5456,6 +5994,13 @@ declare class DbChatRoom extends HTMLElement {
|
|
|
5456
5994
|
private buildMessage;
|
|
5457
5995
|
private buildTyping;
|
|
5458
5996
|
private scrollToEnd;
|
|
5997
|
+
private nowLabel;
|
|
5998
|
+
private hasDragFiles;
|
|
5999
|
+
private handleDragEnter;
|
|
6000
|
+
private handleDragOver;
|
|
6001
|
+
private handleDragLeave;
|
|
6002
|
+
private handleDrop;
|
|
6003
|
+
private showDropOverlay;
|
|
5459
6004
|
/** 메시지 추가. 추가된 id 반환 */
|
|
5460
6005
|
addMessage(msg: DbChatRoomMessage): string;
|
|
5461
6006
|
/** 전체 메시지 교체 */
|
|
@@ -5479,24 +6024,22 @@ declare global {
|
|
|
5479
6024
|
* @example
|
|
5480
6025
|
* import { toast } from '@designbasekorea/ui-wc';
|
|
5481
6026
|
* toast.success('저장되었습니다');
|
|
5482
|
-
* toast.
|
|
5483
|
-
* const t = toast({ title: '업로드 중…',
|
|
6027
|
+
* toast.danger('오류가 발생했어요', { description: '잠시 후 다시 시도해 주세요' });
|
|
6028
|
+
* const t = toast({ title: '업로드 중…', variant: 'info', duration: 0 });
|
|
5484
6029
|
* t.close();
|
|
5485
6030
|
*/
|
|
5486
6031
|
|
|
5487
|
-
type DbToastStatus = 'info' | 'success' | 'warning' | 'error';
|
|
5488
|
-
type DbToastPosition = 'top-right' | 'top-center' | 'top-left' | 'bottom-right' | 'bottom-center' | 'bottom-left';
|
|
5489
6032
|
interface DbToastOptions {
|
|
5490
6033
|
/** 제목 (필수) */
|
|
5491
6034
|
title: string;
|
|
5492
6035
|
/** 보조 설명 */
|
|
5493
6036
|
description?: string;
|
|
5494
6037
|
/** 상태 색상/아이콘. 기본 'info' */
|
|
5495
|
-
|
|
6038
|
+
variant?: ToastVariant;
|
|
5496
6039
|
/** 자동 닫힘 시간(ms). 0 이하이면 자동으로 닫히지 않음. 기본 5000 */
|
|
5497
6040
|
duration?: number;
|
|
5498
6041
|
/** 표시 위치. 기본 'top-right' */
|
|
5499
|
-
position?:
|
|
6042
|
+
position?: ToastPosition;
|
|
5500
6043
|
/** 닫기 버튼 표시. 기본 true */
|
|
5501
6044
|
showClose?: boolean;
|
|
5502
6045
|
/** 진행 바 표시. 기본 false */
|
|
@@ -5510,16 +6053,16 @@ interface DbToastHandle {
|
|
|
5510
6053
|
/** 토스트를 수동으로 닫습니다(애니메이션 포함). */
|
|
5511
6054
|
close: () => void;
|
|
5512
6055
|
}
|
|
5513
|
-
type DbToastShortcut = (title: string, options?: Omit<DbToastOptions, 'title' | '
|
|
6056
|
+
type DbToastShortcut = (title: string, options?: Omit<DbToastOptions, 'title' | 'variant'>) => DbToastHandle;
|
|
5514
6057
|
interface DbToastApi {
|
|
5515
6058
|
(options: DbToastOptions): DbToastHandle;
|
|
5516
6059
|
show: (options: DbToastOptions) => DbToastHandle;
|
|
5517
6060
|
success: DbToastShortcut;
|
|
5518
|
-
|
|
6061
|
+
danger: DbToastShortcut;
|
|
5519
6062
|
warning: DbToastShortcut;
|
|
5520
6063
|
info: DbToastShortcut;
|
|
5521
6064
|
/** 열려 있는 토스트를 모두 닫습니다. position 지정 시 해당 위치만. */
|
|
5522
|
-
dismissAll: (position?:
|
|
6065
|
+
dismissAll: (position?: ToastPosition) => void;
|
|
5523
6066
|
}
|
|
5524
6067
|
/** 토스트를 띄웁니다. `toast(options)` 와 동일합니다. */
|
|
5525
6068
|
declare function showToast(options: DbToastOptions): DbToastHandle;
|
|
@@ -5553,5 +6096,5 @@ interface DbConfirmOptions {
|
|
|
5553
6096
|
/** 확인 대화상자를 띄우고, 확인 시 true / 취소(ESC·배경 포함) 시 false 로 resolve 합니다. */
|
|
5554
6097
|
declare function confirm(options: DbConfirmOptions): Promise<boolean>;
|
|
5555
6098
|
|
|
5556
|
-
export { DbAccordion, DbAdBanner, DbAiChat, DbAiChatList, DbAlert, DbAnimationBackground, DbAnimationText, DbAppBadge, DbAudioPlayer, DbAvatar, DbBackdrop, DbBadge, DbBanner, DbBottomNavigation, DbBottomSheet, DbBreadcrumbs, DbButton, DbCalendar, DbCard, DbCarousel, DbChatComposer, DbChatList, DbChatMessage, DbChatOrb, DbChatRoom, DbChatSuggestions, DbChatTyping, DbChatWelcome, DbChatWidget, DbCheckbox, DbChip, DbCodeBlock, DbColorPicker, DbColorSwatch, DbConfirm, DbContainer, DbContextMenu, DbCookieBanner, DbCountdown, DbCursorFollower, DbDatePicker, DbDivider, DbDownloadProgress, DbDrawer, DbDropdown, DbDropzone, DbEmailVerify, DbEmptyState, DbFileUploader, DbFloatingActionButton, DbFooter, DbForm, DbGantt, DbGradient, DbGrid, DbGridBackground, DbGridItem, DbImage, DbImageList, DbImagePlaceholder, DbIndicator, DbInput, DbKanban, DbLabel, DbLightbox, DbList, DbLogo, DbLottie, DbMarkdownEditor, DbMarquee, DbMasonry, DbMenuItem, DbModal, DbNavbar, DbOnboardingModal, DbOtpInput, DbPageHeader, DbPagination, DbPhoneVerify, DbPopover, DbProgress, DbProgressStep, DbProgressbar, DbRadio, DbRandomGradient, DbRangeSlider, DbRating, DbReorder, DbResizablePanels, DbScrollArea, DbSearchBar, DbSection, DbSectionAppDownload, DbSectionContact, DbSectionCta, DbSectionFaq, DbSectionFeature, DbSectionFeatureGrid, DbSectionHero, DbSectionLogoCloud, DbSectionPricing, DbSectionStats, DbSectionTestimonials, DbSegmentControl, DbSelect, DbShare, DbSidebar, DbSignature, DbSkeleton, DbSpinner, DbSplitView, DbStack, DbStat, DbStepper, DbTable, DbTabs, DbTestimonial, DbTextarea, DbTimePicker, DbTimeline, DbToast, DbToggle, DbToolbar, DbTooltip, DbTopBanner, DbTutorial, DbTwoFactor, DbVideoPlayer, DbYouTubePlayer, confirm, confirm as dbConfirm, toast as dbToast, showToast, toast };
|
|
5557
|
-
export type { CalendarEventData, CalendarEventType, DbAiChatItem, DbAlertAction, DbArtifactOptions, DbBannerAction, DbBottomNavigationItem, DbChatArtifactRef, DbChatAttachOption, DbChatListItem, DbChatMessageData, DbChatRoomMessage, DbChatSuggestion, DbChatTool, DbChatWidgetConversation, DbChatWidgetMessage, DbColorSwatchCustomType, DbColorSwatchItem, DbColorSwatchShape, DbColorSwatchSize, DbConfirmOptions, DbConfirmVariant, DbFooterCompanyInfo, DbFooterFamilySite, DbFooterLink, DbFooterLinkColumn, DbFooterSocialLink, DbFormFieldData, DbGanttAssignee, DbGanttGroup, DbGanttItem, DbGanttItemStatus, DbGanttRow, DbImageListItem, DbKanbanAssignee, DbKanbanCard, DbKanbanColumn, DbKanbanPriority, DbKanbanTag, DbLightboxImage, DbNavbarItem, DbNavbarUserProfile, DbPageHeaderTabItem, DbSharePlatform, DbShareVariant, DbSidebarItem, DbSidebarProject, DbSidebarPromoBanner, DbSidebarSection, DbSidebarUserProfile, DbSignaturePoint, DbSignatureVariant, DbStatChange, DbTimelineItem, DbToastApi, DbToastHandle, DbToastOptions,
|
|
6099
|
+
export { CleanupBag, DbAccordion, DbActivityHeatmap, DbAdBanner, DbAiChat, DbAiChatList, DbAlert, DbAnimationBackground, DbAnimationText, DbAppBadge, DbAudioPlayer, DbAvatar, DbBackdrop, DbBadge, DbBanner, DbBottomNavigation, DbBottomSheet, DbBreadcrumbs, DbButton, DbCalendar, DbCard, DbCarousel, DbChatComposer, DbChatList, DbChatMessage, DbChatOrb, DbChatRoom, DbChatSuggestions, DbChatTyping, DbChatWelcome, DbChatWidget, DbCheckbox, DbChip, DbCodeBlock, DbColorPicker, DbColorSwatch, DbConfirm, DbContainer, DbContextMenu, DbCookieBanner, DbCountdown, DbCursorFollower, DbDatePicker, DbDivider, DbDownloadProgress, DbDrawer, DbDropdown, DbDropzone, DbElement, DbEmailVerify, DbEmptyState, DbFileUploader, DbFloatingActionButton, DbFooter, DbForm, DbGantt, DbGradient, DbGrid, DbGridBackground, DbGridItem, DbImage, DbImageList, DbImagePlaceholder, DbIndicator, DbInput, DbKanban, DbLabel, DbLightbox, DbList, DbLogo, DbLottie, DbMarkdownEditor, DbMarquee, DbMasonry, DbMenuItem, DbModal, DbNavbar, DbOnboardingModal, DbOtpInput, DbPageHeader, DbPagination, DbPhoneVerify, DbPopover, DbProgress, DbProgressStep, DbProgressbar, DbRadio, DbRandomGradient, DbRangeSlider, DbRating, DbReorder, DbResizablePanels, DbScrollArea, DbSearchBar, DbSection, DbSectionAppDownload, DbSectionContact, DbSectionCta, DbSectionFaq, DbSectionFeature, DbSectionFeatureGrid, DbSectionHero, DbSectionLogoCloud, DbSectionPricing, DbSectionStats, DbSectionTestimonials, DbSegmentControl, DbSelect, DbShare, DbSidebar, DbSignature, DbSkeleton, DbSpinner, DbSplitView, DbStack, DbStat, DbStepper, DbTable, DbTabs, DbTestimonial, DbTextarea, DbTimePicker, DbTimeline, DbToast, DbToggle, DbToolbar, DbTooltip, DbTopBanner, DbTutorial, DbTwoFactor, DbVideoPlayer, DbYouTubePlayer, activateOnKey, announce, confirm, createFocusTrap, createSrOnly, confirm as dbConfirm, dbResetLocale, dbSetLocale, toast as dbToast, dbUid, ensureId, getTabbables, labelFrom, lockScroll, politenessForTone, rafThrottle, scrollLockDepth, setAccessibleName, showToast, t, toast, unlockScroll };
|
|
6100
|
+
export type { CalendarEventData, CalendarEventType, Cleanup, DbActivityHeatmapCellDetail, DbActivityHeatmapItem, DbAiChatItem, DbAlertAction, DbArtifactOptions, DbBannerAction, DbBottomNavigationItem, DbChatArtifactRef, DbChatAttachOption, DbChatListItem, DbChatMessageAttachment, DbChatMessageData, DbChatRoomMessage, DbChatSuggestion, DbChatTool, DbChatWidgetArticle, DbChatWidgetConversation, DbChatWidgetMenuAction, DbChatWidgetMenuItem, DbChatWidgetMessage, DbColorSwatchCustomType, DbColorSwatchItem, DbColorSwatchShape, DbColorSwatchSize, DbConfirmOptions, DbConfirmVariant, DbFooterCompanyInfo, DbFooterFamilySite, DbFooterLink, DbFooterLinkColumn, DbFooterSocialLink, DbFormFieldData, DbGanttAssignee, DbGanttGroup, DbGanttItem, DbGanttItemStatus, DbGanttRow, DbImageListItem, DbKanbanAssignee, DbKanbanCard, DbKanbanColumn, DbKanbanPriority, DbKanbanTag, DbLightboxImage, DbNavbarItem, DbNavbarUserProfile, DbPageHeaderTabItem, DbSharePlatform, DbShareVariant, DbSidebarItem, DbSidebarProject, DbSidebarPromoBanner, DbSidebarSection, DbSidebarUserProfile, DbSignaturePoint, DbSignatureVariant, DbStatChange, DbStringKey, DbStrings, DbTimelineItem, DbToastApi, DbToastHandle, DbToastOptions, FocusTrap, FocusTrapOptions };
|