@almadar/ui 5.21.9 → 5.21.11

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.
@@ -11,6 +11,7 @@ var PhosphorIcons = require('@phosphor-icons/react');
11
11
  var TablerIcons = require('@tabler/icons-react');
12
12
  var FaIcons = require('react-icons/fa');
13
13
  var reactDom = require('react-dom');
14
+ var hooks = require('@almadar/ui/hooks');
14
15
  var evaluator = require('@almadar/evaluator');
15
16
  var context = require('@almadar/ui/context');
16
17
  var reactRouterDom = require('react-router-dom');
@@ -1957,503 +1958,6 @@ var init_Overlay = __esm({
1957
1958
  };
1958
1959
  }
1959
1960
  });
1960
-
1961
- // locales/en.json
1962
- var en_default;
1963
- var init_en = __esm({
1964
- "locales/en.json"() {
1965
- en_default = {
1966
- $meta: {
1967
- locale: "en",
1968
- direction: "ltr"
1969
- },
1970
- "common.save": "Save",
1971
- "common.cancel": "Cancel",
1972
- "common.delete": "Delete",
1973
- "common.close": "Close",
1974
- "common.confirm": "Are you sure?",
1975
- "common.create": "Create",
1976
- "common.edit": "Edit",
1977
- "common.view": "View",
1978
- "common.add": "Add",
1979
- "common.remove": "Remove",
1980
- "common.search": "Search...",
1981
- "common.filter": "Filter",
1982
- "common.actions": "Actions",
1983
- "common.yes": "Yes",
1984
- "common.no": "No",
1985
- "common.selected": "selected",
1986
- "common.ok": "OK",
1987
- "common.done": "Done",
1988
- "common.apply": "Apply",
1989
- "common.reset": "Reset",
1990
- "common.refresh": "Refresh",
1991
- "common.export": "Export",
1992
- "common.import": "Import",
1993
- "common.copy": "Copy",
1994
- "common.settings": "Settings",
1995
- "nav.previous": "Previous",
1996
- "nav.next": "Next",
1997
- "nav.back": "Back",
1998
- "nav.home": "Home",
1999
- "form.submit": "Submit",
2000
- "form.saving": "Saving...",
2001
- "form.required": "This field is required",
2002
- "form.invalidEmail": "Enter a valid email address",
2003
- "form.selectPlaceholder": "Select {{label}}...",
2004
- "form.searchPlaceholder": "Search {{entity}}...",
2005
- "table.empty.title": "No items found",
2006
- "table.empty.description": "No items to display.",
2007
- "table.search.placeholder": "Search...",
2008
- "table.pagination.showing": "Showing {{start}} to {{end}} of {{total}} results",
2009
- "table.pagination.page": "Page {{page}} of {{totalPages}}",
2010
- "table.bulk.selected": "{{count}} selected",
2011
- "table.loading": "Loading...",
2012
- "status.loading": "Loading...",
2013
- "status.scheduled": "Scheduled",
2014
- "status.inProgress": "In Progress",
2015
- "status.completed": "Completed",
2016
- "status.cancelled": "Cancelled",
2017
- "status.pending": "Pending",
2018
- "status.active": "Active",
2019
- "status.inactive": "Inactive",
2020
- "status.draft": "Draft",
2021
- "status.archived": "Archived",
2022
- "error.generic": "Something went wrong",
2023
- "error.retry": "Try again",
2024
- "error.notFound": "Not found",
2025
- "error.loadFailed": "Failed to load: {{message}}",
2026
- "error.configMissing": "Configuration not found for: {{id}}",
2027
- "common.loading": "Loading...",
2028
- "common.showMore": "Show More",
2029
- "common.showLess": "Show Less",
2030
- "common.noResults": "No results found",
2031
- "common.saveChanges": "Save Changes",
2032
- "common.retry": "Retry",
2033
- "common.open": "Open",
2034
- "common.back": "Back",
2035
- "empty.noItems": "No items",
2036
- "empty.noData": "No data available",
2037
- "empty.noItemsYet": "No items yet",
2038
- "empty.noItemsAdded": "No items added yet",
2039
- "empty.noOptionsFound": "No options found",
2040
- "list.addItemPlaceholder": "Add new item...",
2041
- "error.occurred": "An error occurred",
2042
- "error.failedToLoad": "Failed to load data",
2043
- "wizard.back": "Back",
2044
- "wizard.next": "Next",
2045
- "wizard.complete": "Complete",
2046
- "wizard.stepOf": "Step {{current}} of {{total}}",
2047
- "pagination.previous": "Previous",
2048
- "pagination.next": "Next",
2049
- "pagination.total": "Total:",
2050
- "pagination.show": "Show:",
2051
- "pagination.goTo": "Go to:",
2052
- "pagination.go": "Go",
2053
- "auth.signIn": "Sign in",
2054
- "auth.signOut": "Sign out",
2055
- "dialog.confirm": "Confirm",
2056
- "dialog.cancel": "Cancel",
2057
- "dialog.loading": "Loading...",
2058
- "dialog.delete.title": "Delete {{item}}?",
2059
- "dialog.delete.message": "This action cannot be undone.",
2060
- "trait.availableActions": "Available Actions",
2061
- "trait.transitions": "Transitions",
2062
- "trait.availableNow": "Available now",
2063
- "book.startReading": "Start Reading",
2064
- "book.tableOfContents": "Table of Contents",
2065
- "book.partNumber": "Part {{number}}",
2066
- "book.print": "Print",
2067
- "book.previousPage": "Previous page",
2068
- "book.nextPage": "Next page",
2069
- "quiz.showAnswer": "Show answer",
2070
- "quiz.hideAnswer": "Hide answer",
2071
- "aria.closeModal": "Close modal",
2072
- "aria.closeToast": "Dismiss toast",
2073
- "aria.closeAlert": "Dismiss alert",
2074
- "aria.removeFilter": "Remove filter",
2075
- "aria.closeDrawer": "Close drawer",
2076
- "aria.closePanel": "Close panel",
2077
- "aria.previousImage": "Previous image",
2078
- "aria.nextImage": "Next image",
2079
- "aria.dismiss": "Dismiss",
2080
- "aria.previousSlide": "Previous slide",
2081
- "aria.nextSlide": "Next slide",
2082
- "aria.previousDays": "Previous days",
2083
- "aria.nextDays": "Next days",
2084
- "aria.decrease": "Decrease",
2085
- "aria.increase": "Increase",
2086
- "aria.breadcrumb": "Breadcrumb",
2087
- "aria.tableOfContents": "Table of contents",
2088
- "aria.docsSidebar": "Documentation sidebar",
2089
- "aria.selectAllRows": "Select all rows",
2090
- "aria.selectAll": "Select all",
2091
- "aria.upvote": "Upvote",
2092
- "aria.downvote": "Downvote",
2093
- "aria.qrScanner": "QR scanner",
2094
- "aria.mockScanDev": "Mock scan (dev)",
2095
- "aria.openMenu": "Open menu",
2096
- "aria.closeMenu": "Close menu",
2097
- "aria.openSidebar": "Open sidebar",
2098
- "sidebar.expand": "Expand sidebar",
2099
- "sidebar.collapse": "Collapse sidebar",
2100
- "sidebar.close": "Close sidebar",
2101
- "loading.items": "Loading items...",
2102
- "card.imageAlt": "Image",
2103
- "canvas.emptyMessage": "No content",
2104
- "canvas.errorTitle": "Canvas error",
2105
- "book.noData": "No data",
2106
- "common.notifications": "Notifications",
2107
- "common.remaining": "{{count}} remaining",
2108
- "error.somethingWentWrong": "Something went wrong",
2109
- "error.loadingItems": "Loading items...",
2110
- "error.noItemsFound": "No items found",
2111
- "debug.noEntityData": "No entity data",
2112
- "debug.noEntities": "No entities",
2113
- "debug.noTicks": "No ticks registered",
2114
- "debug.noActiveTraits": "No active traits",
2115
- "debug.noGuardEvaluations": "No guard evaluations",
2116
- "debug.noBridgeData": "No bridge data",
2117
- "debug.status": "Status",
2118
- "debug.eventsForwarded": "Events Forwarded (Client \u2192 Server)",
2119
- "debug.eventsReceived": "Events Received (Server \u2192 Client)",
2120
- "debug.lastHeartbeat": "Last Heartbeat",
2121
- "debug.noEventsYet": "No events yet",
2122
- "debug.noTransitionsRecorded": "No transitions recorded",
2123
- "debug.noVerificationChecks": "No verification checks yet",
2124
- "display.chartError": "Chart error",
2125
- "display.codeViewerError": "Code viewer error",
2126
- "display.noCode": "No code",
2127
- "display.documentError": "Document error",
2128
- "display.noDocument": "No document",
2129
- "display.graphError": "Graph error",
2130
- "display.noGraphData": "No graph data",
2131
- "display.galleryError": "Gallery error",
2132
- "display.noMedia": "No media",
2133
- "display.meterError": "Meter error",
2134
- "display.signaturePadError": "Signature pad error",
2135
- "display.timelineError": "Timeline error",
2136
- "display.noEvents": "No events",
2137
- "template.features": "Features",
2138
- "template.howItWorks": "How It Works",
2139
- "template.showcase": "Showcase",
2140
- "template.faq": "Frequently Asked Questions",
2141
- "template.ourTeam": "Our Team",
2142
- "template.caseStudies": "Case Studies",
2143
- "richBlockEditor.toolbar.text": "Text",
2144
- "richBlockEditor.toolbar.h1": "H1",
2145
- "richBlockEditor.toolbar.h2": "H2",
2146
- "richBlockEditor.toolbar.h3": "H3",
2147
- "richBlockEditor.toolbar.bulletList": "Bullet list",
2148
- "richBlockEditor.toolbar.numbered": "Numbered",
2149
- "richBlockEditor.toolbar.quote": "Quote",
2150
- "richBlockEditor.toolbar.code": "Code",
2151
- "richBlockEditor.toolbar.divider": "Divider",
2152
- "richBlockEditor.toolbar.image": "Image",
2153
- "richBlockEditor.blockType.paragraph": "Text",
2154
- "richBlockEditor.blockType.heading1": "Heading 1",
2155
- "richBlockEditor.blockType.heading2": "Heading 2",
2156
- "richBlockEditor.blockType.heading3": "Heading 3",
2157
- "richBlockEditor.blockType.bulletList": "Bullet list",
2158
- "richBlockEditor.blockType.numberedList": "Numbered list",
2159
- "richBlockEditor.blockType.quote": "Quote",
2160
- "richBlockEditor.blockType.code": "Code",
2161
- "richBlockEditor.blockType.divider": "Divider",
2162
- "richBlockEditor.blockType.image": "Image",
2163
- "richBlockEditor.blockActions": "Block actions",
2164
- "richBlockEditor.duplicate": "Duplicate",
2165
- "richBlockEditor.turnInto": "Turn into",
2166
- "richBlockEditor.placeholder.heading1": "Heading 1",
2167
- "richBlockEditor.placeholder.heading2": "Heading 2",
2168
- "richBlockEditor.placeholder.heading3": "Heading 3",
2169
- "richBlockEditor.placeholder.quote": "Quote",
2170
- "richBlockEditor.placeholder.code": "Enter code",
2171
- "richBlockEditor.placeholder.paragraph": "Start writing...",
2172
- "richBlockEditor.placeholder.listItem": "List item",
2173
- "richBlockEditor.placeholder.caption": "Caption (optional)",
2174
- "richBlockEditor.aria.heading1Block": "Heading 1 block",
2175
- "richBlockEditor.aria.heading2Block": "Heading 2 block",
2176
- "richBlockEditor.aria.heading3Block": "Heading 3 block",
2177
- "richBlockEditor.aria.quoteBlock": "Quote block",
2178
- "richBlockEditor.aria.codeBlock": "Code block",
2179
- "richBlockEditor.aria.codeLanguage": "Code language",
2180
- "richBlockEditor.aria.imageUrl": "Image URL",
2181
- "richBlockEditor.aria.imageCaption": "Image caption",
2182
- "richBlockEditor.aria.listItem": "List item",
2183
- "richBlockEditor.aria.removeListItem": "Remove list item",
2184
- "richBlockEditor.aria.paragraphBlock": "Paragraph block",
2185
- "richBlockEditor.embeddedImage": "Embedded image",
2186
- "richBlockEditor.noImageUrl": "No image URL set",
2187
- "richBlockEditor.addItem": "Add item",
2188
- "richBlockEditor.insertParagraphBelow": "Insert paragraph below",
2189
- "richBlockEditor.editorToolbar": "Block editor toolbar",
2190
- "richBlockEditor.insertEntry": "Insert {{label}}",
2191
- "versionDiff.compare": "Compare",
2192
- "versionDiff.to": "to",
2193
- "versionDiff.beforeRevision": "Before revision",
2194
- "versionDiff.afterRevision": "After revision",
2195
- "versionDiff.switchToInline": "Switch to inline view",
2196
- "versionDiff.switchToSideBySide": "Switch to side-by-side view",
2197
- "versionDiff.revert": "Revert",
2198
- "versionDiff.byAuthor": " by {{author}}",
2199
- "violationAlert.actionType.measure": "Corrective Measure",
2200
- "violationAlert.actionType.admin": "Administrative Action",
2201
- "violationAlert.actionType.penalty": "Penalty Proceedings",
2202
- "violationAlert.fallbackMessage": "Violation",
2203
- "violationAlert.adminLabel": "Admin:",
2204
- "violationAlert.penaltyLabel": "Penalty:",
2205
- "violationAlert.goToField": "Go to field",
2206
- "branchingLogic.title": "Branching logic",
2207
- "branchingLogic.if": "If",
2208
- "branchingLogic.goTo": "go to",
2209
- "branchingLogic.rules": "Rules",
2210
- "branchingLogic.logicGraph": "Logic graph",
2211
- "branchingLogic.addRule": "Add rule",
2212
- "branchingLogic.deleteRule": "Delete rule",
2213
- "branchingLogic.endOfSurvey": "End of survey",
2214
- "branchingLogic.brokenReference": "Broken reference",
2215
- "branchingLogic.selectQuestion": "Select question",
2216
- "branchingLogic.selectTarget": "Select target",
2217
- "branchingLogic.selectValue": "Select value",
2218
- "branchingLogic.addValue": "Add value",
2219
- "branchingLogic.value": "Value",
2220
- "branchingLogic.typeValuePressEnter": "Type value, press Enter",
2221
- "branchingLogic.operatorEquals": "equals",
2222
- "branchingLogic.operatorNotEquals": "does not equal",
2223
- "branchingLogic.operatorContains": "contains",
2224
- "branchingLogic.operatorIn": "is one of",
2225
- "branchingLogic.graphAriaLabel": "Branching logic graph",
2226
- "branchingLogic.ruleCountOne": "{{count}} rule",
2227
- "branchingLogic.ruleCountOther": "{{count}} rules",
2228
- "branchingLogic.brokenCount": "{{count}} broken",
2229
- "branchingLogic.emptyNoQuestions": "Add questions before building branching rules.",
2230
- "branchingLogic.emptyNoRules": "No rules yet. Add a rule to define branching logic.",
2231
- "filterGroup.filters": "Filters",
2232
- "filterGroup.all": "All",
2233
- "filterGroup.clear": "Clear",
2234
- "filterGroup.clearAll": "Clear all",
2235
- "filterGroup.from": "From",
2236
- "filterGroup.to": "To",
2237
- "filterGroup.allOf": "All {{label}}",
2238
- "filterGroup.activeCount": "{{count}} active",
2239
- "debug.guardEvaluationsHint": "Guard evaluations will appear when transitions or ticks with guards execute",
2240
- "debug.expression": "Expression",
2241
- "debug.inputs": "Inputs",
2242
- "debug.trait": "Trait",
2243
- "debug.filterAll": "All",
2244
- "debug.filterPassed": "Passed",
2245
- "debug.filterFailed": "Failed",
2246
- "debug.traitsInitHint": "Traits will appear when the state machine initializes",
2247
- "debug.traitsMountHint": "Traits will appear when components using them are mounted",
2248
- "debug.activeStates": "Active States",
2249
- "debug.availableEvents": "Available Events",
2250
- "debug.noTransitionsFromState": "No transitions from current state",
2251
- "debug.guarded": "guarded",
2252
- "debug.otherEvents": "Other Events (not available from current state)",
2253
- "debug.recentTransitions": "Recent Transitions",
2254
- "debug.transitionsCount": "{{count}} transitions",
2255
- "debug.states": "States",
2256
- "debug.transitions": "Transitions",
2257
- "debug.guards": "Guards",
2258
- "debug.debugModeHint": "Debug mode may not be enabled",
2259
- "debug.entitiesSpawnHint": "Entities will appear when spawned",
2260
- "debug.singleton": "Singleton",
2261
- "debug.singletonsCount": "Singletons ({{count}})",
2262
- "debug.runtimeCount": "Runtime ({{count}})",
2263
- "debug.moreEntities": "+{{count}} more entities",
2264
- "debug.persistent": "Persistent",
2265
- "debug.loadedCount": "{{count}} loaded",
2266
- "debug.notLoaded": "not loaded",
2267
- "debug.eventsExecuteHint": "Events will appear as traits, ticks, and other systems execute",
2268
- "debug.allCount": "All ({{count}})",
2269
- "debug.autoScroll": "Auto-scroll",
2270
- "debug.transitionsProcessHint": "Transitions will appear as the state machine processes events",
2271
- "debug.transitionsRecorded": "{{count}} transitions recorded",
2272
- "debug.guardLabel": "guard:",
2273
- "debug.effectsCount": "{{count}} effects",
2274
- "debug.bridgeInitHint": "The ServerBridge has not been initialized. Bridge health will appear once the runtime connects to the server.",
2275
- "debug.never": "Never",
2276
- "debug.connected": "Connected",
2277
- "debug.disconnected": "Disconnected",
2278
- "debug.lastError": "Last Error",
2279
- "debug.totalEventsProcessed": "{{count}} total events processed",
2280
- "debug.server": "server",
2281
- "debug.clientEffectsCount": "{{count}} clientEffects",
2282
- "debug.emitLabel": "emit:",
2283
- "debug.rowsCount": "{{count}} rows",
2284
- "debug.serverResponse": "server response",
2285
- "debug.collapseVerificationTimeline": "Collapse verification timeline",
2286
- "debug.expandVerificationTimeline": "Expand verification timeline",
2287
- "debug.failCount": "{{count}} fail",
2288
- "debug.ok": "OK",
2289
- "debug.localCount": "{{count}} local",
2290
- "debug.serverCount": "{{count}} server",
2291
- "debug.waitingForTransitions": "Waiting for transitions...",
2292
- "debug.tabDispatch": "Dispatch",
2293
- "debug.tabVerify": "Verify",
2294
- "debug.tabVerifyAlert": "Verify (!)",
2295
- "debug.tabTimeline": "Timeline",
2296
- "debug.tabBridge": "Bridge",
2297
- "debug.tabTraits": "Traits",
2298
- "debug.tabTicks": "Ticks",
2299
- "debug.tabEntities": "Entities",
2300
- "debug.tabEvents": "Events",
2301
- "debug.tabGuards": "Guards",
2302
- "debug.debugger": "Debugger",
2303
- "debug.failedCount": "{{count}} failed",
2304
- "debug.traitsCount": "{{count}} traits",
2305
- "debug.idle": "Idle",
2306
- "debug.openDebugger": "Open Debugger (`)",
2307
- "debug.kflowVerifier": "KFlow Verifier",
2308
- "debug.allPassing": "All passing",
2309
- "debug.runtime": "Runtime",
2310
- "debug.close": "Close (`)",
2311
- "debug.toggleHint": "Press ` to toggle | window.__orbitalVerification for automation",
2312
- "replyTree.expandReplies": "Expand replies",
2313
- "replyTree.collapseReplies": "Collapse replies",
2314
- "replyTree.voteOnReplyBy": "Vote on reply by {{author}}",
2315
- "replyTree.replyTo": "Reply to {{author}}",
2316
- "replyTree.replyToPlaceholder": "Reply to {{author}}\u2026",
2317
- "replyTree.reply": "Reply",
2318
- "replyTree.flagReplyBy": "Flag reply by {{author}}",
2319
- "replyTree.flag": "Flag",
2320
- "replyTree.send": "Send",
2321
- "replyTree.continueThread": "Continue thread",
2322
- "replyTree.noRepliesYet": "No replies yet.",
2323
- "signaturePad.label": "Signature",
2324
- "signaturePad.helperText": "Draw your signature above",
2325
- "signaturePad.clear": "Clear",
2326
- "signaturePad.confirm": "Confirm",
2327
- "qrScanner.cameraUnavailable": "Camera unavailable",
2328
- "qrScanner.paused": "Paused",
2329
- "qrScanner.resumeScanning": "Resume scanning",
2330
- "qrScanner.pauseScanning": "Pause scanning",
2331
- "qrScanner.switchToFrontCamera": "Switch to front camera",
2332
- "qrScanner.switchToRearCamera": "Switch to rear camera",
2333
- "qrScanner.mockScan": "Mock Scan",
2334
- "docSearch.placeholder": "Search documentation...",
2335
- "stateMachine.loading": "Loading state machine\u2026",
2336
- "stateMachine.noStateMachine": "No state machine to visualize",
2337
- "avl.trigger": "Trigger",
2338
- "avl.guard": "Guard",
2339
- "avl.effects": "Effects",
2340
- "avl.props": "Props",
2341
- "avl.entity": "Entity",
2342
- "avl.traits": "Traits",
2343
- "avl.transition": "Transition",
2344
- "avl.onEntity": "on {{entity}}",
2345
- "avl.linkedTo": "linked to {{entity}}",
2346
- "avl.pressEscToZoomOut": "Press Esc to zoom out",
2347
- "avl.zoomIn": "Zoom in",
2348
- "avl.zoomOut": "Zoom out",
2349
- "avl.orbitalLabel": "Orbital: {{name}}",
2350
- "avl.orbitalLabelHighlighted": "Orbital: {{name}} (highlighted)",
2351
- "avl.noTraitData": "No trait data",
2352
- "avl.computingLayout": "Computing layout...",
2353
- "avl.noStateMachine": "No state machine",
2354
- "avl.listensFor": "listens for {{event}}",
2355
- "avl.emits": "emits {{event}}",
2356
- "avl.pageLayout": "Page Layout",
2357
- "avl.overlaySuffix": "(overlay)",
2358
- "orbPreview.previewBadge": "Preview",
2359
- "orbPreview.doubleClickToOpen": "Double-click to open",
2360
- "orbPreview.dropToAddAndOpen": "Drop to add and open",
2361
- "orbPreview.dispatching": "Coordinator is dispatching to this orbital",
2362
- "orbPreview.noPreview": "No preview available",
2363
- "orbPreview.screensCount": "{{count}} screens",
2364
- "detailView.noTransitionData": "No transition data",
2365
- "orbInspector.required": "req",
2366
- "orbInspector.addField": "Add Field",
2367
- "orbInspector.serviceMode": "Service Mode",
2368
- "orbInspector.standalone": "Standalone",
2369
- "orbInspector.embedded": "Embedded",
2370
- "orbInspector.rendersOwnUi": "Renders its own UI",
2371
- "orbInspector.headless": "Headless, wired to other behaviors",
2372
- "orbInspector.addEffect": "Add Effect",
2373
- "orbInspector.guardExpression": "Guard expression",
2374
- "orbInspector.selectPatternForStyles": "Select a pattern to view its style tokens.",
2375
- "orbInspector.tokens": "Tokens",
2376
- "orbInspector.noTokenContract": "No token contract declared for this pattern.",
2377
- "orbInspector.variant": "Variant",
2378
- "orbInspector.size": "Size",
2379
- "orbInspector.statesCount": "{{count}} states",
2380
- "orbInspector.onEntity": " on {{entity}}",
2381
- "orbInspector.projectThemeTokens": "Project theme tokens",
2382
- "orbInspector.tokenGroup.colors": "Colors",
2383
- "orbInspector.tokenGroup.radii": "Radii",
2384
- "orbInspector.tokenGroup.spacing": "Spacing",
2385
- "orbInspector.tokenGroup.shadows": "Shadows",
2386
- "orbInspector.tab.inspector": "Inspector",
2387
- "orbInspector.tab.styles": "Styles",
2388
- "orbInspector.tab.code": "Code",
2389
- "canvas.goBackToOverview": "Go back to overview",
2390
- "canvas.overview": "Overview",
2391
- "canvas.expanded": "Expanded",
2392
- "canvas.modulesCount": "{{count}} modules",
2393
- "canvas.screensCount": "{{count}} screens",
2394
- "canvas.switchToView": "Switch to {{label}} view",
2395
- "lawReference.viewFullText": "View full law text",
2396
- "statCard.defaultLabel": "Stat",
2397
- "statCard.vsLastPeriod": "vs last period",
2398
- "mediaGallery.upload": "Upload",
2399
- "mediaGallery.noMediaDescription": "No media items to display.",
2400
- "pagination.jumpPlaceholder": "Page",
2401
- "table.selectRow": "Select row {{id}}",
2402
- "card.selectItem": "Select {{item}}",
2403
- "card.itemFallback": "item",
2404
- "fileTree.noFiles": "No files",
2405
- "masterDetail.selectItem": "Select an item to view details",
2406
- "empty.createFirst": "Create your first item to get started.",
2407
- "upload.dropOrBrowse": "Drop files here or click to browse",
2408
- "upload.dropFilesHere": "Drop files here",
2409
- "upload.accepted": "Accepted: {{accept}}",
2410
- "upload.maxSize": "Max size: {{size}}",
2411
- "upload.maxFiles": "Up to {{count}} files",
2412
- "upload.error.maxFiles": "Maximum {{count}} files allowed",
2413
- "upload.error.invalidType": "Invalid file type: {{name}}",
2414
- "upload.error.tooLarge": "File too large: {{name}} (max {{size}})",
2415
- "optionConstraint.requiredOne": "Required, pick 1",
2416
- "optionConstraint.optionalOne": "Optional, pick up to 1",
2417
- "optionConstraint.pickExactly": "Pick exactly {{count}}",
2418
- "optionConstraint.pickRange": "Pick {{min}}-{{max}}",
2419
- "optionConstraint.pickAtLeast": "Pick at least {{count}}",
2420
- "optionConstraint.pickUpTo": "Pick up to {{count}}",
2421
- "optionConstraint.optional": "Optional",
2422
- "optionConstraint.outOfStock": "Out of stock",
2423
- "optionConstraint.error.pickOne": "Pick 1 option",
2424
- "optionConstraint.error.pickOnlyOne": "Pick only 1 option",
2425
- "optionConstraint.error.pickMore": "Pick at least {{count}} more",
2426
- "optionConstraint.error.removeOptions": "Remove {{count}} options",
2427
- "stateMachine.pinned": "Pinned",
2428
- "stateMachine.eventCount": "{{count}} events",
2429
- "stateMachine.externalEffects": "External Effects",
2430
- "stateMachine.legend.initial": "Initial",
2431
- "stateMachine.legend.final": "Final",
2432
- "stateMachine.legend.state": "State",
2433
- "stateMachine.legend.multiEvent": "Multi-event"
2434
- };
2435
- }
2436
- });
2437
- function useTranslate() {
2438
- return React85.useContext(I18nContext);
2439
- }
2440
- var _meta, coreMessages, coreLocale, I18nContext;
2441
- var init_useTranslate = __esm({
2442
- "hooks/useTranslate.ts"() {
2443
- "use client";
2444
- init_en();
2445
- ({ $meta: _meta, ...coreMessages } = en_default);
2446
- coreLocale = coreMessages;
2447
- I18nContext = React85.createContext({
2448
- locale: "en",
2449
- direction: "ltr",
2450
- t: (key) => coreLocale[key] ?? key
2451
- // core locale fallback
2452
- });
2453
- I18nContext.displayName = "I18nContext";
2454
- I18nContext.Provider;
2455
- }
2456
- });
2457
1961
  var sizeClasses2, minWidthClasses, lookStyles, Modal;
2458
1962
  var init_Modal = __esm({
2459
1963
  "components/core/molecules/Modal.tsx"() {
@@ -2465,7 +1969,6 @@ var init_Modal = __esm({
2465
1969
  init_Overlay();
2466
1970
  init_cn();
2467
1971
  init_useEventBus();
2468
- init_useTranslate();
2469
1972
  sizeClasses2 = {
2470
1973
  sm: "max-w-md",
2471
1974
  md: "max-w-2xl",
@@ -2503,7 +2006,7 @@ var init_Modal = __esm({
2503
2006
  look = "centered-card"
2504
2007
  }) => {
2505
2008
  const eventBus = useEventBus();
2506
- const { t } = useTranslate();
2009
+ const { t } = hooks.useTranslate();
2507
2010
  const modalRef = React85.useRef(null);
2508
2011
  const previousActiveElement = React85.useRef(null);
2509
2012
  const [dragY, setDragY] = React85.useState(0);
@@ -2687,7 +2190,6 @@ var init_Drawer = __esm({
2687
2190
  init_Overlay();
2688
2191
  init_cn();
2689
2192
  init_useEventBus();
2690
- init_useTranslate();
2691
2193
  sizeWidths = {
2692
2194
  sm: "w-full sm:w-80",
2693
2195
  // 320px
@@ -2713,7 +2215,7 @@ var init_Drawer = __esm({
2713
2215
  closeEvent
2714
2216
  }) => {
2715
2217
  const eventBus = useEventBus();
2716
- const { t } = useTranslate();
2218
+ const { t } = hooks.useTranslate();
2717
2219
  const drawerRef = React85.useRef(null);
2718
2220
  const previousActiveElement = React85.useRef(null);
2719
2221
  React85.useEffect(() => {
@@ -2960,7 +2462,6 @@ var init_Toast = __esm({
2960
2462
  init_Badge();
2961
2463
  init_cn();
2962
2464
  init_useEventBus();
2963
- init_useTranslate();
2964
2465
  variantClasses = {
2965
2466
  success: "bg-card border-[length:var(--border-width)] border-success",
2966
2467
  error: "bg-card border-[length:var(--border-width)] border-error",
@@ -2994,7 +2495,7 @@ var init_Toast = __esm({
2994
2495
  actionEvent
2995
2496
  }) => {
2996
2497
  const eventBus = useEventBus();
2997
- const { t } = useTranslate();
2498
+ const { t } = hooks.useTranslate();
2998
2499
  const handleDismiss = () => {
2999
2500
  if (dismissEvent) eventBus.emit(`UI:${dismissEvent}`, {});
3000
2501
  onDismiss?.();
@@ -3922,7 +3423,6 @@ var init_Input = __esm({
3922
3423
  "components/core/atoms/Input.tsx"() {
3923
3424
  init_cn();
3924
3425
  init_Icon();
3925
- init_useTranslate();
3926
3426
  Input = React85__namespace.default.forwardRef(
3927
3427
  ({
3928
3428
  className,
@@ -3940,7 +3440,7 @@ var init_Input = __esm({
3940
3440
  onChange,
3941
3441
  ...props
3942
3442
  }, ref) => {
3943
- const { t } = useTranslate();
3443
+ const { t } = hooks.useTranslate();
3944
3444
  const type = inputType || htmlType || "text";
3945
3445
  const IconComponent = typeof iconProp === "string" ? resolveIcon(iconProp) : iconProp;
3946
3446
  const resolvedLeftIcon = leftIcon || IconComponent && /* @__PURE__ */ jsxRuntime.jsx(IconComponent, { className: "h-icon-default w-icon-default" });
@@ -4306,7 +3806,6 @@ var init_FilterPill = __esm({
4306
3806
  "components/core/atoms/FilterPill.tsx"() {
4307
3807
  init_cn();
4308
3808
  init_useEventBus();
4309
- init_useTranslate();
4310
3809
  init_Icon();
4311
3810
  variantStyles5 = {
4312
3811
  default: [
@@ -4362,7 +3861,7 @@ var init_FilterPill = __esm({
4362
3861
  ...props
4363
3862
  }, ref) => {
4364
3863
  const eventBus = useEventBus();
4365
- const { t } = useTranslate();
3864
+ const { t } = hooks.useTranslate();
4366
3865
  const payloadLabel = typeof children === "string" || typeof children === "number" ? children : label;
4367
3866
  const handleClick = React85.useCallback(() => {
4368
3867
  onClick?.();
@@ -5518,7 +5017,6 @@ var init_LawReferenceTooltip = __esm({
5518
5017
  init_Typography();
5519
5018
  init_Divider();
5520
5019
  init_cn();
5521
- init_useTranslate();
5522
5020
  positionStyles2 = {
5523
5021
  top: "bottom-full left-1/2 -translate-x-1/2 mb-2",
5524
5022
  bottom: "top-full left-1/2 -translate-x-1/2 mt-2",
@@ -5537,7 +5035,7 @@ var init_LawReferenceTooltip = __esm({
5537
5035
  position = "top",
5538
5036
  className
5539
5037
  }) => {
5540
- const { t } = useTranslate();
5038
+ const { t } = hooks.useTranslate();
5541
5039
  const [isVisible, setIsVisible] = React85__namespace.default.useState(false);
5542
5040
  const timeoutRef = React85__namespace.default.useRef(null);
5543
5041
  const handleMouseEnter = () => {
@@ -8512,7 +8010,6 @@ var init_ErrorState = __esm({
8512
8010
  init_Typography();
8513
8011
  init_Icon();
8514
8012
  init_useEventBus();
8515
- init_useTranslate();
8516
8013
  ErrorState = ({
8517
8014
  title,
8518
8015
  message,
@@ -8522,7 +8019,7 @@ var init_ErrorState = __esm({
8522
8019
  retryEvent
8523
8020
  }) => {
8524
8021
  const eventBus = useEventBus();
8525
- const { t } = useTranslate();
8022
+ const { t } = hooks.useTranslate();
8526
8023
  const handleRetry = () => {
8527
8024
  if (retryEvent) eventBus.emit(`UI:${retryEvent}`, {});
8528
8025
  onRetry?.();
@@ -8555,9 +8052,8 @@ var init_ErrorBoundary = __esm({
8555
8052
  "use client";
8556
8053
  init_cn();
8557
8054
  init_ErrorState();
8558
- init_useTranslate();
8559
8055
  DefaultFallback = ({ error, onRetry }) => {
8560
- const { t } = useTranslate();
8056
+ const { t } = hooks.useTranslate();
8561
8057
  return /* @__PURE__ */ jsxRuntime.jsx(
8562
8058
  ErrorState,
8563
8059
  {
@@ -8684,7 +8180,7 @@ function Skeleton({
8684
8180
  fields,
8685
8181
  className
8686
8182
  }) {
8687
- const { t: _t } = useTranslate();
8183
+ const { t: _t } = hooks.useTranslate();
8688
8184
  switch (variant) {
8689
8185
  case "header":
8690
8186
  return /* @__PURE__ */ jsxRuntime.jsx(HeaderSkeleton, { className });
@@ -8705,7 +8201,6 @@ var init_Skeleton = __esm({
8705
8201
  "components/core/molecules/Skeleton.tsx"() {
8706
8202
  "use client";
8707
8203
  init_cn();
8708
- init_useTranslate();
8709
8204
  init_Box();
8710
8205
  init_Stack();
8711
8206
  init_Stack();
@@ -9738,7 +9233,6 @@ var AboutPageTemplate;
9738
9233
  var init_AboutPageTemplate = __esm({
9739
9234
  "components/marketing/templates/AboutPageTemplate.tsx"() {
9740
9235
  init_cn();
9741
- init_useTranslate();
9742
9236
  init_Stack();
9743
9237
  init_Box();
9744
9238
  init_Typography();
@@ -9754,7 +9248,7 @@ var init_AboutPageTemplate = __esm({
9754
9248
  entity,
9755
9249
  className
9756
9250
  }) => {
9757
- const { t } = useTranslate();
9251
+ const { t } = hooks.useTranslate();
9758
9252
  const resolved = entity && typeof entity === "object" && !Array.isArray(entity) ? entity : void 0;
9759
9253
  if (!resolved) return null;
9760
9254
  return /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "none", className: cn("w-full", className), children: [
@@ -9843,7 +9337,6 @@ var init_Alert = __esm({
9843
9337
  init_Icon();
9844
9338
  init_Typography();
9845
9339
  init_useEventBus();
9846
- init_useTranslate();
9847
9340
  variantBorderClasses = {
9848
9341
  info: "border-info",
9849
9342
  success: "border-success",
@@ -9875,7 +9368,7 @@ var init_Alert = __esm({
9875
9368
  dismissEvent
9876
9369
  }) => {
9877
9370
  const eventBus = useEventBus();
9878
- const { t } = useTranslate();
9371
+ const { t } = hooks.useTranslate();
9879
9372
  const handleDismissCallback = onDismiss || onClose;
9880
9373
  const handleDismiss = () => {
9881
9374
  if (dismissEvent) eventBus.emit(`UI:${dismissEvent}`, {});
@@ -10203,7 +9696,6 @@ var init_Menu = __esm({
10203
9696
  init_Badge();
10204
9697
  init_cn();
10205
9698
  init_useEventBus();
10206
- init_useTranslate();
10207
9699
  Menu = ({
10208
9700
  trigger,
10209
9701
  items,
@@ -10211,7 +9703,7 @@ var init_Menu = __esm({
10211
9703
  className
10212
9704
  }) => {
10213
9705
  const eventBus = useEventBus();
10214
- const { t } = useTranslate();
9706
+ const { t } = hooks.useTranslate();
10215
9707
  const [isOpen, setIsOpen] = React85.useState(false);
10216
9708
  const [activeSubMenu, setActiveSubMenu] = React85.useState(null);
10217
9709
  const [triggerRect, setTriggerRect] = React85.useState(null);
@@ -10491,7 +9983,6 @@ var init_FloatingActionButton = __esm({
10491
9983
  init_Typography();
10492
9984
  init_cn();
10493
9985
  init_useEventBus();
10494
- init_useTranslate();
10495
9986
  FloatingActionButton = ({
10496
9987
  action,
10497
9988
  actionPayload,
@@ -10504,7 +9995,7 @@ var init_FloatingActionButton = __esm({
10504
9995
  className
10505
9996
  }) => {
10506
9997
  const eventBus = useEventBus();
10507
- const { t } = useTranslate();
9998
+ const { t } = hooks.useTranslate();
10508
9999
  const resolvedAction = icon ? {
10509
10000
  icon,
10510
10001
  onClick: () => {
@@ -11374,7 +10865,7 @@ function ActionTile({
11374
10865
  categoryColors,
11375
10866
  className
11376
10867
  }) {
11377
- useTranslate();
10868
+ hooks.useTranslate();
11378
10869
  const config = SIZE_CONFIG[size];
11379
10870
  const catColor = categoryColors?.[action.category];
11380
10871
  const handleDragStart = React85.useCallback((e) => {
@@ -11413,7 +10904,6 @@ var init_ActionTile = __esm({
11413
10904
  "components/game/organisms/puzzles/sequencer/ActionTile.tsx"() {
11414
10905
  init_atoms2();
11415
10906
  init_cn();
11416
- init_useTranslate();
11417
10907
  DRAG_MIME = "application/x-almadar-slot-item";
11418
10908
  SIZE_CONFIG = {
11419
10909
  sm: { px: "px-2 py-1", icon: "text-lg", text: "text-xs" },
@@ -11432,7 +10922,7 @@ function ActionPalette({
11432
10922
  label,
11433
10923
  className
11434
10924
  }) {
11435
- const { t } = useTranslate();
10925
+ const { t } = hooks.useTranslate();
11436
10926
  return /* @__PURE__ */ jsxRuntime.jsxs(VStack, { className: cn("p-3 rounded-lg bg-card border border-border", className), gap: "sm", children: [
11437
10927
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body2", className: "text-muted-foreground font-medium", children: label ?? t("sequencer.actions") }),
11438
10928
  /* @__PURE__ */ jsxRuntime.jsx(HStack, { className: "flex-wrap", gap: "sm", children: (actions ?? []).map((action) => /* @__PURE__ */ jsxRuntime.jsx(
@@ -11451,7 +10941,6 @@ var init_ActionPalette = __esm({
11451
10941
  "components/game/organisms/puzzles/sequencer/ActionPalette.tsx"() {
11452
10942
  init_atoms2();
11453
10943
  init_cn();
11454
- init_useTranslate();
11455
10944
  init_ActionTile();
11456
10945
  ActionPalette.displayName = "ActionPalette";
11457
10946
  }
@@ -11461,7 +10950,6 @@ var init_AuthLayout = __esm({
11461
10950
  "components/core/templates/AuthLayout.tsx"() {
11462
10951
  "use client";
11463
10952
  init_cn();
11464
- init_useTranslate();
11465
10953
  init_Box();
11466
10954
  init_Stack();
11467
10955
  init_Typography();
@@ -11472,7 +10960,7 @@ var init_AuthLayout = __esm({
11472
10960
  showBranding = true,
11473
10961
  brandingContent
11474
10962
  }) => {
11475
- const { t } = useTranslate();
10963
+ const { t } = hooks.useTranslate();
11476
10964
  return /* @__PURE__ */ jsxRuntime.jsxs(Box, { className: "min-h-screen flex", children: [
11477
10965
  showBranding && /* @__PURE__ */ jsxRuntime.jsxs(
11478
10966
  VStack,
@@ -11606,13 +11094,12 @@ var init_LoadingState = __esm({
11606
11094
  init_atoms2();
11607
11095
  init_Stack();
11608
11096
  init_Typography();
11609
- init_useTranslate();
11610
11097
  LoadingState = ({
11611
11098
  title,
11612
11099
  message,
11613
11100
  className
11614
11101
  }) => {
11615
- const { t } = useTranslate();
11102
+ const { t } = hooks.useTranslate();
11616
11103
  const displayMessage = message ?? t("common.loading");
11617
11104
  return /* @__PURE__ */ jsxRuntime.jsxs(
11618
11105
  VStack,
@@ -12082,7 +11569,7 @@ function IsometricCanvas({
12082
11569
  const unitsProp = Array.isArray(_unitsPropRaw) ? _unitsPropRaw : [];
12083
11570
  const featuresProp = Array.isArray(_featuresPropRaw) ? _featuresPropRaw : [];
12084
11571
  const eventBus = useEventBus();
12085
- const { t } = useTranslate();
11572
+ const { t } = hooks.useTranslate();
12086
11573
  const canvasRef = React85.useRef(null);
12087
11574
  const containerRef = React85.useRef(null);
12088
11575
  const minimapRef = React85.useRef(null);
@@ -12778,7 +12265,6 @@ var init_IsometricCanvas = __esm({
12778
12265
  "use client";
12779
12266
  init_cn();
12780
12267
  init_useEventBus();
12781
- init_useTranslate();
12782
12268
  init_Box();
12783
12269
  init_Stack();
12784
12270
  init_Icon();
@@ -12838,7 +12324,7 @@ function BattleBoard({
12838
12324
  const currentTurn = entity.turn;
12839
12325
  const gameResult = entity.gameResult;
12840
12326
  const eventBus = useEventBus();
12841
- const { t } = useTranslate();
12327
+ const { t } = hooks.useTranslate();
12842
12328
  const [hoveredTile, setHoveredTile] = React85.useState(null);
12843
12329
  const [isShaking, setIsShaking] = React85.useState(false);
12844
12330
  const selectedUnit = React85.useMemo(
@@ -13142,7 +12628,6 @@ var init_BattleBoard = __esm({
13142
12628
  "use client";
13143
12629
  init_cn();
13144
12630
  init_useEventBus();
13145
- init_useTranslate();
13146
12631
  init_Box();
13147
12632
  init_Button();
13148
12633
  init_Typography();
@@ -13902,7 +13387,6 @@ var log7, SWIM_GUTTER, CENTER_W, BehaviorView;
13902
13387
  var init_BehaviorView = __esm({
13903
13388
  "components/avl/molecules/BehaviorView.tsx"() {
13904
13389
  "use client";
13905
- init_useTranslate();
13906
13390
  init_AvlState();
13907
13391
  init_AvlTransitionLane();
13908
13392
  init_AvlSwimLane();
@@ -13912,7 +13396,7 @@ var init_BehaviorView = __esm({
13912
13396
  SWIM_GUTTER = 120;
13913
13397
  CENTER_W = 360;
13914
13398
  BehaviorView = ({ data }) => {
13915
- const { t } = useTranslate();
13399
+ const { t } = hooks.useTranslate();
13916
13400
  const [layout, setLayout] = React85.useState(null);
13917
13401
  const traitName = data.traits[0]?.name;
13918
13402
  const traitData = traitName ? data.traitDetails[traitName] : void 0;
@@ -14017,14 +13501,13 @@ var MIN_DIAGRAM_WIDTH, ScaledDiagram;
14017
13501
  var init_ScaledDiagram = __esm({
14018
13502
  "components/core/molecules/ScaledDiagram.tsx"() {
14019
13503
  init_Box();
14020
- init_useTranslate();
14021
13504
  init_cn();
14022
13505
  MIN_DIAGRAM_WIDTH = 200;
14023
13506
  ScaledDiagram = ({
14024
13507
  children,
14025
13508
  className
14026
13509
  }) => {
14027
- const { t: _t } = useTranslate();
13510
+ const { t: _t } = hooks.useTranslate();
14028
13511
  const wrapperRef = React85.useRef(null);
14029
13512
  const contentRef = React85.useRef(null);
14030
13513
  const [layout, setLayout] = React85.useState(null);
@@ -14160,7 +13643,6 @@ var init_CodeBlock = __esm({
14160
13643
  init_Textarea();
14161
13644
  init_Icon();
14162
13645
  init_useEventBus();
14163
- init_useTranslate();
14164
13646
  SyntaxHighlighter__default.default.registerLanguage("json", langJson__default.default);
14165
13647
  SyntaxHighlighter__default.default.registerLanguage("javascript", langJavascript__default.default);
14166
13648
  SyntaxHighlighter__default.default.registerLanguage("js", langJavascript__default.default);
@@ -14249,7 +13731,7 @@ var init_CodeBlock = __esm({
14249
13731
  const isLolo = language === "lolo";
14250
13732
  const activeStyle = isOrb ? orbStyle : isLolo ? loloStyle : dark__default.default;
14251
13733
  const eventBus = useEventBus();
14252
- const { t } = useTranslate();
13734
+ const { t } = hooks.useTranslate();
14253
13735
  const scrollRef = React85.useRef(null);
14254
13736
  const codeRef = React85.useRef(null);
14255
13737
  const savedScrollLeftRef = React85.useRef(0);
@@ -14667,11 +14149,10 @@ var init_MarkdownContent = __esm({
14667
14149
  init_katex_min();
14668
14150
  init_Box();
14669
14151
  init_CodeBlock();
14670
- init_useTranslate();
14671
14152
  init_cn();
14672
14153
  MarkdownContent = React85__namespace.default.memo(
14673
14154
  ({ content, direction, className }) => {
14674
- const { t: _t } = useTranslate();
14155
+ const { t: _t } = hooks.useTranslate();
14675
14156
  const safeContent = typeof content === "string" ? content : String(content ?? "");
14676
14157
  return /* @__PURE__ */ jsxRuntime.jsx(
14677
14158
  Box,
@@ -14897,7 +14378,7 @@ function Card2({
14897
14378
  longPressPayload
14898
14379
  }) {
14899
14380
  const eventBus = useEventBus();
14900
- const { t } = useTranslate();
14381
+ const { t } = hooks.useTranslate();
14901
14382
  const isClickable = !!onClick || !!action;
14902
14383
  const handleLongPress = React85.useCallback(() => {
14903
14384
  if (longPressEvent) {
@@ -14972,7 +14453,6 @@ var init_Card2 = __esm({
14972
14453
  "components/core/molecules/Card.tsx"() {
14973
14454
  "use client";
14974
14455
  init_useEventBus();
14975
- init_useTranslate();
14976
14456
  init_useLongPress();
14977
14457
  Card2.displayName = "Card";
14978
14458
  }
@@ -14986,14 +14466,13 @@ var init_QuizBlock = __esm({
14986
14466
  init_Button();
14987
14467
  init_Icon();
14988
14468
  init_Box();
14989
- init_useTranslate();
14990
14469
  init_cn();
14991
14470
  QuizBlock = ({
14992
14471
  question,
14993
14472
  answer,
14994
14473
  className
14995
14474
  }) => {
14996
- const { t } = useTranslate();
14475
+ const { t } = hooks.useTranslate();
14997
14476
  const [revealed, setRevealed] = React85.useState(false);
14998
14477
  return /* @__PURE__ */ jsxRuntime.jsx(Card2, { className: cn("my-4 border-blue-200 dark:border-blue-800", className), children: /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "sm", className: "p-4", children: [
14999
14478
  /* @__PURE__ */ jsxRuntime.jsxs(HStack, { gap: "sm", align: "start", children: [
@@ -15029,11 +14508,10 @@ var init_StateMachineView = __esm({
15029
14508
  init_Typography();
15030
14509
  init_Button();
15031
14510
  init_Icon();
15032
- init_useTranslate();
15033
14511
  init_useEventBus();
15034
14512
  init_cn();
15035
14513
  StateNode = ({ state, config }) => {
15036
- const { t } = useTranslate();
14514
+ const { t } = hooks.useTranslate();
15037
14515
  const size = state.radius * 2;
15038
14516
  let borderColor = config.colors.nodeBorder;
15039
14517
  let borderWidth = 2;
@@ -15140,7 +14618,7 @@ var init_StateMachineView = __esm({
15140
14618
  );
15141
14619
  };
15142
14620
  TransitionBundleArrow = ({ bundle, states, bundleIndex, config, onClick, onHover }) => {
15143
- const { t } = useTranslate();
14621
+ const { t } = hooks.useTranslate();
15144
14622
  const groupRef = React85.useRef(null);
15145
14623
  const fromState = states.find((s) => s.name === bundle.from);
15146
14624
  const toState = states.find((s) => s.name === bundle.to);
@@ -15390,7 +14868,7 @@ var init_StateMachineView = __esm({
15390
14868
  );
15391
14869
  };
15392
14870
  BundleTooltip = ({ tooltip, config }) => {
15393
- const { t } = useTranslate();
14871
+ const { t } = hooks.useTranslate();
15394
14872
  if (!tooltip.visible || !tooltip.bundle) return null;
15395
14873
  const { bundle } = tooltip;
15396
14874
  const isSingle = bundle.labels.length === 1;
@@ -15542,7 +15020,7 @@ var init_StateMachineView = __esm({
15542
15020
  );
15543
15021
  };
15544
15022
  EntityBox = ({ entity, config }) => {
15545
- const { t } = useTranslate();
15023
+ const { t } = hooks.useTranslate();
15546
15024
  return /* @__PURE__ */ jsxRuntime.jsxs(
15547
15025
  VStack,
15548
15026
  {
@@ -15583,7 +15061,7 @@ var init_StateMachineView = __esm({
15583
15061
  );
15584
15062
  };
15585
15063
  OutputsBox = ({ outputs, config }) => {
15586
- const { t } = useTranslate();
15064
+ const { t } = hooks.useTranslate();
15587
15065
  return /* @__PURE__ */ jsxRuntime.jsxs(
15588
15066
  VStack,
15589
15067
  {
@@ -15625,7 +15103,7 @@ var init_StateMachineView = __esm({
15625
15103
  );
15626
15104
  };
15627
15105
  Legend = ({ config, y }) => {
15628
- const { t } = useTranslate();
15106
+ const { t } = hooks.useTranslate();
15629
15107
  const items = [
15630
15108
  { key: "initial", label: t("stateMachine.legend.initial"), color: config.colors.initialNode, isMultiEvent: false },
15631
15109
  { key: "final", label: t("stateMachine.legend.final"), color: config.colors.finalNode, isMultiEvent: false },
@@ -15669,7 +15147,7 @@ var init_StateMachineView = __esm({
15669
15147
  isLoading: _isLoading,
15670
15148
  error: _error
15671
15149
  }) => {
15672
- const { t } = useTranslate();
15150
+ const { t } = hooks.useTranslate();
15673
15151
  const [tooltip, setTooltip] = React85.useState({
15674
15152
  visible: false,
15675
15153
  pinned: false,
@@ -16396,7 +15874,6 @@ var init_JazariStateMachine = __esm({
16396
15874
  init_StateMachineView();
16397
15875
  init_visualizer();
16398
15876
  init_svg_paths();
16399
- init_useTranslate();
16400
15877
  init_cn();
16401
15878
  JAZARI_VISUALIZER_CONFIG = {
16402
15879
  ...DEFAULT_CONFIG,
@@ -16432,7 +15909,7 @@ var init_JazariStateMachine = __esm({
16432
15909
  isLoading = false,
16433
15910
  error = null
16434
15911
  }) => {
16435
- const { t } = useTranslate();
15912
+ const { t } = hooks.useTranslate();
16436
15913
  const resolvedTrait = React85.useMemo(
16437
15914
  () => extractTrait(schema, traitProp, traitIndex),
16438
15915
  [schema, traitProp, traitIndex]
@@ -16552,7 +16029,6 @@ var init_ContentRenderer = __esm({
16552
16029
  init_ScaledDiagram();
16553
16030
  init_JazariStateMachine();
16554
16031
  init_parseContentSegments();
16555
- init_useTranslate();
16556
16032
  init_cn();
16557
16033
  ContentRenderer = ({
16558
16034
  content,
@@ -16560,7 +16036,7 @@ var init_ContentRenderer = __esm({
16560
16036
  direction,
16561
16037
  className
16562
16038
  }) => {
16563
- const { t: _t } = useTranslate();
16039
+ const { t: _t } = hooks.useTranslate();
16564
16040
  const segments = React85.useMemo(
16565
16041
  () => segmentsProp ?? parseContentSegments(content),
16566
16042
  [segmentsProp, content]
@@ -16646,14 +16122,13 @@ var init_BookChapterView = __esm({
16646
16122
  init_ScaledDiagram();
16647
16123
  init_ContentRenderer();
16648
16124
  init_JazariStateMachine();
16649
- init_useTranslate();
16650
16125
  init_cn();
16651
16126
  BookChapterView = ({
16652
16127
  chapter,
16653
16128
  direction,
16654
16129
  className
16655
16130
  }) => {
16656
- const { t: _t } = useTranslate();
16131
+ const { t: _t } = hooks.useTranslate();
16657
16132
  return /* @__PURE__ */ jsxRuntime.jsxs(
16658
16133
  VStack,
16659
16134
  {
@@ -16685,7 +16160,6 @@ var init_BookCoverPage = __esm({
16685
16160
  init_Typography();
16686
16161
  init_Button();
16687
16162
  init_Box();
16688
- init_useTranslate();
16689
16163
  init_cn();
16690
16164
  BookCoverPage = ({
16691
16165
  title,
@@ -16695,7 +16169,7 @@ var init_BookCoverPage = __esm({
16695
16169
  direction,
16696
16170
  className
16697
16171
  }) => {
16698
- const { t } = useTranslate();
16172
+ const { t } = hooks.useTranslate();
16699
16173
  return /* @__PURE__ */ jsxRuntime.jsxs(
16700
16174
  VStack,
16701
16175
  {
@@ -16765,7 +16239,6 @@ var init_BookNavBar = __esm({
16765
16239
  init_Typography();
16766
16240
  init_ProgressBar();
16767
16241
  init_Box();
16768
- init_useTranslate();
16769
16242
  init_cn();
16770
16243
  BookNavBar = ({
16771
16244
  currentPage,
@@ -16774,7 +16247,7 @@ var init_BookNavBar = __esm({
16774
16247
  direction,
16775
16248
  className
16776
16249
  }) => {
16777
- const { t } = useTranslate();
16250
+ const { t } = hooks.useTranslate();
16778
16251
  const isRtl = direction === "rtl";
16779
16252
  const progress = totalPages > 1 ? currentPage / (totalPages - 1) * 100 : 0;
16780
16253
  const PrevIcon = isRtl ? LucideIcons2.ChevronRight : LucideIcons2.ChevronLeft;
@@ -16867,7 +16340,6 @@ var init_BookTableOfContents = __esm({
16867
16340
  init_Button();
16868
16341
  init_Box();
16869
16342
  init_Badge();
16870
- init_useTranslate();
16871
16343
  init_cn();
16872
16344
  BookTableOfContents = ({
16873
16345
  parts,
@@ -16875,7 +16347,7 @@ var init_BookTableOfContents = __esm({
16875
16347
  direction,
16876
16348
  className
16877
16349
  }) => {
16878
- const { t } = useTranslate();
16350
+ const { t } = hooks.useTranslate();
16879
16351
  return /* @__PURE__ */ jsxRuntime.jsxs(
16880
16352
  VStack,
16881
16353
  {
@@ -16927,7 +16399,6 @@ var init_EmptyState = __esm({
16927
16399
  init_Stack();
16928
16400
  init_Typography();
16929
16401
  init_useEventBus();
16930
- init_useTranslate();
16931
16402
  ICON_NAME_ALIASES = {
16932
16403
  check: "check-circle",
16933
16404
  error: "x-circle",
@@ -16953,7 +16424,7 @@ var init_EmptyState = __esm({
16953
16424
  look = "icon-only"
16954
16425
  }) => {
16955
16426
  const eventBus = useEventBus();
16956
- const { t } = useTranslate();
16427
+ const { t } = hooks.useTranslate();
16957
16428
  const handleAction = () => {
16958
16429
  if (actionEvent) eventBus.emit(`UI:${actionEvent}`, {});
16959
16430
  onAction?.();
@@ -17098,7 +16569,6 @@ var init_BookViewer = __esm({
17098
16569
  init_Box();
17099
16570
  init_Stack();
17100
16571
  init_useEventBus();
17101
- init_useTranslate();
17102
16572
  init_cn();
17103
16573
  init_BookCoverPage();
17104
16574
  init_BookTableOfContents();
@@ -17124,7 +16594,7 @@ var init_BookViewer = __esm({
17124
16594
  className
17125
16595
  }) => {
17126
16596
  const eventBus = useEventBus();
17127
- const { t } = useTranslate();
16597
+ const { t } = hooks.useTranslate();
17128
16598
  const [currentPage, setCurrentPage] = React85.useState(initialPage);
17129
16599
  const resolvedFieldMap = React85.useMemo(() => resolveFieldMap(fieldMap), [fieldMap]);
17130
16600
  const book = React85.useMemo(() => {
@@ -17530,7 +17000,6 @@ var init_BranchingLogicBuilder = __esm({
17530
17000
  init_FilterPill();
17531
17001
  init_Box();
17532
17002
  init_useEventBus();
17533
- init_useTranslate();
17534
17003
  init_cn();
17535
17004
  END_OF_SURVEY = "end-of-survey";
17536
17005
  RuleRow = ({
@@ -17541,7 +17010,7 @@ var init_BranchingLogicBuilder = __esm({
17541
17010
  onChange,
17542
17011
  onDelete
17543
17012
  }) => {
17544
- const { t } = useTranslate();
17013
+ const { t } = hooks.useTranslate();
17545
17014
  const operatorOptions = React85.useMemo(
17546
17015
  () => [
17547
17016
  { value: "equals", label: t("branchingLogic.operatorEquals") },
@@ -17716,7 +17185,7 @@ var init_BranchingLogicBuilder = __esm({
17716
17185
  NODE_GAP_Y = 80;
17717
17186
  PADDING = 32;
17718
17187
  LogicGraph = ({ questions, rules }) => {
17719
- const { t } = useTranslate();
17188
+ const { t } = hooks.useTranslate();
17720
17189
  const endOfSurveyLabel = t("branchingLogic.endOfSurvey");
17721
17190
  const layout = React85.useMemo(() => {
17722
17191
  const items = [
@@ -17848,7 +17317,7 @@ var init_BranchingLogicBuilder = __esm({
17848
17317
  readOnly = false,
17849
17318
  className
17850
17319
  }) => {
17851
- const { t } = useTranslate();
17320
+ const { t } = hooks.useTranslate();
17852
17321
  const eventBus = useEventBus();
17853
17322
  const questions = Array.isArray(questionsProp) ? questionsProp : [];
17854
17323
  const rulesInitial = Array.isArray(rulesProp) ? rulesProp : [];
@@ -17983,7 +17452,6 @@ var init_Breadcrumb = __esm({
17983
17452
  init_Typography();
17984
17453
  init_cn();
17985
17454
  init_useEventBus();
17986
- init_useTranslate();
17987
17455
  Breadcrumb = ({
17988
17456
  items,
17989
17457
  separator = "chevron-right",
@@ -17991,7 +17459,7 @@ var init_Breadcrumb = __esm({
17991
17459
  className
17992
17460
  }) => {
17993
17461
  const eventBus = useEventBus();
17994
- const { t } = useTranslate();
17462
+ const { t } = hooks.useTranslate();
17995
17463
  const displayItems = maxItems && items.length > maxItems ? [
17996
17464
  ...items.slice(0, 1),
17997
17465
  { label: "...", isCurrent: false },
@@ -18070,7 +17538,7 @@ function BuilderBoard({
18070
17538
  className
18071
17539
  }) {
18072
17540
  const { emit } = useEventBus();
18073
- const { t } = useTranslate();
17541
+ const { t } = hooks.useTranslate();
18074
17542
  const resolved = Array.isArray(entity) ? entity[0] : entity;
18075
17543
  const [placements, setPlacements] = React85.useState({});
18076
17544
  const [headerError, setHeaderError] = React85.useState(false);
@@ -18219,7 +17687,6 @@ var init_BuilderBoard = __esm({
18219
17687
  "components/game/organisms/puzzles/builder/BuilderBoard.tsx"() {
18220
17688
  init_atoms2();
18221
17689
  init_useEventBus();
18222
- init_useTranslate();
18223
17690
  BuilderBoard.displayName = "BuilderBoard";
18224
17691
  }
18225
17692
  });
@@ -18487,7 +17954,7 @@ function CalendarGrid({
18487
17954
  }) {
18488
17955
  const evs = Array.isArray(events2) ? events2 : events2 ? [events2] : [];
18489
17956
  const eventBus = useEventBus();
18490
- const { t } = useTranslate();
17957
+ const { t } = hooks.useTranslate();
18491
17958
  const longPressTimer = React85.useRef(null);
18492
17959
  const resolvedWeekStart = React85.useMemo(
18493
17960
  () => weekStart ? getStartOfWeek(weekStart) : getStartOfWeek(/* @__PURE__ */ new Date()),
@@ -18697,7 +18164,6 @@ var init_CalendarGrid = __esm({
18697
18164
  init_TimeSlotCell();
18698
18165
  init_useEventBus();
18699
18166
  init_useSwipeGesture();
18700
- init_useTranslate();
18701
18167
  SHORT_DATE = { month: "short", day: "numeric" };
18702
18168
  CalendarGrid.displayName = "CalendarGrid";
18703
18169
  }
@@ -20006,7 +19472,6 @@ var init_Pagination = __esm({
20006
19472
  init_Stack();
20007
19473
  init_cn();
20008
19474
  init_useEventBus();
20009
- init_useTranslate();
20010
19475
  Pagination = ({
20011
19476
  currentPage,
20012
19477
  totalPages,
@@ -20025,7 +19490,7 @@ var init_Pagination = __esm({
20025
19490
  pageSizeChangeEvent
20026
19491
  }) => {
20027
19492
  const eventBus = useEventBus();
20028
- const { t } = useTranslate();
19493
+ const { t } = hooks.useTranslate();
20029
19494
  const [jumpToPage, setJumpToPage] = React85.useState("");
20030
19495
  const handlePageChange = (page) => {
20031
19496
  if (pageChangeEvent) eventBus.emit(`UI:${pageChangeEvent}`, { page });
@@ -20210,7 +19675,6 @@ var init_CardGrid = __esm({
20210
19675
  init_cn();
20211
19676
  init_getNestedValue();
20212
19677
  init_useEventBus();
20213
- init_useTranslate();
20214
19678
  init_atoms2();
20215
19679
  init_Badge();
20216
19680
  init_Box();
@@ -20254,7 +19718,7 @@ var init_CardGrid = __esm({
20254
19718
  imageField
20255
19719
  }) => {
20256
19720
  const eventBus = useEventBus();
20257
- const { t } = useTranslate();
19721
+ const { t } = hooks.useTranslate();
20258
19722
  const effectiveFieldNames = normalizeFields(fields).length > 0 ? normalizeFields(fields) : fieldNames ?? normalizeFields(columns);
20259
19723
  const gridTemplateColumns = `repeat(auto-fit, minmax(min(${minCardWidth}px, 100%), 1fr))`;
20260
19724
  const normalizedData = Array.isArray(entity) ? entity : entity ? [entity] : [];
@@ -20439,7 +19903,6 @@ var init_Carousel = __esm({
20439
19903
  init_cn();
20440
19904
  init_useEventBus();
20441
19905
  init_useSwipeGesture();
20442
- init_useTranslate();
20443
19906
  init_Box();
20444
19907
  init_Stack();
20445
19908
  init_Button();
@@ -20460,7 +19923,7 @@ var init_Carousel = __esm({
20460
19923
  const scrollRef = React85.useRef(null);
20461
19924
  const autoPlayRef = React85.useRef(null);
20462
19925
  const eventBus = useSafeEventBus3();
20463
- const { t } = useTranslate();
19926
+ const { t } = hooks.useTranslate();
20464
19927
  const safeItems = items ?? [];
20465
19928
  const totalSlides = safeItems.length;
20466
19929
  const emitSlideChange = React85.useCallback(
@@ -20676,7 +20139,6 @@ var init_CaseStudyOrganism = __esm({
20676
20139
  "use client";
20677
20140
  init_cn();
20678
20141
  init_useEventBus();
20679
- init_useTranslate();
20680
20142
  init_Stack();
20681
20143
  init_Typography();
20682
20144
  init_SimpleGrid();
@@ -20692,7 +20154,7 @@ var init_CaseStudyOrganism = __esm({
20692
20154
  subtitle
20693
20155
  }) => {
20694
20156
  useEventBus();
20695
- const { t } = useTranslate();
20157
+ const { t } = hooks.useTranslate();
20696
20158
  const items = React85.useMemo(
20697
20159
  () => Array.isArray(entity) ? entity : entity && typeof entity === "object" ? [entity] : [],
20698
20160
  [entity]
@@ -20881,7 +20343,6 @@ var init_Chart = __esm({
20881
20343
  init_ErrorState();
20882
20344
  init_EmptyState();
20883
20345
  init_useEventBus();
20884
- init_useTranslate();
20885
20346
  CHART_COLORS = [
20886
20347
  "var(--color-primary)",
20887
20348
  "var(--color-success)",
@@ -21454,7 +20915,7 @@ var init_Chart = __esm({
21454
20915
  }) => {
21455
20916
  const resolvedLook = look ?? (chartType ? LOOK_FROM_CHART_TYPE[chartType] : "bar-vertical");
21456
20917
  const eventBus = useEventBus();
21457
- const { t } = useTranslate();
20918
+ const { t } = hooks.useTranslate();
21458
20919
  const handleAction = React85.useCallback(
21459
20920
  (action) => {
21460
20921
  if (action.event) {
@@ -21651,7 +21112,7 @@ function ClassifierBoard({
21651
21112
  className
21652
21113
  }) {
21653
21114
  const { emit } = useEventBus();
21654
- const { t } = useTranslate();
21115
+ const { t } = hooks.useTranslate();
21655
21116
  const resolved = Array.isArray(entity) ? entity[0] : entity;
21656
21117
  const [assignments, setAssignments] = React85.useState({});
21657
21118
  const [headerError, setHeaderError] = React85.useState(false);
@@ -21789,7 +21250,6 @@ var init_ClassifierBoard = __esm({
21789
21250
  "components/game/organisms/puzzles/classifier/ClassifierBoard.tsx"() {
21790
21251
  init_atoms2();
21791
21252
  init_useEventBus();
21792
- init_useTranslate();
21793
21253
  ClassifierBoard.displayName = "ClassifierBoard";
21794
21254
  }
21795
21255
  });
@@ -21799,7 +21259,7 @@ function CodeView({
21799
21259
  defaultExpanded = false,
21800
21260
  className
21801
21261
  }) {
21802
- const { t } = useTranslate();
21262
+ const { t } = hooks.useTranslate();
21803
21263
  const [expanded, setExpanded] = React85.useState(defaultExpanded);
21804
21264
  const jsonString = JSON.stringify(data, null, 2);
21805
21265
  return /* @__PURE__ */ jsxRuntime.jsxs(VStack, { className: cn("rounded-lg border border-border overflow-hidden", className), gap: "none", children: [
@@ -21821,7 +21281,6 @@ var init_CodeView = __esm({
21821
21281
  "components/game/organisms/puzzles/state-architect/CodeView.tsx"() {
21822
21282
  init_atoms2();
21823
21283
  init_cn();
21824
- init_useTranslate();
21825
21284
  CodeView.displayName = "CodeView";
21826
21285
  }
21827
21286
  });
@@ -21835,7 +21294,6 @@ var init_Tabs = __esm({
21835
21294
  init_Box();
21836
21295
  init_cn();
21837
21296
  init_useEventBus();
21838
- init_useTranslate();
21839
21297
  Tabs = ({
21840
21298
  items,
21841
21299
  tabs,
@@ -21853,7 +21311,7 @@ var init_Tabs = __esm({
21853
21311
  id: id || value || ""
21854
21312
  }));
21855
21313
  const eventBus = useEventBus();
21856
- const { t } = useTranslate();
21314
+ const { t } = hooks.useTranslate();
21857
21315
  const initialActive = safeItems.find((item) => item.active)?.id;
21858
21316
  const [internalActiveTab, setInternalActiveTab] = React85.useState(
21859
21317
  defaultActiveTab || initialActive || safeItems[0]?.id || ""
@@ -22012,7 +21470,6 @@ var init_CodeViewer = __esm({
22012
21470
  init_EmptyState();
22013
21471
  init_Tabs();
22014
21472
  init_useEventBus();
22015
- init_useTranslate();
22016
21473
  DIFF_STYLES = {
22017
21474
  add: {
22018
21475
  bg: "bg-success/10",
@@ -22050,7 +21507,7 @@ var init_CodeViewer = __esm({
22050
21507
  className
22051
21508
  }) => {
22052
21509
  const eventBus = useEventBus();
22053
- const { t } = useTranslate();
21510
+ const { t } = hooks.useTranslate();
22054
21511
  const [copied, setCopied] = React85.useState(false);
22055
21512
  const [wrap, setWrap] = React85.useState(wordWrap);
22056
21513
  const [activeFileIndex, setActiveFileIndex] = React85.useState(0);
@@ -22384,7 +21841,6 @@ var init_ConfirmDialog = __esm({
22384
21841
  init_Box();
22385
21842
  init_Stack();
22386
21843
  init_cn();
22387
- init_useTranslate();
22388
21844
  variantConfig = {
22389
21845
  danger: {
22390
21846
  icon: LucideIcons2.Trash2,
@@ -22432,7 +21888,7 @@ var init_ConfirmDialog = __esm({
22432
21888
  className
22433
21889
  }) => {
22434
21890
  const config = variantConfig[variant];
22435
- const { t } = useTranslate();
21891
+ const { t } = hooks.useTranslate();
22436
21892
  const resolvedMessage = message ?? description ?? "";
22437
21893
  const resolvedConfirmText = confirmText ?? confirmLabel ?? t("dialog.confirm");
22438
21894
  const resolvedCancelText = cancelText ?? cancelLabel ?? t("dialog.cancel");
@@ -22866,7 +22322,6 @@ var init_DashboardGrid = __esm({
22866
22322
  "components/core/organisms/layout/DashboardGrid.tsx"() {
22867
22323
  init_cn();
22868
22324
  init_Box();
22869
- init_useTranslate();
22870
22325
  gapStyles5 = {
22871
22326
  sm: "gap-2",
22872
22327
  md: "gap-4",
@@ -22893,7 +22348,7 @@ var init_DashboardGrid = __esm({
22893
22348
  cells,
22894
22349
  className
22895
22350
  }) => {
22896
- const { t: _t } = useTranslate();
22351
+ const { t: _t } = hooks.useTranslate();
22897
22352
  return /* @__PURE__ */ jsxRuntime.jsx(
22898
22353
  Box,
22899
22354
  {
@@ -22960,7 +22415,6 @@ var init_DashboardLayout = __esm({
22960
22415
  init_Icon();
22961
22416
  init_useAuthContext();
22962
22417
  init_useEventBus();
22963
- init_useTranslate();
22964
22418
  init_CurrentPagePathContext();
22965
22419
  DashboardLayout = ({
22966
22420
  appName = "{{APP_TITLE}}",
@@ -23019,7 +22473,7 @@ var init_DashboardLayout = __esm({
23019
22473
  const activePath = currentPath ?? ctxPagePath ?? location.pathname;
23020
22474
  const { signOut: authSignOut } = useAuthContext();
23021
22475
  const user = userProp || (null);
23022
- const { t } = useTranslate();
22476
+ const { t } = hooks.useTranslate();
23023
22477
  const handleSignOut = onSignOutProp || authSignOut;
23024
22478
  const showSidebar = layoutMode === "sidebar";
23025
22479
  const showHeader = layoutMode !== "minimal";
@@ -23990,7 +23444,7 @@ function DataGrid({
23990
23444
  look = "dense"
23991
23445
  }) {
23992
23446
  const eventBus = useEventBus();
23993
- const { t } = useTranslate();
23447
+ const { t } = hooks.useTranslate();
23994
23448
  const [selectedIds, setSelectedIds] = React85.useState(/* @__PURE__ */ new Set());
23995
23449
  const [visibleCount, setVisibleCount] = React85.useState(pageSize || Infinity);
23996
23450
  const fieldDefs = fields ?? columns ?? [];
@@ -24305,7 +23759,6 @@ var init_DataGrid = __esm({
24305
23759
  init_cn();
24306
23760
  init_getNestedValue();
24307
23761
  init_useEventBus();
24308
- init_useTranslate();
24309
23762
  init_Box();
24310
23763
  init_Stack();
24311
23764
  init_Typography();
@@ -24430,7 +23883,7 @@ function DataList({
24430
23883
  look = "dense"
24431
23884
  }) {
24432
23885
  const eventBus = useEventBus();
24433
- const { t } = useTranslate();
23886
+ const { t } = hooks.useTranslate();
24434
23887
  const [visibleCount, setVisibleCount] = React85__namespace.default.useState(pageSize || Infinity);
24435
23888
  const fieldDefs = fields ?? columns ?? [];
24436
23889
  const allDataRaw = Array.isArray(entity) ? entity : entity ? [entity] : [];
@@ -24744,7 +24197,6 @@ var init_DataList = __esm({
24744
24197
  init_cn();
24745
24198
  init_getNestedValue();
24746
24199
  init_useEventBus();
24747
- init_useTranslate();
24748
24200
  init_Box();
24749
24201
  init_Stack();
24750
24202
  init_Typography();
@@ -24799,7 +24251,6 @@ var init_FileTree = __esm({
24799
24251
  init_Box();
24800
24252
  init_Typography();
24801
24253
  init_Icon();
24802
- init_useTranslate();
24803
24254
  TreeNodeItem = ({
24804
24255
  node,
24805
24256
  depth,
@@ -24885,7 +24336,7 @@ var init_FileTree = __esm({
24885
24336
  className,
24886
24337
  indent = 16
24887
24338
  }) => {
24888
- const { t } = useTranslate();
24339
+ const { t } = hooks.useTranslate();
24889
24340
  if (tree.length === 0) {
24890
24341
  return /* @__PURE__ */ jsxRuntime.jsx(Box, { className: `p-4 ${className ?? ""}`, children: /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "caption", color: "muted", children: t("fileTree.noFiles") }) });
24891
24342
  }
@@ -25006,7 +24457,6 @@ var init_FilterGroup = __esm({
25006
24457
  init_Icon();
25007
24458
  init_useEventBus();
25008
24459
  init_useQuerySingleton();
25009
- init_useTranslate();
25010
24460
  resolveFilterType = (filter) => filter.filterType ?? filter.type;
25011
24461
  lookStyles6 = {
25012
24462
  toolbar: "",
@@ -25027,7 +24477,7 @@ var init_FilterGroup = __esm({
25027
24477
  isLoading,
25028
24478
  look = "toolbar"
25029
24479
  }) => {
25030
- const { t } = useTranslate();
24480
+ const { t } = hooks.useTranslate();
25031
24481
  const eventBus = useEventBus();
25032
24482
  const queryState = useQuerySingleton(query);
25033
24483
  const [selectedValues, setSelectedValues] = React85.useState(
@@ -25648,13 +25098,12 @@ var init_RelationSelect = __esm({
25648
25098
  init_Spinner();
25649
25099
  init_Typography();
25650
25100
  init_debug();
25651
- init_useTranslate();
25652
25101
  isRelationsDebugEnabled = () => isDebugEnabled();
25653
25102
  RelationSelect = ({
25654
25103
  value,
25655
25104
  onChange,
25656
25105
  options = [],
25657
- placeholder = "Select...",
25106
+ placeholder,
25658
25107
  required = false,
25659
25108
  disabled = false,
25660
25109
  isLoading = false,
@@ -25665,7 +25114,8 @@ var init_RelationSelect = __esm({
25665
25114
  searchPlaceholder,
25666
25115
  emptyMessage
25667
25116
  }) => {
25668
- const { t } = useTranslate();
25117
+ const { t } = hooks.useTranslate();
25118
+ const resolvedPlaceholder = placeholder ?? t("relationSelect.selectPlaceholder");
25669
25119
  const resolvedSearchPlaceholder = searchPlaceholder ?? t("common.search");
25670
25120
  const resolvedEmptyMessage = emptyMessage ?? t("empty.noOptionsFound");
25671
25121
  const [isOpen, setIsOpen] = React85.useState(false);
@@ -25775,7 +25225,7 @@ var init_RelationSelect = __esm({
25775
25225
  children: isLoading ? /* @__PURE__ */ jsxRuntime.jsxs(HStack, { gap: "xs", align: "center", children: [
25776
25226
  /* @__PURE__ */ jsxRuntime.jsx(Spinner, { size: "sm" }),
25777
25227
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { as: "span", children: t("common.loading") })
25778
- ] }) : selectedOption ? selectedOption.label : placeholder
25228
+ ] }) : selectedOption ? selectedOption.label : resolvedPlaceholder
25779
25229
  }
25780
25230
  ),
25781
25231
  /* @__PURE__ */ jsxRuntime.jsxs(HStack, { gap: "xs", align: "center", children: [
@@ -25872,7 +25322,6 @@ var init_SearchInput = __esm({
25872
25322
  init_cn();
25873
25323
  init_useEventBus();
25874
25324
  init_useQuerySingleton();
25875
- init_useTranslate();
25876
25325
  SearchInput = ({
25877
25326
  value,
25878
25327
  onSearch,
@@ -25887,7 +25336,7 @@ var init_SearchInput = __esm({
25887
25336
  ...props
25888
25337
  }) => {
25889
25338
  const eventBus = useEventBus();
25890
- const { t } = useTranslate();
25339
+ const { t } = hooks.useTranslate();
25891
25340
  const resolvedPlaceholder = placeholder ?? t("common.search");
25892
25341
  const queryState = useQuerySingleton(query);
25893
25342
  const initialValue = queryState?.search ?? value ?? "";
@@ -25975,7 +25424,6 @@ var init_SidePanel = __esm({
25975
25424
  init_Typography();
25976
25425
  init_cn();
25977
25426
  init_useEventBus();
25978
- init_useTranslate();
25979
25427
  SidePanel = ({
25980
25428
  title,
25981
25429
  children,
@@ -25988,7 +25436,7 @@ var init_SidePanel = __esm({
25988
25436
  closeEvent
25989
25437
  }) => {
25990
25438
  const eventBus = useEventBus();
25991
- const { t } = useTranslate();
25439
+ const { t } = hooks.useTranslate();
25992
25440
  const handleClose = () => {
25993
25441
  if (closeEvent) eventBus.emit(`UI:${closeEvent}`, {});
25994
25442
  onClose();
@@ -26154,7 +25602,6 @@ var init_WizardNavigation = __esm({
26154
25602
  init_Icon();
26155
25603
  init_cn();
26156
25604
  init_useEventBus();
26157
- init_useTranslate();
26158
25605
  WizardNavigation = ({
26159
25606
  currentStep,
26160
25607
  totalSteps,
@@ -26175,7 +25622,7 @@ var init_WizardNavigation = __esm({
26175
25622
  className
26176
25623
  }) => {
26177
25624
  const eventBus = useSafeEventBus4();
26178
- const { t } = useTranslate();
25625
+ const { t } = hooks.useTranslate();
26179
25626
  const resolvedBackLabel = backLabel ?? t("wizard.back");
26180
25627
  const resolvedNextLabel = nextLabel ?? t("wizard.next");
26181
25628
  const resolvedCompleteLabel = completeLabel ?? t("wizard.complete");
@@ -26242,7 +25689,6 @@ var init_RepeatableFormSection = __esm({
26242
25689
  init_Card();
26243
25690
  init_Icon();
26244
25691
  init_useEventBus();
26245
- init_useTranslate();
26246
25692
  RepeatableFormSection = ({
26247
25693
  sectionType,
26248
25694
  title,
@@ -26263,7 +25709,7 @@ var init_RepeatableFormSection = __esm({
26263
25709
  showAuditInfo = false
26264
25710
  }) => {
26265
25711
  const eventBus = useEventBus();
26266
- const { t } = useTranslate();
25712
+ const { t } = hooks.useTranslate();
26267
25713
  const resolvedAddLabel = addLabel ?? t("common.add");
26268
25714
  const resolvedEmptyMessage = emptyMessage ?? t("empty.noItemsAdded");
26269
25715
  const safeItems = items ?? [];
@@ -26373,7 +25819,6 @@ var actionTypeLabelKeys, actionTypeIcons, ViolationAlert;
26373
25819
  var init_ViolationAlert = __esm({
26374
25820
  "components/core/molecules/ViolationAlert.tsx"() {
26375
25821
  init_cn();
26376
- init_useTranslate();
26377
25822
  init_Box();
26378
25823
  init_Stack();
26379
25824
  init_Typography();
@@ -26399,7 +25844,7 @@ var init_ViolationAlert = __esm({
26399
25844
  className,
26400
25845
  ...flatProps
26401
25846
  }) => {
26402
- const { t } = useTranslate();
25847
+ const { t } = hooks.useTranslate();
26403
25848
  const resolvedViolation = violation ?? {
26404
25849
  law: "",
26405
25850
  article: "",
@@ -26879,7 +26324,6 @@ var init_LineChart = __esm({
26879
26324
  "use client";
26880
26325
  init_cn();
26881
26326
  init_atoms2();
26882
- init_useTranslate();
26883
26327
  LineChart2 = ({
26884
26328
  data,
26885
26329
  width = 400,
@@ -26891,7 +26335,7 @@ var init_LineChart = __esm({
26891
26335
  areaColor = "var(--color-primary)",
26892
26336
  className
26893
26337
  }) => {
26894
- const { t } = useTranslate();
26338
+ const { t } = hooks.useTranslate();
26895
26339
  const gradientId = React85.useId();
26896
26340
  const safeData = data ?? [];
26897
26341
  const sortedData = React85.useMemo(() => {
@@ -28835,7 +28279,6 @@ var init_GraphView = __esm({
28835
28279
  "use client";
28836
28280
  init_cn();
28837
28281
  init_atoms2();
28838
- init_useTranslate();
28839
28282
  GROUP_COLORS = [
28840
28283
  "#3b82f6",
28841
28284
  // blue-500
@@ -28868,7 +28311,7 @@ var init_GraphView = __esm({
28868
28311
  showLabels = true,
28869
28312
  zoomToFit = true
28870
28313
  }) => {
28871
- const { t } = useTranslate();
28314
+ const { t } = hooks.useTranslate();
28872
28315
  const containerRef = React85.useRef(null);
28873
28316
  const animRef = React85.useRef(0);
28874
28317
  const [simNodes, setSimNodes] = React85.useState([]);
@@ -29161,7 +28604,6 @@ var init_NumberStepper = __esm({
29161
28604
  init_cn();
29162
28605
  init_Icon();
29163
28606
  init_useEventBus();
29164
- init_useTranslate();
29165
28607
  sizeStyles10 = {
29166
28608
  sm: {
29167
28609
  button: "w-7 h-7",
@@ -29195,7 +28637,7 @@ var init_NumberStepper = __esm({
29195
28637
  label
29196
28638
  }) => {
29197
28639
  const eventBus = useSafeEventBus5();
29198
- const { t } = useTranslate();
28640
+ const { t } = hooks.useTranslate();
29199
28641
  const intervalRef = React85.useRef(null);
29200
28642
  const timeoutRef = React85.useRef(null);
29201
28643
  const isAtMin = min !== void 0 && value <= min;
@@ -29502,7 +28944,6 @@ var init_UploadDropZone = __esm({
29502
28944
  init_Icon();
29503
28945
  init_Typography();
29504
28946
  init_useEventBus();
29505
- init_useTranslate();
29506
28947
  UploadDropZone = ({
29507
28948
  accept,
29508
28949
  maxSize,
@@ -29515,7 +28956,7 @@ var init_UploadDropZone = __esm({
29515
28956
  onFiles,
29516
28957
  className
29517
28958
  }) => {
29518
- const { t } = useTranslate();
28959
+ const { t } = hooks.useTranslate();
29519
28960
  const resolvedLabel = label ?? t("upload.dropOrBrowse");
29520
28961
  const [isDragOver, setIsDragOver] = React85.useState(false);
29521
28962
  const [error, setError] = React85.useState(null);
@@ -29669,7 +29110,6 @@ var init_Lightbox = __esm({
29669
29110
  init_Icon();
29670
29111
  init_cn();
29671
29112
  init_useEventBus();
29672
- init_useTranslate();
29673
29113
  Lightbox = ({
29674
29114
  images = [],
29675
29115
  currentIndex = 0,
@@ -29684,7 +29124,7 @@ var init_Lightbox = __esm({
29684
29124
  const [index, setIndex] = React85.useState(currentIndex);
29685
29125
  const [touchStartX, setTouchStartX] = React85.useState(null);
29686
29126
  const eventBus = useSafeEventBus8();
29687
- const { t } = useTranslate();
29127
+ const { t } = hooks.useTranslate();
29688
29128
  React85.useEffect(() => {
29689
29129
  setIndex(currentIndex);
29690
29130
  }, [currentIndex]);
@@ -29922,7 +29362,7 @@ function TableView({
29922
29362
  dndRoot
29923
29363
  }) {
29924
29364
  const eventBus = useEventBus();
29925
- const { t } = useTranslate();
29365
+ const { t } = hooks.useTranslate();
29926
29366
  const [visibleCount, setVisibleCount] = React85__namespace.default.useState(pageSize > 0 ? pageSize : Infinity);
29927
29367
  const [localSelected, setLocalSelected] = React85__namespace.default.useState(/* @__PURE__ */ new Set());
29928
29368
  const colDefs = columns ?? fields ?? [];
@@ -30154,7 +29594,6 @@ var init_TableView = __esm({
30154
29594
  init_cn();
30155
29595
  init_getNestedValue();
30156
29596
  init_useEventBus();
30157
- init_useTranslate();
30158
29597
  init_Box();
30159
29598
  init_Stack();
30160
29599
  init_Typography();
@@ -30358,7 +29797,6 @@ var init_Meter = __esm({
30358
29797
  init_LoadingState();
30359
29798
  init_ErrorState();
30360
29799
  init_useEventBus();
30361
- init_useTranslate();
30362
29800
  DEFAULT_THRESHOLDS = [
30363
29801
  { value: 30, color: "var(--color-error)" },
30364
29802
  { value: 70, color: "var(--color-warning)" },
@@ -30386,7 +29824,7 @@ var init_Meter = __esm({
30386
29824
  className
30387
29825
  }) => {
30388
29826
  const eventBus = useEventBus();
30389
- const { t } = useTranslate();
29827
+ const { t } = hooks.useTranslate();
30390
29828
  const handleAction = React85.useCallback(
30391
29829
  (action) => {
30392
29830
  if (action.event) {
@@ -32305,7 +31743,6 @@ var init_VoteStack = __esm({
32305
31743
  init_cn();
32306
31744
  init_Icon();
32307
31745
  init_useEventBus();
32308
- init_useTranslate();
32309
31746
  sizeStyles12 = {
32310
31747
  sm: {
32311
31748
  button: "w-7 h-7",
@@ -32338,7 +31775,7 @@ var init_VoteStack = __esm({
32338
31775
  const isUp = userVote === "up";
32339
31776
  const isDown = userVote === "down";
32340
31777
  const eventBus = useEventBus();
32341
- const { t } = useTranslate();
31778
+ const { t } = hooks.useTranslate();
32342
31779
  const handleUp = React85.useCallback(() => {
32343
31780
  const next = isUp ? null : "up";
32344
31781
  onVote?.(next);
@@ -32760,7 +32197,6 @@ var init_QrScanner = __esm({
32760
32197
  init_atoms2();
32761
32198
  init_Icon();
32762
32199
  init_useEventBus();
32763
- init_useTranslate();
32764
32200
  QrScanner = ({
32765
32201
  onScan,
32766
32202
  scanEvent,
@@ -32773,7 +32209,7 @@ var init_QrScanner = __esm({
32773
32209
  className
32774
32210
  }) => {
32775
32211
  const eventBus = useEventBus();
32776
- const { t } = useTranslate();
32212
+ const { t } = hooks.useTranslate();
32777
32213
  const videoRef = React85.useRef(null);
32778
32214
  const streamRef = React85.useRef(null);
32779
32215
  const scanIntervalRef = React85.useRef(null);
@@ -32987,7 +32423,6 @@ var init_OptionConstraintGroup = __esm({
32987
32423
  "components/core/molecules/OptionConstraintGroup.tsx"() {
32988
32424
  init_cn();
32989
32425
  init_useEventBus();
32990
- init_useTranslate();
32991
32426
  init_Typography();
32992
32427
  init_Box();
32993
32428
  init_Label();
@@ -33043,7 +32478,7 @@ var init_OptionConstraintGroup = __esm({
33043
32478
  className
33044
32479
  }) => {
33045
32480
  const eventBus = useEventBus();
33046
- const { t } = useTranslate();
32481
+ const { t } = hooks.useTranslate();
33047
32482
  const hint = constraintHint(constraint, t);
33048
32483
  const error = validateSelection(selected, constraint, t);
33049
32484
  const inputName = `option-${groupId}`;
@@ -33467,7 +32902,7 @@ function changeBlockType(block, type) {
33467
32902
  return { id: block.id, type, content: seed };
33468
32903
  }
33469
32904
  function BlockMenu({ block, readOnly, onDelete, onDuplicate, onChangeType }) {
33470
- const { t } = useTranslate();
32905
+ const { t } = hooks.useTranslate();
33471
32906
  const [open, setOpen] = React85.useState(false);
33472
32907
  const ref = React85.useRef(null);
33473
32908
  React85.useEffect(() => {
@@ -33624,7 +33059,7 @@ function BlockRow({
33624
33059
  onInsertAfter,
33625
33060
  onChangeType
33626
33061
  }) {
33627
- const { t } = useTranslate();
33062
+ const { t } = hooks.useTranslate();
33628
33063
  const setContent = React85.useCallback(
33629
33064
  (next) => onUpdate((b) => ({ ...b, content: next })),
33630
33065
  [onUpdate]
@@ -33943,7 +33378,6 @@ var init_RichBlockEditor = __esm({
33943
33378
  init_Input();
33944
33379
  init_Icon();
33945
33380
  init_useEventBus();
33946
- init_useTranslate();
33947
33381
  TOOLBAR_ENTRIES = [
33948
33382
  { type: "paragraph", labelKey: "richBlockEditor.toolbar.text", icon: LucideIcons2.Type },
33949
33383
  { type: "heading-1", labelKey: "richBlockEditor.toolbar.h1", icon: LucideIcons2.Heading1 },
@@ -34000,7 +33434,7 @@ var init_RichBlockEditor = __esm({
34000
33434
  showToolbar = true,
34001
33435
  className
34002
33436
  }) => {
34003
- const { t } = useTranslate();
33437
+ const { t } = hooks.useTranslate();
34004
33438
  const [blocks, setBlocks] = React85.useState(
34005
33439
  () => normalizeBlocks(initialBlocks)
34006
33440
  );
@@ -34134,7 +33568,6 @@ var init_ReplyTree = __esm({
34134
33568
  "use client";
34135
33569
  init_cn();
34136
33570
  init_useEventBus();
34137
- init_useTranslate();
34138
33571
  init_atoms2();
34139
33572
  init_VoteStack();
34140
33573
  ReplyTreeNode = ({
@@ -34154,7 +33587,7 @@ var init_ReplyTree = __esm({
34154
33587
  showActions
34155
33588
  }) => {
34156
33589
  const eventBus = useEventBus();
34157
- const { t } = useTranslate();
33590
+ const { t } = hooks.useTranslate();
34158
33591
  const hasReplies = !!node.replies && node.replies.length > 0;
34159
33592
  const isCollapsed = collapsedSet.has(node.id);
34160
33593
  const atMaxDepth = depth >= maxDepth;
@@ -34345,7 +33778,7 @@ var init_ReplyTree = __esm({
34345
33778
  showActions = true,
34346
33779
  className
34347
33780
  }) => {
34348
- const { t } = useTranslate();
33781
+ const { t } = hooks.useTranslate();
34349
33782
  const nodeList = Array.isArray(nodes) ? nodes : nodes ? [nodes] : [];
34350
33783
  const [collapsedSet, setCollapsedSet] = React85.useState(() => {
34351
33784
  const acc = /* @__PURE__ */ new Set();
@@ -34442,7 +33875,6 @@ var init_VersionDiff = __esm({
34442
33875
  "use client";
34443
33876
  init_cn();
34444
33877
  init_useEventBus();
34445
- init_useTranslate();
34446
33878
  init_atoms2();
34447
33879
  init_Stack();
34448
33880
  INLINE_STYLES = {
@@ -34465,7 +33897,7 @@ var init_VersionDiff = __esm({
34465
33897
  language,
34466
33898
  className
34467
33899
  }) => {
34468
- const { t } = useTranslate();
33900
+ const { t } = hooks.useTranslate();
34469
33901
  const eventBus = useEventBus();
34470
33902
  const revisions = Array.isArray(revisionsProp) ? revisionsProp : [];
34471
33903
  const fallbackBefore = revisions[0]?.id ?? "";
@@ -34758,12 +34190,11 @@ var init_DocBreadcrumb = __esm({
34758
34190
  init_Stack();
34759
34191
  init_Typography();
34760
34192
  init_Icon();
34761
- init_useTranslate();
34762
34193
  DocBreadcrumb = ({
34763
34194
  items,
34764
34195
  className
34765
34196
  }) => {
34766
- const { t } = useTranslate();
34197
+ const { t } = hooks.useTranslate();
34767
34198
  return /* @__PURE__ */ jsxRuntime.jsx(
34768
34199
  Box,
34769
34200
  {
@@ -35014,7 +34445,7 @@ function DocSearch({
35014
34445
  onSearch,
35015
34446
  className
35016
34447
  }) {
35017
- const { t } = useTranslate();
34448
+ const { t } = hooks.useTranslate();
35018
34449
  const resolvedPlaceholder = placeholder ?? t("docSearch.placeholder");
35019
34450
  const [query, setQuery] = React85.useState("");
35020
34451
  const [results, setResults] = React85.useState([]);
@@ -35187,7 +34618,6 @@ var init_DocSearch = __esm({
35187
34618
  init_Typography();
35188
34619
  init_Icon();
35189
34620
  init_Input();
35190
- init_useTranslate();
35191
34621
  }
35192
34622
  });
35193
34623
  var DocSidebarCategory, DocSidebar;
@@ -35200,7 +34630,6 @@ var init_DocSidebar = __esm({
35200
34630
  init_Stack();
35201
34631
  init_Typography();
35202
34632
  init_Icon();
35203
- init_useTranslate();
35204
34633
  DocSidebarCategory = ({ item, depth }) => {
35205
34634
  const [expanded, setExpanded] = React85.useState(
35206
34635
  () => item.items?.some(function hasActive(child) {
@@ -35285,7 +34714,7 @@ var init_DocSidebar = __esm({
35285
34714
  items,
35286
34715
  className
35287
34716
  }) => {
35288
- const { t } = useTranslate();
34717
+ const { t } = hooks.useTranslate();
35289
34718
  return /* @__PURE__ */ jsxRuntime.jsx(
35290
34719
  Box,
35291
34720
  {
@@ -35307,13 +34736,12 @@ var init_DocTOC = __esm({
35307
34736
  init_Box();
35308
34737
  init_Stack();
35309
34738
  init_Typography();
35310
- init_useTranslate();
35311
34739
  DocTOC = ({
35312
34740
  items,
35313
34741
  activeId,
35314
34742
  className
35315
34743
  }) => {
35316
- const { t } = useTranslate();
34744
+ const { t } = hooks.useTranslate();
35317
34745
  return /* @__PURE__ */ jsxRuntime.jsx(
35318
34746
  Box,
35319
34747
  {
@@ -36042,7 +35470,6 @@ var init_Header = __esm({
36042
35470
  init_Stack();
36043
35471
  init_Typography();
36044
35472
  init_cn();
36045
- init_useTranslate();
36046
35473
  lookStyles8 = {
36047
35474
  "compact-bar": "",
36048
35475
  hero: "py-section min-h-[200px] [&_h1]:text-display-1",
@@ -36071,7 +35498,7 @@ var init_Header = __esm({
36071
35498
  onLogoClick,
36072
35499
  className
36073
35500
  }) => {
36074
- const { t } = useTranslate();
35501
+ const { t } = hooks.useTranslate();
36075
35502
  const resolvedSearchPlaceholder = searchPlaceholder ?? t("common.search");
36076
35503
  const userInitials = userAvatar?.initials || userName?.[0]?.toUpperCase() || "U";
36077
35504
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -36362,7 +35789,6 @@ var init_Sidebar = __esm({
36362
35789
  init_Typography();
36363
35790
  init_cn();
36364
35791
  init_useEventBus();
36365
- init_useTranslate();
36366
35792
  SidebarNavItem = ({ item, collapsed }) => {
36367
35793
  const Icon3 = item.icon;
36368
35794
  const isActive = item.active ?? item.isActive;
@@ -36426,7 +35852,7 @@ var init_Sidebar = __esm({
36426
35852
  className
36427
35853
  }) => {
36428
35854
  const { emit } = useEventBus();
36429
- const { t } = useTranslate();
35855
+ const { t } = hooks.useTranslate();
36430
35856
  const [internalCollapsed, setInternalCollapsed] = React85.useState(defaultCollapsed);
36431
35857
  const collapsed = controlledCollapsed !== void 0 ? controlledCollapsed : internalCollapsed;
36432
35858
  const handleToggle = React85.useCallback(() => {
@@ -36616,7 +36042,6 @@ var init_WizardContainer = __esm({
36616
36042
  init_Stack();
36617
36043
  init_Icon();
36618
36044
  init_cn();
36619
- init_useTranslate();
36620
36045
  WizardContainer = ({
36621
36046
  steps,
36622
36047
  currentStep: controlledStep,
@@ -36629,7 +36054,7 @@ var init_WizardContainer = __esm({
36629
36054
  entity: _entity
36630
36055
  // Accept but don't use directly yet
36631
36056
  }) => {
36632
- const { t } = useTranslate();
36057
+ const { t } = hooks.useTranslate();
36633
36058
  const [internalStep, setInternalStep] = React85.useState(0);
36634
36059
  const normalizedControlledStep = (() => {
36635
36060
  if (controlledStep === void 0 || controlledStep === null)
@@ -37190,7 +36615,6 @@ var init_SignaturePad = __esm({
37190
36615
  init_LoadingState();
37191
36616
  init_ErrorState();
37192
36617
  init_useEventBus();
37193
- init_useTranslate();
37194
36618
  SignaturePad = ({
37195
36619
  label,
37196
36620
  helperText,
@@ -37208,7 +36632,7 @@ var init_SignaturePad = __esm({
37208
36632
  className
37209
36633
  }) => {
37210
36634
  const eventBus = useEventBus();
37211
- const { t } = useTranslate();
36635
+ const { t } = hooks.useTranslate();
37212
36636
  const resolvedLabel = label ?? t("signaturePad.label");
37213
36637
  const resolvedHelperText = helperText ?? t("signaturePad.helperText");
37214
36638
  const canvasRef = React85.useRef(null);
@@ -37384,7 +36808,6 @@ var init_DocumentViewer = __esm({
37384
36808
  init_EmptyState();
37385
36809
  init_Tabs();
37386
36810
  init_useEventBus();
37387
- init_useTranslate();
37388
36811
  DocumentViewer = ({
37389
36812
  title,
37390
36813
  src,
@@ -37404,7 +36827,7 @@ var init_DocumentViewer = __esm({
37404
36827
  className
37405
36828
  }) => {
37406
36829
  const eventBus = useEventBus();
37407
- const { t } = useTranslate();
36830
+ const { t } = hooks.useTranslate();
37408
36831
  const [zoom, setZoom] = React85.useState(100);
37409
36832
  const [currentPage, setCurrentPage] = React85.useState(propPage ?? 1);
37410
36833
  const [activeDocIndex, setActiveDocIndex] = React85.useState(0);
@@ -37589,7 +37012,6 @@ var init_GraphCanvas = __esm({
37589
37012
  init_ErrorState();
37590
37013
  init_EmptyState();
37591
37014
  init_useEventBus();
37592
- init_useTranslate();
37593
37015
  GROUP_COLORS2 = [
37594
37016
  "var(--color-primary)",
37595
37017
  "var(--color-success)",
@@ -37616,7 +37038,7 @@ var init_GraphCanvas = __esm({
37616
37038
  className
37617
37039
  }) => {
37618
37040
  const eventBus = useEventBus();
37619
- const { t } = useTranslate();
37041
+ const { t } = hooks.useTranslate();
37620
37042
  const canvasRef = React85.useRef(null);
37621
37043
  const animRef = React85.useRef(0);
37622
37044
  const [zoom, setZoom] = React85.useState(1);
@@ -37966,7 +37388,7 @@ function DataTable({
37966
37388
  null
37967
37389
  );
37968
37390
  const eventBus = useEventBus();
37969
- const { t } = useTranslate();
37391
+ const { t } = hooks.useTranslate();
37970
37392
  const resolvedEmptyTitle = emptyTitle ?? t("table.empty.title");
37971
37393
  const resolvedEmptyDescription = emptyDescription ?? t("table.empty.description");
37972
37394
  const resolvedSearchPlaceholder = searchPlaceholder ?? t("common.search");
@@ -38327,7 +37749,6 @@ var init_DataTable = __esm({
38327
37749
  init_molecules2();
38328
37750
  init_Icon();
38329
37751
  init_useEventBus();
38330
- init_useTranslate();
38331
37752
  init_types3();
38332
37753
  lookStyles9 = {
38333
37754
  dense: "",
@@ -38345,7 +37766,7 @@ function DebuggerBoard({
38345
37766
  className
38346
37767
  }) {
38347
37768
  const { emit } = useEventBus();
38348
- const { t } = useTranslate();
37769
+ const { t } = hooks.useTranslate();
38349
37770
  const resolved = Array.isArray(entity) ? entity[0] : entity;
38350
37771
  const [flaggedLines, setFlaggedLines] = React85.useState(/* @__PURE__ */ new Set());
38351
37772
  const [headerError, setHeaderError] = React85.useState(false);
@@ -38474,7 +37895,6 @@ var init_DebuggerBoard = __esm({
38474
37895
  "components/game/organisms/puzzles/debugger/DebuggerBoard.tsx"() {
38475
37896
  init_atoms2();
38476
37897
  init_useEventBus();
38477
- init_useTranslate();
38478
37898
  DebuggerBoard.displayName = "DebuggerBoard";
38479
37899
  }
38480
37900
  });
@@ -38645,7 +38065,6 @@ var init_DetailPanel = __esm({
38645
38065
  init_cn();
38646
38066
  init_getNestedValue();
38647
38067
  init_useEventBus();
38648
- init_useTranslate();
38649
38068
  ReactMarkdown2 = React85.lazy(() => import('react-markdown'));
38650
38069
  DetailPanel = ({
38651
38070
  title: propTitle,
@@ -38665,7 +38084,7 @@ var init_DetailPanel = __esm({
38665
38084
  error
38666
38085
  }) => {
38667
38086
  const eventBus = useEventBus();
38668
- const { t } = useTranslate();
38087
+ const { t } = hooks.useTranslate();
38669
38088
  const isFieldDefArray = (arr) => {
38670
38089
  if (!arr || arr.length === 0) return false;
38671
38090
  const first = arr[0];
@@ -39063,7 +38482,7 @@ function CompactView({
39063
38482
  stateStyles,
39064
38483
  className
39065
38484
  }) {
39066
- const { t } = useTranslate();
38485
+ const { t } = hooks.useTranslate();
39067
38486
  const config = SIZE_CONFIG2[size || "md"];
39068
38487
  const currentTransitions = trait.transitions.filter((t2) => t2.from === trait.currentState);
39069
38488
  return /* @__PURE__ */ jsxRuntime.jsxs(VStack, { className: cn("p-3 rounded-container bg-card border border-border", className), gap: "sm", children: [
@@ -39099,7 +38518,7 @@ function FullView({
39099
38518
  stateStyles,
39100
38519
  className
39101
38520
  }) {
39102
- const { t } = useTranslate();
38521
+ const { t } = hooks.useTranslate();
39103
38522
  const config = SIZE_CONFIG2[size || "md"];
39104
38523
  const currentTransitions = trait.transitions.filter((t2) => t2.from === trait.currentState);
39105
38524
  return /* @__PURE__ */ jsxRuntime.jsxs(VStack, { className: cn("p-3 rounded-container bg-card border border-border", className), gap: "sm", children: [
@@ -39224,7 +38643,6 @@ var init_TraitStateViewer = __esm({
39224
38643
  "components/game/organisms/TraitStateViewer.tsx"() {
39225
38644
  "use client";
39226
38645
  init_cn();
39227
- init_useTranslate();
39228
38646
  init_Box();
39229
38647
  init_Typography();
39230
38648
  init_Stack();
@@ -39246,7 +38664,7 @@ function RuleEditor({
39246
38664
  disabled = false,
39247
38665
  className
39248
38666
  }) {
39249
- const { t } = useTranslate();
38667
+ const { t } = hooks.useTranslate();
39250
38668
  const handleWhenChange = React85.useCallback((e) => {
39251
38669
  onChange({ ...rule, whenEvent: e.target.value });
39252
38670
  }, [rule, onChange]);
@@ -39283,7 +38701,6 @@ var init_RuleEditor = __esm({
39283
38701
  "components/game/organisms/puzzles/event-handler/RuleEditor.tsx"() {
39284
38702
  init_atoms2();
39285
38703
  init_cn();
39286
- init_useTranslate();
39287
38704
  RuleEditor.displayName = "RuleEditor";
39288
38705
  }
39289
38706
  });
@@ -39293,7 +38710,7 @@ function ObjectRulePanel({
39293
38710
  disabled = false,
39294
38711
  className
39295
38712
  }) {
39296
- const { t } = useTranslate();
38713
+ const { t } = hooks.useTranslate();
39297
38714
  const maxRules = object.maxRules || 3;
39298
38715
  const canAdd = object.rules.length < maxRules;
39299
38716
  const handleRuleChange = React85.useCallback((index, updatedRule) => {
@@ -39358,7 +38775,6 @@ var init_ObjectRulePanel = __esm({
39358
38775
  "components/game/organisms/puzzles/event-handler/ObjectRulePanel.tsx"() {
39359
38776
  init_atoms2();
39360
38777
  init_cn();
39361
- init_useTranslate();
39362
38778
  init_TraitStateViewer();
39363
38779
  init_RuleEditor();
39364
38780
  nextRuleId = 1;
@@ -39371,7 +38787,7 @@ function EventLog({
39371
38787
  label,
39372
38788
  className
39373
38789
  }) {
39374
- const { t } = useTranslate();
38790
+ const { t } = hooks.useTranslate();
39375
38791
  const scrollRef = React85.useRef(null);
39376
38792
  React85.useEffect(() => {
39377
38793
  if (scrollRef.current) {
@@ -39403,7 +38819,6 @@ var init_EventLog = __esm({
39403
38819
  "components/game/organisms/puzzles/event-handler/EventLog.tsx"() {
39404
38820
  init_atoms2();
39405
38821
  init_cn();
39406
- init_useTranslate();
39407
38822
  STATUS_STYLES = {
39408
38823
  pending: "text-muted-foreground",
39409
38824
  active: "text-primary animate-pulse",
@@ -39427,7 +38842,7 @@ function EventHandlerBoard({
39427
38842
  className
39428
38843
  }) {
39429
38844
  const { emit } = useEventBus();
39430
- const { t } = useTranslate();
38845
+ const { t } = hooks.useTranslate();
39431
38846
  const resolved = Array.isArray(entity) ? entity[0] : entity;
39432
38847
  const entityObjects = resolved?.objects ?? [];
39433
38848
  const [objects, setObjects] = React85.useState(entityObjects);
@@ -39617,7 +39032,6 @@ var init_EventHandlerBoard = __esm({
39617
39032
  init_atoms2();
39618
39033
  init_cn();
39619
39034
  init_useEventBus();
39620
- init_useTranslate();
39621
39035
  init_TraitStateViewer();
39622
39036
  init_ObjectRulePanel();
39623
39037
  init_EventLog();
@@ -39687,7 +39101,6 @@ var init_FeatureGridOrganism = __esm({
39687
39101
  "use client";
39688
39102
  init_cn();
39689
39103
  init_useEventBus();
39690
- init_useTranslate();
39691
39104
  init_Stack();
39692
39105
  init_Typography();
39693
39106
  init_FeatureGrid();
@@ -39703,7 +39116,7 @@ var init_FeatureGridOrganism = __esm({
39703
39116
  subtitle
39704
39117
  }) => {
39705
39118
  const eventBus = useEventBus();
39706
- const { t } = useTranslate();
39119
+ const { t } = hooks.useTranslate();
39707
39120
  const items = React85.useMemo(
39708
39121
  () => Array.isArray(entity) ? entity : entity && typeof entity === "object" ? [entity] : [],
39709
39122
  [entity]
@@ -39870,7 +39283,6 @@ var init_Form = __esm({
39870
39283
  init_RelationSelect();
39871
39284
  init_Alert();
39872
39285
  init_useEventBus();
39873
- init_useTranslate();
39874
39286
  init_debug();
39875
39287
  layoutStyles = {
39876
39288
  vertical: "flex flex-col",
@@ -39921,7 +39333,7 @@ var init_Form = __esm({
39921
39333
  ...props
39922
39334
  }) => {
39923
39335
  const eventBus = useEventBus();
39924
- const { t } = useTranslate();
39336
+ const { t } = hooks.useTranslate();
39925
39337
  const resolvedSubmitLabel = submitLabel ?? t("common.save");
39926
39338
  const resolvedCancelLabel = cancelLabel ?? t("common.cancel");
39927
39339
  const isSchemaEntity = isOrbitalEntitySchema(entity);
@@ -41030,7 +40442,6 @@ var init_HeroOrganism = __esm({
41030
40442
  "use client";
41031
40443
  init_cn();
41032
40444
  init_useEventBus();
41033
- init_useTranslate();
41034
40445
  init_HeroSection();
41035
40446
  init_LoadingState();
41036
40447
  init_ErrorState();
@@ -41042,7 +40453,7 @@ var init_HeroOrganism = __esm({
41042
40453
  children
41043
40454
  }) => {
41044
40455
  const eventBus = useEventBus();
41045
- const { t } = useTranslate();
40456
+ const { t } = hooks.useTranslate();
41046
40457
  const resolved = React85.useMemo(
41047
40458
  () => Array.isArray(entity) ? entity[0] : entity && typeof entity === "object" ? entity : void 0,
41048
40459
  [entity]
@@ -41136,7 +40547,6 @@ var LandingPageTemplate;
41136
40547
  var init_LandingPageTemplate = __esm({
41137
40548
  "components/marketing/templates/LandingPageTemplate.tsx"() {
41138
40549
  init_cn();
41139
- init_useTranslate();
41140
40550
  init_Stack();
41141
40551
  init_Box();
41142
40552
  init_Container();
@@ -41154,7 +40564,7 @@ var init_LandingPageTemplate = __esm({
41154
40564
  featureColumns = 3,
41155
40565
  className
41156
40566
  }) => {
41157
- const { t } = useTranslate();
40567
+ const { t } = hooks.useTranslate();
41158
40568
  const resolved = entity && typeof entity === "object" && !Array.isArray(entity) ? entity : void 0;
41159
40569
  if (!resolved) return null;
41160
40570
  return /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "none", className: cn("w-full", className), children: [
@@ -41336,7 +40746,6 @@ var init_List = __esm({
41336
40746
  init_cn();
41337
40747
  init_getNestedValue();
41338
40748
  init_useEventBus();
41339
- init_useTranslate();
41340
40749
  init_types3();
41341
40750
  STATUS_STYLES2 = {
41342
40751
  complete: {
@@ -41461,7 +40870,7 @@ var init_List = __esm({
41461
40870
  entityType
41462
40871
  }) => {
41463
40872
  const eventBus = useEventBus();
41464
- const { t } = useTranslate();
40873
+ const { t } = hooks.useTranslate();
41465
40874
  const resolvedEmptyMessage = emptyMessage ?? t("empty.noData");
41466
40875
  const effectiveFieldNames = normalizeFields2(fields).length > 0 ? normalizeFields2(fields) : fieldNames;
41467
40876
  const rawItems = React85.useMemo(() => {
@@ -41808,7 +41217,7 @@ function MasterDetail({
41808
41217
  className,
41809
41218
  ...rest
41810
41219
  }) {
41811
- const { t } = useTranslate();
41220
+ const { t } = hooks.useTranslate();
41812
41221
  const loading = externalLoading ?? false;
41813
41222
  const isLoading = externalIsLoading ?? false;
41814
41223
  const error = externalError ?? null;
@@ -41831,7 +41240,6 @@ var init_MasterDetail = __esm({
41831
41240
  "components/core/organisms/MasterDetail.tsx"() {
41832
41241
  "use client";
41833
41242
  init_DataTable();
41834
- init_useTranslate();
41835
41243
  MasterDetail.displayName = "MasterDetail";
41836
41244
  }
41837
41245
  });
@@ -41840,9 +41248,8 @@ var init_MasterDetailLayout = __esm({
41840
41248
  "components/core/organisms/layout/MasterDetailLayout.tsx"() {
41841
41249
  init_cn();
41842
41250
  init_Typography();
41843
- init_useTranslate();
41844
41251
  DefaultEmptyDetail = () => {
41845
- const { t } = useTranslate();
41252
+ const { t } = hooks.useTranslate();
41846
41253
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-center h-full border-2 border-dashed border-border", children: /* @__PURE__ */ jsxRuntime.jsx(
41847
41254
  Typography,
41848
41255
  {
@@ -41901,7 +41308,6 @@ var init_MediaGallery = __esm({
41901
41308
  init_ErrorState();
41902
41309
  init_EmptyState();
41903
41310
  init_useEventBus();
41904
- init_useTranslate();
41905
41311
  COLUMN_CLASSES = {
41906
41312
  2: "grid-cols-2",
41907
41313
  3: "grid-cols-2 sm:grid-cols-3",
@@ -41930,7 +41336,7 @@ var init_MediaGallery = __esm({
41930
41336
  className
41931
41337
  }) => {
41932
41338
  const eventBus = useEventBus();
41933
- const { t } = useTranslate();
41339
+ const { t } = hooks.useTranslate();
41934
41340
  const [lightboxItem, setLightboxItem] = React85.useState(null);
41935
41341
  const closeLightbox = React85.useCallback(() => setLightboxItem(null), []);
41936
41342
  useEventListener("UI:LIGHTBOX_CLOSE", closeLightbox);
@@ -42172,7 +41578,7 @@ function NegotiatorBoard({
42172
41578
  className
42173
41579
  }) {
42174
41580
  const { emit } = useEventBus();
42175
- const { t } = useTranslate();
41581
+ const { t } = hooks.useTranslate();
42176
41582
  const resolved = Array.isArray(entity) ? entity[0] : entity;
42177
41583
  const [history, setHistory] = React85.useState([]);
42178
41584
  const [headerError, setHeaderError] = React85.useState(false);
@@ -42302,7 +41708,6 @@ var init_NegotiatorBoard = __esm({
42302
41708
  "components/game/organisms/puzzles/negotiator/NegotiatorBoard.tsx"() {
42303
41709
  init_atoms2();
42304
41710
  init_useEventBus();
42305
- init_useTranslate();
42306
41711
  NegotiatorBoard.displayName = "NegotiatorBoard";
42307
41712
  }
42308
41713
  });
@@ -42312,7 +41717,6 @@ var init_PricingOrganism = __esm({
42312
41717
  "use client";
42313
41718
  init_cn();
42314
41719
  init_useEventBus();
42315
- init_useTranslate();
42316
41720
  init_Stack();
42317
41721
  init_Typography();
42318
41722
  init_PricingGrid();
@@ -42327,7 +41731,7 @@ var init_PricingOrganism = __esm({
42327
41731
  subtitle
42328
41732
  }) => {
42329
41733
  useEventBus();
42330
- const { t } = useTranslate();
41734
+ const { t } = hooks.useTranslate();
42331
41735
  const items = React85.useMemo(
42332
41736
  () => Array.isArray(entity) ? entity : entity && typeof entity === "object" ? [entity] : [],
42333
41737
  [entity]
@@ -42362,7 +41766,6 @@ var PricingPageTemplate;
42362
41766
  var init_PricingPageTemplate = __esm({
42363
41767
  "components/marketing/templates/PricingPageTemplate.tsx"() {
42364
41768
  init_cn();
42365
- init_useTranslate();
42366
41769
  init_Stack();
42367
41770
  init_Box();
42368
41771
  init_Container();
@@ -42375,7 +41778,7 @@ var init_PricingPageTemplate = __esm({
42375
41778
  entity,
42376
41779
  className
42377
41780
  }) => {
42378
- const { t } = useTranslate();
41781
+ const { t } = hooks.useTranslate();
42379
41782
  const resolved = entity && typeof entity === "object" && !Array.isArray(entity) ? entity : void 0;
42380
41783
  if (!resolved) return null;
42381
41784
  return /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "none", className: cn("w-full", className), children: [
@@ -42858,7 +42261,7 @@ var init_WalkMinimap = __esm({
42858
42261
  }
42859
42262
  });
42860
42263
  function TraitsTab({ traits: traits2 }) {
42861
- const { t } = useTranslate();
42264
+ const { t } = hooks.useTranslate();
42862
42265
  if (traits2.length === 0) {
42863
42266
  return /* @__PURE__ */ jsxRuntime.jsx(
42864
42267
  EmptyState,
@@ -42926,12 +42329,11 @@ var init_TraitsTab = __esm({
42926
42329
  init_Typography();
42927
42330
  init_Stack();
42928
42331
  init_EmptyState();
42929
- init_useTranslate();
42930
42332
  TraitsTab.displayName = "TraitsTab";
42931
42333
  }
42932
42334
  });
42933
42335
  function TicksTab({ ticks: ticks2 }) {
42934
- const { t } = useTranslate();
42336
+ const { t } = hooks.useTranslate();
42935
42337
  const activeTicks = ticks2.filter((t2) => t2.active);
42936
42338
  const inactiveTicks = ticks2.filter((t2) => !t2.active);
42937
42339
  if (ticks2.length === 0) {
@@ -43004,12 +42406,11 @@ var init_TicksTab = __esm({
43004
42406
  init_Stack();
43005
42407
  init_Card();
43006
42408
  init_EmptyState();
43007
- init_useTranslate();
43008
42409
  TicksTab.displayName = "TicksTab";
43009
42410
  }
43010
42411
  });
43011
42412
  function EntitiesTab({ snapshot }) {
43012
- const { t } = useTranslate();
42413
+ const { t } = hooks.useTranslate();
43013
42414
  if (!snapshot) {
43014
42415
  return /* @__PURE__ */ jsxRuntime.jsx(
43015
42416
  EmptyState,
@@ -43078,12 +42479,11 @@ var init_EntitiesTab = __esm({
43078
42479
  init_Typography();
43079
42480
  init_Stack();
43080
42481
  init_EmptyState();
43081
- init_useTranslate();
43082
42482
  EntitiesTab.displayName = "EntitiesTab";
43083
42483
  }
43084
42484
  });
43085
42485
  function EventFlowTab({ events: events2 }) {
43086
- const { t } = useTranslate();
42486
+ const { t } = hooks.useTranslate();
43087
42487
  const [filter, setFilter] = React85__namespace.useState("all");
43088
42488
  const containerRef = React85__namespace.useRef(null);
43089
42489
  const [autoScroll, setAutoScroll] = React85__namespace.useState(true);
@@ -43195,7 +42595,6 @@ var init_EventFlowTab = __esm({
43195
42595
  init_Button();
43196
42596
  init_Checkbox();
43197
42597
  init_EmptyState();
43198
- init_useTranslate();
43199
42598
  TYPE_BADGES = {
43200
42599
  trait: { variant: "primary", icon: "\u{1F504}" },
43201
42600
  tick: { variant: "warning", icon: "\u23F1\uFE0F" },
@@ -43208,7 +42607,7 @@ var init_EventFlowTab = __esm({
43208
42607
  }
43209
42608
  });
43210
42609
  function GuardsPanel({ guards }) {
43211
- const { t } = useTranslate();
42610
+ const { t } = hooks.useTranslate();
43212
42611
  const [filter, setFilter] = React85__namespace.useState("all");
43213
42612
  if (guards.length === 0) {
43214
42613
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -43290,12 +42689,11 @@ var init_GuardsPanel = __esm({
43290
42689
  init_ButtonGroup();
43291
42690
  init_Button();
43292
42691
  init_EmptyState();
43293
- init_useTranslate();
43294
42692
  GuardsPanel.displayName = "GuardsPanel";
43295
42693
  }
43296
42694
  });
43297
42695
  function VerificationTab({ checks, summary }) {
43298
- const { t } = useTranslate();
42696
+ const { t } = hooks.useTranslate();
43299
42697
  if (checks.length === 0) {
43300
42698
  return /* @__PURE__ */ jsxRuntime.jsx(
43301
42699
  EmptyState,
@@ -43366,7 +42764,6 @@ var init_VerificationTab = __esm({
43366
42764
  init_Typography();
43367
42765
  init_Stack();
43368
42766
  init_EmptyState();
43369
- init_useTranslate();
43370
42767
  STATUS_CONFIG = {
43371
42768
  pass: { variant: "success", icon: "\u2713", label: "PASS" },
43372
42769
  fail: { variant: "danger", icon: "\u2717", label: "FAIL" },
@@ -43386,7 +42783,7 @@ function EffectBadge({ effect }) {
43386
42783
  ] });
43387
42784
  }
43388
42785
  function TransitionTimeline({ transitions }) {
43389
- const { t } = useTranslate();
42786
+ const { t } = hooks.useTranslate();
43390
42787
  const containerRef = React85__namespace.useRef(null);
43391
42788
  const [autoScroll, setAutoScroll] = React85__namespace.useState(true);
43392
42789
  const [expandedId, setExpandedId] = React85__namespace.useState(null);
@@ -43502,7 +42899,6 @@ var init_TransitionTimeline = __esm({
43502
42899
  init_Typography();
43503
42900
  init_EmptyState();
43504
42901
  init_Checkbox();
43505
- init_useTranslate();
43506
42902
  EFFECT_STATUS_VARIANT = {
43507
42903
  executed: "success",
43508
42904
  failed: "danger",
@@ -43518,7 +42914,7 @@ function StatRow({ label, value, variant }) {
43518
42914
  ] });
43519
42915
  }
43520
42916
  function ServerBridgeTab({ bridge }) {
43521
- const { t } = useTranslate();
42917
+ const { t } = hooks.useTranslate();
43522
42918
  if (!bridge) {
43523
42919
  return /* @__PURE__ */ jsxRuntime.jsx(
43524
42920
  EmptyState,
@@ -43592,7 +42988,6 @@ var init_ServerBridgeTab = __esm({
43592
42988
  init_Stack();
43593
42989
  init_Card();
43594
42990
  init_EmptyState();
43595
- init_useTranslate();
43596
42991
  ServerBridgeTab.displayName = "ServerBridgeTab";
43597
42992
  }
43598
42993
  });
@@ -43671,7 +43066,7 @@ function getAllEvents(traits2) {
43671
43066
  }
43672
43067
  function EventDispatcherTab({ traits: traits2, schema }) {
43673
43068
  const eventBus = useEventBus();
43674
- const { t } = useTranslate();
43069
+ const { t } = hooks.useTranslate();
43675
43070
  const [log12, setLog] = React85__namespace.useState([]);
43676
43071
  const prevStatesRef = React85__namespace.useRef(/* @__PURE__ */ new Map());
43677
43072
  React85__namespace.useEffect(() => {
@@ -43757,7 +43152,6 @@ var init_EventDispatcherTab = __esm({
43757
43152
  init_Stack();
43758
43153
  init_EmptyState();
43759
43154
  init_useEventBus();
43760
- init_useTranslate();
43761
43155
  EventDispatcherTab.displayName = "EventDispatcherTab";
43762
43156
  }
43763
43157
  });
@@ -43768,7 +43162,7 @@ var init_RuntimeDebugger = __esm({
43768
43162
  }
43769
43163
  });
43770
43164
  function ServerResponseRow({ sr }) {
43771
- const { t } = useTranslate();
43165
+ const { t } = hooks.useTranslate();
43772
43166
  const entityEntries = Object.entries(sr.dataEntities);
43773
43167
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ml-4 pl-2 border-l border-purple-500/30 py-0.5 text-xs font-mono", children: [
43774
43168
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
@@ -43794,7 +43188,7 @@ function ServerResponseRow({ sr }) {
43794
43188
  ] });
43795
43189
  }
43796
43190
  function TransitionRow({ trace }) {
43797
- const { t } = useTranslate();
43191
+ const { t } = hooks.useTranslate();
43798
43192
  const isServerEntry = !!trace.serverResponse && trace.traitName.startsWith("server:");
43799
43193
  const hasFailedEffects = trace.effects.some((e) => e.status === "failed");
43800
43194
  if (isServerEntry && trace.serverResponse) {
@@ -43843,7 +43237,7 @@ function VerifyModePanel({
43843
43237
  serverCount,
43844
43238
  localCount
43845
43239
  }) {
43846
- const { t } = useTranslate();
43240
+ const { t } = hooks.useTranslate();
43847
43241
  const [expanded, setExpanded] = React85__namespace.useState(true);
43848
43242
  const scrollRef = React85__namespace.useRef(null);
43849
43243
  const prevCountRef = React85__namespace.useRef(0);
@@ -43903,7 +43297,7 @@ function RuntimeDebugger({
43903
43297
  defaultTab,
43904
43298
  schema
43905
43299
  }) {
43906
- const { t } = useTranslate();
43300
+ const { t } = hooks.useTranslate();
43907
43301
  const [isCollapsed, setIsCollapsed] = React85__namespace.useState(mode === "verify" ? true : defaultCollapsed);
43908
43302
  const [isVisible, setIsVisible] = React85__namespace.useState(mode === "inline" || mode === "verify" || isDebugEnabled2());
43909
43303
  const debugData = useDebugData();
@@ -44132,7 +43526,6 @@ var init_RuntimeDebugger2 = __esm({
44132
43526
  init_TransitionTimeline();
44133
43527
  init_ServerBridgeTab();
44134
43528
  init_EventDispatcherTab();
44135
- init_useTranslate();
44136
43529
  init_RuntimeDebugger();
44137
43530
  RuntimeDebugger.displayName = "RuntimeDebugger";
44138
43531
  }
@@ -44426,7 +43819,7 @@ function SequencerBoard({
44426
43819
  className
44427
43820
  }) {
44428
43821
  const { emit } = useEventBus();
44429
- const { t } = useTranslate();
43822
+ const { t } = hooks.useTranslate();
44430
43823
  const resolved = Array.isArray(entity) ? entity[0] : entity;
44431
43824
  const [headerError, setHeaderError] = React85.useState(false);
44432
43825
  const [slots, setSlots] = React85.useState(
@@ -44619,7 +44012,6 @@ var init_SequencerBoard = __esm({
44619
44012
  init_atoms2();
44620
44013
  init_cn();
44621
44014
  init_useEventBus();
44622
- init_useTranslate();
44623
44015
  init_TraitStateViewer();
44624
44016
  init_SequenceBar();
44625
44017
  init_ActionPalette();
@@ -44638,7 +44030,6 @@ var init_ShowcaseOrganism = __esm({
44638
44030
  "use client";
44639
44031
  init_cn();
44640
44032
  init_useEventBus();
44641
- init_useTranslate();
44642
44033
  init_Stack();
44643
44034
  init_Typography();
44644
44035
  init_SimpleGrid();
@@ -44655,7 +44046,7 @@ var init_ShowcaseOrganism = __esm({
44655
44046
  subtitle
44656
44047
  }) => {
44657
44048
  useEventBus();
44658
- const { t } = useTranslate();
44049
+ const { t } = hooks.useTranslate();
44659
44050
  const items = React85.useMemo(
44660
44051
  () => Array.isArray(entity) ? entity : entity && typeof entity === "object" ? [entity] : [],
44661
44052
  [entity]
@@ -45049,7 +44440,7 @@ function SimulatorBoard({
45049
44440
  className
45050
44441
  }) {
45051
44442
  const { emit } = useEventBus();
45052
- const { t } = useTranslate();
44443
+ const { t } = hooks.useTranslate();
45053
44444
  const resolved = Array.isArray(entity) ? entity[0] : entity;
45054
44445
  const parameters = resolved?.parameters ?? [];
45055
44446
  const [values, setValues] = React85.useState(() => {
@@ -45197,7 +44588,6 @@ var init_SimulatorBoard = __esm({
45197
44588
  "components/game/organisms/puzzles/simulator/SimulatorBoard.tsx"() {
45198
44589
  init_atoms2();
45199
44590
  init_useEventBus();
45200
- init_useTranslate();
45201
44591
  SimulatorBoard.displayName = "SimulatorBoard";
45202
44592
  }
45203
44593
  });
@@ -45302,7 +44692,6 @@ var init_StatCard = __esm({
45302
44692
  init_Button();
45303
44693
  init_Sparkline();
45304
44694
  init_useEventBus();
45305
- init_useTranslate();
45306
44695
  init_Icon();
45307
44696
  StatCard = ({
45308
44697
  label: propLabel,
@@ -45329,7 +44718,7 @@ var init_StatCard = __esm({
45329
44718
  const Icon3 = typeof iconProp === "string" ? resolveIcon(iconProp) ?? void 0 : iconProp;
45330
44719
  const labelToUse = propLabel ?? propTitle;
45331
44720
  const eventBus = useEventBus();
45332
- const { t } = useTranslate();
44721
+ const { t } = hooks.useTranslate();
45333
44722
  const handleActionClick = React85__namespace.default.useCallback(() => {
45334
44723
  if (action?.event) {
45335
44724
  eventBus.emit(`UI:${action.event}`, {});
@@ -45620,7 +45009,7 @@ function VariablePanel({
45620
45009
  variables,
45621
45010
  className
45622
45011
  }) {
45623
- const { t } = useTranslate();
45012
+ const { t } = hooks.useTranslate();
45624
45013
  return /* @__PURE__ */ jsxRuntime.jsxs(VStack, { className: cn("p-3 rounded-lg bg-card border border-border", className), gap: "sm", children: [
45625
45014
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body2", className: "text-muted-foreground font-medium", children: t("stateArchitect.variables", { name: entityName }) }),
45626
45015
  variables.map((v) => {
@@ -45658,7 +45047,6 @@ var init_VariablePanel = __esm({
45658
45047
  "components/game/organisms/puzzles/state-architect/VariablePanel.tsx"() {
45659
45048
  init_atoms2();
45660
45049
  init_cn();
45661
- init_useTranslate();
45662
45050
  VariablePanel.displayName = "VariablePanel";
45663
45051
  }
45664
45052
  });
@@ -45684,7 +45072,7 @@ function StateArchitectBoard({
45684
45072
  className
45685
45073
  }) {
45686
45074
  const { emit } = useEventBus();
45687
- const { t } = useTranslate();
45075
+ const { t } = hooks.useTranslate();
45688
45076
  const resolved = Array.isArray(entity) ? entity[0] : entity;
45689
45077
  const [transitions, setTransitions] = React85.useState(resolved?.transitions ?? []);
45690
45078
  const [headerError, setHeaderError] = React85.useState(false);
@@ -45975,7 +45363,6 @@ var init_StateArchitectBoard = __esm({
45975
45363
  init_atoms2();
45976
45364
  init_cn();
45977
45365
  init_useEventBus();
45978
- init_useTranslate();
45979
45366
  init_TraitStateViewer();
45980
45367
  init_StateNode();
45981
45368
  init_TransitionArrow();
@@ -45995,7 +45382,6 @@ var init_StatsOrganism = __esm({
45995
45382
  "components/marketing/organisms/StatsOrganism.tsx"() {
45996
45383
  "use client";
45997
45384
  init_cn();
45998
- init_useTranslate();
45999
45385
  init_StatsGrid();
46000
45386
  init_LoadingState();
46001
45387
  init_ErrorState();
@@ -46006,7 +45392,7 @@ var init_StatsOrganism = __esm({
46006
45392
  className,
46007
45393
  columns = 3
46008
45394
  }) => {
46009
- const { t } = useTranslate();
45395
+ const { t } = hooks.useTranslate();
46010
45396
  const items = React85.useMemo(
46011
45397
  () => Array.isArray(entity) ? entity : entity && typeof entity === "object" ? [entity] : [],
46012
45398
  [entity]
@@ -46038,7 +45424,6 @@ var init_StepFlowOrganism = __esm({
46038
45424
  "components/core/organisms/StepFlowOrganism.tsx"() {
46039
45425
  "use client";
46040
45426
  init_cn();
46041
- init_useTranslate();
46042
45427
  init_Stack();
46043
45428
  init_Typography();
46044
45429
  init_StepFlow();
@@ -46054,7 +45439,7 @@ var init_StepFlowOrganism = __esm({
46054
45439
  heading,
46055
45440
  subtitle
46056
45441
  }) => {
46057
- const { t } = useTranslate();
45442
+ const { t } = hooks.useTranslate();
46058
45443
  const items = React85.useMemo(
46059
45444
  () => Array.isArray(entity) ? entity : entity && typeof entity === "object" ? [entity] : [],
46060
45445
  [entity]
@@ -46208,7 +45593,6 @@ var init_TeamOrganism = __esm({
46208
45593
  "components/marketing/organisms/TeamOrganism.tsx"() {
46209
45594
  "use client";
46210
45595
  init_cn();
46211
- init_useTranslate();
46212
45596
  init_Stack();
46213
45597
  init_Typography();
46214
45598
  init_SimpleGrid();
@@ -46223,7 +45607,7 @@ var init_TeamOrganism = __esm({
46223
45607
  heading,
46224
45608
  subtitle
46225
45609
  }) => {
46226
- const { t } = useTranslate();
45610
+ const { t } = hooks.useTranslate();
46227
45611
  const items = React85.useMemo(
46228
45612
  () => Array.isArray(entity) ? entity : entity && typeof entity === "object" ? [entity] : [],
46229
45613
  [entity]
@@ -46266,7 +45650,6 @@ var init_Timeline = __esm({
46266
45650
  init_LoadingState();
46267
45651
  init_ErrorState();
46268
45652
  init_EmptyState();
46269
- init_useTranslate();
46270
45653
  lookStyles10 = {
46271
45654
  "vertical-compact": "gap-1 [&>*]:py-1",
46272
45655
  "vertical-spacious": "",
@@ -46306,7 +45689,7 @@ var init_Timeline = __esm({
46306
45689
  className,
46307
45690
  look = "vertical-spacious"
46308
45691
  }) => {
46309
- const { t } = useTranslate();
45692
+ const { t } = hooks.useTranslate();
46310
45693
  const entityData = Array.isArray(entity) ? entity : [];
46311
45694
  const items = React85__namespace.default.useMemo(() => {
46312
45695
  if (propItems) return propItems;
@@ -47758,7 +47141,7 @@ function UISlotComponent({
47758
47141
  }) {
47759
47142
  const { slots, clear } = context.useUISlots();
47760
47143
  const eventBus = useEventBus();
47761
- const { t } = useTranslate();
47144
+ const { t } = hooks.useTranslate();
47762
47145
  const suspenseConfig = React85.useContext(SuspenseConfigContext);
47763
47146
  const contained = React85.useContext(SlotContainedContext);
47764
47147
  const content = slots[slot];
@@ -47860,7 +47243,7 @@ function CompiledPortal({ slot, className, pattern, sourceTrait, children }) {
47860
47243
  const [portalRoot, setPortalRoot] = React85.useState(null);
47861
47244
  const slotsBus = context.useUISlots();
47862
47245
  const eventBus = useEventBus();
47863
- const { t } = useTranslate();
47246
+ const { t } = hooks.useTranslate();
47864
47247
  React85.useEffect(() => {
47865
47248
  setPortalRoot(getOrCreatePortalRoot());
47866
47249
  }, []);
@@ -48150,7 +47533,7 @@ function SlotContentRenderer({
48150
47533
  }
48151
47534
  }
48152
47535
  const eventBus = useEventBus();
48153
- const { t } = useTranslate();
47536
+ const { t } = hooks.useTranslate();
48154
47537
  const schemaCtx = useEntitySchemaOptional();
48155
47538
  let entityDef;
48156
47539
  if (typeof entityProp === "string" && entityProp.length > 0 && schemaCtx) {
@@ -48338,7 +47721,6 @@ var init_UISlotRenderer = __esm({
48338
47721
  init_Box();
48339
47722
  init_Typography();
48340
47723
  init_useEventBus();
48341
- init_useTranslate();
48342
47724
  init_slot_types();
48343
47725
  init_cn();
48344
47726
  init_ErrorBoundary();