@almadar/ui 5.21.8 → 5.21.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/avl/index.cjs +960 -649
- package/dist/avl/index.js +960 -649
- package/dist/components/game/organisms/three/index.cjs +489 -1
- package/dist/components/game/organisms/three/index.js +489 -1
- package/dist/components/index.cjs +665 -369
- package/dist/components/index.js +665 -369
- package/dist/docs/index.cjs +300 -5
- package/dist/docs/index.js +300 -5
- package/dist/hooks/index.cjs +296 -3
- package/dist/hooks/index.js +296 -3
- package/dist/locales/index.cjs +896 -9
- package/dist/locales/index.js +896 -9
- package/dist/providers/index.cjs +665 -369
- package/dist/providers/index.js +665 -369
- package/dist/runtime/index.cjs +665 -369
- package/dist/runtime/index.js +665 -369
- package/locales/ar.json +300 -31
- package/locales/en.json +296 -31
- package/locales/sl.json +300 -31
- package/package.json +1 -1
package/dist/avl/index.js
CHANGED
|
@@ -3851,6 +3851,503 @@ var init_Stack = __esm({
|
|
|
3851
3851
|
HStack = (props) => /* @__PURE__ */ jsx(Stack, { direction: "horizontal", ...props });
|
|
3852
3852
|
}
|
|
3853
3853
|
});
|
|
3854
|
+
|
|
3855
|
+
// locales/en.json
|
|
3856
|
+
var en_default;
|
|
3857
|
+
var init_en = __esm({
|
|
3858
|
+
"locales/en.json"() {
|
|
3859
|
+
en_default = {
|
|
3860
|
+
$meta: {
|
|
3861
|
+
locale: "en",
|
|
3862
|
+
direction: "ltr"
|
|
3863
|
+
},
|
|
3864
|
+
"common.save": "Save",
|
|
3865
|
+
"common.cancel": "Cancel",
|
|
3866
|
+
"common.delete": "Delete",
|
|
3867
|
+
"common.close": "Close",
|
|
3868
|
+
"common.confirm": "Are you sure?",
|
|
3869
|
+
"common.create": "Create",
|
|
3870
|
+
"common.edit": "Edit",
|
|
3871
|
+
"common.view": "View",
|
|
3872
|
+
"common.add": "Add",
|
|
3873
|
+
"common.remove": "Remove",
|
|
3874
|
+
"common.search": "Search...",
|
|
3875
|
+
"common.filter": "Filter",
|
|
3876
|
+
"common.actions": "Actions",
|
|
3877
|
+
"common.yes": "Yes",
|
|
3878
|
+
"common.no": "No",
|
|
3879
|
+
"common.selected": "selected",
|
|
3880
|
+
"common.ok": "OK",
|
|
3881
|
+
"common.done": "Done",
|
|
3882
|
+
"common.apply": "Apply",
|
|
3883
|
+
"common.reset": "Reset",
|
|
3884
|
+
"common.refresh": "Refresh",
|
|
3885
|
+
"common.export": "Export",
|
|
3886
|
+
"common.import": "Import",
|
|
3887
|
+
"common.copy": "Copy",
|
|
3888
|
+
"common.settings": "Settings",
|
|
3889
|
+
"nav.previous": "Previous",
|
|
3890
|
+
"nav.next": "Next",
|
|
3891
|
+
"nav.back": "Back",
|
|
3892
|
+
"nav.home": "Home",
|
|
3893
|
+
"form.submit": "Submit",
|
|
3894
|
+
"form.saving": "Saving...",
|
|
3895
|
+
"form.required": "This field is required",
|
|
3896
|
+
"form.invalidEmail": "Enter a valid email address",
|
|
3897
|
+
"form.selectPlaceholder": "Select {{label}}...",
|
|
3898
|
+
"form.searchPlaceholder": "Search {{entity}}...",
|
|
3899
|
+
"table.empty.title": "No items found",
|
|
3900
|
+
"table.empty.description": "No items to display.",
|
|
3901
|
+
"table.search.placeholder": "Search...",
|
|
3902
|
+
"table.pagination.showing": "Showing {{start}} to {{end}} of {{total}} results",
|
|
3903
|
+
"table.pagination.page": "Page {{page}} of {{totalPages}}",
|
|
3904
|
+
"table.bulk.selected": "{{count}} selected",
|
|
3905
|
+
"table.loading": "Loading...",
|
|
3906
|
+
"status.loading": "Loading...",
|
|
3907
|
+
"status.scheduled": "Scheduled",
|
|
3908
|
+
"status.inProgress": "In Progress",
|
|
3909
|
+
"status.completed": "Completed",
|
|
3910
|
+
"status.cancelled": "Cancelled",
|
|
3911
|
+
"status.pending": "Pending",
|
|
3912
|
+
"status.active": "Active",
|
|
3913
|
+
"status.inactive": "Inactive",
|
|
3914
|
+
"status.draft": "Draft",
|
|
3915
|
+
"status.archived": "Archived",
|
|
3916
|
+
"error.generic": "Something went wrong",
|
|
3917
|
+
"error.retry": "Try again",
|
|
3918
|
+
"error.notFound": "Not found",
|
|
3919
|
+
"error.loadFailed": "Failed to load: {{message}}",
|
|
3920
|
+
"error.configMissing": "Configuration not found for: {{id}}",
|
|
3921
|
+
"common.loading": "Loading...",
|
|
3922
|
+
"common.showMore": "Show More",
|
|
3923
|
+
"common.showLess": "Show Less",
|
|
3924
|
+
"common.noResults": "No results found",
|
|
3925
|
+
"common.saveChanges": "Save Changes",
|
|
3926
|
+
"common.retry": "Retry",
|
|
3927
|
+
"common.open": "Open",
|
|
3928
|
+
"common.back": "Back",
|
|
3929
|
+
"empty.noItems": "No items",
|
|
3930
|
+
"empty.noData": "No data available",
|
|
3931
|
+
"empty.noItemsYet": "No items yet",
|
|
3932
|
+
"empty.noItemsAdded": "No items added yet",
|
|
3933
|
+
"empty.noOptionsFound": "No options found",
|
|
3934
|
+
"list.addItemPlaceholder": "Add new item...",
|
|
3935
|
+
"error.occurred": "An error occurred",
|
|
3936
|
+
"error.failedToLoad": "Failed to load data",
|
|
3937
|
+
"wizard.back": "Back",
|
|
3938
|
+
"wizard.next": "Next",
|
|
3939
|
+
"wizard.complete": "Complete",
|
|
3940
|
+
"wizard.stepOf": "Step {{current}} of {{total}}",
|
|
3941
|
+
"pagination.previous": "Previous",
|
|
3942
|
+
"pagination.next": "Next",
|
|
3943
|
+
"pagination.total": "Total:",
|
|
3944
|
+
"pagination.show": "Show:",
|
|
3945
|
+
"pagination.goTo": "Go to:",
|
|
3946
|
+
"pagination.go": "Go",
|
|
3947
|
+
"auth.signIn": "Sign in",
|
|
3948
|
+
"auth.signOut": "Sign out",
|
|
3949
|
+
"dialog.confirm": "Confirm",
|
|
3950
|
+
"dialog.cancel": "Cancel",
|
|
3951
|
+
"dialog.loading": "Loading...",
|
|
3952
|
+
"dialog.delete.title": "Delete {{item}}?",
|
|
3953
|
+
"dialog.delete.message": "This action cannot be undone.",
|
|
3954
|
+
"trait.availableActions": "Available Actions",
|
|
3955
|
+
"trait.transitions": "Transitions",
|
|
3956
|
+
"trait.availableNow": "Available now",
|
|
3957
|
+
"book.startReading": "Start Reading",
|
|
3958
|
+
"book.tableOfContents": "Table of Contents",
|
|
3959
|
+
"book.partNumber": "Part {{number}}",
|
|
3960
|
+
"book.print": "Print",
|
|
3961
|
+
"book.previousPage": "Previous page",
|
|
3962
|
+
"book.nextPage": "Next page",
|
|
3963
|
+
"quiz.showAnswer": "Show answer",
|
|
3964
|
+
"quiz.hideAnswer": "Hide answer",
|
|
3965
|
+
"aria.closeModal": "Close modal",
|
|
3966
|
+
"aria.closeToast": "Dismiss toast",
|
|
3967
|
+
"aria.closeAlert": "Dismiss alert",
|
|
3968
|
+
"aria.removeFilter": "Remove filter",
|
|
3969
|
+
"aria.closeDrawer": "Close drawer",
|
|
3970
|
+
"aria.closePanel": "Close panel",
|
|
3971
|
+
"aria.previousImage": "Previous image",
|
|
3972
|
+
"aria.nextImage": "Next image",
|
|
3973
|
+
"aria.dismiss": "Dismiss",
|
|
3974
|
+
"aria.previousSlide": "Previous slide",
|
|
3975
|
+
"aria.nextSlide": "Next slide",
|
|
3976
|
+
"aria.previousDays": "Previous days",
|
|
3977
|
+
"aria.nextDays": "Next days",
|
|
3978
|
+
"aria.decrease": "Decrease",
|
|
3979
|
+
"aria.increase": "Increase",
|
|
3980
|
+
"aria.breadcrumb": "Breadcrumb",
|
|
3981
|
+
"aria.tableOfContents": "Table of contents",
|
|
3982
|
+
"aria.docsSidebar": "Documentation sidebar",
|
|
3983
|
+
"aria.selectAllRows": "Select all rows",
|
|
3984
|
+
"aria.selectAll": "Select all",
|
|
3985
|
+
"aria.upvote": "Upvote",
|
|
3986
|
+
"aria.downvote": "Downvote",
|
|
3987
|
+
"aria.qrScanner": "QR scanner",
|
|
3988
|
+
"aria.mockScanDev": "Mock scan (dev)",
|
|
3989
|
+
"aria.openMenu": "Open menu",
|
|
3990
|
+
"aria.closeMenu": "Close menu",
|
|
3991
|
+
"aria.openSidebar": "Open sidebar",
|
|
3992
|
+
"sidebar.expand": "Expand sidebar",
|
|
3993
|
+
"sidebar.collapse": "Collapse sidebar",
|
|
3994
|
+
"sidebar.close": "Close sidebar",
|
|
3995
|
+
"loading.items": "Loading items...",
|
|
3996
|
+
"card.imageAlt": "Image",
|
|
3997
|
+
"canvas.emptyMessage": "No content",
|
|
3998
|
+
"canvas.errorTitle": "Canvas error",
|
|
3999
|
+
"book.noData": "No data",
|
|
4000
|
+
"common.notifications": "Notifications",
|
|
4001
|
+
"common.remaining": "{{count}} remaining",
|
|
4002
|
+
"error.somethingWentWrong": "Something went wrong",
|
|
4003
|
+
"error.loadingItems": "Loading items...",
|
|
4004
|
+
"error.noItemsFound": "No items found",
|
|
4005
|
+
"debug.noEntityData": "No entity data",
|
|
4006
|
+
"debug.noEntities": "No entities",
|
|
4007
|
+
"debug.noTicks": "No ticks registered",
|
|
4008
|
+
"debug.noActiveTraits": "No active traits",
|
|
4009
|
+
"debug.noGuardEvaluations": "No guard evaluations",
|
|
4010
|
+
"debug.noBridgeData": "No bridge data",
|
|
4011
|
+
"debug.status": "Status",
|
|
4012
|
+
"debug.eventsForwarded": "Events Forwarded (Client \u2192 Server)",
|
|
4013
|
+
"debug.eventsReceived": "Events Received (Server \u2192 Client)",
|
|
4014
|
+
"debug.lastHeartbeat": "Last Heartbeat",
|
|
4015
|
+
"debug.noEventsYet": "No events yet",
|
|
4016
|
+
"debug.noTransitionsRecorded": "No transitions recorded",
|
|
4017
|
+
"debug.noVerificationChecks": "No verification checks yet",
|
|
4018
|
+
"display.chartError": "Chart error",
|
|
4019
|
+
"display.codeViewerError": "Code viewer error",
|
|
4020
|
+
"display.noCode": "No code",
|
|
4021
|
+
"display.documentError": "Document error",
|
|
4022
|
+
"display.noDocument": "No document",
|
|
4023
|
+
"display.graphError": "Graph error",
|
|
4024
|
+
"display.noGraphData": "No graph data",
|
|
4025
|
+
"display.galleryError": "Gallery error",
|
|
4026
|
+
"display.noMedia": "No media",
|
|
4027
|
+
"display.meterError": "Meter error",
|
|
4028
|
+
"display.signaturePadError": "Signature pad error",
|
|
4029
|
+
"display.timelineError": "Timeline error",
|
|
4030
|
+
"display.noEvents": "No events",
|
|
4031
|
+
"template.features": "Features",
|
|
4032
|
+
"template.howItWorks": "How It Works",
|
|
4033
|
+
"template.showcase": "Showcase",
|
|
4034
|
+
"template.faq": "Frequently Asked Questions",
|
|
4035
|
+
"template.ourTeam": "Our Team",
|
|
4036
|
+
"template.caseStudies": "Case Studies",
|
|
4037
|
+
"richBlockEditor.toolbar.text": "Text",
|
|
4038
|
+
"richBlockEditor.toolbar.h1": "H1",
|
|
4039
|
+
"richBlockEditor.toolbar.h2": "H2",
|
|
4040
|
+
"richBlockEditor.toolbar.h3": "H3",
|
|
4041
|
+
"richBlockEditor.toolbar.bulletList": "Bullet list",
|
|
4042
|
+
"richBlockEditor.toolbar.numbered": "Numbered",
|
|
4043
|
+
"richBlockEditor.toolbar.quote": "Quote",
|
|
4044
|
+
"richBlockEditor.toolbar.code": "Code",
|
|
4045
|
+
"richBlockEditor.toolbar.divider": "Divider",
|
|
4046
|
+
"richBlockEditor.toolbar.image": "Image",
|
|
4047
|
+
"richBlockEditor.blockType.paragraph": "Text",
|
|
4048
|
+
"richBlockEditor.blockType.heading1": "Heading 1",
|
|
4049
|
+
"richBlockEditor.blockType.heading2": "Heading 2",
|
|
4050
|
+
"richBlockEditor.blockType.heading3": "Heading 3",
|
|
4051
|
+
"richBlockEditor.blockType.bulletList": "Bullet list",
|
|
4052
|
+
"richBlockEditor.blockType.numberedList": "Numbered list",
|
|
4053
|
+
"richBlockEditor.blockType.quote": "Quote",
|
|
4054
|
+
"richBlockEditor.blockType.code": "Code",
|
|
4055
|
+
"richBlockEditor.blockType.divider": "Divider",
|
|
4056
|
+
"richBlockEditor.blockType.image": "Image",
|
|
4057
|
+
"richBlockEditor.blockActions": "Block actions",
|
|
4058
|
+
"richBlockEditor.duplicate": "Duplicate",
|
|
4059
|
+
"richBlockEditor.turnInto": "Turn into",
|
|
4060
|
+
"richBlockEditor.placeholder.heading1": "Heading 1",
|
|
4061
|
+
"richBlockEditor.placeholder.heading2": "Heading 2",
|
|
4062
|
+
"richBlockEditor.placeholder.heading3": "Heading 3",
|
|
4063
|
+
"richBlockEditor.placeholder.quote": "Quote",
|
|
4064
|
+
"richBlockEditor.placeholder.code": "Enter code",
|
|
4065
|
+
"richBlockEditor.placeholder.paragraph": "Start writing...",
|
|
4066
|
+
"richBlockEditor.placeholder.listItem": "List item",
|
|
4067
|
+
"richBlockEditor.placeholder.caption": "Caption (optional)",
|
|
4068
|
+
"richBlockEditor.aria.heading1Block": "Heading 1 block",
|
|
4069
|
+
"richBlockEditor.aria.heading2Block": "Heading 2 block",
|
|
4070
|
+
"richBlockEditor.aria.heading3Block": "Heading 3 block",
|
|
4071
|
+
"richBlockEditor.aria.quoteBlock": "Quote block",
|
|
4072
|
+
"richBlockEditor.aria.codeBlock": "Code block",
|
|
4073
|
+
"richBlockEditor.aria.codeLanguage": "Code language",
|
|
4074
|
+
"richBlockEditor.aria.imageUrl": "Image URL",
|
|
4075
|
+
"richBlockEditor.aria.imageCaption": "Image caption",
|
|
4076
|
+
"richBlockEditor.aria.listItem": "List item",
|
|
4077
|
+
"richBlockEditor.aria.removeListItem": "Remove list item",
|
|
4078
|
+
"richBlockEditor.aria.paragraphBlock": "Paragraph block",
|
|
4079
|
+
"richBlockEditor.embeddedImage": "Embedded image",
|
|
4080
|
+
"richBlockEditor.noImageUrl": "No image URL set",
|
|
4081
|
+
"richBlockEditor.addItem": "Add item",
|
|
4082
|
+
"richBlockEditor.insertParagraphBelow": "Insert paragraph below",
|
|
4083
|
+
"richBlockEditor.editorToolbar": "Block editor toolbar",
|
|
4084
|
+
"richBlockEditor.insertEntry": "Insert {{label}}",
|
|
4085
|
+
"versionDiff.compare": "Compare",
|
|
4086
|
+
"versionDiff.to": "to",
|
|
4087
|
+
"versionDiff.beforeRevision": "Before revision",
|
|
4088
|
+
"versionDiff.afterRevision": "After revision",
|
|
4089
|
+
"versionDiff.switchToInline": "Switch to inline view",
|
|
4090
|
+
"versionDiff.switchToSideBySide": "Switch to side-by-side view",
|
|
4091
|
+
"versionDiff.revert": "Revert",
|
|
4092
|
+
"versionDiff.byAuthor": " by {{author}}",
|
|
4093
|
+
"violationAlert.actionType.measure": "Corrective Measure",
|
|
4094
|
+
"violationAlert.actionType.admin": "Administrative Action",
|
|
4095
|
+
"violationAlert.actionType.penalty": "Penalty Proceedings",
|
|
4096
|
+
"violationAlert.fallbackMessage": "Violation",
|
|
4097
|
+
"violationAlert.adminLabel": "Admin:",
|
|
4098
|
+
"violationAlert.penaltyLabel": "Penalty:",
|
|
4099
|
+
"violationAlert.goToField": "Go to field",
|
|
4100
|
+
"branchingLogic.title": "Branching logic",
|
|
4101
|
+
"branchingLogic.if": "If",
|
|
4102
|
+
"branchingLogic.goTo": "go to",
|
|
4103
|
+
"branchingLogic.rules": "Rules",
|
|
4104
|
+
"branchingLogic.logicGraph": "Logic graph",
|
|
4105
|
+
"branchingLogic.addRule": "Add rule",
|
|
4106
|
+
"branchingLogic.deleteRule": "Delete rule",
|
|
4107
|
+
"branchingLogic.endOfSurvey": "End of survey",
|
|
4108
|
+
"branchingLogic.brokenReference": "Broken reference",
|
|
4109
|
+
"branchingLogic.selectQuestion": "Select question",
|
|
4110
|
+
"branchingLogic.selectTarget": "Select target",
|
|
4111
|
+
"branchingLogic.selectValue": "Select value",
|
|
4112
|
+
"branchingLogic.addValue": "Add value",
|
|
4113
|
+
"branchingLogic.value": "Value",
|
|
4114
|
+
"branchingLogic.typeValuePressEnter": "Type value, press Enter",
|
|
4115
|
+
"branchingLogic.operatorEquals": "equals",
|
|
4116
|
+
"branchingLogic.operatorNotEquals": "does not equal",
|
|
4117
|
+
"branchingLogic.operatorContains": "contains",
|
|
4118
|
+
"branchingLogic.operatorIn": "is one of",
|
|
4119
|
+
"branchingLogic.graphAriaLabel": "Branching logic graph",
|
|
4120
|
+
"branchingLogic.ruleCountOne": "{{count}} rule",
|
|
4121
|
+
"branchingLogic.ruleCountOther": "{{count}} rules",
|
|
4122
|
+
"branchingLogic.brokenCount": "{{count}} broken",
|
|
4123
|
+
"branchingLogic.emptyNoQuestions": "Add questions before building branching rules.",
|
|
4124
|
+
"branchingLogic.emptyNoRules": "No rules yet. Add a rule to define branching logic.",
|
|
4125
|
+
"filterGroup.filters": "Filters",
|
|
4126
|
+
"filterGroup.all": "All",
|
|
4127
|
+
"filterGroup.clear": "Clear",
|
|
4128
|
+
"filterGroup.clearAll": "Clear all",
|
|
4129
|
+
"filterGroup.from": "From",
|
|
4130
|
+
"filterGroup.to": "To",
|
|
4131
|
+
"filterGroup.allOf": "All {{label}}",
|
|
4132
|
+
"filterGroup.activeCount": "{{count}} active",
|
|
4133
|
+
"debug.guardEvaluationsHint": "Guard evaluations will appear when transitions or ticks with guards execute",
|
|
4134
|
+
"debug.expression": "Expression",
|
|
4135
|
+
"debug.inputs": "Inputs",
|
|
4136
|
+
"debug.trait": "Trait",
|
|
4137
|
+
"debug.filterAll": "All",
|
|
4138
|
+
"debug.filterPassed": "Passed",
|
|
4139
|
+
"debug.filterFailed": "Failed",
|
|
4140
|
+
"debug.traitsInitHint": "Traits will appear when the state machine initializes",
|
|
4141
|
+
"debug.traitsMountHint": "Traits will appear when components using them are mounted",
|
|
4142
|
+
"debug.activeStates": "Active States",
|
|
4143
|
+
"debug.availableEvents": "Available Events",
|
|
4144
|
+
"debug.noTransitionsFromState": "No transitions from current state",
|
|
4145
|
+
"debug.guarded": "guarded",
|
|
4146
|
+
"debug.otherEvents": "Other Events (not available from current state)",
|
|
4147
|
+
"debug.recentTransitions": "Recent Transitions",
|
|
4148
|
+
"debug.transitionsCount": "{{count}} transitions",
|
|
4149
|
+
"debug.states": "States",
|
|
4150
|
+
"debug.transitions": "Transitions",
|
|
4151
|
+
"debug.guards": "Guards",
|
|
4152
|
+
"debug.debugModeHint": "Debug mode may not be enabled",
|
|
4153
|
+
"debug.entitiesSpawnHint": "Entities will appear when spawned",
|
|
4154
|
+
"debug.singleton": "Singleton",
|
|
4155
|
+
"debug.singletonsCount": "Singletons ({{count}})",
|
|
4156
|
+
"debug.runtimeCount": "Runtime ({{count}})",
|
|
4157
|
+
"debug.moreEntities": "+{{count}} more entities",
|
|
4158
|
+
"debug.persistent": "Persistent",
|
|
4159
|
+
"debug.loadedCount": "{{count}} loaded",
|
|
4160
|
+
"debug.notLoaded": "not loaded",
|
|
4161
|
+
"debug.eventsExecuteHint": "Events will appear as traits, ticks, and other systems execute",
|
|
4162
|
+
"debug.allCount": "All ({{count}})",
|
|
4163
|
+
"debug.autoScroll": "Auto-scroll",
|
|
4164
|
+
"debug.transitionsProcessHint": "Transitions will appear as the state machine processes events",
|
|
4165
|
+
"debug.transitionsRecorded": "{{count}} transitions recorded",
|
|
4166
|
+
"debug.guardLabel": "guard:",
|
|
4167
|
+
"debug.effectsCount": "{{count}} effects",
|
|
4168
|
+
"debug.bridgeInitHint": "The ServerBridge has not been initialized. Bridge health will appear once the runtime connects to the server.",
|
|
4169
|
+
"debug.never": "Never",
|
|
4170
|
+
"debug.connected": "Connected",
|
|
4171
|
+
"debug.disconnected": "Disconnected",
|
|
4172
|
+
"debug.lastError": "Last Error",
|
|
4173
|
+
"debug.totalEventsProcessed": "{{count}} total events processed",
|
|
4174
|
+
"debug.server": "server",
|
|
4175
|
+
"debug.clientEffectsCount": "{{count}} clientEffects",
|
|
4176
|
+
"debug.emitLabel": "emit:",
|
|
4177
|
+
"debug.rowsCount": "{{count}} rows",
|
|
4178
|
+
"debug.serverResponse": "server response",
|
|
4179
|
+
"debug.collapseVerificationTimeline": "Collapse verification timeline",
|
|
4180
|
+
"debug.expandVerificationTimeline": "Expand verification timeline",
|
|
4181
|
+
"debug.failCount": "{{count}} fail",
|
|
4182
|
+
"debug.ok": "OK",
|
|
4183
|
+
"debug.localCount": "{{count}} local",
|
|
4184
|
+
"debug.serverCount": "{{count}} server",
|
|
4185
|
+
"debug.waitingForTransitions": "Waiting for transitions...",
|
|
4186
|
+
"debug.tabDispatch": "Dispatch",
|
|
4187
|
+
"debug.tabVerify": "Verify",
|
|
4188
|
+
"debug.tabVerifyAlert": "Verify (!)",
|
|
4189
|
+
"debug.tabTimeline": "Timeline",
|
|
4190
|
+
"debug.tabBridge": "Bridge",
|
|
4191
|
+
"debug.tabTraits": "Traits",
|
|
4192
|
+
"debug.tabTicks": "Ticks",
|
|
4193
|
+
"debug.tabEntities": "Entities",
|
|
4194
|
+
"debug.tabEvents": "Events",
|
|
4195
|
+
"debug.tabGuards": "Guards",
|
|
4196
|
+
"debug.debugger": "Debugger",
|
|
4197
|
+
"debug.failedCount": "{{count}} failed",
|
|
4198
|
+
"debug.traitsCount": "{{count}} traits",
|
|
4199
|
+
"debug.idle": "Idle",
|
|
4200
|
+
"debug.openDebugger": "Open Debugger (`)",
|
|
4201
|
+
"debug.kflowVerifier": "KFlow Verifier",
|
|
4202
|
+
"debug.allPassing": "All passing",
|
|
4203
|
+
"debug.runtime": "Runtime",
|
|
4204
|
+
"debug.close": "Close (`)",
|
|
4205
|
+
"debug.toggleHint": "Press ` to toggle | window.__orbitalVerification for automation",
|
|
4206
|
+
"replyTree.expandReplies": "Expand replies",
|
|
4207
|
+
"replyTree.collapseReplies": "Collapse replies",
|
|
4208
|
+
"replyTree.voteOnReplyBy": "Vote on reply by {{author}}",
|
|
4209
|
+
"replyTree.replyTo": "Reply to {{author}}",
|
|
4210
|
+
"replyTree.replyToPlaceholder": "Reply to {{author}}\u2026",
|
|
4211
|
+
"replyTree.reply": "Reply",
|
|
4212
|
+
"replyTree.flagReplyBy": "Flag reply by {{author}}",
|
|
4213
|
+
"replyTree.flag": "Flag",
|
|
4214
|
+
"replyTree.send": "Send",
|
|
4215
|
+
"replyTree.continueThread": "Continue thread",
|
|
4216
|
+
"replyTree.noRepliesYet": "No replies yet.",
|
|
4217
|
+
"signaturePad.label": "Signature",
|
|
4218
|
+
"signaturePad.helperText": "Draw your signature above",
|
|
4219
|
+
"signaturePad.clear": "Clear",
|
|
4220
|
+
"signaturePad.confirm": "Confirm",
|
|
4221
|
+
"qrScanner.cameraUnavailable": "Camera unavailable",
|
|
4222
|
+
"qrScanner.paused": "Paused",
|
|
4223
|
+
"qrScanner.resumeScanning": "Resume scanning",
|
|
4224
|
+
"qrScanner.pauseScanning": "Pause scanning",
|
|
4225
|
+
"qrScanner.switchToFrontCamera": "Switch to front camera",
|
|
4226
|
+
"qrScanner.switchToRearCamera": "Switch to rear camera",
|
|
4227
|
+
"qrScanner.mockScan": "Mock Scan",
|
|
4228
|
+
"docSearch.placeholder": "Search documentation...",
|
|
4229
|
+
"stateMachine.loading": "Loading state machine\u2026",
|
|
4230
|
+
"stateMachine.noStateMachine": "No state machine to visualize",
|
|
4231
|
+
"avl.trigger": "Trigger",
|
|
4232
|
+
"avl.guard": "Guard",
|
|
4233
|
+
"avl.effects": "Effects",
|
|
4234
|
+
"avl.props": "Props",
|
|
4235
|
+
"avl.entity": "Entity",
|
|
4236
|
+
"avl.traits": "Traits",
|
|
4237
|
+
"avl.transition": "Transition",
|
|
4238
|
+
"avl.onEntity": "on {{entity}}",
|
|
4239
|
+
"avl.linkedTo": "linked to {{entity}}",
|
|
4240
|
+
"avl.pressEscToZoomOut": "Press Esc to zoom out",
|
|
4241
|
+
"avl.zoomIn": "Zoom in",
|
|
4242
|
+
"avl.zoomOut": "Zoom out",
|
|
4243
|
+
"avl.orbitalLabel": "Orbital: {{name}}",
|
|
4244
|
+
"avl.orbitalLabelHighlighted": "Orbital: {{name}} (highlighted)",
|
|
4245
|
+
"avl.noTraitData": "No trait data",
|
|
4246
|
+
"avl.computingLayout": "Computing layout...",
|
|
4247
|
+
"avl.noStateMachine": "No state machine",
|
|
4248
|
+
"avl.listensFor": "listens for {{event}}",
|
|
4249
|
+
"avl.emits": "emits {{event}}",
|
|
4250
|
+
"avl.pageLayout": "Page Layout",
|
|
4251
|
+
"avl.overlaySuffix": "(overlay)",
|
|
4252
|
+
"orbPreview.previewBadge": "Preview",
|
|
4253
|
+
"orbPreview.doubleClickToOpen": "Double-click to open",
|
|
4254
|
+
"orbPreview.dropToAddAndOpen": "Drop to add and open",
|
|
4255
|
+
"orbPreview.dispatching": "Coordinator is dispatching to this orbital",
|
|
4256
|
+
"orbPreview.noPreview": "No preview available",
|
|
4257
|
+
"orbPreview.screensCount": "{{count}} screens",
|
|
4258
|
+
"detailView.noTransitionData": "No transition data",
|
|
4259
|
+
"orbInspector.required": "req",
|
|
4260
|
+
"orbInspector.addField": "Add Field",
|
|
4261
|
+
"orbInspector.serviceMode": "Service Mode",
|
|
4262
|
+
"orbInspector.standalone": "Standalone",
|
|
4263
|
+
"orbInspector.embedded": "Embedded",
|
|
4264
|
+
"orbInspector.rendersOwnUi": "Renders its own UI",
|
|
4265
|
+
"orbInspector.headless": "Headless, wired to other behaviors",
|
|
4266
|
+
"orbInspector.addEffect": "Add Effect",
|
|
4267
|
+
"orbInspector.guardExpression": "Guard expression",
|
|
4268
|
+
"orbInspector.selectPatternForStyles": "Select a pattern to view its style tokens.",
|
|
4269
|
+
"orbInspector.tokens": "Tokens",
|
|
4270
|
+
"orbInspector.noTokenContract": "No token contract declared for this pattern.",
|
|
4271
|
+
"orbInspector.variant": "Variant",
|
|
4272
|
+
"orbInspector.size": "Size",
|
|
4273
|
+
"orbInspector.statesCount": "{{count}} states",
|
|
4274
|
+
"orbInspector.onEntity": " on {{entity}}",
|
|
4275
|
+
"orbInspector.projectThemeTokens": "Project theme tokens",
|
|
4276
|
+
"orbInspector.tokenGroup.colors": "Colors",
|
|
4277
|
+
"orbInspector.tokenGroup.radii": "Radii",
|
|
4278
|
+
"orbInspector.tokenGroup.spacing": "Spacing",
|
|
4279
|
+
"orbInspector.tokenGroup.shadows": "Shadows",
|
|
4280
|
+
"orbInspector.tab.inspector": "Inspector",
|
|
4281
|
+
"orbInspector.tab.styles": "Styles",
|
|
4282
|
+
"orbInspector.tab.code": "Code",
|
|
4283
|
+
"canvas.goBackToOverview": "Go back to overview",
|
|
4284
|
+
"canvas.overview": "Overview",
|
|
4285
|
+
"canvas.expanded": "Expanded",
|
|
4286
|
+
"canvas.modulesCount": "{{count}} modules",
|
|
4287
|
+
"canvas.screensCount": "{{count}} screens",
|
|
4288
|
+
"canvas.switchToView": "Switch to {{label}} view",
|
|
4289
|
+
"lawReference.viewFullText": "View full law text",
|
|
4290
|
+
"statCard.defaultLabel": "Stat",
|
|
4291
|
+
"statCard.vsLastPeriod": "vs last period",
|
|
4292
|
+
"mediaGallery.upload": "Upload",
|
|
4293
|
+
"mediaGallery.noMediaDescription": "No media items to display.",
|
|
4294
|
+
"pagination.jumpPlaceholder": "Page",
|
|
4295
|
+
"table.selectRow": "Select row {{id}}",
|
|
4296
|
+
"card.selectItem": "Select {{item}}",
|
|
4297
|
+
"card.itemFallback": "item",
|
|
4298
|
+
"fileTree.noFiles": "No files",
|
|
4299
|
+
"masterDetail.selectItem": "Select an item to view details",
|
|
4300
|
+
"empty.createFirst": "Create your first item to get started.",
|
|
4301
|
+
"upload.dropOrBrowse": "Drop files here or click to browse",
|
|
4302
|
+
"upload.dropFilesHere": "Drop files here",
|
|
4303
|
+
"upload.accepted": "Accepted: {{accept}}",
|
|
4304
|
+
"upload.maxSize": "Max size: {{size}}",
|
|
4305
|
+
"upload.maxFiles": "Up to {{count}} files",
|
|
4306
|
+
"upload.error.maxFiles": "Maximum {{count}} files allowed",
|
|
4307
|
+
"upload.error.invalidType": "Invalid file type: {{name}}",
|
|
4308
|
+
"upload.error.tooLarge": "File too large: {{name}} (max {{size}})",
|
|
4309
|
+
"optionConstraint.requiredOne": "Required, pick 1",
|
|
4310
|
+
"optionConstraint.optionalOne": "Optional, pick up to 1",
|
|
4311
|
+
"optionConstraint.pickExactly": "Pick exactly {{count}}",
|
|
4312
|
+
"optionConstraint.pickRange": "Pick {{min}}-{{max}}",
|
|
4313
|
+
"optionConstraint.pickAtLeast": "Pick at least {{count}}",
|
|
4314
|
+
"optionConstraint.pickUpTo": "Pick up to {{count}}",
|
|
4315
|
+
"optionConstraint.optional": "Optional",
|
|
4316
|
+
"optionConstraint.outOfStock": "Out of stock",
|
|
4317
|
+
"optionConstraint.error.pickOne": "Pick 1 option",
|
|
4318
|
+
"optionConstraint.error.pickOnlyOne": "Pick only 1 option",
|
|
4319
|
+
"optionConstraint.error.pickMore": "Pick at least {{count}} more",
|
|
4320
|
+
"optionConstraint.error.removeOptions": "Remove {{count}} options",
|
|
4321
|
+
"stateMachine.pinned": "Pinned",
|
|
4322
|
+
"stateMachine.eventCount": "{{count}} events",
|
|
4323
|
+
"stateMachine.externalEffects": "External Effects",
|
|
4324
|
+
"stateMachine.legend.initial": "Initial",
|
|
4325
|
+
"stateMachine.legend.final": "Final",
|
|
4326
|
+
"stateMachine.legend.state": "State",
|
|
4327
|
+
"stateMachine.legend.multiEvent": "Multi-event"
|
|
4328
|
+
};
|
|
4329
|
+
}
|
|
4330
|
+
});
|
|
4331
|
+
function useTranslate() {
|
|
4332
|
+
return useContext(I18nContext);
|
|
4333
|
+
}
|
|
4334
|
+
var _meta, coreMessages, coreLocale, I18nContext;
|
|
4335
|
+
var init_useTranslate = __esm({
|
|
4336
|
+
"hooks/useTranslate.ts"() {
|
|
4337
|
+
"use client";
|
|
4338
|
+
init_en();
|
|
4339
|
+
({ $meta: _meta, ...coreMessages } = en_default);
|
|
4340
|
+
coreLocale = coreMessages;
|
|
4341
|
+
I18nContext = createContext({
|
|
4342
|
+
locale: "en",
|
|
4343
|
+
direction: "ltr",
|
|
4344
|
+
t: (key) => coreLocale[key] ?? key
|
|
4345
|
+
// core locale fallback
|
|
4346
|
+
});
|
|
4347
|
+
I18nContext.displayName = "I18nContext";
|
|
4348
|
+
I18nContext.Provider;
|
|
4349
|
+
}
|
|
4350
|
+
});
|
|
3854
4351
|
var MAX_VISIBLE_EFFECTS, AvlTransitionLane;
|
|
3855
4352
|
var init_AvlTransitionLane = __esm({
|
|
3856
4353
|
"components/avl/molecules/AvlTransitionLane.tsx"() {
|
|
@@ -4480,6 +4977,7 @@ var log2, SWIM_GUTTER, CENTER_W, BehaviorView;
|
|
|
4480
4977
|
var init_BehaviorView = __esm({
|
|
4481
4978
|
"components/avl/molecules/BehaviorView.tsx"() {
|
|
4482
4979
|
"use client";
|
|
4980
|
+
init_useTranslate();
|
|
4483
4981
|
init_AvlState();
|
|
4484
4982
|
init_AvlTransitionLane();
|
|
4485
4983
|
init_AvlSwimLane();
|
|
@@ -4489,6 +4987,7 @@ var init_BehaviorView = __esm({
|
|
|
4489
4987
|
SWIM_GUTTER = 120;
|
|
4490
4988
|
CENTER_W = 360;
|
|
4491
4989
|
BehaviorView = ({ data }) => {
|
|
4990
|
+
const { t } = useTranslate();
|
|
4492
4991
|
const [layout, setLayout] = useState(null);
|
|
4493
4992
|
const traitName = data.traits[0]?.name;
|
|
4494
4993
|
const traitData = traitName ? data.traitDetails[traitName] : void 0;
|
|
@@ -4498,10 +4997,10 @@ var init_BehaviorView = __esm({
|
|
|
4498
4997
|
computeTraitLayout(traitData).then(setLayout).catch((err) => log2.error("compute-trait-layout-failed", { error: err instanceof Error ? err : String(err) }));
|
|
4499
4998
|
}, [dataKey]);
|
|
4500
4999
|
if (!traitData) {
|
|
4501
|
-
return /* @__PURE__ */ jsx("div", { className: "rounded-lg border border-[var(--color-border)] bg-[var(--color-card)] p-4 text-center text-[var(--color-muted-foreground)] text-sm", children: "
|
|
5000
|
+
return /* @__PURE__ */ jsx("div", { className: "rounded-lg border border-[var(--color-border)] bg-[var(--color-card)] p-4 text-center text-[var(--color-muted-foreground)] text-sm", children: t("avl.noTraitData") });
|
|
4502
5001
|
}
|
|
4503
5002
|
if (!layout) {
|
|
4504
|
-
return /* @__PURE__ */ jsx("div", { className: "rounded-lg border border-[var(--color-border)] bg-[var(--color-card)] p-4 text-center text-[var(--color-muted-foreground)] text-sm", children: "
|
|
5003
|
+
return /* @__PURE__ */ jsx("div", { className: "rounded-lg border border-[var(--color-border)] bg-[var(--color-card)] p-4 text-center text-[var(--color-muted-foreground)] text-sm", children: t("avl.computingLayout") });
|
|
4505
5004
|
}
|
|
4506
5005
|
const hasExternal = traitData.listenedEvents.length > 0 || traitData.emittedEvents.length > 0;
|
|
4507
5006
|
const viewW = hasExternal ? SWIM_GUTTER + CENTER_W + SWIM_GUTTER : CENTER_W + 60;
|
|
@@ -4517,10 +5016,7 @@ var init_BehaviorView = __esm({
|
|
|
4517
5016
|
const machineHeight = scaledH + 100;
|
|
4518
5017
|
const renderMachine = /* @__PURE__ */ jsxs("g", { children: [
|
|
4519
5018
|
/* @__PURE__ */ jsx("text", { x: CENTER_W / 2, y: 20, textAnchor: "middle", fill: "var(--color-foreground)", fontSize: 18, fontWeight: "700", fontFamily: "inherit", children: traitData.name }),
|
|
4520
|
-
/* @__PURE__ */
|
|
4521
|
-
"on ",
|
|
4522
|
-
traitData.linkedEntity
|
|
4523
|
-
] }),
|
|
5019
|
+
/* @__PURE__ */ jsx("text", { x: CENTER_W / 2, y: 36, textAnchor: "middle", fill: "var(--color-muted-foreground)", fontSize: 11, opacity: 0.5, fontFamily: "inherit", children: t("avl.onEntity", { entity: traitData.linkedEntity }) }),
|
|
4524
5020
|
/* @__PURE__ */ jsxs("defs", { children: [
|
|
4525
5021
|
/* @__PURE__ */ jsx("marker", { id: "bvArrow", viewBox: "0 0 10 10", refX: "9", refY: "5", markerWidth: "6", markerHeight: "6", orient: "auto-start-reverse", children: /* @__PURE__ */ jsx("path", { d: "M 0 0 L 10 5 L 0 10 z", fill: CONNECTION_COLORS.forward.color, opacity: 0.7 }) }),
|
|
4526
5022
|
/* @__PURE__ */ jsx("marker", { id: "bvArrowBack", viewBox: "0 0 10 10", refX: "9", refY: "5", markerWidth: "6", markerHeight: "6", orient: "auto-start-reverse", children: /* @__PURE__ */ jsx("path", { d: "M 0 0 L 10 5 L 0 10 z", fill: CONNECTION_COLORS.backward.color, opacity: 0.5 }) })
|
|
@@ -6322,210 +6818,6 @@ var init_Overlay = __esm({
|
|
|
6322
6818
|
};
|
|
6323
6819
|
}
|
|
6324
6820
|
});
|
|
6325
|
-
|
|
6326
|
-
// locales/en.json
|
|
6327
|
-
var en_default;
|
|
6328
|
-
var init_en = __esm({
|
|
6329
|
-
"locales/en.json"() {
|
|
6330
|
-
en_default = {
|
|
6331
|
-
$meta: { locale: "en", direction: "ltr" },
|
|
6332
|
-
"common.save": "Save",
|
|
6333
|
-
"common.cancel": "Cancel",
|
|
6334
|
-
"common.delete": "Delete",
|
|
6335
|
-
"common.close": "Close",
|
|
6336
|
-
"common.confirm": "Are you sure?",
|
|
6337
|
-
"common.create": "Create",
|
|
6338
|
-
"common.edit": "Edit",
|
|
6339
|
-
"common.view": "View",
|
|
6340
|
-
"common.add": "Add",
|
|
6341
|
-
"common.remove": "Remove",
|
|
6342
|
-
"common.search": "Search...",
|
|
6343
|
-
"common.filter": "Filter",
|
|
6344
|
-
"common.actions": "Actions",
|
|
6345
|
-
"common.yes": "Yes",
|
|
6346
|
-
"common.no": "No",
|
|
6347
|
-
"common.selected": "selected",
|
|
6348
|
-
"common.ok": "OK",
|
|
6349
|
-
"common.done": "Done",
|
|
6350
|
-
"common.apply": "Apply",
|
|
6351
|
-
"common.reset": "Reset",
|
|
6352
|
-
"common.refresh": "Refresh",
|
|
6353
|
-
"common.export": "Export",
|
|
6354
|
-
"common.import": "Import",
|
|
6355
|
-
"common.copy": "Copy",
|
|
6356
|
-
"common.settings": "Settings",
|
|
6357
|
-
"nav.previous": "Previous",
|
|
6358
|
-
"nav.next": "Next",
|
|
6359
|
-
"nav.back": "Back",
|
|
6360
|
-
"nav.home": "Home",
|
|
6361
|
-
"form.submit": "Submit",
|
|
6362
|
-
"form.saving": "Saving...",
|
|
6363
|
-
"form.required": "This field is required",
|
|
6364
|
-
"form.invalidEmail": "Enter a valid email address",
|
|
6365
|
-
"form.selectPlaceholder": "Select {{label}}...",
|
|
6366
|
-
"form.searchPlaceholder": "Search {{entity}}...",
|
|
6367
|
-
"table.empty.title": "No items found",
|
|
6368
|
-
"table.empty.description": "No items to display.",
|
|
6369
|
-
"table.search.placeholder": "Search...",
|
|
6370
|
-
"table.pagination.showing": "Showing {{start}} to {{end}} of {{total}} results",
|
|
6371
|
-
"table.pagination.page": "Page {{page}} of {{totalPages}}",
|
|
6372
|
-
"table.bulk.selected": "{{count}} selected",
|
|
6373
|
-
"table.loading": "Loading...",
|
|
6374
|
-
"status.loading": "Loading...",
|
|
6375
|
-
"status.scheduled": "Scheduled",
|
|
6376
|
-
"status.inProgress": "In Progress",
|
|
6377
|
-
"status.completed": "Completed",
|
|
6378
|
-
"status.cancelled": "Cancelled",
|
|
6379
|
-
"status.pending": "Pending",
|
|
6380
|
-
"status.active": "Active",
|
|
6381
|
-
"status.inactive": "Inactive",
|
|
6382
|
-
"status.draft": "Draft",
|
|
6383
|
-
"status.archived": "Archived",
|
|
6384
|
-
"error.generic": "Something went wrong",
|
|
6385
|
-
"error.retry": "Try again",
|
|
6386
|
-
"error.notFound": "Not found",
|
|
6387
|
-
"error.loadFailed": "Failed to load: {{message}}",
|
|
6388
|
-
"error.configMissing": "Configuration not found for: {{id}}",
|
|
6389
|
-
"common.loading": "Loading...",
|
|
6390
|
-
"common.showMore": "Show More",
|
|
6391
|
-
"common.showLess": "Show Less",
|
|
6392
|
-
"common.noResults": "No results found",
|
|
6393
|
-
"common.saveChanges": "Save Changes",
|
|
6394
|
-
"common.retry": "Retry",
|
|
6395
|
-
"common.open": "Open",
|
|
6396
|
-
"common.back": "Back",
|
|
6397
|
-
"empty.noItems": "No items",
|
|
6398
|
-
"empty.noData": "No data available",
|
|
6399
|
-
"empty.noItemsYet": "No items yet",
|
|
6400
|
-
"empty.noItemsAdded": "No items added yet",
|
|
6401
|
-
"empty.noOptionsFound": "No options found",
|
|
6402
|
-
"list.addItemPlaceholder": "Add new item...",
|
|
6403
|
-
"error.occurred": "An error occurred",
|
|
6404
|
-
"error.failedToLoad": "Failed to load data",
|
|
6405
|
-
"wizard.back": "Back",
|
|
6406
|
-
"wizard.next": "Next",
|
|
6407
|
-
"wizard.complete": "Complete",
|
|
6408
|
-
"wizard.stepOf": "Step {{current}} of {{total}}",
|
|
6409
|
-
"pagination.previous": "Previous",
|
|
6410
|
-
"pagination.next": "Next",
|
|
6411
|
-
"pagination.total": "Total:",
|
|
6412
|
-
"pagination.show": "Show:",
|
|
6413
|
-
"pagination.goTo": "Go to:",
|
|
6414
|
-
"pagination.go": "Go",
|
|
6415
|
-
"auth.signIn": "Sign in",
|
|
6416
|
-
"auth.signOut": "Sign out",
|
|
6417
|
-
"dialog.confirm": "Confirm",
|
|
6418
|
-
"dialog.cancel": "Cancel",
|
|
6419
|
-
"dialog.loading": "Loading...",
|
|
6420
|
-
"dialog.delete.title": "Delete {{item}}?",
|
|
6421
|
-
"dialog.delete.message": "This action cannot be undone.",
|
|
6422
|
-
"trait.availableActions": "Available Actions",
|
|
6423
|
-
"trait.transitions": "Transitions",
|
|
6424
|
-
"trait.availableNow": "Available now",
|
|
6425
|
-
"book.startReading": "Start Reading",
|
|
6426
|
-
"book.tableOfContents": "Table of Contents",
|
|
6427
|
-
"book.partNumber": "Part {{number}}",
|
|
6428
|
-
"book.print": "Print",
|
|
6429
|
-
"book.previousPage": "Previous page",
|
|
6430
|
-
"book.nextPage": "Next page",
|
|
6431
|
-
"quiz.showAnswer": "Show answer",
|
|
6432
|
-
"quiz.hideAnswer": "Hide answer",
|
|
6433
|
-
"aria.closeModal": "Close modal",
|
|
6434
|
-
"aria.closeToast": "Dismiss toast",
|
|
6435
|
-
"aria.closeAlert": "Dismiss alert",
|
|
6436
|
-
"aria.removeFilter": "Remove filter",
|
|
6437
|
-
"aria.closeDrawer": "Close drawer",
|
|
6438
|
-
"aria.closePanel": "Close panel",
|
|
6439
|
-
"aria.previousImage": "Previous image",
|
|
6440
|
-
"aria.nextImage": "Next image",
|
|
6441
|
-
"aria.dismiss": "Dismiss",
|
|
6442
|
-
"aria.previousSlide": "Previous slide",
|
|
6443
|
-
"aria.nextSlide": "Next slide",
|
|
6444
|
-
"aria.previousDays": "Previous days",
|
|
6445
|
-
"aria.nextDays": "Next days",
|
|
6446
|
-
"aria.decrease": "Decrease",
|
|
6447
|
-
"aria.increase": "Increase",
|
|
6448
|
-
"aria.breadcrumb": "Breadcrumb",
|
|
6449
|
-
"aria.tableOfContents": "Table of contents",
|
|
6450
|
-
"aria.docsSidebar": "Documentation sidebar",
|
|
6451
|
-
"aria.selectAllRows": "Select all rows",
|
|
6452
|
-
"aria.selectAll": "Select all",
|
|
6453
|
-
"aria.upvote": "Upvote",
|
|
6454
|
-
"aria.downvote": "Downvote",
|
|
6455
|
-
"aria.qrScanner": "QR scanner",
|
|
6456
|
-
"aria.mockScanDev": "Mock scan (dev)",
|
|
6457
|
-
"aria.openMenu": "Open menu",
|
|
6458
|
-
"aria.closeMenu": "Close menu",
|
|
6459
|
-
"aria.openSidebar": "Open sidebar",
|
|
6460
|
-
"sidebar.expand": "Expand sidebar",
|
|
6461
|
-
"sidebar.collapse": "Collapse sidebar",
|
|
6462
|
-
"sidebar.close": "Close sidebar",
|
|
6463
|
-
"loading.items": "Loading items...",
|
|
6464
|
-
"card.imageAlt": "Image",
|
|
6465
|
-
"canvas.emptyMessage": "No content",
|
|
6466
|
-
"canvas.errorTitle": "Canvas error",
|
|
6467
|
-
"book.noData": "No data",
|
|
6468
|
-
"common.notifications": "Notifications",
|
|
6469
|
-
"common.remaining": "{{count}} remaining",
|
|
6470
|
-
"error.somethingWentWrong": "Something went wrong",
|
|
6471
|
-
"error.loadingItems": "Loading items...",
|
|
6472
|
-
"error.noItemsFound": "No items found",
|
|
6473
|
-
"error.notFound": "Not found",
|
|
6474
|
-
"debug.noEntityData": "No entity data",
|
|
6475
|
-
"debug.noEntities": "No entities",
|
|
6476
|
-
"debug.noTicks": "No ticks registered",
|
|
6477
|
-
"debug.noActiveTraits": "No active traits",
|
|
6478
|
-
"debug.noGuardEvaluations": "No guard evaluations",
|
|
6479
|
-
"debug.noBridgeData": "No bridge data",
|
|
6480
|
-
"debug.status": "Status",
|
|
6481
|
-
"debug.eventsForwarded": "Events Forwarded (Client \u2192 Server)",
|
|
6482
|
-
"debug.eventsReceived": "Events Received (Server \u2192 Client)",
|
|
6483
|
-
"debug.lastHeartbeat": "Last Heartbeat",
|
|
6484
|
-
"debug.noEventsYet": "No events yet",
|
|
6485
|
-
"debug.noTransitionsRecorded": "No transitions recorded",
|
|
6486
|
-
"debug.noVerificationChecks": "No verification checks yet",
|
|
6487
|
-
"display.chartError": "Chart error",
|
|
6488
|
-
"display.codeViewerError": "Code viewer error",
|
|
6489
|
-
"display.noCode": "No code",
|
|
6490
|
-
"display.documentError": "Document error",
|
|
6491
|
-
"display.noDocument": "No document",
|
|
6492
|
-
"display.graphError": "Graph error",
|
|
6493
|
-
"display.noGraphData": "No graph data",
|
|
6494
|
-
"display.galleryError": "Gallery error",
|
|
6495
|
-
"display.noMedia": "No media",
|
|
6496
|
-
"display.meterError": "Meter error",
|
|
6497
|
-
"display.signaturePadError": "Signature pad error",
|
|
6498
|
-
"display.timelineError": "Timeline error",
|
|
6499
|
-
"display.noEvents": "No events",
|
|
6500
|
-
"template.features": "Features",
|
|
6501
|
-
"template.howItWorks": "How It Works",
|
|
6502
|
-
"template.showcase": "Showcase",
|
|
6503
|
-
"template.faq": "Frequently Asked Questions",
|
|
6504
|
-
"template.ourTeam": "Our Team",
|
|
6505
|
-
"template.caseStudies": "Case Studies"
|
|
6506
|
-
};
|
|
6507
|
-
}
|
|
6508
|
-
});
|
|
6509
|
-
function useTranslate() {
|
|
6510
|
-
return useContext(I18nContext);
|
|
6511
|
-
}
|
|
6512
|
-
var _meta, coreMessages, coreLocale, I18nContext;
|
|
6513
|
-
var init_useTranslate = __esm({
|
|
6514
|
-
"hooks/useTranslate.ts"() {
|
|
6515
|
-
"use client";
|
|
6516
|
-
init_en();
|
|
6517
|
-
({ $meta: _meta, ...coreMessages } = en_default);
|
|
6518
|
-
coreLocale = coreMessages;
|
|
6519
|
-
I18nContext = createContext({
|
|
6520
|
-
locale: "en",
|
|
6521
|
-
direction: "ltr",
|
|
6522
|
-
t: (key) => coreLocale[key] ?? key
|
|
6523
|
-
// core locale fallback
|
|
6524
|
-
});
|
|
6525
|
-
I18nContext.displayName = "I18nContext";
|
|
6526
|
-
I18nContext.Provider;
|
|
6527
|
-
}
|
|
6528
|
-
});
|
|
6529
6821
|
var sizeClasses2, minWidthClasses, lookStyles, Modal;
|
|
6530
6822
|
var init_Modal = __esm({
|
|
6531
6823
|
"components/core/molecules/Modal.tsx"() {
|
|
@@ -9504,6 +9796,7 @@ var init_LawReferenceTooltip = __esm({
|
|
|
9504
9796
|
init_Typography();
|
|
9505
9797
|
init_Divider();
|
|
9506
9798
|
init_cn();
|
|
9799
|
+
init_useTranslate();
|
|
9507
9800
|
positionStyles2 = {
|
|
9508
9801
|
top: "bottom-full left-1/2 -translate-x-1/2 mb-2",
|
|
9509
9802
|
bottom: "top-full left-1/2 -translate-x-1/2 mt-2",
|
|
@@ -9522,6 +9815,7 @@ var init_LawReferenceTooltip = __esm({
|
|
|
9522
9815
|
position = "top",
|
|
9523
9816
|
className
|
|
9524
9817
|
}) => {
|
|
9818
|
+
const { t } = useTranslate();
|
|
9525
9819
|
const [isVisible, setIsVisible] = React97__default.useState(false);
|
|
9526
9820
|
const timeoutRef = React97__default.useRef(null);
|
|
9527
9821
|
const handleMouseEnter = () => {
|
|
@@ -9605,7 +9899,7 @@ var init_LawReferenceTooltip = __esm({
|
|
|
9605
9899
|
target: "_blank",
|
|
9606
9900
|
rel: "noopener noreferrer",
|
|
9607
9901
|
onClick: (e) => e.stopPropagation(),
|
|
9608
|
-
children: "
|
|
9902
|
+
children: t("lawReference.viewFullText")
|
|
9609
9903
|
}
|
|
9610
9904
|
)
|
|
9611
9905
|
] }),
|
|
@@ -17093,7 +17387,7 @@ var init_CodeBlock = __esm({
|
|
|
17093
17387
|
const isLolo = language === "lolo";
|
|
17094
17388
|
const activeStyle = isOrb ? orbStyle : isLolo ? loloStyle : dark;
|
|
17095
17389
|
const eventBus = useEventBus();
|
|
17096
|
-
const { t
|
|
17390
|
+
const { t } = useTranslate();
|
|
17097
17391
|
const scrollRef = useRef(null);
|
|
17098
17392
|
const codeRef = useRef(null);
|
|
17099
17393
|
const savedScrollLeftRef = useRef(0);
|
|
@@ -17348,7 +17642,7 @@ var init_CodeBlock = __esm({
|
|
|
17348
17642
|
size: "sm",
|
|
17349
17643
|
onClick: handleCopy,
|
|
17350
17644
|
className: "opacity-0 group-hover:opacity-100 focus:opacity-100 transition-opacity text-muted-foreground hover:text-white",
|
|
17351
|
-
"aria-label": "
|
|
17645
|
+
"aria-label": t("common.copy"),
|
|
17352
17646
|
children: copied ? /* @__PURE__ */ jsx(Icon, { name: "check", className: "w-4 h-4 text-green-400" }) : /* @__PURE__ */ jsx(Icon, { name: "copy", className: "w-4 h-4" })
|
|
17353
17647
|
}
|
|
17354
17648
|
)
|
|
@@ -18003,7 +18297,7 @@ var init_StateMachineView = __esm({
|
|
|
18003
18297
|
const endX2 = fromState.x + Math.cos(Math.PI / 2 * loopDirection + endAngle) * fromState.radius;
|
|
18004
18298
|
const endY2 = fromState.y + Math.sin(Math.PI / 2 * loopDirection + endAngle) * fromState.radius;
|
|
18005
18299
|
const isSingle2 = bundle.labels.length === 1;
|
|
18006
|
-
const labelText2 = isSingle2 ? bundle.labels[0].event :
|
|
18300
|
+
const labelText2 = isSingle2 ? bundle.labels[0].event : t("stateMachine.eventCount", { count: bundle.labels.length });
|
|
18007
18301
|
const bundleColor2 = isSingle2 ? config.colors.arrow : "var(--color-accent)";
|
|
18008
18302
|
const labelWidth2 = labelText2.length * 9 + (isSingle2 ? 24 : 40);
|
|
18009
18303
|
const cx = fromState.x;
|
|
@@ -18129,7 +18423,7 @@ var init_StateMachineView = __esm({
|
|
|
18129
18423
|
const controlX = midX + perpX;
|
|
18130
18424
|
const controlY = midY + perpY;
|
|
18131
18425
|
const isSingle = bundle.labels.length === 1;
|
|
18132
|
-
const labelText = isSingle ? bundle.labels[0].event :
|
|
18426
|
+
const labelText = isSingle ? bundle.labels[0].event : t("stateMachine.eventCount", { count: bundle.labels.length });
|
|
18133
18427
|
const labelWidth = labelText.length * 9 + (isSingle ? 24 : 40);
|
|
18134
18428
|
const bundleColor = isSingle ? config.colors.arrow : "var(--color-accent)";
|
|
18135
18429
|
const curveMidpoint = {
|
|
@@ -18284,7 +18578,7 @@ var init_StateMachineView = __esm({
|
|
|
18284
18578
|
{
|
|
18285
18579
|
className: "absolute -top-2 left-1/2 transform -translate-x-1/2 px-2 py-0.5 rounded-full",
|
|
18286
18580
|
style: { backgroundColor: "var(--color-success)" },
|
|
18287
|
-
children: /* @__PURE__ */ jsx(Typography, { variant: "caption", weight: "semibold", style: { color: "var(--color-success-foreground)" }, children: "
|
|
18581
|
+
children: /* @__PURE__ */ jsx(Typography, { variant: "caption", weight: "semibold", style: { color: "var(--color-success-foreground)" }, children: t("stateMachine.pinned") })
|
|
18288
18582
|
}
|
|
18289
18583
|
),
|
|
18290
18584
|
!isSingle && /* @__PURE__ */ jsxs(
|
|
@@ -18306,10 +18600,7 @@ var init_StateMachineView = __esm({
|
|
|
18306
18600
|
{
|
|
18307
18601
|
className: "ml-2 px-2 py-0.5 rounded-full",
|
|
18308
18602
|
style: { backgroundColor: "var(--color-accent)" },
|
|
18309
|
-
children: /* @__PURE__ */
|
|
18310
|
-
bundle.labels.length,
|
|
18311
|
-
" events"
|
|
18312
|
-
] })
|
|
18603
|
+
children: /* @__PURE__ */ jsx(Typography, { variant: "caption", style: { color: "var(--color-accent-foreground)" }, children: t("stateMachine.eventCount", { count: bundle.labels.length }) })
|
|
18313
18604
|
}
|
|
18314
18605
|
)
|
|
18315
18606
|
]
|
|
@@ -18454,7 +18745,7 @@ var init_StateMachineView = __esm({
|
|
|
18454
18745
|
align: "center",
|
|
18455
18746
|
className: "mb-2",
|
|
18456
18747
|
style: { color: "var(--color-warning)", fontSize: "13px" },
|
|
18457
|
-
children: "
|
|
18748
|
+
children: t("stateMachine.externalEffects")
|
|
18458
18749
|
}
|
|
18459
18750
|
),
|
|
18460
18751
|
outputs.outputs.map((output, idx) => /* @__PURE__ */ jsx(
|
|
@@ -18474,10 +18765,10 @@ var init_StateMachineView = __esm({
|
|
|
18474
18765
|
Legend = ({ config, y }) => {
|
|
18475
18766
|
const { t } = useTranslate();
|
|
18476
18767
|
const items = [
|
|
18477
|
-
{ label: "
|
|
18478
|
-
{ label: "
|
|
18479
|
-
{ label: "
|
|
18480
|
-
{ label: "
|
|
18768
|
+
{ key: "initial", label: t("stateMachine.legend.initial"), color: config.colors.initialNode, isMultiEvent: false },
|
|
18769
|
+
{ key: "final", label: t("stateMachine.legend.final"), color: config.colors.finalNode, isMultiEvent: false },
|
|
18770
|
+
{ key: "state", label: t("stateMachine.legend.state"), color: config.colors.nodeBorder, isMultiEvent: false },
|
|
18771
|
+
{ key: "multiEvent", label: t("stateMachine.legend.multiEvent"), color: "var(--color-accent)", isMultiEvent: true }
|
|
18481
18772
|
];
|
|
18482
18773
|
return /* @__PURE__ */ jsx(
|
|
18483
18774
|
HStack,
|
|
@@ -18492,8 +18783,8 @@ var init_StateMachineView = __esm({
|
|
|
18492
18783
|
{
|
|
18493
18784
|
className: "w-3 h-3 rounded-full",
|
|
18494
18785
|
style: {
|
|
18495
|
-
backgroundColor: item.
|
|
18496
|
-
border: item.
|
|
18786
|
+
backgroundColor: item.isMultiEvent ? item.color : config.colors.node,
|
|
18787
|
+
border: !item.isMultiEvent ? `2px solid ${item.color}` : "none"
|
|
18497
18788
|
}
|
|
18498
18789
|
}
|
|
18499
18790
|
),
|
|
@@ -18505,7 +18796,7 @@ var init_StateMachineView = __esm({
|
|
|
18505
18796
|
children: item.label
|
|
18506
18797
|
}
|
|
18507
18798
|
)
|
|
18508
|
-
] }, item.
|
|
18799
|
+
] }, item.key))
|
|
18509
18800
|
}
|
|
18510
18801
|
);
|
|
18511
18802
|
};
|
|
@@ -19299,13 +19590,13 @@ var init_JazariStateMachine = __esm({
|
|
|
19299
19590
|
);
|
|
19300
19591
|
}, [resolvedTrait, entityFields]);
|
|
19301
19592
|
if (isLoading) {
|
|
19302
|
-
return /* @__PURE__ */ jsx(LoadingState, { message: "
|
|
19593
|
+
return /* @__PURE__ */ jsx(LoadingState, { message: t("stateMachine.loading") });
|
|
19303
19594
|
}
|
|
19304
19595
|
if (error) {
|
|
19305
19596
|
return /* @__PURE__ */ jsx(ErrorState, { message: error instanceof Error ? error.message : String(error) });
|
|
19306
19597
|
}
|
|
19307
19598
|
if (!resolvedTrait || !layoutData || layoutData.states.length === 0) {
|
|
19308
|
-
return /* @__PURE__ */ jsx(Box, { padding: "lg", className: cn("text-center", className), children: /* @__PURE__ */ jsx(Typography, { variant: "body", className: "opacity-60", children: "
|
|
19599
|
+
return /* @__PURE__ */ jsx(Box, { padding: "lg", className: cn("text-center", className), children: /* @__PURE__ */ jsx(Typography, { variant: "body", className: "opacity-60", children: t("stateMachine.noStateMachine") }) });
|
|
19309
19600
|
}
|
|
19310
19601
|
return /* @__PURE__ */ jsx(
|
|
19311
19602
|
StateMachineView,
|
|
@@ -20349,13 +20640,13 @@ var init_LayoutPatterns = __esm({
|
|
|
20349
20640
|
function generateRuleId() {
|
|
20350
20641
|
return `rule-${Date.now()}-${Math.random().toString(36).slice(2, 8)}`;
|
|
20351
20642
|
}
|
|
20352
|
-
function questionsToOptions(questions,
|
|
20643
|
+
function questionsToOptions(questions, endOfSurveyLabel) {
|
|
20353
20644
|
const opts = questions.map((q) => ({
|
|
20354
20645
|
value: q.id,
|
|
20355
20646
|
label: q.label
|
|
20356
20647
|
}));
|
|
20357
|
-
if (
|
|
20358
|
-
opts.push({ value: END_OF_SURVEY, label:
|
|
20648
|
+
if (endOfSurveyLabel !== null) {
|
|
20649
|
+
opts.push({ value: END_OF_SURVEY, label: endOfSurveyLabel });
|
|
20359
20650
|
}
|
|
20360
20651
|
return opts;
|
|
20361
20652
|
}
|
|
@@ -20364,7 +20655,7 @@ function isRuleBroken(rule, questions) {
|
|
|
20364
20655
|
const targetExists = rule.targetQuestionId === END_OF_SURVEY || questions.some((q) => q.id === rule.targetQuestionId);
|
|
20365
20656
|
return !sourceExists || !targetExists;
|
|
20366
20657
|
}
|
|
20367
|
-
var END_OF_SURVEY,
|
|
20658
|
+
var END_OF_SURVEY, RuleRow, NODE_WIDTH, NODE_HEIGHT, NODE_GAP_Y, PADDING, LogicGraph, BranchingLogicBuilder;
|
|
20368
20659
|
var init_BranchingLogicBuilder = __esm({
|
|
20369
20660
|
"components/core/molecules/BranchingLogicBuilder.tsx"() {
|
|
20370
20661
|
"use client";
|
|
@@ -20377,14 +20668,9 @@ var init_BranchingLogicBuilder = __esm({
|
|
|
20377
20668
|
init_FilterPill();
|
|
20378
20669
|
init_Box();
|
|
20379
20670
|
init_useEventBus();
|
|
20671
|
+
init_useTranslate();
|
|
20380
20672
|
init_cn();
|
|
20381
20673
|
END_OF_SURVEY = "end-of-survey";
|
|
20382
|
-
OPERATOR_OPTIONS = [
|
|
20383
|
-
{ value: "equals", label: "equals" },
|
|
20384
|
-
{ value: "not-equals", label: "does not equal" },
|
|
20385
|
-
{ value: "contains", label: "contains" },
|
|
20386
|
-
{ value: "in", label: "is one of" }
|
|
20387
|
-
];
|
|
20388
20674
|
RuleRow = ({
|
|
20389
20675
|
rule,
|
|
20390
20676
|
questions,
|
|
@@ -20393,8 +20679,21 @@ var init_BranchingLogicBuilder = __esm({
|
|
|
20393
20679
|
onChange,
|
|
20394
20680
|
onDelete
|
|
20395
20681
|
}) => {
|
|
20396
|
-
const
|
|
20397
|
-
const
|
|
20682
|
+
const { t } = useTranslate();
|
|
20683
|
+
const operatorOptions = useMemo(
|
|
20684
|
+
() => [
|
|
20685
|
+
{ value: "equals", label: t("branchingLogic.operatorEquals") },
|
|
20686
|
+
{ value: "not-equals", label: t("branchingLogic.operatorNotEquals") },
|
|
20687
|
+
{ value: "contains", label: t("branchingLogic.operatorContains") },
|
|
20688
|
+
{ value: "in", label: t("branchingLogic.operatorIn") }
|
|
20689
|
+
],
|
|
20690
|
+
[t]
|
|
20691
|
+
);
|
|
20692
|
+
const sourceOptions = useMemo(() => questionsToOptions(questions, null), [questions]);
|
|
20693
|
+
const targetOptions = useMemo(
|
|
20694
|
+
() => questionsToOptions(questions, t("branchingLogic.endOfSurvey")),
|
|
20695
|
+
[questions, t]
|
|
20696
|
+
);
|
|
20398
20697
|
const sourceQuestion = questions.find((q) => q.id === rule.sourceQuestionId);
|
|
20399
20698
|
const valueOptions = useMemo(() => {
|
|
20400
20699
|
if (!sourceQuestion?.optionValues) return [];
|
|
@@ -20439,22 +20738,22 @@ var init_BranchingLogicBuilder = __esm({
|
|
|
20439
20738
|
),
|
|
20440
20739
|
children: [
|
|
20441
20740
|
/* @__PURE__ */ jsxs(Box, { className: "flex flex-wrap items-center gap-2", children: [
|
|
20442
|
-
/* @__PURE__ */ jsx(Typography, { variant: "label", weight: "semibold", className: "shrink-0", children: "
|
|
20741
|
+
/* @__PURE__ */ jsx(Typography, { variant: "label", weight: "semibold", className: "shrink-0", children: t("branchingLogic.if") }),
|
|
20443
20742
|
/* @__PURE__ */ jsx(Box, { className: "min-w-[10rem] grow basis-40", children: /* @__PURE__ */ jsx(
|
|
20444
20743
|
Select,
|
|
20445
20744
|
{
|
|
20446
20745
|
options: sourceOptions,
|
|
20447
20746
|
value: rule.sourceQuestionId,
|
|
20448
|
-
placeholder: "
|
|
20747
|
+
placeholder: t("branchingLogic.selectQuestion"),
|
|
20449
20748
|
onChange: handleSource,
|
|
20450
20749
|
disabled: readOnly,
|
|
20451
|
-
error: broken ? "
|
|
20750
|
+
error: broken ? t("branchingLogic.brokenReference") : void 0
|
|
20452
20751
|
}
|
|
20453
20752
|
) }),
|
|
20454
20753
|
/* @__PURE__ */ jsx(Box, { className: "min-w-[8rem] basis-32", children: /* @__PURE__ */ jsx(
|
|
20455
20754
|
Select,
|
|
20456
20755
|
{
|
|
20457
|
-
options:
|
|
20756
|
+
options: operatorOptions,
|
|
20458
20757
|
value: rule.operator,
|
|
20459
20758
|
onChange: handleOperator,
|
|
20460
20759
|
disabled: readOnly
|
|
@@ -20477,7 +20776,7 @@ var init_BranchingLogicBuilder = __esm({
|
|
|
20477
20776
|
{
|
|
20478
20777
|
options: valueOptions.filter((o) => !chips.includes(o.value)),
|
|
20479
20778
|
value: "",
|
|
20480
|
-
placeholder: "
|
|
20779
|
+
placeholder: t("branchingLogic.addValue"),
|
|
20481
20780
|
onChange: handleAddChip,
|
|
20482
20781
|
disabled: readOnly
|
|
20483
20782
|
}
|
|
@@ -20485,7 +20784,7 @@ var init_BranchingLogicBuilder = __esm({
|
|
|
20485
20784
|
Input,
|
|
20486
20785
|
{
|
|
20487
20786
|
inputType: "text",
|
|
20488
|
-
placeholder: "
|
|
20787
|
+
placeholder: t("branchingLogic.typeValuePressEnter"),
|
|
20489
20788
|
value: "",
|
|
20490
20789
|
onKeyDown: (e) => {
|
|
20491
20790
|
if (e.key !== "Enter") return;
|
|
@@ -20503,7 +20802,7 @@ var init_BranchingLogicBuilder = __esm({
|
|
|
20503
20802
|
{
|
|
20504
20803
|
options: valueOptions,
|
|
20505
20804
|
value: scalarValue,
|
|
20506
|
-
placeholder: "
|
|
20805
|
+
placeholder: t("branchingLogic.selectValue"),
|
|
20507
20806
|
onChange: (e) => onChange({ ...rule, value: e.target.value }),
|
|
20508
20807
|
disabled: readOnly
|
|
20509
20808
|
}
|
|
@@ -20511,7 +20810,7 @@ var init_BranchingLogicBuilder = __esm({
|
|
|
20511
20810
|
Input,
|
|
20512
20811
|
{
|
|
20513
20812
|
inputType: "text",
|
|
20514
|
-
placeholder: "
|
|
20813
|
+
placeholder: t("branchingLogic.value"),
|
|
20515
20814
|
value: scalarValue,
|
|
20516
20815
|
onChange: handleScalarValue,
|
|
20517
20816
|
disabled: readOnly
|
|
@@ -20519,17 +20818,17 @@ var init_BranchingLogicBuilder = __esm({
|
|
|
20519
20818
|
) }),
|
|
20520
20819
|
/* @__PURE__ */ jsxs(Typography, { variant: "label", weight: "semibold", className: "shrink-0 inline-flex items-center gap-1", children: [
|
|
20521
20820
|
/* @__PURE__ */ jsx(ArrowRight, { className: "h-4 w-4" }),
|
|
20522
|
-
"
|
|
20821
|
+
t("branchingLogic.goTo")
|
|
20523
20822
|
] }),
|
|
20524
20823
|
/* @__PURE__ */ jsx(Box, { className: "min-w-[10rem] grow basis-40", children: /* @__PURE__ */ jsx(
|
|
20525
20824
|
Select,
|
|
20526
20825
|
{
|
|
20527
20826
|
options: targetOptions,
|
|
20528
20827
|
value: rule.targetQuestionId,
|
|
20529
|
-
placeholder: "
|
|
20828
|
+
placeholder: t("branchingLogic.selectTarget"),
|
|
20530
20829
|
onChange: handleTarget,
|
|
20531
20830
|
disabled: readOnly,
|
|
20532
|
-
error: broken && rule.targetQuestionId !== END_OF_SURVEY ? "
|
|
20831
|
+
error: broken && rule.targetQuestionId !== END_OF_SURVEY ? t("branchingLogic.brokenReference") : void 0
|
|
20533
20832
|
}
|
|
20534
20833
|
) }),
|
|
20535
20834
|
!readOnly && /* @__PURE__ */ jsx(
|
|
@@ -20541,11 +20840,11 @@ var init_BranchingLogicBuilder = __esm({
|
|
|
20541
20840
|
action: "DELETE_RULE",
|
|
20542
20841
|
actionPayload: { ruleId: rule.id },
|
|
20543
20842
|
onClick: onDelete,
|
|
20544
|
-
"aria-label": "
|
|
20843
|
+
"aria-label": t("branchingLogic.deleteRule")
|
|
20545
20844
|
}
|
|
20546
20845
|
)
|
|
20547
20846
|
] }),
|
|
20548
|
-
broken && /* @__PURE__ */ jsx(Badge, { variant: "error", size: "sm", label: "
|
|
20847
|
+
broken && /* @__PURE__ */ jsx(Badge, { variant: "error", size: "sm", label: t("branchingLogic.brokenReference") })
|
|
20549
20848
|
]
|
|
20550
20849
|
}
|
|
20551
20850
|
);
|
|
@@ -20555,10 +20854,12 @@ var init_BranchingLogicBuilder = __esm({
|
|
|
20555
20854
|
NODE_GAP_Y = 80;
|
|
20556
20855
|
PADDING = 32;
|
|
20557
20856
|
LogicGraph = ({ questions, rules }) => {
|
|
20857
|
+
const { t } = useTranslate();
|
|
20858
|
+
const endOfSurveyLabel = t("branchingLogic.endOfSurvey");
|
|
20558
20859
|
const layout = useMemo(() => {
|
|
20559
20860
|
const items = [
|
|
20560
20861
|
...questions.map((q) => ({ id: q.id, label: q.label, isEnd: false })),
|
|
20561
|
-
{ id: END_OF_SURVEY, label:
|
|
20862
|
+
{ id: END_OF_SURVEY, label: endOfSurveyLabel, isEnd: true }
|
|
20562
20863
|
];
|
|
20563
20864
|
const positions = {};
|
|
20564
20865
|
items.forEach((item, i) => {
|
|
@@ -20570,14 +20871,14 @@ var init_BranchingLogicBuilder = __esm({
|
|
|
20570
20871
|
const width = NODE_WIDTH + PADDING * 2 + 220;
|
|
20571
20872
|
const height = PADDING * 2 + items.length * (NODE_HEIGHT + NODE_GAP_Y);
|
|
20572
20873
|
return { items, positions, width, height };
|
|
20573
|
-
}, [questions]);
|
|
20874
|
+
}, [questions, endOfSurveyLabel]);
|
|
20574
20875
|
return /* @__PURE__ */ jsx(Box, { className: "overflow-auto rounded-container border border-border bg-card p-2", children: /* @__PURE__ */ jsxs(
|
|
20575
20876
|
"svg",
|
|
20576
20877
|
{
|
|
20577
20878
|
width: layout.width,
|
|
20578
20879
|
height: layout.height,
|
|
20579
20880
|
role: "img",
|
|
20580
|
-
"aria-label": "
|
|
20881
|
+
"aria-label": t("branchingLogic.graphAriaLabel"),
|
|
20581
20882
|
style: { display: "block" },
|
|
20582
20883
|
children: [
|
|
20583
20884
|
/* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsx(
|
|
@@ -20685,6 +20986,7 @@ var init_BranchingLogicBuilder = __esm({
|
|
|
20685
20986
|
readOnly = false,
|
|
20686
20987
|
className
|
|
20687
20988
|
}) => {
|
|
20989
|
+
const { t } = useTranslate();
|
|
20688
20990
|
const eventBus = useEventBus();
|
|
20689
20991
|
const questions = Array.isArray(questionsProp) ? questionsProp : [];
|
|
20690
20992
|
const rulesInitial = Array.isArray(rulesProp) ? rulesProp : [];
|
|
@@ -20737,16 +21039,23 @@ var init_BranchingLogicBuilder = __esm({
|
|
|
20737
21039
|
/* @__PURE__ */ jsxs(Box, { className: "flex flex-wrap items-center justify-between gap-2", children: [
|
|
20738
21040
|
/* @__PURE__ */ jsxs(Box, { className: "flex items-center gap-2", children: [
|
|
20739
21041
|
/* @__PURE__ */ jsx(GitBranch, { className: "h-5 w-5 text-foreground" }),
|
|
20740
|
-
/* @__PURE__ */ jsx(Typography, { variant: "subheading", weight: "semibold", children: "
|
|
21042
|
+
/* @__PURE__ */ jsx(Typography, { variant: "subheading", weight: "semibold", children: t("branchingLogic.title") }),
|
|
20741
21043
|
/* @__PURE__ */ jsx(
|
|
20742
21044
|
Badge,
|
|
20743
21045
|
{
|
|
20744
21046
|
variant: "neutral",
|
|
20745
21047
|
size: "sm",
|
|
20746
|
-
label:
|
|
21048
|
+
label: rules.length === 1 ? t("branchingLogic.ruleCountOne", { count: rules.length }) : t("branchingLogic.ruleCountOther", { count: rules.length })
|
|
20747
21049
|
}
|
|
20748
21050
|
),
|
|
20749
|
-
brokenCount > 0 && /* @__PURE__ */ jsx(
|
|
21051
|
+
brokenCount > 0 && /* @__PURE__ */ jsx(
|
|
21052
|
+
Badge,
|
|
21053
|
+
{
|
|
21054
|
+
variant: "error",
|
|
21055
|
+
size: "sm",
|
|
21056
|
+
label: t("branchingLogic.brokenCount", { count: brokenCount })
|
|
21057
|
+
}
|
|
21058
|
+
)
|
|
20750
21059
|
] }),
|
|
20751
21060
|
/* @__PURE__ */ jsxs(Box, { className: "flex items-center gap-1 rounded-sm border border-border bg-card p-0.5", children: [
|
|
20752
21061
|
/* @__PURE__ */ jsx(
|
|
@@ -20757,7 +21066,7 @@ var init_BranchingLogicBuilder = __esm({
|
|
|
20757
21066
|
leftIcon: Pencil,
|
|
20758
21067
|
action: "VIEW_EDIT",
|
|
20759
21068
|
onClick: () => setView("edit"),
|
|
20760
|
-
children: "
|
|
21069
|
+
children: t("branchingLogic.rules")
|
|
20761
21070
|
}
|
|
20762
21071
|
),
|
|
20763
21072
|
/* @__PURE__ */ jsx(
|
|
@@ -20768,13 +21077,13 @@ var init_BranchingLogicBuilder = __esm({
|
|
|
20768
21077
|
leftIcon: Eye,
|
|
20769
21078
|
action: "VIEW_GRAPH",
|
|
20770
21079
|
onClick: () => setView("graph"),
|
|
20771
|
-
children: "
|
|
21080
|
+
children: t("branchingLogic.logicGraph")
|
|
20772
21081
|
}
|
|
20773
21082
|
)
|
|
20774
21083
|
] })
|
|
20775
21084
|
] }),
|
|
20776
21085
|
view === "edit" ? /* @__PURE__ */ jsxs(Box, { className: "flex flex-col gap-2", children: [
|
|
20777
|
-
rules.length === 0 ? /* @__PURE__ */ jsx(Card, { variant: "bordered", padding: "lg", className: "text-center", children: /* @__PURE__ */ jsx(Typography, { variant: "body", color: "muted", children: noQuestions ? "
|
|
21086
|
+
rules.length === 0 ? /* @__PURE__ */ jsx(Card, { variant: "bordered", padding: "lg", className: "text-center", children: /* @__PURE__ */ jsx(Typography, { variant: "body", color: "muted", children: noQuestions ? t("branchingLogic.emptyNoQuestions") : t("branchingLogic.emptyNoRules") }) }) : rules.map((rule) => /* @__PURE__ */ jsx(
|
|
20778
21087
|
RuleRow,
|
|
20779
21088
|
{
|
|
20780
21089
|
rule,
|
|
@@ -20795,7 +21104,7 @@ var init_BranchingLogicBuilder = __esm({
|
|
|
20795
21104
|
action: "ADD_RULE",
|
|
20796
21105
|
onClick: handleAddRule,
|
|
20797
21106
|
disabled: noQuestions,
|
|
20798
|
-
children: "
|
|
21107
|
+
children: t("branchingLogic.addRule")
|
|
20799
21108
|
}
|
|
20800
21109
|
) })
|
|
20801
21110
|
] }) : /* @__PURE__ */ jsx(LogicGraph, { questions, rules })
|
|
@@ -21422,7 +21731,7 @@ function CalendarGrid({
|
|
|
21422
21731
|
onClick: stepPrev,
|
|
21423
21732
|
"aria-disabled": !canPrev || void 0,
|
|
21424
21733
|
"aria-label": t("aria.previousDays"),
|
|
21425
|
-
children: "
|
|
21734
|
+
children: t("nav.previous")
|
|
21426
21735
|
}
|
|
21427
21736
|
),
|
|
21428
21737
|
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground", children: formatDateRange(visibleDays[0], visibleDays[visibleDays.length - 1]) }),
|
|
@@ -21435,7 +21744,7 @@ function CalendarGrid({
|
|
|
21435
21744
|
onClick: stepNext,
|
|
21436
21745
|
"aria-disabled": !canNext || void 0,
|
|
21437
21746
|
"aria-label": t("aria.nextDays"),
|
|
21438
|
-
children: "
|
|
21747
|
+
children: t("nav.next")
|
|
21439
21748
|
}
|
|
21440
21749
|
)
|
|
21441
21750
|
] }),
|
|
@@ -22985,7 +23294,7 @@ var init_Pagination = __esm({
|
|
|
22985
23294
|
type: "number",
|
|
22986
23295
|
value: jumpToPage,
|
|
22987
23296
|
onChange: (e) => setJumpToPage(e.target.value),
|
|
22988
|
-
placeholder: "
|
|
23297
|
+
placeholder: t("pagination.jumpPlaceholder"),
|
|
22989
23298
|
className: "w-20",
|
|
22990
23299
|
onKeyDown: (e) => {
|
|
22991
23300
|
if (e.key === "Enter") {
|
|
@@ -23123,13 +23432,10 @@ var init_CardGrid = __esm({
|
|
|
23123
23432
|
return children;
|
|
23124
23433
|
}
|
|
23125
23434
|
if (isLoading) {
|
|
23126
|
-
return /* @__PURE__ */ jsx(Box, { className: "col-span-full text-center py-8 text-muted-foreground", children: /* @__PURE__ */ jsx(Typography, { variant: "body", color: "secondary", children: "
|
|
23435
|
+
return /* @__PURE__ */ jsx(Box, { className: "col-span-full text-center py-8 text-muted-foreground", children: /* @__PURE__ */ jsx(Typography, { variant: "body", color: "secondary", children: t("loading.items") }) });
|
|
23127
23436
|
}
|
|
23128
23437
|
if (error) {
|
|
23129
|
-
return /* @__PURE__ */ jsx(Box, { className: "col-span-full text-center py-8 text-error", children: /* @__PURE__ */
|
|
23130
|
-
"Error loading items: ",
|
|
23131
|
-
error.message
|
|
23132
|
-
] }) });
|
|
23438
|
+
return /* @__PURE__ */ jsx(Box, { className: "col-span-full text-center py-8 text-error", children: /* @__PURE__ */ jsx(Typography, { variant: "body", color: "error", children: t("error.loadFailed", { message: error.message }) }) });
|
|
23133
23439
|
}
|
|
23134
23440
|
if (normalizedData.length === 0) {
|
|
23135
23441
|
return /* @__PURE__ */ jsx(Box, { className: "col-span-full text-center py-12 text-muted-foreground", children: /* @__PURE__ */ jsx(Typography, { variant: "body", color: "secondary", children: t("empty.noItems") || "No items found" }) });
|
|
@@ -26995,7 +27301,7 @@ function DataGrid({
|
|
|
26995
27301
|
onChange: () => toggleSelection(id),
|
|
26996
27302
|
onClick: (e) => e.stopPropagation(),
|
|
26997
27303
|
className: "w-4 h-4 mt-1 flex-shrink-0 accent-primary",
|
|
26998
|
-
"aria-label":
|
|
27304
|
+
"aria-label": t("card.selectItem", { item: titleValue !== void 0 ? String(titleValue) : t("card.itemFallback") })
|
|
26999
27305
|
}
|
|
27000
27306
|
),
|
|
27001
27307
|
/* @__PURE__ */ jsxs(VStack, { gap: "xs", className: "flex-1 min-w-0", children: [
|
|
@@ -27193,7 +27499,7 @@ function formatDate3(value) {
|
|
|
27193
27499
|
if (isNaN(d.getTime())) return String(value);
|
|
27194
27500
|
return d.toLocaleDateString(void 0, { year: "numeric", month: "short", day: "numeric" });
|
|
27195
27501
|
}
|
|
27196
|
-
function formatValue2(value, format) {
|
|
27502
|
+
function formatValue2(value, format, boolLabels) {
|
|
27197
27503
|
if (value === void 0 || value === null) return "";
|
|
27198
27504
|
switch (format) {
|
|
27199
27505
|
case "date":
|
|
@@ -27205,7 +27511,7 @@ function formatValue2(value, format) {
|
|
|
27205
27511
|
case "percent":
|
|
27206
27512
|
return typeof value === "number" ? `${Math.round(value)}%` : String(value);
|
|
27207
27513
|
case "boolean":
|
|
27208
|
-
return value ? "Yes" : "No";
|
|
27514
|
+
return value ? boolLabels?.yes ?? "Yes" : boolLabels?.no ?? "No";
|
|
27209
27515
|
default:
|
|
27210
27516
|
return String(value);
|
|
27211
27517
|
}
|
|
@@ -27501,7 +27807,7 @@ function DataList({
|
|
|
27501
27807
|
field.label ?? fieldLabel3(field.name),
|
|
27502
27808
|
":"
|
|
27503
27809
|
] }),
|
|
27504
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", children: formatValue2(value, field.format) })
|
|
27810
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", children: formatValue2(value, field.format, { yes: t("common.yes"), no: t("common.no") }) })
|
|
27505
27811
|
] }, field.name);
|
|
27506
27812
|
}) }),
|
|
27507
27813
|
progressFields.map((field) => {
|
|
@@ -27631,6 +27937,7 @@ var init_FileTree = __esm({
|
|
|
27631
27937
|
init_Box();
|
|
27632
27938
|
init_Typography();
|
|
27633
27939
|
init_Icon();
|
|
27940
|
+
init_useTranslate();
|
|
27634
27941
|
TreeNodeItem = ({
|
|
27635
27942
|
node,
|
|
27636
27943
|
depth,
|
|
@@ -27716,8 +28023,9 @@ var init_FileTree = __esm({
|
|
|
27716
28023
|
className,
|
|
27717
28024
|
indent = 16
|
|
27718
28025
|
}) => {
|
|
28026
|
+
const { t } = useTranslate();
|
|
27719
28027
|
if (tree.length === 0) {
|
|
27720
|
-
return /* @__PURE__ */ jsx(Box, { className: `p-4 ${className ?? ""}`, children: /* @__PURE__ */ jsx(Typography, { variant: "caption", color: "muted", children: "
|
|
28028
|
+
return /* @__PURE__ */ jsx(Box, { className: `p-4 ${className ?? ""}`, children: /* @__PURE__ */ jsx(Typography, { variant: "caption", color: "muted", children: t("fileTree.noFiles") }) });
|
|
27721
28029
|
}
|
|
27722
28030
|
return /* @__PURE__ */ jsx(Box, { className: `py-1 overflow-y-auto ${className ?? ""}`, role: "tree", children: tree.map((node) => /* @__PURE__ */ jsx(
|
|
27723
28031
|
TreeNodeItem,
|
|
@@ -27836,6 +28144,7 @@ var init_FilterGroup = __esm({
|
|
|
27836
28144
|
init_Icon();
|
|
27837
28145
|
init_useEventBus();
|
|
27838
28146
|
init_useQuerySingleton();
|
|
28147
|
+
init_useTranslate();
|
|
27839
28148
|
resolveFilterType = (filter) => filter.filterType ?? filter.type;
|
|
27840
28149
|
lookStyles6 = {
|
|
27841
28150
|
toolbar: "",
|
|
@@ -27856,6 +28165,7 @@ var init_FilterGroup = __esm({
|
|
|
27856
28165
|
isLoading,
|
|
27857
28166
|
look = "toolbar"
|
|
27858
28167
|
}) => {
|
|
28168
|
+
const { t } = useTranslate();
|
|
27859
28169
|
const eventBus = useEventBus();
|
|
27860
28170
|
const queryState = useQuerySingleton(query);
|
|
27861
28171
|
const [selectedValues, setSelectedValues] = useState(
|
|
@@ -27937,7 +28247,7 @@ var init_FilterGroup = __esm({
|
|
|
27937
28247
|
"px-3 py-1.5 text-sm font-medium transition-all duration-[var(--transition-fast)]",
|
|
27938
28248
|
!selectedValues[filter.field] ? "bg-primary text-primary-foreground" : "bg-card text-muted-foreground hover:bg-muted"
|
|
27939
28249
|
),
|
|
27940
|
-
children: "
|
|
28250
|
+
children: t("filterGroup.all")
|
|
27941
28251
|
}
|
|
27942
28252
|
),
|
|
27943
28253
|
filter.options?.map((option) => /* @__PURE__ */ jsx(
|
|
@@ -27965,7 +28275,7 @@ var init_FilterGroup = __esm({
|
|
|
27965
28275
|
size: "sm",
|
|
27966
28276
|
onClick: handleClearAll,
|
|
27967
28277
|
leftIcon: /* @__PURE__ */ jsx(Icon, { name: "x", className: "h-3.5 w-3.5" }),
|
|
27968
|
-
children: "
|
|
28278
|
+
children: t("filterGroup.clear")
|
|
27969
28279
|
}
|
|
27970
28280
|
)
|
|
27971
28281
|
]
|
|
@@ -27976,7 +28286,7 @@ var init_FilterGroup = __esm({
|
|
|
27976
28286
|
return /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col gap-4", lookStyles6[look], className), children: [
|
|
27977
28287
|
showIcon && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-muted-foreground", children: [
|
|
27978
28288
|
/* @__PURE__ */ jsx(Icon, { name: "filter", className: "h-4 w-4" }),
|
|
27979
|
-
/* @__PURE__ */ jsx("span", { className: "text-sm font-bold uppercase tracking-wide", children: "
|
|
28289
|
+
/* @__PURE__ */ jsx("span", { className: "text-sm font-bold uppercase tracking-wide", children: t("filterGroup.filters") })
|
|
27980
28290
|
] }),
|
|
27981
28291
|
filters.map((filter) => /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1", children: [
|
|
27982
28292
|
/* @__PURE__ */ jsx("label", { className: "text-xs font-bold text-muted-foreground uppercase tracking-wide", children: filter.label }),
|
|
@@ -27999,7 +28309,7 @@ var init_FilterGroup = __esm({
|
|
|
27999
28309
|
`${filter.field}_from`,
|
|
28000
28310
|
e.target.value || null
|
|
28001
28311
|
),
|
|
28002
|
-
placeholder: "
|
|
28312
|
+
placeholder: t("filterGroup.from"),
|
|
28003
28313
|
clearable: true,
|
|
28004
28314
|
onClear: () => handleFilterSelect(`${filter.field}_from`, null)
|
|
28005
28315
|
}
|
|
@@ -28013,7 +28323,7 @@ var init_FilterGroup = __esm({
|
|
|
28013
28323
|
`${filter.field}_to`,
|
|
28014
28324
|
e.target.value || null
|
|
28015
28325
|
),
|
|
28016
|
-
placeholder: "
|
|
28326
|
+
placeholder: t("filterGroup.to"),
|
|
28017
28327
|
clearable: true,
|
|
28018
28328
|
onClear: () => handleFilterSelect(`${filter.field}_to`, null)
|
|
28019
28329
|
}
|
|
@@ -28033,7 +28343,7 @@ var init_FilterGroup = __esm({
|
|
|
28033
28343
|
value: selectedValues[filter.field] || "all",
|
|
28034
28344
|
onChange: (e) => handleFilterSelect(filter.field, e.target.value),
|
|
28035
28345
|
options: [
|
|
28036
|
-
{ value: "all", label: "
|
|
28346
|
+
{ value: "all", label: t("filterGroup.all") },
|
|
28037
28347
|
...filter.options?.map((opt) => ({
|
|
28038
28348
|
value: opt,
|
|
28039
28349
|
label: opt
|
|
@@ -28050,7 +28360,7 @@ var init_FilterGroup = __esm({
|
|
|
28050
28360
|
onClick: handleClearAll,
|
|
28051
28361
|
leftIcon: /* @__PURE__ */ jsx(Icon, { name: "x", className: "h-3.5 w-3.5" }),
|
|
28052
28362
|
className: "self-start",
|
|
28053
|
-
children: "
|
|
28363
|
+
children: t("filterGroup.clearAll")
|
|
28054
28364
|
}
|
|
28055
28365
|
)
|
|
28056
28366
|
] });
|
|
@@ -28116,7 +28426,7 @@ var init_FilterGroup = __esm({
|
|
|
28116
28426
|
value: selectedValues[filter.field] || "all",
|
|
28117
28427
|
onChange: (e) => handleFilterSelect(filter.field, e.target.value),
|
|
28118
28428
|
options: [
|
|
28119
|
-
{ value: "all", label:
|
|
28429
|
+
{ value: "all", label: t("filterGroup.allOf", { label: filter.label }) },
|
|
28120
28430
|
...filter.options?.map((opt) => ({
|
|
28121
28431
|
value: opt,
|
|
28122
28432
|
label: opt
|
|
@@ -28145,7 +28455,7 @@ var init_FilterGroup = __esm({
|
|
|
28145
28455
|
field
|
|
28146
28456
|
);
|
|
28147
28457
|
}),
|
|
28148
|
-
/* @__PURE__ */ jsx(Button, { variant: "ghost", size: "sm", onClick: handleClearAll, children: "
|
|
28458
|
+
/* @__PURE__ */ jsx(Button, { variant: "ghost", size: "sm", onClick: handleClearAll, children: t("filterGroup.clearAll") })
|
|
28149
28459
|
] })
|
|
28150
28460
|
]
|
|
28151
28461
|
}
|
|
@@ -28170,7 +28480,7 @@ var init_FilterGroup = __esm({
|
|
|
28170
28480
|
className: "text-muted-foreground",
|
|
28171
28481
|
children: [
|
|
28172
28482
|
/* @__PURE__ */ jsx(Icon, { name: "filter", className: "h-4 w-4" }),
|
|
28173
|
-
/* @__PURE__ */ jsx("span", { className: "text-sm font-bold uppercase tracking-wide", children: "
|
|
28483
|
+
/* @__PURE__ */ jsx("span", { className: "text-sm font-bold uppercase tracking-wide", children: t("filterGroup.filters") })
|
|
28174
28484
|
]
|
|
28175
28485
|
}
|
|
28176
28486
|
),
|
|
@@ -28196,7 +28506,7 @@ var init_FilterGroup = __esm({
|
|
|
28196
28506
|
`${filter.field}_from`,
|
|
28197
28507
|
e.target.value || null
|
|
28198
28508
|
),
|
|
28199
|
-
placeholder: "
|
|
28509
|
+
placeholder: t("filterGroup.from"),
|
|
28200
28510
|
clearable: true,
|
|
28201
28511
|
onClear: () => handleFilterSelect(`${filter.field}_from`, null),
|
|
28202
28512
|
className: "min-w-[130px]"
|
|
@@ -28212,7 +28522,7 @@ var init_FilterGroup = __esm({
|
|
|
28212
28522
|
`${filter.field}_to`,
|
|
28213
28523
|
e.target.value || null
|
|
28214
28524
|
),
|
|
28215
|
-
placeholder: "
|
|
28525
|
+
placeholder: t("filterGroup.to"),
|
|
28216
28526
|
clearable: true,
|
|
28217
28527
|
onClear: () => handleFilterSelect(`${filter.field}_to`, null),
|
|
28218
28528
|
className: "min-w-[130px]"
|
|
@@ -28234,7 +28544,7 @@ var init_FilterGroup = __esm({
|
|
|
28234
28544
|
value: selectedValues[filter.field] || "all",
|
|
28235
28545
|
onChange: (e) => handleFilterSelect(filter.field, e.target.value),
|
|
28236
28546
|
options: [
|
|
28237
|
-
{ value: "all", label: "
|
|
28547
|
+
{ value: "all", label: t("filterGroup.all") },
|
|
28238
28548
|
...filter.options?.map((opt) => ({
|
|
28239
28549
|
value: opt,
|
|
28240
28550
|
label: opt
|
|
@@ -28245,10 +28555,7 @@ var init_FilterGroup = __esm({
|
|
|
28245
28555
|
)
|
|
28246
28556
|
] }, filter.field)),
|
|
28247
28557
|
activeFilterCount > 0 && /* @__PURE__ */ jsxs(HStack, { gap: "sm", align: "center", className: "ml-auto", children: [
|
|
28248
|
-
/* @__PURE__ */
|
|
28249
|
-
activeFilterCount,
|
|
28250
|
-
" active"
|
|
28251
|
-
] }),
|
|
28558
|
+
/* @__PURE__ */ jsx(Badge, { variant: "primary", size: "md", children: t("filterGroup.activeCount", { count: activeFilterCount }) }),
|
|
28252
28559
|
/* @__PURE__ */ jsx(
|
|
28253
28560
|
Button,
|
|
28254
28561
|
{
|
|
@@ -28256,7 +28563,7 @@ var init_FilterGroup = __esm({
|
|
|
28256
28563
|
size: "sm",
|
|
28257
28564
|
onClick: handleClearAll,
|
|
28258
28565
|
leftIcon: /* @__PURE__ */ jsx(Icon, { name: "x", className: "h-3.5 w-3.5" }),
|
|
28259
|
-
children: "
|
|
28566
|
+
children: t("filterGroup.clearAll")
|
|
28260
28567
|
}
|
|
28261
28568
|
)
|
|
28262
28569
|
] })
|
|
@@ -29200,19 +29507,20 @@ var init_RepeatableFormSection = __esm({
|
|
|
29200
29507
|
RepeatableFormSection.displayName = "RepeatableFormSection";
|
|
29201
29508
|
}
|
|
29202
29509
|
});
|
|
29203
|
-
var
|
|
29510
|
+
var actionTypeLabelKeys, actionTypeIcons, ViolationAlert;
|
|
29204
29511
|
var init_ViolationAlert = __esm({
|
|
29205
29512
|
"components/core/molecules/ViolationAlert.tsx"() {
|
|
29206
29513
|
init_cn();
|
|
29514
|
+
init_useTranslate();
|
|
29207
29515
|
init_Box();
|
|
29208
29516
|
init_Stack();
|
|
29209
29517
|
init_Typography();
|
|
29210
29518
|
init_Button();
|
|
29211
29519
|
init_Icon();
|
|
29212
|
-
|
|
29213
|
-
measure: "
|
|
29214
|
-
admin: "
|
|
29215
|
-
penalty: "
|
|
29520
|
+
actionTypeLabelKeys = {
|
|
29521
|
+
measure: "violationAlert.actionType.measure",
|
|
29522
|
+
admin: "violationAlert.actionType.admin",
|
|
29523
|
+
penalty: "violationAlert.actionType.penalty"
|
|
29216
29524
|
};
|
|
29217
29525
|
actionTypeIcons = {
|
|
29218
29526
|
measure: "alert-triangle",
|
|
@@ -29229,10 +29537,11 @@ var init_ViolationAlert = __esm({
|
|
|
29229
29537
|
className,
|
|
29230
29538
|
...flatProps
|
|
29231
29539
|
}) => {
|
|
29540
|
+
const { t } = useTranslate();
|
|
29232
29541
|
const resolvedViolation = violation ?? {
|
|
29233
29542
|
law: "",
|
|
29234
29543
|
article: "",
|
|
29235
|
-
message: flatProps.message ?? "
|
|
29544
|
+
message: flatProps.message ?? t("violationAlert.fallbackMessage"),
|
|
29236
29545
|
actionType: "measure"
|
|
29237
29546
|
};
|
|
29238
29547
|
const effectiveSeverity = severity ?? (resolvedViolation.actionType === "measure" ? "warning" : "error");
|
|
@@ -29317,7 +29626,7 @@ var init_ViolationAlert = __esm({
|
|
|
29317
29626
|
{
|
|
29318
29627
|
variant: "caption",
|
|
29319
29628
|
className: cn(textColor, "opacity-75"),
|
|
29320
|
-
children:
|
|
29629
|
+
children: t(actionTypeLabelKeys[resolvedViolation.actionType])
|
|
29321
29630
|
}
|
|
29322
29631
|
)
|
|
29323
29632
|
] })
|
|
@@ -29348,7 +29657,7 @@ var init_ViolationAlert = __esm({
|
|
|
29348
29657
|
{
|
|
29349
29658
|
variant: "caption",
|
|
29350
29659
|
className: cn(textColor, "opacity-75"),
|
|
29351
|
-
children: "
|
|
29660
|
+
children: t("violationAlert.adminLabel")
|
|
29352
29661
|
}
|
|
29353
29662
|
),
|
|
29354
29663
|
/* @__PURE__ */ jsx(
|
|
@@ -29367,7 +29676,7 @@ var init_ViolationAlert = __esm({
|
|
|
29367
29676
|
{
|
|
29368
29677
|
variant: "caption",
|
|
29369
29678
|
className: cn(textColor, "opacity-75"),
|
|
29370
|
-
children: "
|
|
29679
|
+
children: t("violationAlert.penaltyLabel")
|
|
29371
29680
|
}
|
|
29372
29681
|
),
|
|
29373
29682
|
/* @__PURE__ */ jsx(
|
|
@@ -29392,7 +29701,7 @@ var init_ViolationAlert = __esm({
|
|
|
29392
29701
|
className: cn(textColor, "self-start"),
|
|
29393
29702
|
children: [
|
|
29394
29703
|
/* @__PURE__ */ jsx(Icon, { name: "arrow-right", size: "sm", className: "mr-1" }),
|
|
29395
|
-
"
|
|
29704
|
+
t("violationAlert.goToField")
|
|
29396
29705
|
]
|
|
29397
29706
|
}
|
|
29398
29707
|
)
|
|
@@ -29708,6 +30017,7 @@ var init_LineChart = __esm({
|
|
|
29708
30017
|
"use client";
|
|
29709
30018
|
init_cn();
|
|
29710
30019
|
init_atoms2();
|
|
30020
|
+
init_useTranslate();
|
|
29711
30021
|
LineChart2 = ({
|
|
29712
30022
|
data,
|
|
29713
30023
|
width = 400,
|
|
@@ -29719,6 +30029,7 @@ var init_LineChart = __esm({
|
|
|
29719
30029
|
areaColor = "var(--color-primary)",
|
|
29720
30030
|
className
|
|
29721
30031
|
}) => {
|
|
30032
|
+
const { t } = useTranslate();
|
|
29722
30033
|
const gradientId = useId();
|
|
29723
30034
|
const safeData = data ?? [];
|
|
29724
30035
|
const sortedData = useMemo(() => {
|
|
@@ -29755,7 +30066,7 @@ var init_LineChart = __esm({
|
|
|
29755
30066
|
return `${linePath} L ${last.x} ${bottom} L ${first.x} ${bottom} Z`;
|
|
29756
30067
|
}, [linePath, points, height, showArea]);
|
|
29757
30068
|
if (safeData.length === 0) {
|
|
29758
|
-
return /* @__PURE__ */ jsx(Box, { className: cn("flex items-center justify-center text-muted-foreground", className), style: { width, height }, children: "
|
|
30069
|
+
return /* @__PURE__ */ jsx(Box, { className: cn("flex items-center justify-center text-muted-foreground", className), style: { width, height }, children: t("empty.noData") });
|
|
29759
30070
|
}
|
|
29760
30071
|
return /* @__PURE__ */ jsx(Box, { className: cn(className), children: /* @__PURE__ */ jsxs(
|
|
29761
30072
|
"svg",
|
|
@@ -31662,6 +31973,7 @@ var init_GraphView = __esm({
|
|
|
31662
31973
|
"use client";
|
|
31663
31974
|
init_cn();
|
|
31664
31975
|
init_atoms2();
|
|
31976
|
+
init_useTranslate();
|
|
31665
31977
|
GROUP_COLORS = [
|
|
31666
31978
|
"#3b82f6",
|
|
31667
31979
|
// blue-500
|
|
@@ -31694,6 +32006,7 @@ var init_GraphView = __esm({
|
|
|
31694
32006
|
showLabels = true,
|
|
31695
32007
|
zoomToFit = true
|
|
31696
32008
|
}) => {
|
|
32009
|
+
const { t } = useTranslate();
|
|
31697
32010
|
const containerRef = useRef(null);
|
|
31698
32011
|
const animRef = useRef(0);
|
|
31699
32012
|
const [simNodes, setSimNodes] = useState([]);
|
|
@@ -31871,7 +32184,7 @@ var init_GraphView = __esm({
|
|
|
31871
32184
|
[onNodeClick]
|
|
31872
32185
|
);
|
|
31873
32186
|
if (nodes.length === 0) {
|
|
31874
|
-
return /* @__PURE__ */ jsx(Box, { className: cn("flex items-center justify-center", className), style: { width: w, height: h }, children: /* @__PURE__ */ jsx(Box, { className: "text-muted-foreground text-sm", children: "
|
|
32187
|
+
return /* @__PURE__ */ jsx(Box, { className: cn("flex items-center justify-center", className), style: { width: w, height: h }, children: /* @__PURE__ */ jsx(Box, { className: "text-muted-foreground text-sm", children: t("display.noGraphData") }) });
|
|
31875
32188
|
}
|
|
31876
32189
|
return /* @__PURE__ */ jsx(
|
|
31877
32190
|
Box,
|
|
@@ -32327,11 +32640,12 @@ var init_UploadDropZone = __esm({
|
|
|
32327
32640
|
init_Icon();
|
|
32328
32641
|
init_Typography();
|
|
32329
32642
|
init_useEventBus();
|
|
32643
|
+
init_useTranslate();
|
|
32330
32644
|
UploadDropZone = ({
|
|
32331
32645
|
accept,
|
|
32332
32646
|
maxSize,
|
|
32333
32647
|
maxFiles = 1,
|
|
32334
|
-
label
|
|
32648
|
+
label,
|
|
32335
32649
|
description,
|
|
32336
32650
|
disabled = false,
|
|
32337
32651
|
action,
|
|
@@ -32339,22 +32653,24 @@ var init_UploadDropZone = __esm({
|
|
|
32339
32653
|
onFiles,
|
|
32340
32654
|
className
|
|
32341
32655
|
}) => {
|
|
32656
|
+
const { t } = useTranslate();
|
|
32657
|
+
const resolvedLabel = label ?? t("upload.dropOrBrowse");
|
|
32342
32658
|
const [isDragOver, setIsDragOver] = useState(false);
|
|
32343
32659
|
const [error, setError] = useState(null);
|
|
32344
32660
|
const inputRef = useRef(null);
|
|
32345
32661
|
const eventBus = useSafeEventBus7();
|
|
32346
32662
|
const defaultDescription = [
|
|
32347
|
-
accept ?
|
|
32348
|
-
maxSize ?
|
|
32349
|
-
maxFiles > 1 ?
|
|
32663
|
+
accept ? t("upload.accepted", { accept }) : null,
|
|
32664
|
+
maxSize ? t("upload.maxSize", { size: formatFileSize(maxSize) }) : null,
|
|
32665
|
+
maxFiles > 1 ? t("upload.maxFiles", { count: maxFiles }) : null
|
|
32350
32666
|
].filter(Boolean).join(". ");
|
|
32351
32667
|
const validateFiles = useCallback(
|
|
32352
32668
|
(files) => {
|
|
32353
32669
|
if (files.length > maxFiles) {
|
|
32354
|
-
return { valid: [], error:
|
|
32670
|
+
return { valid: [], error: t("upload.error.maxFiles", { count: maxFiles }) };
|
|
32355
32671
|
}
|
|
32356
32672
|
if (accept) {
|
|
32357
|
-
const acceptedTypes = accept.split(",").map((
|
|
32673
|
+
const acceptedTypes = accept.split(",").map((s) => s.trim());
|
|
32358
32674
|
const invalid = files.filter((file) => {
|
|
32359
32675
|
return !acceptedTypes.some((type) => {
|
|
32360
32676
|
if (type.endsWith("/*")) {
|
|
@@ -32364,7 +32680,7 @@ var init_UploadDropZone = __esm({
|
|
|
32364
32680
|
});
|
|
32365
32681
|
});
|
|
32366
32682
|
if (invalid.length > 0) {
|
|
32367
|
-
return { valid: [], error:
|
|
32683
|
+
return { valid: [], error: t("upload.error.invalidType", { name: invalid[0].name }) };
|
|
32368
32684
|
}
|
|
32369
32685
|
}
|
|
32370
32686
|
if (maxSize) {
|
|
@@ -32372,13 +32688,13 @@ var init_UploadDropZone = __esm({
|
|
|
32372
32688
|
if (tooLarge.length > 0) {
|
|
32373
32689
|
return {
|
|
32374
32690
|
valid: [],
|
|
32375
|
-
error:
|
|
32691
|
+
error: t("upload.error.tooLarge", { name: tooLarge[0].name, size: formatFileSize(maxSize) })
|
|
32376
32692
|
};
|
|
32377
32693
|
}
|
|
32378
32694
|
}
|
|
32379
32695
|
return { valid: files, error: null };
|
|
32380
32696
|
},
|
|
32381
|
-
[accept, maxSize, maxFiles]
|
|
32697
|
+
[accept, maxSize, maxFiles, t]
|
|
32382
32698
|
);
|
|
32383
32699
|
const handleFiles = useCallback(
|
|
32384
32700
|
(files) => {
|
|
@@ -32449,7 +32765,7 @@ var init_UploadDropZone = __esm({
|
|
|
32449
32765
|
handleClick();
|
|
32450
32766
|
}
|
|
32451
32767
|
},
|
|
32452
|
-
"aria-label":
|
|
32768
|
+
"aria-label": resolvedLabel,
|
|
32453
32769
|
children: [
|
|
32454
32770
|
/* @__PURE__ */ jsx(
|
|
32455
32771
|
"input",
|
|
@@ -32465,7 +32781,7 @@ var init_UploadDropZone = __esm({
|
|
|
32465
32781
|
}
|
|
32466
32782
|
),
|
|
32467
32783
|
error ? /* @__PURE__ */ jsx(Icon, { name: "file-warning", size: "lg", className: "text-error mb-2" }) : /* @__PURE__ */ jsx(Icon, { name: "upload", size: "lg", className: "text-muted-foreground mb-2" }),
|
|
32468
|
-
/* @__PURE__ */ jsx(Typography, { variant: "body1", className: "text-center font-medium mb-1", children: isDragOver ? "
|
|
32784
|
+
/* @__PURE__ */ jsx(Typography, { variant: "body1", className: "text-center font-medium mb-1", children: isDragOver ? t("upload.dropFilesHere") : resolvedLabel }),
|
|
32469
32785
|
error ? /* @__PURE__ */ jsx(Typography, { variant: "caption", color: "error", className: "text-center", children: error }) : /* @__PURE__ */ jsx(Typography, { variant: "caption", color: "muted", className: "text-center", children: description ?? defaultDescription })
|
|
32470
32786
|
]
|
|
32471
32787
|
}
|
|
@@ -32887,7 +33203,7 @@ function TableView({
|
|
|
32887
33203
|
{
|
|
32888
33204
|
checked: selected.has(id),
|
|
32889
33205
|
onChange: () => toggleRow(id),
|
|
32890
|
-
"aria-label":
|
|
33206
|
+
"aria-label": t("table.selectRow", { id })
|
|
32891
33207
|
}
|
|
32892
33208
|
) }),
|
|
32893
33209
|
hasRenderProp ? /* @__PURE__ */ jsx(Box, { className: "flex-1 min-w-0", children: children(row, index) }) : colDefs.map((col) => {
|
|
@@ -35734,7 +36050,7 @@ var init_QrScanner = __esm({
|
|
|
35734
36050
|
className: "inset-0 flex-col items-center justify-center gap-2 bg-black bg-opacity-80 text-center",
|
|
35735
36051
|
children: [
|
|
35736
36052
|
/* @__PURE__ */ jsx(Icon, { name: "camera", className: "h-8 w-8 text-white", "aria-hidden": "true" }),
|
|
35737
|
-
/* @__PURE__ */ jsx(Typography, { variant: "body2", className: "text-white", children: "
|
|
36053
|
+
/* @__PURE__ */ jsx(Typography, { variant: "body2", className: "text-white", children: t("qrScanner.cameraUnavailable") }),
|
|
35738
36054
|
/* @__PURE__ */ jsx(Typography, { variant: "caption", className: "text-white opacity-70", children: cameraError.message })
|
|
35739
36055
|
]
|
|
35740
36056
|
}
|
|
@@ -35745,7 +36061,7 @@ var init_QrScanner = __esm({
|
|
|
35745
36061
|
position: "absolute",
|
|
35746
36062
|
display: "flex",
|
|
35747
36063
|
className: "inset-0 items-center justify-center bg-black bg-opacity-60",
|
|
35748
|
-
children: /* @__PURE__ */ jsx(Typography, { variant: "body2", className: "text-white", children: "
|
|
36064
|
+
children: /* @__PURE__ */ jsx(Typography, { variant: "body2", className: "text-white", children: t("qrScanner.paused") })
|
|
35749
36065
|
}
|
|
35750
36066
|
),
|
|
35751
36067
|
showCameraControls && /* @__PURE__ */ jsxs(
|
|
@@ -35764,7 +36080,7 @@ var init_QrScanner = __esm({
|
|
|
35764
36080
|
"rounded-full bg-black bg-opacity-60 p-2 text-white",
|
|
35765
36081
|
"hover:bg-opacity-80 focus:outline-none focus:ring-2 focus:ring-white"
|
|
35766
36082
|
),
|
|
35767
|
-
"aria-label": isPaused ? "
|
|
36083
|
+
"aria-label": isPaused ? t("qrScanner.resumeScanning") : t("qrScanner.pauseScanning"),
|
|
35768
36084
|
children: isPaused ? /* @__PURE__ */ jsx(Icon, { name: "play", className: "h-4 w-4" }) : /* @__PURE__ */ jsx(Icon, { name: "pause", className: "h-4 w-4" })
|
|
35769
36085
|
}
|
|
35770
36086
|
),
|
|
@@ -35777,7 +36093,7 @@ var init_QrScanner = __esm({
|
|
|
35777
36093
|
"rounded-full bg-black bg-opacity-60 p-2 text-white",
|
|
35778
36094
|
"hover:bg-opacity-80 focus:outline-none focus:ring-2 focus:ring-white"
|
|
35779
36095
|
),
|
|
35780
|
-
"aria-label":
|
|
36096
|
+
"aria-label": currentFacing === "environment" ? t("qrScanner.switchToFrontCamera") : t("qrScanner.switchToRearCamera"),
|
|
35781
36097
|
children: /* @__PURE__ */ jsx(Icon, { name: "refresh-cw", className: "h-4 w-4" })
|
|
35782
36098
|
}
|
|
35783
36099
|
),
|
|
@@ -35791,7 +36107,7 @@ var init_QrScanner = __esm({
|
|
|
35791
36107
|
"hover:bg-opacity-80 focus:outline-none focus:ring-2 focus:ring-white"
|
|
35792
36108
|
),
|
|
35793
36109
|
"aria-label": t("aria.mockScanDev"),
|
|
35794
|
-
children: "
|
|
36110
|
+
children: t("qrScanner.mockScan")
|
|
35795
36111
|
}
|
|
35796
36112
|
)
|
|
35797
36113
|
]
|
|
@@ -35809,6 +36125,7 @@ var init_OptionConstraintGroup = __esm({
|
|
|
35809
36125
|
"components/core/molecules/OptionConstraintGroup.tsx"() {
|
|
35810
36126
|
init_cn();
|
|
35811
36127
|
init_useEventBus();
|
|
36128
|
+
init_useTranslate();
|
|
35812
36129
|
init_Typography();
|
|
35813
36130
|
init_Box();
|
|
35814
36131
|
init_Label();
|
|
@@ -35818,36 +36135,36 @@ var init_OptionConstraintGroup = __esm({
|
|
|
35818
36135
|
const sign = delta >= 0 ? "+" : "-";
|
|
35819
36136
|
return `${sign}$${Math.abs(delta).toFixed(2)}`;
|
|
35820
36137
|
};
|
|
35821
|
-
constraintHint = (constraint) => {
|
|
36138
|
+
constraintHint = (constraint, t) => {
|
|
35822
36139
|
if (constraint.type === "single") {
|
|
35823
|
-
return constraint.required ? "
|
|
36140
|
+
return constraint.required ? t("optionConstraint.requiredOne") : t("optionConstraint.optionalOne");
|
|
35824
36141
|
}
|
|
35825
36142
|
const { min, max } = constraint;
|
|
35826
36143
|
if (min && max) {
|
|
35827
|
-
return min === max ?
|
|
36144
|
+
return min === max ? t("optionConstraint.pickExactly", { count: min }) : t("optionConstraint.pickRange", { min, max });
|
|
35828
36145
|
}
|
|
35829
|
-
if (min) return
|
|
35830
|
-
if (max) return
|
|
35831
|
-
return "
|
|
36146
|
+
if (min) return t("optionConstraint.pickAtLeast", { count: min });
|
|
36147
|
+
if (max) return t("optionConstraint.pickUpTo", { count: max });
|
|
36148
|
+
return t("optionConstraint.optional");
|
|
35832
36149
|
};
|
|
35833
|
-
validateSelection = (selected, constraint) => {
|
|
36150
|
+
validateSelection = (selected, constraint, t) => {
|
|
35834
36151
|
if (constraint.type === "single") {
|
|
35835
36152
|
if (constraint.required && selected.length === 0) {
|
|
35836
|
-
return "
|
|
36153
|
+
return t("optionConstraint.error.pickOne");
|
|
35837
36154
|
}
|
|
35838
36155
|
if (selected.length > 1) {
|
|
35839
|
-
return "
|
|
36156
|
+
return t("optionConstraint.error.pickOnlyOne");
|
|
35840
36157
|
}
|
|
35841
36158
|
return void 0;
|
|
35842
36159
|
}
|
|
35843
36160
|
const { min, max } = constraint;
|
|
35844
36161
|
if (min !== void 0 && selected.length < min) {
|
|
35845
36162
|
const remaining = min - selected.length;
|
|
35846
|
-
return
|
|
36163
|
+
return t("optionConstraint.error.pickMore", { count: remaining });
|
|
35847
36164
|
}
|
|
35848
36165
|
if (max !== void 0 && selected.length > max) {
|
|
35849
36166
|
const excess = selected.length - max;
|
|
35850
|
-
return
|
|
36167
|
+
return t("optionConstraint.error.removeOptions", { count: excess });
|
|
35851
36168
|
}
|
|
35852
36169
|
return void 0;
|
|
35853
36170
|
};
|
|
@@ -35864,8 +36181,9 @@ var init_OptionConstraintGroup = __esm({
|
|
|
35864
36181
|
className
|
|
35865
36182
|
}) => {
|
|
35866
36183
|
const eventBus = useEventBus();
|
|
35867
|
-
const
|
|
35868
|
-
const
|
|
36184
|
+
const { t } = useTranslate();
|
|
36185
|
+
const hint = constraintHint(constraint, t);
|
|
36186
|
+
const error = validateSelection(selected, constraint, t);
|
|
35869
36187
|
const inputName = `option-${groupId}`;
|
|
35870
36188
|
const labelTextSize = size === "sm" ? "text-sm" : "text-base";
|
|
35871
36189
|
const optionGap = size === "sm" ? "gap-2" : "gap-2.5";
|
|
@@ -35965,7 +36283,7 @@ var init_OptionConstraintGroup = __esm({
|
|
|
35965
36283
|
variant: "caption",
|
|
35966
36284
|
color: "warning",
|
|
35967
36285
|
className: "rounded border border-warning/40 px-1.5 py-0.5",
|
|
35968
|
-
children: "
|
|
36286
|
+
children: t("optionConstraint.outOfStock")
|
|
35969
36287
|
}
|
|
35970
36288
|
)
|
|
35971
36289
|
]
|
|
@@ -36287,6 +36605,7 @@ function changeBlockType(block, type) {
|
|
|
36287
36605
|
return { id: block.id, type, content: seed };
|
|
36288
36606
|
}
|
|
36289
36607
|
function BlockMenu({ block, readOnly, onDelete, onDuplicate, onChangeType }) {
|
|
36608
|
+
const { t } = useTranslate();
|
|
36290
36609
|
const [open, setOpen] = useState(false);
|
|
36291
36610
|
const ref = useRef(null);
|
|
36292
36611
|
useEffect(() => {
|
|
@@ -36306,7 +36625,7 @@ function BlockMenu({ block, readOnly, onDelete, onDuplicate, onChangeType }) {
|
|
|
36306
36625
|
{
|
|
36307
36626
|
type: "button",
|
|
36308
36627
|
variant: "ghost",
|
|
36309
|
-
"aria-label": "
|
|
36628
|
+
"aria-label": t("richBlockEditor.blockActions"),
|
|
36310
36629
|
className: cn(
|
|
36311
36630
|
"inline-flex items-center justify-center",
|
|
36312
36631
|
"h-6 w-6 rounded-sm p-0 gap-0",
|
|
@@ -36328,7 +36647,7 @@ function BlockMenu({ block, readOnly, onDelete, onDuplicate, onChangeType }) {
|
|
|
36328
36647
|
"py-1 text-sm"
|
|
36329
36648
|
),
|
|
36330
36649
|
children: [
|
|
36331
|
-
/* @__PURE__ */ jsx(Box, { className: "px-2 py-1 text-xs uppercase tracking-wide text-muted-foreground", children:
|
|
36650
|
+
/* @__PURE__ */ jsx(Box, { className: "px-2 py-1 text-xs uppercase tracking-wide text-muted-foreground", children: t(BLOCK_TYPE_LABEL_KEY[block.type]) }),
|
|
36332
36651
|
/* @__PURE__ */ jsxs(
|
|
36333
36652
|
Button,
|
|
36334
36653
|
{
|
|
@@ -36342,7 +36661,8 @@ function BlockMenu({ block, readOnly, onDelete, onDuplicate, onChangeType }) {
|
|
|
36342
36661
|
},
|
|
36343
36662
|
children: [
|
|
36344
36663
|
/* @__PURE__ */ jsx(Icon, { name: "plus", className: "w-3.5 h-3.5" }),
|
|
36345
|
-
"
|
|
36664
|
+
" ",
|
|
36665
|
+
t("richBlockEditor.duplicate")
|
|
36346
36666
|
]
|
|
36347
36667
|
}
|
|
36348
36668
|
),
|
|
@@ -36359,14 +36679,15 @@ function BlockMenu({ block, readOnly, onDelete, onDuplicate, onChangeType }) {
|
|
|
36359
36679
|
},
|
|
36360
36680
|
children: [
|
|
36361
36681
|
/* @__PURE__ */ jsx(Icon, { name: "trash", className: "w-3.5 h-3.5" }),
|
|
36362
|
-
"
|
|
36682
|
+
" ",
|
|
36683
|
+
t("common.delete")
|
|
36363
36684
|
]
|
|
36364
36685
|
}
|
|
36365
36686
|
),
|
|
36366
36687
|
CHANGEABLE_TYPES.includes(block.type) && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
36367
36688
|
/* @__PURE__ */ jsx(Box, { className: "my-1 border-t border-border" }),
|
|
36368
|
-
/* @__PURE__ */ jsx(Box, { className: "px-2 py-1 text-xs uppercase tracking-wide text-muted-foreground", children: "
|
|
36369
|
-
CHANGEABLE_TYPES.filter((
|
|
36689
|
+
/* @__PURE__ */ jsx(Box, { className: "px-2 py-1 text-xs uppercase tracking-wide text-muted-foreground", children: t("richBlockEditor.turnInto") }),
|
|
36690
|
+
CHANGEABLE_TYPES.filter((bt) => bt !== block.type).map((bt) => /* @__PURE__ */ jsx(
|
|
36370
36691
|
Button,
|
|
36371
36692
|
{
|
|
36372
36693
|
type: "button",
|
|
@@ -36374,12 +36695,12 @@ function BlockMenu({ block, readOnly, onDelete, onDuplicate, onChangeType }) {
|
|
|
36374
36695
|
role: "menuitem",
|
|
36375
36696
|
className: "flex w-full items-center gap-2 px-2 py-1.5 text-left justify-start rounded-none",
|
|
36376
36697
|
onClick: () => {
|
|
36377
|
-
onChangeType(
|
|
36698
|
+
onChangeType(bt);
|
|
36378
36699
|
setOpen(false);
|
|
36379
36700
|
},
|
|
36380
|
-
children:
|
|
36701
|
+
children: t(BLOCK_TYPE_LABEL_KEY[bt])
|
|
36381
36702
|
},
|
|
36382
|
-
|
|
36703
|
+
bt
|
|
36383
36704
|
))
|
|
36384
36705
|
] })
|
|
36385
36706
|
]
|
|
@@ -36441,6 +36762,7 @@ function BlockRow({
|
|
|
36441
36762
|
onInsertAfter,
|
|
36442
36763
|
onChangeType
|
|
36443
36764
|
}) {
|
|
36765
|
+
const { t } = useTranslate();
|
|
36444
36766
|
const setContent = useCallback(
|
|
36445
36767
|
(next) => onUpdate((b) => ({ ...b, content: next })),
|
|
36446
36768
|
[onUpdate]
|
|
@@ -36490,8 +36812,8 @@ function BlockRow({
|
|
|
36490
36812
|
tag: "h1",
|
|
36491
36813
|
value: block.content ?? "",
|
|
36492
36814
|
readOnly,
|
|
36493
|
-
placeholder: placeholder ?? "
|
|
36494
|
-
ariaLabel: "
|
|
36815
|
+
placeholder: placeholder ?? t("richBlockEditor.placeholder.heading1"),
|
|
36816
|
+
ariaLabel: t("richBlockEditor.aria.heading1Block"),
|
|
36495
36817
|
className: "text-3xl font-bold leading-tight",
|
|
36496
36818
|
onValueChange: setContent
|
|
36497
36819
|
}
|
|
@@ -36503,8 +36825,8 @@ function BlockRow({
|
|
|
36503
36825
|
tag: "h2",
|
|
36504
36826
|
value: block.content ?? "",
|
|
36505
36827
|
readOnly,
|
|
36506
|
-
placeholder: placeholder ?? "
|
|
36507
|
-
ariaLabel: "
|
|
36828
|
+
placeholder: placeholder ?? t("richBlockEditor.placeholder.heading2"),
|
|
36829
|
+
ariaLabel: t("richBlockEditor.aria.heading2Block"),
|
|
36508
36830
|
className: "text-2xl font-semibold leading-tight",
|
|
36509
36831
|
onValueChange: setContent
|
|
36510
36832
|
}
|
|
@@ -36516,8 +36838,8 @@ function BlockRow({
|
|
|
36516
36838
|
tag: "h3",
|
|
36517
36839
|
value: block.content ?? "",
|
|
36518
36840
|
readOnly,
|
|
36519
|
-
placeholder: placeholder ?? "
|
|
36520
|
-
ariaLabel: "
|
|
36841
|
+
placeholder: placeholder ?? t("richBlockEditor.placeholder.heading3"),
|
|
36842
|
+
ariaLabel: t("richBlockEditor.aria.heading3Block"),
|
|
36521
36843
|
className: "text-xl font-semibold leading-tight",
|
|
36522
36844
|
onValueChange: setContent
|
|
36523
36845
|
}
|
|
@@ -36529,8 +36851,8 @@ function BlockRow({
|
|
|
36529
36851
|
tag: "blockquote",
|
|
36530
36852
|
value: block.content ?? "",
|
|
36531
36853
|
readOnly,
|
|
36532
|
-
placeholder: placeholder ?? "
|
|
36533
|
-
ariaLabel: "
|
|
36854
|
+
placeholder: placeholder ?? t("richBlockEditor.placeholder.quote"),
|
|
36855
|
+
ariaLabel: t("richBlockEditor.aria.quoteBlock"),
|
|
36534
36856
|
className: "border-l-4 border-primary/60 pl-4 italic text-muted-foreground",
|
|
36535
36857
|
onValueChange: setContent
|
|
36536
36858
|
}
|
|
@@ -36538,13 +36860,13 @@ function BlockRow({
|
|
|
36538
36860
|
case "code":
|
|
36539
36861
|
return /* @__PURE__ */ jsxs(Box, { className: "rounded-md border border-border bg-muted/40", children: [
|
|
36540
36862
|
/* @__PURE__ */ jsxs(Box, { className: "flex items-center justify-between border-b border-border px-3 py-1 text-xs text-muted-foreground", children: [
|
|
36541
|
-
/* @__PURE__ */ jsx(Typography, { as: "span", variant: "caption", className: "uppercase tracking-wide", children: "
|
|
36863
|
+
/* @__PURE__ */ jsx(Typography, { as: "span", variant: "caption", className: "uppercase tracking-wide", children: t("richBlockEditor.blockType.code") }),
|
|
36542
36864
|
!readOnly && /* @__PURE__ */ jsx(
|
|
36543
36865
|
Input,
|
|
36544
36866
|
{
|
|
36545
36867
|
inputType: "text",
|
|
36546
36868
|
value: String(block.metadata?.language ?? "plaintext"),
|
|
36547
|
-
"aria-label": "
|
|
36869
|
+
"aria-label": t("richBlockEditor.aria.codeLanguage"),
|
|
36548
36870
|
className: cn(
|
|
36549
36871
|
"h-6 w-32 rounded-sm border border-border bg-background",
|
|
36550
36872
|
"px-2 text-xs outline-none focus:ring-1 focus:ring-ring"
|
|
@@ -36560,8 +36882,8 @@ function BlockRow({
|
|
|
36560
36882
|
tag: "pre",
|
|
36561
36883
|
value: block.content ?? "",
|
|
36562
36884
|
readOnly,
|
|
36563
|
-
placeholder: placeholder ?? "
|
|
36564
|
-
ariaLabel: "
|
|
36885
|
+
placeholder: placeholder ?? t("richBlockEditor.placeholder.code"),
|
|
36886
|
+
ariaLabel: t("richBlockEditor.aria.codeBlock"),
|
|
36565
36887
|
className: "block whitespace-pre-wrap p-3 font-mono text-sm leading-relaxed",
|
|
36566
36888
|
onValueChange: setContent
|
|
36567
36889
|
}
|
|
@@ -36574,7 +36896,7 @@ function BlockRow({
|
|
|
36574
36896
|
const caption = String(block.metadata?.caption ?? "");
|
|
36575
36897
|
const imgProps = {
|
|
36576
36898
|
src: url,
|
|
36577
|
-
alt: caption || "
|
|
36899
|
+
alt: caption || t("richBlockEditor.embeddedImage"),
|
|
36578
36900
|
className: "max-h-96 w-full rounded-md border border-border object-contain"
|
|
36579
36901
|
};
|
|
36580
36902
|
return /* @__PURE__ */ jsxs(Box, { className: "space-y-2", children: [
|
|
@@ -36588,7 +36910,8 @@ function BlockRow({
|
|
|
36588
36910
|
),
|
|
36589
36911
|
children: [
|
|
36590
36912
|
/* @__PURE__ */ jsx(Icon, { name: "image", className: "mr-2 w-4 h-4" }),
|
|
36591
|
-
"
|
|
36913
|
+
" ",
|
|
36914
|
+
t("richBlockEditor.noImageUrl")
|
|
36592
36915
|
]
|
|
36593
36916
|
}
|
|
36594
36917
|
),
|
|
@@ -36599,7 +36922,7 @@ function BlockRow({
|
|
|
36599
36922
|
inputType: "url",
|
|
36600
36923
|
value: url,
|
|
36601
36924
|
placeholder: "https://example.com/image.png",
|
|
36602
|
-
"aria-label": "
|
|
36925
|
+
"aria-label": t("richBlockEditor.aria.imageUrl"),
|
|
36603
36926
|
className: cn(
|
|
36604
36927
|
"h-8 flex-1 rounded-sm border border-border bg-background",
|
|
36605
36928
|
"px-2 text-sm outline-none focus:ring-1 focus:ring-ring"
|
|
@@ -36612,8 +36935,8 @@ function BlockRow({
|
|
|
36612
36935
|
{
|
|
36613
36936
|
inputType: "text",
|
|
36614
36937
|
value: caption,
|
|
36615
|
-
placeholder: "
|
|
36616
|
-
"aria-label": "
|
|
36938
|
+
placeholder: t("richBlockEditor.placeholder.caption"),
|
|
36939
|
+
"aria-label": t("richBlockEditor.aria.imageCaption"),
|
|
36617
36940
|
className: cn(
|
|
36618
36941
|
"h-8 flex-1 rounded-sm border border-border bg-background",
|
|
36619
36942
|
"px-2 text-sm outline-none focus:ring-1 focus:ring-ring"
|
|
@@ -36644,8 +36967,8 @@ function BlockRow({
|
|
|
36644
36967
|
tag: "span",
|
|
36645
36968
|
value: child.content ?? "",
|
|
36646
36969
|
readOnly,
|
|
36647
|
-
placeholder: "
|
|
36648
|
-
ariaLabel: "
|
|
36970
|
+
placeholder: t("richBlockEditor.placeholder.listItem"),
|
|
36971
|
+
ariaLabel: t("richBlockEditor.aria.listItem"),
|
|
36649
36972
|
className: "inline-block min-w-[1ch] flex-1",
|
|
36650
36973
|
onValueChange: (next) => setChildContent(child.id, next)
|
|
36651
36974
|
}
|
|
@@ -36655,7 +36978,7 @@ function BlockRow({
|
|
|
36655
36978
|
{
|
|
36656
36979
|
type: "button",
|
|
36657
36980
|
variant: "ghost",
|
|
36658
|
-
"aria-label": "
|
|
36981
|
+
"aria-label": t("richBlockEditor.aria.removeListItem"),
|
|
36659
36982
|
className: cn(
|
|
36660
36983
|
"h-5 w-5 shrink-0 rounded-sm text-muted-foreground p-0 gap-0",
|
|
36661
36984
|
"opacity-0 group-hover/item:opacity-100 hover:bg-muted hover:text-foreground"
|
|
@@ -36677,7 +37000,8 @@ function BlockRow({
|
|
|
36677
37000
|
onClick: addListItem,
|
|
36678
37001
|
children: [
|
|
36679
37002
|
/* @__PURE__ */ jsx(Icon, { name: "plus", className: "w-3 h-3" }),
|
|
36680
|
-
"
|
|
37003
|
+
" ",
|
|
37004
|
+
t("richBlockEditor.addItem")
|
|
36681
37005
|
]
|
|
36682
37006
|
}
|
|
36683
37007
|
) })
|
|
@@ -36693,8 +37017,8 @@ function BlockRow({
|
|
|
36693
37017
|
tag: "p",
|
|
36694
37018
|
value: block.content ?? "",
|
|
36695
37019
|
readOnly,
|
|
36696
|
-
placeholder: placeholder ?? "
|
|
36697
|
-
ariaLabel: "
|
|
37020
|
+
placeholder: placeholder ?? t("richBlockEditor.placeholder.paragraph"),
|
|
37021
|
+
ariaLabel: t("richBlockEditor.aria.paragraphBlock"),
|
|
36698
37022
|
className: "leading-7",
|
|
36699
37023
|
onValueChange: setContent
|
|
36700
37024
|
}
|
|
@@ -36717,7 +37041,7 @@ function BlockRow({
|
|
|
36717
37041
|
{
|
|
36718
37042
|
type: "button",
|
|
36719
37043
|
variant: "ghost",
|
|
36720
|
-
"aria-label": "
|
|
37044
|
+
"aria-label": t("richBlockEditor.insertParagraphBelow"),
|
|
36721
37045
|
className: cn(
|
|
36722
37046
|
"inline-flex h-6 w-6 items-center justify-center rounded-sm p-0 gap-0",
|
|
36723
37047
|
"text-muted-foreground hover:bg-muted hover:text-foreground",
|
|
@@ -36744,7 +37068,7 @@ function BlockRow({
|
|
|
36744
37068
|
}
|
|
36745
37069
|
);
|
|
36746
37070
|
}
|
|
36747
|
-
var TOOLBAR_ENTRIES,
|
|
37071
|
+
var TOOLBAR_ENTRIES, BLOCK_TYPE_LABEL_KEY, CHANGEABLE_TYPES, _idSeq, BLOCK_TYPES, RichBlockEditor;
|
|
36748
37072
|
var init_RichBlockEditor = __esm({
|
|
36749
37073
|
"components/core/molecules/RichBlockEditor.tsx"() {
|
|
36750
37074
|
"use client";
|
|
@@ -36757,29 +37081,30 @@ var init_RichBlockEditor = __esm({
|
|
|
36757
37081
|
init_Input();
|
|
36758
37082
|
init_Icon();
|
|
36759
37083
|
init_useEventBus();
|
|
37084
|
+
init_useTranslate();
|
|
36760
37085
|
TOOLBAR_ENTRIES = [
|
|
36761
|
-
{ type: "paragraph",
|
|
36762
|
-
{ type: "heading-1",
|
|
36763
|
-
{ type: "heading-2",
|
|
36764
|
-
{ type: "heading-3",
|
|
36765
|
-
{ type: "bullet-list",
|
|
36766
|
-
{ type: "numbered-list",
|
|
36767
|
-
{ type: "quote",
|
|
36768
|
-
{ type: "code",
|
|
36769
|
-
{ type: "divider",
|
|
36770
|
-
{ type: "image",
|
|
37086
|
+
{ type: "paragraph", labelKey: "richBlockEditor.toolbar.text", icon: Type },
|
|
37087
|
+
{ type: "heading-1", labelKey: "richBlockEditor.toolbar.h1", icon: Heading1 },
|
|
37088
|
+
{ type: "heading-2", labelKey: "richBlockEditor.toolbar.h2", icon: Heading2 },
|
|
37089
|
+
{ type: "heading-3", labelKey: "richBlockEditor.toolbar.h3", icon: Heading3 },
|
|
37090
|
+
{ type: "bullet-list", labelKey: "richBlockEditor.toolbar.bulletList", icon: List },
|
|
37091
|
+
{ type: "numbered-list", labelKey: "richBlockEditor.toolbar.numbered", icon: ListOrdered },
|
|
37092
|
+
{ type: "quote", labelKey: "richBlockEditor.toolbar.quote", icon: Quote },
|
|
37093
|
+
{ type: "code", labelKey: "richBlockEditor.toolbar.code", icon: Code },
|
|
37094
|
+
{ type: "divider", labelKey: "richBlockEditor.toolbar.divider", icon: Minus },
|
|
37095
|
+
{ type: "image", labelKey: "richBlockEditor.toolbar.image", icon: Image$1 }
|
|
36771
37096
|
];
|
|
36772
|
-
|
|
36773
|
-
paragraph: "
|
|
36774
|
-
"heading-1": "
|
|
36775
|
-
"heading-2": "
|
|
36776
|
-
"heading-3": "
|
|
36777
|
-
"bullet-list": "
|
|
36778
|
-
"numbered-list": "
|
|
36779
|
-
quote: "
|
|
36780
|
-
code: "
|
|
36781
|
-
divider: "
|
|
36782
|
-
image: "
|
|
37097
|
+
BLOCK_TYPE_LABEL_KEY = {
|
|
37098
|
+
paragraph: "richBlockEditor.blockType.paragraph",
|
|
37099
|
+
"heading-1": "richBlockEditor.blockType.heading1",
|
|
37100
|
+
"heading-2": "richBlockEditor.blockType.heading2",
|
|
37101
|
+
"heading-3": "richBlockEditor.blockType.heading3",
|
|
37102
|
+
"bullet-list": "richBlockEditor.blockType.bulletList",
|
|
37103
|
+
"numbered-list": "richBlockEditor.blockType.numberedList",
|
|
37104
|
+
quote: "richBlockEditor.blockType.quote",
|
|
37105
|
+
code: "richBlockEditor.blockType.code",
|
|
37106
|
+
divider: "richBlockEditor.blockType.divider",
|
|
37107
|
+
image: "richBlockEditor.blockType.image"
|
|
36783
37108
|
};
|
|
36784
37109
|
CHANGEABLE_TYPES = [
|
|
36785
37110
|
"paragraph",
|
|
@@ -36813,6 +37138,7 @@ var init_RichBlockEditor = __esm({
|
|
|
36813
37138
|
showToolbar = true,
|
|
36814
37139
|
className
|
|
36815
37140
|
}) => {
|
|
37141
|
+
const { t } = useTranslate();
|
|
36816
37142
|
const [blocks, setBlocks] = useState(
|
|
36817
37143
|
() => normalizeBlocks(initialBlocks)
|
|
36818
37144
|
);
|
|
@@ -36884,25 +37210,26 @@ var init_RichBlockEditor = __esm({
|
|
|
36884
37210
|
Box,
|
|
36885
37211
|
{
|
|
36886
37212
|
role: "toolbar",
|
|
36887
|
-
"aria-label": "
|
|
37213
|
+
"aria-label": t("richBlockEditor.editorToolbar"),
|
|
36888
37214
|
className: cn(
|
|
36889
37215
|
"flex flex-wrap items-center gap-1",
|
|
36890
37216
|
"border-b border-border bg-muted/30 px-2 py-2"
|
|
36891
37217
|
),
|
|
36892
37218
|
children: TOOLBAR_ENTRIES.map((entry) => {
|
|
36893
37219
|
const Icon3 = entry.icon;
|
|
37220
|
+
const entryLabel = t(entry.labelKey);
|
|
36894
37221
|
return /* @__PURE__ */ jsxs(
|
|
36895
37222
|
Button,
|
|
36896
37223
|
{
|
|
36897
37224
|
type: "button",
|
|
36898
37225
|
variant: "ghost",
|
|
36899
37226
|
size: "sm",
|
|
36900
|
-
"aria-label":
|
|
36901
|
-
title:
|
|
37227
|
+
"aria-label": t("richBlockEditor.insertEntry", { label: entryLabel }),
|
|
37228
|
+
title: entryLabel,
|
|
36902
37229
|
onClick: () => handleAppend(entry.type),
|
|
36903
37230
|
children: [
|
|
36904
37231
|
/* @__PURE__ */ jsx(Icon3, { size: 14 }),
|
|
36905
|
-
/* @__PURE__ */ jsx(Typography, { as: "span", variant: "caption", className: "ml-1 hidden text-xs sm:inline", children:
|
|
37232
|
+
/* @__PURE__ */ jsx(Typography, { as: "span", variant: "caption", className: "ml-1 hidden text-xs sm:inline", children: entryLabel })
|
|
36906
37233
|
]
|
|
36907
37234
|
},
|
|
36908
37235
|
entry.type
|
|
@@ -36945,6 +37272,7 @@ var init_ReplyTree = __esm({
|
|
|
36945
37272
|
"use client";
|
|
36946
37273
|
init_cn();
|
|
36947
37274
|
init_useEventBus();
|
|
37275
|
+
init_useTranslate();
|
|
36948
37276
|
init_atoms2();
|
|
36949
37277
|
init_VoteStack();
|
|
36950
37278
|
ReplyTreeNode = ({
|
|
@@ -36964,6 +37292,7 @@ var init_ReplyTree = __esm({
|
|
|
36964
37292
|
showActions
|
|
36965
37293
|
}) => {
|
|
36966
37294
|
const eventBus = useEventBus();
|
|
37295
|
+
const { t } = useTranslate();
|
|
36967
37296
|
const hasReplies = !!node.replies && node.replies.length > 0;
|
|
36968
37297
|
const isCollapsed = collapsedSet.has(node.id);
|
|
36969
37298
|
const atMaxDepth = depth >= maxDepth;
|
|
@@ -37010,7 +37339,7 @@ var init_ReplyTree = __esm({
|
|
|
37010
37339
|
variant: "ghost",
|
|
37011
37340
|
size: "sm",
|
|
37012
37341
|
onClick: handleToggle,
|
|
37013
|
-
"aria-label": isCollapsed ? "
|
|
37342
|
+
"aria-label": isCollapsed ? t("replyTree.expandReplies") : t("replyTree.collapseReplies"),
|
|
37014
37343
|
"aria-expanded": !isCollapsed,
|
|
37015
37344
|
leftIcon: isCollapsed ? "chevron-right" : "chevron-down",
|
|
37016
37345
|
className: cn(
|
|
@@ -37051,7 +37380,7 @@ var init_ReplyTree = __esm({
|
|
|
37051
37380
|
onVote: handleVote,
|
|
37052
37381
|
size: "sm",
|
|
37053
37382
|
variant: "horizontal",
|
|
37054
|
-
label:
|
|
37383
|
+
label: t("replyTree.voteOnReplyBy", { author: node.authorName })
|
|
37055
37384
|
}
|
|
37056
37385
|
),
|
|
37057
37386
|
/* @__PURE__ */ jsx(
|
|
@@ -37061,8 +37390,8 @@ var init_ReplyTree = __esm({
|
|
|
37061
37390
|
size: "sm",
|
|
37062
37391
|
leftIcon: "message-square",
|
|
37063
37392
|
onClick: handleReply,
|
|
37064
|
-
"aria-label":
|
|
37065
|
-
children: "
|
|
37393
|
+
"aria-label": t("replyTree.replyTo", { author: node.authorName }),
|
|
37394
|
+
children: t("replyTree.reply")
|
|
37066
37395
|
}
|
|
37067
37396
|
),
|
|
37068
37397
|
/* @__PURE__ */ jsx(
|
|
@@ -37072,8 +37401,8 @@ var init_ReplyTree = __esm({
|
|
|
37072
37401
|
size: "sm",
|
|
37073
37402
|
leftIcon: "flag",
|
|
37074
37403
|
onClick: handleFlag,
|
|
37075
|
-
"aria-label":
|
|
37076
|
-
children: "
|
|
37404
|
+
"aria-label": t("replyTree.flagReplyBy", { author: node.authorName }),
|
|
37405
|
+
children: t("replyTree.flag")
|
|
37077
37406
|
}
|
|
37078
37407
|
)
|
|
37079
37408
|
] }),
|
|
@@ -37084,9 +37413,9 @@ var init_ReplyTree = __esm({
|
|
|
37084
37413
|
inputType: "textarea",
|
|
37085
37414
|
rows: 2,
|
|
37086
37415
|
value: draft,
|
|
37087
|
-
placeholder:
|
|
37416
|
+
placeholder: t("replyTree.replyToPlaceholder", { author: node.authorName }),
|
|
37088
37417
|
onChange: (e) => setDraft(e.target.value),
|
|
37089
|
-
"aria-label":
|
|
37418
|
+
"aria-label": t("replyTree.replyTo", { author: node.authorName })
|
|
37090
37419
|
}
|
|
37091
37420
|
),
|
|
37092
37421
|
/* @__PURE__ */ jsxs(Box, { className: "flex flex-row gap-2 items-center", children: [
|
|
@@ -37098,10 +37427,10 @@ var init_ReplyTree = __esm({
|
|
|
37098
37427
|
leftIcon: "send",
|
|
37099
37428
|
onClick: handleSubmitReply,
|
|
37100
37429
|
disabled: !draft.trim(),
|
|
37101
|
-
children: "
|
|
37430
|
+
children: t("replyTree.send")
|
|
37102
37431
|
}
|
|
37103
37432
|
),
|
|
37104
|
-
/* @__PURE__ */ jsx(Button, { variant: "ghost", size: "sm", onClick: handleCancelReply, children: "
|
|
37433
|
+
/* @__PURE__ */ jsx(Button, { variant: "ghost", size: "sm", onClick: handleCancelReply, children: t("common.cancel") })
|
|
37105
37434
|
] })
|
|
37106
37435
|
] }),
|
|
37107
37436
|
hasReplies && !isCollapsed && (atMaxDepth ? /* @__PURE__ */ jsx(
|
|
@@ -37115,7 +37444,7 @@ var init_ReplyTree = __esm({
|
|
|
37115
37444
|
"self-start gap-1 px-0 h-auto",
|
|
37116
37445
|
"text-sm text-primary hover:underline hover:bg-transparent"
|
|
37117
37446
|
),
|
|
37118
|
-
children: "
|
|
37447
|
+
children: t("replyTree.continueThread")
|
|
37119
37448
|
}
|
|
37120
37449
|
) : /* @__PURE__ */ jsx(Box, { className: "flex flex-col gap-2 mt-1", children: node.replies.map((child) => /* @__PURE__ */ jsx(
|
|
37121
37450
|
ReplyTreeNode,
|
|
@@ -37154,6 +37483,7 @@ var init_ReplyTree = __esm({
|
|
|
37154
37483
|
showActions = true,
|
|
37155
37484
|
className
|
|
37156
37485
|
}) => {
|
|
37486
|
+
const { t } = useTranslate();
|
|
37157
37487
|
const nodeList = Array.isArray(nodes) ? nodes : nodes ? [nodes] : [];
|
|
37158
37488
|
const [collapsedSet, setCollapsedSet] = useState(() => {
|
|
37159
37489
|
const acc = /* @__PURE__ */ new Set();
|
|
@@ -37172,7 +37502,7 @@ var init_ReplyTree = __esm({
|
|
|
37172
37502
|
});
|
|
37173
37503
|
}, []);
|
|
37174
37504
|
if (nodeList.length === 0) {
|
|
37175
|
-
return /* @__PURE__ */ jsx(Box, { className: cn("text-sm text-muted-foreground", className), children: "
|
|
37505
|
+
return /* @__PURE__ */ jsx(Box, { className: cn("text-sm text-muted-foreground", className), children: t("replyTree.noRepliesYet") });
|
|
37176
37506
|
}
|
|
37177
37507
|
return /* @__PURE__ */ jsx(Box, { className: cn("flex flex-col gap-2 min-w-0", className), children: nodeList.map((node) => /* @__PURE__ */ jsx(
|
|
37178
37508
|
ReplyTreeNode,
|
|
@@ -37250,6 +37580,7 @@ var init_VersionDiff = __esm({
|
|
|
37250
37580
|
"use client";
|
|
37251
37581
|
init_cn();
|
|
37252
37582
|
init_useEventBus();
|
|
37583
|
+
init_useTranslate();
|
|
37253
37584
|
init_atoms2();
|
|
37254
37585
|
init_Stack();
|
|
37255
37586
|
INLINE_STYLES = {
|
|
@@ -37272,6 +37603,7 @@ var init_VersionDiff = __esm({
|
|
|
37272
37603
|
language,
|
|
37273
37604
|
className
|
|
37274
37605
|
}) => {
|
|
37606
|
+
const { t } = useTranslate();
|
|
37275
37607
|
const eventBus = useEventBus();
|
|
37276
37608
|
const revisions = Array.isArray(revisionsProp) ? revisionsProp : [];
|
|
37277
37609
|
const fallbackBefore = revisions[0]?.id ?? "";
|
|
@@ -37353,24 +37685,24 @@ var init_VersionDiff = __esm({
|
|
|
37353
37685
|
children: [
|
|
37354
37686
|
/* @__PURE__ */ jsxs(HStack, { gap: "sm", align: "center", className: "flex-wrap", children: [
|
|
37355
37687
|
/* @__PURE__ */ jsx(Icon, { name: "git-commit", size: "sm", className: "text-muted-foreground" }),
|
|
37356
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "whitespace-nowrap", children: "
|
|
37688
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "whitespace-nowrap", children: t("versionDiff.compare") }),
|
|
37357
37689
|
/* @__PURE__ */ jsx(Box, { className: "min-w-0 md:min-w-[160px]", children: /* @__PURE__ */ jsx(
|
|
37358
37690
|
Select,
|
|
37359
37691
|
{
|
|
37360
37692
|
options,
|
|
37361
37693
|
value: activeBeforeId,
|
|
37362
37694
|
onChange: handleBeforeChange,
|
|
37363
|
-
"aria-label": "
|
|
37695
|
+
"aria-label": t("versionDiff.beforeRevision")
|
|
37364
37696
|
}
|
|
37365
37697
|
) }),
|
|
37366
|
-
/* @__PURE__ */ jsx(Typography, { variant: "caption", color: "secondary", children: "to" }),
|
|
37698
|
+
/* @__PURE__ */ jsx(Typography, { variant: "caption", color: "secondary", children: t("versionDiff.to") }),
|
|
37367
37699
|
/* @__PURE__ */ jsx(Box, { className: "min-w-0 md:min-w-[160px]", children: /* @__PURE__ */ jsx(
|
|
37368
37700
|
Select,
|
|
37369
37701
|
{
|
|
37370
37702
|
options,
|
|
37371
37703
|
value: activeAfterId,
|
|
37372
37704
|
onChange: handleAfterChange,
|
|
37373
|
-
"aria-label": "
|
|
37705
|
+
"aria-label": t("versionDiff.afterRevision")
|
|
37374
37706
|
}
|
|
37375
37707
|
) }),
|
|
37376
37708
|
language && /* @__PURE__ */ jsx(Badge, { variant: "default", children: language }),
|
|
@@ -37391,7 +37723,7 @@ var init_VersionDiff = __esm({
|
|
|
37391
37723
|
size: "sm",
|
|
37392
37724
|
icon: activeView === "side-by-side" ? "align-left" : "columns",
|
|
37393
37725
|
onClick: handleViewToggle,
|
|
37394
|
-
"aria-label": activeView === "side-by-side" ? "
|
|
37726
|
+
"aria-label": activeView === "side-by-side" ? t("versionDiff.switchToInline") : t("versionDiff.switchToSideBySide")
|
|
37395
37727
|
}
|
|
37396
37728
|
),
|
|
37397
37729
|
(onRevert || revertEvent) && /* @__PURE__ */ jsx(
|
|
@@ -37401,7 +37733,7 @@ var init_VersionDiff = __esm({
|
|
|
37401
37733
|
size: "sm",
|
|
37402
37734
|
icon: "rotate-ccw",
|
|
37403
37735
|
onClick: handleRevert,
|
|
37404
|
-
children: "
|
|
37736
|
+
children: t("versionDiff.revert")
|
|
37405
37737
|
}
|
|
37406
37738
|
)
|
|
37407
37739
|
] })
|
|
@@ -37418,12 +37750,12 @@ var init_VersionDiff = __esm({
|
|
|
37418
37750
|
children: [
|
|
37419
37751
|
/* @__PURE__ */ jsxs(Typography, { variant: "caption", color: "secondary", className: "truncate", children: [
|
|
37420
37752
|
beforeRev?.label,
|
|
37421
|
-
beforeRev?.author ?
|
|
37753
|
+
beforeRev?.author ? t("versionDiff.byAuthor", { author: beforeRev.author }) : "",
|
|
37422
37754
|
beforeRev?.timestamp ? ` (${beforeRev.timestamp})` : ""
|
|
37423
37755
|
] }),
|
|
37424
37756
|
/* @__PURE__ */ jsxs(Typography, { variant: "caption", color: "secondary", className: "truncate", children: [
|
|
37425
37757
|
afterRev?.label,
|
|
37426
|
-
afterRev?.author ?
|
|
37758
|
+
afterRev?.author ? t("versionDiff.byAuthor", { author: afterRev.author }) : "",
|
|
37427
37759
|
afterRev?.timestamp ? ` (${afterRev.timestamp})` : ""
|
|
37428
37760
|
] })
|
|
37429
37761
|
]
|
|
@@ -37816,10 +38148,12 @@ var init_DocPagination = __esm({
|
|
|
37816
38148
|
}
|
|
37817
38149
|
});
|
|
37818
38150
|
function DocSearch({
|
|
37819
|
-
placeholder
|
|
38151
|
+
placeholder,
|
|
37820
38152
|
onSearch,
|
|
37821
38153
|
className
|
|
37822
38154
|
}) {
|
|
38155
|
+
const { t } = useTranslate();
|
|
38156
|
+
const resolvedPlaceholder = placeholder ?? t("docSearch.placeholder");
|
|
37823
38157
|
const [query, setQuery] = useState("");
|
|
37824
38158
|
const [results, setResults] = useState([]);
|
|
37825
38159
|
const [isOpen, setIsOpen] = useState(false);
|
|
@@ -37926,7 +38260,7 @@ function DocSearch({
|
|
|
37926
38260
|
Input,
|
|
37927
38261
|
{
|
|
37928
38262
|
inputType: "search",
|
|
37929
|
-
placeholder,
|
|
38263
|
+
placeholder: resolvedPlaceholder,
|
|
37930
38264
|
value: query,
|
|
37931
38265
|
onChange: handleChange,
|
|
37932
38266
|
onFocus: handleFocus,
|
|
@@ -37991,6 +38325,7 @@ var init_DocSearch = __esm({
|
|
|
37991
38325
|
init_Typography();
|
|
37992
38326
|
init_Icon();
|
|
37993
38327
|
init_Input();
|
|
38328
|
+
init_useTranslate();
|
|
37994
38329
|
}
|
|
37995
38330
|
});
|
|
37996
38331
|
var DocSidebarCategory, DocSidebar;
|
|
@@ -39586,8 +39921,8 @@ var init_SignaturePad = __esm({
|
|
|
39586
39921
|
init_useEventBus();
|
|
39587
39922
|
init_useTranslate();
|
|
39588
39923
|
SignaturePad = ({
|
|
39589
|
-
label
|
|
39590
|
-
helperText
|
|
39924
|
+
label,
|
|
39925
|
+
helperText,
|
|
39591
39926
|
strokeColor,
|
|
39592
39927
|
strokeWidth = 2,
|
|
39593
39928
|
height = 200,
|
|
@@ -39603,6 +39938,8 @@ var init_SignaturePad = __esm({
|
|
|
39603
39938
|
}) => {
|
|
39604
39939
|
const eventBus = useEventBus();
|
|
39605
39940
|
const { t } = useTranslate();
|
|
39941
|
+
const resolvedLabel = label ?? t("signaturePad.label");
|
|
39942
|
+
const resolvedHelperText = helperText ?? t("signaturePad.helperText");
|
|
39606
39943
|
const canvasRef = useRef(null);
|
|
39607
39944
|
const [isDrawing, setIsDrawing] = useState(false);
|
|
39608
39945
|
const [hasSignature, setHasSignature] = useState(!!value);
|
|
@@ -39705,7 +40042,7 @@ var init_SignaturePad = __esm({
|
|
|
39705
40042
|
);
|
|
39706
40043
|
}
|
|
39707
40044
|
return /* @__PURE__ */ jsx(Card, { className: cn("p-4", className), children: /* @__PURE__ */ jsxs(VStack, { gap: "sm", children: [
|
|
39708
|
-
|
|
40045
|
+
resolvedLabel && /* @__PURE__ */ jsx(Typography, { variant: "label", weight: "medium", children: resolvedLabel }),
|
|
39709
40046
|
/* @__PURE__ */ jsx(
|
|
39710
40047
|
Box,
|
|
39711
40048
|
{
|
|
@@ -39734,7 +40071,7 @@ var init_SignaturePad = __esm({
|
|
|
39734
40071
|
)
|
|
39735
40072
|
}
|
|
39736
40073
|
),
|
|
39737
|
-
|
|
40074
|
+
resolvedHelperText && /* @__PURE__ */ jsx(Typography, { variant: "caption", color: "secondary", children: resolvedHelperText }),
|
|
39738
40075
|
!readOnly && /* @__PURE__ */ jsxs(HStack, { gap: "sm", justify: "end", children: [
|
|
39739
40076
|
/* @__PURE__ */ jsx(
|
|
39740
40077
|
Button,
|
|
@@ -39744,7 +40081,7 @@ var init_SignaturePad = __esm({
|
|
|
39744
40081
|
icon: Eraser,
|
|
39745
40082
|
onClick: clearSignature,
|
|
39746
40083
|
disabled: !hasSignature,
|
|
39747
|
-
children: "
|
|
40084
|
+
children: t("signaturePad.clear")
|
|
39748
40085
|
}
|
|
39749
40086
|
),
|
|
39750
40087
|
signEvent && /* @__PURE__ */ jsx(
|
|
@@ -39755,7 +40092,7 @@ var init_SignaturePad = __esm({
|
|
|
39755
40092
|
icon: Check,
|
|
39756
40093
|
onClick: confirmSignature,
|
|
39757
40094
|
disabled: !hasSignature,
|
|
39758
|
-
children: "
|
|
40095
|
+
children: t("signaturePad.confirm")
|
|
39759
40096
|
}
|
|
39760
40097
|
)
|
|
39761
40098
|
] })
|
|
@@ -44200,6 +44537,7 @@ function MasterDetail({
|
|
|
44200
44537
|
className,
|
|
44201
44538
|
...rest
|
|
44202
44539
|
}) {
|
|
44540
|
+
const { t } = useTranslate();
|
|
44203
44541
|
const loading = externalLoading ?? false;
|
|
44204
44542
|
const isLoading = externalIsLoading ?? false;
|
|
44205
44543
|
const error = externalError ?? null;
|
|
@@ -44212,8 +44550,8 @@ function MasterDetail({
|
|
|
44212
44550
|
isLoading: loading || isLoading,
|
|
44213
44551
|
error,
|
|
44214
44552
|
className,
|
|
44215
|
-
emptyTitle: "
|
|
44216
|
-
emptyDescription: "
|
|
44553
|
+
emptyTitle: t("table.empty.title"),
|
|
44554
|
+
emptyDescription: t("empty.createFirst"),
|
|
44217
44555
|
...rest
|
|
44218
44556
|
}
|
|
44219
44557
|
);
|
|
@@ -44222,6 +44560,7 @@ var init_MasterDetail = __esm({
|
|
|
44222
44560
|
"components/core/organisms/MasterDetail.tsx"() {
|
|
44223
44561
|
"use client";
|
|
44224
44562
|
init_DataTable();
|
|
44563
|
+
init_useTranslate();
|
|
44225
44564
|
MasterDetail.displayName = "MasterDetail";
|
|
44226
44565
|
}
|
|
44227
44566
|
});
|
|
@@ -44230,14 +44569,18 @@ var init_MasterDetailLayout = __esm({
|
|
|
44230
44569
|
"components/core/organisms/layout/MasterDetailLayout.tsx"() {
|
|
44231
44570
|
init_cn();
|
|
44232
44571
|
init_Typography();
|
|
44233
|
-
|
|
44234
|
-
|
|
44235
|
-
{
|
|
44236
|
-
|
|
44237
|
-
|
|
44238
|
-
|
|
44239
|
-
|
|
44240
|
-
|
|
44572
|
+
init_useTranslate();
|
|
44573
|
+
DefaultEmptyDetail = () => {
|
|
44574
|
+
const { t } = useTranslate();
|
|
44575
|
+
return /* @__PURE__ */ jsx("div", { className: "flex items-center justify-center h-full border-2 border-dashed border-border", children: /* @__PURE__ */ jsx(
|
|
44576
|
+
Typography,
|
|
44577
|
+
{
|
|
44578
|
+
variant: "body2",
|
|
44579
|
+
className: "text-muted-foreground",
|
|
44580
|
+
children: t("masterDetail.selectItem")
|
|
44581
|
+
}
|
|
44582
|
+
) });
|
|
44583
|
+
};
|
|
44241
44584
|
MasterDetailLayout = ({
|
|
44242
44585
|
master,
|
|
44243
44586
|
detail,
|
|
@@ -44364,7 +44707,7 @@ var init_MediaGallery = __esm({
|
|
|
44364
44707
|
{
|
|
44365
44708
|
icon: Image$1,
|
|
44366
44709
|
title: t("display.noMedia"),
|
|
44367
|
-
description: "
|
|
44710
|
+
description: t("mediaGallery.noMediaDescription"),
|
|
44368
44711
|
className
|
|
44369
44712
|
}
|
|
44370
44713
|
);
|
|
@@ -44381,7 +44724,7 @@ var init_MediaGallery = __esm({
|
|
|
44381
44724
|
size: "sm",
|
|
44382
44725
|
icon: Upload,
|
|
44383
44726
|
action: "MEDIA_UPLOAD",
|
|
44384
|
-
children: "
|
|
44727
|
+
children: t("mediaGallery.upload")
|
|
44385
44728
|
}
|
|
44386
44729
|
),
|
|
44387
44730
|
actions?.map((action, idx) => /* @__PURE__ */ jsx(
|
|
@@ -44395,10 +44738,7 @@ var init_MediaGallery = __esm({
|
|
|
44395
44738
|
))
|
|
44396
44739
|
] })
|
|
44397
44740
|
] }),
|
|
44398
|
-
selectable && selectedItems.length > 0 && /* @__PURE__ */ jsx(HStack, { gap: "sm", align: "center", children: /* @__PURE__ */
|
|
44399
|
-
selectedItems.length,
|
|
44400
|
-
" selected"
|
|
44401
|
-
] }) }),
|
|
44741
|
+
selectable && selectedItems.length > 0 && /* @__PURE__ */ jsx(HStack, { gap: "sm", align: "center", children: /* @__PURE__ */ jsx(Badge, { variant: "info", children: t("table.bulk.selected", { count: selectedItems.length }) }) }),
|
|
44402
44742
|
/* @__PURE__ */ jsx(
|
|
44403
44743
|
Box,
|
|
44404
44744
|
{
|
|
@@ -45272,7 +45612,7 @@ function TraitsTab({ traits: traits2 }) {
|
|
|
45272
45612
|
EmptyState,
|
|
45273
45613
|
{
|
|
45274
45614
|
title: t("debug.noActiveTraits"),
|
|
45275
|
-
description: "
|
|
45615
|
+
description: t("debug.traitsMountHint"),
|
|
45276
45616
|
className: "py-8"
|
|
45277
45617
|
}
|
|
45278
45618
|
);
|
|
@@ -45282,14 +45622,11 @@ function TraitsTab({ traits: traits2 }) {
|
|
|
45282
45622
|
header: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 w-full", children: [
|
|
45283
45623
|
/* @__PURE__ */ jsx(Typography, { variant: "body", weight: "semibold", className: "text-purple-600 dark:text-purple-400", children: trait.name }),
|
|
45284
45624
|
/* @__PURE__ */ jsx(Badge, { variant: "success", size: "sm", children: trait.currentState }),
|
|
45285
|
-
/* @__PURE__ */
|
|
45286
|
-
trait.transitionCount,
|
|
45287
|
-
" transitions"
|
|
45288
|
-
] })
|
|
45625
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-gray-500 ml-auto", children: t("debug.transitionsCount", { count: trait.transitionCount }) })
|
|
45289
45626
|
] }),
|
|
45290
45627
|
content: /* @__PURE__ */ jsxs(Stack, { gap: "sm", children: [
|
|
45291
45628
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
45292
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-gray-500 mb-2", children: "
|
|
45629
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-gray-500 mb-2", children: t("debug.states") }),
|
|
45293
45630
|
/* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-1", children: trait.states.map((state) => /* @__PURE__ */ jsx(
|
|
45294
45631
|
Badge,
|
|
45295
45632
|
{
|
|
@@ -45301,7 +45638,7 @@ function TraitsTab({ traits: traits2 }) {
|
|
|
45301
45638
|
)) })
|
|
45302
45639
|
] }),
|
|
45303
45640
|
trait.transitions.length > 0 && /* @__PURE__ */ jsxs("div", { children: [
|
|
45304
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-gray-500 mb-2", children: "
|
|
45641
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-gray-500 mb-2", children: t("debug.transitions") }),
|
|
45305
45642
|
/* @__PURE__ */ jsx(Stack, { gap: "xs", children: trait.transitions.map((t2, i) => /* @__PURE__ */ jsxs(Typography, { variant: "small", className: "font-mono", children: [
|
|
45306
45643
|
t2.from,
|
|
45307
45644
|
" \u2192 ",
|
|
@@ -45320,7 +45657,7 @@ function TraitsTab({ traits: traits2 }) {
|
|
|
45320
45657
|
] }, i)) })
|
|
45321
45658
|
] }),
|
|
45322
45659
|
trait.guards.length > 0 && /* @__PURE__ */ jsxs("div", { children: [
|
|
45323
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-gray-500 mb-2", children: "
|
|
45660
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-gray-500 mb-2", children: t("debug.guards") }),
|
|
45324
45661
|
/* @__PURE__ */ jsx(Stack, { gap: "xs", children: trait.guards.map((g, i) => /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
|
|
45325
45662
|
/* @__PURE__ */ jsx(Typography, { variant: "small", children: g.name }),
|
|
45326
45663
|
/* @__PURE__ */ jsx(Badge, { variant: g.lastResult === true ? "success" : g.lastResult === false ? "danger" : "default", size: "sm", children: g.lastResult === void 0 ? "?" : g.lastResult ? "\u2713" : "\u2717" })
|
|
@@ -45426,7 +45763,7 @@ function EntitiesTab({ snapshot }) {
|
|
|
45426
45763
|
EmptyState,
|
|
45427
45764
|
{
|
|
45428
45765
|
title: t("debug.noEntityData"),
|
|
45429
|
-
description: "
|
|
45766
|
+
description: t("debug.debugModeHint"),
|
|
45430
45767
|
className: "py-8"
|
|
45431
45768
|
}
|
|
45432
45769
|
);
|
|
@@ -45439,7 +45776,7 @@ function EntitiesTab({ snapshot }) {
|
|
|
45439
45776
|
EmptyState,
|
|
45440
45777
|
{
|
|
45441
45778
|
title: t("debug.noEntities"),
|
|
45442
|
-
description: "
|
|
45779
|
+
description: t("debug.entitiesSpawnHint"),
|
|
45443
45780
|
className: "py-8"
|
|
45444
45781
|
}
|
|
45445
45782
|
);
|
|
@@ -45447,7 +45784,7 @@ function EntitiesTab({ snapshot }) {
|
|
|
45447
45784
|
const singletonItems = singletonEntries.map(([name, data]) => ({
|
|
45448
45785
|
id: `singleton-${name}`,
|
|
45449
45786
|
header: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
45450
|
-
/* @__PURE__ */ jsx(Badge, { variant: "primary", size: "sm", children: "
|
|
45787
|
+
/* @__PURE__ */ jsx(Badge, { variant: "primary", size: "sm", children: t("debug.singleton") }),
|
|
45451
45788
|
/* @__PURE__ */ jsx(Typography, { variant: "body", weight: "semibold", className: "text-sky-600 dark:text-sky-400", children: name })
|
|
45452
45789
|
] }),
|
|
45453
45790
|
content: /* @__PURE__ */ jsx("pre", { className: "text-xs text-gray-600 dark:text-gray-400 bg-gray-50 dark:bg-gray-800 p-2 rounded overflow-auto max-h-40", children: JSON.stringify(data, null, 2) })
|
|
@@ -45465,31 +45802,19 @@ function EntitiesTab({ snapshot }) {
|
|
|
45465
45802
|
}));
|
|
45466
45803
|
return /* @__PURE__ */ jsxs("div", { className: "debug-tab debug-tab--entities", children: [
|
|
45467
45804
|
singletonItems.length > 0 && /* @__PURE__ */ jsxs("div", { className: "mb-4", children: [
|
|
45468
|
-
/* @__PURE__ */
|
|
45469
|
-
"Singletons (",
|
|
45470
|
-
singletonItems.length,
|
|
45471
|
-
")"
|
|
45472
|
-
] }),
|
|
45805
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-gray-500 mb-2", children: t("debug.singletonsCount", { count: singletonItems.length }) }),
|
|
45473
45806
|
/* @__PURE__ */ jsx(Accordion, { items: singletonItems, multiple: true })
|
|
45474
45807
|
] }),
|
|
45475
45808
|
runtimeItems.length > 0 && /* @__PURE__ */ jsxs("div", { className: "mb-4", children: [
|
|
45476
|
-
/* @__PURE__ */
|
|
45477
|
-
"Runtime (",
|
|
45478
|
-
runtimeEntities.length,
|
|
45479
|
-
")"
|
|
45480
|
-
] }),
|
|
45809
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-gray-500 mb-2", children: t("debug.runtimeCount", { count: runtimeEntities.length }) }),
|
|
45481
45810
|
/* @__PURE__ */ jsx(Accordion, { items: runtimeItems, multiple: true }),
|
|
45482
|
-
runtimeEntities.length > 20 && /* @__PURE__ */
|
|
45483
|
-
"+",
|
|
45484
|
-
runtimeEntities.length - 20,
|
|
45485
|
-
" more entities"
|
|
45486
|
-
] })
|
|
45811
|
+
runtimeEntities.length > 20 && /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-gray-400 text-center mt-2", children: t("debug.moreEntities", { count: runtimeEntities.length - 20 }) })
|
|
45487
45812
|
] }),
|
|
45488
45813
|
persistentEntries.length > 0 && /* @__PURE__ */ jsxs("div", { children: [
|
|
45489
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-gray-500 mb-2", children: "
|
|
45814
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-gray-500 mb-2", children: t("debug.persistent") }),
|
|
45490
45815
|
/* @__PURE__ */ jsx(Stack, { gap: "xs", children: persistentEntries.map(([type, info]) => /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between py-1", children: [
|
|
45491
45816
|
/* @__PURE__ */ jsx(Typography, { variant: "small", children: type }),
|
|
45492
|
-
/* @__PURE__ */ jsx(Badge, { variant: info.loaded ? "success" : "default", size: "sm", children: info.loaded ?
|
|
45817
|
+
/* @__PURE__ */ jsx(Badge, { variant: info.loaded ? "success" : "default", size: "sm", children: info.loaded ? t("debug.loadedCount", { count: info.count }) : t("debug.notLoaded") })
|
|
45493
45818
|
] }, type)) })
|
|
45494
45819
|
] })
|
|
45495
45820
|
] });
|
|
@@ -45533,7 +45858,7 @@ function EventFlowTab({ events: events2 }) {
|
|
|
45533
45858
|
EmptyState,
|
|
45534
45859
|
{
|
|
45535
45860
|
title: t("debug.noEventsYet"),
|
|
45536
|
-
description: "
|
|
45861
|
+
description: t("debug.eventsExecuteHint"),
|
|
45537
45862
|
className: "py-8"
|
|
45538
45863
|
}
|
|
45539
45864
|
);
|
|
@@ -45544,17 +45869,13 @@ function EventFlowTab({ events: events2 }) {
|
|
|
45544
45869
|
return /* @__PURE__ */ jsxs("div", { className: "debug-tab debug-tab--events", children: [
|
|
45545
45870
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 mb-3 flex-wrap", children: [
|
|
45546
45871
|
/* @__PURE__ */ jsxs(ButtonGroup, { children: [
|
|
45547
|
-
/* @__PURE__ */
|
|
45872
|
+
/* @__PURE__ */ jsx(
|
|
45548
45873
|
Button,
|
|
45549
45874
|
{
|
|
45550
45875
|
size: "sm",
|
|
45551
45876
|
variant: filter === "all" ? "primary" : "secondary",
|
|
45552
45877
|
onClick: () => setFilter("all"),
|
|
45553
|
-
children:
|
|
45554
|
-
"All (",
|
|
45555
|
-
events2.length,
|
|
45556
|
-
")"
|
|
45557
|
-
]
|
|
45878
|
+
children: t("debug.allCount", { count: events2.length })
|
|
45558
45879
|
}
|
|
45559
45880
|
),
|
|
45560
45881
|
eventTypes.map((type) => {
|
|
@@ -45584,7 +45905,7 @@ function EventFlowTab({ events: events2 }) {
|
|
|
45584
45905
|
onChange: (e) => setAutoScroll(e.target.checked)
|
|
45585
45906
|
}
|
|
45586
45907
|
),
|
|
45587
|
-
"
|
|
45908
|
+
t("debug.autoScroll")
|
|
45588
45909
|
] })
|
|
45589
45910
|
] }),
|
|
45590
45911
|
/* @__PURE__ */ jsx(
|
|
@@ -45642,7 +45963,7 @@ function GuardsPanel({ guards }) {
|
|
|
45642
45963
|
EmptyState,
|
|
45643
45964
|
{
|
|
45644
45965
|
title: t("debug.noGuardEvaluations"),
|
|
45645
|
-
description: "
|
|
45966
|
+
description: t("debug.guardEvaluationsHint"),
|
|
45646
45967
|
className: "py-8"
|
|
45647
45968
|
}
|
|
45648
45969
|
);
|
|
@@ -45673,15 +45994,15 @@ function GuardsPanel({ guards }) {
|
|
|
45673
45994
|
] }),
|
|
45674
45995
|
content: /* @__PURE__ */ jsxs(Stack, { gap: "sm", children: [
|
|
45675
45996
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
45676
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-gray-500", children: "
|
|
45997
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-gray-500", children: t("debug.expression") }),
|
|
45677
45998
|
/* @__PURE__ */ jsx("code", { className: "block mt-1 text-xs text-amber-600 dark:text-amber-400 bg-amber-50 dark:bg-amber-900/20 px-2 py-1 rounded", children: guard.expression })
|
|
45678
45999
|
] }),
|
|
45679
46000
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
45680
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-gray-500", children: "
|
|
46001
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-gray-500", children: t("debug.inputs") }),
|
|
45681
46002
|
/* @__PURE__ */ jsx("pre", { className: "mt-1 text-xs text-gray-600 dark:text-gray-400 bg-gray-50 dark:bg-gray-800 p-2 rounded overflow-auto max-h-24", children: JSON.stringify(guard.inputs, null, 2) })
|
|
45682
46003
|
] }),
|
|
45683
46004
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
45684
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-gray-500", children: "
|
|
46005
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-gray-500", children: t("debug.trait") }),
|
|
45685
46006
|
/* @__PURE__ */ jsx(Typography, { variant: "small", children: guard.context.traitName })
|
|
45686
46007
|
] })
|
|
45687
46008
|
] })
|
|
@@ -45699,9 +46020,9 @@ function GuardsPanel({ guards }) {
|
|
|
45699
46020
|
] })
|
|
45700
46021
|
] }),
|
|
45701
46022
|
/* @__PURE__ */ jsxs(ButtonGroup, { children: [
|
|
45702
|
-
/* @__PURE__ */ jsx(Button, { size: "sm", variant: filter === "all" ? "primary" : "secondary", onClick: () => setFilter("all"), children: "
|
|
45703
|
-
/* @__PURE__ */ jsx(Button, { size: "sm", variant: filter === "passed" ? "primary" : "secondary", onClick: () => setFilter("passed"), children: "
|
|
45704
|
-
/* @__PURE__ */ jsx(Button, { size: "sm", variant: filter === "failed" ? "primary" : "secondary", onClick: () => setFilter("failed"), children: "
|
|
46023
|
+
/* @__PURE__ */ jsx(Button, { size: "sm", variant: filter === "all" ? "primary" : "secondary", onClick: () => setFilter("all"), children: t("debug.filterAll") }),
|
|
46024
|
+
/* @__PURE__ */ jsx(Button, { size: "sm", variant: filter === "passed" ? "primary" : "secondary", onClick: () => setFilter("passed"), children: t("debug.filterPassed") }),
|
|
46025
|
+
/* @__PURE__ */ jsx(Button, { size: "sm", variant: filter === "failed" ? "primary" : "secondary", onClick: () => setFilter("failed"), children: t("debug.filterFailed") })
|
|
45705
46026
|
] })
|
|
45706
46027
|
] }),
|
|
45707
46028
|
/* @__PURE__ */ jsx("div", { className: "max-h-80 overflow-y-auto", children: /* @__PURE__ */ jsx(Accordion, { items: accordionItems }) })
|
|
@@ -45827,7 +46148,7 @@ function TransitionTimeline({ transitions }) {
|
|
|
45827
46148
|
EmptyState,
|
|
45828
46149
|
{
|
|
45829
46150
|
title: t("debug.noTransitionsRecorded"),
|
|
45830
|
-
description: "
|
|
46151
|
+
description: t("debug.transitionsProcessHint"),
|
|
45831
46152
|
className: "py-8"
|
|
45832
46153
|
}
|
|
45833
46154
|
);
|
|
@@ -45844,10 +46165,7 @@ function TransitionTimeline({ transitions }) {
|
|
|
45844
46165
|
const sorted = [...transitions].reverse();
|
|
45845
46166
|
return /* @__PURE__ */ jsxs("div", { className: "debug-tab debug-tab--timeline", children: [
|
|
45846
46167
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between mb-2", children: [
|
|
45847
|
-
/* @__PURE__ */
|
|
45848
|
-
transitions.length,
|
|
45849
|
-
" transitions recorded"
|
|
45850
|
-
] }),
|
|
46168
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-gray-500", children: t("debug.transitionsRecorded", { count: transitions.length }) }),
|
|
45851
46169
|
/* @__PURE__ */ jsxs("label", { className: "flex items-center gap-1 text-xs text-gray-500 cursor-pointer", children: [
|
|
45852
46170
|
/* @__PURE__ */ jsx(
|
|
45853
46171
|
Checkbox,
|
|
@@ -45856,7 +46174,7 @@ function TransitionTimeline({ transitions }) {
|
|
|
45856
46174
|
onChange: (e) => setAutoScroll(e.target.checked)
|
|
45857
46175
|
}
|
|
45858
46176
|
),
|
|
45859
|
-
"
|
|
46177
|
+
t("debug.autoScroll")
|
|
45860
46178
|
] })
|
|
45861
46179
|
] }),
|
|
45862
46180
|
/* @__PURE__ */ jsx(
|
|
@@ -45899,15 +46217,13 @@ function TransitionTimeline({ transitions }) {
|
|
|
45899
46217
|
variant: trace.guardResult ? "success" : "danger",
|
|
45900
46218
|
size: "sm",
|
|
45901
46219
|
children: [
|
|
45902
|
-
"
|
|
46220
|
+
t("debug.guardLabel"),
|
|
46221
|
+
" ",
|
|
45903
46222
|
trace.guardResult ? "\u2713" : "\u2717"
|
|
45904
46223
|
]
|
|
45905
46224
|
}
|
|
45906
46225
|
),
|
|
45907
|
-
/* @__PURE__ */
|
|
45908
|
-
trace.effects.length,
|
|
45909
|
-
" effects"
|
|
45910
|
-
] })
|
|
46226
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-gray-400 ml-auto", children: t("debug.effectsCount", { count: trace.effects.length }) })
|
|
45911
46227
|
] }),
|
|
45912
46228
|
isExpanded && trace.effects.length > 0 && /* @__PURE__ */ jsx("div", { className: "ml-2 mt-1 mb-2 pl-2 border-l border-gray-200 dark:border-gray-700 space-y-1", children: trace.effects.map((effect, eIdx) => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1", children: [
|
|
45913
46229
|
/* @__PURE__ */ jsx(EffectBadge, { effect }),
|
|
@@ -45956,13 +46272,13 @@ function ServerBridgeTab({ bridge }) {
|
|
|
45956
46272
|
EmptyState,
|
|
45957
46273
|
{
|
|
45958
46274
|
title: t("debug.noBridgeData"),
|
|
45959
|
-
description: "
|
|
46275
|
+
description: t("debug.bridgeInitHint"),
|
|
45960
46276
|
className: "py-8"
|
|
45961
46277
|
}
|
|
45962
46278
|
);
|
|
45963
46279
|
}
|
|
45964
46280
|
const formatTime4 = (ts) => {
|
|
45965
|
-
if (ts === 0) return "
|
|
46281
|
+
if (ts === 0) return t("debug.never");
|
|
45966
46282
|
const d = new Date(ts);
|
|
45967
46283
|
return d.toLocaleTimeString("en-US", {
|
|
45968
46284
|
hour12: false,
|
|
@@ -45975,14 +46291,14 @@ function ServerBridgeTab({ bridge }) {
|
|
|
45975
46291
|
/* @__PURE__ */ jsxs(Card, { className: "p-3", children: [
|
|
45976
46292
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 mb-3", children: [
|
|
45977
46293
|
/* @__PURE__ */ jsx("div", { className: `w-3 h-3 rounded-full ${bridge.connected ? "bg-green-500 animate-pulse" : "bg-red-500"}` }),
|
|
45978
|
-
/* @__PURE__ */ jsx(Typography, { variant: "h6", children: bridge.connected ? "
|
|
46294
|
+
/* @__PURE__ */ jsx(Typography, { variant: "h6", children: bridge.connected ? t("debug.connected") : t("debug.disconnected") })
|
|
45979
46295
|
] }),
|
|
45980
46296
|
/* @__PURE__ */ jsxs(Stack, { gap: "xs", children: [
|
|
45981
46297
|
/* @__PURE__ */ jsx(
|
|
45982
46298
|
StatRow,
|
|
45983
46299
|
{
|
|
45984
46300
|
label: t("debug.status"),
|
|
45985
|
-
value: bridge.connected ? "
|
|
46301
|
+
value: bridge.connected ? t("debug.connected") : t("debug.disconnected"),
|
|
45986
46302
|
variant: bridge.connected ? "success" : "danger"
|
|
45987
46303
|
}
|
|
45988
46304
|
),
|
|
@@ -46010,13 +46326,10 @@ function ServerBridgeTab({ bridge }) {
|
|
|
46010
46326
|
] })
|
|
46011
46327
|
] }),
|
|
46012
46328
|
bridge.lastError && /* @__PURE__ */ jsxs(Card, { className: "p-3 border-red-200 dark:border-red-800 bg-red-50 dark:bg-red-950", children: [
|
|
46013
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "semibold", className: "text-red-600 dark:text-red-400 mb-1", children: "
|
|
46329
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "semibold", className: "text-red-600 dark:text-red-400 mb-1", children: t("debug.lastError") }),
|
|
46014
46330
|
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-red-500 font-mono break-all", children: bridge.lastError })
|
|
46015
46331
|
] }),
|
|
46016
|
-
bridge.connected && /* @__PURE__ */ jsx("div", { className: "text-center py-2", children: /* @__PURE__ */
|
|
46017
|
-
bridge.eventsForwarded + bridge.eventsReceived,
|
|
46018
|
-
" total events processed"
|
|
46019
|
-
] }) })
|
|
46332
|
+
bridge.connected && /* @__PURE__ */ jsx("div", { className: "text-center py-2", children: /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-gray-400", children: t("debug.totalEventsProcessed", { count: bridge.eventsForwarded + bridge.eventsReceived }) }) })
|
|
46020
46333
|
] }) });
|
|
46021
46334
|
}
|
|
46022
46335
|
var init_ServerBridgeTab = __esm({
|
|
@@ -46126,7 +46439,7 @@ function EventDispatcherTab({ traits: traits2, schema }) {
|
|
|
46126
46439
|
EmptyState,
|
|
46127
46440
|
{
|
|
46128
46441
|
title: t("debug.noActiveTraits"),
|
|
46129
|
-
description: "
|
|
46442
|
+
description: t("debug.traitsInitHint"),
|
|
46130
46443
|
className: "py-8"
|
|
46131
46444
|
}
|
|
46132
46445
|
);
|
|
@@ -46143,7 +46456,7 @@ function EventDispatcherTab({ traits: traits2, schema }) {
|
|
|
46143
46456
|
};
|
|
46144
46457
|
return /* @__PURE__ */ jsxs("div", { className: "debug-tab debug-tab--dispatch", children: [
|
|
46145
46458
|
/* @__PURE__ */ jsxs("div", { className: "mb-3", children: [
|
|
46146
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-gray-500 mb-1", children: "
|
|
46459
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-gray-500 mb-1", children: t("debug.activeStates") }),
|
|
46147
46460
|
/* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-1", children: traits2.map((trait) => /* @__PURE__ */ jsxs(Badge, { variant: "success", size: "sm", children: [
|
|
46148
46461
|
trait.name,
|
|
46149
46462
|
": ",
|
|
@@ -46151,8 +46464,8 @@ function EventDispatcherTab({ traits: traits2, schema }) {
|
|
|
46151
46464
|
] }, trait.id)) })
|
|
46152
46465
|
] }),
|
|
46153
46466
|
/* @__PURE__ */ jsxs("div", { className: "mb-3", children: [
|
|
46154
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-gray-500 mb-1", children: "
|
|
46155
|
-
availableEvents.length === 0 ? /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-gray-400 italic", children: "
|
|
46467
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-gray-500 mb-1", children: t("debug.availableEvents") }),
|
|
46468
|
+
availableEvents.length === 0 ? /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-gray-400 italic", children: t("debug.noTransitionsFromState") }) : /* @__PURE__ */ jsx(Stack, { gap: "xs", children: availableEvents.map(({ event, transitions }) => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
46156
46469
|
/* @__PURE__ */ jsx(
|
|
46157
46470
|
Button,
|
|
46158
46471
|
{
|
|
@@ -46164,15 +46477,15 @@ function EventDispatcherTab({ traits: traits2, schema }) {
|
|
|
46164
46477
|
}
|
|
46165
46478
|
),
|
|
46166
46479
|
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-gray-500", children: transitions.map((t2) => `${t2.from} -> ${t2.to}`).join(", ") }),
|
|
46167
|
-
transitions.some((
|
|
46480
|
+
transitions.some((tr) => tr.guard) && /* @__PURE__ */ jsx(Badge, { variant: "warning", size: "sm", children: t("debug.guarded") })
|
|
46168
46481
|
] }, event)) })
|
|
46169
46482
|
] }),
|
|
46170
46483
|
unavailableEvents.length > 0 && /* @__PURE__ */ jsxs("div", { className: "mb-3", children: [
|
|
46171
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-gray-500 mb-1", children: "
|
|
46484
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-gray-500 mb-1", children: t("debug.otherEvents") }),
|
|
46172
46485
|
/* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-1", children: unavailableEvents.map((event) => /* @__PURE__ */ jsx(Badge, { variant: "default", size: "sm", className: "opacity-50", children: event }, event)) })
|
|
46173
46486
|
] }),
|
|
46174
46487
|
log16.length > 0 && /* @__PURE__ */ jsxs("div", { children: [
|
|
46175
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-gray-500 mb-1", children: "
|
|
46488
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", weight: "medium", className: "text-gray-500 mb-1", children: t("debug.recentTransitions") }),
|
|
46176
46489
|
/* @__PURE__ */ jsx(Stack, { gap: "xs", children: log16.map((entry, i) => /* @__PURE__ */ jsxs(Typography, { variant: "small", className: "font-mono text-xs", children: [
|
|
46177
46490
|
/* @__PURE__ */ jsx("span", { className: "text-purple-400", children: entry.traitName }),
|
|
46178
46491
|
" ",
|
|
@@ -46203,21 +46516,20 @@ var init_RuntimeDebugger = __esm({
|
|
|
46203
46516
|
}
|
|
46204
46517
|
});
|
|
46205
46518
|
function ServerResponseRow({ sr }) {
|
|
46519
|
+
const { t } = useTranslate();
|
|
46206
46520
|
const entityEntries = Object.entries(sr.dataEntities);
|
|
46207
46521
|
return /* @__PURE__ */ jsxs("div", { className: "ml-4 pl-2 border-l border-purple-500/30 py-0.5 text-xs font-mono", children: [
|
|
46208
46522
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
46209
46523
|
/* @__PURE__ */ jsxs("span", { className: sr.success ? "text-green-600 dark:text-green-400" : "text-red-600 dark:text-red-400", children: [
|
|
46210
46524
|
sr.success ? "\u2713" : "\u2717",
|
|
46211
|
-
"
|
|
46525
|
+
" ",
|
|
46526
|
+
t("debug.server")
|
|
46212
46527
|
] }),
|
|
46213
46528
|
/* @__PURE__ */ jsx("span", { className: "text-purple-600 dark:text-purple-300", children: sr.orbitalName }),
|
|
46214
|
-
sr.clientEffects > 0 && /* @__PURE__ */
|
|
46215
|
-
sr.clientEffects,
|
|
46216
|
-
" clientEffect",
|
|
46217
|
-
sr.clientEffects !== 1 ? "s" : ""
|
|
46218
|
-
] }),
|
|
46529
|
+
sr.clientEffects > 0 && /* @__PURE__ */ jsx("span", { className: "px-1 rounded bg-purple-500/15 text-purple-600 dark:text-purple-300", children: t("debug.clientEffectsCount", { count: sr.clientEffects }) }),
|
|
46219
46530
|
sr.emittedEvents.length > 0 && /* @__PURE__ */ jsxs("span", { className: "px-1 rounded bg-blue-500/15 text-blue-300", children: [
|
|
46220
|
-
"
|
|
46531
|
+
t("debug.emitLabel"),
|
|
46532
|
+
" ",
|
|
46221
46533
|
sr.emittedEvents.join(", ")
|
|
46222
46534
|
] }),
|
|
46223
46535
|
sr.error && /* @__PURE__ */ jsx("span", { className: "px-1 rounded bg-red-500/15 text-red-600 dark:text-red-400 truncate max-w-[300px]", children: sr.error })
|
|
@@ -46225,13 +46537,12 @@ function ServerResponseRow({ sr }) {
|
|
|
46225
46537
|
entityEntries.length > 0 && /* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-1 mt-0.5", children: entityEntries.map(([name, count]) => /* @__PURE__ */ jsxs("span", { className: "px-1 rounded bg-[var(--color-card)] text-foreground", children: [
|
|
46226
46538
|
name,
|
|
46227
46539
|
": ",
|
|
46228
|
-
count
|
|
46229
|
-
" row",
|
|
46230
|
-
count !== 1 ? "s" : ""
|
|
46540
|
+
t("debug.rowsCount", { count })
|
|
46231
46541
|
] }, name)) })
|
|
46232
46542
|
] });
|
|
46233
46543
|
}
|
|
46234
46544
|
function TransitionRow({ trace }) {
|
|
46545
|
+
const { t } = useTranslate();
|
|
46235
46546
|
const isServerEntry = !!trace.serverResponse && trace.traitName.startsWith("server:");
|
|
46236
46547
|
const hasFailedEffects = trace.effects.some((e) => e.status === "failed");
|
|
46237
46548
|
if (isServerEntry && trace.serverResponse) {
|
|
@@ -46239,7 +46550,7 @@ function TransitionRow({ trace }) {
|
|
|
46239
46550
|
/* @__PURE__ */ jsxs("div", { className: "flex items-start gap-2 text-xs font-mono", children: [
|
|
46240
46551
|
/* @__PURE__ */ jsx("span", { className: "mt-1.5 w-1.5 h-1.5 rounded-full flex-shrink-0 bg-purple-500" }),
|
|
46241
46552
|
/* @__PURE__ */ jsx(Badge, { variant: "warning", size: "sm", className: "flex-shrink-0", children: trace.event }),
|
|
46242
|
-
/* @__PURE__ */ jsx("span", { className: "text-purple-600 dark:text-purple-400 flex-shrink-0", children: "
|
|
46553
|
+
/* @__PURE__ */ jsx("span", { className: "text-purple-600 dark:text-purple-400 flex-shrink-0", children: t("debug.serverResponse") })
|
|
46243
46554
|
] }),
|
|
46244
46555
|
/* @__PURE__ */ jsx(ServerResponseRow, { sr: trace.serverResponse })
|
|
46245
46556
|
] });
|
|
@@ -46280,6 +46591,7 @@ function VerifyModePanel({
|
|
|
46280
46591
|
serverCount,
|
|
46281
46592
|
localCount
|
|
46282
46593
|
}) {
|
|
46594
|
+
const { t } = useTranslate();
|
|
46283
46595
|
const [expanded, setExpanded] = React97.useState(true);
|
|
46284
46596
|
const scrollRef = React97.useRef(null);
|
|
46285
46597
|
const prevCountRef = React97.useRef(0);
|
|
@@ -46310,30 +46622,20 @@ function VerifyModePanel({
|
|
|
46310
46622
|
onClick: () => setExpanded((v) => !v),
|
|
46311
46623
|
className: "px-3 py-1.5 flex items-center gap-3 text-xs font-mono border-b border-border flex-shrink-0 w-full text-left hover:bg-[var(--color-card-hover,transparent)] cursor-pointer",
|
|
46312
46624
|
"aria-expanded": expanded,
|
|
46313
|
-
"aria-label": expanded ? "
|
|
46625
|
+
"aria-label": expanded ? t("debug.collapseVerificationTimeline") : t("debug.expandVerificationTimeline"),
|
|
46314
46626
|
"data-testid": "debugger-verify-toggle",
|
|
46315
46627
|
children: [
|
|
46316
46628
|
/* @__PURE__ */ jsx("span", { className: "text-foreground/50 w-3", "aria-hidden": true, children: expanded ? "\u25BE" : "\u25B8" }),
|
|
46317
|
-
/* @__PURE__ */ jsx(Badge, { variant: failedChecks > 0 ? "danger" : "success", size: "sm", children: failedChecks > 0 ?
|
|
46318
|
-
/* @__PURE__ */
|
|
46319
|
-
|
|
46320
|
-
" local"
|
|
46321
|
-
] }),
|
|
46322
|
-
/* @__PURE__ */ jsxs("span", { className: "text-purple-600 dark:text-purple-400", children: [
|
|
46323
|
-
serverCount,
|
|
46324
|
-
" server"
|
|
46325
|
-
] }),
|
|
46629
|
+
/* @__PURE__ */ jsx(Badge, { variant: failedChecks > 0 ? "danger" : "success", size: "sm", children: failedChecks > 0 ? t("debug.failCount", { count: failedChecks }) : t("debug.ok") }),
|
|
46630
|
+
/* @__PURE__ */ jsx("span", { className: "text-foreground/70", children: t("debug.localCount", { count: localCount }) }),
|
|
46631
|
+
/* @__PURE__ */ jsx("span", { className: "text-purple-600 dark:text-purple-400", children: t("debug.serverCount", { count: serverCount }) }),
|
|
46326
46632
|
traitStates && /* @__PURE__ */ jsx("span", { className: "text-cyan-600 dark:text-cyan-400 truncate max-w-[400px]", children: traitStates }),
|
|
46327
|
-
!expanded && transitions.length > 0 && /* @__PURE__ */
|
|
46328
|
-
transitions.length,
|
|
46329
|
-
" transition",
|
|
46330
|
-
transitions.length !== 1 ? "s" : ""
|
|
46331
|
-
] })
|
|
46633
|
+
!expanded && transitions.length > 0 && /* @__PURE__ */ jsx("span", { className: "ml-auto text-foreground/50", children: t("debug.transitionsCount", { count: transitions.length }) })
|
|
46332
46634
|
]
|
|
46333
46635
|
}
|
|
46334
46636
|
),
|
|
46335
46637
|
expanded && /* @__PURE__ */ jsxs("div", { className: "flex-1 flex overflow-hidden", children: [
|
|
46336
|
-
/* @__PURE__ */ jsx("div", { ref: scrollRef, className: "flex-1 overflow-y-auto", children: /* @__PURE__ */ jsx("div", { className: "px-2 py-1", children: transitions.length === 0 ? /* @__PURE__ */ jsx("div", { className: "text-foreground/50 text-xs font-mono py-2 text-center", children: "
|
|
46638
|
+
/* @__PURE__ */ jsx("div", { ref: scrollRef, className: "flex-1 overflow-y-auto", children: /* @__PURE__ */ jsx("div", { className: "px-2 py-1", children: transitions.length === 0 ? /* @__PURE__ */ jsx("div", { className: "text-foreground/50 text-xs font-mono py-2 text-center", children: t("debug.waitingForTransitions") }) : /* @__PURE__ */ jsx("div", { className: "space-y-0.5", children: transitions.map((trace) => /* @__PURE__ */ jsx(TransitionRow, { trace }, trace.id)) }) }) }),
|
|
46337
46639
|
/* @__PURE__ */ jsx(WalkMinimap, {})
|
|
46338
46640
|
] })
|
|
46339
46641
|
]
|
|
@@ -46349,6 +46651,7 @@ function RuntimeDebugger({
|
|
|
46349
46651
|
defaultTab,
|
|
46350
46652
|
schema
|
|
46351
46653
|
}) {
|
|
46654
|
+
const { t } = useTranslate();
|
|
46352
46655
|
const [isCollapsed, setIsCollapsed] = React97.useState(mode === "verify" ? true : defaultCollapsed);
|
|
46353
46656
|
const [isVisible, setIsVisible] = React97.useState(mode === "inline" || mode === "verify" || isDebugEnabled2());
|
|
46354
46657
|
const debugData = useDebugData();
|
|
@@ -46387,55 +46690,55 @@ function RuntimeDebugger({
|
|
|
46387
46690
|
const tabItems = [
|
|
46388
46691
|
{
|
|
46389
46692
|
id: "dispatch",
|
|
46390
|
-
label: "
|
|
46693
|
+
label: t("debug.tabDispatch"),
|
|
46391
46694
|
badge: debugData.traits.length || void 0,
|
|
46392
46695
|
content: /* @__PURE__ */ jsx(EventDispatcherTab, { traits: debugData.traits, schema })
|
|
46393
46696
|
},
|
|
46394
46697
|
{
|
|
46395
46698
|
id: "verify",
|
|
46396
|
-
label: failedChecks > 0 ? "
|
|
46699
|
+
label: failedChecks > 0 ? t("debug.tabVerifyAlert") : t("debug.tabVerify"),
|
|
46397
46700
|
badge: verification.summary.totalChecks || void 0,
|
|
46398
46701
|
content: /* @__PURE__ */ jsx(VerificationTab, { checks: verification.checks, summary: verification.summary })
|
|
46399
46702
|
},
|
|
46400
46703
|
{
|
|
46401
46704
|
id: "timeline",
|
|
46402
|
-
label: "
|
|
46705
|
+
label: t("debug.tabTimeline"),
|
|
46403
46706
|
badge: verification.transitions.length || void 0,
|
|
46404
46707
|
content: /* @__PURE__ */ jsx(TransitionTimeline, { transitions: verification.transitions })
|
|
46405
46708
|
},
|
|
46406
46709
|
{
|
|
46407
46710
|
id: "bridge",
|
|
46408
|
-
label: "
|
|
46711
|
+
label: t("debug.tabBridge"),
|
|
46409
46712
|
badge: verification.bridge?.connected ? void 0 : 1,
|
|
46410
46713
|
content: /* @__PURE__ */ jsx(ServerBridgeTab, { bridge: verification.bridge })
|
|
46411
46714
|
},
|
|
46412
46715
|
{
|
|
46413
46716
|
id: "traits",
|
|
46414
|
-
label: "
|
|
46717
|
+
label: t("debug.tabTraits"),
|
|
46415
46718
|
badge: debugData.traits.length || void 0,
|
|
46416
46719
|
content: /* @__PURE__ */ jsx(TraitsTab, { traits: debugData.traits })
|
|
46417
46720
|
},
|
|
46418
46721
|
{
|
|
46419
46722
|
id: "ticks",
|
|
46420
|
-
label: "
|
|
46421
|
-
badge: debugData.ticks.filter((
|
|
46723
|
+
label: t("debug.tabTicks"),
|
|
46724
|
+
badge: debugData.ticks.filter((tick) => tick.active).length || void 0,
|
|
46422
46725
|
content: /* @__PURE__ */ jsx(TicksTab, { ticks: debugData.ticks })
|
|
46423
46726
|
},
|
|
46424
46727
|
{
|
|
46425
46728
|
id: "entities",
|
|
46426
|
-
label: "
|
|
46729
|
+
label: t("debug.tabEntities"),
|
|
46427
46730
|
badge: debugData.entitySnapshot?.runtime.length || void 0,
|
|
46428
46731
|
content: /* @__PURE__ */ jsx(EntitiesTab, { snapshot: debugData.entitySnapshot })
|
|
46429
46732
|
},
|
|
46430
46733
|
{
|
|
46431
46734
|
id: "events",
|
|
46432
|
-
label: "
|
|
46735
|
+
label: t("debug.tabEvents"),
|
|
46433
46736
|
badge: debugData.events.length > 0 ? debugData.events.length : void 0,
|
|
46434
46737
|
content: /* @__PURE__ */ jsx(EventFlowTab, { events: debugData.events })
|
|
46435
46738
|
},
|
|
46436
46739
|
{
|
|
46437
46740
|
id: "guards",
|
|
46438
|
-
label: "
|
|
46741
|
+
label: t("debug.tabGuards"),
|
|
46439
46742
|
badge: debugData.guards.filter((g) => !g.result).length || void 0,
|
|
46440
46743
|
content: /* @__PURE__ */ jsx(GuardsPanel, { guards: debugData.guards })
|
|
46441
46744
|
}
|
|
@@ -46463,15 +46766,10 @@ function RuntimeDebugger({
|
|
|
46463
46766
|
children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
46464
46767
|
/* @__PURE__ */ jsxs(Typography, { variant: "h6", style: { fontSize: "0.75rem" }, children: [
|
|
46465
46768
|
isCollapsed ? "\u25B6" : "\u25BC",
|
|
46466
|
-
"
|
|
46769
|
+
" ",
|
|
46770
|
+
t("debug.debugger")
|
|
46467
46771
|
] }),
|
|
46468
|
-
failedChecks > 0 ? /* @__PURE__ */
|
|
46469
|
-
failedChecks,
|
|
46470
|
-
" failed"
|
|
46471
|
-
] }) : debugData.traits.length > 0 ? /* @__PURE__ */ jsxs(Badge, { variant: "success", size: "sm", children: [
|
|
46472
|
-
debugData.traits.length,
|
|
46473
|
-
" traits"
|
|
46474
|
-
] }) : /* @__PURE__ */ jsx(Badge, { variant: "info", size: "sm", children: "Idle" })
|
|
46772
|
+
failedChecks > 0 ? /* @__PURE__ */ jsx(Badge, { variant: "danger", size: "sm", children: t("debug.failedCount", { count: failedChecks }) }) : debugData.traits.length > 0 ? /* @__PURE__ */ jsx(Badge, { variant: "success", size: "sm", children: t("debug.traitsCount", { count: debugData.traits.length }) }) : /* @__PURE__ */ jsx(Badge, { variant: "info", size: "sm", children: t("debug.idle") })
|
|
46475
46773
|
] })
|
|
46476
46774
|
}
|
|
46477
46775
|
),
|
|
@@ -46489,9 +46787,9 @@ function RuntimeDebugger({
|
|
|
46489
46787
|
);
|
|
46490
46788
|
}
|
|
46491
46789
|
if (mode === "verify") {
|
|
46492
|
-
const traitStates = debugData.traits.map((
|
|
46493
|
-
const serverEntries = verification.transitions.filter((
|
|
46494
|
-
const localEntries = verification.transitions.filter((
|
|
46790
|
+
const traitStates = debugData.traits.map((t2) => `${t2.name}:${t2.currentState}`).join(" | ");
|
|
46791
|
+
const serverEntries = verification.transitions.filter((t2) => t2.serverResponse);
|
|
46792
|
+
const localEntries = verification.transitions.filter((t2) => !t2.serverResponse);
|
|
46495
46793
|
return /* @__PURE__ */ jsx(
|
|
46496
46794
|
VerifyModePanel,
|
|
46497
46795
|
{
|
|
@@ -46523,7 +46821,7 @@ function RuntimeDebugger({
|
|
|
46523
46821
|
variant: "secondary",
|
|
46524
46822
|
size: "sm",
|
|
46525
46823
|
className: "runtime-debugger__toggle",
|
|
46526
|
-
title: "
|
|
46824
|
+
title: t("debug.openDebugger"),
|
|
46527
46825
|
children: failedChecks > 0 ? /* @__PURE__ */ jsxs("span", { className: "relative", children: [
|
|
46528
46826
|
/* @__PURE__ */ jsx("span", { children: "V" }),
|
|
46529
46827
|
/* @__PURE__ */ jsx("span", { className: "absolute -top-1 -right-2 w-2 h-2 bg-red-500 rounded-full" })
|
|
@@ -46533,11 +46831,8 @@ function RuntimeDebugger({
|
|
|
46533
46831
|
/* @__PURE__ */ jsxs("div", { className: "runtime-debugger__header", children: [
|
|
46534
46832
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
46535
46833
|
/* @__PURE__ */ jsx("span", { className: "text-lg", children: "V" }),
|
|
46536
|
-
/* @__PURE__ */ jsx(Typography, { variant: "h6", children: "
|
|
46537
|
-
failedChecks > 0 ? /* @__PURE__ */
|
|
46538
|
-
failedChecks,
|
|
46539
|
-
" failed"
|
|
46540
|
-
] }) : verification.summary.totalChecks > 0 ? /* @__PURE__ */ jsx(Badge, { variant: "success", size: "sm", children: "All passing" }) : /* @__PURE__ */ jsx(Badge, { variant: "info", size: "sm", children: "Runtime" })
|
|
46834
|
+
/* @__PURE__ */ jsx(Typography, { variant: "h6", children: t("debug.kflowVerifier") }),
|
|
46835
|
+
failedChecks > 0 ? /* @__PURE__ */ jsx(Badge, { variant: "danger", size: "sm", children: t("debug.failedCount", { count: failedChecks }) }) : verification.summary.totalChecks > 0 ? /* @__PURE__ */ jsx(Badge, { variant: "success", size: "sm", children: t("debug.allPassing") }) : /* @__PURE__ */ jsx(Badge, { variant: "info", size: "sm", children: t("debug.runtime") })
|
|
46541
46836
|
] }),
|
|
46542
46837
|
/* @__PURE__ */ jsx(
|
|
46543
46838
|
Button,
|
|
@@ -46545,7 +46840,7 @@ function RuntimeDebugger({
|
|
|
46545
46840
|
onClick: () => setIsCollapsed(true),
|
|
46546
46841
|
variant: "ghost",
|
|
46547
46842
|
size: "sm",
|
|
46548
|
-
title: "
|
|
46843
|
+
title: t("debug.close"),
|
|
46549
46844
|
children: "x"
|
|
46550
46845
|
}
|
|
46551
46846
|
)
|
|
@@ -46559,7 +46854,7 @@ function RuntimeDebugger({
|
|
|
46559
46854
|
className: "runtime-debugger__tabs"
|
|
46560
46855
|
}
|
|
46561
46856
|
) }),
|
|
46562
|
-
/* @__PURE__ */ jsx("div", { className: "runtime-debugger__footer", children: /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-foreground/50", children: "
|
|
46857
|
+
/* @__PURE__ */ jsx("div", { className: "runtime-debugger__footer", children: /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-foreground/50", children: t("debug.toggleHint") }) })
|
|
46563
46858
|
] })
|
|
46564
46859
|
}
|
|
46565
46860
|
);
|
|
@@ -46585,6 +46880,7 @@ var init_RuntimeDebugger2 = __esm({
|
|
|
46585
46880
|
init_TransitionTimeline();
|
|
46586
46881
|
init_ServerBridgeTab();
|
|
46587
46882
|
init_EventDispatcherTab();
|
|
46883
|
+
init_useTranslate();
|
|
46588
46884
|
init_RuntimeDebugger();
|
|
46589
46885
|
RuntimeDebugger.displayName = "RuntimeDebugger";
|
|
46590
46886
|
}
|
|
@@ -47873,7 +48169,7 @@ var init_StatCard = __esm({
|
|
|
47873
48169
|
}
|
|
47874
48170
|
);
|
|
47875
48171
|
}
|
|
47876
|
-
const label = schemaStats?.[0]?.label || labelToUse || "
|
|
48172
|
+
const label = schemaStats?.[0]?.label || labelToUse || t("statCard.defaultLabel");
|
|
47877
48173
|
const normalizedPropValue = Array.isArray(propValue) ? propValue[0] ?? propValue.length : propValue;
|
|
47878
48174
|
const value = schemaStats?.[0]?.value ?? normalizedPropValue ?? 0;
|
|
47879
48175
|
const trendDirection = manualDirection || (calculatedTrend === void 0 || calculatedTrend === 0 ? "neutral" : calculatedTrend > 0 ? "up" : "down");
|
|
@@ -47916,7 +48212,7 @@ var init_StatCard = __esm({
|
|
|
47916
48212
|
]
|
|
47917
48213
|
}
|
|
47918
48214
|
),
|
|
47919
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", color: "secondary", as: "span", children: "
|
|
48215
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", color: "secondary", as: "span", children: t("statCard.vsLastPeriod") })
|
|
47920
48216
|
] }),
|
|
47921
48217
|
subtitle && !calculatedTrend && /* @__PURE__ */ jsx(Typography, { variant: "small", color: "secondary", children: subtitle })
|
|
47922
48218
|
] }),
|
|
@@ -52121,6 +52417,9 @@ var AvlEmitListen = ({
|
|
|
52121
52417
|
] });
|
|
52122
52418
|
};
|
|
52123
52419
|
AvlEmitListen.displayName = "AvlEmitListen";
|
|
52420
|
+
|
|
52421
|
+
// components/avl/molecules/AvlSlotMap.tsx
|
|
52422
|
+
init_useTranslate();
|
|
52124
52423
|
var SLOT_PRESETS = {
|
|
52125
52424
|
header: { x: 10, y: 5, width: 340, height: 35 },
|
|
52126
52425
|
main: { x: 120, y: 50, width: 230, height: 195 },
|
|
@@ -52165,6 +52464,7 @@ var AvlSlotMap = ({
|
|
|
52165
52464
|
color = "var(--color-primary)",
|
|
52166
52465
|
animated = false
|
|
52167
52466
|
}) => {
|
|
52467
|
+
const { t } = useTranslate();
|
|
52168
52468
|
const ox = (600 - pageWidth) / 2;
|
|
52169
52469
|
const oy = (400 - pageHeight) / 2;
|
|
52170
52470
|
let unknownIdx = 0;
|
|
@@ -52215,7 +52515,7 @@ var AvlSlotMap = ({
|
|
|
52215
52515
|
fontSize: 10,
|
|
52216
52516
|
fontFamily: "inherit",
|
|
52217
52517
|
fontWeight: "bold",
|
|
52218
|
-
children: "
|
|
52518
|
+
children: t("avl.pageLayout")
|
|
52219
52519
|
}
|
|
52220
52520
|
),
|
|
52221
52521
|
resolvedSlots.map((slot) => {
|
|
@@ -52264,7 +52564,7 @@ var AvlSlotMap = ({
|
|
|
52264
52564
|
opacity: 0.6,
|
|
52265
52565
|
children: [
|
|
52266
52566
|
slot.name,
|
|
52267
|
-
isOverlay ?
|
|
52567
|
+
isOverlay ? ` ${t("avl.overlaySuffix")}` : ""
|
|
52268
52568
|
]
|
|
52269
52569
|
}
|
|
52270
52570
|
)
|
|
@@ -53196,23 +53496,25 @@ var SystemNode = ({ data }) => {
|
|
|
53196
53496
|
SystemNode.displayName = "SystemNode";
|
|
53197
53497
|
|
|
53198
53498
|
// components/avl/molecules/DetailView.tsx
|
|
53499
|
+
init_useTranslate();
|
|
53199
53500
|
init_AvlState();
|
|
53200
53501
|
init_AvlEffect();
|
|
53201
53502
|
init_types();
|
|
53202
53503
|
var DetailView = ({ data }) => {
|
|
53504
|
+
const { t } = useTranslate();
|
|
53203
53505
|
const traitName = data.traits[0]?.name;
|
|
53204
53506
|
const traitData = traitName ? data.traitDetails[traitName] : void 0;
|
|
53205
53507
|
if (!traitData || traitData.transitions.length === 0) {
|
|
53206
|
-
return /* @__PURE__ */ jsx("div", { className: "rounded-lg border-2 border-[var(--color-border)] bg-[var(--color-card)] p-4 text-center text-[var(--color-muted-foreground)] text-sm", children: "
|
|
53508
|
+
return /* @__PURE__ */ jsx("div", { className: "rounded-lg border-2 border-[var(--color-border)] bg-[var(--color-card)] p-4 text-center text-[var(--color-muted-foreground)] text-sm", children: t("detailView.noTransitionData") });
|
|
53207
53509
|
}
|
|
53208
53510
|
const transition = traitData.transitions[0];
|
|
53209
53511
|
const fromState = traitData.states.find((s) => s.name === transition.from);
|
|
53210
53512
|
const toState = traitData.states.find((s) => s.name === transition.to);
|
|
53211
53513
|
const transitionCounts = {};
|
|
53212
53514
|
for (const s of traitData.states) transitionCounts[s.name] = 0;
|
|
53213
|
-
for (const
|
|
53214
|
-
transitionCounts[
|
|
53215
|
-
transitionCounts[
|
|
53515
|
+
for (const t2 of traitData.transitions) {
|
|
53516
|
+
transitionCounts[t2.from] = (transitionCounts[t2.from] ?? 0) + 1;
|
|
53517
|
+
transitionCounts[t2.to] = (transitionCounts[t2.to] ?? 0) + 1;
|
|
53216
53518
|
}
|
|
53217
53519
|
const maxTC = Math.max(...Object.values(transitionCounts), 0);
|
|
53218
53520
|
const fromRole = getStateRole(transition.from, fromState?.isInitial, fromState?.isTerminal, transitionCounts[transition.from] ?? 0, maxTC);
|
|
@@ -53229,21 +53531,21 @@ var DetailView = ({ data }) => {
|
|
|
53229
53531
|
] }) }),
|
|
53230
53532
|
/* @__PURE__ */ jsxs("div", { className: "px-4 py-3 space-y-3", children: [
|
|
53231
53533
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
53232
|
-
/* @__PURE__ */ jsx("div", { className: "text-xs uppercase tracking-wider text-[var(--color-muted-foreground)] mb-1", children: "
|
|
53534
|
+
/* @__PURE__ */ jsx("div", { className: "text-xs uppercase tracking-wider text-[var(--color-muted-foreground)] mb-1", children: t("avl.trigger") }),
|
|
53233
53535
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5", children: [
|
|
53234
53536
|
/* @__PURE__ */ jsx("svg", { width: 16, height: 16, viewBox: "0 0 16 16", children: /* @__PURE__ */ jsx(AvlEvent, { x: 8, y: 8, size: 7 }) }),
|
|
53235
53537
|
/* @__PURE__ */ jsx("span", { className: "text-sm font-semibold text-[var(--color-foreground)]", children: transition.event })
|
|
53236
53538
|
] })
|
|
53237
53539
|
] }),
|
|
53238
53540
|
hasGuard && /* @__PURE__ */ jsxs("div", { children: [
|
|
53239
|
-
/* @__PURE__ */ jsx("div", { className: "text-xs uppercase tracking-wider text-[var(--color-muted-foreground)] mb-1", children: "
|
|
53541
|
+
/* @__PURE__ */ jsx("div", { className: "text-xs uppercase tracking-wider text-[var(--color-muted-foreground)] mb-1", children: t("avl.guard") }),
|
|
53240
53542
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1.5", children: [
|
|
53241
53543
|
/* @__PURE__ */ jsx("svg", { width: 14, height: 14, viewBox: "0 0 14 14", children: /* @__PURE__ */ jsx(AvlGuard, { x: 7, y: 7, size: 6 }) }),
|
|
53242
53544
|
/* @__PURE__ */ jsx("span", { className: "text-xs font-mono text-[var(--color-muted-foreground)] opacity-60", children: typeof transition.guard === "string" ? transition.guard : JSON.stringify(transition.guard) })
|
|
53243
53545
|
] })
|
|
53244
53546
|
] }),
|
|
53245
53547
|
transition.effects.length > 0 && /* @__PURE__ */ jsxs("div", { children: [
|
|
53246
|
-
/* @__PURE__ */ jsx("div", { className: "text-xs uppercase tracking-wider text-[var(--color-muted-foreground)] mb-1", children: "
|
|
53548
|
+
/* @__PURE__ */ jsx("div", { className: "text-xs uppercase tracking-wider text-[var(--color-muted-foreground)] mb-1", children: t("avl.effects") }),
|
|
53247
53549
|
/* @__PURE__ */ jsx("div", { className: "space-y-1.5", children: transition.effects.map((effect, i) => /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-1.5", children: [
|
|
53248
53550
|
/* @__PURE__ */ jsxs("span", { className: "text-xs text-[var(--color-muted-foreground)] w-3 text-right mt-0.5", children: [
|
|
53249
53551
|
i + 1,
|
|
@@ -53279,6 +53581,7 @@ AvlOrbitalNode.displayName = "AvlOrbitalNode";
|
|
|
53279
53581
|
|
|
53280
53582
|
// components/avl/molecules/AvlTransitionEdge.tsx
|
|
53281
53583
|
init_types();
|
|
53584
|
+
init_useTranslate();
|
|
53282
53585
|
var AvlTransitionEdge = ({
|
|
53283
53586
|
id,
|
|
53284
53587
|
sourceX,
|
|
@@ -53291,6 +53594,7 @@ var AvlTransitionEdge = ({
|
|
|
53291
53594
|
markerEnd,
|
|
53292
53595
|
style
|
|
53293
53596
|
}) => {
|
|
53597
|
+
const { t } = useTranslate();
|
|
53294
53598
|
const [path, labelX, labelY] = getBezierPath({
|
|
53295
53599
|
sourceX,
|
|
53296
53600
|
sourceY,
|
|
@@ -53322,9 +53626,9 @@ var AvlTransitionEdge = ({
|
|
|
53322
53626
|
className: "absolute pointer-events-all nodrag nopan flex items-center gap-1",
|
|
53323
53627
|
style: { transform: `translate(-50%, -50%) translate(${labelX}px, ${labelY}px)` },
|
|
53324
53628
|
children: [
|
|
53325
|
-
data?.hasGuard && /* @__PURE__ */ jsx("div", { className: "w-3 h-3 rotate-45 border border-amber-500 bg-amber-500/10 shrink-0", title: "
|
|
53629
|
+
data?.hasGuard && /* @__PURE__ */ jsx("div", { className: "w-3 h-3 rotate-45 border border-amber-500 bg-amber-500/10 shrink-0", title: t("avl.guard") }),
|
|
53326
53630
|
/* @__PURE__ */ jsx("div", { className: "px-2 py-0.5 text-xs font-medium rounded-full bg-[var(--color-card)] border border-[var(--color-border)] text-[var(--color-foreground)] truncate max-w-[160px]", children: data?.event ?? "" }),
|
|
53327
|
-
data?.hasEffects && /* @__PURE__ */ jsx("div", { className: "w-2.5 h-2.5 rounded-full bg-violet-500/80 shrink-0", title: "
|
|
53631
|
+
data?.hasEffects && /* @__PURE__ */ jsx("div", { className: "w-2.5 h-2.5 rounded-full bg-violet-500/80 shrink-0", title: t("avl.effects") })
|
|
53328
53632
|
]
|
|
53329
53633
|
}
|
|
53330
53634
|
) })
|
|
@@ -56645,6 +56949,7 @@ function BrowserPlayground({
|
|
|
56645
56949
|
|
|
56646
56950
|
// components/avl/molecules/OrbPreviewNode.tsx
|
|
56647
56951
|
init_useEventBus();
|
|
56952
|
+
init_useTranslate();
|
|
56648
56953
|
|
|
56649
56954
|
// components/avl/molecules/useCanvasDnd.tsx
|
|
56650
56955
|
init_useEventBus();
|
|
@@ -57132,6 +57437,7 @@ var OrbPreviewNodeInner = (props) => {
|
|
|
57132
57437
|
const screenSize = useContext(ScreenSizeContext);
|
|
57133
57438
|
const preset = SCREEN_SIZE_PRESETS[screenSize];
|
|
57134
57439
|
const { select } = useContext(PatternSelectionContext);
|
|
57440
|
+
const { t } = useTranslate();
|
|
57135
57441
|
const eventBus = useEventBus();
|
|
57136
57442
|
const reactFlow = useReactFlow();
|
|
57137
57443
|
const contentRef = useRef(null);
|
|
@@ -57152,7 +57458,7 @@ var OrbPreviewNodeInner = (props) => {
|
|
|
57152
57458
|
const isSuccess = status === "success";
|
|
57153
57459
|
const isError = status === "error";
|
|
57154
57460
|
const label = isImportedGroup ? data.behaviorAlias ?? "" : isExpanded ? `${data.transitionEvent ?? ""}` : data.orbitalName;
|
|
57155
|
-
const sublabel = isImportedGroup ? `${data.behaviorName ?? ""}${typeof data.transitionCount === "number" && data.transitionCount > 1 ? ` \xB7 ${data.transitionCount}
|
|
57461
|
+
const sublabel = isImportedGroup ? `${data.behaviorName ?? ""}${typeof data.transitionCount === "number" && data.transitionCount > 1 ? ` \xB7 ${t("orbPreview.screensCount", { count: data.transitionCount })}` : ""}` : isExpanded ? `${data.fromState ?? ""} \u2192 ${data.toState ?? ""}` : data.entityName ?? "";
|
|
57156
57462
|
const orbitalSchema = useMemo(() => {
|
|
57157
57463
|
const fullSchema = data._fullSchema;
|
|
57158
57464
|
if (!fullSchema) return void 0;
|
|
@@ -57320,7 +57626,7 @@ var OrbPreviewNodeInner = (props) => {
|
|
|
57320
57626
|
color: "var(--color-muted-foreground)",
|
|
57321
57627
|
zIndex: 3
|
|
57322
57628
|
},
|
|
57323
|
-
children: "
|
|
57629
|
+
children: t("orbPreview.previewBadge")
|
|
57324
57630
|
}
|
|
57325
57631
|
),
|
|
57326
57632
|
hovered && !dragActive && !l1IsOver && /* @__PURE__ */ jsx(
|
|
@@ -57342,7 +57648,7 @@ var OrbPreviewNodeInner = (props) => {
|
|
|
57342
57648
|
},
|
|
57343
57649
|
children: [
|
|
57344
57650
|
/* @__PURE__ */ jsx("span", { style: { fontSize: 12 }, children: "\u279E" }),
|
|
57345
|
-
"
|
|
57651
|
+
t("orbPreview.doubleClickToOpen")
|
|
57346
57652
|
]
|
|
57347
57653
|
}
|
|
57348
57654
|
)
|
|
@@ -57365,7 +57671,7 @@ var OrbPreviewNodeInner = (props) => {
|
|
|
57365
57671
|
color: "var(--color-primary-foreground)",
|
|
57366
57672
|
boxShadow: "var(--shadow-lg)"
|
|
57367
57673
|
},
|
|
57368
|
-
children: "
|
|
57674
|
+
children: t("orbPreview.dropToAddAndOpen")
|
|
57369
57675
|
}
|
|
57370
57676
|
)
|
|
57371
57677
|
}
|
|
@@ -57399,7 +57705,7 @@ var OrbPreviewNodeInner = (props) => {
|
|
|
57399
57705
|
borderTopColor: "transparent",
|
|
57400
57706
|
zIndex: 2
|
|
57401
57707
|
},
|
|
57402
|
-
title: "
|
|
57708
|
+
title: t("orbPreview.dispatching")
|
|
57403
57709
|
}
|
|
57404
57710
|
)
|
|
57405
57711
|
] }),
|
|
@@ -57495,7 +57801,7 @@ var OrbPreviewNodeInner = (props) => {
|
|
|
57495
57801
|
height: "auto"
|
|
57496
57802
|
}
|
|
57497
57803
|
) })
|
|
57498
|
-
) : /* @__PURE__ */ jsx(Box, { className: "flex items-center justify-center", style: { minHeight: preset.minHeight }, children: /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground", children: "
|
|
57804
|
+
) : /* @__PURE__ */ jsx(Box, { className: "flex items-center justify-center", style: { minHeight: preset.minHeight }, children: /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground", children: t("orbPreview.noPreview") }) })
|
|
57499
57805
|
]
|
|
57500
57806
|
}
|
|
57501
57807
|
),
|
|
@@ -58086,7 +58392,7 @@ function OrbInspector({ node, schema, editable = false, userType = "builder", th
|
|
|
58086
58392
|
const handleRemoveEffect = useCallback((effectIndex) => {
|
|
58087
58393
|
eventBus.emit("UI:REMOVE_EFFECT", { effectIndex });
|
|
58088
58394
|
}, [eventBus]);
|
|
58089
|
-
const headerTitle = selectedPattern ? selectedPattern.patternType : isExpanded ? transitionEvent || "
|
|
58395
|
+
const headerTitle = selectedPattern ? selectedPattern.patternType : isExpanded ? transitionEvent || t("avl.transition") : orbitalName;
|
|
58090
58396
|
return /* @__PURE__ */ jsxs(Box, { className: "flex flex-col bg-card border-l border-border h-full w-full sm:w-[340px]", children: [
|
|
58091
58397
|
/* @__PURE__ */ jsxs(Box, { className: "shrink-0 border-b border-border", children: [
|
|
58092
58398
|
/* @__PURE__ */ jsxs(Box, { className: "flex items-center justify-between px-4 py-2", children: [
|
|
@@ -58103,7 +58409,7 @@ function OrbInspector({ node, schema, editable = false, userType = "builder", th
|
|
|
58103
58409
|
{
|
|
58104
58410
|
onClick: onClose,
|
|
58105
58411
|
className: "text-muted-foreground hover:text-foreground text-sm cursor-pointer bg-transparent border-none p-1",
|
|
58106
|
-
"aria-label": "
|
|
58412
|
+
"aria-label": t("common.close"),
|
|
58107
58413
|
children: "\xD7"
|
|
58108
58414
|
}
|
|
58109
58415
|
)
|
|
@@ -58113,7 +58419,7 @@ function OrbInspector({ node, schema, editable = false, userType = "builder", th
|
|
|
58113
58419
|
{
|
|
58114
58420
|
onClick: () => setActiveTab(tab),
|
|
58115
58421
|
className: `pb-2 text-xs font-medium border-b-2 cursor-pointer bg-transparent border-x-0 border-t-0 px-0 capitalize ${activeTab === tab ? "border-[var(--color-primary)] text-foreground" : "border-transparent text-muted-foreground hover:text-foreground"}`,
|
|
58116
|
-
children: tab
|
|
58422
|
+
children: t(`orbInspector.tab.${tab}`)
|
|
58117
58423
|
},
|
|
58118
58424
|
tab
|
|
58119
58425
|
)) })
|
|
@@ -58159,7 +58465,7 @@ function OrbInspector({ node, schema, editable = false, userType = "builder", th
|
|
|
58159
58465
|
/* ── Inspector Tab ── */
|
|
58160
58466
|
/* @__PURE__ */ jsxs(Fragment, { children: [
|
|
58161
58467
|
selectedPattern && patternDef?.propsSchema && /* @__PURE__ */ jsxs(Box, { className: "px-4 py-3 border-b border-border/40", children: [
|
|
58162
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground text-xs uppercase tracking-wider mb-2", children: t("
|
|
58468
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground text-xs uppercase tracking-wider mb-2", children: t("avl.props") }),
|
|
58163
58469
|
/* @__PURE__ */ jsx(Box, { className: "flex flex-col gap-1.5", children: Object.entries(patternDef.propsSchema).slice(0, 12).map(([propName, propSchema]) => {
|
|
58164
58470
|
const ps = propSchema;
|
|
58165
58471
|
const explicitValue = patternConfig ? patternConfig[propName] : void 0;
|
|
@@ -58193,7 +58499,7 @@ function OrbInspector({ node, schema, editable = false, userType = "builder", th
|
|
|
58193
58499
|
}) })
|
|
58194
58500
|
] }),
|
|
58195
58501
|
userType === "architect" && (selectedPattern && isEntityPattern || !selectedPattern && !isExpanded) && entity && /* @__PURE__ */ jsxs(Box, { className: "px-4 py-3 border-b border-border/40", children: [
|
|
58196
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground text-xs uppercase tracking-wider mb-2", children: t("
|
|
58502
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground text-xs uppercase tracking-wider mb-2", children: t("avl.entity") }),
|
|
58197
58503
|
/* @__PURE__ */ jsxs(Box, { className: "flex items-center gap-2 mb-2", children: [
|
|
58198
58504
|
/* @__PURE__ */ jsx("svg", { width: 14, height: 14, children: /* @__PURE__ */ jsx("circle", { cx: 7, cy: 7, r: 5, fill: "var(--color-primary)" }) }),
|
|
58199
58505
|
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "font-semibold text-xs", children: entity.name }),
|
|
@@ -58236,7 +58542,7 @@ function OrbInspector({ node, schema, editable = false, userType = "builder", th
|
|
|
58236
58542
|
] }) : /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
58237
58543
|
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-xs font-mono flex-1", children: f3.name }),
|
|
58238
58544
|
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground text-xs", children: f3.type }),
|
|
58239
|
-
f3.required && /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-primary text-[9px]", children: t("
|
|
58545
|
+
f3.required && /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-primary text-[9px]", children: t("orbInspector.required") })
|
|
58240
58546
|
] })
|
|
58241
58547
|
] }, f3.name)) }),
|
|
58242
58548
|
editable && /* @__PURE__ */ jsxs(
|
|
@@ -58248,13 +58554,13 @@ function OrbInspector({ node, schema, editable = false, userType = "builder", th
|
|
|
58248
58554
|
className: "mt-2 text-xs w-full",
|
|
58249
58555
|
children: [
|
|
58250
58556
|
/* @__PURE__ */ jsx(Icon, { name: "plus", size: "xs", className: "mr-1" }),
|
|
58251
|
-
t("
|
|
58557
|
+
t("orbInspector.addField")
|
|
58252
58558
|
]
|
|
58253
58559
|
}
|
|
58254
58560
|
)
|
|
58255
58561
|
] }),
|
|
58256
58562
|
editable && !selectedPattern && !isExpanded && node.layer === "Services" && /* @__PURE__ */ jsxs(Box, { className: "px-4 py-3 border-b border-border/40", children: [
|
|
58257
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground text-xs uppercase tracking-wider mb-2", children: t("
|
|
58563
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground text-xs uppercase tracking-wider mb-2", children: t("orbInspector.serviceMode") }),
|
|
58258
58564
|
/* @__PURE__ */ jsxs(HStack, { gap: "sm", className: "items-center", children: [
|
|
58259
58565
|
/* @__PURE__ */ jsxs(
|
|
58260
58566
|
Button,
|
|
@@ -58267,7 +58573,7 @@ function OrbInspector({ node, schema, editable = false, userType = "builder", th
|
|
|
58267
58573
|
},
|
|
58268
58574
|
children: [
|
|
58269
58575
|
/* @__PURE__ */ jsx(Icon, { name: "monitor", size: "xs", className: "mr-1" }),
|
|
58270
|
-
t("
|
|
58576
|
+
t("orbInspector.standalone")
|
|
58271
58577
|
]
|
|
58272
58578
|
}
|
|
58273
58579
|
),
|
|
@@ -58282,25 +58588,22 @@ function OrbInspector({ node, schema, editable = false, userType = "builder", th
|
|
|
58282
58588
|
},
|
|
58283
58589
|
children: [
|
|
58284
58590
|
/* @__PURE__ */ jsx(Icon, { name: "cpu", size: "xs", className: "mr-1" }),
|
|
58285
|
-
t("
|
|
58591
|
+
t("orbInspector.embedded")
|
|
58286
58592
|
]
|
|
58287
58593
|
}
|
|
58288
58594
|
)
|
|
58289
58595
|
] }),
|
|
58290
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground text-xs mt-1", children: hasRenderUi ? t("
|
|
58596
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground text-xs mt-1", children: hasRenderUi ? t("orbInspector.rendersOwnUi") : t("orbInspector.headless") })
|
|
58291
58597
|
] }),
|
|
58292
58598
|
!selectedPattern && !isExpanded && traits2.length > 0 && /* @__PURE__ */ jsxs(Box, { className: "px-4 py-3 border-b border-border/40", children: [
|
|
58293
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground text-xs uppercase tracking-wider mb-2", children: "
|
|
58294
|
-
/* @__PURE__ */ jsx(Box, { className: "flex flex-col gap-1", children: traits2.map((
|
|
58295
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-xs font-semibold", children:
|
|
58296
|
-
/* @__PURE__ */
|
|
58297
|
-
|
|
58298
|
-
" states"
|
|
58299
|
-
] })
|
|
58300
|
-
] }, t2.name)) })
|
|
58599
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground text-xs uppercase tracking-wider mb-2", children: t("avl.traits") }),
|
|
58600
|
+
/* @__PURE__ */ jsx(Box, { className: "flex flex-col gap-1", children: traits2.map((tr) => /* @__PURE__ */ jsxs(Box, { className: "flex items-center gap-2", children: [
|
|
58601
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-xs font-semibold", children: tr.name }),
|
|
58602
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground text-xs", children: t("orbInspector.statesCount", { count: tr.stateCount }) })
|
|
58603
|
+
] }, tr.name)) })
|
|
58301
58604
|
] }),
|
|
58302
58605
|
isExpanded && fromState && toState && /* @__PURE__ */ jsxs(Box, { className: "px-4 py-3 border-b border-border/40", children: [
|
|
58303
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground text-xs uppercase tracking-wider mb-2", children: "
|
|
58606
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground text-xs uppercase tracking-wider mb-2", children: t("avl.transition") }),
|
|
58304
58607
|
/* @__PURE__ */ jsxs("svg", { width: "100%", height: 44, viewBox: "0 0 280 44", children: [
|
|
58305
58608
|
/* @__PURE__ */ jsx(AvlState, { x: 8, y: 8, name: fromState, role: getStateRole(fromState), width: 90, height: 26 }),
|
|
58306
58609
|
/* @__PURE__ */ jsx("line", { x1: 104, y1: 21, x2: 158, y2: 21, stroke: "#1E293B", strokeWidth: 2, markerEnd: "url(#orb-arrow)" }),
|
|
@@ -58309,7 +58612,7 @@ function OrbInspector({ node, schema, editable = false, userType = "builder", th
|
|
|
58309
58612
|
] }),
|
|
58310
58613
|
traitName && /* @__PURE__ */ jsxs(Typography, { variant: "small", className: "text-muted-foreground text-xs", children: [
|
|
58311
58614
|
traitName,
|
|
58312
|
-
entityName ?
|
|
58615
|
+
entityName ? t("orbInspector.onEntity", { entity: entityName }) : ""
|
|
58313
58616
|
] })
|
|
58314
58617
|
] }),
|
|
58315
58618
|
isExpanded && transitionEvent && /* @__PURE__ */ jsx(Box, { className: "px-4 py-2 border-b border-border/40", children: /* @__PURE__ */ jsxs(Box, { className: "flex items-center gap-2", children: [
|
|
@@ -58322,7 +58625,7 @@ function OrbInspector({ node, schema, editable = false, userType = "builder", th
|
|
|
58322
58625
|
Input,
|
|
58323
58626
|
{
|
|
58324
58627
|
defaultValue: formatExpression(transition?.guard ?? guard),
|
|
58325
|
-
placeholder: t("
|
|
58628
|
+
placeholder: t("orbInspector.guardExpression"),
|
|
58326
58629
|
className: "flex-1 text-xs font-mono h-6",
|
|
58327
58630
|
onBlur: (e) => handleGuardChange(e.target.value)
|
|
58328
58631
|
}
|
|
@@ -58330,7 +58633,7 @@ function OrbInspector({ node, schema, editable = false, userType = "builder", th
|
|
|
58330
58633
|
] }) }),
|
|
58331
58634
|
userType === "architect" && (effectTypes.length > 0 || editable) && isExpanded && /* @__PURE__ */ jsxs(Box, { className: "px-4 py-3 border-b border-border/40", children: [
|
|
58332
58635
|
/* @__PURE__ */ jsxs(Typography, { variant: "small", className: "text-muted-foreground text-xs uppercase tracking-wider mb-2", children: [
|
|
58333
|
-
t("
|
|
58636
|
+
t("avl.effects"),
|
|
58334
58637
|
" (",
|
|
58335
58638
|
effectTypes.length,
|
|
58336
58639
|
")"
|
|
@@ -58387,7 +58690,7 @@ function AddEffectButton({ onAdd }) {
|
|
|
58387
58690
|
className: "text-xs w-full",
|
|
58388
58691
|
children: [
|
|
58389
58692
|
/* @__PURE__ */ jsx(Icon, { name: "plus", size: "xs", className: "mr-1" }),
|
|
58390
|
-
t("
|
|
58693
|
+
t("orbInspector.addEffect")
|
|
58391
58694
|
]
|
|
58392
58695
|
}
|
|
58393
58696
|
),
|
|
@@ -58448,7 +58751,7 @@ var PHASE_2_TOKEN_FALLBACK = {
|
|
|
58448
58751
|
function StylesTab({ patternType, patternDef, patternConfig, editable, onPropChange, themeManifest, isDesignSystem }) {
|
|
58449
58752
|
const { t } = useTranslate();
|
|
58450
58753
|
if (!patternType) {
|
|
58451
|
-
return /* @__PURE__ */ jsx(Box, { className: "p-4", children: /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground text-xs", children: t("
|
|
58754
|
+
return /* @__PURE__ */ jsx(Box, { className: "p-4", children: /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground text-xs", children: t("orbInspector.selectPatternForStyles") }) });
|
|
58452
58755
|
}
|
|
58453
58756
|
const tier = patternDef?.category ?? "Pattern";
|
|
58454
58757
|
const tokens = PHASE_2_TOKEN_FALLBACK[patternType] ?? [];
|
|
@@ -58469,11 +58772,11 @@ function StylesTab({ patternType, patternDef, patternConfig, editable, onPropCha
|
|
|
58469
58772
|
)
|
|
58470
58773
|
] }),
|
|
58471
58774
|
/* @__PURE__ */ jsxs(Box, { children: [
|
|
58472
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground text-xs uppercase tracking-wider mb-2", children: t("
|
|
58473
|
-
tokens.length === 0 ? /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground text-xs italic", children: t("
|
|
58775
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground text-xs uppercase tracking-wider mb-2", children: t("orbInspector.tokens") }),
|
|
58776
|
+
tokens.length === 0 ? /* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground text-xs italic", children: t("orbInspector.noTokenContract") }) : /* @__PURE__ */ jsx(Box, { className: "flex flex-col gap-1", children: tokens.map((token) => /* @__PURE__ */ jsx(Box, { className: "flex items-center gap-2", children: /* @__PURE__ */ jsx(Typography, { variant: "small", className: "font-mono text-xs", children: token }) }, token)) })
|
|
58474
58777
|
] }),
|
|
58475
58778
|
variantEnum && variantEnum.length > 0 && /* @__PURE__ */ jsxs(Box, { children: [
|
|
58476
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground text-xs uppercase tracking-wider mb-2", children: t("
|
|
58779
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground text-xs uppercase tracking-wider mb-2", children: t("orbInspector.variant") }),
|
|
58477
58780
|
/* @__PURE__ */ jsx(Box, { className: "flex flex-wrap gap-1", children: variantEnum.map((variant) => {
|
|
58478
58781
|
const isActive = variant === currentVariant || !currentVariant && variant === "default";
|
|
58479
58782
|
return /* @__PURE__ */ jsx(
|
|
@@ -58493,7 +58796,7 @@ function StylesTab({ patternType, patternDef, patternConfig, editable, onPropCha
|
|
|
58493
58796
|
}) })
|
|
58494
58797
|
] }),
|
|
58495
58798
|
sizeEnum && sizeEnum.length > 0 && /* @__PURE__ */ jsxs(Box, { children: [
|
|
58496
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground text-xs uppercase tracking-wider mb-2", children: t("
|
|
58799
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground text-xs uppercase tracking-wider mb-2", children: t("orbInspector.size") }),
|
|
58497
58800
|
/* @__PURE__ */ jsx(Box, { className: "flex flex-wrap gap-1", children: sizeEnum.map((size) => {
|
|
58498
58801
|
const isActive = size === currentSize || !currentSize && size === "md";
|
|
58499
58802
|
return /* @__PURE__ */ jsx(
|
|
@@ -58516,20 +58819,21 @@ function StylesTab({ patternType, patternDef, patternConfig, editable, onPropCha
|
|
|
58516
58819
|
] });
|
|
58517
58820
|
}
|
|
58518
58821
|
var TOKEN_GROUPS = [
|
|
58519
|
-
{ group: "colors",
|
|
58520
|
-
{ group: "radii",
|
|
58521
|
-
{ group: "spacing",
|
|
58522
|
-
{ group: "shadows",
|
|
58822
|
+
{ group: "colors", labelKey: "orbInspector.tokenGroup.colors" },
|
|
58823
|
+
{ group: "radii", labelKey: "orbInspector.tokenGroup.radii" },
|
|
58824
|
+
{ group: "spacing", labelKey: "orbInspector.tokenGroup.spacing" },
|
|
58825
|
+
{ group: "shadows", labelKey: "orbInspector.tokenGroup.shadows" }
|
|
58523
58826
|
];
|
|
58524
58827
|
function TokenEditorSection({ themeManifest, onPropChange }) {
|
|
58828
|
+
const { t } = useTranslate();
|
|
58525
58829
|
const tokens = themeManifest.tokens ?? {};
|
|
58526
58830
|
return /* @__PURE__ */ jsxs(Box, { className: "flex flex-col gap-3 pt-2 border-t border-border/40", children: [
|
|
58527
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-xs uppercase tracking-wider text-muted-foreground", children: "
|
|
58528
|
-
TOKEN_GROUPS.map(({ group,
|
|
58831
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-xs uppercase tracking-wider text-muted-foreground", children: t("orbInspector.projectThemeTokens") }),
|
|
58832
|
+
TOKEN_GROUPS.map(({ group, labelKey }) => {
|
|
58529
58833
|
const entries = Object.entries(tokens[group] ?? {});
|
|
58530
58834
|
if (entries.length === 0) return null;
|
|
58531
58835
|
return /* @__PURE__ */ jsxs(Box, { className: "flex flex-col gap-1.5", children: [
|
|
58532
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-xs font-mono text-muted-foreground", children:
|
|
58836
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-xs font-mono text-muted-foreground", children: t(labelKey) }),
|
|
58533
58837
|
entries.map(([key, value]) => /* @__PURE__ */ jsx(
|
|
58534
58838
|
TokenRow,
|
|
58535
58839
|
{
|
|
@@ -58577,6 +58881,7 @@ init_Typography();
|
|
|
58577
58881
|
init_Badge();
|
|
58578
58882
|
|
|
58579
58883
|
// components/avl/organisms/AvlTraitScene.tsx
|
|
58884
|
+
init_useTranslate();
|
|
58580
58885
|
init_AvlState();
|
|
58581
58886
|
init_AvlTransitionLane();
|
|
58582
58887
|
init_AvlSwimLane();
|
|
@@ -58590,6 +58895,7 @@ var AvlTraitScene = ({
|
|
|
58590
58895
|
color = "var(--color-primary)",
|
|
58591
58896
|
onTransitionClick
|
|
58592
58897
|
}) => {
|
|
58898
|
+
const { t } = useTranslate();
|
|
58593
58899
|
const [layout, setLayout] = useState(null);
|
|
58594
58900
|
const dataKey = useMemo(() => JSON.stringify(data), [data]);
|
|
58595
58901
|
useEffect(() => {
|
|
@@ -58598,7 +58904,7 @@ var AvlTraitScene = ({
|
|
|
58598
58904
|
});
|
|
58599
58905
|
}, [dataKey]);
|
|
58600
58906
|
if (!layout) {
|
|
58601
|
-
return /* @__PURE__ */ jsx("g", { children: /* @__PURE__ */ jsx("text", { x: 300, y: 200, textAnchor: "middle", fill: color, fontSize: 12, opacity: 0.5, children: "
|
|
58907
|
+
return /* @__PURE__ */ jsx("g", { children: /* @__PURE__ */ jsx("text", { x: 300, y: 200, textAnchor: "middle", fill: color, fontSize: 12, opacity: 0.5, children: t("avl.computingLayout") }) });
|
|
58602
58908
|
}
|
|
58603
58909
|
const hasExternal = data.listenedEvents.length > 0 || data.emittedEvents.length > 0;
|
|
58604
58910
|
const machineOffsetX = hasExternal ? 0 : 30;
|
|
@@ -58613,10 +58919,7 @@ var AvlTraitScene = ({
|
|
|
58613
58919
|
const machineHeight = scaledH + 100;
|
|
58614
58920
|
const renderMachine = /* @__PURE__ */ jsxs("g", { children: [
|
|
58615
58921
|
/* @__PURE__ */ jsx("text", { x: CENTER_W2 / 2, y: 20, textAnchor: "middle", fill: color, fontSize: 20, fontWeight: "700", fontFamily: "inherit", children: data.name }),
|
|
58616
|
-
/* @__PURE__ */
|
|
58617
|
-
"linked to ",
|
|
58618
|
-
data.linkedEntity
|
|
58619
|
-
] }),
|
|
58922
|
+
/* @__PURE__ */ jsx("text", { x: CENTER_W2 / 2, y: 38, textAnchor: "middle", fill: color, fontSize: 11, opacity: 0.5, fontFamily: "inherit", children: t("avl.linkedTo", { entity: data.linkedEntity }) }),
|
|
58620
58923
|
/* @__PURE__ */ jsxs("defs", { children: [
|
|
58621
58924
|
/* @__PURE__ */ jsx("marker", { id: "traitArrowV2", viewBox: "0 0 10 10", refX: "9", refY: "5", markerWidth: "6", markerHeight: "6", orient: "auto-start-reverse", children: /* @__PURE__ */ jsx("path", { d: "M 0 0 L 10 5 L 0 10 z", fill: CONNECTION_COLORS.forward.color, opacity: 0.7 }) }),
|
|
58622
58925
|
/* @__PURE__ */ jsx("marker", { id: "traitArrowBack", viewBox: "0 0 10 10", refX: "9", refY: "5", markerWidth: "6", markerHeight: "6", orient: "auto-start-reverse", children: /* @__PURE__ */ jsx("path", { d: "M 0 0 L 10 5 L 0 10 z", fill: CONNECTION_COLORS.backward.color, opacity: 0.5 }) })
|
|
@@ -58691,6 +58994,9 @@ var AvlTraitScene = ({
|
|
|
58691
58994
|
);
|
|
58692
58995
|
};
|
|
58693
58996
|
AvlTraitScene.displayName = "AvlTraitScene";
|
|
58997
|
+
|
|
58998
|
+
// components/avl/molecules/TraitCardNode.tsx
|
|
58999
|
+
init_useTranslate();
|
|
58694
59000
|
var TraitCardSelectionContext = createContext({
|
|
58695
59001
|
selectTransition: () => {
|
|
58696
59002
|
}
|
|
@@ -58700,6 +59006,7 @@ var SCENE_WIDTH = 600;
|
|
|
58700
59006
|
var SCENE_HEIGHT = 400;
|
|
58701
59007
|
var TraitCardNodeInner = (props) => {
|
|
58702
59008
|
const data = props.data;
|
|
59009
|
+
const { t } = useTranslate();
|
|
58703
59010
|
const { selectTransition } = useContext(TraitCardSelectionContext);
|
|
58704
59011
|
const orbitalName = data.orbitalName;
|
|
58705
59012
|
const traitName = data.traitName ?? "";
|
|
@@ -58725,7 +59032,7 @@ var TraitCardNodeInner = (props) => {
|
|
|
58725
59032
|
position: Position.Left,
|
|
58726
59033
|
id: `listen-${event}`,
|
|
58727
59034
|
style: { top: `${(i + 1) / (listens.length + 1) * 100}%` },
|
|
58728
|
-
"aria-label":
|
|
59035
|
+
"aria-label": t("avl.listensFor", { event })
|
|
58729
59036
|
},
|
|
58730
59037
|
`listen-${event}`
|
|
58731
59038
|
)),
|
|
@@ -58736,7 +59043,7 @@ var TraitCardNodeInner = (props) => {
|
|
|
58736
59043
|
position: Position.Right,
|
|
58737
59044
|
id: `emit-${event}`,
|
|
58738
59045
|
style: { top: `${(i + 1) / (emits.length + 1) * 100}%` },
|
|
58739
|
-
"aria-label":
|
|
59046
|
+
"aria-label": t("avl.emits", { event })
|
|
58740
59047
|
},
|
|
58741
59048
|
`emit-${event}`
|
|
58742
59049
|
)),
|
|
@@ -58763,14 +59070,14 @@ var TraitCardNodeInner = (props) => {
|
|
|
58763
59070
|
{
|
|
58764
59071
|
data: traitLevelData,
|
|
58765
59072
|
onTransitionClick: (idx) => {
|
|
58766
|
-
const
|
|
58767
|
-
if (!
|
|
59073
|
+
const t2 = transitions[idx];
|
|
59074
|
+
if (!t2) return;
|
|
58768
59075
|
selectTransition({
|
|
58769
59076
|
orbitalName,
|
|
58770
59077
|
traitName,
|
|
58771
|
-
transitionEvent:
|
|
58772
|
-
fromState:
|
|
58773
|
-
toState:
|
|
59078
|
+
transitionEvent: t2.event,
|
|
59079
|
+
fromState: t2.fromState,
|
|
59080
|
+
toState: t2.toState,
|
|
58774
59081
|
index: idx
|
|
58775
59082
|
});
|
|
58776
59083
|
}
|
|
@@ -58778,7 +59085,7 @@ var TraitCardNodeInner = (props) => {
|
|
|
58778
59085
|
)
|
|
58779
59086
|
}
|
|
58780
59087
|
)
|
|
58781
|
-
) : /* @__PURE__ */ jsx(Typography, { variant: "small", color: "muted", children: "
|
|
59088
|
+
) : /* @__PURE__ */ jsx(Typography, { variant: "small", color: "muted", children: t("avl.noStateMachine") })
|
|
58782
59089
|
] })
|
|
58783
59090
|
]
|
|
58784
59091
|
}
|
|
@@ -58789,6 +59096,7 @@ TraitCardNode.displayName = "TraitCardNode";
|
|
|
58789
59096
|
|
|
58790
59097
|
// components/avl/organisms/FlowCanvas.tsx
|
|
58791
59098
|
init_useEventBus();
|
|
59099
|
+
init_useTranslate();
|
|
58792
59100
|
var flowCanvasLog = createLogger("almadar:ui:flow-canvas");
|
|
58793
59101
|
var NODE_TYPES = {
|
|
58794
59102
|
preview: OrbPreviewNode,
|
|
@@ -58832,6 +59140,7 @@ function FlowCanvasInner({
|
|
|
58832
59140
|
userType = "builder",
|
|
58833
59141
|
themeManifest
|
|
58834
59142
|
}) {
|
|
59143
|
+
const { t } = useTranslate();
|
|
58835
59144
|
const NODE_TYPES2 = useMemo(() => ({
|
|
58836
59145
|
preview: OrbPreviewNode,
|
|
58837
59146
|
behaviorCompose: BehaviorComposeNode,
|
|
@@ -58884,13 +59193,13 @@ function FlowCanvasInner({
|
|
|
58884
59193
|
}), [selectedPattern]);
|
|
58885
59194
|
const [atBehaviorLevel, setAtBehaviorLevel] = useState(composeLevel === "behavior");
|
|
58886
59195
|
const { composeNodes, composeEdges, overviewNodes, overviewEdges, expandedNodes, expandedEdges, behaviorExpandedNodes, behaviorExpandedEdges, traitExpandedNodes, traitExpandedEdges } = useMemo(() => {
|
|
58887
|
-
const
|
|
59196
|
+
const t2 = perfStart("compose-graph");
|
|
58888
59197
|
const compose = composeLevel === "behavior" && behaviorEntries?.length ? behaviorsToComposeGraph(behaviorEntries, behaviorWires ?? [], layoutHint) : { nodes: [], edges: [] };
|
|
58889
59198
|
const overview = schemaToOverviewGraph(parsedSchema, mockData, behaviorMeta, layoutHint, orbitalStatus, screenSize);
|
|
58890
59199
|
const expanded = expandedOrbital ? orbitalToExpandedGraph(parsedSchema, expandedOrbital, mockData, screenSize) : { nodes: [], edges: [] };
|
|
58891
59200
|
const behaviorExpanded = expandedOrbital && expandedBehaviorAlias ? orbitalAliasToExpandedGraph(parsedSchema, expandedOrbital, expandedBehaviorAlias, mockData, screenSize) : { nodes: [], edges: [] };
|
|
58892
59201
|
const traitExpanded = expandedOrbital ? orbitalToTraitGraph(parsedSchema, expandedOrbital) : { nodes: [], edges: [] };
|
|
58893
|
-
perfEnd("compose-graph",
|
|
59202
|
+
perfEnd("compose-graph", t2, {
|
|
58894
59203
|
composeNodes: compose.nodes.length,
|
|
58895
59204
|
overviewNodes: overview.nodes.length,
|
|
58896
59205
|
expandedNodes: expanded.nodes.length,
|
|
@@ -59143,12 +59452,12 @@ function FlowCanvasInner({
|
|
|
59143
59452
|
{
|
|
59144
59453
|
onClick: handleGoBack,
|
|
59145
59454
|
className: "text-muted-foreground hover:text-foreground text-sm cursor-pointer bg-transparent border-none p-0",
|
|
59146
|
-
"aria-label": "
|
|
59455
|
+
"aria-label": t("canvas.goBackToOverview"),
|
|
59147
59456
|
children: "\u2190"
|
|
59148
59457
|
}
|
|
59149
59458
|
),
|
|
59150
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "font-medium", children: level === "overview" ? "
|
|
59151
|
-
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground", children: level === "overview" ?
|
|
59459
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "font-medium", children: level === "overview" ? t("canvas.overview") : expandedOrbital ?? t("canvas.expanded") }),
|
|
59460
|
+
/* @__PURE__ */ jsx(Typography, { variant: "small", className: "text-muted-foreground", children: level === "overview" ? t("canvas.modulesCount", { count: nodes.length }) : t("canvas.screensCount", { count: nodes.length }) })
|
|
59152
59461
|
] }),
|
|
59153
59462
|
/* @__PURE__ */ jsx(Box, { className: "flex items-center gap-1 px-2 py-1 rounded-md bg-card/80 border border-border/40 backdrop-blur-sm", children: screenSizeKeys.map((size) => {
|
|
59154
59463
|
const p2 = SCREEN_SIZE_PRESETS[size];
|
|
@@ -59164,7 +59473,7 @@ function FlowCanvasInner({
|
|
|
59164
59473
|
},
|
|
59165
59474
|
className: `px-2 py-1 text-xs font-medium rounded cursor-pointer border-none transition-colors ${active ? "bg-primary text-primary-foreground" : "bg-transparent text-muted-foreground hover:text-foreground hover:bg-muted/50"}`,
|
|
59166
59475
|
title: `${p2.label} (${p2.width}px)`,
|
|
59167
|
-
"aria-label":
|
|
59476
|
+
"aria-label": t("canvas.switchToView", { label: p2.label }),
|
|
59168
59477
|
children: p2.label
|
|
59169
59478
|
},
|
|
59170
59479
|
size
|
|
@@ -59546,6 +59855,7 @@ init_Stack();
|
|
|
59546
59855
|
init_Typography();
|
|
59547
59856
|
init_Button();
|
|
59548
59857
|
init_Icon();
|
|
59858
|
+
init_useTranslate();
|
|
59549
59859
|
var UNIT_DISPLAY_W = 240;
|
|
59550
59860
|
var UNIT_DISPLAY_H = 160;
|
|
59551
59861
|
function layoutOrbitals(count, containerW, containerH) {
|
|
@@ -59736,6 +60046,7 @@ var AvlOrbitalsCosmicZoom = ({
|
|
|
59736
60046
|
minZoom = 0.4,
|
|
59737
60047
|
maxZoom = 3
|
|
59738
60048
|
}) => {
|
|
60049
|
+
const { t } = useTranslate();
|
|
59739
60050
|
const parsedSchema = useMemo(() => {
|
|
59740
60051
|
if (typeof schemaProp === "string") return JSON.parse(schemaProp);
|
|
59741
60052
|
return schemaProp;
|
|
@@ -59803,9 +60114,9 @@ var AvlOrbitalsCosmicZoom = ({
|
|
|
59803
60114
|
(ctx) => {
|
|
59804
60115
|
if (ctx.level !== "transition" || !ctx.trait || !ctx.transition) return;
|
|
59805
60116
|
const orbital = parsedSchema.orbitals?.find((o) => o.name === ctx.orbital);
|
|
59806
|
-
const traitRef = orbital?.traits?.find((
|
|
60117
|
+
const traitRef = orbital?.traits?.find((t2) => isInlineTrait(t2) && t2.name === ctx.trait);
|
|
59807
60118
|
if (!traitRef || !isInlineTrait(traitRef)) return;
|
|
59808
|
-
const idx = traitRef.stateMachine?.transitions?.findIndex((
|
|
60119
|
+
const idx = traitRef.stateMachine?.transitions?.findIndex((t2) => t2.event === ctx.transition) ?? -1;
|
|
59809
60120
|
if (idx < 0) return;
|
|
59810
60121
|
dispatch({ type: "SELECT_TRAIT", trait: ctx.trait });
|
|
59811
60122
|
dispatch({ type: "ZOOM_INTO_TRANSITION", transitionIndex: idx, targetPosition: { x: 0, y: 0 } });
|
|
@@ -59981,7 +60292,7 @@ var AvlOrbitalsCosmicZoom = ({
|
|
|
59981
60292
|
borderRadius: 4,
|
|
59982
60293
|
opacity: 0.8
|
|
59983
60294
|
},
|
|
59984
|
-
children: /* @__PURE__ */ jsx(Typography, { variant: "small", style: { color }, children: "
|
|
60295
|
+
children: /* @__PURE__ */ jsx(Typography, { variant: "small", style: { color }, children: t("avl.pressEscToZoomOut") })
|
|
59985
60296
|
}
|
|
59986
60297
|
),
|
|
59987
60298
|
state.level === "application" && /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
@@ -60033,7 +60344,7 @@ var AvlOrbitalsCosmicZoom = ({
|
|
|
60033
60344
|
onKeyDown: (e) => {
|
|
60034
60345
|
if (e.key === "Enter" || e.key === " ") handleSelect(view.name);
|
|
60035
60346
|
},
|
|
60036
|
-
"aria-label":
|
|
60347
|
+
"aria-label": isHighlighted ? t("avl.orbitalLabelHighlighted", { name: view.name }) : t("avl.orbitalLabel", { name: view.name }),
|
|
60037
60348
|
position: "absolute",
|
|
60038
60349
|
style: {
|
|
60039
60350
|
left: view.cx - UNIT_DISPLAY_W / 2,
|
|
@@ -60081,9 +60392,9 @@ var AvlOrbitalsCosmicZoom = ({
|
|
|
60081
60392
|
zIndex: 30
|
|
60082
60393
|
},
|
|
60083
60394
|
children: [
|
|
60084
|
-
/* @__PURE__ */ jsx(Button, { variant: "secondary", size: "sm", onClick: zoomIn, title: "
|
|
60085
|
-
/* @__PURE__ */ jsx(Button, { variant: "secondary", size: "sm", onClick: zoomOut, title: "
|
|
60086
|
-
/* @__PURE__ */ jsx(Button, { variant: "secondary", size: "sm", onClick: resetZoom, title: "
|
|
60395
|
+
/* @__PURE__ */ jsx(Button, { variant: "secondary", size: "sm", onClick: zoomIn, title: t("avl.zoomIn"), action: "COSMIC_ZOOM_IN", children: /* @__PURE__ */ jsx(Icon, { name: "plus", size: "sm" }) }),
|
|
60396
|
+
/* @__PURE__ */ jsx(Button, { variant: "secondary", size: "sm", onClick: zoomOut, title: t("avl.zoomOut"), action: "COSMIC_ZOOM_OUT", children: /* @__PURE__ */ jsx(Icon, { name: "minus", size: "sm" }) }),
|
|
60397
|
+
/* @__PURE__ */ jsx(Button, { variant: "secondary", size: "sm", onClick: resetZoom, title: t("common.reset"), action: "COSMIC_ZOOM_RESET", children: /* @__PURE__ */ jsx(Icon, { name: "maximize", size: "sm" }) })
|
|
60087
60398
|
]
|
|
60088
60399
|
}
|
|
60089
60400
|
)
|