@open-mercato/core 0.6.7-develop.6828.1.ab1620a63e → 0.6.7-develop.6842.1.8cd8a8883c

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.
Files changed (181) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/dist/modules/attachments/fields/attachment.js +1 -1
  3. package/dist/modules/attachments/fields/attachment.js.map +2 -2
  4. package/dist/modules/auth/components/UserConsentsPanel.js +9 -9
  5. package/dist/modules/auth/components/UserConsentsPanel.js.map +2 -2
  6. package/dist/modules/auth/frontend/reset.js +2 -2
  7. package/dist/modules/auth/frontend/reset.js.map +2 -2
  8. package/dist/modules/business_rules/components/ActionRow.js +1 -1
  9. package/dist/modules/business_rules/components/ActionRow.js.map +1 -1
  10. package/dist/modules/business_rules/components/ConditionRow.js +8 -4
  11. package/dist/modules/business_rules/components/ConditionRow.js.map +2 -2
  12. package/dist/modules/catalog/backend/catalog/products/[id]/page.js +4 -4
  13. package/dist/modules/catalog/backend/catalog/products/[id]/page.js.map +2 -2
  14. package/dist/modules/catalog/backend/catalog/products/create/page.js +5 -5
  15. package/dist/modules/catalog/backend/catalog/products/create/page.js.map +2 -2
  16. package/dist/modules/catalog/components/PriceKindSettings.js +3 -3
  17. package/dist/modules/catalog/components/PriceKindSettings.js.map +2 -2
  18. package/dist/modules/catalog/components/products/ProductCategorizeSection.js +3 -3
  19. package/dist/modules/catalog/components/products/ProductCategorizeSection.js.map +2 -2
  20. package/dist/modules/catalog/components/products/ProductMediaManager.js +1 -1
  21. package/dist/modules/catalog/components/products/ProductMediaManager.js.map +2 -2
  22. package/dist/modules/catalog/components/products/VariantBuilder.js +5 -5
  23. package/dist/modules/catalog/components/products/VariantBuilder.js.map +2 -2
  24. package/dist/modules/communication_channels/backend/profile/communication-channels/page.js +1 -1
  25. package/dist/modules/communication_channels/backend/profile/communication-channels/page.js.map +2 -2
  26. package/dist/modules/customers/components/detail/ActivitiesDayStrip.js +2 -3
  27. package/dist/modules/customers/components/detail/ActivitiesDayStrip.js.map +2 -2
  28. package/dist/modules/customers/components/detail/ConfirmDealLostDialog.js +1 -1
  29. package/dist/modules/customers/components/detail/ConfirmDealLostDialog.js.map +1 -1
  30. package/dist/modules/dashboards/api/widgets/data/schema.js +26 -17
  31. package/dist/modules/dashboards/api/widgets/data/schema.js.map +2 -2
  32. package/dist/modules/dashboards/lib/aggregations.js +20 -6
  33. package/dist/modules/dashboards/lib/aggregations.js.map +2 -2
  34. package/dist/modules/design_system/gallery/entries/detail.js +8 -8
  35. package/dist/modules/design_system/gallery/entries/detail.js.map +1 -1
  36. package/dist/modules/design_system/gallery/entries/overlays.js +2 -2
  37. package/dist/modules/design_system/gallery/entries/overlays.js.map +2 -2
  38. package/dist/modules/design_system/gallery/entries/scaffolding.js +8 -8
  39. package/dist/modules/design_system/gallery/entries/scaffolding.js.map +1 -1
  40. package/dist/modules/dictionaries/components/DictionaryEntrySelect.js +1 -1
  41. package/dist/modules/dictionaries/components/DictionaryEntrySelect.js.map +2 -2
  42. package/dist/modules/inbox_ops/backend/inbox-ops/log/page.js +6 -6
  43. package/dist/modules/inbox_ops/backend/inbox-ops/log/page.js.map +2 -2
  44. package/dist/modules/inbox_ops/components/proposals/EditActionDialog.js +3 -3
  45. package/dist/modules/inbox_ops/components/proposals/EditActionDialog.js.map +2 -2
  46. package/dist/modules/messages/components/message-detail/panels/dialogs.js +1 -1
  47. package/dist/modules/messages/components/message-detail/panels/dialogs.js.map +1 -1
  48. package/dist/modules/planner/components/AvailabilityRulesEditor.js +4 -4
  49. package/dist/modules/planner/components/AvailabilityRulesEditor.js.map +2 -2
  50. package/dist/modules/shipping_carriers/lib/shipment-wizard/components/PackageEditor.js +1 -1
  51. package/dist/modules/shipping_carriers/lib/shipment-wizard/components/PackageEditor.js.map +1 -1
  52. package/dist/modules/wms/components/backend/ReleaseReservationDialog.js +1 -1
  53. package/dist/modules/wms/components/backend/ReleaseReservationDialog.js.map +1 -1
  54. package/dist/modules/workflows/backend/definitions/page.js +1 -1
  55. package/dist/modules/workflows/backend/definitions/page.js.map +2 -2
  56. package/dist/modules/workflows/backend/definitions/visual-editor/page.js +1 -1
  57. package/dist/modules/workflows/backend/definitions/visual-editor/page.js.map +2 -2
  58. package/dist/modules/workflows/backend/instances/page.js +8 -8
  59. package/dist/modules/workflows/backend/instances/page.js.map +2 -2
  60. package/dist/modules/workflows/backend/tasks/page.js +6 -6
  61. package/dist/modules/workflows/backend/tasks/page.js.map +2 -2
  62. package/dist/modules/workflows/components/ActivitiesEditor.js +2 -2
  63. package/dist/modules/workflows/components/ActivitiesEditor.js.map +2 -2
  64. package/dist/modules/workflows/components/BusinessRulesSelector.js +1 -1
  65. package/dist/modules/workflows/components/BusinessRulesSelector.js.map +2 -2
  66. package/dist/modules/workflows/components/DefinitionTriggersEditor.js +2 -2
  67. package/dist/modules/workflows/components/DefinitionTriggersEditor.js.map +2 -2
  68. package/dist/modules/workflows/components/EdgeEditDialogCrudForm.js +1 -2
  69. package/dist/modules/workflows/components/EdgeEditDialogCrudForm.js.map +2 -2
  70. package/dist/modules/workflows/components/NodeEditDialogCrudForm.js +1 -2
  71. package/dist/modules/workflows/components/NodeEditDialogCrudForm.js.map +2 -2
  72. package/dist/modules/workflows/components/StepsEditor.js +2 -2
  73. package/dist/modules/workflows/components/StepsEditor.js.map +2 -2
  74. package/dist/modules/workflows/components/TransitionsEditor.js +3 -3
  75. package/dist/modules/workflows/components/TransitionsEditor.js.map +2 -2
  76. package/dist/modules/workflows/components/WorkflowLegend.js +1 -1
  77. package/dist/modules/workflows/components/WorkflowLegend.js.map +2 -2
  78. package/dist/modules/workflows/components/WorkflowSelector.js +1 -1
  79. package/dist/modules/workflows/components/WorkflowSelector.js.map +2 -2
  80. package/dist/modules/workflows/components/fields/BusinessRuleConditionsEditor.js +1 -1
  81. package/dist/modules/workflows/components/fields/BusinessRuleConditionsEditor.js.map +2 -2
  82. package/dist/modules/workflows/components/fields/FormFieldArrayEditor.js +1 -1
  83. package/dist/modules/workflows/components/fields/FormFieldArrayEditor.js.map +2 -2
  84. package/dist/modules/workflows/components/fields/MappingArrayEditor.js +1 -1
  85. package/dist/modules/workflows/components/fields/MappingArrayEditor.js.map +2 -2
  86. package/dist/modules/workflows/components/fields/StartPreConditionsEditor.js +1 -1
  87. package/dist/modules/workflows/components/fields/StartPreConditionsEditor.js.map +2 -2
  88. package/dist/modules/workflows/components/fields/WorkflowSelectorField.js +4 -4
  89. package/dist/modules/workflows/components/fields/WorkflowSelectorField.js.map +2 -2
  90. package/package.json +8 -8
  91. package/src/modules/api_keys/i18n/ko.json +42 -0
  92. package/src/modules/attachments/fields/attachment.tsx +1 -1
  93. package/src/modules/attachments/i18n/ko.json +172 -0
  94. package/src/modules/audit_logs/i18n/ko.json +66 -0
  95. package/src/modules/auth/components/UserConsentsPanel.tsx +9 -9
  96. package/src/modules/auth/frontend/reset.tsx +2 -2
  97. package/src/modules/auth/i18n/ko.json +255 -0
  98. package/src/modules/business_rules/components/ActionRow.tsx +1 -1
  99. package/src/modules/business_rules/components/ConditionRow.tsx +9 -6
  100. package/src/modules/business_rules/i18n/ko.json +396 -0
  101. package/src/modules/catalog/backend/catalog/products/[id]/page.tsx +4 -4
  102. package/src/modules/catalog/backend/catalog/products/create/page.tsx +5 -5
  103. package/src/modules/catalog/components/PriceKindSettings.tsx +3 -3
  104. package/src/modules/catalog/components/products/ProductCategorizeSection.tsx +3 -3
  105. package/src/modules/catalog/components/products/ProductMediaManager.tsx +1 -1
  106. package/src/modules/catalog/components/products/VariantBuilder.tsx +5 -5
  107. package/src/modules/catalog/i18n/ko.json +723 -0
  108. package/src/modules/communication_channels/backend/profile/communication-channels/page.tsx +1 -1
  109. package/src/modules/communication_channels/i18n/ko.json +138 -0
  110. package/src/modules/configs/i18n/ko.json +197 -0
  111. package/src/modules/currencies/i18n/de.json +1 -0
  112. package/src/modules/currencies/i18n/en.json +1 -0
  113. package/src/modules/currencies/i18n/es.json +1 -0
  114. package/src/modules/currencies/i18n/ko.json +160 -0
  115. package/src/modules/currencies/i18n/pl.json +1 -0
  116. package/src/modules/customer_accounts/i18n/ko.json +354 -0
  117. package/src/modules/customers/components/detail/ActivitiesDayStrip.tsx +2 -3
  118. package/src/modules/customers/components/detail/ConfirmDealLostDialog.tsx +1 -1
  119. package/src/modules/customers/i18n/de.json +10 -0
  120. package/src/modules/customers/i18n/en.json +10 -0
  121. package/src/modules/customers/i18n/es.json +10 -0
  122. package/src/modules/customers/i18n/ko.json +2855 -0
  123. package/src/modules/customers/i18n/pl.json +10 -0
  124. package/src/modules/dashboards/api/widgets/data/schema.ts +48 -19
  125. package/src/modules/dashboards/i18n/ko.json +118 -0
  126. package/src/modules/dashboards/lib/aggregations.ts +42 -6
  127. package/src/modules/data_sync/i18n/ko.json +125 -0
  128. package/src/modules/design_system/gallery/entries/detail.tsx +8 -8
  129. package/src/modules/design_system/gallery/entries/overlays.tsx +2 -2
  130. package/src/modules/design_system/gallery/entries/scaffolding.tsx +8 -8
  131. package/src/modules/design_system/i18n/de.json +12 -0
  132. package/src/modules/design_system/i18n/en.json +12 -0
  133. package/src/modules/design_system/i18n/es.json +12 -0
  134. package/src/modules/design_system/i18n/ko.json +58 -0
  135. package/src/modules/design_system/i18n/pl.json +12 -0
  136. package/src/modules/dictionaries/components/DictionaryEntrySelect.tsx +1 -1
  137. package/src/modules/dictionaries/i18n/ko.json +130 -0
  138. package/src/modules/directory/i18n/ko.json +105 -0
  139. package/src/modules/entities/i18n/ko.json +260 -0
  140. package/src/modules/feature_toggles/i18n/ko.json +96 -0
  141. package/src/modules/inbox_ops/backend/inbox-ops/log/page.tsx +6 -6
  142. package/src/modules/inbox_ops/components/proposals/EditActionDialog.tsx +3 -3
  143. package/src/modules/inbox_ops/i18n/ko.json +196 -0
  144. package/src/modules/integrations/i18n/ko.json +129 -0
  145. package/src/modules/messages/components/message-detail/panels/dialogs.tsx +1 -1
  146. package/src/modules/messages/i18n/ko.json +263 -0
  147. package/src/modules/notifications/i18n/ko.json +55 -0
  148. package/src/modules/payment_gateways/i18n/ko.json +87 -0
  149. package/src/modules/planner/components/AvailabilityRulesEditor.tsx +4 -4
  150. package/src/modules/planner/i18n/ko.json +565 -0
  151. package/src/modules/portal/i18n/ko.json +143 -0
  152. package/src/modules/progress/i18n/ko.json +20 -0
  153. package/src/modules/query_index/i18n/ko.json +69 -0
  154. package/src/modules/resources/i18n/ko.json +770 -0
  155. package/src/modules/sales/i18n/ko.json +1442 -0
  156. package/src/modules/shipping_carriers/i18n/ko.json +85 -0
  157. package/src/modules/shipping_carriers/lib/shipment-wizard/components/PackageEditor.tsx +1 -1
  158. package/src/modules/staff/i18n/ko.json +1162 -0
  159. package/src/modules/sync_excel/i18n/ko.json +107 -0
  160. package/src/modules/translations/i18n/ko.json +45 -0
  161. package/src/modules/wms/components/backend/ReleaseReservationDialog.tsx +1 -1
  162. package/src/modules/wms/i18n/ko.json +1053 -0
  163. package/src/modules/workflows/backend/definitions/page.tsx +1 -1
  164. package/src/modules/workflows/backend/definitions/visual-editor/page.tsx +1 -1
  165. package/src/modules/workflows/backend/instances/page.tsx +8 -8
  166. package/src/modules/workflows/backend/tasks/page.tsx +6 -6
  167. package/src/modules/workflows/components/ActivitiesEditor.tsx +2 -2
  168. package/src/modules/workflows/components/BusinessRulesSelector.tsx +1 -1
  169. package/src/modules/workflows/components/DefinitionTriggersEditor.tsx +2 -2
  170. package/src/modules/workflows/components/EdgeEditDialogCrudForm.tsx +1 -2
  171. package/src/modules/workflows/components/NodeEditDialogCrudForm.tsx +1 -2
  172. package/src/modules/workflows/components/StepsEditor.tsx +2 -2
  173. package/src/modules/workflows/components/TransitionsEditor.tsx +3 -3
  174. package/src/modules/workflows/components/WorkflowLegend.tsx +1 -1
  175. package/src/modules/workflows/components/WorkflowSelector.tsx +1 -1
  176. package/src/modules/workflows/components/fields/BusinessRuleConditionsEditor.tsx +1 -1
  177. package/src/modules/workflows/components/fields/FormFieldArrayEditor.tsx +1 -1
  178. package/src/modules/workflows/components/fields/MappingArrayEditor.tsx +1 -1
  179. package/src/modules/workflows/components/fields/StartPreConditionsEditor.tsx +1 -1
  180. package/src/modules/workflows/components/fields/WorkflowSelectorField.tsx +4 -4
  181. package/src/modules/workflows/i18n/ko.json +1203 -0
@@ -0,0 +1,396 @@
1
+ {
2
+ "businessRules.notifications.rule.executionFailed.body": "규칙 \"{ruleName}\" 실행 실패{entityType, select, other { ({entityType})}}: {errorMessage}",
3
+ "businessRules.notifications.rule.executionFailed.title": "비즈니스 규칙 실패",
4
+ "business_rules.actions.create": "규칙 생성",
5
+ "business_rules.actions.toggleEnabled": "클릭하여 활성화/비활성화 전환",
6
+ "business_rules.analytics.avgExecutionTime": "평균 실행 시간",
7
+ "business_rules.analytics.description": "규칙 성능과 사용 현황을 모니터링합니다",
8
+ "business_rules.analytics.executionCount": "총 실행 횟수",
9
+ "business_rules.analytics.mostUsed": "가장 많이 사용된 규칙",
10
+ "business_rules.analytics.recentFailures": "최근 실패",
11
+ "business_rules.analytics.slowest": "가장 느린 규칙",
12
+ "business_rules.analytics.successRate": "성공률",
13
+ "business_rules.analytics.title": "분석",
14
+ "business_rules.components.actionBuilder.actionCount": "작업 {{count}}개",
15
+ "business_rules.components.actionBuilder.actionCount_plural": "작업 {{count}}개",
16
+ "business_rules.components.actionBuilder.addAction": "작업 추가",
17
+ "business_rules.components.actionBuilder.clearAll": "모두 지우기",
18
+ "business_rules.components.actionBuilder.confirm.clearAll": "모든 작업을 지우시겠습니까?",
19
+ "business_rules.components.actionBuilder.emptyMessage": "정의된 작업이 없습니다",
20
+ "business_rules.components.actionBuilder.help.actionOrder": "작업 순서:",
21
+ "business_rules.components.actionBuilder.help.actionOrderDescription": "작업은 표시된 순서대로 실행됩니다. 위/아래 화살표를 사용하여 순서를 변경하세요.",
22
+ "business_rules.components.actionBuilder.help.messageInterpolation": "메시지 보간:",
23
+ "business_rules.components.actionBuilder.help.messageInterpolationDescription": "엔터티 필드 값을 삽입하려면 {{fieldName}}을(를) 사용하세요",
24
+ "business_rules.components.actionBuilder.jsonPreview.hide": "JSON 숨기기",
25
+ "business_rules.components.actionBuilder.jsonPreview.show": "JSON 표시",
26
+ "business_rules.components.actionBuilder.jsonPreview.toggle": "JSON 미리보기 전환",
27
+ "business_rules.components.actionBuilder.label": "작업",
28
+ "business_rules.components.actionBuilder.validationErrors": "유효성 검사 오류:",
29
+ "business_rules.components.actionRow.actionType": "작업 유형",
30
+ "business_rules.components.actionRow.actionType.placeholder": "작업 유형 선택...",
31
+ "business_rules.components.actionRow.actionType.required": "*",
32
+ "business_rules.components.actionRow.config.apiKey": "API 키",
33
+ "business_rules.components.actionRow.config.apiKey.placeholder": "API 키 선택",
34
+ "business_rules.components.actionRow.config.body": "몸",
35
+ "business_rules.components.actionRow.config.body.placeholder": "JSON 본문을 입력하세요. 보간에는 {{field}}를 사용합니다.",
36
+ "business_rules.components.actionRow.config.endpoint": "끝점",
37
+ "business_rules.components.actionRow.config.endpoint.placeholder": "엔드포인트 선택",
38
+ "business_rules.components.actionRow.config.field.placeholder": "{{field}} 입력",
39
+ "business_rules.components.actionRow.config.level": "레벨",
40
+ "business_rules.components.actionRow.config.level.debug": "디버그",
41
+ "business_rules.components.actionRow.config.level.error": "오류",
42
+ "business_rules.components.actionRow.config.level.info": "정보",
43
+ "business_rules.components.actionRow.config.level.warn": "경고",
44
+ "business_rules.components.actionRow.config.message": "메시지",
45
+ "business_rules.components.actionRow.config.message.help": "동적 값에는 {{fieldName}}을(를) 사용하세요",
46
+ "business_rules.components.actionRow.config.message.placeholder": "메시지 입력... 보간에는 {{field}}을(를) 사용하세요",
47
+ "business_rules.components.actionRow.config.method": "메서드",
48
+ "business_rules.components.actionRow.config.recipients": "수신자",
49
+ "business_rules.components.actionRow.config.recipients.help": "쉼표로 구분된 수신자 목록",
50
+ "business_rules.components.actionRow.config.recipients.placeholder": "user@example.com, admin",
51
+ "business_rules.components.actionRow.delete": "작업 삭제",
52
+ "business_rules.components.actionRow.moveDown": "아래로 이동",
53
+ "business_rules.components.actionRow.moveUp": "위로 이동",
54
+ "business_rules.components.actionRow.openMercato.options.error": "OpenMercato 옵션을 사용할 수 없음: {{error}}",
55
+ "business_rules.components.actionRow.openMercato.options.fetchFailed": "OpenMercato 옵션을 로드하지 못했습니다({{status}}).",
56
+ "business_rules.components.actionRow.openMercato.options.loading": "OpenMercato 옵션 로드 중...",
57
+ "business_rules.components.actionRow.openMercato.options.noApiKeys": "API 키 프로필을 사용할 수 없습니다.",
58
+ "business_rules.components.actionRow.openMercato.options.noEndpoints": "실행 가능한 OpenMercato 엔드포인트가 없습니다.",
59
+ "business_rules.components.conditionBuilder.addFirstCondition": "첫 조건 추가",
60
+ "business_rules.components.conditionBuilder.clearAll": "모두 지우기",
61
+ "business_rules.components.conditionBuilder.confirm.clearAll": "모든 조건을 지우시겠습니까?",
62
+ "business_rules.components.conditionBuilder.emptyMessage": "정의된 조건이 없습니다",
63
+ "business_rules.components.conditionBuilder.help.fieldComparison": "필드 비교:",
64
+ "business_rules.components.conditionBuilder.help.fieldComparisonDescription": "정적 값 대신 두 필드 값을 비교하려면 \"필드 사용\"을 클릭하세요",
65
+ "business_rules.components.conditionBuilder.help.fieldPaths": "필드 경로:",
66
+ "business_rules.components.conditionBuilder.help.fieldPathsDescription": "점 표기법을 사용하세요 (예: status, user.email)",
67
+ "business_rules.components.conditionBuilder.help.values": "값:",
68
+ "business_rules.components.conditionBuilder.help.valuesDescription": "배열/객체에는 JSON을 사용하세요 (예: [\"ACTIVE\",\"PENDING\"])",
69
+ "business_rules.components.conditionBuilder.jsonPreview.hide": "JSON 숨기기",
70
+ "business_rules.components.conditionBuilder.jsonPreview.show": "JSON 표시",
71
+ "business_rules.components.conditionBuilder.jsonPreview.toggle": "JSON 미리보기 전환",
72
+ "business_rules.components.conditionBuilder.ruleCount": "규칙 {{count}}개",
73
+ "business_rules.components.conditionBuilder.ruleCount_plural": "규칙 {{count}}개",
74
+ "business_rules.components.conditionBuilder.title": "조건 빌더",
75
+ "business_rules.components.conditionBuilder.validationErrors": "유효성 검사 오류:",
76
+ "business_rules.components.conditionGroup.addCondition": "조건 추가",
77
+ "business_rules.components.conditionGroup.addGroup": "그룹 추가 ({{depth}})",
78
+ "business_rules.components.conditionGroup.deleteGroup": "그룹 삭제",
79
+ "business_rules.components.conditionGroup.group": "그룹 {{depth}}:",
80
+ "business_rules.components.conditionGroup.maxDepthReached": "최대 중첩 깊이({{maxDepth}})에 도달했습니다",
81
+ "business_rules.components.conditionGroup.ruleCount": "규칙 {{count}}개",
82
+ "business_rules.components.conditionGroup.ruleCount_plural": "규칙 {{count}}개",
83
+ "business_rules.components.conditionRow.compareToField": "필드와 비교",
84
+ "business_rules.components.conditionRow.deleteCondition": "조건 삭제",
85
+ "business_rules.components.conditionRow.field": "필드",
86
+ "business_rules.components.conditionRow.field.comparisonHelp": "비교할 필드 경로",
87
+ "business_rules.components.conditionRow.field.comparisonPlaceholder": "예: user.role",
88
+ "business_rules.components.conditionRow.field.invalidPath": "잘못된 필드 경로입니다",
89
+ "business_rules.components.conditionRow.field.placeholder": "예: status, user.email",
90
+ "business_rules.components.conditionRow.operator": "연산자",
91
+ "business_rules.components.conditionRow.toggleFieldComparison": "필드 비교 전환",
92
+ "business_rules.components.conditionRow.useField": "필드 사용",
93
+ "business_rules.components.conditionRow.useValue": "값 사용",
94
+ "business_rules.components.conditionRow.value": "값",
95
+ "business_rules.components.conditionRow.value.help": "배열에는 JSON을 사용하세요: [\"a\",\"b\"]",
96
+ "business_rules.components.conditionRow.value.placeholder": "예: \"ACTIVE\" 또는 [\"A\",\"B\"]",
97
+ "business_rules.confirm.delete": "규칙 \"{{name}}\"을(를) 삭제하시겠습니까?",
98
+ "business_rules.errors.createFailed": "비즈니스 규칙 생성에 실패했습니다",
99
+ "business_rules.errors.executionFailed": "규칙 실행에 실패했습니다",
100
+ "business_rules.errors.fetchFailed": "규칙을 가져오지 못했습니다",
101
+ "business_rules.errors.invalidCondition": "잘못된 조건입니다",
102
+ "business_rules.errors.loadFailed": "규칙을 불러오지 못했습니다. 다시 시도해 주세요.",
103
+ "business_rules.errors.missingTenantOrOrg": "테넌트 ID와 조직 ID는 필수입니다",
104
+ "business_rules.errors.notFound": "규칙을 찾을 수 없습니다",
105
+ "business_rules.errors.unauthorized": "이 작업을 수행할 권한이 없습니다",
106
+ "business_rules.errors.updateFailed": "비즈니스 규칙 업데이트에 실패했습니다",
107
+ "business_rules.fields.enabled": "활성화됨",
108
+ "business_rules.fields.entityType": "엔터티 유형",
109
+ "business_rules.fields.eventType": "이벤트 유형",
110
+ "business_rules.fields.priority": "우선순위",
111
+ "business_rules.fields.ruleId": "규칙 ID",
112
+ "business_rules.fields.ruleName": "규칙 이름",
113
+ "business_rules.fields.ruleType": "유형",
114
+ "business_rules.filters.entityType": "엔터티 유형",
115
+ "business_rules.filters.entityTypePlaceholder": "엔터티 유형으로 필터링...",
116
+ "business_rules.filters.eventType": "이벤트 유형",
117
+ "business_rules.filters.eventTypePlaceholder": "이벤트 유형으로 필터링...",
118
+ "business_rules.filters.search": "검색",
119
+ "business_rules.filters.searchPlaceholder": "이름 또는 ID로 검색...",
120
+ "business_rules.filters.status": "상태",
121
+ "business_rules.filters.type": "유형",
122
+ "business_rules.list.description": "비즈니스 로직과 자동화 규칙을 정의하고 관리합니다",
123
+ "business_rules.list.title": "비즈니스 규칙",
124
+ "business_rules.logs.backToList": "로그로 돌아가기",
125
+ "business_rules.logs.columns.entity": "엔터티",
126
+ "business_rules.logs.columns.executionTime": "실행 시간",
127
+ "business_rules.logs.columns.result": "결과",
128
+ "business_rules.logs.columns.rule": "규칙",
129
+ "business_rules.logs.columns.timestamp": "타임스탬프",
130
+ "business_rules.logs.columns.user": "사용자",
131
+ "business_rules.logs.description": "규칙 실행 기록과 결과를 확인합니다",
132
+ "business_rules.logs.detail.entityInfo": "엔터티 정보",
133
+ "business_rules.logs.detail.errorMessage": "오류 메시지",
134
+ "business_rules.logs.detail.inputContext": "입력 컨텍스트",
135
+ "business_rules.logs.detail.loading": "실행 로그를 불러오는 중...",
136
+ "business_rules.logs.detail.logId": "로그 ID",
137
+ "business_rules.logs.detail.outputContext": "출력 컨텍스트",
138
+ "business_rules.logs.detail.resultValue": "결과 값",
139
+ "business_rules.logs.detail.ruleInfo": "규칙 정보",
140
+ "business_rules.logs.detail.summary": "실행 요약",
141
+ "business_rules.logs.detail.title": "실행 로그 상세 정보",
142
+ "business_rules.logs.errors.fetchFailed": "실행 로그를 가져오지 못했습니다",
143
+ "business_rules.logs.errors.loadFailed": "실행 로그를 불러오지 못했습니다",
144
+ "business_rules.logs.errors.notFound": "실행 로그를 찾을 수 없습니다",
145
+ "business_rules.logs.fields.entity": "엔터티",
146
+ "business_rules.logs.fields.entityId": "엔터티 ID",
147
+ "business_rules.logs.fields.entityType": "엔터티 유형",
148
+ "business_rules.logs.fields.eventType": "이벤트 유형",
149
+ "business_rules.logs.fields.executedAt": "실행 시각",
150
+ "business_rules.logs.fields.executedBy": "실행자",
151
+ "business_rules.logs.fields.executionTime": "실행 시간",
152
+ "business_rules.logs.fields.result": "결과",
153
+ "business_rules.logs.fields.rule": "규칙",
154
+ "business_rules.logs.fields.ruleId": "규칙 ID",
155
+ "business_rules.logs.fields.ruleName": "규칙 이름",
156
+ "business_rules.logs.fields.ruleType": "규칙 유형",
157
+ "business_rules.logs.filter.dateRange": "날짜 범위",
158
+ "business_rules.logs.filter.entity": "엔터티로 필터링",
159
+ "business_rules.logs.filter.result": "결과로 필터링",
160
+ "business_rules.logs.filter.rule": "규칙으로 필터링",
161
+ "business_rules.logs.filters.dateFrom": "시작 날짜",
162
+ "business_rules.logs.filters.dateTo": "종료 날짜",
163
+ "business_rules.logs.filters.entityType": "엔터티 유형",
164
+ "business_rules.logs.filters.entityTypePlaceholder": "엔터티 유형으로 필터링...",
165
+ "business_rules.logs.filters.executedBy": "실행자",
166
+ "business_rules.logs.filters.executedByPlaceholder": "사용자로 필터링...",
167
+ "business_rules.logs.filters.result": "결과",
168
+ "business_rules.logs.list.description": "비즈니스 규칙 실행 기록과 결과를 확인합니다",
169
+ "business_rules.logs.list.title": "실행 로그",
170
+ "business_rules.logs.messages.loadFailed": "실행 로그를 불러오지 못했습니다",
171
+ "business_rules.logs.result.ERROR": "오류",
172
+ "business_rules.logs.result.FAILURE": "실패",
173
+ "business_rules.logs.result.SUCCESS": "성공",
174
+ "business_rules.logs.result.error": "오류",
175
+ "business_rules.logs.result.failure": "실패",
176
+ "business_rules.logs.result.success": "성공",
177
+ "business_rules.logs.ruleDeleted": "규칙이 삭제되었습니다",
178
+ "business_rules.logs.title": "실행 로그",
179
+ "business_rules.messages.deleteFailed": "규칙 삭제에 실패했습니다",
180
+ "business_rules.messages.deleted": "규칙이 성공적으로 삭제되었습니다",
181
+ "business_rules.messages.duplicateNotYetImplemented": "복제 기능은 곧 제공됩니다",
182
+ "business_rules.messages.loadFailed": "규칙을 불러오지 못했습니다",
183
+ "business_rules.messages.updateFailed": "규칙 업데이트에 실패했습니다",
184
+ "business_rules.messages.updated": "규칙이 성공적으로 업데이트되었습니다",
185
+ "business_rules.module.description": "비즈니스 로직과 자동화 규칙을 정의, 관리, 실행합니다",
186
+ "business_rules.module.title": "비즈니스 규칙 엔진",
187
+ "business_rules.nav.analytics": "분석",
188
+ "business_rules.nav.execution_logs": "실행 로그",
189
+ "business_rules.nav.group": "비즈니스 규칙",
190
+ "business_rules.nav.rule_sets": "규칙 세트",
191
+ "business_rules.nav.rules": "규칙",
192
+ "business_rules.nav.rules.create": "새 규칙",
193
+ "business_rules.rules.actions.delete": "삭제",
194
+ "business_rules.rules.actions.duplicate": "복제",
195
+ "business_rules.rules.actions.edit": "편집",
196
+ "business_rules.rules.actions.execute": "실행",
197
+ "business_rules.rules.actions.toggle": "활성화/비활성화",
198
+ "business_rules.rules.backToList": "규칙으로 돌아가기",
199
+ "business_rules.rules.create.description": "조건과 작업이 있는 새 비즈니스 규칙을 정의합니다",
200
+ "business_rules.rules.create.title": "비즈니스 규칙 생성",
201
+ "business_rules.rules.edit.description": "다음의 조건과 작업 수정:",
202
+ "business_rules.rules.edit.loading": "규칙을 불러오는 중...",
203
+ "business_rules.rules.edit.title": "비즈니스 규칙 편집",
204
+ "business_rules.rules.form.actions.add": "작업 추가",
205
+ "business_rules.rules.form.actions.failure": "실패 시",
206
+ "business_rules.rules.form.actions.success": "성공 시",
207
+ "business_rules.rules.form.actions.title": "작업",
208
+ "business_rules.rules.form.basic.title": "기본 정보",
209
+ "business_rules.rules.form.cancel": "취소",
210
+ "business_rules.rules.form.conditions.add": "조건 추가",
211
+ "business_rules.rules.form.conditions.addGroup": "그룹 추가",
212
+ "business_rules.rules.form.conditions.description": "이 규칙이 적용되어야 할 시점을 정의합니다",
213
+ "business_rules.rules.form.conditions.title": "조건",
214
+ "business_rules.rules.form.create": "규칙 생성",
215
+ "business_rules.rules.form.description": "설명",
216
+ "business_rules.rules.form.descriptions.effectiveFrom": "규칙이 이 날짜부터 활성화됩니다",
217
+ "business_rules.rules.form.descriptions.effectiveTo": "규칙이 이 날짜 이후 비활성화됩니다",
218
+ "business_rules.rules.form.descriptions.enabled": "활성화된 규칙만 실행됩니다",
219
+ "business_rules.rules.form.descriptions.entityType": "이 규칙이 적용되는 엔터티입니다 (예: WorkOrder, Order, Customer). 입력을 시작하면 일반적인 제안을 볼 수 있습니다.",
220
+ "business_rules.rules.form.descriptions.eventType": "이 규칙이 트리거되는 시점입니다 (예: beforeCreate, afterUpdate). 입력을 시작하면 라이프사이클 이벤트 제안을 볼 수 있습니다.",
221
+ "business_rules.rules.form.descriptions.priority": "숫자가 클수록 먼저 실행됩니다 (0-1000)",
222
+ "business_rules.rules.form.descriptions.ruleId": "고유 식별자 (밑줄이 있는 대문자)",
223
+ "business_rules.rules.form.descriptions.ruleIdAutoGenerate": "고유 식별자 (규칙 이름에서 자동 생성됨)",
224
+ "business_rules.rules.form.effectiveFrom": "시작일",
225
+ "business_rules.rules.form.effectiveTo": "종료일",
226
+ "business_rules.rules.form.enabled": "활성화됨",
227
+ "business_rules.rules.form.entityType": "엔터티 유형",
228
+ "business_rules.rules.form.errors.effectiveToBeforeFrom": "종료일은 시작일보다 이후여야 합니다",
229
+ "business_rules.rules.form.eventType": "이벤트 유형",
230
+ "business_rules.rules.form.metadata.title": "메타데이터",
231
+ "business_rules.rules.form.placeholders.description": "선택 사항: 이 규칙의 목적을 설명하세요",
232
+ "business_rules.rules.form.placeholders.entityType": "입력을 시작하면 제안이 표시됩니다",
233
+ "business_rules.rules.form.placeholders.eventType": "입력을 시작하면 제안이 표시됩니다",
234
+ "business_rules.rules.form.placeholders.ruleCategory": "예: 가격 책정, 워크플로, 데이터 품질",
235
+ "business_rules.rules.form.placeholders.ruleId": "AUTO_GENERATED_ID",
236
+ "business_rules.rules.form.placeholders.ruleName": "설명적인 규칙 이름을 입력하세요",
237
+ "business_rules.rules.form.priority": "우선순위",
238
+ "business_rules.rules.form.ruleCategory": "카테고리",
239
+ "business_rules.rules.form.ruleId": "규칙 ID",
240
+ "business_rules.rules.form.ruleName": "규칙 이름",
241
+ "business_rules.rules.form.ruleType": "규칙 유형",
242
+ "business_rules.rules.form.update": "규칙 업데이트",
243
+ "business_rules.rules.form.version": "버전",
244
+ "business_rules.rules.list.create": "규칙 생성",
245
+ "business_rules.rules.list.description": "비즈니스 규칙과 자동화 로직을 관리합니다",
246
+ "business_rules.rules.list.empty": "규칙을 찾을 수 없습니다",
247
+ "business_rules.rules.list.search": "규칙 검색...",
248
+ "business_rules.rules.list.title": "비즈니스 규칙",
249
+ "business_rules.rules.status.disabled": "비활성화됨",
250
+ "business_rules.rules.status.enabled": "활성화됨",
251
+ "business_rules.rules.types.ACTION": "작업",
252
+ "business_rules.rules.types.ASSIGNMENT": "할당",
253
+ "business_rules.rules.types.CALCULATION": "계산",
254
+ "business_rules.rules.types.GUARD": "가드",
255
+ "business_rules.rules.types.VALIDATION": "유효성 검사",
256
+ "business_rules.sets.actions.create": "규칙 세트 생성",
257
+ "business_rules.sets.actions.toggleEnabled": "클릭하여 활성화/비활성화 전환",
258
+ "business_rules.sets.backToList": "규칙 세트로 돌아가기",
259
+ "business_rules.sets.confirm.delete": "규칙 세트 \"{{name}}\"을(를) 삭제하시겠습니까?",
260
+ "business_rules.sets.create": "규칙 세트 생성",
261
+ "business_rules.sets.create.description": "관련 규칙을 정리할 새 규칙 세트를 생성합니다",
262
+ "business_rules.sets.create.title": "규칙 세트 생성",
263
+ "business_rules.sets.description": "관련 규칙을 그룹화하고 정리합니다",
264
+ "business_rules.sets.edit.description": "다음의 규칙 세트 상세 정보를 수정하고 구성원을 관리합니다:",
265
+ "business_rules.sets.edit.detailsSection": "규칙 세트 상세 정보",
266
+ "business_rules.sets.edit.loading": "규칙 세트를 불러오는 중...",
267
+ "business_rules.sets.edit.membersSection": "규칙 세트 구성원",
268
+ "business_rules.sets.edit.title": "규칙 세트 편집",
269
+ "business_rules.sets.empty": "규칙 세트를 찾을 수 없습니다",
270
+ "business_rules.sets.errors.createFailed": "규칙 세트 생성에 실패했습니다",
271
+ "business_rules.sets.errors.errorDetails": "오류",
272
+ "business_rules.sets.errors.fetchFailed": "규칙 세트를 가져오지 못했습니다",
273
+ "business_rules.sets.errors.updateFailed": "규칙 세트 업데이트에 실패했습니다",
274
+ "business_rules.sets.fields.enabled": "활성화됨",
275
+ "business_rules.sets.fields.setId": "세트 ID",
276
+ "business_rules.sets.fields.setName": "세트 이름",
277
+ "business_rules.sets.filters.searchPlaceholder": "이름 또는 ID로 검색...",
278
+ "business_rules.sets.form.cancel": "취소",
279
+ "business_rules.sets.form.create": "규칙 세트 생성",
280
+ "business_rules.sets.form.description": "설명",
281
+ "business_rules.sets.form.descriptions.enabled": "활성화된 규칙 세트만 사용됩니다",
282
+ "business_rules.sets.form.descriptions.setId": "규칙 세트의 고유 식별자",
283
+ "business_rules.sets.form.enabled": "활성화됨",
284
+ "business_rules.sets.form.placeholders.description": "선택 사항: 이 규칙 세트의 목적을 설명하세요",
285
+ "business_rules.sets.form.placeholders.setId": "RULE_SET_ID",
286
+ "business_rules.sets.form.placeholders.setName": "설명적인 세트 이름을 입력하세요",
287
+ "business_rules.sets.form.setId": "세트 ID",
288
+ "business_rules.sets.form.setName": "세트 이름",
289
+ "business_rules.sets.form.update": "규칙 세트 업데이트",
290
+ "business_rules.sets.form.validation.setIdRequired": "세트 ID는 필수입니다",
291
+ "business_rules.sets.form.validation.setNameRequired": "세트 이름은 필수입니다",
292
+ "business_rules.sets.list.description": "규칙 세트를 관리하고 비즈니스 규칙을 정리합니다",
293
+ "business_rules.sets.list.title": "규칙 세트",
294
+ "business_rules.sets.members.actions.add": "규칙 추가",
295
+ "business_rules.sets.members.actions.addRule": "세트에 규칙 추가",
296
+ "business_rules.sets.members.actions.toggleEnabled": "클릭하여 세트 내 이 규칙을 활성화/비활성화",
297
+ "business_rules.sets.members.confirm.remove": "이 세트에서 규칙 \"{{name}}\"을(를) 제거하시겠습니까?",
298
+ "business_rules.sets.members.empty": "이 세트에 아직 규칙이 없습니다. 시작하려면 규칙을 추가하세요.",
299
+ "business_rules.sets.members.form.selectRule": "규칙 선택",
300
+ "business_rules.sets.members.form.selectRulePlaceholder": "추가할 규칙을 선택하세요...",
301
+ "business_rules.sets.members.form.sequence": "순서",
302
+ "business_rules.sets.members.help.enabled": "세트별 활성화/비활성화",
303
+ "business_rules.sets.members.help.enabledDescription": "규칙을 전역적으로 영향을 주지 않고 이 세트 내에서만 활성화/비활성화할 수 있습니다.",
304
+ "business_rules.sets.members.help.ordering": "순서",
305
+ "business_rules.sets.members.help.orderingDescription": "위/아래 화살표를 사용하여 실행 순서를 변경하세요. 작은 숫자가 먼저 실행됩니다.",
306
+ "business_rules.sets.members.messages.addFailed": "세트에 규칙 추가에 실패했습니다",
307
+ "business_rules.sets.members.messages.added": "규칙이 세트에 성공적으로 추가되었습니다",
308
+ "business_rules.sets.members.messages.alreadyExists": "이 규칙은 이미 세트에 있습니다",
309
+ "business_rules.sets.members.messages.removeFailed": "세트에서 규칙 제거에 실패했습니다",
310
+ "business_rules.sets.members.messages.removed": "규칙이 세트에서 성공적으로 제거되었습니다",
311
+ "business_rules.sets.members.messages.updateFailed": "구성원 업데이트에 실패했습니다",
312
+ "business_rules.sets.members.messages.updated": "구성원이 성공적으로 업데이트되었습니다",
313
+ "business_rules.sets.messages.deleteFailed": "규칙 세트 삭제에 실패했습니다",
314
+ "business_rules.sets.messages.deleted": "규칙 세트가 성공적으로 삭제되었습니다",
315
+ "business_rules.sets.messages.loadFailed": "규칙 세트를 불러오지 못했습니다",
316
+ "business_rules.sets.messages.updateFailed": "규칙 세트 업데이트에 실패했습니다",
317
+ "business_rules.sets.messages.updated": "규칙 세트가 성공적으로 업데이트되었습니다",
318
+ "business_rules.sets.title": "규칙 세트",
319
+ "business_rules.success.created": "규칙이 성공적으로 생성되었습니다",
320
+ "business_rules.success.deleted": "규칙이 성공적으로 삭제되었습니다",
321
+ "business_rules.success.executed": "규칙이 성공적으로 실행되었습니다",
322
+ "business_rules.success.updated": "규칙이 성공적으로 업데이트되었습니다",
323
+ "business_rules.types.action": "작업",
324
+ "business_rules.types.assignment": "할당",
325
+ "business_rules.types.calculation": "계산",
326
+ "business_rules.types.guard": "가드",
327
+ "business_rules.types.validation": "유효성 검사",
328
+ "business_rules.validation.action.configRequired": "작업 {{type}}에는 다음 필드가 있는 구성이 필요합니다: {{fields}}",
329
+ "business_rules.validation.action.configRequiredForType": "작업 유형 {{type}}에는 구성이 필요합니다",
330
+ "business_rules.validation.action.fieldMissing": "구성에 필수 필드 \"{{field}}\"가 누락되었습니다",
331
+ "business_rules.validation.action.fieldMissingShort": "필수 필드 \"{{field}}\"가 누락되었습니다",
332
+ "business_rules.validation.action.indexError": "작업 {{index}}: {{errors}}",
333
+ "business_rules.validation.action.required": "작업은 필수입니다",
334
+ "business_rules.validation.action.typeRequired": "작업 유형은 필수입니다",
335
+ "business_rules.validation.action.unknownType": "알 수 없는 작업 유형 \"{{type}}\"입니다. 유효한 유형: {{validTypes}}",
336
+ "business_rules.validation.actionTypes.ALLOW_TRANSITION": "전환 허용",
337
+ "business_rules.validation.actionTypes.BLOCK_TRANSITION": "전환 차단",
338
+ "business_rules.validation.actionTypes.CALL_OPEN_MERCATO": "OpenMercato에 전화하세요",
339
+ "business_rules.validation.actionTypes.CALL_WEBHOOK": "웹훅 호출",
340
+ "business_rules.validation.actionTypes.EMIT_EVENT": "이벤트 발생",
341
+ "business_rules.validation.actionTypes.LOG": "메시지 기록",
342
+ "business_rules.validation.actionTypes.NOTIFY": "알림 보내기",
343
+ "business_rules.validation.actionTypes.SET_FIELD": "필드 값 설정",
344
+ "business_rules.validation.actionTypes.SHOW_ERROR": "오류 표시",
345
+ "business_rules.validation.actionTypes.SHOW_INFO": "정보 표시",
346
+ "business_rules.validation.actionTypes.SHOW_WARNING": "경고 표시",
347
+ "business_rules.validation.condition.fieldRequired": "단순 조건에는 필드 경로가 필요합니다",
348
+ "business_rules.validation.condition.groupMustHaveRules": "그룹에는 최소 하나의 규칙이 있어야 합니다",
349
+ "business_rules.validation.condition.invalidComparisonOperator": "잘못된 비교 연산자입니다: \"{{operator}}\". 유효한 연산자: {{validOperators}}",
350
+ "business_rules.validation.condition.invalidFieldPath": "잘못된 필드 경로 형식입니다: \"{{field}}\". 필드 경로는 문자나 밑줄로 시작해야 하며 문자, 숫자, 밑줄, 점, 대괄호만 포함할 수 있습니다",
351
+ "business_rules.validation.condition.invalidLogicalOperator": "잘못된 논리 연산자입니다: \"{{operator}}\". 유효한 연산자: {{validOperators}}",
352
+ "business_rules.validation.condition.invalidStructure": "잘못된 조건식 구조입니다",
353
+ "business_rules.validation.condition.maxDepthExceeded": "최대 중첩 깊이({{maxDepth}})를 초과했습니다",
354
+ "business_rules.validation.condition.operatorRequired": "연산자는 필수입니다",
355
+ "business_rules.validation.condition.ruleError": "규칙 {{index}}: {{errors}}",
356
+ "business_rules.validation.condition.valueFieldMustBeString": "valueField는 문자열이어야 합니다",
357
+ "business_rules.validation.condition.valueRequired": "값 또는 valueField가 필요합니다",
358
+ "business_rules.validation.logical.and": "그리고 (AND)",
359
+ "business_rules.validation.logical.not": "부정 (NOT)",
360
+ "business_rules.validation.logical.or": "또는 (OR)",
361
+ "business_rules.validation.operators.contains": "포함",
362
+ "business_rules.validation.operators.endsWith": "다음으로 끝남",
363
+ "business_rules.validation.operators.equals": "같음",
364
+ "business_rules.validation.operators.equalsStrict": "같음 (엄격)",
365
+ "business_rules.validation.operators.greaterThan": "보다 큼",
366
+ "business_rules.validation.operators.greaterThanOrEqual": "크거나 같음",
367
+ "business_rules.validation.operators.in": "목록에 포함",
368
+ "business_rules.validation.operators.isEmpty": "비어 있음",
369
+ "business_rules.validation.operators.isNotEmpty": "비어 있지 않음",
370
+ "business_rules.validation.operators.lessThan": "보다 작음",
371
+ "business_rules.validation.operators.lessThanOrEqual": "작거나 같음",
372
+ "business_rules.validation.operators.matches": "정규식 일치",
373
+ "business_rules.validation.operators.notContains": "포함하지 않음",
374
+ "business_rules.validation.operators.notEquals": "같지 않음",
375
+ "business_rules.validation.operators.notIn": "목록에 없음",
376
+ "business_rules.validation.operators.startsWith": "다음으로 시작함",
377
+ "common.all": "전체",
378
+ "common.back": "뒤로",
379
+ "common.cancel": "취소",
380
+ "common.delete": "삭제",
381
+ "common.details": "상세 정보",
382
+ "common.disable": "비활성화",
383
+ "common.disabled": "비활성화됨",
384
+ "common.duplicate": "복제",
385
+ "common.edit": "편집",
386
+ "common.enable": "활성화",
387
+ "common.enabled": "활성화됨",
388
+ "common.moveDown": "아래로 이동",
389
+ "common.moveUp": "위로 이동",
390
+ "common.no": "아니오",
391
+ "common.none": "없음",
392
+ "common.remove": "제거",
393
+ "common.retry": "재시도",
394
+ "common.unknown": "알 수 없음",
395
+ "common.yes": "예"
396
+ }
@@ -2608,7 +2608,7 @@ function ProductMetaSection({
2608
2608
  )}
2609
2609
  />
2610
2610
  {errors.subtitle ? (
2611
- <p className="text-xs text-red-600">{errors.subtitle}</p>
2611
+ <p className="text-xs text-status-error-text">{errors.subtitle}</p>
2612
2612
  ) : null}
2613
2613
  </div>
2614
2614
 
@@ -2641,7 +2641,7 @@ function ProductMetaSection({
2641
2641
  )}
2642
2642
  </p>
2643
2643
  {errors.handle ? (
2644
- <p className="text-xs text-red-600">{errors.handle}</p>
2644
+ <p className="text-xs text-status-error-text">{errors.handle}</p>
2645
2645
  ) : null}
2646
2646
  </div>
2647
2647
 
@@ -2663,7 +2663,7 @@ function ProductMetaSection({
2663
2663
  )}
2664
2664
  </p>
2665
2665
  {errors.sku ? (
2666
- <p className="text-xs text-red-600">{errors.sku}</p>
2666
+ <p className="text-xs text-status-error-text">{errors.sku}</p>
2667
2667
  ) : null}
2668
2668
  </div>
2669
2669
 
@@ -2700,7 +2700,7 @@ function ProductMetaSection({
2700
2700
  </SelectContent>
2701
2701
  </Select>
2702
2702
  {errors.productType ? (
2703
- <p className="text-xs text-red-600">
2703
+ <p className="text-xs text-status-error-text">
2704
2704
  {errors.productType}
2705
2705
  </p>
2706
2706
  ) : null}
@@ -1942,7 +1942,7 @@ function ProductMetaSection({
1942
1942
  )}
1943
1943
  />
1944
1944
  {errors.subtitle ? (
1945
- <p className="text-xs text-red-600">{errors.subtitle}</p>
1945
+ <p className="text-xs text-status-error-text">{errors.subtitle}</p>
1946
1946
  ) : null}
1947
1947
  </div>
1948
1948
 
@@ -1973,7 +1973,7 @@ function ProductMetaSection({
1973
1973
  )}
1974
1974
  </p>
1975
1975
  {errors.handle ? (
1976
- <p className="text-xs text-red-600">{errors.handle}</p>
1976
+ <p className="text-xs text-status-error-text">{errors.handle}</p>
1977
1977
  ) : null}
1978
1978
  </div>
1979
1979
 
@@ -1995,7 +1995,7 @@ function ProductMetaSection({
1995
1995
  )}
1996
1996
  </p>
1997
1997
  {errors.sku ? (
1998
- <p className="text-xs text-red-600">{errors.sku}</p>
1998
+ <p className="text-xs text-status-error-text">{errors.sku}</p>
1999
1999
  ) : null}
2000
2000
  </div>
2001
2001
 
@@ -2032,7 +2032,7 @@ function ProductMetaSection({
2032
2032
  </SelectContent>
2033
2033
  </Select>
2034
2034
  {errors.productType ? (
2035
- <p className="text-xs text-red-600">
2035
+ <p className="text-xs text-status-error-text">
2036
2036
  {errors.productType}
2037
2037
  </p>
2038
2038
  ) : null}
@@ -2105,7 +2105,7 @@ function ProductMetaSection({
2105
2105
  )}
2106
2106
  </p>
2107
2107
  {errors.taxRateId ? (
2108
- <p className="text-xs text-red-600">{errors.taxRateId}</p>
2108
+ <p className="text-xs text-status-error-text">{errors.taxRateId}</p>
2109
2109
  ) : null}
2110
2110
  </div>
2111
2111
  </div>
@@ -375,7 +375,7 @@ export function PriceKindSettings() {
375
375
  header: tableLabels.promotion,
376
376
  cell: ({ row }) =>
377
377
  row.original.isPromotion ? (
378
- <span className="inline-flex items-center rounded-full border border-amber-200 bg-amber-50 px-2 py-0.5 text-xs font-medium text-amber-900 dark:border-amber-500/50 dark:bg-amber-500/10 dark:text-amber-100">
378
+ <span className="inline-flex items-center rounded-full border border-status-warning-border bg-status-warning-bg px-2 py-0.5 text-xs font-medium text-status-warning-text">
379
379
  {tableLabels.promotionYes}
380
380
  </span>
381
381
  ) : (
@@ -389,7 +389,7 @@ export function PriceKindSettings() {
389
389
  header: tableLabels.active,
390
390
  cell: ({ row }) =>
391
391
  row.original.isActive ? (
392
- <span className="inline-flex items-center rounded-full border border-emerald-200 bg-emerald-50 px-2 py-0.5 text-xs font-medium text-emerald-900 dark:border-emerald-500/50 dark:bg-emerald-500/10 dark:text-emerald-100">
392
+ <span className="inline-flex items-center rounded-full border border-status-success-border bg-status-success-bg px-2 py-0.5 text-xs font-medium text-status-success-text">
393
393
  {tableLabels.activeYes}
394
394
  </span>
395
395
  ) : (
@@ -555,7 +555,7 @@ export function PriceKindSettings() {
555
555
  {t('catalog.priceKinds.form.activeLabel', 'Active')}
556
556
  </label>
557
557
  </div>
558
- {error ? <p className="text-sm text-red-600">{error}</p> : null}
558
+ {error ? <p className="text-sm text-status-error-text">{error}</p> : null}
559
559
  </form>
560
560
  <DialogFooter>
561
561
  <Button variant="ghost" onClick={closeDialog}>
@@ -220,7 +220,7 @@ export function ProductCategorizeSection({
220
220
  <p className="text-xs text-muted-foreground">
221
221
  {t('catalog.products.create.organize.categoriesHelp', 'Assign products to one or more taxonomy nodes.')}
222
222
  </p>
223
- {errors.categoryIds ? <p className="text-xs text-red-600">{errors.categoryIds}</p> : null}
223
+ {errors.categoryIds ? <p className="text-xs text-status-error-text">{errors.categoryIds}</p> : null}
224
224
  </div>
225
225
 
226
226
  <div className="space-y-2">
@@ -238,7 +238,7 @@ export function ProductCategorizeSection({
238
238
  <p className="text-xs text-muted-foreground">
239
239
  {t('catalog.products.create.organize.channelsHelp', 'Selected channels will receive default offers for this product.')}
240
240
  </p>
241
- {errors.channelIds ? <p className="text-xs text-red-600">{errors.channelIds}</p> : null}
241
+ {errors.channelIds ? <p className="text-xs text-status-error-text">{errors.channelIds}</p> : null}
242
242
  </div>
243
243
 
244
244
  <div className="space-y-2">
@@ -254,7 +254,7 @@ export function ProductCategorizeSection({
254
254
  <p className="text-xs text-muted-foreground">
255
255
  {t('catalog.products.create.organize.tagsHelp', 'Describe products with shared labels to build quick filters.')}
256
256
  </p>
257
- {errors.tags ? <p className="text-xs text-red-600">{errors.tags}</p> : null}
257
+ {errors.tags ? <p className="text-xs text-status-error-text">{errors.tags}</p> : null}
258
258
  </div>
259
259
  </div>
260
260
  )
@@ -186,7 +186,7 @@ export function ProductMediaManager({
186
186
  onChange={(event) => void acceptFiles(event.target.files)}
187
187
  />
188
188
  </div>
189
- {error ? <p className="text-xs font-medium text-red-600">{error}</p> : null}
189
+ {error ? <p className="text-xs font-medium text-status-error-text">{error}</p> : null}
190
190
  {items.length ? (
191
191
  <div className="grid grid-cols-2 gap-3 sm:grid-cols-3">
192
192
  {items.map((item) => {
@@ -98,14 +98,14 @@ export function VariantBasicsSection({ values, setValue, errors }: VariantSectio
98
98
  <div className="space-y-2">
99
99
  <Label className="flex items-center gap-1">
100
100
  {t('catalog.variants.form.nameLabel', 'Name')}
101
- <span className="text-red-600">*</span>
101
+ <span className="text-status-error-text">*</span>
102
102
  </Label>
103
103
  <Input
104
104
  value={values.name}
105
105
  onChange={(event) => setValue('name', event.target.value)}
106
106
  placeholder={t('catalog.variants.form.namePlaceholder', 'e.g., Blue / Small')}
107
107
  />
108
- {errors.name ? <p className="text-xs text-red-600">{errors.name}</p> : null}
108
+ {errors.name ? <p className="text-xs text-status-error-text">{errors.name}</p> : null}
109
109
  </div>
110
110
  <div className="grid gap-4 md:grid-cols-2">
111
111
  <div className="space-y-2">
@@ -123,7 +123,7 @@ export function VariantBasicsSection({ values, setValue, errors }: VariantSectio
123
123
  onChange={(event) => setValue('barcode', event.target.value)}
124
124
  placeholder={t('catalog.variants.form.barcodePlaceholder', 'EAN, UPC, etc.')}
125
125
  />
126
- {errors.barcode ? <p className="text-xs text-destructive">{errors.barcode}</p> : null}
126
+ {errors.barcode ? <p className="text-xs text-status-error-text">{errors.barcode}</p> : null}
127
127
  </div>
128
128
  </div>
129
129
  <div className="grid gap-4 md:grid-cols-2">
@@ -153,7 +153,7 @@ export function VariantBasicsSection({ values, setValue, errors }: VariantSectio
153
153
  'Typed barcodes are validated and kept unique per organization.',
154
154
  )}
155
155
  </p>
156
- {errors.gtinType ? <p className="text-xs text-destructive">{errors.gtinType}</p> : null}
156
+ {errors.gtinType ? <p className="text-xs text-status-error-text">{errors.gtinType}</p> : null}
157
157
  </div>
158
158
  <div className="space-y-2">
159
159
  <Label htmlFor="catalog-variant-hs-code">
@@ -164,7 +164,7 @@ export function VariantBasicsSection({ values, setValue, errors }: VariantSectio
164
164
  value={values.hsCode}
165
165
  onChange={(event) => setValue('hsCode', event.target.value)}
166
166
  />
167
- {errors.hsCode ? <p className="text-xs text-destructive">{errors.hsCode}</p> : null}
167
+ {errors.hsCode ? <p className="text-xs text-status-error-text">{errors.hsCode}</p> : null}
168
168
  </div>
169
169
  </div>
170
170
  <div className="grid gap-4 md:grid-cols-2">