@designbasekorea/ui-wc 0.11.0 → 0.12.0

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 CHANGED
@@ -1,5 +1,12 @@
1
1
  # 변경 이력
2
2
 
3
+ ## 0.12.0 - 2026-11-04
4
+
5
+ - SelectionBar: tertiary Clear/해제, 기본 s 크기와 하위 버튼·Select 크기 동기화, 1~2개 아이콘+짧은 14px 텍스트 / 3개 이상 아이콘형 예제·툴팁 및 플로팅 minWidth·maxWidth 추가.
6
+
7
+ - SelectionBar 추가: 선택 개수·해제, inline 밀기 / floating 하단 중앙 배치, 화면·패널 범위, 실제 Button 조합, 다국어·다크모드·반응형 및 scoped Escape·포커스 복원.
8
+
9
+
3
10
  ## 0.11.0 - 2026-11-03
4
11
 
5
12
  - 다크모드 중립 Tooltip의 글자·배경 대비와 화살표 표면 연결 수정.
package/README.md CHANGED
@@ -606,3 +606,28 @@ Place one container in `slot="actions"` to add toggles, buttons or menus to the
606
606
  </ToolPanel>
607
607
  ```
608
608
 
609
+
610
+ ### SelectionBar · 선택 항목 일괄 작업
611
+
612
+ `SelectionBar` / `db-selection-bar` shows selected count, clear selection and consumer-owned Buttons in a single `div slot="actions"`. The app controls `count` and selected IDs. `onClear` / `db-clear` requests clearing; it does not change your data. `count=0` removes the bar from layout and keyboard navigation. When focus was inside the hidden bar, it returns to the control focused when selection began, if still present.
613
+
614
+ - `placement="inline"` (default): appears in normal document flow and pushes following list/table content. Place it near the relevant content.
615
+ - `placement="floating"`: fixed at the viewport bottom center, without pushing content. Render near the app root outside transformed ancestors when viewport positioning is required. Leave enough content inset for the last row to remain reachable. A custom `--db-selection-bar-offset` adjusts bottom/side spacing; safe-area insets are included.
616
+ - `floatingScope="container"` / `floating-scope="container"`: uses absolute positioning inside a **position:relative** parent instead of the viewport. Give the parent a meaningful height. Avoid placing an absolute bar in an ancestor that clips its actions.
617
+ - `minWidth` / `min-width` (default 0), `maxWidth` / `max-width` (default 960): floating width limits in pixels. Max width and the available viewport/panel width cap the minimum, so a large minimum never pushes the bar outside a narrow screen. Non-finite/negative values reset to defaults; max-width must be positive. CSS overrides: `--db-selection-bar-min-width` and `--db-selection-bar-max-width`.
618
+ - `size="s" | "m"` (default s, shared by clear and slotted Buttons/Selects), `disabled`, `selectionLabel` / `selection-label` (`{count}` placeholder), `clearLabel` / `clear-label`; default copy follows `dbUseLocale` / `dbSetLocale`.
619
+ - Scoped Escape requests clearing only while focus is inside the bar, outside text fields and menus. Tab order follows normal Button order; selection does not forcibly move focus.
620
+ - `disabled` temporarily disables owned clear and slotted Buttons/Selects, preserving their prior disabled state. Action loading/error behavior belongs to the app.
621
+
622
+ ```tsx
623
+ <SelectionBar count={selectedIds.length} onClear={() => setSelectedIds([])}>
624
+ <div slot="actions">
625
+ <Tooltip content="Download selected list" focusTarget="child"><Button size="s" variant="secondary" aria-label="Download" onPress={() => exportSelected(selectedIds)}><DownloadIcon size={16}/>Download</Button></Tooltip>
626
+ <Tooltip content="Move to trash" focusTarget="child"><Button size="s" variant="destructive" destructiveStyle="soft" aria-label="Trash" onPress={() => moveToTrash(selectedIds)}><TrashIcon size={16}/>Trash</Button></Tooltip>
627
+ </div>
628
+ </SelectionBar>
629
+ ```
630
+
631
+ Use icons with short 14px text labels for one or two actions. For three or more actions, use the compact icon-only composition with Tooltips and accessible names. Clear uses tertiary styling and the short “Clear” / “해제” default label. SelectionBar keeps all child Button/Select sizes aligned and restores their original size when removed.
632
+
633
+ `ContextBar` remains the contextual canvas tool strip; use SelectionBar for bulk operations on selected files/rows. Theme defaults use existing semantic tokens. Style overrides: `--db-selection-bar-bg`, `--db-selection-bar-fg`, `--db-selection-bar-border`, `--db-selection-bar-gap`, `--db-selection-bar-offset`, `--db-selection-bar-z-index`.
@@ -0,0 +1,42 @@
1
+ import './db-button.js';
2
+
3
+ /** Controlled bulk-selection surface. Consumer-owned action DOM is never moved or cloned. */
4
+ declare class DbSelectionBar extends HTMLElement {
5
+ static get observedAttributes(): string[];
6
+ private summary?;
7
+ private status?;
8
+ private clear?;
9
+ private clearText?;
10
+ private observer?;
11
+ private unsubscribe?;
12
+ private visible;
13
+ private origin?;
14
+ private originalSizes;
15
+ private disabledControls;
16
+ get count(): number;
17
+ set count(value: number);
18
+ get placement(): 'inline' | 'floating';
19
+ set placement(value: 'inline' | 'floating');
20
+ private widthLimit;
21
+ get minWidth(): number;
22
+ set minWidth(value: number);
23
+ get maxWidth(): number;
24
+ set maxWidth(value: number);
25
+ get disabled(): boolean;
26
+ set disabled(value: boolean);
27
+ connectedCallback(): void;
28
+ disconnectedCallback(): void;
29
+ attributeChangedCallback(): void;
30
+ private keydown;
31
+ private requestClear;
32
+ private set;
33
+ private restoreControls;
34
+ private sync;
35
+ }
36
+ declare global {
37
+ interface HTMLElementTagNameMap {
38
+ 'db-selection-bar': DbSelectionBar;
39
+ }
40
+ }
41
+
42
+ export { DbSelectionBar };
@@ -0,0 +1 @@
1
+ import"./db-button.js";import{subscribeDbLocale as t,t as e}from"../core/i18n.js";import{dbUid as s}from"../core/uid.js";class DbSelectionBar extends HTMLElement{constructor(){super(...arguments),this.visible=!1,this.originalSizes=new Map,this.disabledControls=new Map,this.keydown=t=>{"Escape"!==t.key||t.defaultPrevented||t.isComposing||t.composedPath().some(t=>t instanceof HTMLElement&&(t.matches('input,textarea,select,[role="textbox"],[role="dialog"],[role^="menu"]')||t.isContentEditable))||this.count&&!this.disabled&&(t.preventDefault(),this.requestClear("escape"))}}static get observedAttributes(){return["count","placement","floating-scope","size","disabled","selection-label","clear-label","min-width","max-width","aria-label"]}get count(){const t=Number(this.getAttribute("count")??0);return Number.isFinite(t)?Math.max(0,Math.floor(t)):0}set count(t){this.setAttribute("count",String(t))}get placement(){return"floating"===this.getAttribute("placement")?"floating":"inline"}set placement(t){this.setAttribute("placement",t)}widthLimit(t,e){const s=this.getAttribute(t);if(!s?.trim())return e;const i=Number(s);return Number.isFinite(i)&&("max-width"===t?i>0:i>=0)?i:e}get minWidth(){return this.widthLimit("min-width",0)}set minWidth(t){this.setAttribute("min-width",String(t))}get maxWidth(){return this.widthLimit("max-width",960)}set maxWidth(t){this.setAttribute("max-width",String(t))}get disabled(){return this.hasAttribute("disabled")}set disabled(t){this.toggleAttribute("disabled",t)}connectedCallback(){this.classList.add("designbase-wc-selection-bar"),this.summary||(this.summary=document.createElement("div"),this.summary.className="designbase-wc-selection-bar__summary",this.summary.dataset.selectionBarChrome="",this.summary.id=s("selection-bar"),this.status=document.createElement("span"),this.status.className="designbase-wc-selection-bar__status",this.status.setAttribute("role","status"),this.status.setAttribute("aria-live","polite"),this.status.setAttribute("aria-atomic","true"),this.clear=document.createElement("db-button"),this.clear.setAttribute("variant","tertiary"),this.clearText=document.createElement("span"),this.clear.append(this.clearText),this.clear.addEventListener("db-click",()=>this.requestClear("button")),this.summary.append(this.status,this.clear),this.prepend(this.summary)),this.setAttribute("role","region"),this.addEventListener("keydown",this.keydown),this.sync(),this.observer=new MutationObserver(()=>this.sync()),this.observer.observe(this,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["disabled"]}),this.unsubscribe=t(()=>this.sync())}disconnectedCallback(){this.observer?.disconnect(),this.unsubscribe?.(),this.removeEventListener("keydown",this.keydown),this.restoreControls();for(const[t,e]of this.originalSizes)this.set(t,"size",e);this.originalSizes.clear()}attributeChangedCallback(){this.isConnected&&this.sync()}requestClear(t){!this.disabled&&this.count&&this.dispatchEvent(new CustomEvent("db-clear",{detail:{count:this.count,source:t},bubbles:!0,composed:!0}))}set(t,e,s){null===s?t.hasAttribute(e)&&t.removeAttribute(e):t.getAttribute(e)!==s&&t.setAttribute(e,s)}restoreControls(){for(const[t,e]of this.disabledControls)this.set(t,"disabled",e);this.disabledControls.clear()}sync(){if(!this.summary||!this.status||!this.clear)return;const t=this.count>0;if(t&&!this.visible){const t=this.ownerDocument.activeElement;this.origin=t instanceof HTMLElement&&!this.contains(t)?t:void 0}!t&&this.visible&&this.contains(this.ownerDocument.activeElement)&&this.origin?.isConnected&&this.origin.focus({preventScroll:!0}),this.visible=t,this.set(this,"data-visible",t?"":null),this.set(this,"aria-hidden",t?null:"true"),this.dataset.placement=this.placement,this.style.setProperty("--_db-selection-bar-min-width",this.minWidth+"px"),this.style.setProperty("--_db-selection-bar-max-width",this.maxWidth+"px"),this.dataset.scope="container"===this.getAttribute("floating-scope")?"container":"viewport",this.dataset.size="m"===this.getAttribute("size")?"m":"s";const s=(this.getAttribute("selection-label")||e("selectionBar.count")).split("{count}").join(String(this.count));this.status.textContent!==s&&(this.status.textContent=s);const i=this.getAttribute("clear-label")||e("selectionBar.clear");this.clearText&&this.clearText.textContent!==i&&(this.clearText.textContent=i),this.set(this.clear,"size",this.dataset.size),this.set(this.clear,"disabled",this.disabled?"":null),this.set(this,"aria-description",this.getAttribute("aria-label")?null:e("selectionBar.label")),this.hasAttribute("aria-labelledby")&&this.getAttribute("aria-labelledby")!==this.summary.id||this.set(this,"aria-labelledby",this.hasAttribute("aria-label")?null:this.summary.id),this.set(this.summary,"aria-label",e("selectionBar.label"));const a=[...this.querySelectorAll(':scope > [slot="actions"] db-button, :scope > [slot="actions"] db-select, :scope > [slot="actions"] button')].filter(t=>"button"!==t.localName||!t.closest("db-button,db-select")),r=a.filter(t=>t.matches("db-button,db-select"));for(const[t,e]of this.originalSizes)r.includes(t)||(this.set(t,"size",e),this.originalSizes.delete(t));for(const t of r)this.originalSizes.has(t)||this.originalSizes.set(t,t.getAttribute("size")),this.set(t,"size",this.dataset.size);for(const[t,e]of this.disabledControls)a.includes(t)||(this.set(t,"disabled",e),this.disabledControls.delete(t));if(this.disabled)for(const t of a)this.disabledControls.has(t)||this.disabledControls.set(t,t.getAttribute("disabled")),this.set(t,"disabled","");else this.restoreControls()}}customElements.get("db-selection-bar")||customElements.define("db-selection-bar",DbSelectionBar);export{DbSelectionBar};
@@ -1 +1 @@
1
- const e={"zoom.label":"Zoom controls","zoom.out":"Zoom out","zoom.in":"Zoom in","zoom.value":"Zoom level","zoom.fit":"Fit to screen","zoom.fitShort":"Fit","zoom.fullscreen":"Enter fullscreen","zoom.exitFullscreen":"Exit fullscreen","zoom.fullscreenError":"Fullscreen is unavailable.","toolPanel.close":"Close panel","toolPanel.tabs":"Panel tabs","toolLayout.resize.sidebar":"Resize sidebar width","toolLayout.resize.inspector":"Resize inspector width","toolLayout.resize.bottom":"Resize bottom panel height","password.weak":"Weak","password.fair":"Fair","password.good":"Strong","password.veryStrong":"Very strong","rating.high":"Very good","rating.medium":"Average","rating.low":"Low","rating.label":"Rating {value}","rating.review":"{count} review","rating.reviews":"{count} reviews","countdown.days":"Days","countdown.hours":"Hours","countdown.minutes":"Minutes","countdown.seconds":"Seconds","upload.title":"Drag files here or click to choose","upload.choose":"Choose files","upload.allFormats":"All file types supported","upload.maximum":" (up to {size})","upload.files":"Uploaded files ({count})","upload.retry":"Retry","upload.remove":"Remove","upload.illustration":"Upload illustration","creditCard.security":"Security code {code}","creditCard.label":"{issuer} card{lastFour}, flip","creditCard.ending":", ending in {digits}","creditCard.front":"Front","creditCard.back":"Back","creditCard.showing":"Showing {side}","creditCard.expiry":"Expires {expiry}","creditCard.show":"Press to show {side}","flight.scheduled":"Scheduled","flight.boarding":"Boarding","flight.in-flight":"In flight","flight.landed":"Landed","flight.delayed":"Delayed","flight.cancelled":"Cancelled","flight.title":"Flight status","flight.progress":"Journey progress","boardingPass.origin":"From","boardingPass.destination":"To","boardingPass.passenger":"Passenger","boardingPass.service":"Flight","boardingPass.date":"Date","boardingPass.boarding":"Boarding","boardingPass.departure":"Departure","boardingPass.arrival":"Arrival","boardingPass.terminal":"Terminal","boardingPass.gate":"Gate","boardingPass.seat":"Seat","boardingPass.travelClass":"Class","boardingPass.title":"Boarding pass","wallet.title":"My boarding passes","wallet.empty":"No boarding passes yet.","wallet.journeys":"Choose a journey","receipt.quantity":"Qty","receipt.subtotal":"Subtotal","receipt.discount":"Discount","receipt.tax":"Tax","receipt.total":"Total","receipt.payment":"Payment","receipt.empty":"No items to display.","receipt.invalid":"Check the items and amounts.","receipt.title":"Receipt","ticket.title":"Ticket","paper.codeImage":"Code image","aiElement.emptyFolder":"Empty folder","aiElement.noFiles":"No files to display.","attachment.title":"Attachments","attachment.empty":"No attachments yet.","attachment.queued":"Queued","attachment.uploading":"Uploading","attachment.processing":"Processing","attachment.ready":"Ready","attachment.error":"Failed","attachment.cancelled":"Cancelled","attachment.unknown":"Checking progress…","attachment.cancel":"Cancel","attachment.retry":"Retry","attachment.remove":"Remove from list","attachment.open":"View details","attachment.reload":"Reload","workspace.members":"Workspace members","workspace.invite":"Invite members","workspace.email":"Email","workspace.role":"Role","workspace.chooseRole":"Choose a role","workspace.description":"Review the email address and role of the person you want to invite.","workspace.submit":"Send invitation","workspace.emailError":"Enter a valid email address of up to 254 characters.","workspace.roleError":"Choose a role for the invitation.","workspace.retry":"Reload","workspace.reinvite":"Invite again","workspace.active":"Active","workspace.invited":"Invitation pending","workspace.expired":"Invitation expired","workspace.empty":"No members to display yet.","aiElement.pending":"Pending","aiElement.running":"In progress","aiElement.complete":"Complete","aiElement.error":"Failed","aiElement.cancelled":"Cancelled","aiElement.approval":"Awaiting approval","aiElement.researching":"Reviewing sources","aiElement.researched":"View research","aiElement.thinking":"Thinking","aiElement.reasoning":"Response summary","aiElement.plan":"Plan","aiElement.queue":"Queued requests","aiElement.remove":"Remove","aiElement.queueEmpty":"No queued requests.","aiElement.sources":"Sources","aiElement.citation":"Source","aiElement.checkpoint":"Checkpoint saved","aiElement.restore":"Restore from here","aiElement.confirmation":"Proceed with this action?","aiElement.allow":"Allow","aiElement.reject":"Reject","aiElement.accepted":"Action approved.","aiElement.rejected":"Action rejected.","aiElement.context":"Context","aiElement.tokens":"Tokens","aiElement.unknown":"Usage is not available yet.","aiElement.files":"Files","aiElement.task":"Task progress","aiElement.subagent":"Subagent","aiElement.tool":"Tool call","aiElement.terminal":"Terminal","aiElement.stackTrace":"Error details","aiElement.tests":"Test results","aiElement.passed":"Passed","aiElement.failed":"Failed","aiElement.input":"Input","aiElement.output":"Output","aiElement.user":"User","aiElement.assistant":"AI response","aiElement.copy":"Copy","aiElement.regenerate":"Regenerate","aiElement.like":"Like","aiElement.dislike":"Dislike","aiElement.latest":"Latest response","aiElement.conversation":"AI conversation","notification.title":"Notifications","notification.filters":"Notification filters","notification.all":"All","notification.unread":"Unread","notification.readAll":"Mark displayed notifications as read","notification.markRead":"Mark as read","notification.retry":"Reload","notification.empty":"No notifications yet.","notification.caughtUp":"You’re all caught up.","notification.countUnknown":"Needs review","aiModel.label":"Model","aiModel.choose":"Choose a model","aiModel.empty":"No models are available right now.","aiModel.capabilities":"Capabilities","aiModel.usage":"Usage unit","aiQuote.expires":"Quote expires","aiQuote.title":"Execution estimate","aiQuote.reserved":"Maximum credit reservation","aiQuote.providerCost":"Estimated provider cost","aiQuote.pricingVersion":"Pricing version","aiQuote.unknown":"Unconfirmed","aiQuote.idle":"Choose a model and enter a request to get an estimate.","aiQuote.loading":"Checking the estimate…","aiQuote.executing":"Processing your request. Do not submit it again.","aiQuote.stale":"The model or input has changed. Refresh the estimate.","aiQuote.expired":"The estimate has expired. Request a new estimate.","aiQuote.balanceUnknown":"Your balance is unavailable. Refresh to try again.","aiQuote.insufficient":"Additional credits needed:","aiQuote.ready":"Credits are reserved when execution starts and settled against actual usage when it finishes.","aiQuote.refresh":"Refresh estimate","aiQuote.request":"Get estimate","aiQuote.execute":"Run","plan.current":"Current plan","plan.usage":"Usage this period","plan.allowed":"Included","plan.locked":"Not included","plan.manage":"Manage plan","plan.retry":"Reload","history.title":"Credit history","history.empty":"No history yet.","history.unresolved":"Checking","history.grant":"Granted","history.charge":"Used","history.hold":"Reserved · not settled","history.release":"Reservation released","credits.choosePlan":"Credits to add","credits.rechargeDescription":"Choose an amount and review the price and terms.","credits.paymentAmount":"Payment amount","credits.paymentPending":"Checking payment status","credits.remaining":"Remaining credits","credits.available":"Available credits","credits.unit":"credits","credits.held":"Reserved","credits.spent":"Total used","credits.charged":"Charged","credits.low":"Your credit balance is running low.","credits.recharge":"Add credits","credits.checkout":"Continue to payment","credits.noPlans":"No credit packs are available right now.","aiTask.title":"AI task","aiTask.idle":"Not started","aiTask.queued":"Queued","aiTask.running":"Running","aiTask.succeeded":"Complete","aiTask.failed":"Failed","aiTask.cancelled":"Cancelled","aiTask.needs_attention":"Review needed","aiTask.attentionDescription":"We’re checking the result and usage. Reserved credits remain on hold until the review is complete.",close:"Close","modal.close":"Close modal","drawer.close":"Close drawer","dialog.close":"Close dialog","toast.close":"Dismiss notification",clear:"Clear",clearAll:"Clear all",loading:"Loading",required:"Required",optional:"Optional",error:"Error",success:"Success",warning:"Warning",info:"Information",previous:"Previous",next:"Next","select.placeholder":"Select…","select.noResults":"No results","navigationRail.label":"Main navigation","navigationRail.newNotification":"New notification","navigationRail.notifications":"Notifications","tabs.label":"Tabs","pagination.label":"Pagination","search.label":"Search","media.play":"Play","media.pause":"Pause","media.mute":"Mute","media.unmute":"Unmute","media.settings":"Settings","media.shuffle":"Shuffle","media.repeat":"Repeat","media.previous":"Previous track","media.next":"Next track","media.fullscreen":"Full screen","confirm.ok":"Confirm","confirm.cancel":"Cancel","carousel.slide":"slide","carousel.role":"carousel","carousel.previous":"Previous slide","carousel.next":"Next slide","breadcrumbs.expand":"Show hidden path","input.showPassword":"Show password","input.hidePassword":"Hide password","input.clearSearch":"Clear search","verify.done":"Verified","verify.phoneDone":"Your phone number has been verified.","bentoCard.cta":"View details","tweetCard.loading":"Loading post…","tweetCard.error":"Unable to load this post.","tweetCard.viewOnTwitter":"View on X","tweetCard.like":"Like","tweetCard.retweet":"Repost","tweetCard.reply":"Reply","tweetCard.verified":"Verified account","tweetCard.retry":"Try again","chatComposer.placeholder":"Type a message…","chatComposer.send":"Send","chatComposer.stop":"Stop generating","chatComposer.attach":"Attach","voice.start":"Voice input","voice.stop":"Finish dictation","voice.cancel":"Cancel voice input","voice.starting":"Connecting microphone","voice.listening":"Listening","voice.stopping":"Finishing transcription","voice.error":"Voice recognition failed","voice.unsupported":"Voice input not supported"};export{e as ENGLISH_STRINGS};
1
+ const e={"selectionBar.count":"{count} selected","selectionBar.clear":"Clear","selectionBar.label":"Selection actions","zoom.label":"Zoom controls","zoom.out":"Zoom out","zoom.in":"Zoom in","zoom.value":"Zoom level","zoom.fit":"Fit to screen","zoom.fitShort":"Fit","zoom.fullscreen":"Enter fullscreen","zoom.exitFullscreen":"Exit fullscreen","zoom.fullscreenError":"Fullscreen is unavailable.","toolPanel.close":"Close panel","toolPanel.tabs":"Panel tabs","toolLayout.resize.sidebar":"Resize sidebar width","toolLayout.resize.inspector":"Resize inspector width","toolLayout.resize.bottom":"Resize bottom panel height","password.weak":"Weak","password.fair":"Fair","password.good":"Strong","password.veryStrong":"Very strong","rating.high":"Very good","rating.medium":"Average","rating.low":"Low","rating.label":"Rating {value}","rating.review":"{count} review","rating.reviews":"{count} reviews","countdown.days":"Days","countdown.hours":"Hours","countdown.minutes":"Minutes","countdown.seconds":"Seconds","upload.title":"Drag files here or click to choose","upload.choose":"Choose files","upload.allFormats":"All file types supported","upload.maximum":" (up to {size})","upload.files":"Uploaded files ({count})","upload.retry":"Retry","upload.remove":"Remove","upload.illustration":"Upload illustration","creditCard.security":"Security code {code}","creditCard.label":"{issuer} card{lastFour}, flip","creditCard.ending":", ending in {digits}","creditCard.front":"Front","creditCard.back":"Back","creditCard.showing":"Showing {side}","creditCard.expiry":"Expires {expiry}","creditCard.show":"Press to show {side}","flight.scheduled":"Scheduled","flight.boarding":"Boarding","flight.in-flight":"In flight","flight.landed":"Landed","flight.delayed":"Delayed","flight.cancelled":"Cancelled","flight.title":"Flight status","flight.progress":"Journey progress","boardingPass.origin":"From","boardingPass.destination":"To","boardingPass.passenger":"Passenger","boardingPass.service":"Flight","boardingPass.date":"Date","boardingPass.boarding":"Boarding","boardingPass.departure":"Departure","boardingPass.arrival":"Arrival","boardingPass.terminal":"Terminal","boardingPass.gate":"Gate","boardingPass.seat":"Seat","boardingPass.travelClass":"Class","boardingPass.title":"Boarding pass","wallet.title":"My boarding passes","wallet.empty":"No boarding passes yet.","wallet.journeys":"Choose a journey","receipt.quantity":"Qty","receipt.subtotal":"Subtotal","receipt.discount":"Discount","receipt.tax":"Tax","receipt.total":"Total","receipt.payment":"Payment","receipt.empty":"No items to display.","receipt.invalid":"Check the items and amounts.","receipt.title":"Receipt","ticket.title":"Ticket","paper.codeImage":"Code image","aiElement.emptyFolder":"Empty folder","aiElement.noFiles":"No files to display.","attachment.title":"Attachments","attachment.empty":"No attachments yet.","attachment.queued":"Queued","attachment.uploading":"Uploading","attachment.processing":"Processing","attachment.ready":"Ready","attachment.error":"Failed","attachment.cancelled":"Cancelled","attachment.unknown":"Checking progress…","attachment.cancel":"Cancel","attachment.retry":"Retry","attachment.remove":"Remove from list","attachment.open":"View details","attachment.reload":"Reload","workspace.members":"Workspace members","workspace.invite":"Invite members","workspace.email":"Email","workspace.role":"Role","workspace.chooseRole":"Choose a role","workspace.description":"Review the email address and role of the person you want to invite.","workspace.submit":"Send invitation","workspace.emailError":"Enter a valid email address of up to 254 characters.","workspace.roleError":"Choose a role for the invitation.","workspace.retry":"Reload","workspace.reinvite":"Invite again","workspace.active":"Active","workspace.invited":"Invitation pending","workspace.expired":"Invitation expired","workspace.empty":"No members to display yet.","aiElement.pending":"Pending","aiElement.running":"In progress","aiElement.complete":"Complete","aiElement.error":"Failed","aiElement.cancelled":"Cancelled","aiElement.approval":"Awaiting approval","aiElement.researching":"Reviewing sources","aiElement.researched":"View research","aiElement.thinking":"Thinking","aiElement.reasoning":"Response summary","aiElement.plan":"Plan","aiElement.queue":"Queued requests","aiElement.remove":"Remove","aiElement.queueEmpty":"No queued requests.","aiElement.sources":"Sources","aiElement.citation":"Source","aiElement.checkpoint":"Checkpoint saved","aiElement.restore":"Restore from here","aiElement.confirmation":"Proceed with this action?","aiElement.allow":"Allow","aiElement.reject":"Reject","aiElement.accepted":"Action approved.","aiElement.rejected":"Action rejected.","aiElement.context":"Context","aiElement.tokens":"Tokens","aiElement.unknown":"Usage is not available yet.","aiElement.files":"Files","aiElement.task":"Task progress","aiElement.subagent":"Subagent","aiElement.tool":"Tool call","aiElement.terminal":"Terminal","aiElement.stackTrace":"Error details","aiElement.tests":"Test results","aiElement.passed":"Passed","aiElement.failed":"Failed","aiElement.input":"Input","aiElement.output":"Output","aiElement.user":"User","aiElement.assistant":"AI response","aiElement.copy":"Copy","aiElement.regenerate":"Regenerate","aiElement.like":"Like","aiElement.dislike":"Dislike","aiElement.latest":"Latest response","aiElement.conversation":"AI conversation","notification.title":"Notifications","notification.filters":"Notification filters","notification.all":"All","notification.unread":"Unread","notification.readAll":"Mark displayed notifications as read","notification.markRead":"Mark as read","notification.retry":"Reload","notification.empty":"No notifications yet.","notification.caughtUp":"You’re all caught up.","notification.countUnknown":"Needs review","aiModel.label":"Model","aiModel.choose":"Choose a model","aiModel.empty":"No models are available right now.","aiModel.capabilities":"Capabilities","aiModel.usage":"Usage unit","aiQuote.expires":"Quote expires","aiQuote.title":"Execution estimate","aiQuote.reserved":"Maximum credit reservation","aiQuote.providerCost":"Estimated provider cost","aiQuote.pricingVersion":"Pricing version","aiQuote.unknown":"Unconfirmed","aiQuote.idle":"Choose a model and enter a request to get an estimate.","aiQuote.loading":"Checking the estimate…","aiQuote.executing":"Processing your request. Do not submit it again.","aiQuote.stale":"The model or input has changed. Refresh the estimate.","aiQuote.expired":"The estimate has expired. Request a new estimate.","aiQuote.balanceUnknown":"Your balance is unavailable. Refresh to try again.","aiQuote.insufficient":"Additional credits needed:","aiQuote.ready":"Credits are reserved when execution starts and settled against actual usage when it finishes.","aiQuote.refresh":"Refresh estimate","aiQuote.request":"Get estimate","aiQuote.execute":"Run","plan.current":"Current plan","plan.usage":"Usage this period","plan.allowed":"Included","plan.locked":"Not included","plan.manage":"Manage plan","plan.retry":"Reload","history.title":"Credit history","history.empty":"No history yet.","history.unresolved":"Checking","history.grant":"Granted","history.charge":"Used","history.hold":"Reserved · not settled","history.release":"Reservation released","credits.choosePlan":"Credits to add","credits.rechargeDescription":"Choose an amount and review the price and terms.","credits.paymentAmount":"Payment amount","credits.paymentPending":"Checking payment status","credits.remaining":"Remaining credits","credits.available":"Available credits","credits.unit":"credits","credits.held":"Reserved","credits.spent":"Total used","credits.charged":"Charged","credits.low":"Your credit balance is running low.","credits.recharge":"Add credits","credits.checkout":"Continue to payment","credits.noPlans":"No credit packs are available right now.","aiTask.title":"AI task","aiTask.idle":"Not started","aiTask.queued":"Queued","aiTask.running":"Running","aiTask.succeeded":"Complete","aiTask.failed":"Failed","aiTask.cancelled":"Cancelled","aiTask.needs_attention":"Review needed","aiTask.attentionDescription":"We’re checking the result and usage. Reserved credits remain on hold until the review is complete.",close:"Close","modal.close":"Close modal","drawer.close":"Close drawer","dialog.close":"Close dialog","toast.close":"Dismiss notification",clear:"Clear",clearAll:"Clear all",loading:"Loading",required:"Required",optional:"Optional",error:"Error",success:"Success",warning:"Warning",info:"Information",previous:"Previous",next:"Next","select.placeholder":"Select…","select.noResults":"No results","navigationRail.label":"Main navigation","navigationRail.newNotification":"New notification","navigationRail.notifications":"Notifications","tabs.label":"Tabs","pagination.label":"Pagination","search.label":"Search","media.play":"Play","media.pause":"Pause","media.mute":"Mute","media.unmute":"Unmute","media.settings":"Settings","media.shuffle":"Shuffle","media.repeat":"Repeat","media.previous":"Previous track","media.next":"Next track","media.fullscreen":"Full screen","confirm.ok":"Confirm","confirm.cancel":"Cancel","carousel.slide":"slide","carousel.role":"carousel","carousel.previous":"Previous slide","carousel.next":"Next slide","breadcrumbs.expand":"Show hidden path","input.showPassword":"Show password","input.hidePassword":"Hide password","input.clearSearch":"Clear search","verify.done":"Verified","verify.phoneDone":"Your phone number has been verified.","bentoCard.cta":"View details","tweetCard.loading":"Loading post…","tweetCard.error":"Unable to load this post.","tweetCard.viewOnTwitter":"View on X","tweetCard.like":"Like","tweetCard.retweet":"Repost","tweetCard.reply":"Reply","tweetCard.verified":"Verified account","tweetCard.retry":"Try again","chatComposer.placeholder":"Type a message…","chatComposer.send":"Send","chatComposer.stop":"Stop generating","chatComposer.attach":"Attach","voice.start":"Voice input","voice.stop":"Finish dictation","voice.cancel":"Cancel voice input","voice.starting":"Connecting microphone","voice.listening":"Listening","voice.stopping":"Finishing transcription","voice.error":"Voice recognition failed","voice.unsupported":"Voice input not supported"};export{e as ENGLISH_STRINGS};
@@ -11,6 +11,9 @@
11
11
  */
12
12
  /** 컴포넌트가 쓰는 문자열 키 → 기본(한국어) 값 */
13
13
  declare const DEFAULT_STRINGS: {
14
+ readonly 'selectionBar.count': "{count}개 선택";
15
+ readonly 'selectionBar.clear': "해제";
16
+ readonly 'selectionBar.label': "선택 항목 작업";
14
17
  readonly 'zoom.label': "확대/축소 도구";
15
18
  readonly 'zoom.out': "축소";
16
19
  readonly 'zoom.in': "확대";
@@ -1 +1 @@
1
- import{literalEnglish as e}from"./i18n-copy.js";import{ENGLISH_STRINGS as a}from"./i18n-en.js";const i={"zoom.label":"확대/축소 도구","zoom.out":"축소","zoom.in":"확대","zoom.value":"확대 비율 선택","zoom.fit":"화면에 맞추기","zoom.fitShort":"맞춤","zoom.fullscreen":"전체화면","zoom.exitFullscreen":"전체화면 종료","zoom.fullscreenError":"전체화면을 열 수 없습니다.","toolPanel.close":"패널 닫기","toolPanel.tabs":"패널 탭","toolLayout.resize.sidebar":"사이드 패널 너비 조절","toolLayout.resize.inspector":"인스펙터 너비 조절","toolLayout.resize.bottom":"하단 패널 높이 조절","password.weak":"약함","password.fair":"보통","password.good":"강함","password.veryStrong":"아주 강함","rating.high":"매우 좋음","rating.medium":"보통","rating.low":"낮음","rating.label":"평점 {value}","rating.review":"리뷰 {count}개","rating.reviews":"리뷰 {count}개","countdown.days":"일","countdown.hours":"시간","countdown.minutes":"분","countdown.seconds":"초","upload.title":"파일을 드래그하여 업로드하거나 클릭하여 선택하세요","upload.choose":"파일 선택","upload.allFormats":"모든 파일 형식 지원","upload.maximum":" (최대 {size})","upload.files":"업로드된 파일들 ({count}개)","upload.retry":"재시도","upload.remove":"삭제","upload.illustration":"업로드 일러스트","creditCard.security":"보안 코드 {code}","creditCard.label":"{issuer} 카드{lastFour}, 뒤집기","creditCard.ending":", 끝자리 {digits}","creditCard.front":"앞면","creditCard.back":"뒷면","creditCard.showing":"{side} 표시 중","creditCard.expiry":"유효기간 {expiry}","creditCard.show":"누르면 {side}을 표시합니다","flight.scheduled":"출발 예정","flight.boarding":"탑승 중","flight.in-flight":"운항 중","flight.landed":"도착","flight.delayed":"지연","flight.cancelled":"취소","flight.title":"운항 현황","flight.progress":"여정 진행률","boardingPass.origin":"출발","boardingPass.destination":"도착","boardingPass.passenger":"탑승객","boardingPass.service":"편명","boardingPass.date":"날짜","boardingPass.boarding":"탑승 시각","boardingPass.departure":"출발 시각","boardingPass.arrival":"도착 시각","boardingPass.terminal":"터미널","boardingPass.gate":"게이트","boardingPass.seat":"좌석","boardingPass.travelClass":"등급","boardingPass.title":"탑승권","wallet.title":"나의 탑승권","wallet.empty":"등록된 탑승권이 없습니다.","wallet.journeys":"여정 선택","receipt.quantity":"수량","receipt.subtotal":"소계","receipt.discount":"할인","receipt.tax":"세금","receipt.total":"합계","receipt.payment":"결제수단","receipt.empty":"표시할 품목이 없습니다.","receipt.invalid":"품목과 금액 정보를 확인해주세요.","receipt.title":"영수증","ticket.title":"티켓","paper.codeImage":"코드 이미지","aiElement.emptyFolder":"빈 폴더","aiElement.noFiles":"표시할 파일이 없습니다.","attachment.title":"첨부 파일","attachment.empty":"아직 첨부한 파일이 없습니다.","attachment.queued":"대기 중","attachment.uploading":"업로드 중","attachment.processing":"서버 처리 중","attachment.ready":"완료","attachment.error":"실패","attachment.cancelled":"취소됨","attachment.unknown":"진행률을 확인하고 있어요.","attachment.cancel":"취소","attachment.retry":"재시도","attachment.remove":"목록에서 제거","attachment.open":"상세 보기","attachment.reload":"다시 불러오기","workspace.members":"워크스페이스 멤버","workspace.invite":"멤버 초대","workspace.email":"이메일","workspace.role":"초대 역할","workspace.chooseRole":"역할을 선택하세요","workspace.description":"함께 작업할 사람의 이메일과 역할을 확인하세요.","workspace.submit":"초대 요청","workspace.emailError":"254자 이내의 올바른 이메일 주소를 입력해 주세요.","workspace.roleError":"초대할 역할을 선택해 주세요.","workspace.retry":"다시 불러오기","workspace.reinvite":"다시 초대","workspace.active":"이용 중","workspace.invited":"초대 대기","workspace.expired":"초대 만료","workspace.empty":"아직 표시할 멤버가 없습니다.","aiElement.pending":"대기 중","aiElement.running":"진행 중","aiElement.complete":"완료","aiElement.error":"실패","aiElement.cancelled":"취소됨","aiElement.approval":"승인 대기","aiElement.researching":"자료를 확인하고 있어요","aiElement.researched":"작업 과정 살펴보기","aiElement.thinking":"생각 정리 중","aiElement.reasoning":"응답 요약","aiElement.plan":"작업 계획","aiElement.queue":"대기 중인 요청","aiElement.remove":"제거","aiElement.queueEmpty":"대기 중인 요청이 없습니다.","aiElement.sources":"참고한 출처","aiElement.citation":"출처","aiElement.checkpoint":"체크포인트 저장됨","aiElement.restore":"여기부터 복원","aiElement.confirmation":"이 작업을 진행할까요?","aiElement.allow":"허용","aiElement.reject":"거절","aiElement.accepted":"작업을 허용했습니다.","aiElement.rejected":"작업을 거절했습니다.","aiElement.context":"컨텍스트","aiElement.tokens":"토큰","aiElement.unknown":"사용량을 아직 확인할 수 없습니다.","aiElement.files":"작업 파일","aiElement.task":"작업 진행","aiElement.subagent":"보조 에이전트","aiElement.tool":"도구 실행","aiElement.terminal":"터미널","aiElement.stackTrace":"오류 상세","aiElement.tests":"테스트 결과","aiElement.passed":"통과","aiElement.failed":"실패","aiElement.input":"입력","aiElement.output":"출력","aiElement.user":"사용자","aiElement.assistant":"AI 응답","aiElement.copy":"복사","aiElement.regenerate":"다시 생성","aiElement.like":"좋아요","aiElement.dislike":"싫어요","aiElement.latest":"최신 응답으로","aiElement.conversation":"AI와의 대화","notification.title":"알림","notification.filters":"알림 필터","notification.all":"전체","notification.unread":"안 읽음","notification.readAll":"표시된 알림 모두 읽음","notification.markRead":"읽음으로 표시","notification.retry":"다시 불러오기","notification.empty":"아직 도착한 알림이 없습니다.","notification.caughtUp":"모든 알림을 확인했어요.","notification.countUnknown":"확인 필요","aiModel.label":"사용 모델","aiModel.choose":"모델을 선택하세요","aiModel.empty":"현재 사용할 수 있는 모델이 없습니다.","aiModel.capabilities":"지원 작업","aiModel.usage":"사용량 단위","aiQuote.expires":"견적 유효 시간","aiQuote.title":"실행 전 견적","aiQuote.reserved":"예약할 최대 크레딧","aiQuote.providerCost":"예상 제공사 비용","aiQuote.pricingVersion":"가격표 버전","aiQuote.unknown":"미확정","aiQuote.idle":"모델과 요청 내용을 정한 뒤 견적을 확인하세요.","aiQuote.loading":"견적을 확인하고 있습니다.","aiQuote.executing":"요청을 처리하고 있습니다. 중복 실행하지 마세요.","aiQuote.stale":"모델 또는 입력이 변경됐습니다. 견적을 다시 확인하세요.","aiQuote.expired":"견적이 만료됐습니다. 견적을 다시 확인하세요.","aiQuote.balanceUnknown":"잔액을 확인할 수 없습니다. 새로 확인해 주세요.","aiQuote.insufficient":"추가로 필요한 크레딧:","aiQuote.ready":"실행 시 최대 크레딧을 예약하고, 결과 확인 후 실제 사용량으로 정산합니다.","aiQuote.refresh":"견적 다시 확인","aiQuote.request":"견적 확인","aiQuote.execute":"실행하기","plan.current":"현재 플랜","plan.usage":"이번 기간 사용","plan.allowed":"이용 가능","plan.locked":"미포함","plan.manage":"플랜 관리","plan.retry":"다시 불러오기","history.title":"크레딧 사용 내역","history.empty":"아직 표시할 내역이 없습니다.","history.unresolved":"확인 중","history.grant":"지급","history.charge":"사용","history.hold":"예약 · 정산 전","history.release":"예약 해제","credits.choosePlan":"충전할 크레딧","credits.rechargeDescription":"필요한 만큼 선택하고, 금액과 제공 조건을 확인하세요.","credits.paymentAmount":"결제 금액","credits.paymentPending":"결제 상태 확인 중","credits.remaining":"현재 남은 크레딧","credits.available":"사용 가능 크레딧","credits.unit":"크레딧","credits.held":"예약 중","credits.spent":"누적 사용","credits.charged":"차감","credits.low":"남은 크레딧이 적습니다.","credits.recharge":"크레딧 충전","credits.checkout":"결제 진행","credits.noPlans":"현재 충전 가능한 상품이 없습니다.","aiTask.title":"AI 작업","aiTask.idle":"작업 전","aiTask.queued":"실행 대기","aiTask.running":"실행 중","aiTask.succeeded":"완료","aiTask.failed":"실패","aiTask.cancelled":"취소됨","aiTask.needs_attention":"결과 확인 필요","aiTask.attentionDescription":"결과와 사용량을 확인하고 있습니다. 확인이 끝날 때까지 예약 크레딧이 유지됩니다.",close:"닫기","modal.close":"모달 닫기","drawer.close":"드로어 닫기","dialog.close":"대화상자 닫기","toast.close":"알림 닫기",clear:"지우기",clearAll:"모든 값 지우기",loading:"로딩 중",required:"필수",optional:"선택",error:"오류",success:"성공",warning:"경고",info:"안내",previous:"이전",next:"다음","select.placeholder":"선택하세요","select.noResults":"결과 없음","navigationRail.label":"주요 내비게이션","navigationRail.newNotification":"새 알림","navigationRail.notifications":"알림","tabs.label":"탭 목록","pagination.label":"페이지 번호","search.label":"검색","media.play":"재생","media.pause":"일시정지","media.mute":"음소거","media.unmute":"음소거 해제","media.settings":"설정","media.shuffle":"셔플","media.repeat":"반복","media.previous":"이전 트랙","media.next":"다음 트랙","media.fullscreen":"전체화면","confirm.ok":"확인","confirm.cancel":"취소","carousel.slide":"슬라이드","carousel.role":"캐러셀","carousel.previous":"이전 슬라이드","carousel.next":"다음 슬라이드","breadcrumbs.expand":"생략된 경로 펼치기","input.showPassword":"비밀번호 보기","input.hidePassword":"비밀번호 숨기기","input.clearSearch":"검색어 지우기","verify.done":"인증 완료","verify.phoneDone":"휴대폰 번호 인증이 완료되었습니다.","bentoCard.cta":"자세히 보기","tweetCard.loading":"트윗을 불러오는 중입니다...","tweetCard.error":"트윗을 불러올 수 없습니다.","tweetCard.viewOnTwitter":"X에서 보기","tweetCard.like":"좋아요","tweetCard.retweet":"리포스트","tweetCard.reply":"답글","tweetCard.verified":"인증된 계정","tweetCard.retry":"다시 시도","chatComposer.placeholder":"메시지를 입력하세요…","chatComposer.send":"전송","chatComposer.stop":"생성 중지","chatComposer.attach":"첨부","voice.start":"음성 입력","voice.stop":"받아쓰기 완료","voice.cancel":"음성 입력 취소","voice.starting":"마이크 연결 중","voice.listening":"음성 인식 중","voice.stopping":"마지막 문장 확인 중","voice.error":"음성 인식 실패","voice.unsupported":"음성 입력 미지원"},o=Symbol.for("@designbasekorea/ui-wc/locale/v1"),n=globalThis,r=n[o]??(n[o]={overrides:{},activeLocale:"ko",listeners:new Set}),l=r.listeners;function subscribeDbLocale(e){return l.add(e),()=>{l.delete(e)}}function notifyLocale(){for(const e of[...l])e()}function dbUseLocale(e){r.activeLocale!==e&&(r.activeLocale=e,notifyLocale())}function dbSetLocale(e){r.overrides={...r.overrides,...e},notifyLocale()}function dbResetLocale(){r.overrides={},r.activeLocale="ko",notifyLocale()}function t(o,n){return o in r.overrides?r.overrides[o]:o in i?"en"===r.activeLocale?a[o]:i[o]:o.startsWith("copy.")&&"en"===r.activeLocale?e[o.slice(5)]??n??o:n??o}function labelFrom(e,a,i){return e.getAttribute(a)||t(i)}const s=new Map(Object.entries(e).map(([e,a])=>[a,e]));function dbText(e){const a=e.trim();if(!a)return e;const i=s.get(a.replace(/\s+/g," "))??a;return e.slice(0,e.indexOf(a))+t("copy."+i.replace(/\s+/g," "),i)+e.slice(e.indexOf(a)+a.length)}function getDbLocale(){return r.activeLocale}function dbFormat(e,a){return dbText(e).replace(/\{(\d+)\}/g,(e,i)=>String(a[Number(i)]??""))}export{dbFormat,dbResetLocale,dbSetLocale,dbText,dbUseLocale,getDbLocale,labelFrom,subscribeDbLocale,t};
1
+ import{literalEnglish as e}from"./i18n-copy.js";import{ENGLISH_STRINGS as a}from"./i18n-en.js";const i={"selectionBar.count":"{count}개 선택","selectionBar.clear":"해제","selectionBar.label":"선택 항목 작업","zoom.label":"확대/축소 도구","zoom.out":"축소","zoom.in":"확대","zoom.value":"확대 비율 선택","zoom.fit":"화면에 맞추기","zoom.fitShort":"맞춤","zoom.fullscreen":"전체화면","zoom.exitFullscreen":"전체화면 종료","zoom.fullscreenError":"전체화면을 열 수 없습니다.","toolPanel.close":"패널 닫기","toolPanel.tabs":"패널 탭","toolLayout.resize.sidebar":"사이드 패널 너비 조절","toolLayout.resize.inspector":"인스펙터 너비 조절","toolLayout.resize.bottom":"하단 패널 높이 조절","password.weak":"약함","password.fair":"보통","password.good":"강함","password.veryStrong":"아주 강함","rating.high":"매우 좋음","rating.medium":"보통","rating.low":"낮음","rating.label":"평점 {value}","rating.review":"리뷰 {count}개","rating.reviews":"리뷰 {count}개","countdown.days":"일","countdown.hours":"시간","countdown.minutes":"분","countdown.seconds":"초","upload.title":"파일을 드래그하여 업로드하거나 클릭하여 선택하세요","upload.choose":"파일 선택","upload.allFormats":"모든 파일 형식 지원","upload.maximum":" (최대 {size})","upload.files":"업로드된 파일들 ({count}개)","upload.retry":"재시도","upload.remove":"삭제","upload.illustration":"업로드 일러스트","creditCard.security":"보안 코드 {code}","creditCard.label":"{issuer} 카드{lastFour}, 뒤집기","creditCard.ending":", 끝자리 {digits}","creditCard.front":"앞면","creditCard.back":"뒷면","creditCard.showing":"{side} 표시 중","creditCard.expiry":"유효기간 {expiry}","creditCard.show":"누르면 {side}을 표시합니다","flight.scheduled":"출발 예정","flight.boarding":"탑승 중","flight.in-flight":"운항 중","flight.landed":"도착","flight.delayed":"지연","flight.cancelled":"취소","flight.title":"운항 현황","flight.progress":"여정 진행률","boardingPass.origin":"출발","boardingPass.destination":"도착","boardingPass.passenger":"탑승객","boardingPass.service":"편명","boardingPass.date":"날짜","boardingPass.boarding":"탑승 시각","boardingPass.departure":"출발 시각","boardingPass.arrival":"도착 시각","boardingPass.terminal":"터미널","boardingPass.gate":"게이트","boardingPass.seat":"좌석","boardingPass.travelClass":"등급","boardingPass.title":"탑승권","wallet.title":"나의 탑승권","wallet.empty":"등록된 탑승권이 없습니다.","wallet.journeys":"여정 선택","receipt.quantity":"수량","receipt.subtotal":"소계","receipt.discount":"할인","receipt.tax":"세금","receipt.total":"합계","receipt.payment":"결제수단","receipt.empty":"표시할 품목이 없습니다.","receipt.invalid":"품목과 금액 정보를 확인해주세요.","receipt.title":"영수증","ticket.title":"티켓","paper.codeImage":"코드 이미지","aiElement.emptyFolder":"빈 폴더","aiElement.noFiles":"표시할 파일이 없습니다.","attachment.title":"첨부 파일","attachment.empty":"아직 첨부한 파일이 없습니다.","attachment.queued":"대기 중","attachment.uploading":"업로드 중","attachment.processing":"서버 처리 중","attachment.ready":"완료","attachment.error":"실패","attachment.cancelled":"취소됨","attachment.unknown":"진행률을 확인하고 있어요.","attachment.cancel":"취소","attachment.retry":"재시도","attachment.remove":"목록에서 제거","attachment.open":"상세 보기","attachment.reload":"다시 불러오기","workspace.members":"워크스페이스 멤버","workspace.invite":"멤버 초대","workspace.email":"이메일","workspace.role":"초대 역할","workspace.chooseRole":"역할을 선택하세요","workspace.description":"함께 작업할 사람의 이메일과 역할을 확인하세요.","workspace.submit":"초대 요청","workspace.emailError":"254자 이내의 올바른 이메일 주소를 입력해 주세요.","workspace.roleError":"초대할 역할을 선택해 주세요.","workspace.retry":"다시 불러오기","workspace.reinvite":"다시 초대","workspace.active":"이용 중","workspace.invited":"초대 대기","workspace.expired":"초대 만료","workspace.empty":"아직 표시할 멤버가 없습니다.","aiElement.pending":"대기 중","aiElement.running":"진행 중","aiElement.complete":"완료","aiElement.error":"실패","aiElement.cancelled":"취소됨","aiElement.approval":"승인 대기","aiElement.researching":"자료를 확인하고 있어요","aiElement.researched":"작업 과정 살펴보기","aiElement.thinking":"생각 정리 중","aiElement.reasoning":"응답 요약","aiElement.plan":"작업 계획","aiElement.queue":"대기 중인 요청","aiElement.remove":"제거","aiElement.queueEmpty":"대기 중인 요청이 없습니다.","aiElement.sources":"참고한 출처","aiElement.citation":"출처","aiElement.checkpoint":"체크포인트 저장됨","aiElement.restore":"여기부터 복원","aiElement.confirmation":"이 작업을 진행할까요?","aiElement.allow":"허용","aiElement.reject":"거절","aiElement.accepted":"작업을 허용했습니다.","aiElement.rejected":"작업을 거절했습니다.","aiElement.context":"컨텍스트","aiElement.tokens":"토큰","aiElement.unknown":"사용량을 아직 확인할 수 없습니다.","aiElement.files":"작업 파일","aiElement.task":"작업 진행","aiElement.subagent":"보조 에이전트","aiElement.tool":"도구 실행","aiElement.terminal":"터미널","aiElement.stackTrace":"오류 상세","aiElement.tests":"테스트 결과","aiElement.passed":"통과","aiElement.failed":"실패","aiElement.input":"입력","aiElement.output":"출력","aiElement.user":"사용자","aiElement.assistant":"AI 응답","aiElement.copy":"복사","aiElement.regenerate":"다시 생성","aiElement.like":"좋아요","aiElement.dislike":"싫어요","aiElement.latest":"최신 응답으로","aiElement.conversation":"AI와의 대화","notification.title":"알림","notification.filters":"알림 필터","notification.all":"전체","notification.unread":"안 읽음","notification.readAll":"표시된 알림 모두 읽음","notification.markRead":"읽음으로 표시","notification.retry":"다시 불러오기","notification.empty":"아직 도착한 알림이 없습니다.","notification.caughtUp":"모든 알림을 확인했어요.","notification.countUnknown":"확인 필요","aiModel.label":"사용 모델","aiModel.choose":"모델을 선택하세요","aiModel.empty":"현재 사용할 수 있는 모델이 없습니다.","aiModel.capabilities":"지원 작업","aiModel.usage":"사용량 단위","aiQuote.expires":"견적 유효 시간","aiQuote.title":"실행 전 견적","aiQuote.reserved":"예약할 최대 크레딧","aiQuote.providerCost":"예상 제공사 비용","aiQuote.pricingVersion":"가격표 버전","aiQuote.unknown":"미확정","aiQuote.idle":"모델과 요청 내용을 정한 뒤 견적을 확인하세요.","aiQuote.loading":"견적을 확인하고 있습니다.","aiQuote.executing":"요청을 처리하고 있습니다. 중복 실행하지 마세요.","aiQuote.stale":"모델 또는 입력이 변경됐습니다. 견적을 다시 확인하세요.","aiQuote.expired":"견적이 만료됐습니다. 견적을 다시 확인하세요.","aiQuote.balanceUnknown":"잔액을 확인할 수 없습니다. 새로 확인해 주세요.","aiQuote.insufficient":"추가로 필요한 크레딧:","aiQuote.ready":"실행 시 최대 크레딧을 예약하고, 결과 확인 후 실제 사용량으로 정산합니다.","aiQuote.refresh":"견적 다시 확인","aiQuote.request":"견적 확인","aiQuote.execute":"실행하기","plan.current":"현재 플랜","plan.usage":"이번 기간 사용","plan.allowed":"이용 가능","plan.locked":"미포함","plan.manage":"플랜 관리","plan.retry":"다시 불러오기","history.title":"크레딧 사용 내역","history.empty":"아직 표시할 내역이 없습니다.","history.unresolved":"확인 중","history.grant":"지급","history.charge":"사용","history.hold":"예약 · 정산 전","history.release":"예약 해제","credits.choosePlan":"충전할 크레딧","credits.rechargeDescription":"필요한 만큼 선택하고, 금액과 제공 조건을 확인하세요.","credits.paymentAmount":"결제 금액","credits.paymentPending":"결제 상태 확인 중","credits.remaining":"현재 남은 크레딧","credits.available":"사용 가능 크레딧","credits.unit":"크레딧","credits.held":"예약 중","credits.spent":"누적 사용","credits.charged":"차감","credits.low":"남은 크레딧이 적습니다.","credits.recharge":"크레딧 충전","credits.checkout":"결제 진행","credits.noPlans":"현재 충전 가능한 상품이 없습니다.","aiTask.title":"AI 작업","aiTask.idle":"작업 전","aiTask.queued":"실행 대기","aiTask.running":"실행 중","aiTask.succeeded":"완료","aiTask.failed":"실패","aiTask.cancelled":"취소됨","aiTask.needs_attention":"결과 확인 필요","aiTask.attentionDescription":"결과와 사용량을 확인하고 있습니다. 확인이 끝날 때까지 예약 크레딧이 유지됩니다.",close:"닫기","modal.close":"모달 닫기","drawer.close":"드로어 닫기","dialog.close":"대화상자 닫기","toast.close":"알림 닫기",clear:"지우기",clearAll:"모든 값 지우기",loading:"로딩 중",required:"필수",optional:"선택",error:"오류",success:"성공",warning:"경고",info:"안내",previous:"이전",next:"다음","select.placeholder":"선택하세요","select.noResults":"결과 없음","navigationRail.label":"주요 내비게이션","navigationRail.newNotification":"새 알림","navigationRail.notifications":"알림","tabs.label":"탭 목록","pagination.label":"페이지 번호","search.label":"검색","media.play":"재생","media.pause":"일시정지","media.mute":"음소거","media.unmute":"음소거 해제","media.settings":"설정","media.shuffle":"셔플","media.repeat":"반복","media.previous":"이전 트랙","media.next":"다음 트랙","media.fullscreen":"전체화면","confirm.ok":"확인","confirm.cancel":"취소","carousel.slide":"슬라이드","carousel.role":"캐러셀","carousel.previous":"이전 슬라이드","carousel.next":"다음 슬라이드","breadcrumbs.expand":"생략된 경로 펼치기","input.showPassword":"비밀번호 보기","input.hidePassword":"비밀번호 숨기기","input.clearSearch":"검색어 지우기","verify.done":"인증 완료","verify.phoneDone":"휴대폰 번호 인증이 완료되었습니다.","bentoCard.cta":"자세히 보기","tweetCard.loading":"트윗을 불러오는 중입니다...","tweetCard.error":"트윗을 불러올 수 없습니다.","tweetCard.viewOnTwitter":"X에서 보기","tweetCard.like":"좋아요","tweetCard.retweet":"리포스트","tweetCard.reply":"답글","tweetCard.verified":"인증된 계정","tweetCard.retry":"다시 시도","chatComposer.placeholder":"메시지를 입력하세요…","chatComposer.send":"전송","chatComposer.stop":"생성 중지","chatComposer.attach":"첨부","voice.start":"음성 입력","voice.stop":"받아쓰기 완료","voice.cancel":"음성 입력 취소","voice.starting":"마이크 연결 중","voice.listening":"음성 인식 중","voice.stopping":"마지막 문장 확인 중","voice.error":"음성 인식 실패","voice.unsupported":"음성 입력 미지원"},o=Symbol.for("@designbasekorea/ui-wc/locale/v1"),n=globalThis,r=n[o]??(n[o]={overrides:{},activeLocale:"ko",listeners:new Set}),l=r.listeners;function subscribeDbLocale(e){return l.add(e),()=>{l.delete(e)}}function notifyLocale(){for(const e of[...l])e()}function dbUseLocale(e){r.activeLocale!==e&&(r.activeLocale=e,notifyLocale())}function dbSetLocale(e){r.overrides={...r.overrides,...e},notifyLocale()}function dbResetLocale(){r.overrides={},r.activeLocale="ko",notifyLocale()}function t(o,n){return o in r.overrides?r.overrides[o]:o in i?"en"===r.activeLocale?a[o]:i[o]:o.startsWith("copy.")&&"en"===r.activeLocale?e[o.slice(5)]??n??o:n??o}function labelFrom(e,a,i){return e.getAttribute(a)||t(i)}const s=new Map(Object.entries(e).map(([e,a])=>[a,e]));function dbText(e){const a=e.trim();if(!a)return e;const i=s.get(a.replace(/\s+/g," "))??a;return e.slice(0,e.indexOf(a))+t("copy."+i.replace(/\s+/g," "),i)+e.slice(e.indexOf(a)+a.length)}function getDbLocale(){return r.activeLocale}function dbFormat(e,a){return dbText(e).replace(/\{(\d+)\}/g,(e,i)=>String(a[Number(i)]??""))}export{dbFormat,dbResetLocale,dbSetLocale,dbText,dbUseLocale,getDbLocale,labelFrom,subscribeDbLocale,t};
@@ -203,5 +203,6 @@ export { DbToolPanel, ToolPanelTab } from './components/db-tool-panel.js';
203
203
  export { DbWorldMap, WorldMapConnection, WorldMapLocation, WorldMapVariant } from './components/db-world-map.js';
204
204
  export { DbZoomControl, ZoomChangeDetail, ZoomControlAction, ZoomSource } from './components/db-zoom-control.js';
205
205
  export { DbInputGroup } from './components/db-input-group.js';
206
+ export { DbSelectionBar } from './components/db-selection-bar.js';
206
207
  export { DbNotificationAction, DbNotificationItem, DbNotificationReadAll } from './core/notification-ui.js';
207
208
  export { ToastPosition as DbToastPosition, ToastVariant as DbToastVariant, NODE_STATUSES, NODE_VARIANTS } from './ui-contracts/dist/components.d.js';
package/dist/esm/index.js CHANGED
@@ -1 +1 @@
1
- export{dbUid,ensureId}from"./core/uid.js";export{CleanupBag,rafThrottle}from"./core/dom.js";export{createFocusTrap,getTabbables}from"./core/focus-trap.js";export{lockScroll,scrollLockDepth,unlockScroll}from"./core/scroll-lock.js";export{activateOnKey,announce,createSrOnly,politenessForTone,setAccessibleName}from"./core/a11y.js";export{dbResetLocale,dbSetLocale,dbText,dbUseLocale,labelFrom,t}from"./core/i18n.js";export{sanitizeHref}from"./core/safe-url.js";export{sanitizeHtmlFragment}from"./core/safe-html.js";export{DbElement}from"./core/base-element.js";export{DbNavigationRail}from"./components/db-navigation-rail.js";export{DbButton}from"./components/db-button.js";export{DbInput}from"./components/db-input.js";export{DbCheckbox}from"./components/db-checkbox.js";export{DbToggle}from"./components/db-toggle.js";export{DbBadge}from"./components/db-badge.js";export{DbBanner}from"./components/db-banner.js";export{DbSpinner}from"./components/db-spinner.js";export{DbCard}from"./components/db-card.js";export{DbTabs}from"./components/db-tabs.js";export{DbModal}from"./components/db-modal.js";export{DbDropdown}from"./components/db-dropdown.js";export{DbTooltip}from"./components/db-tooltip.js";export{DbAccordion}from"./components/db-accordion.js";export{DbAvatar}from"./components/db-avatar.js";export{DbDivider}from"./components/db-divider.js";export{DbProgress}from"./components/db-progress.js";export{DbSelect}from"./components/db-select.js";export{DbTextarea}from"./components/db-textarea.js";export{DbRadio}from"./components/db-radio.js";export{DbPagination}from"./components/db-pagination.js";export{DbBreadcrumbs}from"./components/db-breadcrumbs.js";export{DbTable}from"./components/db-table.js";export{DbAlert}from"./components/db-alert.js";export{DbChip}from"./components/db-chip.js";export{DbSkeleton}from"./components/db-skeleton.js";export{DbLabel}from"./components/db-label.js";export{DbLogo}from"./components/db-logo.js";export{DbEmptyState}from"./components/db-empty-state.js";export{DbBackdrop}from"./components/db-backdrop.js";export{DbPopover}from"./components/db-popover.js";export{DbDrawer}from"./components/db-drawer.js";export{DbToast}from"./components/db-toast.js";export{DbConfirm}from"./components/db-confirm.js";export{DbIndicator}from"./components/db-indicator.js";export{DbList}from"./components/db-list.js";export{DbMenuItem}from"./components/db-menu-item.js";export{DbSearchBar}from"./components/db-search-bar.js";export{DbShare}from"./components/db-share.js";export{DbTopBanner}from"./components/db-top-banner.js";export{DbCookieBanner}from"./components/db-cookie-banner.js";export{DbStat}from"./components/db-stat.js";export{DbActivityHeatmap}from"./components/db-activity-heatmap.js";export{DbImage}from"./components/db-image.js";export{DbImagePlaceholder}from"./components/db-image-placeholder.js";export{DbImageList}from"./components/db-image-list.js";export{DbLightbox}from"./components/db-lightbox.js";export{DbBottomNavigation}from"./components/db-bottom-navigation.js";export{DbNavbar}from"./components/db-navbar.js";export{DbFooter}from"./components/db-footer.js";export{DbSidebar}from"./components/db-sidebar.js";export{DbContextMenu}from"./components/db-context-menu.js";export{DbProgressbar}from"./components/db-progressbar.js";export{DbProgressStep}from"./components/db-progress-step.js";export{DbRangeSlider}from"./components/db-range-slider.js";export{DbSegmentControl}from"./components/db-segment-control.js";export{DbStepper}from"./components/db-stepper.js";export{DbContainer}from"./components/db-container.js";export{DbStack}from"./components/db-stack.js";export{DbGrid,DbGridItem}from"./components/db-grid.js";export{DbFilterBar}from"./components/db-filter-bar.js";export{DbToolbar}from"./components/db-toolbar.js";export{DbForm}from"./components/db-form.js";export{DbPageHeader}from"./components/db-page-header.js";export{DbSection}from"./components/db-section.js";export{DbFloatingActionButton}from"./components/db-floating-action-button.js";export{DbBottomSheet}from"./components/db-bottom-sheet.js";export{DbScrollArea}from"./components/db-scroll-area.js";export{DbDropzone}from"./components/db-dropzone.js";export{DbOnboardingModal}from"./components/db-onboarding-modal.js";export{DbSplitView}from"./components/db-split-view.js";export{DbFileUploader}from"./components/db-file-uploader.js";export{DbDatePicker}from"./components/db-date-picker.js";export{DbTimePicker}from"./components/db-time-picker.js";export{DbCalendar}from"./components/db-calendar.js";export{DbRating}from"./components/db-rating.js";export{DbSignature}from"./components/db-signature.js";export{DbCountdown}from"./components/db-countdown.js";export{DbMasonry}from"./components/db-masonry.js";export{DbCarousel}from"./components/db-carousel.js";export{DbColorPicker}from"./components/db-color-picker.js";export{DbColorSwatch}from"./components/db-color-swatch.js";export{DbReorder}from"./components/db-reorder.js";export{DbKanban}from"./components/db-kanban.js";export{DbGantt}from"./components/db-gantt.js";export{DbResizablePanels}from"./components/db-resizable-panels.js";export{DbVideoPlayer}from"./components/db-video-player.js";export{DbYouTubePlayer}from"./components/db-youtube-player.js";export{DbAudioPlayer}from"./components/db-audio-player.js";export{DbCodeBlock}from"./components/db-code-block.js";export{DbMarkdownEditor}from"./components/db-markdown-editor.js";export{DbTestimonial}from"./components/db-testimonial.js";export{DbSectionHero}from"./components/db-section-hero.js";export{DbSectionFeature}from"./components/db-section-feature.js";export{DbAppBadge}from"./components/db-app-badge.js";export{DbSectionContact}from"./components/db-section-contact.js";export{DbSectionAppDownload}from"./components/db-section-app-download.js";export{DbSectionCta}from"./components/db-section-cta.js";export{DbSectionTestimonials}from"./components/db-section-testimonials.js";export{DbSectionFeatureGrid}from"./components/db-section-feature-grid.js";export{DbSectionLogoCloud}from"./components/db-section-logo-cloud.js";export{DbSectionStats}from"./components/db-section-stats.js";export{DbSectionFaq}from"./components/db-section-faq.js";export{DbSectionPricing}from"./components/db-section-pricing.js";export{DbMarquee}from"./components/db-marquee.js";export{DbGradient}from"./components/db-gradient.js";export{DbRandomGradient}from"./components/db-random-gradient.js";export{DbAdBanner}from"./components/db-ad-banner.js";export{DbTimeline}from"./components/db-timeline.js";export{DbAnimationText}from"./components/db-animation-text.js";export{DbTutorial}from"./components/db-tutorial.js";export{DbAnimationBackground}from"./components/db-animation-background.js";export{DbGridBackground}from"./components/db-grid-background.js";export{DbCursorFollower}from"./components/db-cursor-follower.js";export{DbDownloadProgress}from"./components/db-download-progress.js";export{DbOtpInput}from"./components/db-otp-input.js";export{DbPhoneVerify}from"./components/db-phone-verify.js";export{DbEmailVerify}from"./components/db-email-verify.js";export{DbTwoFactor}from"./components/db-two-factor.js";export{DbAiGlow}from"./components/db-ai-glow.js";export{DbChatOrb}from"./components/db-chat-orb.js";export{DbChatWelcome}from"./components/db-chat-welcome.js";export{DbChatComposer}from"./components/db-chat-composer.js";export{DbChatSuggestions}from"./components/db-chat-suggestions.js";export{DbChatMessage}from"./components/db-chat-message.js";export{DbChatTyping}from"./components/db-chat-typing.js";export{DbChatWidget}from"./components/db-chat-widget.js";export{DbAiChat}from"./components/db-ai-chat.js";export{DbAiChatList}from"./components/db-ai-chat-list.js";export{DbChatList}from"./components/db-chat-list.js";export{DbChatRoom}from"./components/db-chat-room.js";export{toast as dbToast,showToast,toast}from"./helpers/toast.js";export{confirm,confirm as dbConfirm}from"./helpers/confirm.js";export{DbCreditBalance}from"./components/db-credit-balance.js";export{DbCreditRecharge}from"./components/db-credit-recharge.js";export{DbAiTaskStatus}from"./components/db-ai-task-status.js";export{DbCreditDropdown}from"./components/db-credit-dropdown.js";export{DbCreditRechargeModal}from"./components/db-credit-recharge-modal.js";export{DbPlanOverview}from"./components/db-plan-overview.js";export{DbCreditHistory}from"./components/db-credit-history.js";export{DbAiModelSelect}from"./components/db-ai-model-select.js";export{DbAiExecutionQuote}from"./components/db-ai-execution-quote.js";export{DbNotificationInbox}from"./components/db-notification-inbox.js";export{DbNotificationDropdown}from"./components/db-notification-dropdown.js";export{DbAiChainOfThought}from"./components/db-ai-chain-of-thought.js";export{DbAiReasoning}from"./components/db-ai-reasoning.js";export{DbAiPlan}from"./components/db-ai-plan.js";export{DbAiQueue}from"./components/db-ai-queue.js";export{DbAiSources}from"./components/db-ai-sources.js";export{DbAiInlineCitation}from"./components/db-ai-inline-citation.js";export{DbAiCheckpoint}from"./components/db-ai-checkpoint.js";export{DbAiConfirmation}from"./components/db-ai-confirmation.js";export{DbAiContext}from"./components/db-ai-context.js";export{DbAiFileTree}from"./components/db-ai-file-tree.js";export{DbAiTask}from"./components/db-ai-task.js";export{DbAiSubagent}from"./components/db-ai-subagent.js";export{DbAiTool}from"./components/db-ai-tool.js";export{DbAiTerminal}from"./components/db-ai-terminal.js";export{DbAiStackTrace}from"./components/db-ai-stack-trace.js";export{DbAiTestResults}from"./components/db-ai-test-results.js";export{DbAiMessage}from"./components/db-ai-message.js";export{DbAiConversation}from"./components/db-ai-conversation.js";export{DbWorkspaceMembers}from"./components/db-workspace-members.js";export{DbWorkspaceInviteModal}from"./components/db-workspace-invite-modal.js";export{DbAttachmentList}from"./components/db-attachment-list.js";export{DbBentoGrid}from"./components/db-bento-grid.js";export{DbBentoCard}from"./components/db-bento-card.js";export{DbTweetCard}from"./components/db-tweet-card.js";export{DbProgressiveBlur}from"./components/db-progressive-blur.js";export{DbBorderBeam}from"./components/db-border-beam.js";export{DbConfetti,confetti}from"./components/db-confetti.js";export{DbGlyphMatrix}from"./components/db-glyph-matrix.js";export{DbVoiceControl}from"./components/db-voice-control.js";export{DbTicket}from"./components/db-ticket.js";export{DbBoardingPass}from"./components/db-boarding-pass.js";export{DbReceipt}from"./components/db-receipt.js";export{DbCreditCard}from"./components/db-credit-card.js";export{DbAchievementList}from"./components/db-achievement-list.js";export{DbAchievementModal}from"./components/db-achievement-modal.js";export{PAYMENT_BRANDS,getPaymentBrand}from"./helpers/payment-brands.js";export{DbFlightStatus}from"./components/db-flight-status.js";export{DbBoardingPassStack}from"./components/db-boarding-pass-stack.js";export{DEVICE_MOCKUP_SCREENS,DbAndroidMockup,DbAppleWatchMockup,DbBrowserMockup,DbDuoMockup,DbFlipMockup,DbFoldMockup,DbIosMockup,DbMobileMockup,DbTabletMockup}from"./components/db-device-mockup.js";export{DbNode}from"./components/db-node.js";export{DbDesignCanvas}from"./components/db-design-canvas.js";export{DbToolButton}from"./components/db-tool-button.js";export{DbDesignToolbar}from"./components/db-design-toolbar.js";export{DbContextBar}from"./components/db-context-bar.js";export{DbToolLayout,TOOL_LAYOUT_VARIANTS}from"./components/db-tool-layout.js";export{DbToolPanel}from"./components/db-tool-panel.js";export{DbWorldMap}from"./components/db-world-map.js";export{DbZoomControl}from"./components/db-zoom-control.js";export{DbInputGroup}from"./components/db-input-group.js";export{NODE_STATUSES,NODE_VARIANTS}from"./node_modules/@designbasekorea/ui-contracts/dist/components.js";
1
+ export{dbUid,ensureId}from"./core/uid.js";export{CleanupBag,rafThrottle}from"./core/dom.js";export{createFocusTrap,getTabbables}from"./core/focus-trap.js";export{lockScroll,scrollLockDepth,unlockScroll}from"./core/scroll-lock.js";export{activateOnKey,announce,createSrOnly,politenessForTone,setAccessibleName}from"./core/a11y.js";export{dbResetLocale,dbSetLocale,dbText,dbUseLocale,labelFrom,t}from"./core/i18n.js";export{sanitizeHref}from"./core/safe-url.js";export{sanitizeHtmlFragment}from"./core/safe-html.js";export{DbElement}from"./core/base-element.js";export{DbNavigationRail}from"./components/db-navigation-rail.js";export{DbButton}from"./components/db-button.js";export{DbInput}from"./components/db-input.js";export{DbCheckbox}from"./components/db-checkbox.js";export{DbToggle}from"./components/db-toggle.js";export{DbBadge}from"./components/db-badge.js";export{DbBanner}from"./components/db-banner.js";export{DbSpinner}from"./components/db-spinner.js";export{DbCard}from"./components/db-card.js";export{DbTabs}from"./components/db-tabs.js";export{DbModal}from"./components/db-modal.js";export{DbDropdown}from"./components/db-dropdown.js";export{DbTooltip}from"./components/db-tooltip.js";export{DbAccordion}from"./components/db-accordion.js";export{DbAvatar}from"./components/db-avatar.js";export{DbDivider}from"./components/db-divider.js";export{DbProgress}from"./components/db-progress.js";export{DbSelect}from"./components/db-select.js";export{DbTextarea}from"./components/db-textarea.js";export{DbRadio}from"./components/db-radio.js";export{DbPagination}from"./components/db-pagination.js";export{DbBreadcrumbs}from"./components/db-breadcrumbs.js";export{DbTable}from"./components/db-table.js";export{DbAlert}from"./components/db-alert.js";export{DbChip}from"./components/db-chip.js";export{DbSkeleton}from"./components/db-skeleton.js";export{DbLabel}from"./components/db-label.js";export{DbLogo}from"./components/db-logo.js";export{DbEmptyState}from"./components/db-empty-state.js";export{DbBackdrop}from"./components/db-backdrop.js";export{DbPopover}from"./components/db-popover.js";export{DbDrawer}from"./components/db-drawer.js";export{DbToast}from"./components/db-toast.js";export{DbConfirm}from"./components/db-confirm.js";export{DbIndicator}from"./components/db-indicator.js";export{DbList}from"./components/db-list.js";export{DbMenuItem}from"./components/db-menu-item.js";export{DbSearchBar}from"./components/db-search-bar.js";export{DbShare}from"./components/db-share.js";export{DbTopBanner}from"./components/db-top-banner.js";export{DbCookieBanner}from"./components/db-cookie-banner.js";export{DbStat}from"./components/db-stat.js";export{DbActivityHeatmap}from"./components/db-activity-heatmap.js";export{DbImage}from"./components/db-image.js";export{DbImagePlaceholder}from"./components/db-image-placeholder.js";export{DbImageList}from"./components/db-image-list.js";export{DbLightbox}from"./components/db-lightbox.js";export{DbBottomNavigation}from"./components/db-bottom-navigation.js";export{DbNavbar}from"./components/db-navbar.js";export{DbFooter}from"./components/db-footer.js";export{DbSidebar}from"./components/db-sidebar.js";export{DbContextMenu}from"./components/db-context-menu.js";export{DbProgressbar}from"./components/db-progressbar.js";export{DbProgressStep}from"./components/db-progress-step.js";export{DbRangeSlider}from"./components/db-range-slider.js";export{DbSegmentControl}from"./components/db-segment-control.js";export{DbStepper}from"./components/db-stepper.js";export{DbContainer}from"./components/db-container.js";export{DbStack}from"./components/db-stack.js";export{DbGrid,DbGridItem}from"./components/db-grid.js";export{DbFilterBar}from"./components/db-filter-bar.js";export{DbToolbar}from"./components/db-toolbar.js";export{DbForm}from"./components/db-form.js";export{DbPageHeader}from"./components/db-page-header.js";export{DbSection}from"./components/db-section.js";export{DbFloatingActionButton}from"./components/db-floating-action-button.js";export{DbBottomSheet}from"./components/db-bottom-sheet.js";export{DbScrollArea}from"./components/db-scroll-area.js";export{DbDropzone}from"./components/db-dropzone.js";export{DbOnboardingModal}from"./components/db-onboarding-modal.js";export{DbSplitView}from"./components/db-split-view.js";export{DbFileUploader}from"./components/db-file-uploader.js";export{DbDatePicker}from"./components/db-date-picker.js";export{DbTimePicker}from"./components/db-time-picker.js";export{DbCalendar}from"./components/db-calendar.js";export{DbRating}from"./components/db-rating.js";export{DbSignature}from"./components/db-signature.js";export{DbCountdown}from"./components/db-countdown.js";export{DbMasonry}from"./components/db-masonry.js";export{DbCarousel}from"./components/db-carousel.js";export{DbColorPicker}from"./components/db-color-picker.js";export{DbColorSwatch}from"./components/db-color-swatch.js";export{DbReorder}from"./components/db-reorder.js";export{DbKanban}from"./components/db-kanban.js";export{DbGantt}from"./components/db-gantt.js";export{DbResizablePanels}from"./components/db-resizable-panels.js";export{DbVideoPlayer}from"./components/db-video-player.js";export{DbYouTubePlayer}from"./components/db-youtube-player.js";export{DbAudioPlayer}from"./components/db-audio-player.js";export{DbCodeBlock}from"./components/db-code-block.js";export{DbMarkdownEditor}from"./components/db-markdown-editor.js";export{DbTestimonial}from"./components/db-testimonial.js";export{DbSectionHero}from"./components/db-section-hero.js";export{DbSectionFeature}from"./components/db-section-feature.js";export{DbAppBadge}from"./components/db-app-badge.js";export{DbSectionContact}from"./components/db-section-contact.js";export{DbSectionAppDownload}from"./components/db-section-app-download.js";export{DbSectionCta}from"./components/db-section-cta.js";export{DbSectionTestimonials}from"./components/db-section-testimonials.js";export{DbSectionFeatureGrid}from"./components/db-section-feature-grid.js";export{DbSectionLogoCloud}from"./components/db-section-logo-cloud.js";export{DbSectionStats}from"./components/db-section-stats.js";export{DbSectionFaq}from"./components/db-section-faq.js";export{DbSectionPricing}from"./components/db-section-pricing.js";export{DbMarquee}from"./components/db-marquee.js";export{DbGradient}from"./components/db-gradient.js";export{DbRandomGradient}from"./components/db-random-gradient.js";export{DbAdBanner}from"./components/db-ad-banner.js";export{DbTimeline}from"./components/db-timeline.js";export{DbAnimationText}from"./components/db-animation-text.js";export{DbTutorial}from"./components/db-tutorial.js";export{DbAnimationBackground}from"./components/db-animation-background.js";export{DbGridBackground}from"./components/db-grid-background.js";export{DbCursorFollower}from"./components/db-cursor-follower.js";export{DbDownloadProgress}from"./components/db-download-progress.js";export{DbOtpInput}from"./components/db-otp-input.js";export{DbPhoneVerify}from"./components/db-phone-verify.js";export{DbEmailVerify}from"./components/db-email-verify.js";export{DbTwoFactor}from"./components/db-two-factor.js";export{DbAiGlow}from"./components/db-ai-glow.js";export{DbChatOrb}from"./components/db-chat-orb.js";export{DbChatWelcome}from"./components/db-chat-welcome.js";export{DbChatComposer}from"./components/db-chat-composer.js";export{DbChatSuggestions}from"./components/db-chat-suggestions.js";export{DbChatMessage}from"./components/db-chat-message.js";export{DbChatTyping}from"./components/db-chat-typing.js";export{DbChatWidget}from"./components/db-chat-widget.js";export{DbAiChat}from"./components/db-ai-chat.js";export{DbAiChatList}from"./components/db-ai-chat-list.js";export{DbChatList}from"./components/db-chat-list.js";export{DbChatRoom}from"./components/db-chat-room.js";export{toast as dbToast,showToast,toast}from"./helpers/toast.js";export{confirm,confirm as dbConfirm}from"./helpers/confirm.js";export{DbCreditBalance}from"./components/db-credit-balance.js";export{DbCreditRecharge}from"./components/db-credit-recharge.js";export{DbAiTaskStatus}from"./components/db-ai-task-status.js";export{DbCreditDropdown}from"./components/db-credit-dropdown.js";export{DbCreditRechargeModal}from"./components/db-credit-recharge-modal.js";export{DbPlanOverview}from"./components/db-plan-overview.js";export{DbCreditHistory}from"./components/db-credit-history.js";export{DbAiModelSelect}from"./components/db-ai-model-select.js";export{DbAiExecutionQuote}from"./components/db-ai-execution-quote.js";export{DbNotificationInbox}from"./components/db-notification-inbox.js";export{DbNotificationDropdown}from"./components/db-notification-dropdown.js";export{DbAiChainOfThought}from"./components/db-ai-chain-of-thought.js";export{DbAiReasoning}from"./components/db-ai-reasoning.js";export{DbAiPlan}from"./components/db-ai-plan.js";export{DbAiQueue}from"./components/db-ai-queue.js";export{DbAiSources}from"./components/db-ai-sources.js";export{DbAiInlineCitation}from"./components/db-ai-inline-citation.js";export{DbAiCheckpoint}from"./components/db-ai-checkpoint.js";export{DbAiConfirmation}from"./components/db-ai-confirmation.js";export{DbAiContext}from"./components/db-ai-context.js";export{DbAiFileTree}from"./components/db-ai-file-tree.js";export{DbAiTask}from"./components/db-ai-task.js";export{DbAiSubagent}from"./components/db-ai-subagent.js";export{DbAiTool}from"./components/db-ai-tool.js";export{DbAiTerminal}from"./components/db-ai-terminal.js";export{DbAiStackTrace}from"./components/db-ai-stack-trace.js";export{DbAiTestResults}from"./components/db-ai-test-results.js";export{DbAiMessage}from"./components/db-ai-message.js";export{DbAiConversation}from"./components/db-ai-conversation.js";export{DbWorkspaceMembers}from"./components/db-workspace-members.js";export{DbWorkspaceInviteModal}from"./components/db-workspace-invite-modal.js";export{DbAttachmentList}from"./components/db-attachment-list.js";export{DbBentoGrid}from"./components/db-bento-grid.js";export{DbBentoCard}from"./components/db-bento-card.js";export{DbTweetCard}from"./components/db-tweet-card.js";export{DbProgressiveBlur}from"./components/db-progressive-blur.js";export{DbBorderBeam}from"./components/db-border-beam.js";export{DbConfetti,confetti}from"./components/db-confetti.js";export{DbGlyphMatrix}from"./components/db-glyph-matrix.js";export{DbVoiceControl}from"./components/db-voice-control.js";export{DbTicket}from"./components/db-ticket.js";export{DbBoardingPass}from"./components/db-boarding-pass.js";export{DbReceipt}from"./components/db-receipt.js";export{DbCreditCard}from"./components/db-credit-card.js";export{DbAchievementList}from"./components/db-achievement-list.js";export{DbAchievementModal}from"./components/db-achievement-modal.js";export{PAYMENT_BRANDS,getPaymentBrand}from"./helpers/payment-brands.js";export{DbFlightStatus}from"./components/db-flight-status.js";export{DbBoardingPassStack}from"./components/db-boarding-pass-stack.js";export{DEVICE_MOCKUP_SCREENS,DbAndroidMockup,DbAppleWatchMockup,DbBrowserMockup,DbDuoMockup,DbFlipMockup,DbFoldMockup,DbIosMockup,DbMobileMockup,DbTabletMockup}from"./components/db-device-mockup.js";export{DbNode}from"./components/db-node.js";export{DbDesignCanvas}from"./components/db-design-canvas.js";export{DbToolButton}from"./components/db-tool-button.js";export{DbDesignToolbar}from"./components/db-design-toolbar.js";export{DbContextBar}from"./components/db-context-bar.js";export{DbToolLayout,TOOL_LAYOUT_VARIANTS}from"./components/db-tool-layout.js";export{DbToolPanel}from"./components/db-tool-panel.js";export{DbWorldMap}from"./components/db-world-map.js";export{DbZoomControl}from"./components/db-zoom-control.js";export{DbInputGroup}from"./components/db-input-group.js";export{DbSelectionBar}from"./components/db-selection-bar.js";export{NODE_STATUSES,NODE_VARIANTS}from"./node_modules/@designbasekorea/ui-contracts/dist/components.js";