@designbasekorea/ui-wc 0.14.0 → 0.15.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
@@ -2,6 +2,13 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 0.15.0 - 2026-11-07
6
+
7
+ - LayerList: handle/whole-row pointer reorder, visibility/lock/delete and custom actions; keyboard navigation and edge autoscroll; React, Storybook, localized docs and responsive/theme coverage.
8
+
9
+ - Added `actions-visibility="hover"` / React `actionsVisibility`, with keyboard focus reveal and always-visible touch controls.
10
+ - Tightened row padding, item spacing and title/description line heights without changing small button touch targets.
11
+
5
12
  ## 0.14.0 - 2026-11-07
6
13
 
7
14
  - Clip-local effect/property keyframes: expandable X/Y/scale/opacity channels, direct timing edits and detailed curve controls.
package/README.md CHANGED
@@ -639,3 +639,5 @@ Use icons with short 14px text labels for one or two actions. For three or more
639
639
  ## Media editor integration
640
640
 
641
641
  See [Effect keyframes](docs/EFFECT-KEYFRAMES.md), [Media editor data/events](docs/MEDIA-EDITORS.md), [Context Menu](docs/CONTEXT-MENU.md), [Easing](docs/EASING-EDITOR.md) and [Video export](docs/VIDEO-EXPORT.md). These guides ship in the npm package.
642
+
643
+ - [Layer List · reorder, visibility, lock and actions](./docs/LAYER-LIST.md)
@@ -0,0 +1,71 @@
1
+ import './db-button.js';
2
+ import { DbElement } from '../core/base-element.js';
3
+ import { DbIconName } from './db-icons.js';
4
+
5
+ interface LayerListAction {
6
+ id: string;
7
+ label: string;
8
+ icon: DbIconName;
9
+ disabled?: boolean;
10
+ }
11
+ interface LayerListItem {
12
+ id: string;
13
+ label: string;
14
+ description?: string;
15
+ icon?: DbIconName;
16
+ visible?: boolean;
17
+ locked?: boolean;
18
+ removable?: boolean;
19
+ actions?: LayerListAction[];
20
+ }
21
+ interface LayerListChangeDetail {
22
+ items: LayerListItem[];
23
+ itemId: string;
24
+ action: 'reorder' | 'visibility' | 'lock' | 'delete';
25
+ fromIndex?: number;
26
+ toIndex?: number;
27
+ }
28
+ /** Stateful UI. Persist db-change.items in the owning document; IDs are stable across reorder. */
29
+ declare class DbLayerList extends DbElement {
30
+ private data;
31
+ private selected;
32
+ private defaultLabel;
33
+ private drag?;
34
+ private raf;
35
+ private unsubscribe?;
36
+ static get observedAttributes(): string[];
37
+ get items(): LayerListItem[];
38
+ set items(value: LayerListItem[] | string);
39
+ get selectedId(): string;
40
+ set selectedId(value: string);
41
+ connectedCallback(): void;
42
+ disconnectedCallback(): void;
43
+ attributeChangedCallback(name: string, _old: string | null, value: string | null): void;
44
+ private get disabled();
45
+ private rows;
46
+ private select;
47
+ private syncSelection;
48
+ private emitChange;
49
+ private handleClick;
50
+ private action;
51
+ private focusControl;
52
+ private down;
53
+ private move;
54
+ private preview;
55
+ private autoScroll;
56
+ private up;
57
+ private cancel;
58
+ private cancelDrag;
59
+ private reorder;
60
+ private key;
61
+ private button;
62
+ private render;
63
+ }
64
+ declare global {
65
+ interface HTMLElementTagNameMap {
66
+ 'db-layer-list': DbLayerList;
67
+ }
68
+ }
69
+
70
+ export { DbLayerList };
71
+ export type { LayerListAction, LayerListChangeDetail, LayerListItem };
@@ -0,0 +1 @@
1
+ import"./db-button.js";import{DbElement as t}from"../core/base-element.js";import{createDbIcon as e}from"./db-icons.js";import{subscribeDbLocale as i,t as s}from"../core/i18n.js";class DbLayerList extends t{constructor(){super(...arguments),this.data=[],this.selected="",this.defaultLabel="",this.raf=0,this.handleClick=t=>{const e=t.target;if(this.disabled||e.closest("db-button"))return;const i=e.closest(".db-layer-list__row");i&&this.select(i.dataset.id)},this.action=t=>{const e=t.target.closest("db-button[data-action]");if(!e||!this.contains(e))return;if(t.stopPropagation(),this.disabled)return;const i=e.dataset.id,s=e.dataset.action,a=this.data.find(t=>t.id===i);if(a){if("custom"===s){const t=a.actions?.find(t=>t.id===e.dataset.custom);return void(t&&!t.disabled&&this.dbEmit("action",{itemId:i,actionId:t.id}))}("delete"!==s||!a.locked&&!1!==a.removable)&&("visibility"===s&&(a.visible=!1===a.visible),"lock"===s&&(a.locked=!a.locked),"delete"===s&&(this.data=this.data.filter(t=>t.id!==i),this.selected===i&&this.select("")),this.emitChange(i,s),this.render(),this.focusControl(i,s))}},this.down=t=>{if(0!==t.button||!t.isPrimary||this.disabled||this.drag)return;const e=t.target,i=e.closest(".db-layer-list__row");if(!i||e.closest("db-button"))return;const s=this.data.find(t=>t.id===i.dataset.id);s&&!s.locked&&("row"===this.getAttribute("drag-mode")||e.closest("[data-drag-handle]"))&&(t.preventDefault(),this.select(s.id),i.focus({preventScroll:!0}),this.drag={pointer:t.pointerId,id:s.id,y:t.clientY,x:t.clientX,currentY:t.clientY,active:!1,drop:this.data.findIndex(t=>t.id===s.id)},this.setPointerCapture(t.pointerId))},this.move=t=>{const e=this.drag;e&&e.pointer===t.pointerId&&(e.currentY=t.clientY,!e.active&&Math.hypot(t.clientY-e.y,t.clientX-e.x)<4||(e.active=!0,t.preventDefault(),this.preview(),this.raf||(this.raf=requestAnimationFrame(this.autoScroll))))},this.autoScroll=()=>{this.raf=0;const t=this.drag;if(!t?.active)return;let e=this;for(;e;){if(e.scrollHeight>e.clientHeight&&/(auto|scroll)/.test(getComputedStyle(e).overflowY)){const i=e.getBoundingClientRect(),s=t.currentY<i.top+28?-10:t.currentY>i.bottom-28?10:0;s&&(e.scrollTop+=s,this.preview());break}e=e.parentElement}this.raf=requestAnimationFrame(this.autoScroll)},this.up=t=>{const e=this.drag;if(!e||e.pointer!==t.pointerId)return;const{id:i,drop:s,active:a}=e;this.cancelDrag(),a&&this.reorder(i,s)},this.cancel=t=>{this.drag?.pointer===t.pointerId&&("lostpointercapture"!==t.type||t.target===this&&!this.hasPointerCapture(t.pointerId))&&this.cancelDrag()},this.key=t=>{if("Escape"===t.key&&this.drag)return t.preventDefault(),void this.cancelDrag();const e=t.target;if(e.closest("db-button")||this.disabled)return;const i=e.closest(".db-layer-list__row");if(!i)return;const s=i.dataset.id,a=this.data.find(t=>t.id===s);!t.altKey||"ArrowUp"!==t.key&&"ArrowDown"!==t.key?"Enter"===t.key||" "===t.key?(t.preventDefault(),this.select(s)):"ArrowUp"===t.key||"ArrowDown"===t.key?(t.preventDefault(),this.rows()[Math.max(0,Math.min(this.data.length-1,this.data.indexOf(a)+("ArrowUp"===t.key?-1:1)))]?.focus()):"Delete"!==t.key&&"Backspace"!==t.key||a.locked||!1===a.removable||this.hasAttribute("hide-delete")||(t.preventDefault(),this.data=this.data.filter(t=>t.id!==s),this.selected===s&&this.select(""),this.render(),this.focusControl(s),this.emitChange(s,"delete")):(t.preventDefault(),this.reorder(s,this.data.indexOf(a)+("ArrowUp"===t.key?-1:1)))}}static get observedAttributes(){return["items","selected-id","drag-mode","disabled","hide-visibility","hide-lock","hide-delete","actions-visibility","aria-label"]}get items(){return this.data.map(t=>({...t,actions:t.actions?.map(t=>({...t}))}))}set items(t){let e=t;if("string"==typeof e)try{e=JSON.parse(e)}catch{e=[]}const i=new Set,s=Array.isArray(e)?e.filter(t=>!(!t||"string"!=typeof t.id||!t.id||i.has(t.id)||"string"!=typeof t.label)&&(i.add(t.id),!0)).map(t=>({...t,actions:Array.isArray(t.actions)?t.actions.filter(t=>t&&"string"==typeof t.id&&"string"==typeof t.label).map(t=>({...t})):void 0})):[];JSON.stringify(s)!==JSON.stringify(this.data)&&(this.cancelDrag(),this.data=s,this.data.some(t=>t.id===this.selected)||(this.selected=""),this.isConnected&&this.render())}get selectedId(){return this.selected}set selectedId(t){this.selected=String(t||""),this.isConnected&&this.syncSelection()}connectedCallback(){this.upgradeProperties(["items","selectedId"]),this.hasAttribute("items")&&(this.items=this.getAttribute("items")),this.hasAttribute("selected-id")&&(this.selected=this.getAttribute("selected-id")),this.cleanups.listen(this,"pointerdown",this.down),this.cleanups.listen(this,"pointermove",this.move),this.cleanups.listen(this,"pointerup",this.up),this.cleanups.listen(this,"pointercancel",this.cancel),this.cleanups.listen(this,"lostpointercapture",this.cancel),this.cleanups.listen(this,"keydown",this.key),this.cleanups.listen(this,"db-click",this.action),this.cleanups.listen(this,"click",this.handleClick),this.unsubscribe=i(()=>this.render()),this.render()}disconnectedCallback(){this.cancelDrag(),this.unsubscribe?.(),super.disconnectedCallback()}attributeChangedCallback(t,e,i){if("items"!==t)return"selected-id"===t?(this.selected=i||"",void(this.isConnected&&this.syncSelection())):void(this.isConnected&&(this.cancelDrag(),this.render()));this.items=i||"[]"}get disabled(){return this.hasAttribute("disabled")&&"false"!==this.getAttribute("disabled")}rows(){return Array.from(this.querySelectorAll(".db-layer-list__row"))}select(t){this.selected!==t&&(this.selected=t,this.syncSelection(),this.dbEmit("selection-change",{itemId:t}))}syncSelection(){for(const t of this.rows()){const e=t.dataset.id===this.selected;t.dataset.selected=String(e),t.setAttribute("aria-current",String(e))}}emitChange(t,e,i={}){this.dbEmit("change",{items:this.items,itemId:t,action:e,...i})}focusControl(t,e){const i=this.rows().find(e=>e.dataset.id===t)||this.rows()[0],s=e?Array.from(i?.querySelectorAll("db-button")||[]).find(t=>t.dataset.action===e):void 0;(s||i)?.focus({preventScroll:!0})}preview(){const t=this.drag;if(!t)return;const e=this.rows().filter(e=>e.dataset.id!==t.id);t.drop=e.findIndex(e=>{const i=e.getBoundingClientRect();return t.currentY<i.top+i.height/2}),t.drop<0&&(t.drop=e.length),this.dataset.dragging="true";for(const e of this.rows())e.dataset.dragged=String(e.dataset.id===t.id),delete e.dataset.drop;e[t.drop]?e[t.drop].dataset.drop="before":e.length&&(e[e.length-1].dataset.drop="after")}cancelDrag(){const t=this.drag;this.drag=void 0,cancelAnimationFrame(this.raf),this.raf=0,t&&this.hasPointerCapture(t.pointer)&&this.releasePointerCapture(t.pointer),delete this.dataset.dragging;for(const t of this.rows())delete t.dataset.dragged,delete t.dataset.drop}reorder(t,e){const i=this.data.findIndex(e=>e.id===t);if(i<0||this.data[i].locked||this.disabled)return;const s=Math.max(0,Math.min(this.data.length-1,e));if(i===s)return;const[a]=this.data.splice(i,1);this.data.splice(s,0,a),this.render(),this.focusControl(t),this.emitChange(t,"reorder",{fromIndex:i,toIndex:s}),this.dbEmit("reorder",{items:this.items,itemId:t,fromIndex:i,toIndex:s})}button(t,e,i,s,a,r=!1){const d=document.createElement("db-button");return d.setAttribute("size","s"),d.setAttribute("variant","ghost"),d.setAttribute("icon-only",""),d.setAttribute("start-icon",i),d.setAttribute("aria-label",s),d.setAttribute("title",s),d.dataset.action=e,d.dataset.id=t,void 0!==a&&d.setAttribute("aria-pressed",String(a)),(this.disabled||r)&&d.setAttribute("disabled",""),d}render(){if(this.drag)return;this.classList.add("db-layer-list"),this.setAttribute("role","list"),this.hasAttribute("aria-label")&&this.getAttribute("aria-label")!==this.defaultLabel||(this.defaultLabel=s("layerList.label"),this.getAttribute("aria-label")!==this.defaultLabel&&this.setAttribute("aria-label",this.defaultLabel)),this.dataset.mode="row"===this.getAttribute("drag-mode")?"row":"handle",this.setAttribute("aria-disabled",String(this.disabled));const t=document.createDocumentFragment();for(const i of this.data){const a=document.createElement("div");if(a.className="db-layer-list__row",a.dataset.id=i.id,a.dataset.locked=String(!!i.locked),a.dataset.visible=String(!1!==i.visible),a.tabIndex=this.disabled?-1:0,a.setAttribute("role","listitem"),"handle"===this.dataset.mode){const t=document.createElement("span");t.className="db-layer-list__handle",t.dataset.dragHandle="",t.setAttribute("aria-hidden","true");const i=e("grip-vertical",14);i&&t.append(i),a.append(t)}if(i.icon){const t=e(i.icon,16);t&&(t.classList.add("db-layer-list__icon"),a.append(t))}const r=document.createElement("span");r.className="db-layer-list__text";const d=document.createElement("span");if(d.className="db-layer-list__label",d.textContent=i.label,r.append(d),i.description){const t=document.createElement("small");t.textContent=i.description,r.append(t)}a.append(r);const n=document.createElement("span");n.className="db-layer-list__actions";for(const t of i.actions||[]){const e=this.button(i.id,"custom",t.icon,t.label,void 0,t.disabled);e.dataset.custom=t.id,n.append(e)}this.hasAttribute("hide-delete")||!1===i.removable||n.append(this.button(i.id,"delete","trash",s("layerList.delete").replace("{name}",i.label),void 0,!!i.locked)),this.hasAttribute("hide-lock")||n.append(this.button(i.id,"lock",i.locked?"lock":"unlock",s(i.locked?"layerList.unlock":"layerList.lock").replace("{name}",i.label),!!i.locked)),this.hasAttribute("hide-visibility")||n.append(this.button(i.id,"visibility",!1===i.visible?"hide":"show",s(!1===i.visible?"layerList.show":"layerList.hide").replace("{name}",i.label),!1!==i.visible)),a.append(n),t.append(a)}if(!this.data.length){const e=document.createElement("p");e.className="db-layer-list__empty",e.textContent=s("layerList.empty"),t.append(e)}this.replaceChildren(t),this.syncSelection()}}customElements.get("db-layer-list")||customElements.define("db-layer-list",DbLayerList);export{DbLayerList};
@@ -1 +1 @@
1
- const e={"appUpdate.notice":"Update available","appUpdate.changes":"What’s new","appUpdate.automatic":"Restarts automatically when complete.","appUpdate.install":"Update","appUpdate.inProgress":"Updating","appUpdate.dialogTitle":"App update","appUpdate.toastComplete":"Updated to {version}.","appUpdate.checking.title":"Checking for updates","appUpdate.checking.description":"Looking for a new update.","appUpdate.up-to-date.title":"You’re up to date","appUpdate.up-to-date.description":"You’re using the latest available version.","appUpdate.available.title":"An update is available","appUpdate.available.description":"Download the latest improvements and stability updates.","appUpdate.downloading.title":"Downloading update","appUpdate.downloading.description":"We’ll let you know how to apply it when the download finishes.","appUpdate.ready.title":"Ready to update","appUpdate.ready.description":"Save your work, then restart the app to apply the update.","appUpdate.applying.title":"Applying update","appUpdate.applying.description":"Keep the app open and wait a moment.","appUpdate.complete.title":"Update complete","appUpdate.complete.description":"The new version has been applied successfully.","appUpdate.error.title":"Update could not be completed","appUpdate.error.description":"Check your connection and try again.","appUpdate.offline.title":"Internet connection required","appUpdate.offline.description":"Connect to the internet, then try again.","appUpdate.current":"Current","appUpdate.target":"New version","appUpdate.required":"Required update","appUpdate.later":"Later","appUpdate.download":"Download update","appUpdate.restart":"Restart to update","appUpdate.retry":"Try again","appUpdate.done":"Done","media.restoreHandles":"Restore handles (H)","media.tangentHelp":"Drag: symmetric · Cmd/Ctrl: independent · H: restore · dashed handles reveal collapsed controls.","media.resizeTimeline":"Resize timeline height","media.resizeTimelineHint":"Drag vertically to resize. Double-click or Home for automatic height.","media.resizeTrack":"Resize track height","easing.outVelocity":"Out velocity ×","easing.inVelocity":"In velocity ×","easing.label":"Easing & velocity","easing.graphMode":"Graph mode","easing.value":"Value","easing.speed":"Speed","easing.valueGraph":"Normalized progress curve","easing.speedGraph":"Normalized velocity graph","easing.custom":"Custom curve","easing.presets":"Easing presets","easing.linear":"Linear","easing.ease":"Ease","easing.ease-in":"Ease in","easing.ease-out":"Ease out","easing.ease-in-out":"Ease in/out","easing.smooth":"Smooth","easing.snappy":"Snappy","easing.swift":"Swift out","easing.gentle":"Gentle","easing.emphasized":"Emphasized","easing.outgoing":"Outgoing tangent","easing.incoming":"Incoming tangent","easing.preview":"Play easing preview","easing.velocityHint":"1× = constant speed","easing.speedHelp":"Drag tangent controls to change influence and endpoint velocity. Vertical scale is normalized; multiply by value change / duration for units per second.","easing.valueHelp":"Drag handles or enter exact coordinates. Arrow keys nudge .01; Shift nudges .1. Escape cancels dragging.","media.trimStart":"Trim start","media.trimEnd":"Trim end","media.fadeIn":"Fade in","media.fadeOut":"Fade out","media.duplicateKeys":"Duplicate keyframes","media.undo":"Undo","media.selectedKeys":"selected","media.keyEasing":"Selected key easing","media.effects":"Applied effects","media.timeline":"Video timeline","media.tracks":"Tracks","media.more":"Scroll to more tracks and clips","media.lock":"Lock track","media.trackLocked":"Locked","media.trackUnlocked":"Unlocked","media.soundOn":"Sound on","media.soundOff":"Muted","media.marker":"Timeline marker","media.trackMute":"Mute track","media.duration":"Duration","media.playhead":"Playhead","media.emptyTracks":"No tracks. Connect a tracks array to begin.","media.keyframes":"Keyframes","media.curve":"Value graph","media.previousKey":"Previous keyframe","media.nextKey":"Next keyframe","media.addKey":"Add keyframe (K)","media.deleteKey":"Delete keyframe","media.outHandle":"Outgoing Bezier handle","media.inHandle":"Incoming Bezier handle","media.keyframe":"Keyframe","media.emptyKeys":"Add a keyframe or double-click the graph.","media.selectKey":"Select a keyframe to edit its time, value and interpolation.","media.time":"Time (seconds)","media.value":"Value","media.interpolation":"Interpolation","media.linear":"Linear","media.hold":"Hold","media.ease-in":"Ease in","media.ease-out":"Ease out","media.ease-in-out":"Ease in / out","media.bezier":"Custom Bezier","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};
1
+ const e={"layerList.label":"Layers","layerList.delete":"Delete {name}","layerList.lock":"Lock {name}","layerList.unlock":"Unlock {name}","layerList.show":"Show {name}","layerList.hide":"Hide {name}","layerList.empty":"No layers.","appUpdate.notice":"Update available","appUpdate.changes":"What’s new","appUpdate.automatic":"Restarts automatically when complete.","appUpdate.install":"Update","appUpdate.inProgress":"Updating","appUpdate.dialogTitle":"App update","appUpdate.toastComplete":"Updated to {version}.","appUpdate.checking.title":"Checking for updates","appUpdate.checking.description":"Looking for a new update.","appUpdate.up-to-date.title":"You’re up to date","appUpdate.up-to-date.description":"You’re using the latest available version.","appUpdate.available.title":"An update is available","appUpdate.available.description":"Download the latest improvements and stability updates.","appUpdate.downloading.title":"Downloading update","appUpdate.downloading.description":"We’ll let you know how to apply it when the download finishes.","appUpdate.ready.title":"Ready to update","appUpdate.ready.description":"Save your work, then restart the app to apply the update.","appUpdate.applying.title":"Applying update","appUpdate.applying.description":"Keep the app open and wait a moment.","appUpdate.complete.title":"Update complete","appUpdate.complete.description":"The new version has been applied successfully.","appUpdate.error.title":"Update could not be completed","appUpdate.error.description":"Check your connection and try again.","appUpdate.offline.title":"Internet connection required","appUpdate.offline.description":"Connect to the internet, then try again.","appUpdate.current":"Current","appUpdate.target":"New version","appUpdate.required":"Required update","appUpdate.later":"Later","appUpdate.download":"Download update","appUpdate.restart":"Restart to update","appUpdate.retry":"Try again","appUpdate.done":"Done","media.restoreHandles":"Restore handles (H)","media.tangentHelp":"Drag: symmetric · Cmd/Ctrl: independent · H: restore · dashed handles reveal collapsed controls.","media.resizeTimeline":"Resize timeline height","media.resizeTimelineHint":"Drag vertically to resize. Double-click or Home for automatic height.","media.resizeTrack":"Resize track height","easing.outVelocity":"Out velocity ×","easing.inVelocity":"In velocity ×","easing.label":"Easing & velocity","easing.graphMode":"Graph mode","easing.value":"Value","easing.speed":"Speed","easing.valueGraph":"Normalized progress curve","easing.speedGraph":"Normalized velocity graph","easing.custom":"Custom curve","easing.presets":"Easing presets","easing.linear":"Linear","easing.ease":"Ease","easing.ease-in":"Ease in","easing.ease-out":"Ease out","easing.ease-in-out":"Ease in/out","easing.smooth":"Smooth","easing.snappy":"Snappy","easing.swift":"Swift out","easing.gentle":"Gentle","easing.emphasized":"Emphasized","easing.outgoing":"Outgoing tangent","easing.incoming":"Incoming tangent","easing.preview":"Play easing preview","easing.velocityHint":"1× = constant speed","easing.speedHelp":"Drag tangent controls to change influence and endpoint velocity. Vertical scale is normalized; multiply by value change / duration for units per second.","easing.valueHelp":"Drag handles or enter exact coordinates. Arrow keys nudge .01; Shift nudges .1. Escape cancels dragging.","media.trimStart":"Trim start","media.trimEnd":"Trim end","media.fadeIn":"Fade in","media.fadeOut":"Fade out","media.duplicateKeys":"Duplicate keyframes","media.undo":"Undo","media.selectedKeys":"selected","media.keyEasing":"Selected key easing","media.effects":"Applied effects","media.timeline":"Video timeline","media.tracks":"Tracks","media.more":"Scroll to more tracks and clips","media.lock":"Lock track","media.trackLocked":"Locked","media.trackUnlocked":"Unlocked","media.soundOn":"Sound on","media.soundOff":"Muted","media.marker":"Timeline marker","media.trackMute":"Mute track","media.duration":"Duration","media.playhead":"Playhead","media.emptyTracks":"No tracks. Connect a tracks array to begin.","media.keyframes":"Keyframes","media.curve":"Value graph","media.previousKey":"Previous keyframe","media.nextKey":"Next keyframe","media.addKey":"Add keyframe (K)","media.deleteKey":"Delete keyframe","media.outHandle":"Outgoing Bezier handle","media.inHandle":"Incoming Bezier handle","media.keyframe":"Keyframe","media.emptyKeys":"Add a keyframe or double-click the graph.","media.selectKey":"Select a keyframe to edit its time, value and interpolation.","media.time":"Time (seconds)","media.value":"Value","media.interpolation":"Interpolation","media.linear":"Linear","media.hold":"Hold","media.ease-in":"Ease in","media.ease-out":"Ease out","media.ease-in-out":"Ease in / out","media.bezier":"Custom Bezier","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,13 @@
11
11
  */
12
12
  /** 컴포넌트가 쓰는 문자열 키 → 기본(한국어) 값 */
13
13
  declare const DEFAULT_STRINGS: {
14
+ readonly "layerList.label": "레이어 목록";
15
+ readonly "layerList.delete": "{name} 삭제";
16
+ readonly "layerList.lock": "{name} 잠금";
17
+ readonly "layerList.unlock": "{name} 잠금 해제";
18
+ readonly "layerList.show": "{name} 표시";
19
+ readonly "layerList.hide": "{name} 숨기기";
20
+ readonly "layerList.empty": "레이어가 없습니다.";
14
21
  readonly "appUpdate.notice": "업데이트 안내";
15
22
  readonly "appUpdate.changes": "주요 변경 내용";
16
23
  readonly "appUpdate.automatic": "완료 후 자동으로 다시 시작됩니다.";
@@ -1 +1 @@
1
- import{literalEnglish as e}from"./i18n-copy.js";import{ENGLISH_STRINGS as a}from"./i18n-en.js";const i={"appUpdate.notice":"업데이트 안내","appUpdate.changes":"주요 변경 내용","appUpdate.automatic":"완료 후 자동으로 다시 시작됩니다.","appUpdate.install":"업데이트","appUpdate.inProgress":"업데이트 중","appUpdate.dialogTitle":"앱 업데이트","appUpdate.toastComplete":"{version} 업데이트가 완료됐어요.","appUpdate.checking.title":"업데이트 확인 중","appUpdate.checking.description":"새로운 업데이트가 있는지 확인하고 있습니다.","appUpdate.up-to-date.title":"최신 버전입니다","appUpdate.up-to-date.description":"현재 사용할 수 있는 최신 버전을 이용 중입니다.","appUpdate.available.title":"새로운 업데이트가 있어요","appUpdate.available.description":"개선된 기능과 안정성 업데이트를 다운로드할 수 있습니다.","appUpdate.downloading.title":"업데이트 다운로드 중","appUpdate.downloading.description":"다운로드가 끝나면 적용 방법을 안내해 드립니다.","appUpdate.ready.title":"업데이트를 적용할 준비가 됐어요","appUpdate.ready.description":"작업을 저장한 뒤 앱을 다시 시작해 업데이트를 적용하세요.","appUpdate.applying.title":"업데이트 적용 중","appUpdate.applying.description":"앱을 닫지 말고 잠시 기다려 주세요.","appUpdate.complete.title":"업데이트가 완료됐어요","appUpdate.complete.description":"새 버전이 정상적으로 적용되었습니다.","appUpdate.error.title":"업데이트를 완료하지 못했어요","appUpdate.error.description":"연결 상태를 확인하고 다시 시도해 주세요.","appUpdate.offline.title":"인터넷 연결이 필요해요","appUpdate.offline.description":"인터넷에 연결한 뒤 업데이트를 다시 시도해 주세요.","appUpdate.current":"현재","appUpdate.target":"새 버전","appUpdate.required":"필수 업데이트","appUpdate.later":"나중에","appUpdate.download":"업데이트 다운로드","appUpdate.restart":"다시 시작하여 적용","appUpdate.retry":"다시 시도","appUpdate.done":"확인","media.restoreHandles":"핸들 복구 (H)","media.tangentHelp":"드래그: 대칭 · Cmd/Ctrl: 개별 · H: 복구 · 겹친 핸들은 점선으로 꺼내 표시합니다.","media.resizeTimeline":"타임라인 높이 조절","media.resizeTimelineHint":"위아래 드래그로 높이 조절. 두 번 클릭 또는 Home으로 자동 높이 복원.","media.resizeTrack":"트랙 높이 조절","easing.outVelocity":"나가는 속도 ×","easing.inVelocity":"들어오는 속도 ×","easing.label":"이징 · 속도","easing.graphMode":"그래프 종류","easing.value":"값 곡선","easing.speed":"속도","easing.valueGraph":"정규화된 진행 곡선","easing.speedGraph":"정규화된 속도 그래프","easing.custom":"사용자 곡선","easing.presets":"이징 프리셋","easing.linear":"선형","easing.ease":"기본 이징","easing.ease-in":"시작 가속","easing.ease-out":"종료 감속","easing.ease-in-out":"가속 · 감속","easing.smooth":"부드럽게","easing.snappy":"빠른 전환","easing.swift":"빠른 진입","easing.gentle":"은은하게","easing.emphasized":"강조","easing.outgoing":"나가는 접선","easing.incoming":"들어오는 접선","easing.preview":"이징 미리보기 재생","easing.velocityHint":"1× = 일정한 속도","easing.speedHelp":"접선 핸들로 영향 범위와 끝점 속도를 조정합니다. 실제 초당 속도는 정규화된 값에 값 변화량 / 구간 시간을 곱합니다.","easing.valueHelp":"핸들을 드래그하거나 좌표를 입력하세요. 방향키 .01, Shift .1 단위 조정, Esc 이동 취소.","media.trimStart":"시작 트림","media.trimEnd":"끝 트림","media.fadeIn":"페이드 인","media.fadeOut":"페이드 아웃","media.duplicateKeys":"키프레임 복제","media.undo":"실행 취소","media.selectedKeys":"개 선택됨","media.keyEasing":"선택 키 이징","media.effects":"적용 효과","media.timeline":"영상 타임라인","media.tracks":"트랙","media.more":"오른쪽 클립 더 보기","media.lock":"트랙 잠금","media.trackLocked":"잠김","media.trackUnlocked":"잠금 해제됨","media.soundOn":"소리 켜짐","media.soundOff":"음소거됨","media.marker":"타임라인 마커","media.trackMute":"트랙 음소거","media.duration":"길이","media.playhead":"재생 위치","media.emptyTracks":"트랙 배열을 연결해 시작하세요.","media.keyframes":"키프레임","media.curve":"값 그래프","media.previousKey":"이전 키프레임","media.nextKey":"다음 키프레임","media.addKey":"키프레임 추가 (K)","media.deleteKey":"키프레임 삭제","media.outHandle":"나가는 베지어 핸들","media.inHandle":"들어오는 베지어 핸들","media.keyframe":"키프레임","media.emptyKeys":"키프레임을 추가하거나 그래프를 두 번 클릭하세요.","media.selectKey":"키프레임을 선택해 시간·값·보간을 편집하세요.","media.time":"시간 (초)","media.value":"값","media.interpolation":"보간","media.linear":"선형","media.hold":"유지","media.ease-in":"서서히 시작","media.ease-out":"서서히 종료","media.ease-in-out":"서서히 시작 / 종료","media.bezier":"사용자 베지어","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};
1
+ import{literalEnglish as e}from"./i18n-copy.js";import{ENGLISH_STRINGS as a}from"./i18n-en.js";const i={"layerList.label":"레이어 목록","layerList.delete":"{name} 삭제","layerList.lock":"{name} 잠금","layerList.unlock":"{name} 잠금 해제","layerList.show":"{name} 표시","layerList.hide":"{name} 숨기기","layerList.empty":"레이어가 없습니다.","appUpdate.notice":"업데이트 안내","appUpdate.changes":"주요 변경 내용","appUpdate.automatic":"완료 후 자동으로 다시 시작됩니다.","appUpdate.install":"업데이트","appUpdate.inProgress":"업데이트 중","appUpdate.dialogTitle":"앱 업데이트","appUpdate.toastComplete":"{version} 업데이트가 완료됐어요.","appUpdate.checking.title":"업데이트 확인 중","appUpdate.checking.description":"새로운 업데이트가 있는지 확인하고 있습니다.","appUpdate.up-to-date.title":"최신 버전입니다","appUpdate.up-to-date.description":"현재 사용할 수 있는 최신 버전을 이용 중입니다.","appUpdate.available.title":"새로운 업데이트가 있어요","appUpdate.available.description":"개선된 기능과 안정성 업데이트를 다운로드할 수 있습니다.","appUpdate.downloading.title":"업데이트 다운로드 중","appUpdate.downloading.description":"다운로드가 끝나면 적용 방법을 안내해 드립니다.","appUpdate.ready.title":"업데이트를 적용할 준비가 됐어요","appUpdate.ready.description":"작업을 저장한 뒤 앱을 다시 시작해 업데이트를 적용하세요.","appUpdate.applying.title":"업데이트 적용 중","appUpdate.applying.description":"앱을 닫지 말고 잠시 기다려 주세요.","appUpdate.complete.title":"업데이트가 완료됐어요","appUpdate.complete.description":"새 버전이 정상적으로 적용되었습니다.","appUpdate.error.title":"업데이트를 완료하지 못했어요","appUpdate.error.description":"연결 상태를 확인하고 다시 시도해 주세요.","appUpdate.offline.title":"인터넷 연결이 필요해요","appUpdate.offline.description":"인터넷에 연결한 뒤 업데이트를 다시 시도해 주세요.","appUpdate.current":"현재","appUpdate.target":"새 버전","appUpdate.required":"필수 업데이트","appUpdate.later":"나중에","appUpdate.download":"업데이트 다운로드","appUpdate.restart":"다시 시작하여 적용","appUpdate.retry":"다시 시도","appUpdate.done":"확인","media.restoreHandles":"핸들 복구 (H)","media.tangentHelp":"드래그: 대칭 · Cmd/Ctrl: 개별 · H: 복구 · 겹친 핸들은 점선으로 꺼내 표시합니다.","media.resizeTimeline":"타임라인 높이 조절","media.resizeTimelineHint":"위아래 드래그로 높이 조절. 두 번 클릭 또는 Home으로 자동 높이 복원.","media.resizeTrack":"트랙 높이 조절","easing.outVelocity":"나가는 속도 ×","easing.inVelocity":"들어오는 속도 ×","easing.label":"이징 · 속도","easing.graphMode":"그래프 종류","easing.value":"값 곡선","easing.speed":"속도","easing.valueGraph":"정규화된 진행 곡선","easing.speedGraph":"정규화된 속도 그래프","easing.custom":"사용자 곡선","easing.presets":"이징 프리셋","easing.linear":"선형","easing.ease":"기본 이징","easing.ease-in":"시작 가속","easing.ease-out":"종료 감속","easing.ease-in-out":"가속 · 감속","easing.smooth":"부드럽게","easing.snappy":"빠른 전환","easing.swift":"빠른 진입","easing.gentle":"은은하게","easing.emphasized":"강조","easing.outgoing":"나가는 접선","easing.incoming":"들어오는 접선","easing.preview":"이징 미리보기 재생","easing.velocityHint":"1× = 일정한 속도","easing.speedHelp":"접선 핸들로 영향 범위와 끝점 속도를 조정합니다. 실제 초당 속도는 정규화된 값에 값 변화량 / 구간 시간을 곱합니다.","easing.valueHelp":"핸들을 드래그하거나 좌표를 입력하세요. 방향키 .01, Shift .1 단위 조정, Esc 이동 취소.","media.trimStart":"시작 트림","media.trimEnd":"끝 트림","media.fadeIn":"페이드 인","media.fadeOut":"페이드 아웃","media.duplicateKeys":"키프레임 복제","media.undo":"실행 취소","media.selectedKeys":"개 선택됨","media.keyEasing":"선택 키 이징","media.effects":"적용 효과","media.timeline":"영상 타임라인","media.tracks":"트랙","media.more":"오른쪽 클립 더 보기","media.lock":"트랙 잠금","media.trackLocked":"잠김","media.trackUnlocked":"잠금 해제됨","media.soundOn":"소리 켜짐","media.soundOff":"음소거됨","media.marker":"타임라인 마커","media.trackMute":"트랙 음소거","media.duration":"길이","media.playhead":"재생 위치","media.emptyTracks":"트랙 배열을 연결해 시작하세요.","media.keyframes":"키프레임","media.curve":"값 그래프","media.previousKey":"이전 키프레임","media.nextKey":"다음 키프레임","media.addKey":"키프레임 추가 (K)","media.deleteKey":"키프레임 삭제","media.outHandle":"나가는 베지어 핸들","media.inHandle":"들어오는 베지어 핸들","media.keyframe":"키프레임","media.emptyKeys":"키프레임을 추가하거나 그래프를 두 번 클릭하세요.","media.selectKey":"키프레임을 선택해 시간·값·보간을 편집하세요.","media.time":"시간 (초)","media.value":"값","media.interpolation":"보간","media.linear":"선형","media.hold":"유지","media.ease-in":"서서히 시작","media.ease-out":"서서히 종료","media.ease-in-out":"서서히 시작 / 종료","media.bezier":"사용자 베지어","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":"음성 입력 미지원"},n=Symbol.for("@designbasekorea/ui-wc/locale/v1"),o=globalThis,r=o[n]??(o[n]={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(n,o){return n in r.overrides?r.overrides[n]:n in i?"en"===r.activeLocale?a[n]:i[n]:n.startsWith("copy.")&&"en"===r.activeLocale?e[n.slice(5)]??o??n:o??n}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};
@@ -209,6 +209,7 @@ export { DbVideoTimeline, TimelineEditDetail } from './components/db-video-timel
209
209
  export { DbKeyframeEditor, KeyframeEditDetail } from './components/db-keyframe-editor.js';
210
210
  export { EditorKeyframe, KeyframeEasing, KeyframeTangent, TimelineMarker, VideoClip, VideoClipEffect, VideoEffectProperty, VideoTrack, applyKeyframeEasing, editorTimecode, evaluateKeyframes, frameTime, keyframeEasingCurve } from './components/media-editor-model.js';
211
211
  export { DbEasingEditor, EasingChangeDetail } from './components/db-easing-editor.js';
212
+ export { DbLayerList, LayerListAction, LayerListChangeDetail, LayerListItem } from './components/db-layer-list.js';
212
213
  export { DbNotificationAction, DbNotificationItem, DbNotificationReadAll } from './core/notification-ui.js';
213
214
  export { ToastPosition as DbToastPosition, ToastVariant as DbToastVariant, NODE_STATUSES, NODE_VARIANTS } from './ui-contracts/dist/components.d.js';
214
215
  export { EASING_PRESETS, EasingCurve, EasingPreset, easingCss, evaluateEasing, evaluateEasingVelocity } from './components/easing-model.js';
package/dist/esm/index.js CHANGED
@@ -1 +1 @@
1
- export{APP_UPDATE_STATUSES,DbAppUpdate}from"./components/db-app-update.js";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{DbVideoTimeline}from"./components/db-video-timeline.js";export{DbKeyframeEditor}from"./components/db-keyframe-editor.js";export{applyKeyframeEasing,editorTimecode,evaluateKeyframes,frameTime,keyframeEasingCurve}from"./components/media-editor-model.js";export{DbEasingEditor}from"./components/db-easing-editor.js";export{EASING_PRESETS,easingCss,evaluateEasing,evaluateEasingVelocity}from"./components/easing-model.js";export{NODE_STATUSES,NODE_VARIANTS}from"./node_modules/@designbasekorea/ui-contracts/dist/components.js";
1
+ export{APP_UPDATE_STATUSES,DbAppUpdate}from"./components/db-app-update.js";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{DbVideoTimeline}from"./components/db-video-timeline.js";export{DbKeyframeEditor}from"./components/db-keyframe-editor.js";export{applyKeyframeEasing,editorTimecode,evaluateKeyframes,frameTime,keyframeEasingCurve}from"./components/media-editor-model.js";export{DbEasingEditor}from"./components/db-easing-editor.js";export{DbLayerList}from"./components/db-layer-list.js";export{EASING_PRESETS,easingCss,evaluateEasing,evaluateEasingVelocity}from"./components/easing-model.js";export{NODE_STATUSES,NODE_VARIANTS}from"./node_modules/@designbasekorea/ui-contracts/dist/components.js";