@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.
@@ -5,6 +5,7 @@ var React97 = require('react');
5
5
  var logger = require('@almadar/logger');
6
6
  var ELK = require('elkjs/lib/elk.bundled.js');
7
7
  var react = require('@xyflow/react');
8
+ var hooks = require('@almadar/ui/hooks');
8
9
  var LucideIcons2 = require('lucide-react');
9
10
  var PhosphorIcons = require('@phosphor-icons/react');
10
11
  var TablerIcons = require('@tabler/icons-react');
@@ -3900,504 +3901,6 @@ var init_Stack = __esm({
3900
3901
  HStack = (props) => /* @__PURE__ */ jsxRuntime.jsx(Stack, { direction: "horizontal", ...props });
3901
3902
  }
3902
3903
  });
3903
-
3904
- // locales/en.json
3905
- var en_default;
3906
- var init_en = __esm({
3907
- "locales/en.json"() {
3908
- en_default = {
3909
- $meta: {
3910
- locale: "en",
3911
- direction: "ltr"
3912
- },
3913
- "common.save": "Save",
3914
- "common.cancel": "Cancel",
3915
- "common.delete": "Delete",
3916
- "common.close": "Close",
3917
- "common.confirm": "Are you sure?",
3918
- "common.create": "Create",
3919
- "common.edit": "Edit",
3920
- "common.view": "View",
3921
- "common.add": "Add",
3922
- "common.remove": "Remove",
3923
- "common.search": "Search...",
3924
- "common.filter": "Filter",
3925
- "common.actions": "Actions",
3926
- "common.yes": "Yes",
3927
- "common.no": "No",
3928
- "common.selected": "selected",
3929
- "common.ok": "OK",
3930
- "common.done": "Done",
3931
- "common.apply": "Apply",
3932
- "common.reset": "Reset",
3933
- "common.refresh": "Refresh",
3934
- "common.export": "Export",
3935
- "common.import": "Import",
3936
- "common.copy": "Copy",
3937
- "common.settings": "Settings",
3938
- "nav.previous": "Previous",
3939
- "nav.next": "Next",
3940
- "nav.back": "Back",
3941
- "nav.home": "Home",
3942
- "form.submit": "Submit",
3943
- "form.saving": "Saving...",
3944
- "form.required": "This field is required",
3945
- "form.invalidEmail": "Enter a valid email address",
3946
- "form.selectPlaceholder": "Select {{label}}...",
3947
- "form.searchPlaceholder": "Search {{entity}}...",
3948
- "table.empty.title": "No items found",
3949
- "table.empty.description": "No items to display.",
3950
- "table.search.placeholder": "Search...",
3951
- "table.pagination.showing": "Showing {{start}} to {{end}} of {{total}} results",
3952
- "table.pagination.page": "Page {{page}} of {{totalPages}}",
3953
- "table.bulk.selected": "{{count}} selected",
3954
- "table.loading": "Loading...",
3955
- "status.loading": "Loading...",
3956
- "status.scheduled": "Scheduled",
3957
- "status.inProgress": "In Progress",
3958
- "status.completed": "Completed",
3959
- "status.cancelled": "Cancelled",
3960
- "status.pending": "Pending",
3961
- "status.active": "Active",
3962
- "status.inactive": "Inactive",
3963
- "status.draft": "Draft",
3964
- "status.archived": "Archived",
3965
- "error.generic": "Something went wrong",
3966
- "error.retry": "Try again",
3967
- "error.notFound": "Not found",
3968
- "error.loadFailed": "Failed to load: {{message}}",
3969
- "error.configMissing": "Configuration not found for: {{id}}",
3970
- "common.loading": "Loading...",
3971
- "common.showMore": "Show More",
3972
- "common.showLess": "Show Less",
3973
- "common.noResults": "No results found",
3974
- "common.saveChanges": "Save Changes",
3975
- "common.retry": "Retry",
3976
- "common.open": "Open",
3977
- "common.back": "Back",
3978
- "empty.noItems": "No items",
3979
- "empty.noData": "No data available",
3980
- "empty.noItemsYet": "No items yet",
3981
- "empty.noItemsAdded": "No items added yet",
3982
- "empty.noOptionsFound": "No options found",
3983
- "list.addItemPlaceholder": "Add new item...",
3984
- "error.occurred": "An error occurred",
3985
- "error.failedToLoad": "Failed to load data",
3986
- "wizard.back": "Back",
3987
- "wizard.next": "Next",
3988
- "wizard.complete": "Complete",
3989
- "wizard.stepOf": "Step {{current}} of {{total}}",
3990
- "pagination.previous": "Previous",
3991
- "pagination.next": "Next",
3992
- "pagination.total": "Total:",
3993
- "pagination.show": "Show:",
3994
- "pagination.goTo": "Go to:",
3995
- "pagination.go": "Go",
3996
- "auth.signIn": "Sign in",
3997
- "auth.signOut": "Sign out",
3998
- "dialog.confirm": "Confirm",
3999
- "dialog.cancel": "Cancel",
4000
- "dialog.loading": "Loading...",
4001
- "dialog.delete.title": "Delete {{item}}?",
4002
- "dialog.delete.message": "This action cannot be undone.",
4003
- "trait.availableActions": "Available Actions",
4004
- "trait.transitions": "Transitions",
4005
- "trait.availableNow": "Available now",
4006
- "book.startReading": "Start Reading",
4007
- "book.tableOfContents": "Table of Contents",
4008
- "book.partNumber": "Part {{number}}",
4009
- "book.print": "Print",
4010
- "book.previousPage": "Previous page",
4011
- "book.nextPage": "Next page",
4012
- "quiz.showAnswer": "Show answer",
4013
- "quiz.hideAnswer": "Hide answer",
4014
- "aria.closeModal": "Close modal",
4015
- "aria.closeToast": "Dismiss toast",
4016
- "aria.closeAlert": "Dismiss alert",
4017
- "aria.removeFilter": "Remove filter",
4018
- "aria.closeDrawer": "Close drawer",
4019
- "aria.closePanel": "Close panel",
4020
- "aria.previousImage": "Previous image",
4021
- "aria.nextImage": "Next image",
4022
- "aria.dismiss": "Dismiss",
4023
- "aria.previousSlide": "Previous slide",
4024
- "aria.nextSlide": "Next slide",
4025
- "aria.previousDays": "Previous days",
4026
- "aria.nextDays": "Next days",
4027
- "aria.decrease": "Decrease",
4028
- "aria.increase": "Increase",
4029
- "aria.breadcrumb": "Breadcrumb",
4030
- "aria.tableOfContents": "Table of contents",
4031
- "aria.docsSidebar": "Documentation sidebar",
4032
- "aria.selectAllRows": "Select all rows",
4033
- "aria.selectAll": "Select all",
4034
- "aria.upvote": "Upvote",
4035
- "aria.downvote": "Downvote",
4036
- "aria.qrScanner": "QR scanner",
4037
- "aria.mockScanDev": "Mock scan (dev)",
4038
- "aria.openMenu": "Open menu",
4039
- "aria.closeMenu": "Close menu",
4040
- "aria.openSidebar": "Open sidebar",
4041
- "sidebar.expand": "Expand sidebar",
4042
- "sidebar.collapse": "Collapse sidebar",
4043
- "sidebar.close": "Close sidebar",
4044
- "loading.items": "Loading items...",
4045
- "card.imageAlt": "Image",
4046
- "canvas.emptyMessage": "No content",
4047
- "canvas.errorTitle": "Canvas error",
4048
- "book.noData": "No data",
4049
- "common.notifications": "Notifications",
4050
- "common.remaining": "{{count}} remaining",
4051
- "error.somethingWentWrong": "Something went wrong",
4052
- "error.loadingItems": "Loading items...",
4053
- "error.noItemsFound": "No items found",
4054
- "debug.noEntityData": "No entity data",
4055
- "debug.noEntities": "No entities",
4056
- "debug.noTicks": "No ticks registered",
4057
- "debug.noActiveTraits": "No active traits",
4058
- "debug.noGuardEvaluations": "No guard evaluations",
4059
- "debug.noBridgeData": "No bridge data",
4060
- "debug.status": "Status",
4061
- "debug.eventsForwarded": "Events Forwarded (Client \u2192 Server)",
4062
- "debug.eventsReceived": "Events Received (Server \u2192 Client)",
4063
- "debug.lastHeartbeat": "Last Heartbeat",
4064
- "debug.noEventsYet": "No events yet",
4065
- "debug.noTransitionsRecorded": "No transitions recorded",
4066
- "debug.noVerificationChecks": "No verification checks yet",
4067
- "display.chartError": "Chart error",
4068
- "display.codeViewerError": "Code viewer error",
4069
- "display.noCode": "No code",
4070
- "display.documentError": "Document error",
4071
- "display.noDocument": "No document",
4072
- "display.graphError": "Graph error",
4073
- "display.noGraphData": "No graph data",
4074
- "display.galleryError": "Gallery error",
4075
- "display.noMedia": "No media",
4076
- "display.meterError": "Meter error",
4077
- "display.signaturePadError": "Signature pad error",
4078
- "display.timelineError": "Timeline error",
4079
- "display.noEvents": "No events",
4080
- "template.features": "Features",
4081
- "template.howItWorks": "How It Works",
4082
- "template.showcase": "Showcase",
4083
- "template.faq": "Frequently Asked Questions",
4084
- "template.ourTeam": "Our Team",
4085
- "template.caseStudies": "Case Studies",
4086
- "richBlockEditor.toolbar.text": "Text",
4087
- "richBlockEditor.toolbar.h1": "H1",
4088
- "richBlockEditor.toolbar.h2": "H2",
4089
- "richBlockEditor.toolbar.h3": "H3",
4090
- "richBlockEditor.toolbar.bulletList": "Bullet list",
4091
- "richBlockEditor.toolbar.numbered": "Numbered",
4092
- "richBlockEditor.toolbar.quote": "Quote",
4093
- "richBlockEditor.toolbar.code": "Code",
4094
- "richBlockEditor.toolbar.divider": "Divider",
4095
- "richBlockEditor.toolbar.image": "Image",
4096
- "richBlockEditor.blockType.paragraph": "Text",
4097
- "richBlockEditor.blockType.heading1": "Heading 1",
4098
- "richBlockEditor.blockType.heading2": "Heading 2",
4099
- "richBlockEditor.blockType.heading3": "Heading 3",
4100
- "richBlockEditor.blockType.bulletList": "Bullet list",
4101
- "richBlockEditor.blockType.numberedList": "Numbered list",
4102
- "richBlockEditor.blockType.quote": "Quote",
4103
- "richBlockEditor.blockType.code": "Code",
4104
- "richBlockEditor.blockType.divider": "Divider",
4105
- "richBlockEditor.blockType.image": "Image",
4106
- "richBlockEditor.blockActions": "Block actions",
4107
- "richBlockEditor.duplicate": "Duplicate",
4108
- "richBlockEditor.turnInto": "Turn into",
4109
- "richBlockEditor.placeholder.heading1": "Heading 1",
4110
- "richBlockEditor.placeholder.heading2": "Heading 2",
4111
- "richBlockEditor.placeholder.heading3": "Heading 3",
4112
- "richBlockEditor.placeholder.quote": "Quote",
4113
- "richBlockEditor.placeholder.code": "Enter code",
4114
- "richBlockEditor.placeholder.paragraph": "Start writing...",
4115
- "richBlockEditor.placeholder.listItem": "List item",
4116
- "richBlockEditor.placeholder.caption": "Caption (optional)",
4117
- "richBlockEditor.aria.heading1Block": "Heading 1 block",
4118
- "richBlockEditor.aria.heading2Block": "Heading 2 block",
4119
- "richBlockEditor.aria.heading3Block": "Heading 3 block",
4120
- "richBlockEditor.aria.quoteBlock": "Quote block",
4121
- "richBlockEditor.aria.codeBlock": "Code block",
4122
- "richBlockEditor.aria.codeLanguage": "Code language",
4123
- "richBlockEditor.aria.imageUrl": "Image URL",
4124
- "richBlockEditor.aria.imageCaption": "Image caption",
4125
- "richBlockEditor.aria.listItem": "List item",
4126
- "richBlockEditor.aria.removeListItem": "Remove list item",
4127
- "richBlockEditor.aria.paragraphBlock": "Paragraph block",
4128
- "richBlockEditor.embeddedImage": "Embedded image",
4129
- "richBlockEditor.noImageUrl": "No image URL set",
4130
- "richBlockEditor.addItem": "Add item",
4131
- "richBlockEditor.insertParagraphBelow": "Insert paragraph below",
4132
- "richBlockEditor.editorToolbar": "Block editor toolbar",
4133
- "richBlockEditor.insertEntry": "Insert {{label}}",
4134
- "versionDiff.compare": "Compare",
4135
- "versionDiff.to": "to",
4136
- "versionDiff.beforeRevision": "Before revision",
4137
- "versionDiff.afterRevision": "After revision",
4138
- "versionDiff.switchToInline": "Switch to inline view",
4139
- "versionDiff.switchToSideBySide": "Switch to side-by-side view",
4140
- "versionDiff.revert": "Revert",
4141
- "versionDiff.byAuthor": " by {{author}}",
4142
- "violationAlert.actionType.measure": "Corrective Measure",
4143
- "violationAlert.actionType.admin": "Administrative Action",
4144
- "violationAlert.actionType.penalty": "Penalty Proceedings",
4145
- "violationAlert.fallbackMessage": "Violation",
4146
- "violationAlert.adminLabel": "Admin:",
4147
- "violationAlert.penaltyLabel": "Penalty:",
4148
- "violationAlert.goToField": "Go to field",
4149
- "branchingLogic.title": "Branching logic",
4150
- "branchingLogic.if": "If",
4151
- "branchingLogic.goTo": "go to",
4152
- "branchingLogic.rules": "Rules",
4153
- "branchingLogic.logicGraph": "Logic graph",
4154
- "branchingLogic.addRule": "Add rule",
4155
- "branchingLogic.deleteRule": "Delete rule",
4156
- "branchingLogic.endOfSurvey": "End of survey",
4157
- "branchingLogic.brokenReference": "Broken reference",
4158
- "branchingLogic.selectQuestion": "Select question",
4159
- "branchingLogic.selectTarget": "Select target",
4160
- "branchingLogic.selectValue": "Select value",
4161
- "branchingLogic.addValue": "Add value",
4162
- "branchingLogic.value": "Value",
4163
- "branchingLogic.typeValuePressEnter": "Type value, press Enter",
4164
- "branchingLogic.operatorEquals": "equals",
4165
- "branchingLogic.operatorNotEquals": "does not equal",
4166
- "branchingLogic.operatorContains": "contains",
4167
- "branchingLogic.operatorIn": "is one of",
4168
- "branchingLogic.graphAriaLabel": "Branching logic graph",
4169
- "branchingLogic.ruleCountOne": "{{count}} rule",
4170
- "branchingLogic.ruleCountOther": "{{count}} rules",
4171
- "branchingLogic.brokenCount": "{{count}} broken",
4172
- "branchingLogic.emptyNoQuestions": "Add questions before building branching rules.",
4173
- "branchingLogic.emptyNoRules": "No rules yet. Add a rule to define branching logic.",
4174
- "filterGroup.filters": "Filters",
4175
- "filterGroup.all": "All",
4176
- "filterGroup.clear": "Clear",
4177
- "filterGroup.clearAll": "Clear all",
4178
- "filterGroup.from": "From",
4179
- "filterGroup.to": "To",
4180
- "filterGroup.allOf": "All {{label}}",
4181
- "filterGroup.activeCount": "{{count}} active",
4182
- "debug.guardEvaluationsHint": "Guard evaluations will appear when transitions or ticks with guards execute",
4183
- "debug.expression": "Expression",
4184
- "debug.inputs": "Inputs",
4185
- "debug.trait": "Trait",
4186
- "debug.filterAll": "All",
4187
- "debug.filterPassed": "Passed",
4188
- "debug.filterFailed": "Failed",
4189
- "debug.traitsInitHint": "Traits will appear when the state machine initializes",
4190
- "debug.traitsMountHint": "Traits will appear when components using them are mounted",
4191
- "debug.activeStates": "Active States",
4192
- "debug.availableEvents": "Available Events",
4193
- "debug.noTransitionsFromState": "No transitions from current state",
4194
- "debug.guarded": "guarded",
4195
- "debug.otherEvents": "Other Events (not available from current state)",
4196
- "debug.recentTransitions": "Recent Transitions",
4197
- "debug.transitionsCount": "{{count}} transitions",
4198
- "debug.states": "States",
4199
- "debug.transitions": "Transitions",
4200
- "debug.guards": "Guards",
4201
- "debug.debugModeHint": "Debug mode may not be enabled",
4202
- "debug.entitiesSpawnHint": "Entities will appear when spawned",
4203
- "debug.singleton": "Singleton",
4204
- "debug.singletonsCount": "Singletons ({{count}})",
4205
- "debug.runtimeCount": "Runtime ({{count}})",
4206
- "debug.moreEntities": "+{{count}} more entities",
4207
- "debug.persistent": "Persistent",
4208
- "debug.loadedCount": "{{count}} loaded",
4209
- "debug.notLoaded": "not loaded",
4210
- "debug.eventsExecuteHint": "Events will appear as traits, ticks, and other systems execute",
4211
- "debug.allCount": "All ({{count}})",
4212
- "debug.autoScroll": "Auto-scroll",
4213
- "debug.transitionsProcessHint": "Transitions will appear as the state machine processes events",
4214
- "debug.transitionsRecorded": "{{count}} transitions recorded",
4215
- "debug.guardLabel": "guard:",
4216
- "debug.effectsCount": "{{count}} effects",
4217
- "debug.bridgeInitHint": "The ServerBridge has not been initialized. Bridge health will appear once the runtime connects to the server.",
4218
- "debug.never": "Never",
4219
- "debug.connected": "Connected",
4220
- "debug.disconnected": "Disconnected",
4221
- "debug.lastError": "Last Error",
4222
- "debug.totalEventsProcessed": "{{count}} total events processed",
4223
- "debug.server": "server",
4224
- "debug.clientEffectsCount": "{{count}} clientEffects",
4225
- "debug.emitLabel": "emit:",
4226
- "debug.rowsCount": "{{count}} rows",
4227
- "debug.serverResponse": "server response",
4228
- "debug.collapseVerificationTimeline": "Collapse verification timeline",
4229
- "debug.expandVerificationTimeline": "Expand verification timeline",
4230
- "debug.failCount": "{{count}} fail",
4231
- "debug.ok": "OK",
4232
- "debug.localCount": "{{count}} local",
4233
- "debug.serverCount": "{{count}} server",
4234
- "debug.waitingForTransitions": "Waiting for transitions...",
4235
- "debug.tabDispatch": "Dispatch",
4236
- "debug.tabVerify": "Verify",
4237
- "debug.tabVerifyAlert": "Verify (!)",
4238
- "debug.tabTimeline": "Timeline",
4239
- "debug.tabBridge": "Bridge",
4240
- "debug.tabTraits": "Traits",
4241
- "debug.tabTicks": "Ticks",
4242
- "debug.tabEntities": "Entities",
4243
- "debug.tabEvents": "Events",
4244
- "debug.tabGuards": "Guards",
4245
- "debug.debugger": "Debugger",
4246
- "debug.failedCount": "{{count}} failed",
4247
- "debug.traitsCount": "{{count}} traits",
4248
- "debug.idle": "Idle",
4249
- "debug.openDebugger": "Open Debugger (`)",
4250
- "debug.kflowVerifier": "KFlow Verifier",
4251
- "debug.allPassing": "All passing",
4252
- "debug.runtime": "Runtime",
4253
- "debug.close": "Close (`)",
4254
- "debug.toggleHint": "Press ` to toggle | window.__orbitalVerification for automation",
4255
- "replyTree.expandReplies": "Expand replies",
4256
- "replyTree.collapseReplies": "Collapse replies",
4257
- "replyTree.voteOnReplyBy": "Vote on reply by {{author}}",
4258
- "replyTree.replyTo": "Reply to {{author}}",
4259
- "replyTree.replyToPlaceholder": "Reply to {{author}}\u2026",
4260
- "replyTree.reply": "Reply",
4261
- "replyTree.flagReplyBy": "Flag reply by {{author}}",
4262
- "replyTree.flag": "Flag",
4263
- "replyTree.send": "Send",
4264
- "replyTree.continueThread": "Continue thread",
4265
- "replyTree.noRepliesYet": "No replies yet.",
4266
- "signaturePad.label": "Signature",
4267
- "signaturePad.helperText": "Draw your signature above",
4268
- "signaturePad.clear": "Clear",
4269
- "signaturePad.confirm": "Confirm",
4270
- "qrScanner.cameraUnavailable": "Camera unavailable",
4271
- "qrScanner.paused": "Paused",
4272
- "qrScanner.resumeScanning": "Resume scanning",
4273
- "qrScanner.pauseScanning": "Pause scanning",
4274
- "qrScanner.switchToFrontCamera": "Switch to front camera",
4275
- "qrScanner.switchToRearCamera": "Switch to rear camera",
4276
- "qrScanner.mockScan": "Mock Scan",
4277
- "docSearch.placeholder": "Search documentation...",
4278
- "stateMachine.loading": "Loading state machine\u2026",
4279
- "stateMachine.noStateMachine": "No state machine to visualize",
4280
- "avl.trigger": "Trigger",
4281
- "avl.guard": "Guard",
4282
- "avl.effects": "Effects",
4283
- "avl.props": "Props",
4284
- "avl.entity": "Entity",
4285
- "avl.traits": "Traits",
4286
- "avl.transition": "Transition",
4287
- "avl.onEntity": "on {{entity}}",
4288
- "avl.linkedTo": "linked to {{entity}}",
4289
- "avl.pressEscToZoomOut": "Press Esc to zoom out",
4290
- "avl.zoomIn": "Zoom in",
4291
- "avl.zoomOut": "Zoom out",
4292
- "avl.orbitalLabel": "Orbital: {{name}}",
4293
- "avl.orbitalLabelHighlighted": "Orbital: {{name}} (highlighted)",
4294
- "avl.noTraitData": "No trait data",
4295
- "avl.computingLayout": "Computing layout...",
4296
- "avl.noStateMachine": "No state machine",
4297
- "avl.listensFor": "listens for {{event}}",
4298
- "avl.emits": "emits {{event}}",
4299
- "avl.pageLayout": "Page Layout",
4300
- "avl.overlaySuffix": "(overlay)",
4301
- "orbPreview.previewBadge": "Preview",
4302
- "orbPreview.doubleClickToOpen": "Double-click to open",
4303
- "orbPreview.dropToAddAndOpen": "Drop to add and open",
4304
- "orbPreview.dispatching": "Coordinator is dispatching to this orbital",
4305
- "orbPreview.noPreview": "No preview available",
4306
- "orbPreview.screensCount": "{{count}} screens",
4307
- "detailView.noTransitionData": "No transition data",
4308
- "orbInspector.required": "req",
4309
- "orbInspector.addField": "Add Field",
4310
- "orbInspector.serviceMode": "Service Mode",
4311
- "orbInspector.standalone": "Standalone",
4312
- "orbInspector.embedded": "Embedded",
4313
- "orbInspector.rendersOwnUi": "Renders its own UI",
4314
- "orbInspector.headless": "Headless, wired to other behaviors",
4315
- "orbInspector.addEffect": "Add Effect",
4316
- "orbInspector.guardExpression": "Guard expression",
4317
- "orbInspector.selectPatternForStyles": "Select a pattern to view its style tokens.",
4318
- "orbInspector.tokens": "Tokens",
4319
- "orbInspector.noTokenContract": "No token contract declared for this pattern.",
4320
- "orbInspector.variant": "Variant",
4321
- "orbInspector.size": "Size",
4322
- "orbInspector.statesCount": "{{count}} states",
4323
- "orbInspector.onEntity": " on {{entity}}",
4324
- "orbInspector.projectThemeTokens": "Project theme tokens",
4325
- "orbInspector.tokenGroup.colors": "Colors",
4326
- "orbInspector.tokenGroup.radii": "Radii",
4327
- "orbInspector.tokenGroup.spacing": "Spacing",
4328
- "orbInspector.tokenGroup.shadows": "Shadows",
4329
- "orbInspector.tab.inspector": "Inspector",
4330
- "orbInspector.tab.styles": "Styles",
4331
- "orbInspector.tab.code": "Code",
4332
- "canvas.goBackToOverview": "Go back to overview",
4333
- "canvas.overview": "Overview",
4334
- "canvas.expanded": "Expanded",
4335
- "canvas.modulesCount": "{{count}} modules",
4336
- "canvas.screensCount": "{{count}} screens",
4337
- "canvas.switchToView": "Switch to {{label}} view",
4338
- "lawReference.viewFullText": "View full law text",
4339
- "statCard.defaultLabel": "Stat",
4340
- "statCard.vsLastPeriod": "vs last period",
4341
- "mediaGallery.upload": "Upload",
4342
- "mediaGallery.noMediaDescription": "No media items to display.",
4343
- "pagination.jumpPlaceholder": "Page",
4344
- "table.selectRow": "Select row {{id}}",
4345
- "card.selectItem": "Select {{item}}",
4346
- "card.itemFallback": "item",
4347
- "fileTree.noFiles": "No files",
4348
- "masterDetail.selectItem": "Select an item to view details",
4349
- "empty.createFirst": "Create your first item to get started.",
4350
- "upload.dropOrBrowse": "Drop files here or click to browse",
4351
- "upload.dropFilesHere": "Drop files here",
4352
- "upload.accepted": "Accepted: {{accept}}",
4353
- "upload.maxSize": "Max size: {{size}}",
4354
- "upload.maxFiles": "Up to {{count}} files",
4355
- "upload.error.maxFiles": "Maximum {{count}} files allowed",
4356
- "upload.error.invalidType": "Invalid file type: {{name}}",
4357
- "upload.error.tooLarge": "File too large: {{name}} (max {{size}})",
4358
- "optionConstraint.requiredOne": "Required, pick 1",
4359
- "optionConstraint.optionalOne": "Optional, pick up to 1",
4360
- "optionConstraint.pickExactly": "Pick exactly {{count}}",
4361
- "optionConstraint.pickRange": "Pick {{min}}-{{max}}",
4362
- "optionConstraint.pickAtLeast": "Pick at least {{count}}",
4363
- "optionConstraint.pickUpTo": "Pick up to {{count}}",
4364
- "optionConstraint.optional": "Optional",
4365
- "optionConstraint.outOfStock": "Out of stock",
4366
- "optionConstraint.error.pickOne": "Pick 1 option",
4367
- "optionConstraint.error.pickOnlyOne": "Pick only 1 option",
4368
- "optionConstraint.error.pickMore": "Pick at least {{count}} more",
4369
- "optionConstraint.error.removeOptions": "Remove {{count}} options",
4370
- "stateMachine.pinned": "Pinned",
4371
- "stateMachine.eventCount": "{{count}} events",
4372
- "stateMachine.externalEffects": "External Effects",
4373
- "stateMachine.legend.initial": "Initial",
4374
- "stateMachine.legend.final": "Final",
4375
- "stateMachine.legend.state": "State",
4376
- "stateMachine.legend.multiEvent": "Multi-event",
4377
- "relationSelect.selectPlaceholder": "Select..."
4378
- };
4379
- }
4380
- });
4381
- function useTranslate() {
4382
- return React97.useContext(I18nContext);
4383
- }
4384
- var _meta, coreMessages, coreLocale, I18nContext;
4385
- var init_useTranslate = __esm({
4386
- "hooks/useTranslate.ts"() {
4387
- "use client";
4388
- init_en();
4389
- ({ $meta: _meta, ...coreMessages } = en_default);
4390
- coreLocale = coreMessages;
4391
- I18nContext = React97.createContext({
4392
- locale: "en",
4393
- direction: "ltr",
4394
- t: (key) => coreLocale[key] ?? key
4395
- // core locale fallback
4396
- });
4397
- I18nContext.displayName = "I18nContext";
4398
- I18nContext.Provider;
4399
- }
4400
- });
4401
3904
  var MAX_VISIBLE_EFFECTS; exports.AvlTransitionLane = void 0;
4402
3905
  var init_AvlTransitionLane = __esm({
4403
3906
  "components/avl/molecules/AvlTransitionLane.tsx"() {
@@ -5027,7 +4530,6 @@ var log2, SWIM_GUTTER, CENTER_W; exports.BehaviorView = void 0;
5027
4530
  var init_BehaviorView = __esm({
5028
4531
  "components/avl/molecules/BehaviorView.tsx"() {
5029
4532
  "use client";
5030
- init_useTranslate();
5031
4533
  init_AvlState();
5032
4534
  init_AvlTransitionLane();
5033
4535
  init_AvlSwimLane();
@@ -5037,7 +4539,7 @@ var init_BehaviorView = __esm({
5037
4539
  SWIM_GUTTER = 120;
5038
4540
  CENTER_W = 360;
5039
4541
  exports.BehaviorView = ({ data }) => {
5040
- const { t } = useTranslate();
4542
+ const { t } = hooks.useTranslate();
5041
4543
  const [layout, setLayout] = React97.useState(null);
5042
4544
  const traitName = data.traits[0]?.name;
5043
4545
  const traitData = traitName ? data.traitDetails[traitName] : void 0;
@@ -6879,7 +6381,6 @@ var init_Modal = __esm({
6879
6381
  init_Overlay();
6880
6382
  init_cn();
6881
6383
  init_useEventBus();
6882
- init_useTranslate();
6883
6384
  sizeClasses2 = {
6884
6385
  sm: "max-w-md",
6885
6386
  md: "max-w-2xl",
@@ -6917,7 +6418,7 @@ var init_Modal = __esm({
6917
6418
  look = "centered-card"
6918
6419
  }) => {
6919
6420
  const eventBus = useEventBus();
6920
- const { t } = useTranslate();
6421
+ const { t } = hooks.useTranslate();
6921
6422
  const modalRef = React97.useRef(null);
6922
6423
  const previousActiveElement = React97.useRef(null);
6923
6424
  const [dragY, setDragY] = React97.useState(0);
@@ -7101,7 +6602,6 @@ var init_Drawer = __esm({
7101
6602
  init_Overlay();
7102
6603
  init_cn();
7103
6604
  init_useEventBus();
7104
- init_useTranslate();
7105
6605
  sizeWidths = {
7106
6606
  sm: "w-full sm:w-80",
7107
6607
  // 320px
@@ -7127,7 +6627,7 @@ var init_Drawer = __esm({
7127
6627
  closeEvent
7128
6628
  }) => {
7129
6629
  const eventBus = useEventBus();
7130
- const { t } = useTranslate();
6630
+ const { t } = hooks.useTranslate();
7131
6631
  const drawerRef = React97.useRef(null);
7132
6632
  const previousActiveElement = React97.useRef(null);
7133
6633
  React97.useEffect(() => {
@@ -7374,7 +6874,6 @@ var init_Toast = __esm({
7374
6874
  init_Badge();
7375
6875
  init_cn();
7376
6876
  init_useEventBus();
7377
- init_useTranslate();
7378
6877
  variantClasses = {
7379
6878
  success: "bg-card border-[length:var(--border-width)] border-success",
7380
6879
  error: "bg-card border-[length:var(--border-width)] border-error",
@@ -7408,7 +6907,7 @@ var init_Toast = __esm({
7408
6907
  actionEvent
7409
6908
  }) => {
7410
6909
  const eventBus = useEventBus();
7411
- const { t } = useTranslate();
6910
+ const { t } = hooks.useTranslate();
7412
6911
  const handleDismiss = () => {
7413
6912
  if (dismissEvent) eventBus.emit(`UI:${dismissEvent}`, {});
7414
6913
  onDismiss?.();
@@ -8336,7 +7835,6 @@ var init_Input = __esm({
8336
7835
  "components/core/atoms/Input.tsx"() {
8337
7836
  init_cn();
8338
7837
  init_Icon();
8339
- init_useTranslate();
8340
7838
  Input = React97__namespace.default.forwardRef(
8341
7839
  ({
8342
7840
  className,
@@ -8354,7 +7852,7 @@ var init_Input = __esm({
8354
7852
  onChange,
8355
7853
  ...props
8356
7854
  }, ref) => {
8357
- const { t } = useTranslate();
7855
+ const { t } = hooks.useTranslate();
8358
7856
  const type = inputType || htmlType || "text";
8359
7857
  const IconComponent = typeof iconProp === "string" ? resolveIcon(iconProp) : iconProp;
8360
7858
  const resolvedLeftIcon = leftIcon || IconComponent && /* @__PURE__ */ jsxRuntime.jsx(IconComponent, { className: "h-icon-default w-icon-default" });
@@ -8720,7 +8218,6 @@ var init_FilterPill = __esm({
8720
8218
  "components/core/atoms/FilterPill.tsx"() {
8721
8219
  init_cn();
8722
8220
  init_useEventBus();
8723
- init_useTranslate();
8724
8221
  init_Icon();
8725
8222
  variantStyles5 = {
8726
8223
  default: [
@@ -8776,7 +8273,7 @@ var init_FilterPill = __esm({
8776
8273
  ...props
8777
8274
  }, ref) => {
8778
8275
  const eventBus = useEventBus();
8779
- const { t } = useTranslate();
8276
+ const { t } = hooks.useTranslate();
8780
8277
  const payloadLabel = typeof children === "string" || typeof children === "number" ? children : label;
8781
8278
  const handleClick = React97.useCallback(() => {
8782
8279
  onClick?.();
@@ -9846,7 +9343,6 @@ var init_LawReferenceTooltip = __esm({
9846
9343
  init_Typography();
9847
9344
  init_Divider();
9848
9345
  init_cn();
9849
- init_useTranslate();
9850
9346
  positionStyles2 = {
9851
9347
  top: "bottom-full left-1/2 -translate-x-1/2 mb-2",
9852
9348
  bottom: "top-full left-1/2 -translate-x-1/2 mt-2",
@@ -9865,7 +9361,7 @@ var init_LawReferenceTooltip = __esm({
9865
9361
  position = "top",
9866
9362
  className
9867
9363
  }) => {
9868
- const { t } = useTranslate();
9364
+ const { t } = hooks.useTranslate();
9869
9365
  const [isVisible, setIsVisible] = React97__namespace.default.useState(false);
9870
9366
  const timeoutRef = React97__namespace.default.useRef(null);
9871
9367
  const handleMouseEnter = () => {
@@ -12842,7 +12338,6 @@ var init_ErrorState = __esm({
12842
12338
  init_Typography();
12843
12339
  init_Icon();
12844
12340
  init_useEventBus();
12845
- init_useTranslate();
12846
12341
  ErrorState = ({
12847
12342
  title,
12848
12343
  message,
@@ -12852,7 +12347,7 @@ var init_ErrorState = __esm({
12852
12347
  retryEvent
12853
12348
  }) => {
12854
12349
  const eventBus = useEventBus();
12855
- const { t } = useTranslate();
12350
+ const { t } = hooks.useTranslate();
12856
12351
  const handleRetry = () => {
12857
12352
  if (retryEvent) eventBus.emit(`UI:${retryEvent}`, {});
12858
12353
  onRetry?.();
@@ -12885,9 +12380,8 @@ var init_ErrorBoundary = __esm({
12885
12380
  "use client";
12886
12381
  init_cn();
12887
12382
  init_ErrorState();
12888
- init_useTranslate();
12889
12383
  DefaultFallback = ({ error, onRetry }) => {
12890
- const { t } = useTranslate();
12384
+ const { t } = hooks.useTranslate();
12891
12385
  return /* @__PURE__ */ jsxRuntime.jsx(
12892
12386
  ErrorState,
12893
12387
  {
@@ -13014,7 +12508,7 @@ function Skeleton({
13014
12508
  fields,
13015
12509
  className
13016
12510
  }) {
13017
- const { t: _t } = useTranslate();
12511
+ const { t: _t } = hooks.useTranslate();
13018
12512
  switch (variant) {
13019
12513
  case "header":
13020
12514
  return /* @__PURE__ */ jsxRuntime.jsx(HeaderSkeleton, { className });
@@ -13035,7 +12529,6 @@ var init_Skeleton = __esm({
13035
12529
  "components/core/molecules/Skeleton.tsx"() {
13036
12530
  "use client";
13037
12531
  init_cn();
13038
- init_useTranslate();
13039
12532
  init_Box();
13040
12533
  init_Stack();
13041
12534
  init_Stack();
@@ -13712,7 +13205,6 @@ var AboutPageTemplate;
13712
13205
  var init_AboutPageTemplate = __esm({
13713
13206
  "components/marketing/templates/AboutPageTemplate.tsx"() {
13714
13207
  init_cn();
13715
- init_useTranslate();
13716
13208
  init_Stack();
13717
13209
  init_Box();
13718
13210
  init_Typography();
@@ -13728,7 +13220,7 @@ var init_AboutPageTemplate = __esm({
13728
13220
  entity,
13729
13221
  className
13730
13222
  }) => {
13731
- const { t } = useTranslate();
13223
+ const { t } = hooks.useTranslate();
13732
13224
  const resolved = entity && typeof entity === "object" && !Array.isArray(entity) ? entity : void 0;
13733
13225
  if (!resolved) return null;
13734
13226
  return /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "none", className: cn("w-full", className), children: [
@@ -13817,7 +13309,6 @@ var init_Alert = __esm({
13817
13309
  init_Icon();
13818
13310
  init_Typography();
13819
13311
  init_useEventBus();
13820
- init_useTranslate();
13821
13312
  variantBorderClasses = {
13822
13313
  info: "border-info",
13823
13314
  success: "border-success",
@@ -13849,7 +13340,7 @@ var init_Alert = __esm({
13849
13340
  dismissEvent
13850
13341
  }) => {
13851
13342
  const eventBus = useEventBus();
13852
- const { t } = useTranslate();
13343
+ const { t } = hooks.useTranslate();
13853
13344
  const handleDismissCallback = onDismiss || onClose;
13854
13345
  const handleDismiss = () => {
13855
13346
  if (dismissEvent) eventBus.emit(`UI:${dismissEvent}`, {});
@@ -14177,7 +13668,6 @@ var init_Menu = __esm({
14177
13668
  init_Badge();
14178
13669
  init_cn();
14179
13670
  init_useEventBus();
14180
- init_useTranslate();
14181
13671
  Menu = ({
14182
13672
  trigger,
14183
13673
  items,
@@ -14185,7 +13675,7 @@ var init_Menu = __esm({
14185
13675
  className
14186
13676
  }) => {
14187
13677
  const eventBus = useEventBus();
14188
- const { t } = useTranslate();
13678
+ const { t, direction } = hooks.useTranslate();
14189
13679
  const [isOpen, setIsOpen] = React97.useState(false);
14190
13680
  const [activeSubMenu, setActiveSubMenu] = React97.useState(null);
14191
13681
  const [triggerRect, setTriggerRect] = React97.useState(null);
@@ -14239,6 +13729,18 @@ var init_Menu = __esm({
14239
13729
  "bottom-start": "top-full left-0 mt-2",
14240
13730
  "bottom-end": "top-full right-0 mt-2"
14241
13731
  };
13732
+ const rtlMirror = {
13733
+ "top-left": "top-right",
13734
+ "top-right": "top-left",
13735
+ "bottom-left": "bottom-right",
13736
+ "bottom-right": "bottom-left",
13737
+ "top-start": "top-end",
13738
+ "top-end": "top-start",
13739
+ "bottom-start": "bottom-end",
13740
+ "bottom-end": "bottom-start"
13741
+ };
13742
+ const effectivePosition = direction === "rtl" ? rtlMirror[position] ?? position : position;
13743
+ const subMenuSideClass = direction === "rtl" ? "right-full mr-2" : "left-full ml-2";
14242
13744
  const triggerChild = React97__namespace.default.isValidElement(trigger) ? trigger : /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "small", as: "span", children: trigger });
14243
13745
  const triggerElement = React97__namespace.default.cloneElement(
14244
13746
  triggerChild,
@@ -14266,7 +13768,7 @@ var init_Menu = __esm({
14266
13768
  onMouseEnter: () => hasSubMenu && setActiveSubMenu(itemId),
14267
13769
  "data-testid": item.event ? `action-${item.event}` : void 0,
14268
13770
  className: cn(
14269
- "w-full flex items-center justify-between gap-3 px-4 py-2 text-left",
13771
+ "w-full flex items-center justify-between gap-3 px-4 py-2 text-start",
14270
13772
  "text-sm transition-colors",
14271
13773
  "hover:bg-muted",
14272
13774
  "focus:outline-none focus:bg-muted",
@@ -14285,7 +13787,7 @@ var init_Menu = __esm({
14285
13787
  }
14286
13788
  ),
14287
13789
  item.badge !== void 0 && /* @__PURE__ */ jsxRuntime.jsx(Badge, { variant: "default", size: "sm", children: item.badge }),
14288
- hasSubMenu && /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: "chevron-right", size: "sm", className: "flex-shrink-0" })
13790
+ hasSubMenu && /* @__PURE__ */ jsxRuntime.jsx(Icon, { name: direction === "rtl" ? "chevron-left" : "chevron-right", size: "sm", className: "flex-shrink-0" })
14289
13791
  ] })
14290
13792
  },
14291
13793
  itemId
@@ -14305,7 +13807,8 @@ var init_Menu = __esm({
14305
13807
  Box,
14306
13808
  {
14307
13809
  className: cn(
14308
- "absolute left-full top-0 ml-2 z-50",
13810
+ "absolute top-0 z-50",
13811
+ subMenuSideClass,
14309
13812
  menuContainerStyles
14310
13813
  ),
14311
13814
  children: renderMenuItems(item.subMenu)
@@ -14323,12 +13826,12 @@ var init_Menu = __esm({
14323
13826
  className: cn(
14324
13827
  "absolute z-50",
14325
13828
  menuContainerStyles,
14326
- positionClasses3[position],
13829
+ positionClasses3[effectivePosition],
14327
13830
  className
14328
13831
  ),
14329
13832
  style: {
14330
- left: position.includes("left") ? 0 : "auto",
14331
- right: position.includes("right") ? 0 : "auto"
13833
+ left: effectivePosition.includes("left") ? 0 : "auto",
13834
+ right: effectivePosition.includes("right") ? 0 : "auto"
14332
13835
  },
14333
13836
  role: "menu",
14334
13837
  children: renderMenuItems(items)
@@ -14465,7 +13968,6 @@ var init_FloatingActionButton = __esm({
14465
13968
  init_Typography();
14466
13969
  init_cn();
14467
13970
  init_useEventBus();
14468
- init_useTranslate();
14469
13971
  FloatingActionButton = ({
14470
13972
  action,
14471
13973
  actionPayload,
@@ -14478,7 +13980,7 @@ var init_FloatingActionButton = __esm({
14478
13980
  className
14479
13981
  }) => {
14480
13982
  const eventBus = useEventBus();
14481
- const { t } = useTranslate();
13983
+ const { t } = hooks.useTranslate();
14482
13984
  const resolvedAction = icon ? {
14483
13985
  icon,
14484
13986
  onClick: () => {
@@ -14649,7 +14151,7 @@ var init_MapView = __esm({
14649
14151
  L.Marker.prototype.options.icon = defaultIcon;
14650
14152
  const { useEffect: useEffect79, useRef: useRef71, useCallback: useCallback122, useState: useState113 } = React97__namespace.default;
14651
14153
  const { Typography: Typography2 } = await Promise.resolve().then(() => (init_Typography(), Typography_exports));
14652
- const { useEventBus: useEventBus2 } = await Promise.resolve().then(() => (init_useEventBus(), useEventBus_exports));
14154
+ const { useEventBus: useEventBus3 } = await Promise.resolve().then(() => (init_useEventBus(), useEventBus_exports));
14653
14155
  function MapUpdater({ centerLat, centerLng, zoom }) {
14654
14156
  const map = useMap();
14655
14157
  const prevRef = useRef71({ centerLat, centerLng, zoom });
@@ -14691,7 +14193,7 @@ var init_MapView = __esm({
14691
14193
  className,
14692
14194
  showAttribution = true
14693
14195
  }) {
14694
- const eventBus = useEventBus2();
14196
+ const eventBus = useEventBus3();
14695
14197
  const [clickedPosition, setClickedPosition] = useState113(null);
14696
14198
  const handleMapClick = useCallback122((lat, lng) => {
14697
14199
  if (showClickedPin) {
@@ -15348,7 +14850,7 @@ function ActionTile({
15348
14850
  categoryColors,
15349
14851
  className
15350
14852
  }) {
15351
- useTranslate();
14853
+ hooks.useTranslate();
15352
14854
  const config = SIZE_CONFIG[size];
15353
14855
  const catColor = categoryColors?.[action.category];
15354
14856
  const handleDragStart = React97.useCallback((e) => {
@@ -15387,7 +14889,6 @@ var init_ActionTile = __esm({
15387
14889
  "components/game/organisms/puzzles/sequencer/ActionTile.tsx"() {
15388
14890
  init_atoms2();
15389
14891
  init_cn();
15390
- init_useTranslate();
15391
14892
  DRAG_MIME = "application/x-almadar-slot-item";
15392
14893
  SIZE_CONFIG = {
15393
14894
  sm: { px: "px-2 py-1", icon: "text-lg", text: "text-xs" },
@@ -15406,7 +14907,7 @@ function ActionPalette({
15406
14907
  label,
15407
14908
  className
15408
14909
  }) {
15409
- const { t } = useTranslate();
14910
+ const { t } = hooks.useTranslate();
15410
14911
  return /* @__PURE__ */ jsxRuntime.jsxs(VStack, { className: cn("p-3 rounded-lg bg-card border border-border", className), gap: "sm", children: [
15411
14912
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body2", className: "text-muted-foreground font-medium", children: label ?? t("sequencer.actions") }),
15412
14913
  /* @__PURE__ */ jsxRuntime.jsx(HStack, { className: "flex-wrap", gap: "sm", children: (actions ?? []).map((action) => /* @__PURE__ */ jsxRuntime.jsx(
@@ -15425,7 +14926,6 @@ var init_ActionPalette = __esm({
15425
14926
  "components/game/organisms/puzzles/sequencer/ActionPalette.tsx"() {
15426
14927
  init_atoms2();
15427
14928
  init_cn();
15428
- init_useTranslate();
15429
14929
  init_ActionTile();
15430
14930
  ActionPalette.displayName = "ActionPalette";
15431
14931
  }
@@ -15435,7 +14935,6 @@ var init_AuthLayout = __esm({
15435
14935
  "components/core/templates/AuthLayout.tsx"() {
15436
14936
  "use client";
15437
14937
  init_cn();
15438
- init_useTranslate();
15439
14938
  init_Box();
15440
14939
  init_Stack();
15441
14940
  init_Typography();
@@ -15446,7 +14945,7 @@ var init_AuthLayout = __esm({
15446
14945
  showBranding = true,
15447
14946
  brandingContent
15448
14947
  }) => {
15449
- const { t } = useTranslate();
14948
+ const { t } = hooks.useTranslate();
15450
14949
  return /* @__PURE__ */ jsxRuntime.jsxs(Box, { className: "min-h-screen flex", children: [
15451
14950
  showBranding && /* @__PURE__ */ jsxRuntime.jsxs(
15452
14951
  VStack,
@@ -15580,13 +15079,12 @@ var init_LoadingState = __esm({
15580
15079
  init_atoms2();
15581
15080
  init_Stack();
15582
15081
  init_Typography();
15583
- init_useTranslate();
15584
15082
  LoadingState = ({
15585
15083
  title,
15586
15084
  message,
15587
15085
  className
15588
15086
  }) => {
15589
- const { t } = useTranslate();
15087
+ const { t } = hooks.useTranslate();
15590
15088
  const displayMessage = message ?? t("common.loading");
15591
15089
  return /* @__PURE__ */ jsxRuntime.jsxs(
15592
15090
  VStack,
@@ -16100,7 +15598,7 @@ function IsometricCanvas({
16100
15598
  const unitsProp = Array.isArray(_unitsPropRaw) ? _unitsPropRaw : [];
16101
15599
  const featuresProp = Array.isArray(_featuresPropRaw) ? _featuresPropRaw : [];
16102
15600
  const eventBus = useEventBus();
16103
- const { t } = useTranslate();
15601
+ const { t } = hooks.useTranslate();
16104
15602
  const canvasRef = React97.useRef(null);
16105
15603
  const containerRef = React97.useRef(null);
16106
15604
  const minimapRef = React97.useRef(null);
@@ -16796,7 +16294,6 @@ var init_IsometricCanvas = __esm({
16796
16294
  "use client";
16797
16295
  init_cn();
16798
16296
  init_useEventBus();
16799
- init_useTranslate();
16800
16297
  init_Box();
16801
16298
  init_Stack();
16802
16299
  init_Icon();
@@ -16856,7 +16353,7 @@ function BattleBoard({
16856
16353
  const currentTurn = entity.turn;
16857
16354
  const gameResult = entity.gameResult;
16858
16355
  const eventBus = useEventBus();
16859
- const { t } = useTranslate();
16356
+ const { t } = hooks.useTranslate();
16860
16357
  const [hoveredTile, setHoveredTile] = React97.useState(null);
16861
16358
  const [isShaking, setIsShaking] = React97.useState(false);
16862
16359
  const selectedUnit = React97.useMemo(
@@ -17160,7 +16657,6 @@ var init_BattleBoard = __esm({
17160
16657
  "use client";
17161
16658
  init_cn();
17162
16659
  init_useEventBus();
17163
- init_useTranslate();
17164
16660
  init_Box();
17165
16661
  init_Button();
17166
16662
  init_Typography();
@@ -17205,14 +16701,13 @@ var MIN_DIAGRAM_WIDTH, ScaledDiagram;
17205
16701
  var init_ScaledDiagram = __esm({
17206
16702
  "components/core/molecules/ScaledDiagram.tsx"() {
17207
16703
  init_Box();
17208
- init_useTranslate();
17209
16704
  init_cn();
17210
16705
  MIN_DIAGRAM_WIDTH = 200;
17211
16706
  ScaledDiagram = ({
17212
16707
  children,
17213
16708
  className
17214
16709
  }) => {
17215
- const { t: _t } = useTranslate();
16710
+ const { t: _t } = hooks.useTranslate();
17216
16711
  const wrapperRef = React97.useRef(null);
17217
16712
  const contentRef = React97.useRef(null);
17218
16713
  const [layout, setLayout] = React97.useState(null);
@@ -17348,7 +16843,6 @@ var init_CodeBlock = __esm({
17348
16843
  init_Textarea();
17349
16844
  init_Icon();
17350
16845
  init_useEventBus();
17351
- init_useTranslate();
17352
16846
  SyntaxHighlighter__default.default.registerLanguage("json", langJson__default.default);
17353
16847
  SyntaxHighlighter__default.default.registerLanguage("javascript", langJavascript__default.default);
17354
16848
  SyntaxHighlighter__default.default.registerLanguage("js", langJavascript__default.default);
@@ -17437,7 +16931,7 @@ var init_CodeBlock = __esm({
17437
16931
  const isLolo = language === "lolo";
17438
16932
  const activeStyle = isOrb ? orbStyle : isLolo ? loloStyle : dark__default.default;
17439
16933
  const eventBus = useEventBus();
17440
- const { t } = useTranslate();
16934
+ const { t } = hooks.useTranslate();
17441
16935
  const scrollRef = React97.useRef(null);
17442
16936
  const codeRef = React97.useRef(null);
17443
16937
  const savedScrollLeftRef = React97.useRef(0);
@@ -17855,11 +17349,10 @@ var init_MarkdownContent = __esm({
17855
17349
  init_katex_min();
17856
17350
  init_Box();
17857
17351
  init_CodeBlock();
17858
- init_useTranslate();
17859
17352
  init_cn();
17860
17353
  MarkdownContent = React97__namespace.default.memo(
17861
17354
  ({ content, direction, className }) => {
17862
- const { t: _t } = useTranslate();
17355
+ const { t: _t } = hooks.useTranslate();
17863
17356
  const safeContent = typeof content === "string" ? content : String(content ?? "");
17864
17357
  return /* @__PURE__ */ jsxRuntime.jsx(
17865
17358
  Box,
@@ -18085,7 +17578,7 @@ function Card2({
18085
17578
  longPressPayload
18086
17579
  }) {
18087
17580
  const eventBus = useEventBus();
18088
- const { t } = useTranslate();
17581
+ const { t } = hooks.useTranslate();
18089
17582
  const isClickable = !!onClick || !!action;
18090
17583
  const handleLongPress = React97.useCallback(() => {
18091
17584
  if (longPressEvent) {
@@ -18160,7 +17653,6 @@ var init_Card2 = __esm({
18160
17653
  "components/core/molecules/Card.tsx"() {
18161
17654
  "use client";
18162
17655
  init_useEventBus();
18163
- init_useTranslate();
18164
17656
  init_useLongPress();
18165
17657
  Card2.displayName = "Card";
18166
17658
  }
@@ -18174,14 +17666,13 @@ var init_QuizBlock = __esm({
18174
17666
  init_Button();
18175
17667
  init_Icon();
18176
17668
  init_Box();
18177
- init_useTranslate();
18178
17669
  init_cn();
18179
17670
  QuizBlock = ({
18180
17671
  question,
18181
17672
  answer,
18182
17673
  className
18183
17674
  }) => {
18184
- const { t } = useTranslate();
17675
+ const { t } = hooks.useTranslate();
18185
17676
  const [revealed, setRevealed] = React97.useState(false);
18186
17677
  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: [
18187
17678
  /* @__PURE__ */ jsxRuntime.jsxs(HStack, { gap: "sm", align: "start", children: [
@@ -18217,11 +17708,10 @@ var init_StateMachineView = __esm({
18217
17708
  init_Typography();
18218
17709
  init_Button();
18219
17710
  init_Icon();
18220
- init_useTranslate();
18221
17711
  init_useEventBus();
18222
17712
  init_cn();
18223
17713
  StateNode = ({ state, config }) => {
18224
- const { t } = useTranslate();
17714
+ const { t } = hooks.useTranslate();
18225
17715
  const size = state.radius * 2;
18226
17716
  let borderColor = config.colors.nodeBorder;
18227
17717
  let borderWidth = 2;
@@ -18328,7 +17818,7 @@ var init_StateMachineView = __esm({
18328
17818
  );
18329
17819
  };
18330
17820
  TransitionBundleArrow = ({ bundle, states, bundleIndex, config, onClick, onHover }) => {
18331
- const { t } = useTranslate();
17821
+ const { t } = hooks.useTranslate();
18332
17822
  const groupRef = React97.useRef(null);
18333
17823
  const fromState = states.find((s) => s.name === bundle.from);
18334
17824
  const toState = states.find((s) => s.name === bundle.to);
@@ -18578,7 +18068,7 @@ var init_StateMachineView = __esm({
18578
18068
  );
18579
18069
  };
18580
18070
  BundleTooltip = ({ tooltip, config }) => {
18581
- const { t } = useTranslate();
18071
+ const { t } = hooks.useTranslate();
18582
18072
  if (!tooltip.visible || !tooltip.bundle) return null;
18583
18073
  const { bundle } = tooltip;
18584
18074
  const isSingle = bundle.labels.length === 1;
@@ -18730,7 +18220,7 @@ var init_StateMachineView = __esm({
18730
18220
  );
18731
18221
  };
18732
18222
  EntityBox = ({ entity, config }) => {
18733
- const { t } = useTranslate();
18223
+ const { t } = hooks.useTranslate();
18734
18224
  return /* @__PURE__ */ jsxRuntime.jsxs(
18735
18225
  VStack,
18736
18226
  {
@@ -18771,7 +18261,7 @@ var init_StateMachineView = __esm({
18771
18261
  );
18772
18262
  };
18773
18263
  OutputsBox = ({ outputs, config }) => {
18774
- const { t } = useTranslate();
18264
+ const { t } = hooks.useTranslate();
18775
18265
  return /* @__PURE__ */ jsxRuntime.jsxs(
18776
18266
  VStack,
18777
18267
  {
@@ -18813,7 +18303,7 @@ var init_StateMachineView = __esm({
18813
18303
  );
18814
18304
  };
18815
18305
  Legend = ({ config, y }) => {
18816
- const { t } = useTranslate();
18306
+ const { t } = hooks.useTranslate();
18817
18307
  const items = [
18818
18308
  { key: "initial", label: t("stateMachine.legend.initial"), color: config.colors.initialNode, isMultiEvent: false },
18819
18309
  { key: "final", label: t("stateMachine.legend.final"), color: config.colors.finalNode, isMultiEvent: false },
@@ -18857,7 +18347,7 @@ var init_StateMachineView = __esm({
18857
18347
  isLoading: _isLoading,
18858
18348
  error: _error
18859
18349
  }) => {
18860
- const { t } = useTranslate();
18350
+ const { t } = hooks.useTranslate();
18861
18351
  const [tooltip, setTooltip] = React97.useState({
18862
18352
  visible: false,
18863
18353
  pinned: false,
@@ -19584,7 +19074,6 @@ var init_JazariStateMachine = __esm({
19584
19074
  init_StateMachineView();
19585
19075
  init_visualizer();
19586
19076
  init_svg_paths();
19587
- init_useTranslate();
19588
19077
  init_cn();
19589
19078
  JAZARI_VISUALIZER_CONFIG = {
19590
19079
  ...DEFAULT_CONFIG,
@@ -19620,7 +19109,7 @@ var init_JazariStateMachine = __esm({
19620
19109
  isLoading = false,
19621
19110
  error = null
19622
19111
  }) => {
19623
- const { t } = useTranslate();
19112
+ const { t } = hooks.useTranslate();
19624
19113
  const resolvedTrait = React97.useMemo(
19625
19114
  () => extractTrait(schema, traitProp, traitIndex),
19626
19115
  [schema, traitProp, traitIndex]
@@ -19740,7 +19229,6 @@ var init_ContentRenderer = __esm({
19740
19229
  init_ScaledDiagram();
19741
19230
  init_JazariStateMachine();
19742
19231
  init_parseContentSegments();
19743
- init_useTranslate();
19744
19232
  init_cn();
19745
19233
  ContentRenderer = ({
19746
19234
  content,
@@ -19748,7 +19236,7 @@ var init_ContentRenderer = __esm({
19748
19236
  direction,
19749
19237
  className
19750
19238
  }) => {
19751
- const { t: _t } = useTranslate();
19239
+ const { t: _t } = hooks.useTranslate();
19752
19240
  const segments = React97.useMemo(
19753
19241
  () => segmentsProp ?? parseContentSegments(content),
19754
19242
  [segmentsProp, content]
@@ -19834,14 +19322,13 @@ var init_BookChapterView = __esm({
19834
19322
  init_ScaledDiagram();
19835
19323
  init_ContentRenderer();
19836
19324
  init_JazariStateMachine();
19837
- init_useTranslate();
19838
19325
  init_cn();
19839
19326
  BookChapterView = ({
19840
19327
  chapter,
19841
19328
  direction,
19842
19329
  className
19843
19330
  }) => {
19844
- const { t: _t } = useTranslate();
19331
+ const { t: _t } = hooks.useTranslate();
19845
19332
  return /* @__PURE__ */ jsxRuntime.jsxs(
19846
19333
  VStack,
19847
19334
  {
@@ -19873,7 +19360,6 @@ var init_BookCoverPage = __esm({
19873
19360
  init_Typography();
19874
19361
  init_Button();
19875
19362
  init_Box();
19876
- init_useTranslate();
19877
19363
  init_cn();
19878
19364
  BookCoverPage = ({
19879
19365
  title,
@@ -19883,7 +19369,7 @@ var init_BookCoverPage = __esm({
19883
19369
  direction,
19884
19370
  className
19885
19371
  }) => {
19886
- const { t } = useTranslate();
19372
+ const { t } = hooks.useTranslate();
19887
19373
  return /* @__PURE__ */ jsxRuntime.jsxs(
19888
19374
  VStack,
19889
19375
  {
@@ -19953,7 +19439,6 @@ var init_BookNavBar = __esm({
19953
19439
  init_Typography();
19954
19440
  init_ProgressBar();
19955
19441
  init_Box();
19956
- init_useTranslate();
19957
19442
  init_cn();
19958
19443
  BookNavBar = ({
19959
19444
  currentPage,
@@ -19962,7 +19447,7 @@ var init_BookNavBar = __esm({
19962
19447
  direction,
19963
19448
  className
19964
19449
  }) => {
19965
- const { t } = useTranslate();
19450
+ const { t } = hooks.useTranslate();
19966
19451
  const isRtl = direction === "rtl";
19967
19452
  const progress = totalPages > 1 ? currentPage / (totalPages - 1) * 100 : 0;
19968
19453
  const PrevIcon = isRtl ? LucideIcons2.ChevronRight : LucideIcons2.ChevronLeft;
@@ -20055,7 +19540,6 @@ var init_BookTableOfContents = __esm({
20055
19540
  init_Button();
20056
19541
  init_Box();
20057
19542
  init_Badge();
20058
- init_useTranslate();
20059
19543
  init_cn();
20060
19544
  BookTableOfContents = ({
20061
19545
  parts,
@@ -20063,7 +19547,7 @@ var init_BookTableOfContents = __esm({
20063
19547
  direction,
20064
19548
  className
20065
19549
  }) => {
20066
- const { t } = useTranslate();
19550
+ const { t } = hooks.useTranslate();
20067
19551
  return /* @__PURE__ */ jsxRuntime.jsxs(
20068
19552
  VStack,
20069
19553
  {
@@ -20115,7 +19599,6 @@ var init_EmptyState = __esm({
20115
19599
  init_Stack();
20116
19600
  init_Typography();
20117
19601
  init_useEventBus();
20118
- init_useTranslate();
20119
19602
  ICON_NAME_ALIASES = {
20120
19603
  check: "check-circle",
20121
19604
  error: "x-circle",
@@ -20141,7 +19624,7 @@ var init_EmptyState = __esm({
20141
19624
  look = "icon-only"
20142
19625
  }) => {
20143
19626
  const eventBus = useEventBus();
20144
- const { t } = useTranslate();
19627
+ const { t } = hooks.useTranslate();
20145
19628
  const handleAction = () => {
20146
19629
  if (actionEvent) eventBus.emit(`UI:${actionEvent}`, {});
20147
19630
  onAction?.();
@@ -20286,7 +19769,6 @@ var init_BookViewer = __esm({
20286
19769
  init_Box();
20287
19770
  init_Stack();
20288
19771
  init_useEventBus();
20289
- init_useTranslate();
20290
19772
  init_cn();
20291
19773
  init_BookCoverPage();
20292
19774
  init_BookTableOfContents();
@@ -20312,7 +19794,7 @@ var init_BookViewer = __esm({
20312
19794
  className
20313
19795
  }) => {
20314
19796
  const eventBus = useEventBus();
20315
- const { t } = useTranslate();
19797
+ const { t } = hooks.useTranslate();
20316
19798
  const [currentPage, setCurrentPage] = React97.useState(initialPage);
20317
19799
  const resolvedFieldMap = React97.useMemo(() => resolveFieldMap(fieldMap), [fieldMap]);
20318
19800
  const book = React97.useMemo(() => {
@@ -20718,7 +20200,6 @@ var init_BranchingLogicBuilder = __esm({
20718
20200
  init_FilterPill();
20719
20201
  init_Box();
20720
20202
  init_useEventBus();
20721
- init_useTranslate();
20722
20203
  init_cn();
20723
20204
  END_OF_SURVEY = "end-of-survey";
20724
20205
  RuleRow = ({
@@ -20729,7 +20210,7 @@ var init_BranchingLogicBuilder = __esm({
20729
20210
  onChange,
20730
20211
  onDelete
20731
20212
  }) => {
20732
- const { t } = useTranslate();
20213
+ const { t } = hooks.useTranslate();
20733
20214
  const operatorOptions = React97.useMemo(
20734
20215
  () => [
20735
20216
  { value: "equals", label: t("branchingLogic.operatorEquals") },
@@ -20904,7 +20385,7 @@ var init_BranchingLogicBuilder = __esm({
20904
20385
  NODE_GAP_Y = 80;
20905
20386
  PADDING = 32;
20906
20387
  LogicGraph = ({ questions, rules }) => {
20907
- const { t } = useTranslate();
20388
+ const { t } = hooks.useTranslate();
20908
20389
  const endOfSurveyLabel = t("branchingLogic.endOfSurvey");
20909
20390
  const layout = React97.useMemo(() => {
20910
20391
  const items = [
@@ -21036,7 +20517,7 @@ var init_BranchingLogicBuilder = __esm({
21036
20517
  readOnly = false,
21037
20518
  className
21038
20519
  }) => {
21039
- const { t } = useTranslate();
20520
+ const { t } = hooks.useTranslate();
21040
20521
  const eventBus = useEventBus();
21041
20522
  const questions = Array.isArray(questionsProp) ? questionsProp : [];
21042
20523
  const rulesInitial = Array.isArray(rulesProp) ? rulesProp : [];
@@ -21171,7 +20652,6 @@ var init_Breadcrumb = __esm({
21171
20652
  init_Typography();
21172
20653
  init_cn();
21173
20654
  init_useEventBus();
21174
- init_useTranslate();
21175
20655
  Breadcrumb = ({
21176
20656
  items,
21177
20657
  separator = "chevron-right",
@@ -21179,7 +20659,7 @@ var init_Breadcrumb = __esm({
21179
20659
  className
21180
20660
  }) => {
21181
20661
  const eventBus = useEventBus();
21182
- const { t } = useTranslate();
20662
+ const { t } = hooks.useTranslate();
21183
20663
  const displayItems = maxItems && items.length > maxItems ? [
21184
20664
  ...items.slice(0, 1),
21185
20665
  { label: "...", isCurrent: false },
@@ -21258,7 +20738,7 @@ function BuilderBoard({
21258
20738
  className
21259
20739
  }) {
21260
20740
  const { emit } = useEventBus();
21261
- const { t } = useTranslate();
20741
+ const { t } = hooks.useTranslate();
21262
20742
  const resolved = Array.isArray(entity) ? entity[0] : entity;
21263
20743
  const [placements, setPlacements] = React97.useState({});
21264
20744
  const [headerError, setHeaderError] = React97.useState(false);
@@ -21407,7 +20887,6 @@ var init_BuilderBoard = __esm({
21407
20887
  "components/game/organisms/puzzles/builder/BuilderBoard.tsx"() {
21408
20888
  init_atoms2();
21409
20889
  init_useEventBus();
21410
- init_useTranslate();
21411
20890
  BuilderBoard.displayName = "BuilderBoard";
21412
20891
  }
21413
20892
  });
@@ -21675,7 +21154,7 @@ function CalendarGrid({
21675
21154
  }) {
21676
21155
  const evs = Array.isArray(events2) ? events2 : events2 ? [events2] : [];
21677
21156
  const eventBus = useEventBus();
21678
- const { t } = useTranslate();
21157
+ const { t } = hooks.useTranslate();
21679
21158
  const longPressTimer = React97.useRef(null);
21680
21159
  const resolvedWeekStart = React97.useMemo(
21681
21160
  () => weekStart ? getStartOfWeek(weekStart) : getStartOfWeek(/* @__PURE__ */ new Date()),
@@ -21885,7 +21364,6 @@ var init_CalendarGrid = __esm({
21885
21364
  init_TimeSlotCell();
21886
21365
  init_useEventBus();
21887
21366
  init_useSwipeGesture();
21888
- init_useTranslate();
21889
21367
  SHORT_DATE = { month: "short", day: "numeric" };
21890
21368
  CalendarGrid.displayName = "CalendarGrid";
21891
21369
  }
@@ -23194,7 +22672,6 @@ var init_Pagination = __esm({
23194
22672
  init_Stack();
23195
22673
  init_cn();
23196
22674
  init_useEventBus();
23197
- init_useTranslate();
23198
22675
  Pagination = ({
23199
22676
  currentPage,
23200
22677
  totalPages,
@@ -23213,7 +22690,7 @@ var init_Pagination = __esm({
23213
22690
  pageSizeChangeEvent
23214
22691
  }) => {
23215
22692
  const eventBus = useEventBus();
23216
- const { t } = useTranslate();
22693
+ const { t } = hooks.useTranslate();
23217
22694
  const [jumpToPage, setJumpToPage] = React97.useState("");
23218
22695
  const handlePageChange = (page) => {
23219
22696
  if (pageChangeEvent) eventBus.emit(`UI:${pageChangeEvent}`, { page });
@@ -23398,7 +22875,6 @@ var init_CardGrid = __esm({
23398
22875
  init_cn();
23399
22876
  init_getNestedValue();
23400
22877
  init_useEventBus();
23401
- init_useTranslate();
23402
22878
  init_atoms2();
23403
22879
  init_Badge();
23404
22880
  init_Box();
@@ -23442,7 +22918,7 @@ var init_CardGrid = __esm({
23442
22918
  imageField
23443
22919
  }) => {
23444
22920
  const eventBus = useEventBus();
23445
- const { t } = useTranslate();
22921
+ const { t } = hooks.useTranslate();
23446
22922
  const effectiveFieldNames = normalizeFields(fields).length > 0 ? normalizeFields(fields) : fieldNames ?? normalizeFields(columns);
23447
22923
  const gridTemplateColumns = `repeat(auto-fit, minmax(min(${minCardWidth}px, 100%), 1fr))`;
23448
22924
  const normalizedData = Array.isArray(entity) ? entity : entity ? [entity] : [];
@@ -23627,7 +23103,6 @@ var init_Carousel = __esm({
23627
23103
  init_cn();
23628
23104
  init_useEventBus();
23629
23105
  init_useSwipeGesture();
23630
- init_useTranslate();
23631
23106
  init_Box();
23632
23107
  init_Stack();
23633
23108
  init_Button();
@@ -23648,7 +23123,7 @@ var init_Carousel = __esm({
23648
23123
  const scrollRef = React97.useRef(null);
23649
23124
  const autoPlayRef = React97.useRef(null);
23650
23125
  const eventBus = useSafeEventBus3();
23651
- const { t } = useTranslate();
23126
+ const { t } = hooks.useTranslate();
23652
23127
  const safeItems = items ?? [];
23653
23128
  const totalSlides = safeItems.length;
23654
23129
  const emitSlideChange = React97.useCallback(
@@ -23864,7 +23339,6 @@ var init_CaseStudyOrganism = __esm({
23864
23339
  "use client";
23865
23340
  init_cn();
23866
23341
  init_useEventBus();
23867
- init_useTranslate();
23868
23342
  init_Stack();
23869
23343
  init_Typography();
23870
23344
  init_SimpleGrid();
@@ -23880,7 +23354,7 @@ var init_CaseStudyOrganism = __esm({
23880
23354
  subtitle
23881
23355
  }) => {
23882
23356
  useEventBus();
23883
- const { t } = useTranslate();
23357
+ const { t } = hooks.useTranslate();
23884
23358
  const items = React97.useMemo(
23885
23359
  () => Array.isArray(entity) ? entity : entity && typeof entity === "object" ? [entity] : [],
23886
23360
  [entity]
@@ -24069,7 +23543,6 @@ var init_Chart = __esm({
24069
23543
  init_ErrorState();
24070
23544
  init_EmptyState();
24071
23545
  init_useEventBus();
24072
- init_useTranslate();
24073
23546
  CHART_COLORS = [
24074
23547
  "var(--color-primary)",
24075
23548
  "var(--color-success)",
@@ -24642,7 +24115,7 @@ var init_Chart = __esm({
24642
24115
  }) => {
24643
24116
  const resolvedLook = look ?? (chartType ? LOOK_FROM_CHART_TYPE[chartType] : "bar-vertical");
24644
24117
  const eventBus = useEventBus();
24645
- const { t } = useTranslate();
24118
+ const { t } = hooks.useTranslate();
24646
24119
  const handleAction = React97.useCallback(
24647
24120
  (action) => {
24648
24121
  if (action.event) {
@@ -24839,7 +24312,7 @@ function ClassifierBoard({
24839
24312
  className
24840
24313
  }) {
24841
24314
  const { emit } = useEventBus();
24842
- const { t } = useTranslate();
24315
+ const { t } = hooks.useTranslate();
24843
24316
  const resolved = Array.isArray(entity) ? entity[0] : entity;
24844
24317
  const [assignments, setAssignments] = React97.useState({});
24845
24318
  const [headerError, setHeaderError] = React97.useState(false);
@@ -24977,7 +24450,6 @@ var init_ClassifierBoard = __esm({
24977
24450
  "components/game/organisms/puzzles/classifier/ClassifierBoard.tsx"() {
24978
24451
  init_atoms2();
24979
24452
  init_useEventBus();
24980
- init_useTranslate();
24981
24453
  ClassifierBoard.displayName = "ClassifierBoard";
24982
24454
  }
24983
24455
  });
@@ -24987,7 +24459,7 @@ function CodeView({
24987
24459
  defaultExpanded = false,
24988
24460
  className
24989
24461
  }) {
24990
- const { t } = useTranslate();
24462
+ const { t } = hooks.useTranslate();
24991
24463
  const [expanded, setExpanded] = React97.useState(defaultExpanded);
24992
24464
  const jsonString = JSON.stringify(data, null, 2);
24993
24465
  return /* @__PURE__ */ jsxRuntime.jsxs(VStack, { className: cn("rounded-lg border border-border overflow-hidden", className), gap: "none", children: [
@@ -25009,7 +24481,6 @@ var init_CodeView = __esm({
25009
24481
  "components/game/organisms/puzzles/state-architect/CodeView.tsx"() {
25010
24482
  init_atoms2();
25011
24483
  init_cn();
25012
- init_useTranslate();
25013
24484
  CodeView.displayName = "CodeView";
25014
24485
  }
25015
24486
  });
@@ -25023,7 +24494,6 @@ var init_Tabs = __esm({
25023
24494
  init_Box();
25024
24495
  init_cn();
25025
24496
  init_useEventBus();
25026
- init_useTranslate();
25027
24497
  Tabs = ({
25028
24498
  items,
25029
24499
  tabs,
@@ -25041,7 +24511,7 @@ var init_Tabs = __esm({
25041
24511
  id: id || value || ""
25042
24512
  }));
25043
24513
  const eventBus = useEventBus();
25044
- const { t } = useTranslate();
24514
+ const { t } = hooks.useTranslate();
25045
24515
  const initialActive = safeItems.find((item) => item.active)?.id;
25046
24516
  const [internalActiveTab, setInternalActiveTab] = React97.useState(
25047
24517
  defaultActiveTab || initialActive || safeItems[0]?.id || ""
@@ -25200,7 +24670,6 @@ var init_CodeViewer = __esm({
25200
24670
  init_EmptyState();
25201
24671
  init_Tabs();
25202
24672
  init_useEventBus();
25203
- init_useTranslate();
25204
24673
  DIFF_STYLES = {
25205
24674
  add: {
25206
24675
  bg: "bg-success/10",
@@ -25238,7 +24707,7 @@ var init_CodeViewer = __esm({
25238
24707
  className
25239
24708
  }) => {
25240
24709
  const eventBus = useEventBus();
25241
- const { t } = useTranslate();
24710
+ const { t } = hooks.useTranslate();
25242
24711
  const [copied, setCopied] = React97.useState(false);
25243
24712
  const [wrap, setWrap] = React97.useState(wordWrap);
25244
24713
  const [activeFileIndex, setActiveFileIndex] = React97.useState(0);
@@ -25572,7 +25041,6 @@ var init_ConfirmDialog = __esm({
25572
25041
  init_Box();
25573
25042
  init_Stack();
25574
25043
  init_cn();
25575
- init_useTranslate();
25576
25044
  variantConfig = {
25577
25045
  danger: {
25578
25046
  icon: LucideIcons2.Trash2,
@@ -25620,7 +25088,7 @@ var init_ConfirmDialog = __esm({
25620
25088
  className
25621
25089
  }) => {
25622
25090
  const config = variantConfig[variant];
25623
- const { t } = useTranslate();
25091
+ const { t } = hooks.useTranslate();
25624
25092
  const resolvedMessage = message ?? description ?? "";
25625
25093
  const resolvedConfirmText = confirmText ?? confirmLabel ?? t("dialog.confirm");
25626
25094
  const resolvedCancelText = cancelText ?? cancelLabel ?? t("dialog.cancel");
@@ -26054,7 +25522,6 @@ var init_DashboardGrid = __esm({
26054
25522
  "components/core/organisms/layout/DashboardGrid.tsx"() {
26055
25523
  init_cn();
26056
25524
  init_Box();
26057
- init_useTranslate();
26058
25525
  gapStyles5 = {
26059
25526
  sm: "gap-2",
26060
25527
  md: "gap-4",
@@ -26081,7 +25548,7 @@ var init_DashboardGrid = __esm({
26081
25548
  cells,
26082
25549
  className
26083
25550
  }) => {
26084
- const { t: _t } = useTranslate();
25551
+ const { t: _t } = hooks.useTranslate();
26085
25552
  return /* @__PURE__ */ jsxRuntime.jsx(
26086
25553
  Box,
26087
25554
  {
@@ -26148,7 +25615,6 @@ var init_DashboardLayout = __esm({
26148
25615
  init_Icon();
26149
25616
  init_useAuthContext();
26150
25617
  init_useEventBus();
26151
- init_useTranslate();
26152
25618
  init_CurrentPagePathContext();
26153
25619
  DashboardLayout = ({
26154
25620
  appName = "{{APP_TITLE}}",
@@ -26207,7 +25673,7 @@ var init_DashboardLayout = __esm({
26207
25673
  const activePath = currentPath ?? ctxPagePath ?? location.pathname;
26208
25674
  const { signOut: authSignOut } = useAuthContext();
26209
25675
  const user = userProp || (null);
26210
- const { t } = useTranslate();
25676
+ const { t } = hooks.useTranslate();
26211
25677
  const handleSignOut = onSignOutProp || authSignOut;
26212
25678
  const showSidebar = layoutMode === "sidebar";
26213
25679
  const showHeader = layoutMode !== "minimal";
@@ -27178,7 +26644,7 @@ function DataGrid({
27178
26644
  look = "dense"
27179
26645
  }) {
27180
26646
  const eventBus = useEventBus();
27181
- const { t } = useTranslate();
26647
+ const { t } = hooks.useTranslate();
27182
26648
  const [selectedIds, setSelectedIds] = React97.useState(/* @__PURE__ */ new Set());
27183
26649
  const [visibleCount, setVisibleCount] = React97.useState(pageSize || Infinity);
27184
26650
  const fieldDefs = fields ?? columns ?? [];
@@ -27493,7 +26959,6 @@ var init_DataGrid = __esm({
27493
26959
  init_cn();
27494
26960
  init_getNestedValue();
27495
26961
  init_useEventBus();
27496
- init_useTranslate();
27497
26962
  init_Box();
27498
26963
  init_Stack();
27499
26964
  init_Typography();
@@ -27618,7 +27083,7 @@ function DataList({
27618
27083
  look = "dense"
27619
27084
  }) {
27620
27085
  const eventBus = useEventBus();
27621
- const { t } = useTranslate();
27086
+ const { t } = hooks.useTranslate();
27622
27087
  const [visibleCount, setVisibleCount] = React97__namespace.default.useState(pageSize || Infinity);
27623
27088
  const fieldDefs = fields ?? columns ?? [];
27624
27089
  const allDataRaw = Array.isArray(entity) ? entity : entity ? [entity] : [];
@@ -27932,7 +27397,6 @@ var init_DataList = __esm({
27932
27397
  init_cn();
27933
27398
  init_getNestedValue();
27934
27399
  init_useEventBus();
27935
- init_useTranslate();
27936
27400
  init_Box();
27937
27401
  init_Stack();
27938
27402
  init_Typography();
@@ -27987,7 +27451,6 @@ var init_FileTree = __esm({
27987
27451
  init_Box();
27988
27452
  init_Typography();
27989
27453
  init_Icon();
27990
- init_useTranslate();
27991
27454
  TreeNodeItem = ({
27992
27455
  node,
27993
27456
  depth,
@@ -28073,7 +27536,7 @@ var init_FileTree = __esm({
28073
27536
  className,
28074
27537
  indent = 16
28075
27538
  }) => {
28076
- const { t } = useTranslate();
27539
+ const { t } = hooks.useTranslate();
28077
27540
  if (tree.length === 0) {
28078
27541
  return /* @__PURE__ */ jsxRuntime.jsx(Box, { className: `p-4 ${className ?? ""}`, children: /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "caption", color: "muted", children: t("fileTree.noFiles") }) });
28079
27542
  }
@@ -28194,7 +27657,6 @@ var init_FilterGroup = __esm({
28194
27657
  init_Icon();
28195
27658
  init_useEventBus();
28196
27659
  init_useQuerySingleton();
28197
- init_useTranslate();
28198
27660
  resolveFilterType = (filter) => filter.filterType ?? filter.type;
28199
27661
  lookStyles6 = {
28200
27662
  toolbar: "",
@@ -28215,7 +27677,7 @@ var init_FilterGroup = __esm({
28215
27677
  isLoading,
28216
27678
  look = "toolbar"
28217
27679
  }) => {
28218
- const { t } = useTranslate();
27680
+ const { t } = hooks.useTranslate();
28219
27681
  const eventBus = useEventBus();
28220
27682
  const queryState = useQuerySingleton(query);
28221
27683
  const [selectedValues, setSelectedValues] = React97.useState(
@@ -28836,7 +28298,6 @@ var init_RelationSelect = __esm({
28836
28298
  init_Spinner();
28837
28299
  init_Typography();
28838
28300
  init_debug();
28839
- init_useTranslate();
28840
28301
  isRelationsDebugEnabled = () => isDebugEnabled();
28841
28302
  RelationSelect = ({
28842
28303
  value,
@@ -28853,7 +28314,7 @@ var init_RelationSelect = __esm({
28853
28314
  searchPlaceholder,
28854
28315
  emptyMessage
28855
28316
  }) => {
28856
- const { t } = useTranslate();
28317
+ const { t } = hooks.useTranslate();
28857
28318
  const resolvedPlaceholder = placeholder ?? t("relationSelect.selectPlaceholder");
28858
28319
  const resolvedSearchPlaceholder = searchPlaceholder ?? t("common.search");
28859
28320
  const resolvedEmptyMessage = emptyMessage ?? t("empty.noOptionsFound");
@@ -29061,7 +28522,6 @@ var init_SearchInput = __esm({
29061
28522
  init_cn();
29062
28523
  init_useEventBus();
29063
28524
  init_useQuerySingleton();
29064
- init_useTranslate();
29065
28525
  SearchInput = ({
29066
28526
  value,
29067
28527
  onSearch,
@@ -29076,7 +28536,7 @@ var init_SearchInput = __esm({
29076
28536
  ...props
29077
28537
  }) => {
29078
28538
  const eventBus = useEventBus();
29079
- const { t } = useTranslate();
28539
+ const { t } = hooks.useTranslate();
29080
28540
  const resolvedPlaceholder = placeholder ?? t("common.search");
29081
28541
  const queryState = useQuerySingleton(query);
29082
28542
  const initialValue = queryState?.search ?? value ?? "";
@@ -29164,7 +28624,6 @@ var init_SidePanel = __esm({
29164
28624
  init_Typography();
29165
28625
  init_cn();
29166
28626
  init_useEventBus();
29167
- init_useTranslate();
29168
28627
  SidePanel = ({
29169
28628
  title,
29170
28629
  children,
@@ -29177,7 +28636,7 @@ var init_SidePanel = __esm({
29177
28636
  closeEvent
29178
28637
  }) => {
29179
28638
  const eventBus = useEventBus();
29180
- const { t } = useTranslate();
28639
+ const { t } = hooks.useTranslate();
29181
28640
  const handleClose = () => {
29182
28641
  if (closeEvent) eventBus.emit(`UI:${closeEvent}`, {});
29183
28642
  onClose();
@@ -29343,7 +28802,6 @@ var init_WizardNavigation = __esm({
29343
28802
  init_Icon();
29344
28803
  init_cn();
29345
28804
  init_useEventBus();
29346
- init_useTranslate();
29347
28805
  WizardNavigation = ({
29348
28806
  currentStep,
29349
28807
  totalSteps,
@@ -29364,7 +28822,7 @@ var init_WizardNavigation = __esm({
29364
28822
  className
29365
28823
  }) => {
29366
28824
  const eventBus = useSafeEventBus4();
29367
- const { t } = useTranslate();
28825
+ const { t } = hooks.useTranslate();
29368
28826
  const resolvedBackLabel = backLabel ?? t("wizard.back");
29369
28827
  const resolvedNextLabel = nextLabel ?? t("wizard.next");
29370
28828
  const resolvedCompleteLabel = completeLabel ?? t("wizard.complete");
@@ -29431,7 +28889,6 @@ var init_RepeatableFormSection = __esm({
29431
28889
  init_Card();
29432
28890
  init_Icon();
29433
28891
  init_useEventBus();
29434
- init_useTranslate();
29435
28892
  RepeatableFormSection = ({
29436
28893
  sectionType,
29437
28894
  title,
@@ -29452,7 +28909,7 @@ var init_RepeatableFormSection = __esm({
29452
28909
  showAuditInfo = false
29453
28910
  }) => {
29454
28911
  const eventBus = useEventBus();
29455
- const { t } = useTranslate();
28912
+ const { t } = hooks.useTranslate();
29456
28913
  const resolvedAddLabel = addLabel ?? t("common.add");
29457
28914
  const resolvedEmptyMessage = emptyMessage ?? t("empty.noItemsAdded");
29458
28915
  const safeItems = items ?? [];
@@ -29562,7 +29019,6 @@ var actionTypeLabelKeys, actionTypeIcons, ViolationAlert;
29562
29019
  var init_ViolationAlert = __esm({
29563
29020
  "components/core/molecules/ViolationAlert.tsx"() {
29564
29021
  init_cn();
29565
- init_useTranslate();
29566
29022
  init_Box();
29567
29023
  init_Stack();
29568
29024
  init_Typography();
@@ -29588,7 +29044,7 @@ var init_ViolationAlert = __esm({
29588
29044
  className,
29589
29045
  ...flatProps
29590
29046
  }) => {
29591
- const { t } = useTranslate();
29047
+ const { t } = hooks.useTranslate();
29592
29048
  const resolvedViolation = violation ?? {
29593
29049
  law: "",
29594
29050
  article: "",
@@ -30068,7 +29524,6 @@ var init_LineChart = __esm({
30068
29524
  "use client";
30069
29525
  init_cn();
30070
29526
  init_atoms2();
30071
- init_useTranslate();
30072
29527
  LineChart2 = ({
30073
29528
  data,
30074
29529
  width = 400,
@@ -30080,7 +29535,7 @@ var init_LineChart = __esm({
30080
29535
  areaColor = "var(--color-primary)",
30081
29536
  className
30082
29537
  }) => {
30083
- const { t } = useTranslate();
29538
+ const { t } = hooks.useTranslate();
30084
29539
  const gradientId = React97.useId();
30085
29540
  const safeData = data ?? [];
30086
29541
  const sortedData = React97.useMemo(() => {
@@ -32024,7 +31479,6 @@ var init_GraphView = __esm({
32024
31479
  "use client";
32025
31480
  init_cn();
32026
31481
  init_atoms2();
32027
- init_useTranslate();
32028
31482
  GROUP_COLORS = [
32029
31483
  "#3b82f6",
32030
31484
  // blue-500
@@ -32057,7 +31511,7 @@ var init_GraphView = __esm({
32057
31511
  showLabels = true,
32058
31512
  zoomToFit = true
32059
31513
  }) => {
32060
- const { t } = useTranslate();
31514
+ const { t } = hooks.useTranslate();
32061
31515
  const containerRef = React97.useRef(null);
32062
31516
  const animRef = React97.useRef(0);
32063
31517
  const [simNodes, setSimNodes] = React97.useState([]);
@@ -32350,7 +31804,6 @@ var init_NumberStepper = __esm({
32350
31804
  init_cn();
32351
31805
  init_Icon();
32352
31806
  init_useEventBus();
32353
- init_useTranslate();
32354
31807
  sizeStyles10 = {
32355
31808
  sm: {
32356
31809
  button: "w-7 h-7",
@@ -32384,7 +31837,7 @@ var init_NumberStepper = __esm({
32384
31837
  label
32385
31838
  }) => {
32386
31839
  const eventBus = useSafeEventBus5();
32387
- const { t } = useTranslate();
31840
+ const { t } = hooks.useTranslate();
32388
31841
  const intervalRef = React97.useRef(null);
32389
31842
  const timeoutRef = React97.useRef(null);
32390
31843
  const isAtMin = min !== void 0 && value <= min;
@@ -32691,7 +32144,6 @@ var init_UploadDropZone = __esm({
32691
32144
  init_Icon();
32692
32145
  init_Typography();
32693
32146
  init_useEventBus();
32694
- init_useTranslate();
32695
32147
  UploadDropZone = ({
32696
32148
  accept,
32697
32149
  maxSize,
@@ -32704,7 +32156,7 @@ var init_UploadDropZone = __esm({
32704
32156
  onFiles,
32705
32157
  className
32706
32158
  }) => {
32707
- const { t } = useTranslate();
32159
+ const { t } = hooks.useTranslate();
32708
32160
  const resolvedLabel = label ?? t("upload.dropOrBrowse");
32709
32161
  const [isDragOver, setIsDragOver] = React97.useState(false);
32710
32162
  const [error, setError] = React97.useState(null);
@@ -32858,7 +32310,6 @@ var init_Lightbox = __esm({
32858
32310
  init_Icon();
32859
32311
  init_cn();
32860
32312
  init_useEventBus();
32861
- init_useTranslate();
32862
32313
  Lightbox = ({
32863
32314
  images = [],
32864
32315
  currentIndex = 0,
@@ -32873,7 +32324,7 @@ var init_Lightbox = __esm({
32873
32324
  const [index, setIndex] = React97.useState(currentIndex);
32874
32325
  const [touchStartX, setTouchStartX] = React97.useState(null);
32875
32326
  const eventBus = useSafeEventBus8();
32876
- const { t } = useTranslate();
32327
+ const { t } = hooks.useTranslate();
32877
32328
  React97.useEffect(() => {
32878
32329
  setIndex(currentIndex);
32879
32330
  }, [currentIndex]);
@@ -33111,7 +32562,7 @@ function TableView({
33111
32562
  dndRoot
33112
32563
  }) {
33113
32564
  const eventBus = useEventBus();
33114
- const { t } = useTranslate();
32565
+ const { t } = hooks.useTranslate();
33115
32566
  const [visibleCount, setVisibleCount] = React97__namespace.default.useState(pageSize > 0 ? pageSize : Infinity);
33116
32567
  const [localSelected, setLocalSelected] = React97__namespace.default.useState(/* @__PURE__ */ new Set());
33117
32568
  const colDefs = columns ?? fields ?? [];
@@ -33343,7 +32794,6 @@ var init_TableView = __esm({
33343
32794
  init_cn();
33344
32795
  init_getNestedValue();
33345
32796
  init_useEventBus();
33346
- init_useTranslate();
33347
32797
  init_Box();
33348
32798
  init_Stack();
33349
32799
  init_Typography();
@@ -33547,7 +32997,6 @@ var init_Meter = __esm({
33547
32997
  init_LoadingState();
33548
32998
  init_ErrorState();
33549
32999
  init_useEventBus();
33550
- init_useTranslate();
33551
33000
  DEFAULT_THRESHOLDS = [
33552
33001
  { value: 30, color: "var(--color-error)" },
33553
33002
  { value: 70, color: "var(--color-warning)" },
@@ -33575,7 +33024,7 @@ var init_Meter = __esm({
33575
33024
  className
33576
33025
  }) => {
33577
33026
  const eventBus = useEventBus();
33578
- const { t } = useTranslate();
33027
+ const { t } = hooks.useTranslate();
33579
33028
  const handleAction = React97.useCallback(
33580
33029
  (action) => {
33581
33030
  if (action.event) {
@@ -35494,7 +34943,6 @@ var init_VoteStack = __esm({
35494
34943
  init_cn();
35495
34944
  init_Icon();
35496
34945
  init_useEventBus();
35497
- init_useTranslate();
35498
34946
  sizeStyles12 = {
35499
34947
  sm: {
35500
34948
  button: "w-7 h-7",
@@ -35527,7 +34975,7 @@ var init_VoteStack = __esm({
35527
34975
  const isUp = userVote === "up";
35528
34976
  const isDown = userVote === "down";
35529
34977
  const eventBus = useEventBus();
35530
- const { t } = useTranslate();
34978
+ const { t } = hooks.useTranslate();
35531
34979
  const handleUp = React97.useCallback(() => {
35532
34980
  const next = isUp ? null : "up";
35533
34981
  onVote?.(next);
@@ -35949,7 +35397,6 @@ var init_QrScanner = __esm({
35949
35397
  init_atoms2();
35950
35398
  init_Icon();
35951
35399
  init_useEventBus();
35952
- init_useTranslate();
35953
35400
  QrScanner = ({
35954
35401
  onScan,
35955
35402
  scanEvent,
@@ -35962,7 +35409,7 @@ var init_QrScanner = __esm({
35962
35409
  className
35963
35410
  }) => {
35964
35411
  const eventBus = useEventBus();
35965
- const { t } = useTranslate();
35412
+ const { t } = hooks.useTranslate();
35966
35413
  const videoRef = React97.useRef(null);
35967
35414
  const streamRef = React97.useRef(null);
35968
35415
  const scanIntervalRef = React97.useRef(null);
@@ -36176,7 +35623,6 @@ var init_OptionConstraintGroup = __esm({
36176
35623
  "components/core/molecules/OptionConstraintGroup.tsx"() {
36177
35624
  init_cn();
36178
35625
  init_useEventBus();
36179
- init_useTranslate();
36180
35626
  init_Typography();
36181
35627
  init_Box();
36182
35628
  init_Label();
@@ -36232,7 +35678,7 @@ var init_OptionConstraintGroup = __esm({
36232
35678
  className
36233
35679
  }) => {
36234
35680
  const eventBus = useEventBus();
36235
- const { t } = useTranslate();
35681
+ const { t } = hooks.useTranslate();
36236
35682
  const hint = constraintHint(constraint, t);
36237
35683
  const error = validateSelection(selected, constraint, t);
36238
35684
  const inputName = `option-${groupId}`;
@@ -36656,7 +36102,7 @@ function changeBlockType(block, type) {
36656
36102
  return { id: block.id, type, content: seed };
36657
36103
  }
36658
36104
  function BlockMenu({ block, readOnly, onDelete, onDuplicate, onChangeType }) {
36659
- const { t } = useTranslate();
36105
+ const { t } = hooks.useTranslate();
36660
36106
  const [open, setOpen] = React97.useState(false);
36661
36107
  const ref = React97.useRef(null);
36662
36108
  React97.useEffect(() => {
@@ -36813,7 +36259,7 @@ function BlockRow({
36813
36259
  onInsertAfter,
36814
36260
  onChangeType
36815
36261
  }) {
36816
- const { t } = useTranslate();
36262
+ const { t } = hooks.useTranslate();
36817
36263
  const setContent = React97.useCallback(
36818
36264
  (next) => onUpdate((b) => ({ ...b, content: next })),
36819
36265
  [onUpdate]
@@ -37132,7 +36578,6 @@ var init_RichBlockEditor = __esm({
37132
36578
  init_Input();
37133
36579
  init_Icon();
37134
36580
  init_useEventBus();
37135
- init_useTranslate();
37136
36581
  TOOLBAR_ENTRIES = [
37137
36582
  { type: "paragraph", labelKey: "richBlockEditor.toolbar.text", icon: LucideIcons2.Type },
37138
36583
  { type: "heading-1", labelKey: "richBlockEditor.toolbar.h1", icon: LucideIcons2.Heading1 },
@@ -37189,7 +36634,7 @@ var init_RichBlockEditor = __esm({
37189
36634
  showToolbar = true,
37190
36635
  className
37191
36636
  }) => {
37192
- const { t } = useTranslate();
36637
+ const { t } = hooks.useTranslate();
37193
36638
  const [blocks, setBlocks] = React97.useState(
37194
36639
  () => normalizeBlocks(initialBlocks)
37195
36640
  );
@@ -37323,7 +36768,6 @@ var init_ReplyTree = __esm({
37323
36768
  "use client";
37324
36769
  init_cn();
37325
36770
  init_useEventBus();
37326
- init_useTranslate();
37327
36771
  init_atoms2();
37328
36772
  init_VoteStack();
37329
36773
  ReplyTreeNode = ({
@@ -37343,7 +36787,7 @@ var init_ReplyTree = __esm({
37343
36787
  showActions
37344
36788
  }) => {
37345
36789
  const eventBus = useEventBus();
37346
- const { t } = useTranslate();
36790
+ const { t } = hooks.useTranslate();
37347
36791
  const hasReplies = !!node.replies && node.replies.length > 0;
37348
36792
  const isCollapsed = collapsedSet.has(node.id);
37349
36793
  const atMaxDepth = depth >= maxDepth;
@@ -37534,7 +36978,7 @@ var init_ReplyTree = __esm({
37534
36978
  showActions = true,
37535
36979
  className
37536
36980
  }) => {
37537
- const { t } = useTranslate();
36981
+ const { t } = hooks.useTranslate();
37538
36982
  const nodeList = Array.isArray(nodes) ? nodes : nodes ? [nodes] : [];
37539
36983
  const [collapsedSet, setCollapsedSet] = React97.useState(() => {
37540
36984
  const acc = /* @__PURE__ */ new Set();
@@ -37631,7 +37075,6 @@ var init_VersionDiff = __esm({
37631
37075
  "use client";
37632
37076
  init_cn();
37633
37077
  init_useEventBus();
37634
- init_useTranslate();
37635
37078
  init_atoms2();
37636
37079
  init_Stack();
37637
37080
  INLINE_STYLES = {
@@ -37654,7 +37097,7 @@ var init_VersionDiff = __esm({
37654
37097
  language,
37655
37098
  className
37656
37099
  }) => {
37657
- const { t } = useTranslate();
37100
+ const { t } = hooks.useTranslate();
37658
37101
  const eventBus = useEventBus();
37659
37102
  const revisions = Array.isArray(revisionsProp) ? revisionsProp : [];
37660
37103
  const fallbackBefore = revisions[0]?.id ?? "";
@@ -37947,12 +37390,11 @@ var init_DocBreadcrumb = __esm({
37947
37390
  init_Stack();
37948
37391
  init_Typography();
37949
37392
  init_Icon();
37950
- init_useTranslate();
37951
37393
  DocBreadcrumb = ({
37952
37394
  items,
37953
37395
  className
37954
37396
  }) => {
37955
- const { t } = useTranslate();
37397
+ const { t } = hooks.useTranslate();
37956
37398
  return /* @__PURE__ */ jsxRuntime.jsx(
37957
37399
  Box,
37958
37400
  {
@@ -38203,7 +37645,7 @@ function DocSearch({
38203
37645
  onSearch,
38204
37646
  className
38205
37647
  }) {
38206
- const { t } = useTranslate();
37648
+ const { t } = hooks.useTranslate();
38207
37649
  const resolvedPlaceholder = placeholder ?? t("docSearch.placeholder");
38208
37650
  const [query, setQuery] = React97.useState("");
38209
37651
  const [results, setResults] = React97.useState([]);
@@ -38376,7 +37818,6 @@ var init_DocSearch = __esm({
38376
37818
  init_Typography();
38377
37819
  init_Icon();
38378
37820
  init_Input();
38379
- init_useTranslate();
38380
37821
  }
38381
37822
  });
38382
37823
  var DocSidebarCategory, DocSidebar;
@@ -38389,7 +37830,6 @@ var init_DocSidebar = __esm({
38389
37830
  init_Stack();
38390
37831
  init_Typography();
38391
37832
  init_Icon();
38392
- init_useTranslate();
38393
37833
  DocSidebarCategory = ({ item, depth }) => {
38394
37834
  const [expanded, setExpanded] = React97.useState(
38395
37835
  () => item.items?.some(function hasActive(child) {
@@ -38474,7 +37914,7 @@ var init_DocSidebar = __esm({
38474
37914
  items,
38475
37915
  className
38476
37916
  }) => {
38477
- const { t } = useTranslate();
37917
+ const { t } = hooks.useTranslate();
38478
37918
  return /* @__PURE__ */ jsxRuntime.jsx(
38479
37919
  Box,
38480
37920
  {
@@ -38496,13 +37936,12 @@ var init_DocTOC = __esm({
38496
37936
  init_Box();
38497
37937
  init_Stack();
38498
37938
  init_Typography();
38499
- init_useTranslate();
38500
37939
  DocTOC = ({
38501
37940
  items,
38502
37941
  activeId,
38503
37942
  className
38504
37943
  }) => {
38505
- const { t } = useTranslate();
37944
+ const { t } = hooks.useTranslate();
38506
37945
  return /* @__PURE__ */ jsxRuntime.jsx(
38507
37946
  Box,
38508
37947
  {
@@ -38822,7 +38261,6 @@ var init_Header = __esm({
38822
38261
  init_Stack();
38823
38262
  init_Typography();
38824
38263
  init_cn();
38825
- init_useTranslate();
38826
38264
  lookStyles8 = {
38827
38265
  "compact-bar": "",
38828
38266
  hero: "py-section min-h-[200px] [&_h1]:text-display-1",
@@ -38851,7 +38289,7 @@ var init_Header = __esm({
38851
38289
  onLogoClick,
38852
38290
  className
38853
38291
  }) => {
38854
- const { t } = useTranslate();
38292
+ const { t } = hooks.useTranslate();
38855
38293
  const resolvedSearchPlaceholder = searchPlaceholder ?? t("common.search");
38856
38294
  const userInitials = userAvatar?.initials || userName?.[0]?.toUpperCase() || "U";
38857
38295
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -39142,7 +38580,6 @@ var init_Sidebar = __esm({
39142
38580
  init_Typography();
39143
38581
  init_cn();
39144
38582
  init_useEventBus();
39145
- init_useTranslate();
39146
38583
  SidebarNavItem = ({ item, collapsed }) => {
39147
38584
  const Icon3 = item.icon;
39148
38585
  const isActive = item.active ?? item.isActive;
@@ -39206,7 +38643,7 @@ var init_Sidebar = __esm({
39206
38643
  className
39207
38644
  }) => {
39208
38645
  const { emit } = useEventBus();
39209
- const { t } = useTranslate();
38646
+ const { t } = hooks.useTranslate();
39210
38647
  const [internalCollapsed, setInternalCollapsed] = React97.useState(defaultCollapsed);
39211
38648
  const collapsed = controlledCollapsed !== void 0 ? controlledCollapsed : internalCollapsed;
39212
38649
  const handleToggle = React97.useCallback(() => {
@@ -39396,7 +38833,6 @@ var init_WizardContainer = __esm({
39396
38833
  init_Stack();
39397
38834
  init_Icon();
39398
38835
  init_cn();
39399
- init_useTranslate();
39400
38836
  WizardContainer = ({
39401
38837
  steps,
39402
38838
  currentStep: controlledStep,
@@ -39409,7 +38845,7 @@ var init_WizardContainer = __esm({
39409
38845
  entity: _entity
39410
38846
  // Accept but don't use directly yet
39411
38847
  }) => {
39412
- const { t } = useTranslate();
38848
+ const { t } = hooks.useTranslate();
39413
38849
  const [internalStep, setInternalStep] = React97.useState(0);
39414
38850
  const normalizedControlledStep = (() => {
39415
38851
  if (controlledStep === void 0 || controlledStep === null)
@@ -39970,7 +39406,6 @@ var init_SignaturePad = __esm({
39970
39406
  init_LoadingState();
39971
39407
  init_ErrorState();
39972
39408
  init_useEventBus();
39973
- init_useTranslate();
39974
39409
  SignaturePad = ({
39975
39410
  label,
39976
39411
  helperText,
@@ -39988,7 +39423,7 @@ var init_SignaturePad = __esm({
39988
39423
  className
39989
39424
  }) => {
39990
39425
  const eventBus = useEventBus();
39991
- const { t } = useTranslate();
39426
+ const { t } = hooks.useTranslate();
39992
39427
  const resolvedLabel = label ?? t("signaturePad.label");
39993
39428
  const resolvedHelperText = helperText ?? t("signaturePad.helperText");
39994
39429
  const canvasRef = React97.useRef(null);
@@ -40164,7 +39599,6 @@ var init_DocumentViewer = __esm({
40164
39599
  init_EmptyState();
40165
39600
  init_Tabs();
40166
39601
  init_useEventBus();
40167
- init_useTranslate();
40168
39602
  DocumentViewer = ({
40169
39603
  title,
40170
39604
  src,
@@ -40184,7 +39618,7 @@ var init_DocumentViewer = __esm({
40184
39618
  className
40185
39619
  }) => {
40186
39620
  const eventBus = useEventBus();
40187
- const { t } = useTranslate();
39621
+ const { t } = hooks.useTranslate();
40188
39622
  const [zoom, setZoom] = React97.useState(100);
40189
39623
  const [currentPage, setCurrentPage] = React97.useState(propPage ?? 1);
40190
39624
  const [activeDocIndex, setActiveDocIndex] = React97.useState(0);
@@ -40369,7 +39803,6 @@ var init_GraphCanvas = __esm({
40369
39803
  init_ErrorState();
40370
39804
  init_EmptyState();
40371
39805
  init_useEventBus();
40372
- init_useTranslate();
40373
39806
  GROUP_COLORS2 = [
40374
39807
  "var(--color-primary)",
40375
39808
  "var(--color-success)",
@@ -40396,7 +39829,7 @@ var init_GraphCanvas = __esm({
40396
39829
  className
40397
39830
  }) => {
40398
39831
  const eventBus = useEventBus();
40399
- const { t } = useTranslate();
39832
+ const { t } = hooks.useTranslate();
40400
39833
  const canvasRef = React97.useRef(null);
40401
39834
  const animRef = React97.useRef(0);
40402
39835
  const [zoom, setZoom] = React97.useState(1);
@@ -40746,7 +40179,7 @@ function DataTable({
40746
40179
  null
40747
40180
  );
40748
40181
  const eventBus = useEventBus();
40749
- const { t } = useTranslate();
40182
+ const { t } = hooks.useTranslate();
40750
40183
  const resolvedEmptyTitle = emptyTitle ?? t("table.empty.title");
40751
40184
  const resolvedEmptyDescription = emptyDescription ?? t("table.empty.description");
40752
40185
  const resolvedSearchPlaceholder = searchPlaceholder ?? t("common.search");
@@ -41107,7 +40540,6 @@ var init_DataTable = __esm({
41107
40540
  init_molecules2();
41108
40541
  init_Icon();
41109
40542
  init_useEventBus();
41110
- init_useTranslate();
41111
40543
  init_types3();
41112
40544
  lookStyles9 = {
41113
40545
  dense: "",
@@ -41125,7 +40557,7 @@ function DebuggerBoard({
41125
40557
  className
41126
40558
  }) {
41127
40559
  const { emit } = useEventBus();
41128
- const { t } = useTranslate();
40560
+ const { t } = hooks.useTranslate();
41129
40561
  const resolved = Array.isArray(entity) ? entity[0] : entity;
41130
40562
  const [flaggedLines, setFlaggedLines] = React97.useState(/* @__PURE__ */ new Set());
41131
40563
  const [headerError, setHeaderError] = React97.useState(false);
@@ -41254,7 +40686,6 @@ var init_DebuggerBoard = __esm({
41254
40686
  "components/game/organisms/puzzles/debugger/DebuggerBoard.tsx"() {
41255
40687
  init_atoms2();
41256
40688
  init_useEventBus();
41257
- init_useTranslate();
41258
40689
  DebuggerBoard.displayName = "DebuggerBoard";
41259
40690
  }
41260
40691
  });
@@ -41425,7 +40856,6 @@ var init_DetailPanel = __esm({
41425
40856
  init_cn();
41426
40857
  init_getNestedValue();
41427
40858
  init_useEventBus();
41428
- init_useTranslate();
41429
40859
  ReactMarkdown2 = React97.lazy(() => import('react-markdown'));
41430
40860
  DetailPanel = ({
41431
40861
  title: propTitle,
@@ -41445,7 +40875,7 @@ var init_DetailPanel = __esm({
41445
40875
  error
41446
40876
  }) => {
41447
40877
  const eventBus = useEventBus();
41448
- const { t } = useTranslate();
40878
+ const { t } = hooks.useTranslate();
41449
40879
  const isFieldDefArray = (arr) => {
41450
40880
  if (!arr || arr.length === 0) return false;
41451
40881
  const first = arr[0];
@@ -41843,7 +41273,7 @@ function CompactView({
41843
41273
  stateStyles,
41844
41274
  className
41845
41275
  }) {
41846
- const { t } = useTranslate();
41276
+ const { t } = hooks.useTranslate();
41847
41277
  const config = SIZE_CONFIG2[size || "md"];
41848
41278
  const currentTransitions = trait.transitions.filter((t2) => t2.from === trait.currentState);
41849
41279
  return /* @__PURE__ */ jsxRuntime.jsxs(VStack, { className: cn("p-3 rounded-container bg-card border border-border", className), gap: "sm", children: [
@@ -41879,7 +41309,7 @@ function FullView({
41879
41309
  stateStyles,
41880
41310
  className
41881
41311
  }) {
41882
- const { t } = useTranslate();
41312
+ const { t } = hooks.useTranslate();
41883
41313
  const config = SIZE_CONFIG2[size || "md"];
41884
41314
  const currentTransitions = trait.transitions.filter((t2) => t2.from === trait.currentState);
41885
41315
  return /* @__PURE__ */ jsxRuntime.jsxs(VStack, { className: cn("p-3 rounded-container bg-card border border-border", className), gap: "sm", children: [
@@ -42004,7 +41434,6 @@ var init_TraitStateViewer = __esm({
42004
41434
  "components/game/organisms/TraitStateViewer.tsx"() {
42005
41435
  "use client";
42006
41436
  init_cn();
42007
- init_useTranslate();
42008
41437
  init_Box();
42009
41438
  init_Typography();
42010
41439
  init_Stack();
@@ -42026,7 +41455,7 @@ function RuleEditor({
42026
41455
  disabled = false,
42027
41456
  className
42028
41457
  }) {
42029
- const { t } = useTranslate();
41458
+ const { t } = hooks.useTranslate();
42030
41459
  const handleWhenChange = React97.useCallback((e) => {
42031
41460
  onChange({ ...rule, whenEvent: e.target.value });
42032
41461
  }, [rule, onChange]);
@@ -42063,7 +41492,6 @@ var init_RuleEditor = __esm({
42063
41492
  "components/game/organisms/puzzles/event-handler/RuleEditor.tsx"() {
42064
41493
  init_atoms2();
42065
41494
  init_cn();
42066
- init_useTranslate();
42067
41495
  RuleEditor.displayName = "RuleEditor";
42068
41496
  }
42069
41497
  });
@@ -42073,7 +41501,7 @@ function ObjectRulePanel({
42073
41501
  disabled = false,
42074
41502
  className
42075
41503
  }) {
42076
- const { t } = useTranslate();
41504
+ const { t } = hooks.useTranslate();
42077
41505
  const maxRules = object.maxRules || 3;
42078
41506
  const canAdd = object.rules.length < maxRules;
42079
41507
  const handleRuleChange = React97.useCallback((index, updatedRule) => {
@@ -42138,7 +41566,6 @@ var init_ObjectRulePanel = __esm({
42138
41566
  "components/game/organisms/puzzles/event-handler/ObjectRulePanel.tsx"() {
42139
41567
  init_atoms2();
42140
41568
  init_cn();
42141
- init_useTranslate();
42142
41569
  init_TraitStateViewer();
42143
41570
  init_RuleEditor();
42144
41571
  nextRuleId = 1;
@@ -42151,7 +41578,7 @@ function EventLog({
42151
41578
  label,
42152
41579
  className
42153
41580
  }) {
42154
- const { t } = useTranslate();
41581
+ const { t } = hooks.useTranslate();
42155
41582
  const scrollRef = React97.useRef(null);
42156
41583
  React97.useEffect(() => {
42157
41584
  if (scrollRef.current) {
@@ -42183,7 +41610,6 @@ var init_EventLog = __esm({
42183
41610
  "components/game/organisms/puzzles/event-handler/EventLog.tsx"() {
42184
41611
  init_atoms2();
42185
41612
  init_cn();
42186
- init_useTranslate();
42187
41613
  STATUS_STYLES = {
42188
41614
  pending: "text-muted-foreground",
42189
41615
  active: "text-primary animate-pulse",
@@ -42207,7 +41633,7 @@ function EventHandlerBoard({
42207
41633
  className
42208
41634
  }) {
42209
41635
  const { emit } = useEventBus();
42210
- const { t } = useTranslate();
41636
+ const { t } = hooks.useTranslate();
42211
41637
  const resolved = Array.isArray(entity) ? entity[0] : entity;
42212
41638
  const entityObjects = resolved?.objects ?? [];
42213
41639
  const [objects, setObjects] = React97.useState(entityObjects);
@@ -42397,7 +41823,6 @@ var init_EventHandlerBoard = __esm({
42397
41823
  init_atoms2();
42398
41824
  init_cn();
42399
41825
  init_useEventBus();
42400
- init_useTranslate();
42401
41826
  init_TraitStateViewer();
42402
41827
  init_ObjectRulePanel();
42403
41828
  init_EventLog();
@@ -42467,7 +41892,6 @@ var init_FeatureGridOrganism = __esm({
42467
41892
  "use client";
42468
41893
  init_cn();
42469
41894
  init_useEventBus();
42470
- init_useTranslate();
42471
41895
  init_Stack();
42472
41896
  init_Typography();
42473
41897
  init_FeatureGrid();
@@ -42483,7 +41907,7 @@ var init_FeatureGridOrganism = __esm({
42483
41907
  subtitle
42484
41908
  }) => {
42485
41909
  const eventBus = useEventBus();
42486
- const { t } = useTranslate();
41910
+ const { t } = hooks.useTranslate();
42487
41911
  const items = React97.useMemo(
42488
41912
  () => Array.isArray(entity) ? entity : entity && typeof entity === "object" ? [entity] : [],
42489
41913
  [entity]
@@ -42650,7 +42074,6 @@ var init_Form = __esm({
42650
42074
  init_RelationSelect();
42651
42075
  init_Alert();
42652
42076
  init_useEventBus();
42653
- init_useTranslate();
42654
42077
  init_debug();
42655
42078
  layoutStyles = {
42656
42079
  vertical: "flex flex-col",
@@ -42701,7 +42124,7 @@ var init_Form = __esm({
42701
42124
  ...props
42702
42125
  }) => {
42703
42126
  const eventBus = useEventBus();
42704
- const { t } = useTranslate();
42127
+ const { t } = hooks.useTranslate();
42705
42128
  const resolvedSubmitLabel = submitLabel ?? t("common.save");
42706
42129
  const resolvedCancelLabel = cancelLabel ?? t("common.cancel");
42707
42130
  const isSchemaEntity = isOrbitalEntitySchema(entity);
@@ -43810,7 +43233,6 @@ var init_HeroOrganism = __esm({
43810
43233
  "use client";
43811
43234
  init_cn();
43812
43235
  init_useEventBus();
43813
- init_useTranslate();
43814
43236
  init_HeroSection();
43815
43237
  init_LoadingState();
43816
43238
  init_ErrorState();
@@ -43822,7 +43244,7 @@ var init_HeroOrganism = __esm({
43822
43244
  children
43823
43245
  }) => {
43824
43246
  const eventBus = useEventBus();
43825
- const { t } = useTranslate();
43247
+ const { t } = hooks.useTranslate();
43826
43248
  const resolved = React97.useMemo(
43827
43249
  () => Array.isArray(entity) ? entity[0] : entity && typeof entity === "object" ? entity : void 0,
43828
43250
  [entity]
@@ -43916,7 +43338,6 @@ var LandingPageTemplate;
43916
43338
  var init_LandingPageTemplate = __esm({
43917
43339
  "components/marketing/templates/LandingPageTemplate.tsx"() {
43918
43340
  init_cn();
43919
- init_useTranslate();
43920
43341
  init_Stack();
43921
43342
  init_Box();
43922
43343
  init_Container();
@@ -43934,7 +43355,7 @@ var init_LandingPageTemplate = __esm({
43934
43355
  featureColumns = 3,
43935
43356
  className
43936
43357
  }) => {
43937
- const { t } = useTranslate();
43358
+ const { t } = hooks.useTranslate();
43938
43359
  const resolved = entity && typeof entity === "object" && !Array.isArray(entity) ? entity : void 0;
43939
43360
  if (!resolved) return null;
43940
43361
  return /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "none", className: cn("w-full", className), children: [
@@ -44116,7 +43537,6 @@ var init_List = __esm({
44116
43537
  init_cn();
44117
43538
  init_getNestedValue();
44118
43539
  init_useEventBus();
44119
- init_useTranslate();
44120
43540
  init_types3();
44121
43541
  STATUS_STYLES2 = {
44122
43542
  complete: {
@@ -44241,7 +43661,7 @@ var init_List = __esm({
44241
43661
  entityType
44242
43662
  }) => {
44243
43663
  const eventBus = useEventBus();
44244
- const { t } = useTranslate();
43664
+ const { t } = hooks.useTranslate();
44245
43665
  const resolvedEmptyMessage = emptyMessage ?? t("empty.noData");
44246
43666
  const effectiveFieldNames = normalizeFields2(fields).length > 0 ? normalizeFields2(fields) : fieldNames;
44247
43667
  const rawItems = React97.useMemo(() => {
@@ -44588,7 +44008,7 @@ function MasterDetail({
44588
44008
  className,
44589
44009
  ...rest
44590
44010
  }) {
44591
- const { t } = useTranslate();
44011
+ const { t } = hooks.useTranslate();
44592
44012
  const loading = externalLoading ?? false;
44593
44013
  const isLoading = externalIsLoading ?? false;
44594
44014
  const error = externalError ?? null;
@@ -44611,7 +44031,6 @@ var init_MasterDetail = __esm({
44611
44031
  "components/core/organisms/MasterDetail.tsx"() {
44612
44032
  "use client";
44613
44033
  init_DataTable();
44614
- init_useTranslate();
44615
44034
  MasterDetail.displayName = "MasterDetail";
44616
44035
  }
44617
44036
  });
@@ -44620,9 +44039,8 @@ var init_MasterDetailLayout = __esm({
44620
44039
  "components/core/organisms/layout/MasterDetailLayout.tsx"() {
44621
44040
  init_cn();
44622
44041
  init_Typography();
44623
- init_useTranslate();
44624
44042
  DefaultEmptyDetail = () => {
44625
- const { t } = useTranslate();
44043
+ const { t } = hooks.useTranslate();
44626
44044
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-center h-full border-2 border-dashed border-border", children: /* @__PURE__ */ jsxRuntime.jsx(
44627
44045
  Typography,
44628
44046
  {
@@ -44681,7 +44099,6 @@ var init_MediaGallery = __esm({
44681
44099
  init_ErrorState();
44682
44100
  init_EmptyState();
44683
44101
  init_useEventBus();
44684
- init_useTranslate();
44685
44102
  COLUMN_CLASSES = {
44686
44103
  2: "grid-cols-2",
44687
44104
  3: "grid-cols-2 sm:grid-cols-3",
@@ -44710,7 +44127,7 @@ var init_MediaGallery = __esm({
44710
44127
  className
44711
44128
  }) => {
44712
44129
  const eventBus = useEventBus();
44713
- const { t } = useTranslate();
44130
+ const { t } = hooks.useTranslate();
44714
44131
  const [lightboxItem, setLightboxItem] = React97.useState(null);
44715
44132
  const closeLightbox = React97.useCallback(() => setLightboxItem(null), []);
44716
44133
  useEventListener("UI:LIGHTBOX_CLOSE", closeLightbox);
@@ -44952,7 +44369,7 @@ function NegotiatorBoard({
44952
44369
  className
44953
44370
  }) {
44954
44371
  const { emit } = useEventBus();
44955
- const { t } = useTranslate();
44372
+ const { t } = hooks.useTranslate();
44956
44373
  const resolved = Array.isArray(entity) ? entity[0] : entity;
44957
44374
  const [history, setHistory] = React97.useState([]);
44958
44375
  const [headerError, setHeaderError] = React97.useState(false);
@@ -45082,7 +44499,6 @@ var init_NegotiatorBoard = __esm({
45082
44499
  "components/game/organisms/puzzles/negotiator/NegotiatorBoard.tsx"() {
45083
44500
  init_atoms2();
45084
44501
  init_useEventBus();
45085
- init_useTranslate();
45086
44502
  NegotiatorBoard.displayName = "NegotiatorBoard";
45087
44503
  }
45088
44504
  });
@@ -45092,7 +44508,6 @@ var init_PricingOrganism = __esm({
45092
44508
  "use client";
45093
44509
  init_cn();
45094
44510
  init_useEventBus();
45095
- init_useTranslate();
45096
44511
  init_Stack();
45097
44512
  init_Typography();
45098
44513
  init_PricingGrid();
@@ -45107,7 +44522,7 @@ var init_PricingOrganism = __esm({
45107
44522
  subtitle
45108
44523
  }) => {
45109
44524
  useEventBus();
45110
- const { t } = useTranslate();
44525
+ const { t } = hooks.useTranslate();
45111
44526
  const items = React97.useMemo(
45112
44527
  () => Array.isArray(entity) ? entity : entity && typeof entity === "object" ? [entity] : [],
45113
44528
  [entity]
@@ -45142,7 +44557,6 @@ var PricingPageTemplate;
45142
44557
  var init_PricingPageTemplate = __esm({
45143
44558
  "components/marketing/templates/PricingPageTemplate.tsx"() {
45144
44559
  init_cn();
45145
- init_useTranslate();
45146
44560
  init_Stack();
45147
44561
  init_Box();
45148
44562
  init_Container();
@@ -45155,7 +44569,7 @@ var init_PricingPageTemplate = __esm({
45155
44569
  entity,
45156
44570
  className
45157
44571
  }) => {
45158
- const { t } = useTranslate();
44572
+ const { t } = hooks.useTranslate();
45159
44573
  const resolved = entity && typeof entity === "object" && !Array.isArray(entity) ? entity : void 0;
45160
44574
  if (!resolved) return null;
45161
44575
  return /* @__PURE__ */ jsxRuntime.jsxs(VStack, { gap: "none", className: cn("w-full", className), children: [
@@ -45657,7 +45071,7 @@ var init_WalkMinimap = __esm({
45657
45071
  }
45658
45072
  });
45659
45073
  function TraitsTab({ traits: traits2 }) {
45660
- const { t } = useTranslate();
45074
+ const { t } = hooks.useTranslate();
45661
45075
  if (traits2.length === 0) {
45662
45076
  return /* @__PURE__ */ jsxRuntime.jsx(
45663
45077
  EmptyState,
@@ -45725,12 +45139,11 @@ var init_TraitsTab = __esm({
45725
45139
  init_Typography();
45726
45140
  init_Stack();
45727
45141
  init_EmptyState();
45728
- init_useTranslate();
45729
45142
  TraitsTab.displayName = "TraitsTab";
45730
45143
  }
45731
45144
  });
45732
45145
  function TicksTab({ ticks: ticks2 }) {
45733
- const { t } = useTranslate();
45146
+ const { t } = hooks.useTranslate();
45734
45147
  const activeTicks = ticks2.filter((t2) => t2.active);
45735
45148
  const inactiveTicks = ticks2.filter((t2) => !t2.active);
45736
45149
  if (ticks2.length === 0) {
@@ -45803,12 +45216,11 @@ var init_TicksTab = __esm({
45803
45216
  init_Stack();
45804
45217
  init_Card();
45805
45218
  init_EmptyState();
45806
- init_useTranslate();
45807
45219
  TicksTab.displayName = "TicksTab";
45808
45220
  }
45809
45221
  });
45810
45222
  function EntitiesTab({ snapshot }) {
45811
- const { t } = useTranslate();
45223
+ const { t } = hooks.useTranslate();
45812
45224
  if (!snapshot) {
45813
45225
  return /* @__PURE__ */ jsxRuntime.jsx(
45814
45226
  EmptyState,
@@ -45877,12 +45289,11 @@ var init_EntitiesTab = __esm({
45877
45289
  init_Typography();
45878
45290
  init_Stack();
45879
45291
  init_EmptyState();
45880
- init_useTranslate();
45881
45292
  EntitiesTab.displayName = "EntitiesTab";
45882
45293
  }
45883
45294
  });
45884
45295
  function EventFlowTab({ events: events2 }) {
45885
- const { t } = useTranslate();
45296
+ const { t } = hooks.useTranslate();
45886
45297
  const [filter, setFilter] = React97__namespace.useState("all");
45887
45298
  const containerRef = React97__namespace.useRef(null);
45888
45299
  const [autoScroll, setAutoScroll] = React97__namespace.useState(true);
@@ -45994,7 +45405,6 @@ var init_EventFlowTab = __esm({
45994
45405
  init_Button();
45995
45406
  init_Checkbox();
45996
45407
  init_EmptyState();
45997
- init_useTranslate();
45998
45408
  TYPE_BADGES = {
45999
45409
  trait: { variant: "primary", icon: "\u{1F504}" },
46000
45410
  tick: { variant: "warning", icon: "\u23F1\uFE0F" },
@@ -46007,7 +45417,7 @@ var init_EventFlowTab = __esm({
46007
45417
  }
46008
45418
  });
46009
45419
  function GuardsPanel({ guards }) {
46010
- const { t } = useTranslate();
45420
+ const { t } = hooks.useTranslate();
46011
45421
  const [filter, setFilter] = React97__namespace.useState("all");
46012
45422
  if (guards.length === 0) {
46013
45423
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -46089,12 +45499,11 @@ var init_GuardsPanel = __esm({
46089
45499
  init_ButtonGroup();
46090
45500
  init_Button();
46091
45501
  init_EmptyState();
46092
- init_useTranslate();
46093
45502
  GuardsPanel.displayName = "GuardsPanel";
46094
45503
  }
46095
45504
  });
46096
45505
  function VerificationTab({ checks, summary }) {
46097
- const { t } = useTranslate();
45506
+ const { t } = hooks.useTranslate();
46098
45507
  if (checks.length === 0) {
46099
45508
  return /* @__PURE__ */ jsxRuntime.jsx(
46100
45509
  EmptyState,
@@ -46165,7 +45574,6 @@ var init_VerificationTab = __esm({
46165
45574
  init_Typography();
46166
45575
  init_Stack();
46167
45576
  init_EmptyState();
46168
- init_useTranslate();
46169
45577
  STATUS_CONFIG = {
46170
45578
  pass: { variant: "success", icon: "\u2713", label: "PASS" },
46171
45579
  fail: { variant: "danger", icon: "\u2717", label: "FAIL" },
@@ -46185,7 +45593,7 @@ function EffectBadge({ effect }) {
46185
45593
  ] });
46186
45594
  }
46187
45595
  function TransitionTimeline({ transitions }) {
46188
- const { t } = useTranslate();
45596
+ const { t } = hooks.useTranslate();
46189
45597
  const containerRef = React97__namespace.useRef(null);
46190
45598
  const [autoScroll, setAutoScroll] = React97__namespace.useState(true);
46191
45599
  const [expandedId, setExpandedId] = React97__namespace.useState(null);
@@ -46301,7 +45709,6 @@ var init_TransitionTimeline = __esm({
46301
45709
  init_Typography();
46302
45710
  init_EmptyState();
46303
45711
  init_Checkbox();
46304
- init_useTranslate();
46305
45712
  EFFECT_STATUS_VARIANT = {
46306
45713
  executed: "success",
46307
45714
  failed: "danger",
@@ -46317,7 +45724,7 @@ function StatRow({ label, value, variant }) {
46317
45724
  ] });
46318
45725
  }
46319
45726
  function ServerBridgeTab({ bridge }) {
46320
- const { t } = useTranslate();
45727
+ const { t } = hooks.useTranslate();
46321
45728
  if (!bridge) {
46322
45729
  return /* @__PURE__ */ jsxRuntime.jsx(
46323
45730
  EmptyState,
@@ -46391,7 +45798,6 @@ var init_ServerBridgeTab = __esm({
46391
45798
  init_Stack();
46392
45799
  init_Card();
46393
45800
  init_EmptyState();
46394
- init_useTranslate();
46395
45801
  ServerBridgeTab.displayName = "ServerBridgeTab";
46396
45802
  }
46397
45803
  });
@@ -46470,7 +45876,7 @@ function getAllEvents(traits2) {
46470
45876
  }
46471
45877
  function EventDispatcherTab({ traits: traits2, schema }) {
46472
45878
  const eventBus = useEventBus();
46473
- const { t } = useTranslate();
45879
+ const { t } = hooks.useTranslate();
46474
45880
  const [log16, setLog] = React97__namespace.useState([]);
46475
45881
  const prevStatesRef = React97__namespace.useRef(/* @__PURE__ */ new Map());
46476
45882
  React97__namespace.useEffect(() => {
@@ -46556,7 +45962,6 @@ var init_EventDispatcherTab = __esm({
46556
45962
  init_Stack();
46557
45963
  init_EmptyState();
46558
45964
  init_useEventBus();
46559
- init_useTranslate();
46560
45965
  EventDispatcherTab.displayName = "EventDispatcherTab";
46561
45966
  }
46562
45967
  });
@@ -46567,7 +45972,7 @@ var init_RuntimeDebugger = __esm({
46567
45972
  }
46568
45973
  });
46569
45974
  function ServerResponseRow({ sr }) {
46570
- const { t } = useTranslate();
45975
+ const { t } = hooks.useTranslate();
46571
45976
  const entityEntries = Object.entries(sr.dataEntities);
46572
45977
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "ml-4 pl-2 border-l border-purple-500/30 py-0.5 text-xs font-mono", children: [
46573
45978
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
@@ -46593,7 +45998,7 @@ function ServerResponseRow({ sr }) {
46593
45998
  ] });
46594
45999
  }
46595
46000
  function TransitionRow({ trace }) {
46596
- const { t } = useTranslate();
46001
+ const { t } = hooks.useTranslate();
46597
46002
  const isServerEntry = !!trace.serverResponse && trace.traitName.startsWith("server:");
46598
46003
  const hasFailedEffects = trace.effects.some((e) => e.status === "failed");
46599
46004
  if (isServerEntry && trace.serverResponse) {
@@ -46642,7 +46047,7 @@ function VerifyModePanel({
46642
46047
  serverCount,
46643
46048
  localCount
46644
46049
  }) {
46645
- const { t } = useTranslate();
46050
+ const { t } = hooks.useTranslate();
46646
46051
  const [expanded, setExpanded] = React97__namespace.useState(true);
46647
46052
  const scrollRef = React97__namespace.useRef(null);
46648
46053
  const prevCountRef = React97__namespace.useRef(0);
@@ -46702,7 +46107,7 @@ function RuntimeDebugger({
46702
46107
  defaultTab,
46703
46108
  schema
46704
46109
  }) {
46705
- const { t } = useTranslate();
46110
+ const { t } = hooks.useTranslate();
46706
46111
  const [isCollapsed, setIsCollapsed] = React97__namespace.useState(mode === "verify" ? true : defaultCollapsed);
46707
46112
  const [isVisible, setIsVisible] = React97__namespace.useState(mode === "inline" || mode === "verify" || isDebugEnabled2());
46708
46113
  const debugData = useDebugData();
@@ -46931,7 +46336,6 @@ var init_RuntimeDebugger2 = __esm({
46931
46336
  init_TransitionTimeline();
46932
46337
  init_ServerBridgeTab();
46933
46338
  init_EventDispatcherTab();
46934
- init_useTranslate();
46935
46339
  init_RuntimeDebugger();
46936
46340
  RuntimeDebugger.displayName = "RuntimeDebugger";
46937
46341
  }
@@ -47225,7 +46629,7 @@ function SequencerBoard({
47225
46629
  className
47226
46630
  }) {
47227
46631
  const { emit } = useEventBus();
47228
- const { t } = useTranslate();
46632
+ const { t } = hooks.useTranslate();
47229
46633
  const resolved = Array.isArray(entity) ? entity[0] : entity;
47230
46634
  const [headerError, setHeaderError] = React97.useState(false);
47231
46635
  const [slots, setSlots] = React97.useState(
@@ -47418,7 +46822,6 @@ var init_SequencerBoard = __esm({
47418
46822
  init_atoms2();
47419
46823
  init_cn();
47420
46824
  init_useEventBus();
47421
- init_useTranslate();
47422
46825
  init_TraitStateViewer();
47423
46826
  init_SequenceBar();
47424
46827
  init_ActionPalette();
@@ -47437,7 +46840,6 @@ var init_ShowcaseOrganism = __esm({
47437
46840
  "use client";
47438
46841
  init_cn();
47439
46842
  init_useEventBus();
47440
- init_useTranslate();
47441
46843
  init_Stack();
47442
46844
  init_Typography();
47443
46845
  init_SimpleGrid();
@@ -47454,7 +46856,7 @@ var init_ShowcaseOrganism = __esm({
47454
46856
  subtitle
47455
46857
  }) => {
47456
46858
  useEventBus();
47457
- const { t } = useTranslate();
46859
+ const { t } = hooks.useTranslate();
47458
46860
  const items = React97.useMemo(
47459
46861
  () => Array.isArray(entity) ? entity : entity && typeof entity === "object" ? [entity] : [],
47460
46862
  [entity]
@@ -47848,7 +47250,7 @@ function SimulatorBoard({
47848
47250
  className
47849
47251
  }) {
47850
47252
  const { emit } = useEventBus();
47851
- const { t } = useTranslate();
47253
+ const { t } = hooks.useTranslate();
47852
47254
  const resolved = Array.isArray(entity) ? entity[0] : entity;
47853
47255
  const parameters = resolved?.parameters ?? [];
47854
47256
  const [values, setValues] = React97.useState(() => {
@@ -47996,7 +47398,6 @@ var init_SimulatorBoard = __esm({
47996
47398
  "components/game/organisms/puzzles/simulator/SimulatorBoard.tsx"() {
47997
47399
  init_atoms2();
47998
47400
  init_useEventBus();
47999
- init_useTranslate();
48000
47401
  SimulatorBoard.displayName = "SimulatorBoard";
48001
47402
  }
48002
47403
  });
@@ -48101,7 +47502,6 @@ var init_StatCard = __esm({
48101
47502
  init_Button();
48102
47503
  init_Sparkline();
48103
47504
  init_useEventBus();
48104
- init_useTranslate();
48105
47505
  init_Icon();
48106
47506
  StatCard = ({
48107
47507
  label: propLabel,
@@ -48128,7 +47528,7 @@ var init_StatCard = __esm({
48128
47528
  const Icon3 = typeof iconProp === "string" ? resolveIcon(iconProp) ?? void 0 : iconProp;
48129
47529
  const labelToUse = propLabel ?? propTitle;
48130
47530
  const eventBus = useEventBus();
48131
- const { t } = useTranslate();
47531
+ const { t } = hooks.useTranslate();
48132
47532
  const handleActionClick = React97__namespace.default.useCallback(() => {
48133
47533
  if (action?.event) {
48134
47534
  eventBus.emit(`UI:${action.event}`, {});
@@ -48419,7 +47819,7 @@ function VariablePanel({
48419
47819
  variables,
48420
47820
  className
48421
47821
  }) {
48422
- const { t } = useTranslate();
47822
+ const { t } = hooks.useTranslate();
48423
47823
  return /* @__PURE__ */ jsxRuntime.jsxs(VStack, { className: cn("p-3 rounded-lg bg-card border border-border", className), gap: "sm", children: [
48424
47824
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "body2", className: "text-muted-foreground font-medium", children: t("stateArchitect.variables", { name: entityName }) }),
48425
47825
  variables.map((v) => {
@@ -48457,7 +47857,6 @@ var init_VariablePanel = __esm({
48457
47857
  "components/game/organisms/puzzles/state-architect/VariablePanel.tsx"() {
48458
47858
  init_atoms2();
48459
47859
  init_cn();
48460
- init_useTranslate();
48461
47860
  VariablePanel.displayName = "VariablePanel";
48462
47861
  }
48463
47862
  });
@@ -48483,7 +47882,7 @@ function StateArchitectBoard({
48483
47882
  className
48484
47883
  }) {
48485
47884
  const { emit } = useEventBus();
48486
- const { t } = useTranslate();
47885
+ const { t } = hooks.useTranslate();
48487
47886
  const resolved = Array.isArray(entity) ? entity[0] : entity;
48488
47887
  const [transitions, setTransitions] = React97.useState(resolved?.transitions ?? []);
48489
47888
  const [headerError, setHeaderError] = React97.useState(false);
@@ -48774,7 +48173,6 @@ var init_StateArchitectBoard = __esm({
48774
48173
  init_atoms2();
48775
48174
  init_cn();
48776
48175
  init_useEventBus();
48777
- init_useTranslate();
48778
48176
  init_TraitStateViewer();
48779
48177
  init_StateNode();
48780
48178
  init_TransitionArrow();
@@ -48794,7 +48192,6 @@ var init_StatsOrganism = __esm({
48794
48192
  "components/marketing/organisms/StatsOrganism.tsx"() {
48795
48193
  "use client";
48796
48194
  init_cn();
48797
- init_useTranslate();
48798
48195
  init_StatsGrid();
48799
48196
  init_LoadingState();
48800
48197
  init_ErrorState();
@@ -48805,7 +48202,7 @@ var init_StatsOrganism = __esm({
48805
48202
  className,
48806
48203
  columns = 3
48807
48204
  }) => {
48808
- const { t } = useTranslate();
48205
+ const { t } = hooks.useTranslate();
48809
48206
  const items = React97.useMemo(
48810
48207
  () => Array.isArray(entity) ? entity : entity && typeof entity === "object" ? [entity] : [],
48811
48208
  [entity]
@@ -48837,7 +48234,6 @@ var init_StepFlowOrganism = __esm({
48837
48234
  "components/core/organisms/StepFlowOrganism.tsx"() {
48838
48235
  "use client";
48839
48236
  init_cn();
48840
- init_useTranslate();
48841
48237
  init_Stack();
48842
48238
  init_Typography();
48843
48239
  init_StepFlow();
@@ -48853,7 +48249,7 @@ var init_StepFlowOrganism = __esm({
48853
48249
  heading,
48854
48250
  subtitle
48855
48251
  }) => {
48856
- const { t } = useTranslate();
48252
+ const { t } = hooks.useTranslate();
48857
48253
  const items = React97.useMemo(
48858
48254
  () => Array.isArray(entity) ? entity : entity && typeof entity === "object" ? [entity] : [],
48859
48255
  [entity]
@@ -49007,7 +48403,6 @@ var init_TeamOrganism = __esm({
49007
48403
  "components/marketing/organisms/TeamOrganism.tsx"() {
49008
48404
  "use client";
49009
48405
  init_cn();
49010
- init_useTranslate();
49011
48406
  init_Stack();
49012
48407
  init_Typography();
49013
48408
  init_SimpleGrid();
@@ -49022,7 +48417,7 @@ var init_TeamOrganism = __esm({
49022
48417
  heading,
49023
48418
  subtitle
49024
48419
  }) => {
49025
- const { t } = useTranslate();
48420
+ const { t } = hooks.useTranslate();
49026
48421
  const items = React97.useMemo(
49027
48422
  () => Array.isArray(entity) ? entity : entity && typeof entity === "object" ? [entity] : [],
49028
48423
  [entity]
@@ -49065,7 +48460,6 @@ var init_Timeline = __esm({
49065
48460
  init_LoadingState();
49066
48461
  init_ErrorState();
49067
48462
  init_EmptyState();
49068
- init_useTranslate();
49069
48463
  lookStyles10 = {
49070
48464
  "vertical-compact": "gap-1 [&>*]:py-1",
49071
48465
  "vertical-spacious": "",
@@ -49105,7 +48499,7 @@ var init_Timeline = __esm({
49105
48499
  className,
49106
48500
  look = "vertical-spacious"
49107
48501
  }) => {
49108
- const { t } = useTranslate();
48502
+ const { t } = hooks.useTranslate();
49109
48503
  const entityData = Array.isArray(entity) ? entity : [];
49110
48504
  const items = React97__namespace.default.useMemo(() => {
49111
48505
  if (propItems) return propItems;
@@ -50557,7 +49951,7 @@ function UISlotComponent({
50557
49951
  }) {
50558
49952
  const { slots, clear } = useUISlots();
50559
49953
  const eventBus = useEventBus();
50560
- const { t } = useTranslate();
49954
+ const { t } = hooks.useTranslate();
50561
49955
  const suspenseConfig = React97.useContext(SuspenseConfigContext);
50562
49956
  const contained = React97.useContext(SlotContainedContext);
50563
49957
  const content = slots[slot];
@@ -50659,7 +50053,7 @@ function CompiledPortal({ slot, className, pattern, sourceTrait, children }) {
50659
50053
  const [portalRoot, setPortalRoot] = React97.useState(null);
50660
50054
  const slotsBus = useUISlots();
50661
50055
  const eventBus = useEventBus();
50662
- const { t } = useTranslate();
50056
+ const { t } = hooks.useTranslate();
50663
50057
  React97.useEffect(() => {
50664
50058
  setPortalRoot(getOrCreatePortalRoot());
50665
50059
  }, []);
@@ -50949,7 +50343,7 @@ function SlotContentRenderer({
50949
50343
  }
50950
50344
  }
50951
50345
  const eventBus = useEventBus();
50952
- const { t } = useTranslate();
50346
+ const { t } = hooks.useTranslate();
50953
50347
  const schemaCtx = useEntitySchemaOptional();
50954
50348
  let entityDef;
50955
50349
  if (typeof entityProp === "string" && entityProp.length > 0 && schemaCtx) {
@@ -51139,7 +50533,6 @@ var init_UISlotRenderer = __esm({
51139
50533
  init_Box();
51140
50534
  init_Typography();
51141
50535
  init_useEventBus();
51142
- init_useTranslate();
51143
50536
  init_slot_types();
51144
50537
  init_cn();
51145
50538
  init_ErrorBoundary();
@@ -52468,9 +51861,6 @@ var AvlEmitListen = ({
52468
51861
  ] });
52469
51862
  };
52470
51863
  AvlEmitListen.displayName = "AvlEmitListen";
52471
-
52472
- // components/avl/molecules/AvlSlotMap.tsx
52473
- init_useTranslate();
52474
51864
  var SLOT_PRESETS = {
52475
51865
  header: { x: 10, y: 5, width: 340, height: 35 },
52476
51866
  main: { x: 120, y: 50, width: 230, height: 195 },
@@ -52515,7 +51905,7 @@ var AvlSlotMap = ({
52515
51905
  color = "var(--color-primary)",
52516
51906
  animated = false
52517
51907
  }) => {
52518
- const { t } = useTranslate();
51908
+ const { t } = hooks.useTranslate();
52519
51909
  const ox = (600 - pageWidth) / 2;
52520
51910
  const oy = (400 - pageHeight) / 2;
52521
51911
  let unknownIdx = 0;
@@ -53547,12 +52937,11 @@ var SystemNode = ({ data }) => {
53547
52937
  SystemNode.displayName = "SystemNode";
53548
52938
 
53549
52939
  // components/avl/molecules/DetailView.tsx
53550
- init_useTranslate();
53551
52940
  init_AvlState();
53552
52941
  init_AvlEffect();
53553
52942
  init_types();
53554
52943
  var DetailView = ({ data }) => {
53555
- const { t } = useTranslate();
52944
+ const { t } = hooks.useTranslate();
53556
52945
  const traitName = data.traits[0]?.name;
53557
52946
  const traitData = traitName ? data.traitDetails[traitName] : void 0;
53558
52947
  if (!traitData || traitData.transitions.length === 0) {
@@ -53632,7 +53021,6 @@ AvlOrbitalNode.displayName = "AvlOrbitalNode";
53632
53021
 
53633
53022
  // components/avl/molecules/AvlTransitionEdge.tsx
53634
53023
  init_types();
53635
- init_useTranslate();
53636
53024
  var AvlTransitionEdge = ({
53637
53025
  id,
53638
53026
  sourceX,
@@ -53645,7 +53033,7 @@ var AvlTransitionEdge = ({
53645
53033
  markerEnd,
53646
53034
  style
53647
53035
  }) => {
53648
- const { t } = useTranslate();
53036
+ const { t } = hooks.useTranslate();
53649
53037
  const [path, labelX, labelY] = react.getBezierPath({
53650
53038
  sourceX,
53651
53039
  sourceY,
@@ -55088,9 +54476,6 @@ function convertObjectProps(props) {
55088
54476
  function convertFnFormLambdasInProps(props) {
55089
54477
  return convertObjectProps(props);
55090
54478
  }
55091
-
55092
- // hooks/index.ts
55093
- init_useEventBus();
55094
54479
  var log12 = logger.createLogger("almadar:ui:effects:client-handlers");
55095
54480
  function createClientEffectHandlers(options) {
55096
54481
  const { eventBus, slotSetter, navigate, notify, callService } = options;
@@ -55159,7 +54544,7 @@ function normalizeEventKey(eventKey) {
55159
54544
  return eventKey.startsWith("UI:") ? eventKey.slice(3) : eventKey;
55160
54545
  }
55161
54546
  function useTraitStateMachine(traitBindings, uiSlots, options) {
55162
- const eventBus = useEventBus();
54547
+ const eventBus = hooks.useEventBus();
55163
54548
  const { entities } = useEntitySchema();
55164
54549
  const traitConfigsByName = options?.traitConfigsByName;
55165
54550
  const orbitalsByTrait = options?.orbitalsByTrait;
@@ -57000,7 +56385,6 @@ function BrowserPlayground({
57000
56385
 
57001
56386
  // components/avl/molecules/OrbPreviewNode.tsx
57002
56387
  init_useEventBus();
57003
- init_useTranslate();
57004
56388
 
57005
56389
  // components/avl/molecules/useCanvasDnd.tsx
57006
56390
  init_useEventBus();
@@ -57488,7 +56872,7 @@ var OrbPreviewNodeInner = (props) => {
57488
56872
  const screenSize = React97.useContext(ScreenSizeContext);
57489
56873
  const preset = SCREEN_SIZE_PRESETS[screenSize];
57490
56874
  const { select } = React97.useContext(PatternSelectionContext);
57491
- const { t } = useTranslate();
56875
+ const { t } = hooks.useTranslate();
57492
56876
  const eventBus = useEventBus();
57493
56877
  const reactFlow = react.useReactFlow();
57494
56878
  const contentRef = React97.useRef(null);
@@ -58215,7 +57599,6 @@ init_AvlEffect();
58215
57599
  init_AvlFieldType();
58216
57600
  init_types();
58217
57601
  init_useEventBus();
58218
- init_useTranslate();
58219
57602
  var inspectorLog = logger.createLogger("almadar:ui:inspector");
58220
57603
  function formatExpression(expr) {
58221
57604
  if (!expr) return "";
@@ -58314,7 +57697,7 @@ function OrbInspector({ node, schema, editable = false, userType = "builder", th
58314
57697
  const { selected: selectedPattern } = React97.useContext(PatternSelectionContext);
58315
57698
  const [activeTab, setActiveTab] = React97.useState("inspector");
58316
57699
  const eventBus = useEventBus();
58317
- const { t } = useTranslate();
57700
+ const { t } = hooks.useTranslate();
58318
57701
  const orbitalName = node.orbitalName ?? "";
58319
57702
  const traitName = node.traitName ?? "";
58320
57703
  const transitionEvent = node.transitionEvent ?? "";
@@ -58730,7 +58113,7 @@ function OrbInspector({ node, schema, editable = false, userType = "builder", th
58730
58113
  }
58731
58114
  function AddEffectButton({ onAdd }) {
58732
58115
  const [open, setOpen] = React97.useState(false);
58733
- const { t } = useTranslate();
58116
+ const { t } = hooks.useTranslate();
58734
58117
  return /* @__PURE__ */ jsxRuntime.jsxs(Box, { className: "relative mt-2", children: [
58735
58118
  /* @__PURE__ */ jsxRuntime.jsxs(
58736
58119
  Button,
@@ -58800,7 +58183,7 @@ var PHASE_2_TOKEN_FALLBACK = {
58800
58183
  toast: ["--color-card", "--shadow-lg", "--radius-md"]
58801
58184
  };
58802
58185
  function StylesTab({ patternType, patternDef, patternConfig, editable, onPropChange, themeManifest, isDesignSystem }) {
58803
- const { t } = useTranslate();
58186
+ const { t } = hooks.useTranslate();
58804
58187
  if (!patternType) {
58805
58188
  return /* @__PURE__ */ jsxRuntime.jsx(Box, { className: "p-4", children: /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "small", className: "text-muted-foreground text-xs", children: t("orbInspector.selectPatternForStyles") }) });
58806
58189
  }
@@ -58876,7 +58259,7 @@ var TOKEN_GROUPS = [
58876
58259
  { group: "shadows", labelKey: "orbInspector.tokenGroup.shadows" }
58877
58260
  ];
58878
58261
  function TokenEditorSection({ themeManifest, onPropChange }) {
58879
- const { t } = useTranslate();
58262
+ const { t } = hooks.useTranslate();
58880
58263
  const tokens = themeManifest.tokens ?? {};
58881
58264
  return /* @__PURE__ */ jsxRuntime.jsxs(Box, { className: "flex flex-col gap-3 pt-2 border-t border-border/40", children: [
58882
58265
  /* @__PURE__ */ jsxRuntime.jsx(Typography, { variant: "small", className: "text-xs uppercase tracking-wider text-muted-foreground", children: t("orbInspector.projectThemeTokens") }),
@@ -58932,7 +58315,6 @@ init_Typography();
58932
58315
  init_Badge();
58933
58316
 
58934
58317
  // components/avl/organisms/AvlTraitScene.tsx
58935
- init_useTranslate();
58936
58318
  init_AvlState();
58937
58319
  init_AvlTransitionLane();
58938
58320
  init_AvlSwimLane();
@@ -58946,7 +58328,7 @@ var AvlTraitScene = ({
58946
58328
  color = "var(--color-primary)",
58947
58329
  onTransitionClick
58948
58330
  }) => {
58949
- const { t } = useTranslate();
58331
+ const { t } = hooks.useTranslate();
58950
58332
  const [layout, setLayout] = React97.useState(null);
58951
58333
  const dataKey = React97.useMemo(() => JSON.stringify(data), [data]);
58952
58334
  React97.useEffect(() => {
@@ -59045,9 +58427,6 @@ var AvlTraitScene = ({
59045
58427
  );
59046
58428
  };
59047
58429
  AvlTraitScene.displayName = "AvlTraitScene";
59048
-
59049
- // components/avl/molecules/TraitCardNode.tsx
59050
- init_useTranslate();
59051
58430
  var TraitCardSelectionContext = React97.createContext({
59052
58431
  selectTransition: () => {
59053
58432
  }
@@ -59057,7 +58436,7 @@ var SCENE_WIDTH = 600;
59057
58436
  var SCENE_HEIGHT = 400;
59058
58437
  var TraitCardNodeInner = (props) => {
59059
58438
  const data = props.data;
59060
- const { t } = useTranslate();
58439
+ const { t } = hooks.useTranslate();
59061
58440
  const { selectTransition } = React97.useContext(TraitCardSelectionContext);
59062
58441
  const orbitalName = data.orbitalName;
59063
58442
  const traitName = data.traitName ?? "";
@@ -59147,7 +58526,6 @@ TraitCardNode.displayName = "TraitCardNode";
59147
58526
 
59148
58527
  // components/avl/organisms/FlowCanvas.tsx
59149
58528
  init_useEventBus();
59150
- init_useTranslate();
59151
58529
  var flowCanvasLog = logger.createLogger("almadar:ui:flow-canvas");
59152
58530
  var NODE_TYPES = {
59153
58531
  preview: OrbPreviewNode,
@@ -59191,7 +58569,7 @@ function FlowCanvasInner({
59191
58569
  userType = "builder",
59192
58570
  themeManifest
59193
58571
  }) {
59194
- const { t } = useTranslate();
58572
+ const { t } = hooks.useTranslate();
59195
58573
  const NODE_TYPES2 = React97.useMemo(() => ({
59196
58574
  preview: OrbPreviewNode,
59197
58575
  behaviorCompose: BehaviorComposeNode,
@@ -59906,7 +59284,6 @@ init_Stack();
59906
59284
  init_Typography();
59907
59285
  init_Button();
59908
59286
  init_Icon();
59909
- init_useTranslate();
59910
59287
  var UNIT_DISPLAY_W = 240;
59911
59288
  var UNIT_DISPLAY_H = 160;
59912
59289
  function layoutOrbitals(count, containerW, containerH) {
@@ -60097,7 +59474,7 @@ var AvlOrbitalsCosmicZoom = ({
60097
59474
  minZoom = 0.4,
60098
59475
  maxZoom = 3
60099
59476
  }) => {
60100
- const { t } = useTranslate();
59477
+ const { t } = hooks.useTranslate();
60101
59478
  const parsedSchema = React97.useMemo(() => {
60102
59479
  if (typeof schemaProp === "string") return JSON.parse(schemaProp);
60103
59480
  return schemaProp;