@almadar/ui 5.21.10 → 5.21.12

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,504 +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
- "relationSelect.selectPlaceholder": "Select..."
2435
- };
2436
- }
2437
- });
2438
- function useTranslate() {
2439
- return React85.useContext(I18nContext);
2440
- }
2441
- var _meta, coreMessages, coreLocale, I18nContext;
2442
- var init_useTranslate = __esm({
2443
- "hooks/useTranslate.ts"() {
2444
- "use client";
2445
- init_en();
2446
- ({ $meta: _meta, ...coreMessages } = en_default);
2447
- coreLocale = coreMessages;
2448
- I18nContext = React85.createContext({
2449
- locale: "en",
2450
- direction: "ltr",
2451
- t: (key) => coreLocale[key] ?? key
2452
- // core locale fallback
2453
- });
2454
- I18nContext.displayName = "I18nContext";
2455
- I18nContext.Provider;
2456
- }
2457
- });
2458
1961
  var sizeClasses2, minWidthClasses, lookStyles, Modal;
2459
1962
  var init_Modal = __esm({
2460
1963
  "components/core/molecules/Modal.tsx"() {
@@ -2466,7 +1969,6 @@ var init_Modal = __esm({
2466
1969
  init_Overlay();
2467
1970
  init_cn();
2468
1971
  init_useEventBus();
2469
- init_useTranslate();
2470
1972
  sizeClasses2 = {
2471
1973
  sm: "max-w-md",
2472
1974
  md: "max-w-2xl",
@@ -2504,7 +2006,7 @@ var init_Modal = __esm({
2504
2006
  look = "centered-card"
2505
2007
  }) => {
2506
2008
  const eventBus = useEventBus();
2507
- const { t } = useTranslate();
2009
+ const { t } = hooks.useTranslate();
2508
2010
  const modalRef = React85.useRef(null);
2509
2011
  const previousActiveElement = React85.useRef(null);
2510
2012
  const [dragY, setDragY] = React85.useState(0);
@@ -2688,7 +2190,6 @@ var init_Drawer = __esm({
2688
2190
  init_Overlay();
2689
2191
  init_cn();
2690
2192
  init_useEventBus();
2691
- init_useTranslate();
2692
2193
  sizeWidths = {
2693
2194
  sm: "w-full sm:w-80",
2694
2195
  // 320px
@@ -2714,7 +2215,7 @@ var init_Drawer = __esm({
2714
2215
  closeEvent
2715
2216
  }) => {
2716
2217
  const eventBus = useEventBus();
2717
- const { t } = useTranslate();
2218
+ const { t } = hooks.useTranslate();
2718
2219
  const drawerRef = React85.useRef(null);
2719
2220
  const previousActiveElement = React85.useRef(null);
2720
2221
  React85.useEffect(() => {
@@ -2961,7 +2462,6 @@ var init_Toast = __esm({
2961
2462
  init_Badge();
2962
2463
  init_cn();
2963
2464
  init_useEventBus();
2964
- init_useTranslate();
2965
2465
  variantClasses = {
2966
2466
  success: "bg-card border-[length:var(--border-width)] border-success",
2967
2467
  error: "bg-card border-[length:var(--border-width)] border-error",
@@ -2995,7 +2495,7 @@ var init_Toast = __esm({
2995
2495
  actionEvent
2996
2496
  }) => {
2997
2497
  const eventBus = useEventBus();
2998
- const { t } = useTranslate();
2498
+ const { t } = hooks.useTranslate();
2999
2499
  const handleDismiss = () => {
3000
2500
  if (dismissEvent) eventBus.emit(`UI:${dismissEvent}`, {});
3001
2501
  onDismiss?.();
@@ -3923,7 +3423,6 @@ var init_Input = __esm({
3923
3423
  "components/core/atoms/Input.tsx"() {
3924
3424
  init_cn();
3925
3425
  init_Icon();
3926
- init_useTranslate();
3927
3426
  Input = React85__namespace.default.forwardRef(
3928
3427
  ({
3929
3428
  className,
@@ -3941,7 +3440,7 @@ var init_Input = __esm({
3941
3440
  onChange,
3942
3441
  ...props
3943
3442
  }, ref) => {
3944
- const { t } = useTranslate();
3443
+ const { t } = hooks.useTranslate();
3945
3444
  const type = inputType || htmlType || "text";
3946
3445
  const IconComponent = typeof iconProp === "string" ? resolveIcon(iconProp) : iconProp;
3947
3446
  const resolvedLeftIcon = leftIcon || IconComponent && /* @__PURE__ */ jsxRuntime.jsx(IconComponent, { className: "h-icon-default w-icon-default" });
@@ -4307,7 +3806,6 @@ var init_FilterPill = __esm({
4307
3806
  "components/core/atoms/FilterPill.tsx"() {
4308
3807
  init_cn();
4309
3808
  init_useEventBus();
4310
- init_useTranslate();
4311
3809
  init_Icon();
4312
3810
  variantStyles5 = {
4313
3811
  default: [
@@ -4363,7 +3861,7 @@ var init_FilterPill = __esm({
4363
3861
  ...props
4364
3862
  }, ref) => {
4365
3863
  const eventBus = useEventBus();
4366
- const { t } = useTranslate();
3864
+ const { t } = hooks.useTranslate();
4367
3865
  const payloadLabel = typeof children === "string" || typeof children === "number" ? children : label;
4368
3866
  const handleClick = React85.useCallback(() => {
4369
3867
  onClick?.();
@@ -5519,7 +5017,6 @@ var init_LawReferenceTooltip = __esm({
5519
5017
  init_Typography();
5520
5018
  init_Divider();
5521
5019
  init_cn();
5522
- init_useTranslate();
5523
5020
  positionStyles2 = {
5524
5021
  top: "bottom-full left-1/2 -translate-x-1/2 mb-2",
5525
5022
  bottom: "top-full left-1/2 -translate-x-1/2 mt-2",
@@ -5538,7 +5035,7 @@ var init_LawReferenceTooltip = __esm({
5538
5035
  position = "top",
5539
5036
  className
5540
5037
  }) => {
5541
- const { t } = useTranslate();
5038
+ const { t } = hooks.useTranslate();
5542
5039
  const [isVisible, setIsVisible] = React85__namespace.default.useState(false);
5543
5040
  const timeoutRef = React85__namespace.default.useRef(null);
5544
5041
  const handleMouseEnter = () => {
@@ -8513,7 +8010,6 @@ var init_ErrorState = __esm({
8513
8010
  init_Typography();
8514
8011
  init_Icon();
8515
8012
  init_useEventBus();
8516
- init_useTranslate();
8517
8013
  ErrorState = ({
8518
8014
  title,
8519
8015
  message,
@@ -8523,7 +8019,7 @@ var init_ErrorState = __esm({
8523
8019
  retryEvent
8524
8020
  }) => {
8525
8021
  const eventBus = useEventBus();
8526
- const { t } = useTranslate();
8022
+ const { t } = hooks.useTranslate();
8527
8023
  const handleRetry = () => {
8528
8024
  if (retryEvent) eventBus.emit(`UI:${retryEvent}`, {});
8529
8025
  onRetry?.();
@@ -8556,9 +8052,8 @@ var init_ErrorBoundary = __esm({
8556
8052
  "use client";
8557
8053
  init_cn();
8558
8054
  init_ErrorState();
8559
- init_useTranslate();
8560
8055
  DefaultFallback = ({ error, onRetry }) => {
8561
- const { t } = useTranslate();
8056
+ const { t } = hooks.useTranslate();
8562
8057
  return /* @__PURE__ */ jsxRuntime.jsx(
8563
8058
  ErrorState,
8564
8059
  {
@@ -8685,7 +8180,7 @@ function Skeleton({
8685
8180
  fields,
8686
8181
  className
8687
8182
  }) {
8688
- const { t: _t } = useTranslate();
8183
+ const { t: _t } = hooks.useTranslate();
8689
8184
  switch (variant) {
8690
8185
  case "header":
8691
8186
  return /* @__PURE__ */ jsxRuntime.jsx(HeaderSkeleton, { className });
@@ -8706,7 +8201,6 @@ var init_Skeleton = __esm({
8706
8201
  "components/core/molecules/Skeleton.tsx"() {
8707
8202
  "use client";
8708
8203
  init_cn();
8709
- init_useTranslate();
8710
8204
  init_Box();
8711
8205
  init_Stack();
8712
8206
  init_Stack();
@@ -9739,7 +9233,6 @@ var AboutPageTemplate;
9739
9233
  var init_AboutPageTemplate = __esm({
9740
9234
  "components/marketing/templates/AboutPageTemplate.tsx"() {
9741
9235
  init_cn();
9742
- init_useTranslate();
9743
9236
  init_Stack();
9744
9237
  init_Box();
9745
9238
  init_Typography();
@@ -9755,7 +9248,7 @@ var init_AboutPageTemplate = __esm({
9755
9248
  entity,
9756
9249
  className
9757
9250
  }) => {
9758
- const { t } = useTranslate();
9251
+ const { t } = hooks.useTranslate();
9759
9252
  const resolved = entity && typeof entity === "object" && !Array.isArray(entity) ? entity : void 0;
9760
9253
  if (!resolved) return null;
9761
9254
  return /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "none", className: cn("w-full", className), children: [
@@ -9844,7 +9337,6 @@ var init_Alert = __esm({
9844
9337
  init_Icon();
9845
9338
  init_Typography();
9846
9339
  init_useEventBus();
9847
- init_useTranslate();
9848
9340
  variantBorderClasses = {
9849
9341
  info: "border-info",
9850
9342
  success: "border-success",
@@ -9876,7 +9368,7 @@ var init_Alert = __esm({
9876
9368
  dismissEvent
9877
9369
  }) => {
9878
9370
  const eventBus = useEventBus();
9879
- const { t } = useTranslate();
9371
+ const { t } = hooks.useTranslate();
9880
9372
  const handleDismissCallback = onDismiss || onClose;
9881
9373
  const handleDismiss = () => {
9882
9374
  if (dismissEvent) eventBus.emit(`UI:${dismissEvent}`, {});
@@ -10204,7 +9696,6 @@ var init_Menu = __esm({
10204
9696
  init_Badge();
10205
9697
  init_cn();
10206
9698
  init_useEventBus();
10207
- init_useTranslate();
10208
9699
  Menu = ({
10209
9700
  trigger,
10210
9701
  items,
@@ -10212,7 +9703,7 @@ var init_Menu = __esm({
10212
9703
  className
10213
9704
  }) => {
10214
9705
  const eventBus = useEventBus();
10215
- const { t } = useTranslate();
9706
+ const { t, direction } = hooks.useTranslate();
10216
9707
  const [isOpen, setIsOpen] = React85.useState(false);
10217
9708
  const [activeSubMenu, setActiveSubMenu] = React85.useState(null);
10218
9709
  const [triggerRect, setTriggerRect] = React85.useState(null);
@@ -10266,6 +9757,18 @@ var init_Menu = __esm({
10266
9757
  "bottom-start": "top-full left-0 mt-2",
10267
9758
  "bottom-end": "top-full right-0 mt-2"
10268
9759
  };
9760
+ const rtlMirror = {
9761
+ "top-left": "top-right",
9762
+ "top-right": "top-left",
9763
+ "bottom-left": "bottom-right",
9764
+ "bottom-right": "bottom-left",
9765
+ "top-start": "top-end",
9766
+ "top-end": "top-start",
9767
+ "bottom-start": "bottom-end",
9768
+ "bottom-end": "bottom-start"
9769
+ };
9770
+ const effectivePosition = direction === "rtl" ? rtlMirror[position] ?? position : position;
9771
+ const subMenuSideClass = direction === "rtl" ? "right-full mr-2" : "left-full ml-2";
10269
9772
  const triggerChild = React85__namespace.default.isValidElement(trigger) ? trigger : /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "small", as: "span", children: trigger });
10270
9773
  const triggerElement = React85__namespace.default.cloneElement(
10271
9774
  triggerChild,
@@ -10293,7 +9796,7 @@ var init_Menu = __esm({
10293
9796
  onMouseEnter: () => hasSubMenu && setActiveSubMenu(itemId),
10294
9797
  "data-testid": item.event ? `action-${item.event}` : void 0,
10295
9798
  className: cn(
10296
- "w-full flex items-center justify-between gap-3 px-4 py-2 text-left",
9799
+ "w-full flex items-center justify-between gap-3 px-4 py-2 text-start",
10297
9800
  "text-sm transition-colors",
10298
9801
  "hover:bg-muted",
10299
9802
  "focus:outline-none focus:bg-muted",
@@ -10312,7 +9815,7 @@ var init_Menu = __esm({
10312
9815
  }
10313
9816
  ),
10314
9817
  item.badge !== void 0 && /* @__PURE__ */ jsxRuntime.jsx(Badge, { variant: "default", size: "sm", children: item.badge }),
10315
- hasSubMenu && /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: "chevron-right", size: "sm", className: "flex-shrink-0" })
9818
+ hasSubMenu && /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: direction === "rtl" ? "chevron-left" : "chevron-right", size: "sm", className: "flex-shrink-0" })
10316
9819
  ] })
10317
9820
  },
10318
9821
  itemId
@@ -10332,7 +9835,8 @@ var init_Menu = __esm({
10332
9835
  Box,
10333
9836
  {
10334
9837
  className: cn(
10335
- "absolute left-full top-0 ml-2 z-50",
9838
+ "absolute top-0 z-50",
9839
+ subMenuSideClass,
10336
9840
  menuContainerStyles
10337
9841
  ),
10338
9842
  children: renderMenuItems(item.subMenu)
@@ -10350,12 +9854,12 @@ var init_Menu = __esm({
10350
9854
  className: cn(
10351
9855
  "absolute z-50",
10352
9856
  menuContainerStyles,
10353
- positionClasses3[position],
9857
+ positionClasses3[effectivePosition],
10354
9858
  className
10355
9859
  ),
10356
9860
  style: {
10357
- left: position.includes("left") ? 0 : "auto",
10358
- right: position.includes("right") ? 0 : "auto"
9861
+ left: effectivePosition.includes("left") ? 0 : "auto",
9862
+ right: effectivePosition.includes("right") ? 0 : "auto"
10359
9863
  },
10360
9864
  role: "menu",
10361
9865
  children: renderMenuItems(items)
@@ -10492,7 +9996,6 @@ var init_FloatingActionButton = __esm({
10492
9996
  init_Typography();
10493
9997
  init_cn();
10494
9998
  init_useEventBus();
10495
- init_useTranslate();
10496
9999
  FloatingActionButton = ({
10497
10000
  action,
10498
10001
  actionPayload,
@@ -10505,7 +10008,7 @@ var init_FloatingActionButton = __esm({
10505
10008
  className
10506
10009
  }) => {
10507
10010
  const eventBus = useEventBus();
10508
- const { t } = useTranslate();
10011
+ const { t } = hooks.useTranslate();
10509
10012
  const resolvedAction = icon ? {
10510
10013
  icon,
10511
10014
  onClick: () => {
@@ -11375,7 +10878,7 @@ function ActionTile({
11375
10878
  categoryColors,
11376
10879
  className
11377
10880
  }) {
11378
- useTranslate();
10881
+ hooks.useTranslate();
11379
10882
  const config = SIZE_CONFIG[size];
11380
10883
  const catColor = categoryColors?.[action.category];
11381
10884
  const handleDragStart = React85.useCallback((e) => {
@@ -11414,7 +10917,6 @@ var init_ActionTile = __esm({
11414
10917
  "components/game/organisms/puzzles/sequencer/ActionTile.tsx"() {
11415
10918
  init_atoms2();
11416
10919
  init_cn();
11417
- init_useTranslate();
11418
10920
  DRAG_MIME = "application/x-almadar-slot-item";
11419
10921
  SIZE_CONFIG = {
11420
10922
  sm: { px: "px-2 py-1", icon: "text-lg", text: "text-xs" },
@@ -11433,7 +10935,7 @@ function ActionPalette({
11433
10935
  label,
11434
10936
  className
11435
10937
  }) {
11436
- const { t } = useTranslate();
10938
+ const { t } = hooks.useTranslate();
11437
10939
  return /* @__PURE__ */ jsxRuntime.jsxs(VStack, { className: cn("p-3 rounded-lg bg-card border border-border", className), gap: "sm", children: [
11438
10940
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body2", className: "text-muted-foreground font-medium", children: label ?? t("sequencer.actions") }),
11439
10941
  /* @__PURE__ */ jsxRuntime.jsx(HStack, { className: "flex-wrap", gap: "sm", children: (actions ?? []).map((action) => /* @__PURE__ */ jsxRuntime.jsx(
@@ -11452,7 +10954,6 @@ var init_ActionPalette = __esm({
11452
10954
  "components/game/organisms/puzzles/sequencer/ActionPalette.tsx"() {
11453
10955
  init_atoms2();
11454
10956
  init_cn();
11455
- init_useTranslate();
11456
10957
  init_ActionTile();
11457
10958
  ActionPalette.displayName = "ActionPalette";
11458
10959
  }
@@ -11462,7 +10963,6 @@ var init_AuthLayout = __esm({
11462
10963
  "components/core/templates/AuthLayout.tsx"() {
11463
10964
  "use client";
11464
10965
  init_cn();
11465
- init_useTranslate();
11466
10966
  init_Box();
11467
10967
  init_Stack();
11468
10968
  init_Typography();
@@ -11473,7 +10973,7 @@ var init_AuthLayout = __esm({
11473
10973
  showBranding = true,
11474
10974
  brandingContent
11475
10975
  }) => {
11476
- const { t } = useTranslate();
10976
+ const { t } = hooks.useTranslate();
11477
10977
  return /* @__PURE__ */ jsxRuntime.jsxs(Box, { className: "min-h-screen flex", children: [
11478
10978
  showBranding && /* @__PURE__ */ jsxRuntime.jsxs(
11479
10979
  VStack,
@@ -11607,13 +11107,12 @@ var init_LoadingState = __esm({
11607
11107
  init_atoms2();
11608
11108
  init_Stack();
11609
11109
  init_Typography();
11610
- init_useTranslate();
11611
11110
  LoadingState = ({
11612
11111
  title,
11613
11112
  message,
11614
11113
  className
11615
11114
  }) => {
11616
- const { t } = useTranslate();
11115
+ const { t } = hooks.useTranslate();
11617
11116
  const displayMessage = message ?? t("common.loading");
11618
11117
  return /* @__PURE__ */ jsxRuntime.jsxs(
11619
11118
  VStack,
@@ -12083,7 +11582,7 @@ function IsometricCanvas({
12083
11582
  const unitsProp = Array.isArray(_unitsPropRaw) ? _unitsPropRaw : [];
12084
11583
  const featuresProp = Array.isArray(_featuresPropRaw) ? _featuresPropRaw : [];
12085
11584
  const eventBus = useEventBus();
12086
- const { t } = useTranslate();
11585
+ const { t } = hooks.useTranslate();
12087
11586
  const canvasRef = React85.useRef(null);
12088
11587
  const containerRef = React85.useRef(null);
12089
11588
  const minimapRef = React85.useRef(null);
@@ -12779,7 +12278,6 @@ var init_IsometricCanvas = __esm({
12779
12278
  "use client";
12780
12279
  init_cn();
12781
12280
  init_useEventBus();
12782
- init_useTranslate();
12783
12281
  init_Box();
12784
12282
  init_Stack();
12785
12283
  init_Icon();
@@ -12839,7 +12337,7 @@ function BattleBoard({
12839
12337
  const currentTurn = entity.turn;
12840
12338
  const gameResult = entity.gameResult;
12841
12339
  const eventBus = useEventBus();
12842
- const { t } = useTranslate();
12340
+ const { t } = hooks.useTranslate();
12843
12341
  const [hoveredTile, setHoveredTile] = React85.useState(null);
12844
12342
  const [isShaking, setIsShaking] = React85.useState(false);
12845
12343
  const selectedUnit = React85.useMemo(
@@ -13143,7 +12641,6 @@ var init_BattleBoard = __esm({
13143
12641
  "use client";
13144
12642
  init_cn();
13145
12643
  init_useEventBus();
13146
- init_useTranslate();
13147
12644
  init_Box();
13148
12645
  init_Button();
13149
12646
  init_Typography();
@@ -13903,7 +13400,6 @@ var log7, SWIM_GUTTER, CENTER_W, BehaviorView;
13903
13400
  var init_BehaviorView = __esm({
13904
13401
  "components/avl/molecules/BehaviorView.tsx"() {
13905
13402
  "use client";
13906
- init_useTranslate();
13907
13403
  init_AvlState();
13908
13404
  init_AvlTransitionLane();
13909
13405
  init_AvlSwimLane();
@@ -13913,7 +13409,7 @@ var init_BehaviorView = __esm({
13913
13409
  SWIM_GUTTER = 120;
13914
13410
  CENTER_W = 360;
13915
13411
  BehaviorView = ({ data }) => {
13916
- const { t } = useTranslate();
13412
+ const { t } = hooks.useTranslate();
13917
13413
  const [layout, setLayout] = React85.useState(null);
13918
13414
  const traitName = data.traits[0]?.name;
13919
13415
  const traitData = traitName ? data.traitDetails[traitName] : void 0;
@@ -14018,14 +13514,13 @@ var MIN_DIAGRAM_WIDTH, ScaledDiagram;
14018
13514
  var init_ScaledDiagram = __esm({
14019
13515
  "components/core/molecules/ScaledDiagram.tsx"() {
14020
13516
  init_Box();
14021
- init_useTranslate();
14022
13517
  init_cn();
14023
13518
  MIN_DIAGRAM_WIDTH = 200;
14024
13519
  ScaledDiagram = ({
14025
13520
  children,
14026
13521
  className
14027
13522
  }) => {
14028
- const { t: _t } = useTranslate();
13523
+ const { t: _t } = hooks.useTranslate();
14029
13524
  const wrapperRef = React85.useRef(null);
14030
13525
  const contentRef = React85.useRef(null);
14031
13526
  const [layout, setLayout] = React85.useState(null);
@@ -14161,7 +13656,6 @@ var init_CodeBlock = __esm({
14161
13656
  init_Textarea();
14162
13657
  init_Icon();
14163
13658
  init_useEventBus();
14164
- init_useTranslate();
14165
13659
  SyntaxHighlighter__default.default.registerLanguage("json", langJson__default.default);
14166
13660
  SyntaxHighlighter__default.default.registerLanguage("javascript", langJavascript__default.default);
14167
13661
  SyntaxHighlighter__default.default.registerLanguage("js", langJavascript__default.default);
@@ -14250,7 +13744,7 @@ var init_CodeBlock = __esm({
14250
13744
  const isLolo = language === "lolo";
14251
13745
  const activeStyle = isOrb ? orbStyle : isLolo ? loloStyle : dark__default.default;
14252
13746
  const eventBus = useEventBus();
14253
- const { t } = useTranslate();
13747
+ const { t } = hooks.useTranslate();
14254
13748
  const scrollRef = React85.useRef(null);
14255
13749
  const codeRef = React85.useRef(null);
14256
13750
  const savedScrollLeftRef = React85.useRef(0);
@@ -14668,11 +14162,10 @@ var init_MarkdownContent = __esm({
14668
14162
  init_katex_min();
14669
14163
  init_Box();
14670
14164
  init_CodeBlock();
14671
- init_useTranslate();
14672
14165
  init_cn();
14673
14166
  MarkdownContent = React85__namespace.default.memo(
14674
14167
  ({ content, direction, className }) => {
14675
- const { t: _t } = useTranslate();
14168
+ const { t: _t } = hooks.useTranslate();
14676
14169
  const safeContent = typeof content === "string" ? content : String(content ?? "");
14677
14170
  return /* @__PURE__ */ jsxRuntime.jsx(
14678
14171
  Box,
@@ -14898,7 +14391,7 @@ function Card2({
14898
14391
  longPressPayload
14899
14392
  }) {
14900
14393
  const eventBus = useEventBus();
14901
- const { t } = useTranslate();
14394
+ const { t } = hooks.useTranslate();
14902
14395
  const isClickable = !!onClick || !!action;
14903
14396
  const handleLongPress = React85.useCallback(() => {
14904
14397
  if (longPressEvent) {
@@ -14973,7 +14466,6 @@ var init_Card2 = __esm({
14973
14466
  "components/core/molecules/Card.tsx"() {
14974
14467
  "use client";
14975
14468
  init_useEventBus();
14976
- init_useTranslate();
14977
14469
  init_useLongPress();
14978
14470
  Card2.displayName = "Card";
14979
14471
  }
@@ -14987,14 +14479,13 @@ var init_QuizBlock = __esm({
14987
14479
  init_Button();
14988
14480
  init_Icon();
14989
14481
  init_Box();
14990
- init_useTranslate();
14991
14482
  init_cn();
14992
14483
  QuizBlock = ({
14993
14484
  question,
14994
14485
  answer,
14995
14486
  className
14996
14487
  }) => {
14997
- const { t } = useTranslate();
14488
+ const { t } = hooks.useTranslate();
14998
14489
  const [revealed, setRevealed] = React85.useState(false);
14999
14490
  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: [
15000
14491
  /* @__PURE__ */ jsxRuntime.jsxs(HStack, { gap: "sm", align: "start", children: [
@@ -15030,11 +14521,10 @@ var init_StateMachineView = __esm({
15030
14521
  init_Typography();
15031
14522
  init_Button();
15032
14523
  init_Icon();
15033
- init_useTranslate();
15034
14524
  init_useEventBus();
15035
14525
  init_cn();
15036
14526
  StateNode = ({ state, config }) => {
15037
- const { t } = useTranslate();
14527
+ const { t } = hooks.useTranslate();
15038
14528
  const size = state.radius * 2;
15039
14529
  let borderColor = config.colors.nodeBorder;
15040
14530
  let borderWidth = 2;
@@ -15141,7 +14631,7 @@ var init_StateMachineView = __esm({
15141
14631
  );
15142
14632
  };
15143
14633
  TransitionBundleArrow = ({ bundle, states, bundleIndex, config, onClick, onHover }) => {
15144
- const { t } = useTranslate();
14634
+ const { t } = hooks.useTranslate();
15145
14635
  const groupRef = React85.useRef(null);
15146
14636
  const fromState = states.find((s) => s.name === bundle.from);
15147
14637
  const toState = states.find((s) => s.name === bundle.to);
@@ -15391,7 +14881,7 @@ var init_StateMachineView = __esm({
15391
14881
  );
15392
14882
  };
15393
14883
  BundleTooltip = ({ tooltip, config }) => {
15394
- const { t } = useTranslate();
14884
+ const { t } = hooks.useTranslate();
15395
14885
  if (!tooltip.visible || !tooltip.bundle) return null;
15396
14886
  const { bundle } = tooltip;
15397
14887
  const isSingle = bundle.labels.length === 1;
@@ -15543,7 +15033,7 @@ var init_StateMachineView = __esm({
15543
15033
  );
15544
15034
  };
15545
15035
  EntityBox = ({ entity, config }) => {
15546
- const { t } = useTranslate();
15036
+ const { t } = hooks.useTranslate();
15547
15037
  return /* @__PURE__ */ jsxRuntime.jsxs(
15548
15038
  VStack,
15549
15039
  {
@@ -15584,7 +15074,7 @@ var init_StateMachineView = __esm({
15584
15074
  );
15585
15075
  };
15586
15076
  OutputsBox = ({ outputs, config }) => {
15587
- const { t } = useTranslate();
15077
+ const { t } = hooks.useTranslate();
15588
15078
  return /* @__PURE__ */ jsxRuntime.jsxs(
15589
15079
  VStack,
15590
15080
  {
@@ -15626,7 +15116,7 @@ var init_StateMachineView = __esm({
15626
15116
  );
15627
15117
  };
15628
15118
  Legend = ({ config, y }) => {
15629
- const { t } = useTranslate();
15119
+ const { t } = hooks.useTranslate();
15630
15120
  const items = [
15631
15121
  { key: "initial", label: t("stateMachine.legend.initial"), color: config.colors.initialNode, isMultiEvent: false },
15632
15122
  { key: "final", label: t("stateMachine.legend.final"), color: config.colors.finalNode, isMultiEvent: false },
@@ -15670,7 +15160,7 @@ var init_StateMachineView = __esm({
15670
15160
  isLoading: _isLoading,
15671
15161
  error: _error
15672
15162
  }) => {
15673
- const { t } = useTranslate();
15163
+ const { t } = hooks.useTranslate();
15674
15164
  const [tooltip, setTooltip] = React85.useState({
15675
15165
  visible: false,
15676
15166
  pinned: false,
@@ -16397,7 +15887,6 @@ var init_JazariStateMachine = __esm({
16397
15887
  init_StateMachineView();
16398
15888
  init_visualizer();
16399
15889
  init_svg_paths();
16400
- init_useTranslate();
16401
15890
  init_cn();
16402
15891
  JAZARI_VISUALIZER_CONFIG = {
16403
15892
  ...DEFAULT_CONFIG,
@@ -16433,7 +15922,7 @@ var init_JazariStateMachine = __esm({
16433
15922
  isLoading = false,
16434
15923
  error = null
16435
15924
  }) => {
16436
- const { t } = useTranslate();
15925
+ const { t } = hooks.useTranslate();
16437
15926
  const resolvedTrait = React85.useMemo(
16438
15927
  () => extractTrait(schema, traitProp, traitIndex),
16439
15928
  [schema, traitProp, traitIndex]
@@ -16553,7 +16042,6 @@ var init_ContentRenderer = __esm({
16553
16042
  init_ScaledDiagram();
16554
16043
  init_JazariStateMachine();
16555
16044
  init_parseContentSegments();
16556
- init_useTranslate();
16557
16045
  init_cn();
16558
16046
  ContentRenderer = ({
16559
16047
  content,
@@ -16561,7 +16049,7 @@ var init_ContentRenderer = __esm({
16561
16049
  direction,
16562
16050
  className
16563
16051
  }) => {
16564
- const { t: _t } = useTranslate();
16052
+ const { t: _t } = hooks.useTranslate();
16565
16053
  const segments = React85.useMemo(
16566
16054
  () => segmentsProp ?? parseContentSegments(content),
16567
16055
  [segmentsProp, content]
@@ -16647,14 +16135,13 @@ var init_BookChapterView = __esm({
16647
16135
  init_ScaledDiagram();
16648
16136
  init_ContentRenderer();
16649
16137
  init_JazariStateMachine();
16650
- init_useTranslate();
16651
16138
  init_cn();
16652
16139
  BookChapterView = ({
16653
16140
  chapter,
16654
16141
  direction,
16655
16142
  className
16656
16143
  }) => {
16657
- const { t: _t } = useTranslate();
16144
+ const { t: _t } = hooks.useTranslate();
16658
16145
  return /* @__PURE__ */ jsxRuntime.jsxs(
16659
16146
  VStack,
16660
16147
  {
@@ -16686,7 +16173,6 @@ var init_BookCoverPage = __esm({
16686
16173
  init_Typography();
16687
16174
  init_Button();
16688
16175
  init_Box();
16689
- init_useTranslate();
16690
16176
  init_cn();
16691
16177
  BookCoverPage = ({
16692
16178
  title,
@@ -16696,7 +16182,7 @@ var init_BookCoverPage = __esm({
16696
16182
  direction,
16697
16183
  className
16698
16184
  }) => {
16699
- const { t } = useTranslate();
16185
+ const { t } = hooks.useTranslate();
16700
16186
  return /* @__PURE__ */ jsxRuntime.jsxs(
16701
16187
  VStack,
16702
16188
  {
@@ -16766,7 +16252,6 @@ var init_BookNavBar = __esm({
16766
16252
  init_Typography();
16767
16253
  init_ProgressBar();
16768
16254
  init_Box();
16769
- init_useTranslate();
16770
16255
  init_cn();
16771
16256
  BookNavBar = ({
16772
16257
  currentPage,
@@ -16775,7 +16260,7 @@ var init_BookNavBar = __esm({
16775
16260
  direction,
16776
16261
  className
16777
16262
  }) => {
16778
- const { t } = useTranslate();
16263
+ const { t } = hooks.useTranslate();
16779
16264
  const isRtl = direction === "rtl";
16780
16265
  const progress = totalPages > 1 ? currentPage / (totalPages - 1) * 100 : 0;
16781
16266
  const PrevIcon = isRtl ? LucideIcons2.ChevronRight : LucideIcons2.ChevronLeft;
@@ -16868,7 +16353,6 @@ var init_BookTableOfContents = __esm({
16868
16353
  init_Button();
16869
16354
  init_Box();
16870
16355
  init_Badge();
16871
- init_useTranslate();
16872
16356
  init_cn();
16873
16357
  BookTableOfContents = ({
16874
16358
  parts,
@@ -16876,7 +16360,7 @@ var init_BookTableOfContents = __esm({
16876
16360
  direction,
16877
16361
  className
16878
16362
  }) => {
16879
- const { t } = useTranslate();
16363
+ const { t } = hooks.useTranslate();
16880
16364
  return /* @__PURE__ */ jsxRuntime.jsxs(
16881
16365
  VStack,
16882
16366
  {
@@ -16928,7 +16412,6 @@ var init_EmptyState = __esm({
16928
16412
  init_Stack();
16929
16413
  init_Typography();
16930
16414
  init_useEventBus();
16931
- init_useTranslate();
16932
16415
  ICON_NAME_ALIASES = {
16933
16416
  check: "check-circle",
16934
16417
  error: "x-circle",
@@ -16954,7 +16437,7 @@ var init_EmptyState = __esm({
16954
16437
  look = "icon-only"
16955
16438
  }) => {
16956
16439
  const eventBus = useEventBus();
16957
- const { t } = useTranslate();
16440
+ const { t } = hooks.useTranslate();
16958
16441
  const handleAction = () => {
16959
16442
  if (actionEvent) eventBus.emit(`UI:${actionEvent}`, {});
16960
16443
  onAction?.();
@@ -17099,7 +16582,6 @@ var init_BookViewer = __esm({
17099
16582
  init_Box();
17100
16583
  init_Stack();
17101
16584
  init_useEventBus();
17102
- init_useTranslate();
17103
16585
  init_cn();
17104
16586
  init_BookCoverPage();
17105
16587
  init_BookTableOfContents();
@@ -17125,7 +16607,7 @@ var init_BookViewer = __esm({
17125
16607
  className
17126
16608
  }) => {
17127
16609
  const eventBus = useEventBus();
17128
- const { t } = useTranslate();
16610
+ const { t } = hooks.useTranslate();
17129
16611
  const [currentPage, setCurrentPage] = React85.useState(initialPage);
17130
16612
  const resolvedFieldMap = React85.useMemo(() => resolveFieldMap(fieldMap), [fieldMap]);
17131
16613
  const book = React85.useMemo(() => {
@@ -17531,7 +17013,6 @@ var init_BranchingLogicBuilder = __esm({
17531
17013
  init_FilterPill();
17532
17014
  init_Box();
17533
17015
  init_useEventBus();
17534
- init_useTranslate();
17535
17016
  init_cn();
17536
17017
  END_OF_SURVEY = "end-of-survey";
17537
17018
  RuleRow = ({
@@ -17542,7 +17023,7 @@ var init_BranchingLogicBuilder = __esm({
17542
17023
  onChange,
17543
17024
  onDelete
17544
17025
  }) => {
17545
- const { t } = useTranslate();
17026
+ const { t } = hooks.useTranslate();
17546
17027
  const operatorOptions = React85.useMemo(
17547
17028
  () => [
17548
17029
  { value: "equals", label: t("branchingLogic.operatorEquals") },
@@ -17717,7 +17198,7 @@ var init_BranchingLogicBuilder = __esm({
17717
17198
  NODE_GAP_Y = 80;
17718
17199
  PADDING = 32;
17719
17200
  LogicGraph = ({ questions, rules }) => {
17720
- const { t } = useTranslate();
17201
+ const { t } = hooks.useTranslate();
17721
17202
  const endOfSurveyLabel = t("branchingLogic.endOfSurvey");
17722
17203
  const layout = React85.useMemo(() => {
17723
17204
  const items = [
@@ -17849,7 +17330,7 @@ var init_BranchingLogicBuilder = __esm({
17849
17330
  readOnly = false,
17850
17331
  className
17851
17332
  }) => {
17852
- const { t } = useTranslate();
17333
+ const { t } = hooks.useTranslate();
17853
17334
  const eventBus = useEventBus();
17854
17335
  const questions = Array.isArray(questionsProp) ? questionsProp : [];
17855
17336
  const rulesInitial = Array.isArray(rulesProp) ? rulesProp : [];
@@ -17984,7 +17465,6 @@ var init_Breadcrumb = __esm({
17984
17465
  init_Typography();
17985
17466
  init_cn();
17986
17467
  init_useEventBus();
17987
- init_useTranslate();
17988
17468
  Breadcrumb = ({
17989
17469
  items,
17990
17470
  separator = "chevron-right",
@@ -17992,7 +17472,7 @@ var init_Breadcrumb = __esm({
17992
17472
  className
17993
17473
  }) => {
17994
17474
  const eventBus = useEventBus();
17995
- const { t } = useTranslate();
17475
+ const { t } = hooks.useTranslate();
17996
17476
  const displayItems = maxItems && items.length > maxItems ? [
17997
17477
  ...items.slice(0, 1),
17998
17478
  { label: "...", isCurrent: false },
@@ -18071,7 +17551,7 @@ function BuilderBoard({
18071
17551
  className
18072
17552
  }) {
18073
17553
  const { emit } = useEventBus();
18074
- const { t } = useTranslate();
17554
+ const { t } = hooks.useTranslate();
18075
17555
  const resolved = Array.isArray(entity) ? entity[0] : entity;
18076
17556
  const [placements, setPlacements] = React85.useState({});
18077
17557
  const [headerError, setHeaderError] = React85.useState(false);
@@ -18220,7 +17700,6 @@ var init_BuilderBoard = __esm({
18220
17700
  "components/game/organisms/puzzles/builder/BuilderBoard.tsx"() {
18221
17701
  init_atoms2();
18222
17702
  init_useEventBus();
18223
- init_useTranslate();
18224
17703
  BuilderBoard.displayName = "BuilderBoard";
18225
17704
  }
18226
17705
  });
@@ -18488,7 +17967,7 @@ function CalendarGrid({
18488
17967
  }) {
18489
17968
  const evs = Array.isArray(events2) ? events2 : events2 ? [events2] : [];
18490
17969
  const eventBus = useEventBus();
18491
- const { t } = useTranslate();
17970
+ const { t } = hooks.useTranslate();
18492
17971
  const longPressTimer = React85.useRef(null);
18493
17972
  const resolvedWeekStart = React85.useMemo(
18494
17973
  () => weekStart ? getStartOfWeek(weekStart) : getStartOfWeek(/* @__PURE__ */ new Date()),
@@ -18698,7 +18177,6 @@ var init_CalendarGrid = __esm({
18698
18177
  init_TimeSlotCell();
18699
18178
  init_useEventBus();
18700
18179
  init_useSwipeGesture();
18701
- init_useTranslate();
18702
18180
  SHORT_DATE = { month: "short", day: "numeric" };
18703
18181
  CalendarGrid.displayName = "CalendarGrid";
18704
18182
  }
@@ -20007,7 +19485,6 @@ var init_Pagination = __esm({
20007
19485
  init_Stack();
20008
19486
  init_cn();
20009
19487
  init_useEventBus();
20010
- init_useTranslate();
20011
19488
  Pagination = ({
20012
19489
  currentPage,
20013
19490
  totalPages,
@@ -20026,7 +19503,7 @@ var init_Pagination = __esm({
20026
19503
  pageSizeChangeEvent
20027
19504
  }) => {
20028
19505
  const eventBus = useEventBus();
20029
- const { t } = useTranslate();
19506
+ const { t } = hooks.useTranslate();
20030
19507
  const [jumpToPage, setJumpToPage] = React85.useState("");
20031
19508
  const handlePageChange = (page) => {
20032
19509
  if (pageChangeEvent) eventBus.emit(`UI:${pageChangeEvent}`, { page });
@@ -20211,7 +19688,6 @@ var init_CardGrid = __esm({
20211
19688
  init_cn();
20212
19689
  init_getNestedValue();
20213
19690
  init_useEventBus();
20214
- init_useTranslate();
20215
19691
  init_atoms2();
20216
19692
  init_Badge();
20217
19693
  init_Box();
@@ -20255,7 +19731,7 @@ var init_CardGrid = __esm({
20255
19731
  imageField
20256
19732
  }) => {
20257
19733
  const eventBus = useEventBus();
20258
- const { t } = useTranslate();
19734
+ const { t } = hooks.useTranslate();
20259
19735
  const effectiveFieldNames = normalizeFields(fields).length > 0 ? normalizeFields(fields) : fieldNames ?? normalizeFields(columns);
20260
19736
  const gridTemplateColumns = `repeat(auto-fit, minmax(min(${minCardWidth}px, 100%), 1fr))`;
20261
19737
  const normalizedData = Array.isArray(entity) ? entity : entity ? [entity] : [];
@@ -20440,7 +19916,6 @@ var init_Carousel = __esm({
20440
19916
  init_cn();
20441
19917
  init_useEventBus();
20442
19918
  init_useSwipeGesture();
20443
- init_useTranslate();
20444
19919
  init_Box();
20445
19920
  init_Stack();
20446
19921
  init_Button();
@@ -20461,7 +19936,7 @@ var init_Carousel = __esm({
20461
19936
  const scrollRef = React85.useRef(null);
20462
19937
  const autoPlayRef = React85.useRef(null);
20463
19938
  const eventBus = useSafeEventBus3();
20464
- const { t } = useTranslate();
19939
+ const { t } = hooks.useTranslate();
20465
19940
  const safeItems = items ?? [];
20466
19941
  const totalSlides = safeItems.length;
20467
19942
  const emitSlideChange = React85.useCallback(
@@ -20677,7 +20152,6 @@ var init_CaseStudyOrganism = __esm({
20677
20152
  "use client";
20678
20153
  init_cn();
20679
20154
  init_useEventBus();
20680
- init_useTranslate();
20681
20155
  init_Stack();
20682
20156
  init_Typography();
20683
20157
  init_SimpleGrid();
@@ -20693,7 +20167,7 @@ var init_CaseStudyOrganism = __esm({
20693
20167
  subtitle
20694
20168
  }) => {
20695
20169
  useEventBus();
20696
- const { t } = useTranslate();
20170
+ const { t } = hooks.useTranslate();
20697
20171
  const items = React85.useMemo(
20698
20172
  () => Array.isArray(entity) ? entity : entity && typeof entity === "object" ? [entity] : [],
20699
20173
  [entity]
@@ -20882,7 +20356,6 @@ var init_Chart = __esm({
20882
20356
  init_ErrorState();
20883
20357
  init_EmptyState();
20884
20358
  init_useEventBus();
20885
- init_useTranslate();
20886
20359
  CHART_COLORS = [
20887
20360
  "var(--color-primary)",
20888
20361
  "var(--color-success)",
@@ -21455,7 +20928,7 @@ var init_Chart = __esm({
21455
20928
  }) => {
21456
20929
  const resolvedLook = look ?? (chartType ? LOOK_FROM_CHART_TYPE[chartType] : "bar-vertical");
21457
20930
  const eventBus = useEventBus();
21458
- const { t } = useTranslate();
20931
+ const { t } = hooks.useTranslate();
21459
20932
  const handleAction = React85.useCallback(
21460
20933
  (action) => {
21461
20934
  if (action.event) {
@@ -21652,7 +21125,7 @@ function ClassifierBoard({
21652
21125
  className
21653
21126
  }) {
21654
21127
  const { emit } = useEventBus();
21655
- const { t } = useTranslate();
21128
+ const { t } = hooks.useTranslate();
21656
21129
  const resolved = Array.isArray(entity) ? entity[0] : entity;
21657
21130
  const [assignments, setAssignments] = React85.useState({});
21658
21131
  const [headerError, setHeaderError] = React85.useState(false);
@@ -21790,7 +21263,6 @@ var init_ClassifierBoard = __esm({
21790
21263
  "components/game/organisms/puzzles/classifier/ClassifierBoard.tsx"() {
21791
21264
  init_atoms2();
21792
21265
  init_useEventBus();
21793
- init_useTranslate();
21794
21266
  ClassifierBoard.displayName = "ClassifierBoard";
21795
21267
  }
21796
21268
  });
@@ -21800,7 +21272,7 @@ function CodeView({
21800
21272
  defaultExpanded = false,
21801
21273
  className
21802
21274
  }) {
21803
- const { t } = useTranslate();
21275
+ const { t } = hooks.useTranslate();
21804
21276
  const [expanded, setExpanded] = React85.useState(defaultExpanded);
21805
21277
  const jsonString = JSON.stringify(data, null, 2);
21806
21278
  return /* @__PURE__ */ jsxRuntime.jsxs(VStack, { className: cn("rounded-lg border border-border overflow-hidden", className), gap: "none", children: [
@@ -21822,7 +21294,6 @@ var init_CodeView = __esm({
21822
21294
  "components/game/organisms/puzzles/state-architect/CodeView.tsx"() {
21823
21295
  init_atoms2();
21824
21296
  init_cn();
21825
- init_useTranslate();
21826
21297
  CodeView.displayName = "CodeView";
21827
21298
  }
21828
21299
  });
@@ -21836,7 +21307,6 @@ var init_Tabs = __esm({
21836
21307
  init_Box();
21837
21308
  init_cn();
21838
21309
  init_useEventBus();
21839
- init_useTranslate();
21840
21310
  Tabs = ({
21841
21311
  items,
21842
21312
  tabs,
@@ -21854,7 +21324,7 @@ var init_Tabs = __esm({
21854
21324
  id: id || value || ""
21855
21325
  }));
21856
21326
  const eventBus = useEventBus();
21857
- const { t } = useTranslate();
21327
+ const { t } = hooks.useTranslate();
21858
21328
  const initialActive = safeItems.find((item) => item.active)?.id;
21859
21329
  const [internalActiveTab, setInternalActiveTab] = React85.useState(
21860
21330
  defaultActiveTab || initialActive || safeItems[0]?.id || ""
@@ -22013,7 +21483,6 @@ var init_CodeViewer = __esm({
22013
21483
  init_EmptyState();
22014
21484
  init_Tabs();
22015
21485
  init_useEventBus();
22016
- init_useTranslate();
22017
21486
  DIFF_STYLES = {
22018
21487
  add: {
22019
21488
  bg: "bg-success/10",
@@ -22051,7 +21520,7 @@ var init_CodeViewer = __esm({
22051
21520
  className
22052
21521
  }) => {
22053
21522
  const eventBus = useEventBus();
22054
- const { t } = useTranslate();
21523
+ const { t } = hooks.useTranslate();
22055
21524
  const [copied, setCopied] = React85.useState(false);
22056
21525
  const [wrap, setWrap] = React85.useState(wordWrap);
22057
21526
  const [activeFileIndex, setActiveFileIndex] = React85.useState(0);
@@ -22385,7 +21854,6 @@ var init_ConfirmDialog = __esm({
22385
21854
  init_Box();
22386
21855
  init_Stack();
22387
21856
  init_cn();
22388
- init_useTranslate();
22389
21857
  variantConfig = {
22390
21858
  danger: {
22391
21859
  icon: LucideIcons2.Trash2,
@@ -22433,7 +21901,7 @@ var init_ConfirmDialog = __esm({
22433
21901
  className
22434
21902
  }) => {
22435
21903
  const config = variantConfig[variant];
22436
- const { t } = useTranslate();
21904
+ const { t } = hooks.useTranslate();
22437
21905
  const resolvedMessage = message ?? description ?? "";
22438
21906
  const resolvedConfirmText = confirmText ?? confirmLabel ?? t("dialog.confirm");
22439
21907
  const resolvedCancelText = cancelText ?? cancelLabel ?? t("dialog.cancel");
@@ -22867,7 +22335,6 @@ var init_DashboardGrid = __esm({
22867
22335
  "components/core/organisms/layout/DashboardGrid.tsx"() {
22868
22336
  init_cn();
22869
22337
  init_Box();
22870
- init_useTranslate();
22871
22338
  gapStyles5 = {
22872
22339
  sm: "gap-2",
22873
22340
  md: "gap-4",
@@ -22894,7 +22361,7 @@ var init_DashboardGrid = __esm({
22894
22361
  cells,
22895
22362
  className
22896
22363
  }) => {
22897
- const { t: _t } = useTranslate();
22364
+ const { t: _t } = hooks.useTranslate();
22898
22365
  return /* @__PURE__ */ jsxRuntime.jsx(
22899
22366
  Box,
22900
22367
  {
@@ -22961,7 +22428,6 @@ var init_DashboardLayout = __esm({
22961
22428
  init_Icon();
22962
22429
  init_useAuthContext();
22963
22430
  init_useEventBus();
22964
- init_useTranslate();
22965
22431
  init_CurrentPagePathContext();
22966
22432
  DashboardLayout = ({
22967
22433
  appName = "{{APP_TITLE}}",
@@ -23020,7 +22486,7 @@ var init_DashboardLayout = __esm({
23020
22486
  const activePath = currentPath ?? ctxPagePath ?? location.pathname;
23021
22487
  const { signOut: authSignOut } = useAuthContext();
23022
22488
  const user = userProp || (null);
23023
- const { t } = useTranslate();
22489
+ const { t } = hooks.useTranslate();
23024
22490
  const handleSignOut = onSignOutProp || authSignOut;
23025
22491
  const showSidebar = layoutMode === "sidebar";
23026
22492
  const showHeader = layoutMode !== "minimal";
@@ -23991,7 +23457,7 @@ function DataGrid({
23991
23457
  look = "dense"
23992
23458
  }) {
23993
23459
  const eventBus = useEventBus();
23994
- const { t } = useTranslate();
23460
+ const { t } = hooks.useTranslate();
23995
23461
  const [selectedIds, setSelectedIds] = React85.useState(/* @__PURE__ */ new Set());
23996
23462
  const [visibleCount, setVisibleCount] = React85.useState(pageSize || Infinity);
23997
23463
  const fieldDefs = fields ?? columns ?? [];
@@ -24306,7 +23772,6 @@ var init_DataGrid = __esm({
24306
23772
  init_cn();
24307
23773
  init_getNestedValue();
24308
23774
  init_useEventBus();
24309
- init_useTranslate();
24310
23775
  init_Box();
24311
23776
  init_Stack();
24312
23777
  init_Typography();
@@ -24431,7 +23896,7 @@ function DataList({
24431
23896
  look = "dense"
24432
23897
  }) {
24433
23898
  const eventBus = useEventBus();
24434
- const { t } = useTranslate();
23899
+ const { t } = hooks.useTranslate();
24435
23900
  const [visibleCount, setVisibleCount] = React85__namespace.default.useState(pageSize || Infinity);
24436
23901
  const fieldDefs = fields ?? columns ?? [];
24437
23902
  const allDataRaw = Array.isArray(entity) ? entity : entity ? [entity] : [];
@@ -24745,7 +24210,6 @@ var init_DataList = __esm({
24745
24210
  init_cn();
24746
24211
  init_getNestedValue();
24747
24212
  init_useEventBus();
24748
- init_useTranslate();
24749
24213
  init_Box();
24750
24214
  init_Stack();
24751
24215
  init_Typography();
@@ -24800,7 +24264,6 @@ var init_FileTree = __esm({
24800
24264
  init_Box();
24801
24265
  init_Typography();
24802
24266
  init_Icon();
24803
- init_useTranslate();
24804
24267
  TreeNodeItem = ({
24805
24268
  node,
24806
24269
  depth,
@@ -24886,7 +24349,7 @@ var init_FileTree = __esm({
24886
24349
  className,
24887
24350
  indent = 16
24888
24351
  }) => {
24889
- const { t } = useTranslate();
24352
+ const { t } = hooks.useTranslate();
24890
24353
  if (tree.length === 0) {
24891
24354
  return /* @__PURE__ */ jsxRuntime.jsx(Box, { className: `p-4 ${className ?? ""}`, children: /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "caption", color: "muted", children: t("fileTree.noFiles") }) });
24892
24355
  }
@@ -25007,7 +24470,6 @@ var init_FilterGroup = __esm({
25007
24470
  init_Icon();
25008
24471
  init_useEventBus();
25009
24472
  init_useQuerySingleton();
25010
- init_useTranslate();
25011
24473
  resolveFilterType = (filter) => filter.filterType ?? filter.type;
25012
24474
  lookStyles6 = {
25013
24475
  toolbar: "",
@@ -25028,7 +24490,7 @@ var init_FilterGroup = __esm({
25028
24490
  isLoading,
25029
24491
  look = "toolbar"
25030
24492
  }) => {
25031
- const { t } = useTranslate();
24493
+ const { t } = hooks.useTranslate();
25032
24494
  const eventBus = useEventBus();
25033
24495
  const queryState = useQuerySingleton(query);
25034
24496
  const [selectedValues, setSelectedValues] = React85.useState(
@@ -25649,7 +25111,6 @@ var init_RelationSelect = __esm({
25649
25111
  init_Spinner();
25650
25112
  init_Typography();
25651
25113
  init_debug();
25652
- init_useTranslate();
25653
25114
  isRelationsDebugEnabled = () => isDebugEnabled();
25654
25115
  RelationSelect = ({
25655
25116
  value,
@@ -25666,7 +25127,7 @@ var init_RelationSelect = __esm({
25666
25127
  searchPlaceholder,
25667
25128
  emptyMessage
25668
25129
  }) => {
25669
- const { t } = useTranslate();
25130
+ const { t } = hooks.useTranslate();
25670
25131
  const resolvedPlaceholder = placeholder ?? t("relationSelect.selectPlaceholder");
25671
25132
  const resolvedSearchPlaceholder = searchPlaceholder ?? t("common.search");
25672
25133
  const resolvedEmptyMessage = emptyMessage ?? t("empty.noOptionsFound");
@@ -25874,7 +25335,6 @@ var init_SearchInput = __esm({
25874
25335
  init_cn();
25875
25336
  init_useEventBus();
25876
25337
  init_useQuerySingleton();
25877
- init_useTranslate();
25878
25338
  SearchInput = ({
25879
25339
  value,
25880
25340
  onSearch,
@@ -25889,7 +25349,7 @@ var init_SearchInput = __esm({
25889
25349
  ...props
25890
25350
  }) => {
25891
25351
  const eventBus = useEventBus();
25892
- const { t } = useTranslate();
25352
+ const { t } = hooks.useTranslate();
25893
25353
  const resolvedPlaceholder = placeholder ?? t("common.search");
25894
25354
  const queryState = useQuerySingleton(query);
25895
25355
  const initialValue = queryState?.search ?? value ?? "";
@@ -25977,7 +25437,6 @@ var init_SidePanel = __esm({
25977
25437
  init_Typography();
25978
25438
  init_cn();
25979
25439
  init_useEventBus();
25980
- init_useTranslate();
25981
25440
  SidePanel = ({
25982
25441
  title,
25983
25442
  children,
@@ -25990,7 +25449,7 @@ var init_SidePanel = __esm({
25990
25449
  closeEvent
25991
25450
  }) => {
25992
25451
  const eventBus = useEventBus();
25993
- const { t } = useTranslate();
25452
+ const { t } = hooks.useTranslate();
25994
25453
  const handleClose = () => {
25995
25454
  if (closeEvent) eventBus.emit(`UI:${closeEvent}`, {});
25996
25455
  onClose();
@@ -26156,7 +25615,6 @@ var init_WizardNavigation = __esm({
26156
25615
  init_Icon();
26157
25616
  init_cn();
26158
25617
  init_useEventBus();
26159
- init_useTranslate();
26160
25618
  WizardNavigation = ({
26161
25619
  currentStep,
26162
25620
  totalSteps,
@@ -26177,7 +25635,7 @@ var init_WizardNavigation = __esm({
26177
25635
  className
26178
25636
  }) => {
26179
25637
  const eventBus = useSafeEventBus4();
26180
- const { t } = useTranslate();
25638
+ const { t } = hooks.useTranslate();
26181
25639
  const resolvedBackLabel = backLabel ?? t("wizard.back");
26182
25640
  const resolvedNextLabel = nextLabel ?? t("wizard.next");
26183
25641
  const resolvedCompleteLabel = completeLabel ?? t("wizard.complete");
@@ -26244,7 +25702,6 @@ var init_RepeatableFormSection = __esm({
26244
25702
  init_Card();
26245
25703
  init_Icon();
26246
25704
  init_useEventBus();
26247
- init_useTranslate();
26248
25705
  RepeatableFormSection = ({
26249
25706
  sectionType,
26250
25707
  title,
@@ -26265,7 +25722,7 @@ var init_RepeatableFormSection = __esm({
26265
25722
  showAuditInfo = false
26266
25723
  }) => {
26267
25724
  const eventBus = useEventBus();
26268
- const { t } = useTranslate();
25725
+ const { t } = hooks.useTranslate();
26269
25726
  const resolvedAddLabel = addLabel ?? t("common.add");
26270
25727
  const resolvedEmptyMessage = emptyMessage ?? t("empty.noItemsAdded");
26271
25728
  const safeItems = items ?? [];
@@ -26375,7 +25832,6 @@ var actionTypeLabelKeys, actionTypeIcons, ViolationAlert;
26375
25832
  var init_ViolationAlert = __esm({
26376
25833
  "components/core/molecules/ViolationAlert.tsx"() {
26377
25834
  init_cn();
26378
- init_useTranslate();
26379
25835
  init_Box();
26380
25836
  init_Stack();
26381
25837
  init_Typography();
@@ -26401,7 +25857,7 @@ var init_ViolationAlert = __esm({
26401
25857
  className,
26402
25858
  ...flatProps
26403
25859
  }) => {
26404
- const { t } = useTranslate();
25860
+ const { t } = hooks.useTranslate();
26405
25861
  const resolvedViolation = violation ?? {
26406
25862
  law: "",
26407
25863
  article: "",
@@ -26881,7 +26337,6 @@ var init_LineChart = __esm({
26881
26337
  "use client";
26882
26338
  init_cn();
26883
26339
  init_atoms2();
26884
- init_useTranslate();
26885
26340
  LineChart2 = ({
26886
26341
  data,
26887
26342
  width = 400,
@@ -26893,7 +26348,7 @@ var init_LineChart = __esm({
26893
26348
  areaColor = "var(--color-primary)",
26894
26349
  className
26895
26350
  }) => {
26896
- const { t } = useTranslate();
26351
+ const { t } = hooks.useTranslate();
26897
26352
  const gradientId = React85.useId();
26898
26353
  const safeData = data ?? [];
26899
26354
  const sortedData = React85.useMemo(() => {
@@ -28837,7 +28292,6 @@ var init_GraphView = __esm({
28837
28292
  "use client";
28838
28293
  init_cn();
28839
28294
  init_atoms2();
28840
- init_useTranslate();
28841
28295
  GROUP_COLORS = [
28842
28296
  "#3b82f6",
28843
28297
  // blue-500
@@ -28870,7 +28324,7 @@ var init_GraphView = __esm({
28870
28324
  showLabels = true,
28871
28325
  zoomToFit = true
28872
28326
  }) => {
28873
- const { t } = useTranslate();
28327
+ const { t } = hooks.useTranslate();
28874
28328
  const containerRef = React85.useRef(null);
28875
28329
  const animRef = React85.useRef(0);
28876
28330
  const [simNodes, setSimNodes] = React85.useState([]);
@@ -29163,7 +28617,6 @@ var init_NumberStepper = __esm({
29163
28617
  init_cn();
29164
28618
  init_Icon();
29165
28619
  init_useEventBus();
29166
- init_useTranslate();
29167
28620
  sizeStyles10 = {
29168
28621
  sm: {
29169
28622
  button: "w-7 h-7",
@@ -29197,7 +28650,7 @@ var init_NumberStepper = __esm({
29197
28650
  label
29198
28651
  }) => {
29199
28652
  const eventBus = useSafeEventBus5();
29200
- const { t } = useTranslate();
28653
+ const { t } = hooks.useTranslate();
29201
28654
  const intervalRef = React85.useRef(null);
29202
28655
  const timeoutRef = React85.useRef(null);
29203
28656
  const isAtMin = min !== void 0 && value <= min;
@@ -29504,7 +28957,6 @@ var init_UploadDropZone = __esm({
29504
28957
  init_Icon();
29505
28958
  init_Typography();
29506
28959
  init_useEventBus();
29507
- init_useTranslate();
29508
28960
  UploadDropZone = ({
29509
28961
  accept,
29510
28962
  maxSize,
@@ -29517,7 +28969,7 @@ var init_UploadDropZone = __esm({
29517
28969
  onFiles,
29518
28970
  className
29519
28971
  }) => {
29520
- const { t } = useTranslate();
28972
+ const { t } = hooks.useTranslate();
29521
28973
  const resolvedLabel = label ?? t("upload.dropOrBrowse");
29522
28974
  const [isDragOver, setIsDragOver] = React85.useState(false);
29523
28975
  const [error, setError] = React85.useState(null);
@@ -29671,7 +29123,6 @@ var init_Lightbox = __esm({
29671
29123
  init_Icon();
29672
29124
  init_cn();
29673
29125
  init_useEventBus();
29674
- init_useTranslate();
29675
29126
  Lightbox = ({
29676
29127
  images = [],
29677
29128
  currentIndex = 0,
@@ -29686,7 +29137,7 @@ var init_Lightbox = __esm({
29686
29137
  const [index, setIndex] = React85.useState(currentIndex);
29687
29138
  const [touchStartX, setTouchStartX] = React85.useState(null);
29688
29139
  const eventBus = useSafeEventBus8();
29689
- const { t } = useTranslate();
29140
+ const { t } = hooks.useTranslate();
29690
29141
  React85.useEffect(() => {
29691
29142
  setIndex(currentIndex);
29692
29143
  }, [currentIndex]);
@@ -29924,7 +29375,7 @@ function TableView({
29924
29375
  dndRoot
29925
29376
  }) {
29926
29377
  const eventBus = useEventBus();
29927
- const { t } = useTranslate();
29378
+ const { t } = hooks.useTranslate();
29928
29379
  const [visibleCount, setVisibleCount] = React85__namespace.default.useState(pageSize > 0 ? pageSize : Infinity);
29929
29380
  const [localSelected, setLocalSelected] = React85__namespace.default.useState(/* @__PURE__ */ new Set());
29930
29381
  const colDefs = columns ?? fields ?? [];
@@ -30156,7 +29607,6 @@ var init_TableView = __esm({
30156
29607
  init_cn();
30157
29608
  init_getNestedValue();
30158
29609
  init_useEventBus();
30159
- init_useTranslate();
30160
29610
  init_Box();
30161
29611
  init_Stack();
30162
29612
  init_Typography();
@@ -30360,7 +29810,6 @@ var init_Meter = __esm({
30360
29810
  init_LoadingState();
30361
29811
  init_ErrorState();
30362
29812
  init_useEventBus();
30363
- init_useTranslate();
30364
29813
  DEFAULT_THRESHOLDS = [
30365
29814
  { value: 30, color: "var(--color-error)" },
30366
29815
  { value: 70, color: "var(--color-warning)" },
@@ -30388,7 +29837,7 @@ var init_Meter = __esm({
30388
29837
  className
30389
29838
  }) => {
30390
29839
  const eventBus = useEventBus();
30391
- const { t } = useTranslate();
29840
+ const { t } = hooks.useTranslate();
30392
29841
  const handleAction = React85.useCallback(
30393
29842
  (action) => {
30394
29843
  if (action.event) {
@@ -32307,7 +31756,6 @@ var init_VoteStack = __esm({
32307
31756
  init_cn();
32308
31757
  init_Icon();
32309
31758
  init_useEventBus();
32310
- init_useTranslate();
32311
31759
  sizeStyles12 = {
32312
31760
  sm: {
32313
31761
  button: "w-7 h-7",
@@ -32340,7 +31788,7 @@ var init_VoteStack = __esm({
32340
31788
  const isUp = userVote === "up";
32341
31789
  const isDown = userVote === "down";
32342
31790
  const eventBus = useEventBus();
32343
- const { t } = useTranslate();
31791
+ const { t } = hooks.useTranslate();
32344
31792
  const handleUp = React85.useCallback(() => {
32345
31793
  const next = isUp ? null : "up";
32346
31794
  onVote?.(next);
@@ -32762,7 +32210,6 @@ var init_QrScanner = __esm({
32762
32210
  init_atoms2();
32763
32211
  init_Icon();
32764
32212
  init_useEventBus();
32765
- init_useTranslate();
32766
32213
  QrScanner = ({
32767
32214
  onScan,
32768
32215
  scanEvent,
@@ -32775,7 +32222,7 @@ var init_QrScanner = __esm({
32775
32222
  className
32776
32223
  }) => {
32777
32224
  const eventBus = useEventBus();
32778
- const { t } = useTranslate();
32225
+ const { t } = hooks.useTranslate();
32779
32226
  const videoRef = React85.useRef(null);
32780
32227
  const streamRef = React85.useRef(null);
32781
32228
  const scanIntervalRef = React85.useRef(null);
@@ -32989,7 +32436,6 @@ var init_OptionConstraintGroup = __esm({
32989
32436
  "components/core/molecules/OptionConstraintGroup.tsx"() {
32990
32437
  init_cn();
32991
32438
  init_useEventBus();
32992
- init_useTranslate();
32993
32439
  init_Typography();
32994
32440
  init_Box();
32995
32441
  init_Label();
@@ -33045,7 +32491,7 @@ var init_OptionConstraintGroup = __esm({
33045
32491
  className
33046
32492
  }) => {
33047
32493
  const eventBus = useEventBus();
33048
- const { t } = useTranslate();
32494
+ const { t } = hooks.useTranslate();
33049
32495
  const hint = constraintHint(constraint, t);
33050
32496
  const error = validateSelection(selected, constraint, t);
33051
32497
  const inputName = `option-${groupId}`;
@@ -33469,7 +32915,7 @@ function changeBlockType(block, type) {
33469
32915
  return { id: block.id, type, content: seed };
33470
32916
  }
33471
32917
  function BlockMenu({ block, readOnly, onDelete, onDuplicate, onChangeType }) {
33472
- const { t } = useTranslate();
32918
+ const { t } = hooks.useTranslate();
33473
32919
  const [open, setOpen] = React85.useState(false);
33474
32920
  const ref = React85.useRef(null);
33475
32921
  React85.useEffect(() => {
@@ -33626,7 +33072,7 @@ function BlockRow({
33626
33072
  onInsertAfter,
33627
33073
  onChangeType
33628
33074
  }) {
33629
- const { t } = useTranslate();
33075
+ const { t } = hooks.useTranslate();
33630
33076
  const setContent = React85.useCallback(
33631
33077
  (next) => onUpdate((b) => ({ ...b, content: next })),
33632
33078
  [onUpdate]
@@ -33945,7 +33391,6 @@ var init_RichBlockEditor = __esm({
33945
33391
  init_Input();
33946
33392
  init_Icon();
33947
33393
  init_useEventBus();
33948
- init_useTranslate();
33949
33394
  TOOLBAR_ENTRIES = [
33950
33395
  { type: "paragraph", labelKey: "richBlockEditor.toolbar.text", icon: LucideIcons2.Type },
33951
33396
  { type: "heading-1", labelKey: "richBlockEditor.toolbar.h1", icon: LucideIcons2.Heading1 },
@@ -34002,7 +33447,7 @@ var init_RichBlockEditor = __esm({
34002
33447
  showToolbar = true,
34003
33448
  className
34004
33449
  }) => {
34005
- const { t } = useTranslate();
33450
+ const { t } = hooks.useTranslate();
34006
33451
  const [blocks, setBlocks] = React85.useState(
34007
33452
  () => normalizeBlocks(initialBlocks)
34008
33453
  );
@@ -34136,7 +33581,6 @@ var init_ReplyTree = __esm({
34136
33581
  "use client";
34137
33582
  init_cn();
34138
33583
  init_useEventBus();
34139
- init_useTranslate();
34140
33584
  init_atoms2();
34141
33585
  init_VoteStack();
34142
33586
  ReplyTreeNode = ({
@@ -34156,7 +33600,7 @@ var init_ReplyTree = __esm({
34156
33600
  showActions
34157
33601
  }) => {
34158
33602
  const eventBus = useEventBus();
34159
- const { t } = useTranslate();
33603
+ const { t } = hooks.useTranslate();
34160
33604
  const hasReplies = !!node.replies && node.replies.length > 0;
34161
33605
  const isCollapsed = collapsedSet.has(node.id);
34162
33606
  const atMaxDepth = depth >= maxDepth;
@@ -34347,7 +33791,7 @@ var init_ReplyTree = __esm({
34347
33791
  showActions = true,
34348
33792
  className
34349
33793
  }) => {
34350
- const { t } = useTranslate();
33794
+ const { t } = hooks.useTranslate();
34351
33795
  const nodeList = Array.isArray(nodes) ? nodes : nodes ? [nodes] : [];
34352
33796
  const [collapsedSet, setCollapsedSet] = React85.useState(() => {
34353
33797
  const acc = /* @__PURE__ */ new Set();
@@ -34444,7 +33888,6 @@ var init_VersionDiff = __esm({
34444
33888
  "use client";
34445
33889
  init_cn();
34446
33890
  init_useEventBus();
34447
- init_useTranslate();
34448
33891
  init_atoms2();
34449
33892
  init_Stack();
34450
33893
  INLINE_STYLES = {
@@ -34467,7 +33910,7 @@ var init_VersionDiff = __esm({
34467
33910
  language,
34468
33911
  className
34469
33912
  }) => {
34470
- const { t } = useTranslate();
33913
+ const { t } = hooks.useTranslate();
34471
33914
  const eventBus = useEventBus();
34472
33915
  const revisions = Array.isArray(revisionsProp) ? revisionsProp : [];
34473
33916
  const fallbackBefore = revisions[0]?.id ?? "";
@@ -34760,12 +34203,11 @@ var init_DocBreadcrumb = __esm({
34760
34203
  init_Stack();
34761
34204
  init_Typography();
34762
34205
  init_Icon();
34763
- init_useTranslate();
34764
34206
  DocBreadcrumb = ({
34765
34207
  items,
34766
34208
  className
34767
34209
  }) => {
34768
- const { t } = useTranslate();
34210
+ const { t } = hooks.useTranslate();
34769
34211
  return /* @__PURE__ */ jsxRuntime.jsx(
34770
34212
  Box,
34771
34213
  {
@@ -35016,7 +34458,7 @@ function DocSearch({
35016
34458
  onSearch,
35017
34459
  className
35018
34460
  }) {
35019
- const { t } = useTranslate();
34461
+ const { t } = hooks.useTranslate();
35020
34462
  const resolvedPlaceholder = placeholder ?? t("docSearch.placeholder");
35021
34463
  const [query, setQuery] = React85.useState("");
35022
34464
  const [results, setResults] = React85.useState([]);
@@ -35189,7 +34631,6 @@ var init_DocSearch = __esm({
35189
34631
  init_Typography();
35190
34632
  init_Icon();
35191
34633
  init_Input();
35192
- init_useTranslate();
35193
34634
  }
35194
34635
  });
35195
34636
  var DocSidebarCategory, DocSidebar;
@@ -35202,7 +34643,6 @@ var init_DocSidebar = __esm({
35202
34643
  init_Stack();
35203
34644
  init_Typography();
35204
34645
  init_Icon();
35205
- init_useTranslate();
35206
34646
  DocSidebarCategory = ({ item, depth }) => {
35207
34647
  const [expanded, setExpanded] = React85.useState(
35208
34648
  () => item.items?.some(function hasActive(child) {
@@ -35287,7 +34727,7 @@ var init_DocSidebar = __esm({
35287
34727
  items,
35288
34728
  className
35289
34729
  }) => {
35290
- const { t } = useTranslate();
34730
+ const { t } = hooks.useTranslate();
35291
34731
  return /* @__PURE__ */ jsxRuntime.jsx(
35292
34732
  Box,
35293
34733
  {
@@ -35309,13 +34749,12 @@ var init_DocTOC = __esm({
35309
34749
  init_Box();
35310
34750
  init_Stack();
35311
34751
  init_Typography();
35312
- init_useTranslate();
35313
34752
  DocTOC = ({
35314
34753
  items,
35315
34754
  activeId,
35316
34755
  className
35317
34756
  }) => {
35318
- const { t } = useTranslate();
34757
+ const { t } = hooks.useTranslate();
35319
34758
  return /* @__PURE__ */ jsxRuntime.jsx(
35320
34759
  Box,
35321
34760
  {
@@ -36044,7 +35483,6 @@ var init_Header = __esm({
36044
35483
  init_Stack();
36045
35484
  init_Typography();
36046
35485
  init_cn();
36047
- init_useTranslate();
36048
35486
  lookStyles8 = {
36049
35487
  "compact-bar": "",
36050
35488
  hero: "py-section min-h-[200px] [&_h1]:text-display-1",
@@ -36073,7 +35511,7 @@ var init_Header = __esm({
36073
35511
  onLogoClick,
36074
35512
  className
36075
35513
  }) => {
36076
- const { t } = useTranslate();
35514
+ const { t } = hooks.useTranslate();
36077
35515
  const resolvedSearchPlaceholder = searchPlaceholder ?? t("common.search");
36078
35516
  const userInitials = userAvatar?.initials || userName?.[0]?.toUpperCase() || "U";
36079
35517
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -36364,7 +35802,6 @@ var init_Sidebar = __esm({
36364
35802
  init_Typography();
36365
35803
  init_cn();
36366
35804
  init_useEventBus();
36367
- init_useTranslate();
36368
35805
  SidebarNavItem = ({ item, collapsed }) => {
36369
35806
  const Icon3 = item.icon;
36370
35807
  const isActive = item.active ?? item.isActive;
@@ -36428,7 +35865,7 @@ var init_Sidebar = __esm({
36428
35865
  className
36429
35866
  }) => {
36430
35867
  const { emit } = useEventBus();
36431
- const { t } = useTranslate();
35868
+ const { t } = hooks.useTranslate();
36432
35869
  const [internalCollapsed, setInternalCollapsed] = React85.useState(defaultCollapsed);
36433
35870
  const collapsed = controlledCollapsed !== void 0 ? controlledCollapsed : internalCollapsed;
36434
35871
  const handleToggle = React85.useCallback(() => {
@@ -36618,7 +36055,6 @@ var init_WizardContainer = __esm({
36618
36055
  init_Stack();
36619
36056
  init_Icon();
36620
36057
  init_cn();
36621
- init_useTranslate();
36622
36058
  WizardContainer = ({
36623
36059
  steps,
36624
36060
  currentStep: controlledStep,
@@ -36631,7 +36067,7 @@ var init_WizardContainer = __esm({
36631
36067
  entity: _entity
36632
36068
  // Accept but don't use directly yet
36633
36069
  }) => {
36634
- const { t } = useTranslate();
36070
+ const { t } = hooks.useTranslate();
36635
36071
  const [internalStep, setInternalStep] = React85.useState(0);
36636
36072
  const normalizedControlledStep = (() => {
36637
36073
  if (controlledStep === void 0 || controlledStep === null)
@@ -37192,7 +36628,6 @@ var init_SignaturePad = __esm({
37192
36628
  init_LoadingState();
37193
36629
  init_ErrorState();
37194
36630
  init_useEventBus();
37195
- init_useTranslate();
37196
36631
  SignaturePad = ({
37197
36632
  label,
37198
36633
  helperText,
@@ -37210,7 +36645,7 @@ var init_SignaturePad = __esm({
37210
36645
  className
37211
36646
  }) => {
37212
36647
  const eventBus = useEventBus();
37213
- const { t } = useTranslate();
36648
+ const { t } = hooks.useTranslate();
37214
36649
  const resolvedLabel = label ?? t("signaturePad.label");
37215
36650
  const resolvedHelperText = helperText ?? t("signaturePad.helperText");
37216
36651
  const canvasRef = React85.useRef(null);
@@ -37386,7 +36821,6 @@ var init_DocumentViewer = __esm({
37386
36821
  init_EmptyState();
37387
36822
  init_Tabs();
37388
36823
  init_useEventBus();
37389
- init_useTranslate();
37390
36824
  DocumentViewer = ({
37391
36825
  title,
37392
36826
  src,
@@ -37406,7 +36840,7 @@ var init_DocumentViewer = __esm({
37406
36840
  className
37407
36841
  }) => {
37408
36842
  const eventBus = useEventBus();
37409
- const { t } = useTranslate();
36843
+ const { t } = hooks.useTranslate();
37410
36844
  const [zoom, setZoom] = React85.useState(100);
37411
36845
  const [currentPage, setCurrentPage] = React85.useState(propPage ?? 1);
37412
36846
  const [activeDocIndex, setActiveDocIndex] = React85.useState(0);
@@ -37591,7 +37025,6 @@ var init_GraphCanvas = __esm({
37591
37025
  init_ErrorState();
37592
37026
  init_EmptyState();
37593
37027
  init_useEventBus();
37594
- init_useTranslate();
37595
37028
  GROUP_COLORS2 = [
37596
37029
  "var(--color-primary)",
37597
37030
  "var(--color-success)",
@@ -37618,7 +37051,7 @@ var init_GraphCanvas = __esm({
37618
37051
  className
37619
37052
  }) => {
37620
37053
  const eventBus = useEventBus();
37621
- const { t } = useTranslate();
37054
+ const { t } = hooks.useTranslate();
37622
37055
  const canvasRef = React85.useRef(null);
37623
37056
  const animRef = React85.useRef(0);
37624
37057
  const [zoom, setZoom] = React85.useState(1);
@@ -37968,7 +37401,7 @@ function DataTable({
37968
37401
  null
37969
37402
  );
37970
37403
  const eventBus = useEventBus();
37971
- const { t } = useTranslate();
37404
+ const { t } = hooks.useTranslate();
37972
37405
  const resolvedEmptyTitle = emptyTitle ?? t("table.empty.title");
37973
37406
  const resolvedEmptyDescription = emptyDescription ?? t("table.empty.description");
37974
37407
  const resolvedSearchPlaceholder = searchPlaceholder ?? t("common.search");
@@ -38329,7 +37762,6 @@ var init_DataTable = __esm({
38329
37762
  init_molecules2();
38330
37763
  init_Icon();
38331
37764
  init_useEventBus();
38332
- init_useTranslate();
38333
37765
  init_types3();
38334
37766
  lookStyles9 = {
38335
37767
  dense: "",
@@ -38347,7 +37779,7 @@ function DebuggerBoard({
38347
37779
  className
38348
37780
  }) {
38349
37781
  const { emit } = useEventBus();
38350
- const { t } = useTranslate();
37782
+ const { t } = hooks.useTranslate();
38351
37783
  const resolved = Array.isArray(entity) ? entity[0] : entity;
38352
37784
  const [flaggedLines, setFlaggedLines] = React85.useState(/* @__PURE__ */ new Set());
38353
37785
  const [headerError, setHeaderError] = React85.useState(false);
@@ -38476,7 +37908,6 @@ var init_DebuggerBoard = __esm({
38476
37908
  "components/game/organisms/puzzles/debugger/DebuggerBoard.tsx"() {
38477
37909
  init_atoms2();
38478
37910
  init_useEventBus();
38479
- init_useTranslate();
38480
37911
  DebuggerBoard.displayName = "DebuggerBoard";
38481
37912
  }
38482
37913
  });
@@ -38647,7 +38078,6 @@ var init_DetailPanel = __esm({
38647
38078
  init_cn();
38648
38079
  init_getNestedValue();
38649
38080
  init_useEventBus();
38650
- init_useTranslate();
38651
38081
  ReactMarkdown2 = React85.lazy(() => import('react-markdown'));
38652
38082
  DetailPanel = ({
38653
38083
  title: propTitle,
@@ -38667,7 +38097,7 @@ var init_DetailPanel = __esm({
38667
38097
  error
38668
38098
  }) => {
38669
38099
  const eventBus = useEventBus();
38670
- const { t } = useTranslate();
38100
+ const { t } = hooks.useTranslate();
38671
38101
  const isFieldDefArray = (arr) => {
38672
38102
  if (!arr || arr.length === 0) return false;
38673
38103
  const first = arr[0];
@@ -39065,7 +38495,7 @@ function CompactView({
39065
38495
  stateStyles,
39066
38496
  className
39067
38497
  }) {
39068
- const { t } = useTranslate();
38498
+ const { t } = hooks.useTranslate();
39069
38499
  const config = SIZE_CONFIG2[size || "md"];
39070
38500
  const currentTransitions = trait.transitions.filter((t2) => t2.from === trait.currentState);
39071
38501
  return /* @__PURE__ */ jsxRuntime.jsxs(VStack, { className: cn("p-3 rounded-container bg-card border border-border", className), gap: "sm", children: [
@@ -39101,7 +38531,7 @@ function FullView({
39101
38531
  stateStyles,
39102
38532
  className
39103
38533
  }) {
39104
- const { t } = useTranslate();
38534
+ const { t } = hooks.useTranslate();
39105
38535
  const config = SIZE_CONFIG2[size || "md"];
39106
38536
  const currentTransitions = trait.transitions.filter((t2) => t2.from === trait.currentState);
39107
38537
  return /* @__PURE__ */ jsxRuntime.jsxs(VStack, { className: cn("p-3 rounded-container bg-card border border-border", className), gap: "sm", children: [
@@ -39226,7 +38656,6 @@ var init_TraitStateViewer = __esm({
39226
38656
  "components/game/organisms/TraitStateViewer.tsx"() {
39227
38657
  "use client";
39228
38658
  init_cn();
39229
- init_useTranslate();
39230
38659
  init_Box();
39231
38660
  init_Typography();
39232
38661
  init_Stack();
@@ -39248,7 +38677,7 @@ function RuleEditor({
39248
38677
  disabled = false,
39249
38678
  className
39250
38679
  }) {
39251
- const { t } = useTranslate();
38680
+ const { t } = hooks.useTranslate();
39252
38681
  const handleWhenChange = React85.useCallback((e) => {
39253
38682
  onChange({ ...rule, whenEvent: e.target.value });
39254
38683
  }, [rule, onChange]);
@@ -39285,7 +38714,6 @@ var init_RuleEditor = __esm({
39285
38714
  "components/game/organisms/puzzles/event-handler/RuleEditor.tsx"() {
39286
38715
  init_atoms2();
39287
38716
  init_cn();
39288
- init_useTranslate();
39289
38717
  RuleEditor.displayName = "RuleEditor";
39290
38718
  }
39291
38719
  });
@@ -39295,7 +38723,7 @@ function ObjectRulePanel({
39295
38723
  disabled = false,
39296
38724
  className
39297
38725
  }) {
39298
- const { t } = useTranslate();
38726
+ const { t } = hooks.useTranslate();
39299
38727
  const maxRules = object.maxRules || 3;
39300
38728
  const canAdd = object.rules.length < maxRules;
39301
38729
  const handleRuleChange = React85.useCallback((index, updatedRule) => {
@@ -39360,7 +38788,6 @@ var init_ObjectRulePanel = __esm({
39360
38788
  "components/game/organisms/puzzles/event-handler/ObjectRulePanel.tsx"() {
39361
38789
  init_atoms2();
39362
38790
  init_cn();
39363
- init_useTranslate();
39364
38791
  init_TraitStateViewer();
39365
38792
  init_RuleEditor();
39366
38793
  nextRuleId = 1;
@@ -39373,7 +38800,7 @@ function EventLog({
39373
38800
  label,
39374
38801
  className
39375
38802
  }) {
39376
- const { t } = useTranslate();
38803
+ const { t } = hooks.useTranslate();
39377
38804
  const scrollRef = React85.useRef(null);
39378
38805
  React85.useEffect(() => {
39379
38806
  if (scrollRef.current) {
@@ -39405,7 +38832,6 @@ var init_EventLog = __esm({
39405
38832
  "components/game/organisms/puzzles/event-handler/EventLog.tsx"() {
39406
38833
  init_atoms2();
39407
38834
  init_cn();
39408
- init_useTranslate();
39409
38835
  STATUS_STYLES = {
39410
38836
  pending: "text-muted-foreground",
39411
38837
  active: "text-primary animate-pulse",
@@ -39429,7 +38855,7 @@ function EventHandlerBoard({
39429
38855
  className
39430
38856
  }) {
39431
38857
  const { emit } = useEventBus();
39432
- const { t } = useTranslate();
38858
+ const { t } = hooks.useTranslate();
39433
38859
  const resolved = Array.isArray(entity) ? entity[0] : entity;
39434
38860
  const entityObjects = resolved?.objects ?? [];
39435
38861
  const [objects, setObjects] = React85.useState(entityObjects);
@@ -39619,7 +39045,6 @@ var init_EventHandlerBoard = __esm({
39619
39045
  init_atoms2();
39620
39046
  init_cn();
39621
39047
  init_useEventBus();
39622
- init_useTranslate();
39623
39048
  init_TraitStateViewer();
39624
39049
  init_ObjectRulePanel();
39625
39050
  init_EventLog();
@@ -39689,7 +39114,6 @@ var init_FeatureGridOrganism = __esm({
39689
39114
  "use client";
39690
39115
  init_cn();
39691
39116
  init_useEventBus();
39692
- init_useTranslate();
39693
39117
  init_Stack();
39694
39118
  init_Typography();
39695
39119
  init_FeatureGrid();
@@ -39705,7 +39129,7 @@ var init_FeatureGridOrganism = __esm({
39705
39129
  subtitle
39706
39130
  }) => {
39707
39131
  const eventBus = useEventBus();
39708
- const { t } = useTranslate();
39132
+ const { t } = hooks.useTranslate();
39709
39133
  const items = React85.useMemo(
39710
39134
  () => Array.isArray(entity) ? entity : entity && typeof entity === "object" ? [entity] : [],
39711
39135
  [entity]
@@ -39872,7 +39296,6 @@ var init_Form = __esm({
39872
39296
  init_RelationSelect();
39873
39297
  init_Alert();
39874
39298
  init_useEventBus();
39875
- init_useTranslate();
39876
39299
  init_debug();
39877
39300
  layoutStyles = {
39878
39301
  vertical: "flex flex-col",
@@ -39923,7 +39346,7 @@ var init_Form = __esm({
39923
39346
  ...props
39924
39347
  }) => {
39925
39348
  const eventBus = useEventBus();
39926
- const { t } = useTranslate();
39349
+ const { t } = hooks.useTranslate();
39927
39350
  const resolvedSubmitLabel = submitLabel ?? t("common.save");
39928
39351
  const resolvedCancelLabel = cancelLabel ?? t("common.cancel");
39929
39352
  const isSchemaEntity = isOrbitalEntitySchema(entity);
@@ -41032,7 +40455,6 @@ var init_HeroOrganism = __esm({
41032
40455
  "use client";
41033
40456
  init_cn();
41034
40457
  init_useEventBus();
41035
- init_useTranslate();
41036
40458
  init_HeroSection();
41037
40459
  init_LoadingState();
41038
40460
  init_ErrorState();
@@ -41044,7 +40466,7 @@ var init_HeroOrganism = __esm({
41044
40466
  children
41045
40467
  }) => {
41046
40468
  const eventBus = useEventBus();
41047
- const { t } = useTranslate();
40469
+ const { t } = hooks.useTranslate();
41048
40470
  const resolved = React85.useMemo(
41049
40471
  () => Array.isArray(entity) ? entity[0] : entity && typeof entity === "object" ? entity : void 0,
41050
40472
  [entity]
@@ -41138,7 +40560,6 @@ var LandingPageTemplate;
41138
40560
  var init_LandingPageTemplate = __esm({
41139
40561
  "components/marketing/templates/LandingPageTemplate.tsx"() {
41140
40562
  init_cn();
41141
- init_useTranslate();
41142
40563
  init_Stack();
41143
40564
  init_Box();
41144
40565
  init_Container();
@@ -41156,7 +40577,7 @@ var init_LandingPageTemplate = __esm({
41156
40577
  featureColumns = 3,
41157
40578
  className
41158
40579
  }) => {
41159
- const { t } = useTranslate();
40580
+ const { t } = hooks.useTranslate();
41160
40581
  const resolved = entity && typeof entity === "object" && !Array.isArray(entity) ? entity : void 0;
41161
40582
  if (!resolved) return null;
41162
40583
  return /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "none", className: cn("w-full", className), children: [
@@ -41338,7 +40759,6 @@ var init_List = __esm({
41338
40759
  init_cn();
41339
40760
  init_getNestedValue();
41340
40761
  init_useEventBus();
41341
- init_useTranslate();
41342
40762
  init_types3();
41343
40763
  STATUS_STYLES2 = {
41344
40764
  complete: {
@@ -41463,7 +40883,7 @@ var init_List = __esm({
41463
40883
  entityType
41464
40884
  }) => {
41465
40885
  const eventBus = useEventBus();
41466
- const { t } = useTranslate();
40886
+ const { t } = hooks.useTranslate();
41467
40887
  const resolvedEmptyMessage = emptyMessage ?? t("empty.noData");
41468
40888
  const effectiveFieldNames = normalizeFields2(fields).length > 0 ? normalizeFields2(fields) : fieldNames;
41469
40889
  const rawItems = React85.useMemo(() => {
@@ -41810,7 +41230,7 @@ function MasterDetail({
41810
41230
  className,
41811
41231
  ...rest
41812
41232
  }) {
41813
- const { t } = useTranslate();
41233
+ const { t } = hooks.useTranslate();
41814
41234
  const loading = externalLoading ?? false;
41815
41235
  const isLoading = externalIsLoading ?? false;
41816
41236
  const error = externalError ?? null;
@@ -41833,7 +41253,6 @@ var init_MasterDetail = __esm({
41833
41253
  "components/core/organisms/MasterDetail.tsx"() {
41834
41254
  "use client";
41835
41255
  init_DataTable();
41836
- init_useTranslate();
41837
41256
  MasterDetail.displayName = "MasterDetail";
41838
41257
  }
41839
41258
  });
@@ -41842,9 +41261,8 @@ var init_MasterDetailLayout = __esm({
41842
41261
  "components/core/organisms/layout/MasterDetailLayout.tsx"() {
41843
41262
  init_cn();
41844
41263
  init_Typography();
41845
- init_useTranslate();
41846
41264
  DefaultEmptyDetail = () => {
41847
- const { t } = useTranslate();
41265
+ const { t } = hooks.useTranslate();
41848
41266
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-center h-full border-2 border-dashed border-border", children: /* @__PURE__ */ jsxRuntime.jsx(
41849
41267
  Typography,
41850
41268
  {
@@ -41903,7 +41321,6 @@ var init_MediaGallery = __esm({
41903
41321
  init_ErrorState();
41904
41322
  init_EmptyState();
41905
41323
  init_useEventBus();
41906
- init_useTranslate();
41907
41324
  COLUMN_CLASSES = {
41908
41325
  2: "grid-cols-2",
41909
41326
  3: "grid-cols-2 sm:grid-cols-3",
@@ -41932,7 +41349,7 @@ var init_MediaGallery = __esm({
41932
41349
  className
41933
41350
  }) => {
41934
41351
  const eventBus = useEventBus();
41935
- const { t } = useTranslate();
41352
+ const { t } = hooks.useTranslate();
41936
41353
  const [lightboxItem, setLightboxItem] = React85.useState(null);
41937
41354
  const closeLightbox = React85.useCallback(() => setLightboxItem(null), []);
41938
41355
  useEventListener("UI:LIGHTBOX_CLOSE", closeLightbox);
@@ -42174,7 +41591,7 @@ function NegotiatorBoard({
42174
41591
  className
42175
41592
  }) {
42176
41593
  const { emit } = useEventBus();
42177
- const { t } = useTranslate();
41594
+ const { t } = hooks.useTranslate();
42178
41595
  const resolved = Array.isArray(entity) ? entity[0] : entity;
42179
41596
  const [history, setHistory] = React85.useState([]);
42180
41597
  const [headerError, setHeaderError] = React85.useState(false);
@@ -42304,7 +41721,6 @@ var init_NegotiatorBoard = __esm({
42304
41721
  "components/game/organisms/puzzles/negotiator/NegotiatorBoard.tsx"() {
42305
41722
  init_atoms2();
42306
41723
  init_useEventBus();
42307
- init_useTranslate();
42308
41724
  NegotiatorBoard.displayName = "NegotiatorBoard";
42309
41725
  }
42310
41726
  });
@@ -42314,7 +41730,6 @@ var init_PricingOrganism = __esm({
42314
41730
  "use client";
42315
41731
  init_cn();
42316
41732
  init_useEventBus();
42317
- init_useTranslate();
42318
41733
  init_Stack();
42319
41734
  init_Typography();
42320
41735
  init_PricingGrid();
@@ -42329,7 +41744,7 @@ var init_PricingOrganism = __esm({
42329
41744
  subtitle
42330
41745
  }) => {
42331
41746
  useEventBus();
42332
- const { t } = useTranslate();
41747
+ const { t } = hooks.useTranslate();
42333
41748
  const items = React85.useMemo(
42334
41749
  () => Array.isArray(entity) ? entity : entity && typeof entity === "object" ? [entity] : [],
42335
41750
  [entity]
@@ -42364,7 +41779,6 @@ var PricingPageTemplate;
42364
41779
  var init_PricingPageTemplate = __esm({
42365
41780
  "components/marketing/templates/PricingPageTemplate.tsx"() {
42366
41781
  init_cn();
42367
- init_useTranslate();
42368
41782
  init_Stack();
42369
41783
  init_Box();
42370
41784
  init_Container();
@@ -42377,7 +41791,7 @@ var init_PricingPageTemplate = __esm({
42377
41791
  entity,
42378
41792
  className
42379
41793
  }) => {
42380
- const { t } = useTranslate();
41794
+ const { t } = hooks.useTranslate();
42381
41795
  const resolved = entity && typeof entity === "object" && !Array.isArray(entity) ? entity : void 0;
42382
41796
  if (!resolved) return null;
42383
41797
  return /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "none", className: cn("w-full", className), children: [
@@ -42860,7 +42274,7 @@ var init_WalkMinimap = __esm({
42860
42274
  }
42861
42275
  });
42862
42276
  function TraitsTab({ traits: traits2 }) {
42863
- const { t } = useTranslate();
42277
+ const { t } = hooks.useTranslate();
42864
42278
  if (traits2.length === 0) {
42865
42279
  return /* @__PURE__ */ jsxRuntime.jsx(
42866
42280
  EmptyState,
@@ -42928,12 +42342,11 @@ var init_TraitsTab = __esm({
42928
42342
  init_Typography();
42929
42343
  init_Stack();
42930
42344
  init_EmptyState();
42931
- init_useTranslate();
42932
42345
  TraitsTab.displayName = "TraitsTab";
42933
42346
  }
42934
42347
  });
42935
42348
  function TicksTab({ ticks: ticks2 }) {
42936
- const { t } = useTranslate();
42349
+ const { t } = hooks.useTranslate();
42937
42350
  const activeTicks = ticks2.filter((t2) => t2.active);
42938
42351
  const inactiveTicks = ticks2.filter((t2) => !t2.active);
42939
42352
  if (ticks2.length === 0) {
@@ -43006,12 +42419,11 @@ var init_TicksTab = __esm({
43006
42419
  init_Stack();
43007
42420
  init_Card();
43008
42421
  init_EmptyState();
43009
- init_useTranslate();
43010
42422
  TicksTab.displayName = "TicksTab";
43011
42423
  }
43012
42424
  });
43013
42425
  function EntitiesTab({ snapshot }) {
43014
- const { t } = useTranslate();
42426
+ const { t } = hooks.useTranslate();
43015
42427
  if (!snapshot) {
43016
42428
  return /* @__PURE__ */ jsxRuntime.jsx(
43017
42429
  EmptyState,
@@ -43080,12 +42492,11 @@ var init_EntitiesTab = __esm({
43080
42492
  init_Typography();
43081
42493
  init_Stack();
43082
42494
  init_EmptyState();
43083
- init_useTranslate();
43084
42495
  EntitiesTab.displayName = "EntitiesTab";
43085
42496
  }
43086
42497
  });
43087
42498
  function EventFlowTab({ events: events2 }) {
43088
- const { t } = useTranslate();
42499
+ const { t } = hooks.useTranslate();
43089
42500
  const [filter, setFilter] = React85__namespace.useState("all");
43090
42501
  const containerRef = React85__namespace.useRef(null);
43091
42502
  const [autoScroll, setAutoScroll] = React85__namespace.useState(true);
@@ -43197,7 +42608,6 @@ var init_EventFlowTab = __esm({
43197
42608
  init_Button();
43198
42609
  init_Checkbox();
43199
42610
  init_EmptyState();
43200
- init_useTranslate();
43201
42611
  TYPE_BADGES = {
43202
42612
  trait: { variant: "primary", icon: "\u{1F504}" },
43203
42613
  tick: { variant: "warning", icon: "\u23F1\uFE0F" },
@@ -43210,7 +42620,7 @@ var init_EventFlowTab = __esm({
43210
42620
  }
43211
42621
  });
43212
42622
  function GuardsPanel({ guards }) {
43213
- const { t } = useTranslate();
42623
+ const { t } = hooks.useTranslate();
43214
42624
  const [filter, setFilter] = React85__namespace.useState("all");
43215
42625
  if (guards.length === 0) {
43216
42626
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -43292,12 +42702,11 @@ var init_GuardsPanel = __esm({
43292
42702
  init_ButtonGroup();
43293
42703
  init_Button();
43294
42704
  init_EmptyState();
43295
- init_useTranslate();
43296
42705
  GuardsPanel.displayName = "GuardsPanel";
43297
42706
  }
43298
42707
  });
43299
42708
  function VerificationTab({ checks, summary }) {
43300
- const { t } = useTranslate();
42709
+ const { t } = hooks.useTranslate();
43301
42710
  if (checks.length === 0) {
43302
42711
  return /* @__PURE__ */ jsxRuntime.jsx(
43303
42712
  EmptyState,
@@ -43368,7 +42777,6 @@ var init_VerificationTab = __esm({
43368
42777
  init_Typography();
43369
42778
  init_Stack();
43370
42779
  init_EmptyState();
43371
- init_useTranslate();
43372
42780
  STATUS_CONFIG = {
43373
42781
  pass: { variant: "success", icon: "\u2713", label: "PASS" },
43374
42782
  fail: { variant: "danger", icon: "\u2717", label: "FAIL" },
@@ -43388,7 +42796,7 @@ function EffectBadge({ effect }) {
43388
42796
  ] });
43389
42797
  }
43390
42798
  function TransitionTimeline({ transitions }) {
43391
- const { t } = useTranslate();
42799
+ const { t } = hooks.useTranslate();
43392
42800
  const containerRef = React85__namespace.useRef(null);
43393
42801
  const [autoScroll, setAutoScroll] = React85__namespace.useState(true);
43394
42802
  const [expandedId, setExpandedId] = React85__namespace.useState(null);
@@ -43504,7 +42912,6 @@ var init_TransitionTimeline = __esm({
43504
42912
  init_Typography();
43505
42913
  init_EmptyState();
43506
42914
  init_Checkbox();
43507
- init_useTranslate();
43508
42915
  EFFECT_STATUS_VARIANT = {
43509
42916
  executed: "success",
43510
42917
  failed: "danger",
@@ -43520,7 +42927,7 @@ function StatRow({ label, value, variant }) {
43520
42927
  ] });
43521
42928
  }
43522
42929
  function ServerBridgeTab({ bridge }) {
43523
- const { t } = useTranslate();
42930
+ const { t } = hooks.useTranslate();
43524
42931
  if (!bridge) {
43525
42932
  return /* @__PURE__ */ jsxRuntime.jsx(
43526
42933
  EmptyState,
@@ -43594,7 +43001,6 @@ var init_ServerBridgeTab = __esm({
43594
43001
  init_Stack();
43595
43002
  init_Card();
43596
43003
  init_EmptyState();
43597
- init_useTranslate();
43598
43004
  ServerBridgeTab.displayName = "ServerBridgeTab";
43599
43005
  }
43600
43006
  });
@@ -43673,7 +43079,7 @@ function getAllEvents(traits2) {
43673
43079
  }
43674
43080
  function EventDispatcherTab({ traits: traits2, schema }) {
43675
43081
  const eventBus = useEventBus();
43676
- const { t } = useTranslate();
43082
+ const { t } = hooks.useTranslate();
43677
43083
  const [log12, setLog] = React85__namespace.useState([]);
43678
43084
  const prevStatesRef = React85__namespace.useRef(/* @__PURE__ */ new Map());
43679
43085
  React85__namespace.useEffect(() => {
@@ -43759,7 +43165,6 @@ var init_EventDispatcherTab = __esm({
43759
43165
  init_Stack();
43760
43166
  init_EmptyState();
43761
43167
  init_useEventBus();
43762
- init_useTranslate();
43763
43168
  EventDispatcherTab.displayName = "EventDispatcherTab";
43764
43169
  }
43765
43170
  });
@@ -43770,7 +43175,7 @@ var init_RuntimeDebugger = __esm({
43770
43175
  }
43771
43176
  });
43772
43177
  function ServerResponseRow({ sr }) {
43773
- const { t } = useTranslate();
43178
+ const { t } = hooks.useTranslate();
43774
43179
  const entityEntries = Object.entries(sr.dataEntities);
43775
43180
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ml-4 pl-2 border-l border-purple-500/30 py-0.5 text-xs font-mono", children: [
43776
43181
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
@@ -43796,7 +43201,7 @@ function ServerResponseRow({ sr }) {
43796
43201
  ] });
43797
43202
  }
43798
43203
  function TransitionRow({ trace }) {
43799
- const { t } = useTranslate();
43204
+ const { t } = hooks.useTranslate();
43800
43205
  const isServerEntry = !!trace.serverResponse && trace.traitName.startsWith("server:");
43801
43206
  const hasFailedEffects = trace.effects.some((e) => e.status === "failed");
43802
43207
  if (isServerEntry && trace.serverResponse) {
@@ -43845,7 +43250,7 @@ function VerifyModePanel({
43845
43250
  serverCount,
43846
43251
  localCount
43847
43252
  }) {
43848
- const { t } = useTranslate();
43253
+ const { t } = hooks.useTranslate();
43849
43254
  const [expanded, setExpanded] = React85__namespace.useState(true);
43850
43255
  const scrollRef = React85__namespace.useRef(null);
43851
43256
  const prevCountRef = React85__namespace.useRef(0);
@@ -43905,7 +43310,7 @@ function RuntimeDebugger({
43905
43310
  defaultTab,
43906
43311
  schema
43907
43312
  }) {
43908
- const { t } = useTranslate();
43313
+ const { t } = hooks.useTranslate();
43909
43314
  const [isCollapsed, setIsCollapsed] = React85__namespace.useState(mode === "verify" ? true : defaultCollapsed);
43910
43315
  const [isVisible, setIsVisible] = React85__namespace.useState(mode === "inline" || mode === "verify" || isDebugEnabled2());
43911
43316
  const debugData = useDebugData();
@@ -44134,7 +43539,6 @@ var init_RuntimeDebugger2 = __esm({
44134
43539
  init_TransitionTimeline();
44135
43540
  init_ServerBridgeTab();
44136
43541
  init_EventDispatcherTab();
44137
- init_useTranslate();
44138
43542
  init_RuntimeDebugger();
44139
43543
  RuntimeDebugger.displayName = "RuntimeDebugger";
44140
43544
  }
@@ -44428,7 +43832,7 @@ function SequencerBoard({
44428
43832
  className
44429
43833
  }) {
44430
43834
  const { emit } = useEventBus();
44431
- const { t } = useTranslate();
43835
+ const { t } = hooks.useTranslate();
44432
43836
  const resolved = Array.isArray(entity) ? entity[0] : entity;
44433
43837
  const [headerError, setHeaderError] = React85.useState(false);
44434
43838
  const [slots, setSlots] = React85.useState(
@@ -44621,7 +44025,6 @@ var init_SequencerBoard = __esm({
44621
44025
  init_atoms2();
44622
44026
  init_cn();
44623
44027
  init_useEventBus();
44624
- init_useTranslate();
44625
44028
  init_TraitStateViewer();
44626
44029
  init_SequenceBar();
44627
44030
  init_ActionPalette();
@@ -44640,7 +44043,6 @@ var init_ShowcaseOrganism = __esm({
44640
44043
  "use client";
44641
44044
  init_cn();
44642
44045
  init_useEventBus();
44643
- init_useTranslate();
44644
44046
  init_Stack();
44645
44047
  init_Typography();
44646
44048
  init_SimpleGrid();
@@ -44657,7 +44059,7 @@ var init_ShowcaseOrganism = __esm({
44657
44059
  subtitle
44658
44060
  }) => {
44659
44061
  useEventBus();
44660
- const { t } = useTranslate();
44062
+ const { t } = hooks.useTranslate();
44661
44063
  const items = React85.useMemo(
44662
44064
  () => Array.isArray(entity) ? entity : entity && typeof entity === "object" ? [entity] : [],
44663
44065
  [entity]
@@ -45051,7 +44453,7 @@ function SimulatorBoard({
45051
44453
  className
45052
44454
  }) {
45053
44455
  const { emit } = useEventBus();
45054
- const { t } = useTranslate();
44456
+ const { t } = hooks.useTranslate();
45055
44457
  const resolved = Array.isArray(entity) ? entity[0] : entity;
45056
44458
  const parameters = resolved?.parameters ?? [];
45057
44459
  const [values, setValues] = React85.useState(() => {
@@ -45199,7 +44601,6 @@ var init_SimulatorBoard = __esm({
45199
44601
  "components/game/organisms/puzzles/simulator/SimulatorBoard.tsx"() {
45200
44602
  init_atoms2();
45201
44603
  init_useEventBus();
45202
- init_useTranslate();
45203
44604
  SimulatorBoard.displayName = "SimulatorBoard";
45204
44605
  }
45205
44606
  });
@@ -45304,7 +44705,6 @@ var init_StatCard = __esm({
45304
44705
  init_Button();
45305
44706
  init_Sparkline();
45306
44707
  init_useEventBus();
45307
- init_useTranslate();
45308
44708
  init_Icon();
45309
44709
  StatCard = ({
45310
44710
  label: propLabel,
@@ -45331,7 +44731,7 @@ var init_StatCard = __esm({
45331
44731
  const Icon3 = typeof iconProp === "string" ? resolveIcon(iconProp) ?? void 0 : iconProp;
45332
44732
  const labelToUse = propLabel ?? propTitle;
45333
44733
  const eventBus = useEventBus();
45334
- const { t } = useTranslate();
44734
+ const { t } = hooks.useTranslate();
45335
44735
  const handleActionClick = React85__namespace.default.useCallback(() => {
45336
44736
  if (action?.event) {
45337
44737
  eventBus.emit(`UI:${action.event}`, {});
@@ -45622,7 +45022,7 @@ function VariablePanel({
45622
45022
  variables,
45623
45023
  className
45624
45024
  }) {
45625
- const { t } = useTranslate();
45025
+ const { t } = hooks.useTranslate();
45626
45026
  return /* @__PURE__ */ jsxRuntime.jsxs(VStack, { className: cn("p-3 rounded-lg bg-card border border-border", className), gap: "sm", children: [
45627
45027
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body2", className: "text-muted-foreground font-medium", children: t("stateArchitect.variables", { name: entityName }) }),
45628
45028
  variables.map((v) => {
@@ -45660,7 +45060,6 @@ var init_VariablePanel = __esm({
45660
45060
  "components/game/organisms/puzzles/state-architect/VariablePanel.tsx"() {
45661
45061
  init_atoms2();
45662
45062
  init_cn();
45663
- init_useTranslate();
45664
45063
  VariablePanel.displayName = "VariablePanel";
45665
45064
  }
45666
45065
  });
@@ -45686,7 +45085,7 @@ function StateArchitectBoard({
45686
45085
  className
45687
45086
  }) {
45688
45087
  const { emit } = useEventBus();
45689
- const { t } = useTranslate();
45088
+ const { t } = hooks.useTranslate();
45690
45089
  const resolved = Array.isArray(entity) ? entity[0] : entity;
45691
45090
  const [transitions, setTransitions] = React85.useState(resolved?.transitions ?? []);
45692
45091
  const [headerError, setHeaderError] = React85.useState(false);
@@ -45977,7 +45376,6 @@ var init_StateArchitectBoard = __esm({
45977
45376
  init_atoms2();
45978
45377
  init_cn();
45979
45378
  init_useEventBus();
45980
- init_useTranslate();
45981
45379
  init_TraitStateViewer();
45982
45380
  init_StateNode();
45983
45381
  init_TransitionArrow();
@@ -45997,7 +45395,6 @@ var init_StatsOrganism = __esm({
45997
45395
  "components/marketing/organisms/StatsOrganism.tsx"() {
45998
45396
  "use client";
45999
45397
  init_cn();
46000
- init_useTranslate();
46001
45398
  init_StatsGrid();
46002
45399
  init_LoadingState();
46003
45400
  init_ErrorState();
@@ -46008,7 +45405,7 @@ var init_StatsOrganism = __esm({
46008
45405
  className,
46009
45406
  columns = 3
46010
45407
  }) => {
46011
- const { t } = useTranslate();
45408
+ const { t } = hooks.useTranslate();
46012
45409
  const items = React85.useMemo(
46013
45410
  () => Array.isArray(entity) ? entity : entity && typeof entity === "object" ? [entity] : [],
46014
45411
  [entity]
@@ -46040,7 +45437,6 @@ var init_StepFlowOrganism = __esm({
46040
45437
  "components/core/organisms/StepFlowOrganism.tsx"() {
46041
45438
  "use client";
46042
45439
  init_cn();
46043
- init_useTranslate();
46044
45440
  init_Stack();
46045
45441
  init_Typography();
46046
45442
  init_StepFlow();
@@ -46056,7 +45452,7 @@ var init_StepFlowOrganism = __esm({
46056
45452
  heading,
46057
45453
  subtitle
46058
45454
  }) => {
46059
- const { t } = useTranslate();
45455
+ const { t } = hooks.useTranslate();
46060
45456
  const items = React85.useMemo(
46061
45457
  () => Array.isArray(entity) ? entity : entity && typeof entity === "object" ? [entity] : [],
46062
45458
  [entity]
@@ -46210,7 +45606,6 @@ var init_TeamOrganism = __esm({
46210
45606
  "components/marketing/organisms/TeamOrganism.tsx"() {
46211
45607
  "use client";
46212
45608
  init_cn();
46213
- init_useTranslate();
46214
45609
  init_Stack();
46215
45610
  init_Typography();
46216
45611
  init_SimpleGrid();
@@ -46225,7 +45620,7 @@ var init_TeamOrganism = __esm({
46225
45620
  heading,
46226
45621
  subtitle
46227
45622
  }) => {
46228
- const { t } = useTranslate();
45623
+ const { t } = hooks.useTranslate();
46229
45624
  const items = React85.useMemo(
46230
45625
  () => Array.isArray(entity) ? entity : entity && typeof entity === "object" ? [entity] : [],
46231
45626
  [entity]
@@ -46268,7 +45663,6 @@ var init_Timeline = __esm({
46268
45663
  init_LoadingState();
46269
45664
  init_ErrorState();
46270
45665
  init_EmptyState();
46271
- init_useTranslate();
46272
45666
  lookStyles10 = {
46273
45667
  "vertical-compact": "gap-1 [&>*]:py-1",
46274
45668
  "vertical-spacious": "",
@@ -46308,7 +45702,7 @@ var init_Timeline = __esm({
46308
45702
  className,
46309
45703
  look = "vertical-spacious"
46310
45704
  }) => {
46311
- const { t } = useTranslate();
45705
+ const { t } = hooks.useTranslate();
46312
45706
  const entityData = Array.isArray(entity) ? entity : [];
46313
45707
  const items = React85__namespace.default.useMemo(() => {
46314
45708
  if (propItems) return propItems;
@@ -47760,7 +47154,7 @@ function UISlotComponent({
47760
47154
  }) {
47761
47155
  const { slots, clear } = context.useUISlots();
47762
47156
  const eventBus = useEventBus();
47763
- const { t } = useTranslate();
47157
+ const { t } = hooks.useTranslate();
47764
47158
  const suspenseConfig = React85.useContext(SuspenseConfigContext);
47765
47159
  const contained = React85.useContext(SlotContainedContext);
47766
47160
  const content = slots[slot];
@@ -47862,7 +47256,7 @@ function CompiledPortal({ slot, className, pattern, sourceTrait, children }) {
47862
47256
  const [portalRoot, setPortalRoot] = React85.useState(null);
47863
47257
  const slotsBus = context.useUISlots();
47864
47258
  const eventBus = useEventBus();
47865
- const { t } = useTranslate();
47259
+ const { t } = hooks.useTranslate();
47866
47260
  React85.useEffect(() => {
47867
47261
  setPortalRoot(getOrCreatePortalRoot());
47868
47262
  }, []);
@@ -48152,7 +47546,7 @@ function SlotContentRenderer({
48152
47546
  }
48153
47547
  }
48154
47548
  const eventBus = useEventBus();
48155
- const { t } = useTranslate();
47549
+ const { t } = hooks.useTranslate();
48156
47550
  const schemaCtx = useEntitySchemaOptional();
48157
47551
  let entityDef;
48158
47552
  if (typeof entityProp === "string" && entityProp.length > 0 && schemaCtx) {
@@ -48340,7 +47734,6 @@ var init_UISlotRenderer = __esm({
48340
47734
  init_Box();
48341
47735
  init_Typography();
48342
47736
  init_useEventBus();
48343
- init_useTranslate();
48344
47737
  init_slot_types();
48345
47738
  init_cn();
48346
47739
  init_ErrorBoundary();