@open-mercato/core 0.6.7-develop.6828.1.ab1620a63e → 0.6.7-develop.6834.1.e76f4b8cbc

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 (132) 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/ConfirmDealLostDialog.js +1 -1
  27. package/dist/modules/customers/components/detail/ConfirmDealLostDialog.js.map +1 -1
  28. package/dist/modules/dashboards/api/widgets/data/schema.js +26 -17
  29. package/dist/modules/dashboards/api/widgets/data/schema.js.map +2 -2
  30. package/dist/modules/design_system/gallery/entries/detail.js +8 -8
  31. package/dist/modules/design_system/gallery/entries/detail.js.map +1 -1
  32. package/dist/modules/design_system/gallery/entries/overlays.js +2 -2
  33. package/dist/modules/design_system/gallery/entries/overlays.js.map +2 -2
  34. package/dist/modules/design_system/gallery/entries/scaffolding.js +8 -8
  35. package/dist/modules/design_system/gallery/entries/scaffolding.js.map +1 -1
  36. package/dist/modules/dictionaries/components/DictionaryEntrySelect.js +1 -1
  37. package/dist/modules/dictionaries/components/DictionaryEntrySelect.js.map +2 -2
  38. package/dist/modules/inbox_ops/backend/inbox-ops/log/page.js +6 -6
  39. package/dist/modules/inbox_ops/backend/inbox-ops/log/page.js.map +2 -2
  40. package/dist/modules/inbox_ops/components/proposals/EditActionDialog.js +3 -3
  41. package/dist/modules/inbox_ops/components/proposals/EditActionDialog.js.map +2 -2
  42. package/dist/modules/messages/components/message-detail/panels/dialogs.js +1 -1
  43. package/dist/modules/messages/components/message-detail/panels/dialogs.js.map +1 -1
  44. package/dist/modules/planner/components/AvailabilityRulesEditor.js +4 -4
  45. package/dist/modules/planner/components/AvailabilityRulesEditor.js.map +2 -2
  46. package/dist/modules/shipping_carriers/lib/shipment-wizard/components/PackageEditor.js +1 -1
  47. package/dist/modules/shipping_carriers/lib/shipment-wizard/components/PackageEditor.js.map +1 -1
  48. package/dist/modules/wms/components/backend/ReleaseReservationDialog.js +1 -1
  49. package/dist/modules/wms/components/backend/ReleaseReservationDialog.js.map +1 -1
  50. package/dist/modules/workflows/backend/definitions/page.js +1 -1
  51. package/dist/modules/workflows/backend/definitions/page.js.map +2 -2
  52. package/dist/modules/workflows/backend/definitions/visual-editor/page.js +1 -1
  53. package/dist/modules/workflows/backend/definitions/visual-editor/page.js.map +2 -2
  54. package/dist/modules/workflows/backend/instances/page.js +8 -8
  55. package/dist/modules/workflows/backend/instances/page.js.map +2 -2
  56. package/dist/modules/workflows/backend/tasks/page.js +6 -6
  57. package/dist/modules/workflows/backend/tasks/page.js.map +2 -2
  58. package/dist/modules/workflows/components/ActivitiesEditor.js +2 -2
  59. package/dist/modules/workflows/components/ActivitiesEditor.js.map +2 -2
  60. package/dist/modules/workflows/components/BusinessRulesSelector.js +1 -1
  61. package/dist/modules/workflows/components/BusinessRulesSelector.js.map +2 -2
  62. package/dist/modules/workflows/components/DefinitionTriggersEditor.js +2 -2
  63. package/dist/modules/workflows/components/DefinitionTriggersEditor.js.map +2 -2
  64. package/dist/modules/workflows/components/EdgeEditDialogCrudForm.js +1 -2
  65. package/dist/modules/workflows/components/EdgeEditDialogCrudForm.js.map +2 -2
  66. package/dist/modules/workflows/components/NodeEditDialogCrudForm.js +1 -2
  67. package/dist/modules/workflows/components/NodeEditDialogCrudForm.js.map +2 -2
  68. package/dist/modules/workflows/components/StepsEditor.js +2 -2
  69. package/dist/modules/workflows/components/StepsEditor.js.map +2 -2
  70. package/dist/modules/workflows/components/TransitionsEditor.js +3 -3
  71. package/dist/modules/workflows/components/TransitionsEditor.js.map +2 -2
  72. package/dist/modules/workflows/components/WorkflowLegend.js +1 -1
  73. package/dist/modules/workflows/components/WorkflowLegend.js.map +2 -2
  74. package/dist/modules/workflows/components/WorkflowSelector.js +1 -1
  75. package/dist/modules/workflows/components/WorkflowSelector.js.map +2 -2
  76. package/dist/modules/workflows/components/fields/BusinessRuleConditionsEditor.js +1 -1
  77. package/dist/modules/workflows/components/fields/BusinessRuleConditionsEditor.js.map +2 -2
  78. package/dist/modules/workflows/components/fields/FormFieldArrayEditor.js +1 -1
  79. package/dist/modules/workflows/components/fields/FormFieldArrayEditor.js.map +2 -2
  80. package/dist/modules/workflows/components/fields/MappingArrayEditor.js +1 -1
  81. package/dist/modules/workflows/components/fields/MappingArrayEditor.js.map +2 -2
  82. package/dist/modules/workflows/components/fields/StartPreConditionsEditor.js +1 -1
  83. package/dist/modules/workflows/components/fields/StartPreConditionsEditor.js.map +2 -2
  84. package/dist/modules/workflows/components/fields/WorkflowSelectorField.js +4 -4
  85. package/dist/modules/workflows/components/fields/WorkflowSelectorField.js.map +2 -2
  86. package/package.json +7 -7
  87. package/src/modules/attachments/fields/attachment.tsx +1 -1
  88. package/src/modules/auth/components/UserConsentsPanel.tsx +9 -9
  89. package/src/modules/auth/frontend/reset.tsx +2 -2
  90. package/src/modules/business_rules/components/ActionRow.tsx +1 -1
  91. package/src/modules/business_rules/components/ConditionRow.tsx +9 -6
  92. package/src/modules/catalog/backend/catalog/products/[id]/page.tsx +4 -4
  93. package/src/modules/catalog/backend/catalog/products/create/page.tsx +5 -5
  94. package/src/modules/catalog/components/PriceKindSettings.tsx +3 -3
  95. package/src/modules/catalog/components/products/ProductCategorizeSection.tsx +3 -3
  96. package/src/modules/catalog/components/products/ProductMediaManager.tsx +1 -1
  97. package/src/modules/catalog/components/products/VariantBuilder.tsx +5 -5
  98. package/src/modules/communication_channels/backend/profile/communication-channels/page.tsx +1 -1
  99. package/src/modules/customers/components/detail/ConfirmDealLostDialog.tsx +1 -1
  100. package/src/modules/dashboards/api/widgets/data/schema.ts +48 -19
  101. package/src/modules/design_system/gallery/entries/detail.tsx +8 -8
  102. package/src/modules/design_system/gallery/entries/overlays.tsx +2 -2
  103. package/src/modules/design_system/gallery/entries/scaffolding.tsx +8 -8
  104. package/src/modules/design_system/i18n/de.json +12 -0
  105. package/src/modules/design_system/i18n/en.json +12 -0
  106. package/src/modules/design_system/i18n/es.json +12 -0
  107. package/src/modules/design_system/i18n/pl.json +12 -0
  108. package/src/modules/dictionaries/components/DictionaryEntrySelect.tsx +1 -1
  109. package/src/modules/inbox_ops/backend/inbox-ops/log/page.tsx +6 -6
  110. package/src/modules/inbox_ops/components/proposals/EditActionDialog.tsx +3 -3
  111. package/src/modules/messages/components/message-detail/panels/dialogs.tsx +1 -1
  112. package/src/modules/planner/components/AvailabilityRulesEditor.tsx +4 -4
  113. package/src/modules/shipping_carriers/lib/shipment-wizard/components/PackageEditor.tsx +1 -1
  114. package/src/modules/wms/components/backend/ReleaseReservationDialog.tsx +1 -1
  115. package/src/modules/workflows/backend/definitions/page.tsx +1 -1
  116. package/src/modules/workflows/backend/definitions/visual-editor/page.tsx +1 -1
  117. package/src/modules/workflows/backend/instances/page.tsx +8 -8
  118. package/src/modules/workflows/backend/tasks/page.tsx +6 -6
  119. package/src/modules/workflows/components/ActivitiesEditor.tsx +2 -2
  120. package/src/modules/workflows/components/BusinessRulesSelector.tsx +1 -1
  121. package/src/modules/workflows/components/DefinitionTriggersEditor.tsx +2 -2
  122. package/src/modules/workflows/components/EdgeEditDialogCrudForm.tsx +1 -2
  123. package/src/modules/workflows/components/NodeEditDialogCrudForm.tsx +1 -2
  124. package/src/modules/workflows/components/StepsEditor.tsx +2 -2
  125. package/src/modules/workflows/components/TransitionsEditor.tsx +3 -3
  126. package/src/modules/workflows/components/WorkflowLegend.tsx +1 -1
  127. package/src/modules/workflows/components/WorkflowSelector.tsx +1 -1
  128. package/src/modules/workflows/components/fields/BusinessRuleConditionsEditor.tsx +1 -1
  129. package/src/modules/workflows/components/fields/FormFieldArrayEditor.tsx +1 -1
  130. package/src/modules/workflows/components/fields/MappingArrayEditor.tsx +1 -1
  131. package/src/modules/workflows/components/fields/StartPreConditionsEditor.tsx +1 -1
  132. package/src/modules/workflows/components/fields/WorkflowSelectorField.tsx +4 -4
@@ -96,7 +96,7 @@ const pageEntry: GalleryEntry = {
96
96
  code: `import { Page, PageBody, PageHeader } from '@open-mercato/ui/backend/Page'
97
97
 
98
98
  <Page>
99
- <PageHeader title={t('currencies.list.title')} description={t('currencies.list.description')} />
99
+ <PageHeader title={t('currencies.list.title')} description={t('design_system.gallery.samples.listDescription')} />
100
100
  <PageBody>{/* DataTable, sections… */}</PageBody>
101
101
  </Page>`,
102
102
  },
@@ -174,7 +174,7 @@ import { SectionHeader } from '@open-mercato/ui/backend/SectionHeader'
174
174
  import { Button } from '@open-mercato/ui/primitives/button'
175
175
 
176
176
  <SectionHeader
177
- title={t('customers.people.detail.addresses.title')}
177
+ title={t('design_system.gallery.samples.addresses.title')}
178
178
  count={addresses.length}
179
179
  action={<Button variant="ghost" size="sm"><Plus className="size-4" /> {t('common.add')}</Button>}
180
180
  />`,
@@ -193,7 +193,7 @@ import { Button } from '@open-mercato/ui/primitives/button'
193
193
  ),
194
194
  code: `import { CollapsibleSection } from '@open-mercato/ui/backend/SectionHeader'
195
195
 
196
- <CollapsibleSection title={t('billing.details.title')} count={2}>
196
+ <CollapsibleSection title={t('design_system.gallery.samples.billingDetails')} count={2}>
197
197
  {/* section content */}
198
198
  </CollapsibleSection>`,
199
199
  },
@@ -223,7 +223,7 @@ const sections: SectionNavGroup[] = [
223
223
  },
224
224
  ]
225
225
 
226
- <SectionPage title={t('profile.title')} sections={sections} activePath={pathname}>
226
+ <SectionPage title={t('profile.page.title')} sections={sections} activePath={pathname}>
227
227
  {children}
228
228
  </SectionPage>`,
229
229
  },
@@ -236,7 +236,7 @@ const sections: SectionNavGroup[] = [
236
236
  const [collapsed, setCollapsed] = React.useState(false)
237
237
 
238
238
  <SectionNav
239
- title={t('profile.title')}
239
+ title={t('profile.page.title')}
240
240
  sections={sections}
241
241
  activePath={pathname}
242
242
  collapsed={collapsed}
@@ -273,7 +273,7 @@ const formHeaderEntry: GalleryEntry = {
273
273
  <FormHeader
274
274
  backHref="/backend/products"
275
275
  backLabel={t('ui.navigation.back')}
276
- title={t('products.edit.title')}
276
+ title={t('catalog.products.edit.title')}
277
277
  actions={{
278
278
  cancelHref: '/backend/products',
279
279
  cancelLabel: t('ui.forms.actions.cancel'),
@@ -308,9 +308,9 @@ import { FormHeader } from '@open-mercato/ui/backend/forms'
308
308
  <FormHeader
309
309
  mode="detail"
310
310
  backHref="/backend/customers/companies"
311
- entityTypeLabel={t('customers.companies.detail.entityType')}
311
+ entityTypeLabel={t('design_system.gallery.samples.entityType')}
312
312
  title={company.name}
313
- subtitle={t('customers.companies.detail.createdAt', { date: createdAt })}
313
+ subtitle={t('design_system.gallery.samples.createdAt', { date: createdAt })}
314
314
  statusBadge={<Badge variant="muted">{statusLabel}</Badge>}
315
315
  menuActions={[
316
316
  { id: 'duplicate', label: t('ui.actions.duplicate'), icon: Copy, onSelect: duplicate },
@@ -37,6 +37,18 @@
37
37
  "design_system.gallery.noResults": "Keine Komponenten entsprechen der Suche",
38
38
  "design_system.gallery.openInFigma": "In Figma öffnen",
39
39
  "design_system.gallery.retry": "Erneut versuchen",
40
+ "design_system.gallery.samples.addresses.empty": "Noch keine Adressen",
41
+ "design_system.gallery.samples.addresses.emptyTitle": "Erste Adresse hinzufügen",
42
+ "design_system.gallery.samples.addresses.title": "Adressen",
43
+ "design_system.gallery.samples.attachments.description": "Mit diesem Datensatz verknüpfte Dateien",
44
+ "design_system.gallery.samples.attachments.title": "Anhänge",
45
+ "design_system.gallery.samples.billingDetails": "Rechnungsdaten",
46
+ "design_system.gallery.samples.createdAt": "Erstellt {date}",
47
+ "design_system.gallery.samples.entityType": "Unternehmen",
48
+ "design_system.gallery.samples.listDescription": "Für Ihre Organisation verfügbare Währungen",
49
+ "design_system.gallery.samples.notes.add": "Notiz hinzufügen",
50
+ "design_system.gallery.samples.notes.empty": "Noch keine Notizen",
51
+ "design_system.gallery.samples.notes.emptyTitle": "Erste Notiz festhalten",
40
52
  "design_system.gallery.searchPlaceholder": "Komponenten suchen…",
41
53
  "design_system.gallery.usageDo": "Tun",
42
54
  "design_system.gallery.usageDont": "Vermeiden",
@@ -37,6 +37,18 @@
37
37
  "design_system.gallery.noResults": "No components match your search",
38
38
  "design_system.gallery.openInFigma": "Open in Figma",
39
39
  "design_system.gallery.retry": "Retry",
40
+ "design_system.gallery.samples.addresses.empty": "No addresses yet",
41
+ "design_system.gallery.samples.addresses.emptyTitle": "Add the first address",
42
+ "design_system.gallery.samples.addresses.title": "Addresses",
43
+ "design_system.gallery.samples.attachments.description": "Files linked to this record",
44
+ "design_system.gallery.samples.attachments.title": "Attachments",
45
+ "design_system.gallery.samples.billingDetails": "Billing details",
46
+ "design_system.gallery.samples.createdAt": "Created {date}",
47
+ "design_system.gallery.samples.entityType": "Company",
48
+ "design_system.gallery.samples.listDescription": "Currencies available to your organization",
49
+ "design_system.gallery.samples.notes.add": "Add note",
50
+ "design_system.gallery.samples.notes.empty": "No notes yet",
51
+ "design_system.gallery.samples.notes.emptyTitle": "Capture the first note",
40
52
  "design_system.gallery.searchPlaceholder": "Search components…",
41
53
  "design_system.gallery.usageDo": "Do",
42
54
  "design_system.gallery.usageDont": "Don't",
@@ -37,6 +37,18 @@
37
37
  "design_system.gallery.noResults": "Ningún componente coincide con la búsqueda",
38
38
  "design_system.gallery.openInFigma": "Abrir en Figma",
39
39
  "design_system.gallery.retry": "Reintentar",
40
+ "design_system.gallery.samples.addresses.empty": "Aún no hay direcciones",
41
+ "design_system.gallery.samples.addresses.emptyTitle": "Añade la primera dirección",
42
+ "design_system.gallery.samples.addresses.title": "Direcciones",
43
+ "design_system.gallery.samples.attachments.description": "Archivos vinculados a este registro",
44
+ "design_system.gallery.samples.attachments.title": "Adjuntos",
45
+ "design_system.gallery.samples.billingDetails": "Datos de facturación",
46
+ "design_system.gallery.samples.createdAt": "Creado {date}",
47
+ "design_system.gallery.samples.entityType": "Empresa",
48
+ "design_system.gallery.samples.listDescription": "Monedas disponibles en tu organización",
49
+ "design_system.gallery.samples.notes.add": "Añadir nota",
50
+ "design_system.gallery.samples.notes.empty": "Aún no hay notas",
51
+ "design_system.gallery.samples.notes.emptyTitle": "Registra la primera nota",
40
52
  "design_system.gallery.searchPlaceholder": "Buscar componentes…",
41
53
  "design_system.gallery.usageDo": "Haz",
42
54
  "design_system.gallery.usageDont": "Evita",
@@ -37,6 +37,18 @@
37
37
  "design_system.gallery.noResults": "Żaden komponent nie pasuje do wyszukiwania",
38
38
  "design_system.gallery.openInFigma": "Otwórz w Figmie",
39
39
  "design_system.gallery.retry": "Spróbuj ponownie",
40
+ "design_system.gallery.samples.addresses.empty": "Nie ma jeszcze adresów",
41
+ "design_system.gallery.samples.addresses.emptyTitle": "Dodaj pierwszy adres",
42
+ "design_system.gallery.samples.addresses.title": "Adresy",
43
+ "design_system.gallery.samples.attachments.description": "Pliki powiązane z tym rekordem",
44
+ "design_system.gallery.samples.attachments.title": "Załączniki",
45
+ "design_system.gallery.samples.billingDetails": "Dane rozliczeniowe",
46
+ "design_system.gallery.samples.createdAt": "Utworzono {date}",
47
+ "design_system.gallery.samples.entityType": "Firma",
48
+ "design_system.gallery.samples.listDescription": "Waluty dostępne w Twojej organizacji",
49
+ "design_system.gallery.samples.notes.add": "Dodaj notatkę",
50
+ "design_system.gallery.samples.notes.empty": "Nie ma jeszcze notatek",
51
+ "design_system.gallery.samples.notes.emptyTitle": "Zapisz pierwszą notatkę",
40
52
  "design_system.gallery.searchPlaceholder": "Szukaj komponentów…",
41
53
  "design_system.gallery.usageDo": "Rób",
42
54
  "design_system.gallery.usageDont": "Unikaj",
@@ -398,7 +398,7 @@ export function DictionaryEntrySelect({
398
398
  labels={appearanceLabels ?? DEFAULT_APPEARANCE_LABELS}
399
399
  />
400
400
  ) : null}
401
- {formError ? <p className="text-sm text-red-600">{formError}</p> : null}
401
+ {formError ? <p className="text-sm text-status-error-text">{formError}</p> : null}
402
402
  </div>
403
403
  <DialogFooter>
404
404
  <Button type="button" variant="outline" onClick={() => setDialogOpen(false)} disabled={saving}>
@@ -31,11 +31,11 @@ type EmailListResponse = {
31
31
  }
32
32
 
33
33
  const STATUS_COLORS: Record<string, string> = {
34
- received: 'bg-blue-100 text-blue-800',
35
- processing: 'bg-purple-100 text-purple-800',
36
- processed: 'bg-green-100 text-green-800',
37
- needs_review: 'bg-amber-100 text-amber-800',
38
- failed: 'bg-red-100 text-red-800',
34
+ received: 'bg-status-info-bg text-status-info-text',
35
+ processing: 'bg-status-neutral-bg text-status-neutral-text',
36
+ processed: 'bg-status-success-bg text-status-success-text',
37
+ needs_review: 'bg-status-warning-bg text-status-warning-text',
38
+ failed: 'bg-status-error-bg text-status-error-text',
39
39
  }
40
40
 
41
41
  export default function ProcessingLogPage() {
@@ -141,7 +141,7 @@ export default function ProcessingLogPage() {
141
141
  accessorKey: 'processingError',
142
142
  header: t('inbox_ops.extraction_failed', 'Error'),
143
143
  cell: ({ row }) => (
144
- <span className="text-xs text-red-600 truncate max-w-[280px] block">
144
+ <span className="text-xs text-status-error-text truncate max-w-[280px] block">
145
145
  {row.original.processingError || '-'}
146
146
  </span>
147
147
  ),
@@ -123,10 +123,10 @@ function ContactPayloadEditor({
123
123
  setLastName(event.target.value)
124
124
  updatePersonName(firstName, event.target.value)
125
125
  }}
126
- className={lastNameMissing ? 'border-red-500' : ''}
126
+ className={lastNameMissing ? 'border-status-error-border' : ''}
127
127
  />
128
128
  {lastNameMissing && (
129
- <p className="text-xs text-red-600 mt-1">{t('inbox_ops.contact.last_name_required', 'Last name is required')}</p>
129
+ <p className="text-xs text-status-error-text mt-1">{t('inbox_ops.contact.last_name_required', 'Last name is required')}</p>
130
130
  )}
131
131
  </div>
132
132
  </>
@@ -546,7 +546,7 @@ export function EditActionDialog({
546
546
  setJsonError(null)
547
547
  }}
548
548
  />
549
- {jsonError && <p className="text-xs text-red-600">{t('inbox_ops.edit_dialog.invalid_json', 'Invalid JSON')}</p>}
549
+ {jsonError && <p className="text-xs text-status-error-text">{t('inbox_ops.edit_dialog.invalid_json', 'Invalid JSON')}</p>}
550
550
  </div>
551
551
  )}
552
552
 
@@ -93,7 +93,7 @@ export function MessageDetailDialogs(props: DialogsProps) {
93
93
  </Button>
94
94
  <Button
95
95
  type="button"
96
- variant="destructive"
96
+ variant="destructive-solid"
97
97
  onClick={() => void props.handleDelete()}
98
98
  disabled={props.updatingState}
99
99
  >
@@ -1666,7 +1666,7 @@ export function AvailabilityRulesEditor({
1666
1666
  ) : (
1667
1667
  windows.map((window, windowIndex) => {
1668
1668
  const windowError = weeklyWindowErrors[index]?.[windowIndex] ?? null
1669
- const errorClass = windowError ? 'border-red-500 aria-invalid:ring-destructive' : ''
1669
+ const errorClass = windowError ? 'border-status-error-border aria-invalid:ring-destructive' : ''
1670
1670
  return (
1671
1671
  <div key={`${day.code}-${windowIndex}`} className="space-y-1">
1672
1672
  <div className="flex flex-wrap items-center gap-2">
@@ -1697,7 +1697,7 @@ export function AvailabilityRulesEditor({
1697
1697
  </Button>
1698
1698
  </div>
1699
1699
  {windowError ? (
1700
- <div className="text-xs text-red-600">{windowError}</div>
1700
+ <div className="text-xs text-status-error-text">{windowError}</div>
1701
1701
  ) : null}
1702
1702
  </div>
1703
1703
  )
@@ -1985,7 +1985,7 @@ export function AvailabilityRulesEditor({
1985
1985
  <label className="text-xs font-medium text-muted-foreground">{listLabels.windowsLabel}</label>
1986
1986
  {editorWindows.map((window, index) => {
1987
1987
  const windowError = editorWindowErrors[index] ?? null
1988
- const errorClass = windowError ? 'border-red-500 aria-invalid:ring-destructive' : ''
1988
+ const errorClass = windowError ? 'border-status-error-border aria-invalid:ring-destructive' : ''
1989
1989
  return (
1990
1990
  <div key={`${index}-${window.start}`} className="space-y-1">
1991
1991
  <div className="flex flex-wrap items-center gap-2">
@@ -2013,7 +2013,7 @@ export function AvailabilityRulesEditor({
2013
2013
  </Button>
2014
2014
  </div>
2015
2015
  {windowError ? (
2016
- <div className="text-xs text-red-600">{windowError}</div>
2016
+ <div className="text-xs text-status-error-text">{windowError}</div>
2017
2017
  ) : null}
2018
2018
  </div>
2019
2019
  )
@@ -47,7 +47,7 @@ export const PackageEditor = (props: PackageEditorProps) => {
47
47
  type="button"
48
48
  variant="ghost"
49
49
  size="sm"
50
- className="h-auto px-2 py-0.5 text-xs text-red-600 hover:text-red-700"
50
+ className="h-auto px-2 py-0.5 text-xs text-destructive hover:text-destructive/80"
51
51
  onClick={() => removePackage(index)}
52
52
  disabled={disabled}
53
53
  >
@@ -409,7 +409,7 @@ export function ReleaseReservationDialog({
409
409
  </Button>
410
410
  <Button
411
411
  type="submit"
412
- variant="destructive"
412
+ variant="destructive-solid"
413
413
  disabled={submitDisabled}
414
414
  data-testid="wms-inventory-release-submit"
415
415
  >
@@ -453,7 +453,7 @@ export default function WorkflowDefinitionsListPage() {
453
453
  <Button variant="outline" onClick={() => setDeleteTarget(null)}>
454
454
  {t('common.cancel')}
455
455
  </Button>
456
- <Button variant="destructive" onClick={confirmDelete}>
456
+ <Button variant="destructive-solid" onClick={confirmDelete}>
457
457
  <Trash2/>
458
458
  {t('common.delete')}
459
459
  </Button>
@@ -688,7 +688,7 @@ export default function VisualEditorPage() {
688
688
  </DialogHeader>
689
689
  <DialogFooter>
690
690
  <Button variant="outline" onClick={() => setShowClearConfirm(false)}>{t('common.cancel', 'Cancel')}</Button>
691
- <Button variant="destructive" onClick={confirmClear}>{t('common.clear', 'Clear')}</Button>
691
+ <Button variant="destructive-solid" onClick={confirmClear}>{t('common.clear', 'Clear')}</Button>
692
692
  </DialogFooter>
693
693
  </DialogContent>
694
694
  </Dialog>
@@ -148,19 +148,19 @@ export default function WorkflowInstancesListPage() {
148
148
  const getStatusBadgeClass = (status: WorkflowInstance['status']) => {
149
149
  switch (status) {
150
150
  case 'RUNNING':
151
- return 'bg-blue-100 text-blue-800'
151
+ return 'bg-status-info-bg text-status-info-text'
152
152
  case 'PAUSED':
153
- return 'bg-yellow-100 text-yellow-800'
153
+ return 'bg-status-warning-bg text-status-warning-text'
154
154
  case 'COMPLETED':
155
- return 'bg-green-100 text-green-800'
155
+ return 'bg-status-success-bg text-status-success-text'
156
156
  case 'FAILED':
157
- return 'bg-red-100 text-red-800'
157
+ return 'bg-status-error-bg text-status-error-text'
158
158
  case 'CANCELLED':
159
159
  return 'bg-muted text-foreground'
160
160
  case 'COMPENSATING':
161
- return 'bg-orange-100 text-orange-800'
161
+ return 'bg-status-warning-bg text-status-warning-text'
162
162
  case 'COMPENSATED':
163
- return 'bg-purple-100 text-purple-800'
163
+ return 'bg-status-neutral-bg text-status-neutral-text'
164
164
  default:
165
165
  return 'bg-muted text-muted-foreground'
166
166
  }
@@ -268,7 +268,7 @@ export default function WorkflowInstancesListPage() {
268
268
  header: t('workflows.instances.fields.retryCount'),
269
269
  accessorKey: 'retryCount',
270
270
  cell: ({ row }) => (
271
- <span className={`text-sm ${row.original.retryCount > 0 ? 'text-orange-600 font-medium' : 'text-muted-foreground'}`}>
271
+ <span className={`text-sm ${row.original.retryCount > 0 ? 'text-status-warning-text font-medium' : 'text-muted-foreground'}`}>
272
272
  {row.original.retryCount}
273
273
  </span>
274
274
  ),
@@ -311,7 +311,7 @@ export default function WorkflowInstancesListPage() {
311
311
  <Page>
312
312
  <PageBody>
313
313
  <div className="p-8 text-center">
314
- <p className="text-red-600">{t('workflows.instances.messages.loadFailed')}</p>
314
+ <p className="text-status-error-text">{t('workflows.instances.messages.loadFailed')}</p>
315
315
  <Button onClick={() => queryClient.invalidateQueries({ queryKey: ['workflow-instances'] })} className="mt-4">
316
316
  {t('common.retry')}
317
317
  </Button>
@@ -135,11 +135,11 @@ export default function UserTasksListPage() {
135
135
  const getStatusBadgeClass = (status: UserTaskStatus) => {
136
136
  switch (status) {
137
137
  case 'PENDING':
138
- return 'bg-yellow-100 text-yellow-800'
138
+ return 'bg-status-warning-bg text-status-warning-text'
139
139
  case 'IN_PROGRESS':
140
- return 'bg-blue-100 text-blue-800'
140
+ return 'bg-status-info-bg text-status-info-text'
141
141
  case 'COMPLETED':
142
- return 'bg-green-100 text-green-800'
142
+ return 'bg-status-success-bg text-status-success-text'
143
143
  case 'CANCELLED':
144
144
  return 'bg-muted text-foreground'
145
145
  default:
@@ -207,7 +207,7 @@ export default function UserTasksListPage() {
207
207
  </div>
208
208
  )}
209
209
  {isOverdue(row.original) && (
210
- <div className="text-xs text-red-600 font-medium mt-1">
210
+ <div className="text-xs text-status-error-text font-medium mt-1">
211
211
  {t('workflows.tasks.overdue')}
212
212
  </div>
213
213
  )}
@@ -259,7 +259,7 @@ export default function UserTasksListPage() {
259
259
  const dueDate = new Date(row.original.dueDate)
260
260
  const overdue = isOverdue(row.original)
261
261
  return (
262
- <div className={`text-sm ${overdue ? 'text-red-600 font-medium' : 'text-foreground'}`}>
262
+ <div className={`text-sm ${overdue ? 'text-status-error-text font-medium' : 'text-foreground'}`}>
263
263
  {dueDate.toLocaleString()}
264
264
  </div>
265
265
  )
@@ -320,7 +320,7 @@ export default function UserTasksListPage() {
320
320
  <Page>
321
321
  <PageBody>
322
322
  <div className="p-8 text-center">
323
- <p className="text-red-600">{t('workflows.tasks.messages.loadFailed')}</p>
323
+ <p className="text-status-error-text">{t('workflows.tasks.messages.loadFailed')}</p>
324
324
  <Button onClick={() => queryClient.invalidateQueries({ queryKey: ['workflow-tasks'] })} className="mt-4">
325
325
  {t('common.retry')}
326
326
  </Button>
@@ -184,7 +184,7 @@ export function ActivitiesEditor({ value = [], onChange, error }: ActivitiesEdit
184
184
  <p className="text-sm text-muted-foreground">
185
185
  {t('workflows.form.descriptions.activities')}
186
186
  </p>
187
- {error && <p className="text-sm text-red-600 mt-1">{error}</p>}
187
+ {error && <p className="text-sm text-status-error-text mt-1">{error}</p>}
188
188
  </div>
189
189
  <Button type="button" onClick={addActivity} variant="outline" size="sm" className="w-full sm:w-auto">
190
190
  <Plus className="h-4 w-4 mr-1" />
@@ -257,7 +257,7 @@ export function ActivitiesEditor({ value = [], onChange, error }: ActivitiesEdit
257
257
  onClick={() => removeActivity(index)}
258
258
  title={t('common.delete')}
259
259
  >
260
- <Trash2 className="h-4 w-4 text-red-600" />
260
+ <Trash2 className="h-4 w-4 text-destructive" />
261
261
  </Button>
262
262
  </div>
263
263
  </div>
@@ -287,7 +287,7 @@ export function BusinessRulesSelector({
287
287
  </Badge>
288
288
  )}
289
289
  {rule.enabled ? (
290
- <Badge variant="default" className="bg-emerald-500 text-xs">
290
+ <Badge variant="default" className="bg-status-success-solid text-status-success-solid-foreground text-xs">
291
291
  Enabled
292
292
  </Badge>
293
293
  ) : (
@@ -285,7 +285,7 @@ export function DefinitionTriggersEditor({
285
285
  <div className="rounded-lg border bg-card p-3 md:p-4">
286
286
  <div className="flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between mb-4">
287
287
  <div className="flex items-center gap-2">
288
- <Zap className="w-5 h-5 text-amber-500" />
288
+ <Zap className="w-5 h-5 text-status-warning-icon" />
289
289
  <h3 className="text-sm font-semibold uppercase text-muted-foreground">
290
290
  {t('workflows.triggers.title', 'Event Triggers')}
291
291
  </h3>
@@ -567,7 +567,7 @@ export function DefinitionTriggersEditor({
567
567
  {t('common.cancel', 'Cancel')}
568
568
  </Button>
569
569
  <Button
570
- variant="destructive"
570
+ variant="destructive-solid"
571
571
  onClick={() => deleteConfirmId && handleDelete(deleteConfirmId)}
572
572
  >
573
573
  {t('common.delete', 'Delete')}
@@ -241,9 +241,8 @@ export function EdgeEditDialogCrudForm({ edge, isOpen, onClose, onSave, onDelete
241
241
  extraActions={
242
242
  <Button
243
243
  type="button"
244
- variant="outline"
244
+ variant="destructive"
245
245
  onClick={handleDelete}
246
- className="text-red-600 border-red-200 hover:bg-red-50"
247
246
  >
248
247
  <Trash2 className="size-4 mr-2" />
249
248
  Delete Transition
@@ -494,9 +494,8 @@ export function NodeEditDialogCrudForm({ node, isOpen, onClose, onSave, onDelete
494
494
  canDelete ? (
495
495
  <Button
496
496
  type="button"
497
- variant="outline"
497
+ variant="destructive"
498
498
  onClick={handleDelete}
499
- className="text-red-600 border-red-200 hover:bg-red-50"
500
499
  >
501
500
  <Trash2 className="size-4 mr-2" />
502
501
  Delete Step
@@ -89,7 +89,7 @@ export function StepsEditor({ value = [], onChange, error }: StepsEditorProps) {
89
89
  <p className="text-sm text-muted-foreground">
90
90
  {t('workflows.form.descriptions.steps')}
91
91
  </p>
92
- {error && <p className="text-sm text-red-600 mt-1">{error}</p>}
92
+ {error && <p className="text-sm text-status-error-text mt-1">{error}</p>}
93
93
  </div>
94
94
  <Button type="button" onClick={addStep} variant="outline" size="sm" className="w-full sm:w-auto">
95
95
  <Plus className="h-4 w-4 mr-1" />
@@ -162,7 +162,7 @@ export function StepsEditor({ value = [], onChange, error }: StepsEditorProps) {
162
162
  onClick={() => removeStep(index)}
163
163
  title={t('common.delete')}
164
164
  >
165
- <Trash2 className="h-4 w-4 text-red-600" />
165
+ <Trash2 className="h-4 w-4 text-destructive" />
166
166
  </Button>
167
167
  </div>
168
168
  </div>
@@ -227,7 +227,7 @@ export function TransitionsEditor({ value = [], onChange, steps = [], error }: T
227
227
  <p className="text-sm text-muted-foreground">
228
228
  {t('workflows.form.descriptions.transitions')}
229
229
  </p>
230
- {error && <p className="text-sm text-red-600 mt-1">{error}</p>}
230
+ {error && <p className="text-sm text-status-error-text mt-1">{error}</p>}
231
231
  </div>
232
232
  <Button type="button" onClick={addTransition} variant="outline" size="sm" className="w-full sm:w-auto">
233
233
  <Plus className="h-4 w-4 mr-1" />
@@ -300,7 +300,7 @@ export function TransitionsEditor({ value = [], onChange, steps = [], error }: T
300
300
  onClick={() => removeTransition(index)}
301
301
  title={t('common.delete')}
302
302
  >
303
- <Trash2 className="h-4 w-4 text-red-600" />
303
+ <Trash2 className="h-4 w-4 text-destructive" />
304
304
  </Button>
305
305
  </div>
306
306
  </div>
@@ -480,7 +480,7 @@ export function TransitionsEditor({ value = [], onChange, steps = [], error }: T
480
480
  onClick={() => removeActivity(index, activityIndex)}
481
481
  title={t('common.delete')}
482
482
  >
483
- <Trash2 className="h-3 w-3 text-red-600" />
483
+ <Trash2 className="h-3 w-3 text-destructive" />
484
484
  </Button>
485
485
  </div>
486
486
  </div>
@@ -46,7 +46,7 @@ export function WorkflowLegend() {
46
46
  </h3>
47
47
  <div className="space-y-2">
48
48
  <div className="flex items-center gap-2">
49
- <div className="flex-shrink-0 w-8 h-0.5 bg-emerald-500"></div>
49
+ <div className="flex-shrink-0 w-8 h-0.5 bg-status-success-solid"></div>
50
50
  <span className="text-xs text-muted-foreground">{t('workflows.legend.edgeState.completed')}</span>
51
51
  </div>
52
52
  <div className="flex items-center gap-2">
@@ -253,7 +253,7 @@ export function WorkflowSelector({
253
253
  v{workflow.version}
254
254
  </Badge>
255
255
  {workflow.enabled ? (
256
- <Badge variant="default" className="bg-emerald-500 text-xs">
256
+ <Badge variant="default" className="bg-status-success-solid text-status-success-solid-foreground text-xs">
257
257
  Enabled
258
258
  </Badge>
259
259
  ) : (
@@ -241,7 +241,7 @@ export function BusinessRuleConditionsEditor({
241
241
  disabled={disabled}
242
242
  className="ml-2 flex-shrink-0"
243
243
  >
244
- <Trash2 className="size-4 text-red-600" />
244
+ <Trash2 className="size-4 text-destructive" />
245
245
  </Button>
246
246
  }
247
247
  title={t('workflows.fieldEditors.businessRuleConditions.removeCondition')}
@@ -118,7 +118,7 @@ export function FormFieldArrayEditor({
118
118
  <p className="text-xs text-muted-foreground mt-0.5">
119
119
  {t('workflows.fieldEditors.formFields.description')}
120
120
  </p>
121
- {error && <p className="text-xs text-red-600 mt-1">{error}</p>}
121
+ {error && <p className="text-xs text-status-error-text mt-1">{error}</p>}
122
122
  </div>
123
123
  <Button
124
124
  type="button"
@@ -103,7 +103,7 @@ export function MappingArrayEditor({
103
103
  <p className="text-xs text-muted-foreground mt-0.5">
104
104
  {description}
105
105
  </p>
106
- {error && <p className="text-xs text-red-600 mt-1">{error}</p>}
106
+ {error && <p className="text-xs text-status-error-text mt-1">{error}</p>}
107
107
  </div>
108
108
  <Button
109
109
  type="button"
@@ -332,7 +332,7 @@ export function StartPreConditionsEditor({
332
332
  title={t('workflows.common.delete')}
333
333
  disabled={disabled}
334
334
  >
335
- <Trash2 className="h-4 w-4 text-red-600" />
335
+ <Trash2 className="h-4 w-4 text-destructive" />
336
336
  </Button>
337
337
  }
338
338
  title={t('workflows.fieldEditors.preConditions.removePreCondition')}
@@ -128,7 +128,7 @@ export function WorkflowSelectorField({
128
128
  <p className="text-xs text-muted-foreground mt-0.5">
129
129
  {description}
130
130
  </p>
131
- {error && <p className="text-xs text-red-600 mt-1">{error}</p>}
131
+ {error && <p className="text-xs text-status-error-text mt-1">{error}</p>}
132
132
  </div>
133
133
 
134
134
  {!workflowId ? (
@@ -159,10 +159,10 @@ export function WorkflowSelectorField({
159
159
  ) : workflowDetails?.error ? (
160
160
  <>
161
161
  <div className="flex items-center gap-2">
162
- <AlertCircle className="size-4 text-yellow-600" />
162
+ <AlertCircle className="size-4 text-status-warning-text" />
163
163
  <span className="text-sm font-semibold text-gray-900">{workflowId}</span>
164
164
  </div>
165
- <p className="text-xs text-yellow-600">{t('workflows.common.workflowNotFoundOrUnavailable')}</p>
165
+ <p className="text-xs text-status-warning-text">{t('workflows.common.workflowNotFoundOrUnavailable')}</p>
166
166
  </>
167
167
  ) : (
168
168
  <>
@@ -178,7 +178,7 @@ export function WorkflowSelectorField({
178
178
  )}
179
179
  {workflowDetails?.enabled !== undefined && (
180
180
  workflowDetails.enabled ? (
181
- <Badge variant="default" className="bg-emerald-500 text-xs">
181
+ <Badge variant="default" className="bg-status-success-solid text-status-success-solid-foreground text-xs">
182
182
  {t('common.enabled')}
183
183
  </Badge>
184
184
  ) : (