@open-mercato/core 0.5.1-develop.2949.009dcdd2d5 → 0.5.1-develop.2954.610bab2d08
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/helpers/integration/salesUi.js +25 -23
- package/dist/helpers/integration/salesUi.js.map +2 -2
- package/dist/modules/api_docs/frontend/docs/api/Explorer.js +24 -24
- package/dist/modules/api_docs/frontend/docs/api/Explorer.js.map +2 -2
- package/dist/modules/attachments/components/AttachmentPartitionSettings.js +15 -7
- package/dist/modules/attachments/components/AttachmentPartitionSettings.js.map +2 -2
- package/dist/modules/attachments/fields/attachment.js +4 -6
- package/dist/modules/attachments/fields/attachment.js.map +2 -2
- package/dist/modules/auth/api/users/route.js +63 -23
- package/dist/modules/auth/api/users/route.js.map +2 -2
- package/dist/modules/auth/backend/users/create/page.js +26 -26
- package/dist/modules/auth/backend/users/create/page.js.map +2 -2
- package/dist/modules/business_rules/components/ActionRow.js +36 -25
- package/dist/modules/business_rules/components/ActionRow.js.map +2 -2
- package/dist/modules/business_rules/components/ConditionGroup.js +14 -5
- package/dist/modules/business_rules/components/ConditionGroup.js.map +2 -2
- package/dist/modules/business_rules/components/ConditionRow.js +19 -10
- package/dist/modules/business_rules/components/ConditionRow.js.map +2 -2
- package/dist/modules/business_rules/components/RuleSetMembers.js +16 -10
- package/dist/modules/business_rules/components/RuleSetMembers.js.map +2 -2
- package/dist/modules/catalog/backend/catalog/products/[id]/page.js +30 -34
- package/dist/modules/catalog/backend/catalog/products/[id]/page.js.map +2 -2
- package/dist/modules/catalog/backend/catalog/products/create/page.js +220 -223
- package/dist/modules/catalog/backend/catalog/products/create/page.js.map +2 -2
- package/dist/modules/catalog/components/PriceKindSettings.js +20 -19
- package/dist/modules/catalog/components/PriceKindSettings.js.map +2 -2
- package/dist/modules/catalog/components/products/ProductUomSection.js +42 -37
- package/dist/modules/catalog/components/products/ProductUomSection.js.map +2 -2
- package/dist/modules/catalog/components/products/VariantBuilder.js +22 -18
- package/dist/modules/catalog/components/products/VariantBuilder.js.map +2 -2
- package/dist/modules/customer_accounts/backend/customer_accounts/users/[id]/page.js +18 -26
- package/dist/modules/customer_accounts/backend/customer_accounts/users/[id]/page.js.map +2 -2
- package/dist/modules/customer_accounts/backend/customer_accounts/users/page.js +4 -6
- package/dist/modules/customer_accounts/backend/customer_accounts/users/page.js.map +2 -2
- package/dist/modules/customer_accounts/widgets/injection/account-status/widget.client.js +5 -4
- package/dist/modules/customer_accounts/widgets/injection/account-status/widget.client.js.map +2 -2
- package/dist/modules/customers/backend/config/customers/pipeline-stages/page.js +19 -7
- package/dist/modules/customers/backend/config/customers/pipeline-stages/page.js.map +2 -2
- package/dist/modules/customers/backend/customers/deals/pipeline/page.js +24 -21
- package/dist/modules/customers/backend/customers/deals/pipeline/page.js.map +2 -2
- package/dist/modules/customers/components/AddressEditor.js +24 -7
- package/dist/modules/customers/components/AddressEditor.js.map +2 -2
- package/dist/modules/customers/components/AddressFormatSettings.js +35 -25
- package/dist/modules/customers/components/AddressFormatSettings.js.map +2 -2
- package/dist/modules/customers/components/detail/ActivityForm.js +20 -12
- package/dist/modules/customers/components/detail/ActivityForm.js.map +2 -2
- package/dist/modules/customers/components/detail/AnnualRevenueField.js +2 -2
- package/dist/modules/customers/components/detail/AnnualRevenueField.js.map +2 -2
- package/dist/modules/customers/components/detail/DealForm.js +19 -14
- package/dist/modules/customers/components/detail/DealForm.js.map +2 -2
- package/dist/modules/customers/components/formConfig.js +16 -12
- package/dist/modules/customers/components/formConfig.js.map +2 -2
- package/dist/modules/customers/widgets/dashboard/customer-todos/widget.client.js +3 -2
- package/dist/modules/customers/widgets/dashboard/customer-todos/widget.client.js.map +2 -2
- package/dist/modules/customers/widgets/dashboard/new-customers/widget.client.js +18 -10
- package/dist/modules/customers/widgets/dashboard/new-customers/widget.client.js.map +2 -2
- package/dist/modules/customers/widgets/dashboard/new-deals/widget.client.js +3 -2
- package/dist/modules/customers/widgets/dashboard/new-deals/widget.client.js.map +2 -2
- package/dist/modules/customers/widgets/dashboard/next-interactions/widget.client.js +3 -2
- package/dist/modules/customers/widgets/dashboard/next-interactions/widget.client.js.map +2 -2
- package/dist/modules/dashboards/components/WidgetVisibilityEditor.js +27 -28
- package/dist/modules/dashboards/components/WidgetVisibilityEditor.js.map +2 -2
- package/dist/modules/dashboards/widgets/dashboard/orders-by-status/widget.client.js +14 -6
- package/dist/modules/dashboards/widgets/dashboard/orders-by-status/widget.client.js.map +2 -2
- package/dist/modules/dashboards/widgets/dashboard/revenue-trend/widget.client.js +14 -6
- package/dist/modules/dashboards/widgets/dashboard/revenue-trend/widget.client.js.map +2 -2
- package/dist/modules/dashboards/widgets/dashboard/sales-by-region/widget.client.js +3 -2
- package/dist/modules/dashboards/widgets/dashboard/sales-by-region/widget.client.js.map +2 -2
- package/dist/modules/dashboards/widgets/dashboard/top-customers/widget.client.js +3 -2
- package/dist/modules/dashboards/widgets/dashboard/top-customers/widget.client.js.map +2 -2
- package/dist/modules/dashboards/widgets/dashboard/top-products/widget.client.js +17 -8
- package/dist/modules/dashboards/widgets/dashboard/top-products/widget.client.js.map +2 -2
- package/dist/modules/data_sync/backend/data-sync/page.js +40 -23
- package/dist/modules/data_sync/backend/data-sync/page.js.map +2 -2
- package/dist/modules/data_sync/components/IntegrationScheduleTab.js +15 -6
- package/dist/modules/data_sync/components/IntegrationScheduleTab.js.map +2 -2
- package/dist/modules/dictionaries/components/AppearanceSelector.js +4 -4
- package/dist/modules/dictionaries/components/AppearanceSelector.js.map +2 -2
- package/dist/modules/dictionaries/components/DictionaryEntriesEditor.js +4 -5
- package/dist/modules/dictionaries/components/DictionaryEntriesEditor.js.map +2 -2
- package/dist/modules/dictionaries/components/DictionaryEntrySelect.js +22 -14
- package/dist/modules/dictionaries/components/DictionaryEntrySelect.js.map +2 -2
- package/dist/modules/dictionaries/fields/dictionary.js +18 -13
- package/dist/modules/dictionaries/fields/dictionary.js.map +2 -2
- package/dist/modules/entities/components/EncryptionManager.js +23 -19
- package/dist/modules/entities/components/EncryptionManager.js.map +2 -2
- package/dist/modules/feature_toggles/components/formConfig.js +17 -9
- package/dist/modules/feature_toggles/components/formConfig.js.map +2 -2
- package/dist/modules/feature_toggles/components/overrideFormConfig.js +17 -9
- package/dist/modules/feature_toggles/components/overrideFormConfig.js.map +2 -2
- package/dist/modules/inbox_ops/backend/inbox-ops/settings/page.js +15 -8
- package/dist/modules/inbox_ops/backend/inbox-ops/settings/page.js.map +2 -2
- package/dist/modules/inbox_ops/components/proposals/EditActionDialog.js +37 -22
- package/dist/modules/inbox_ops/components/proposals/EditActionDialog.js.map +2 -2
- package/dist/modules/integrations/backend/integrations/[id]/page.js +22 -17
- package/dist/modules/integrations/backend/integrations/[id]/page.js.map +2 -2
- package/dist/modules/integrations/backend/integrations/bundle/[id]/page.js +12 -6
- package/dist/modules/integrations/backend/integrations/bundle/[id]/page.js.map +2 -2
- package/dist/modules/planner/components/AvailabilityRulesEditor.js +19 -12
- package/dist/modules/planner/components/AvailabilityRulesEditor.js.map +2 -2
- package/dist/modules/resources/components/ResourceCrudForm.js +15 -10
- package/dist/modules/resources/components/ResourceCrudForm.js.map +3 -3
- package/dist/modules/sales/backend/sales/documents/[id]/page.js +15 -18
- package/dist/modules/sales/backend/sales/documents/[id]/page.js.map +2 -2
- package/dist/modules/sales/components/ProviderFieldInput.js +23 -20
- package/dist/modules/sales/components/ProviderFieldInput.js.map +2 -2
- package/dist/modules/sales/components/ShippingMethodsSettings.js +25 -17
- package/dist/modules/sales/components/ShippingMethodsSettings.js.map +3 -3
- package/dist/modules/sales/components/channels/ChannelOfferForm.js +35 -42
- package/dist/modules/sales/components/channels/ChannelOfferForm.js.map +2 -2
- package/dist/modules/sales/components/documents/AddressesSection.js +87 -90
- package/dist/modules/sales/components/documents/AddressesSection.js.map +2 -2
- package/dist/modules/sales/components/documents/AdjustmentDialog.js +17 -6
- package/dist/modules/sales/components/documents/AdjustmentDialog.js.map +3 -3
- package/dist/modules/sales/components/documents/LineItemDialog.js +42 -25
- package/dist/modules/sales/components/documents/LineItemDialog.js.map +2 -2
- package/dist/modules/sales/components/documents/SalesDocumentForm.js +96 -87
- package/dist/modules/sales/components/documents/SalesDocumentForm.js.map +2 -2
- package/dist/modules/sales/widgets/dashboard/new-orders/widget.client.js +20 -11
- package/dist/modules/sales/widgets/dashboard/new-orders/widget.client.js.map +2 -2
- package/dist/modules/sales/widgets/dashboard/new-quotes/widget.client.js +20 -11
- package/dist/modules/sales/widgets/dashboard/new-quotes/widget.client.js.map +2 -2
- package/dist/modules/shipping_carriers/lib/shipment-wizard/components/ConfigureStep.js +36 -22
- package/dist/modules/shipping_carriers/lib/shipment-wizard/components/ConfigureStep.js.map +2 -2
- package/dist/modules/staff/components/TeamMemberForm.js +14 -9
- package/dist/modules/staff/components/TeamMemberForm.js.map +3 -3
- package/dist/modules/workflows/backend/tasks/[id]/page.js +42 -21
- package/dist/modules/workflows/backend/tasks/[id]/page.js.map +2 -2
- package/dist/modules/workflows/components/ActivitiesEditor.js +14 -6
- package/dist/modules/workflows/components/ActivitiesEditor.js.map +3 -3
- package/dist/modules/workflows/components/DefinitionTriggersEditor.js +25 -17
- package/dist/modules/workflows/components/DefinitionTriggersEditor.js.map +3 -3
- package/dist/modules/workflows/components/EdgeEditDialog.js +48 -45
- package/dist/modules/workflows/components/EdgeEditDialog.js.map +2 -2
- package/dist/modules/workflows/components/NodeEditDialog.js +90 -90
- package/dist/modules/workflows/components/NodeEditDialog.js.map +2 -2
- package/dist/modules/workflows/components/StepsEditor.js +14 -6
- package/dist/modules/workflows/components/StepsEditor.js.map +3 -3
- package/dist/modules/workflows/components/TransitionsEditor.js +31 -26
- package/dist/modules/workflows/components/TransitionsEditor.js.map +3 -3
- package/dist/modules/workflows/components/fields/ActivityArrayEditor.js +19 -11
- package/dist/modules/workflows/components/fields/ActivityArrayEditor.js.map +3 -3
- package/dist/modules/workflows/components/fields/BusinessRuleConditionsEditor.js +12 -14
- package/dist/modules/workflows/components/fields/BusinessRuleConditionsEditor.js.map +2 -2
- package/dist/modules/workflows/components/fields/FormFieldArrayEditor.js +24 -16
- package/dist/modules/workflows/components/fields/FormFieldArrayEditor.js.map +3 -3
- package/dist/modules/workflows/components/fields/StartPreConditionsEditor.js +12 -13
- package/dist/modules/workflows/components/fields/StartPreConditionsEditor.js.map +2 -2
- package/dist/modules/workflows/components/mobile/MobileTaskForm.js +12 -8
- package/dist/modules/workflows/components/mobile/MobileTaskForm.js.map +2 -2
- package/dist/modules/workflows/frontend/checkout-demo/page.js +43 -46
- package/dist/modules/workflows/frontend/checkout-demo/page.js.map +2 -2
- package/package.json +3 -3
- package/src/helpers/integration/salesUi.ts +40 -30
- package/src/modules/api_docs/frontend/docs/api/Explorer.tsx +25 -19
- package/src/modules/attachments/components/AttachmentPartitionSettings.tsx +21 -11
- package/src/modules/attachments/fields/attachment.tsx +4 -6
- package/src/modules/auth/api/users/route.ts +75 -25
- package/src/modules/auth/backend/users/create/page.tsx +16 -20
- package/src/modules/business_rules/components/ActionRow.tsx +51 -32
- package/src/modules/business_rules/components/ConditionGroup.tsx +20 -9
- package/src/modules/business_rules/components/ConditionRow.tsx +24 -15
- package/src/modules/business_rules/components/RuleSetMembers.tsx +23 -13
- package/src/modules/catalog/backend/catalog/products/[id]/page.tsx +47 -53
- package/src/modules/catalog/backend/catalog/products/create/page.tsx +84 -87
- package/src/modules/catalog/components/PriceKindSettings.tsx +9 -9
- package/src/modules/catalog/components/products/ProductUomSection.tsx +85 -83
- package/src/modules/catalog/components/products/VariantBuilder.tsx +49 -33
- package/src/modules/customer_accounts/backend/customer_accounts/users/[id]/page.tsx +12 -27
- package/src/modules/customer_accounts/backend/customer_accounts/users/page.tsx +4 -6
- package/src/modules/customer_accounts/widgets/injection/account-status/widget.client.tsx +5 -4
- package/src/modules/customers/backend/config/customers/pipeline-stages/page.tsx +28 -15
- package/src/modules/customers/backend/customers/deals/pipeline/page.tsx +37 -26
- package/src/modules/customers/components/AddressEditor.tsx +30 -16
- package/src/modules/customers/components/AddressFormatSettings.tsx +25 -19
- package/src/modules/customers/components/detail/ActivityForm.tsx +35 -23
- package/src/modules/customers/components/detail/AnnualRevenueField.tsx +2 -2
- package/src/modules/customers/components/detail/DealForm.tsx +33 -20
- package/src/modules/customers/components/formConfig.tsx +25 -17
- package/src/modules/customers/widgets/dashboard/customer-todos/widget.client.tsx +3 -2
- package/src/modules/customers/widgets/dashboard/new-customers/widget.client.tsx +21 -11
- package/src/modules/customers/widgets/dashboard/new-deals/widget.client.tsx +3 -2
- package/src/modules/customers/widgets/dashboard/next-interactions/widget.client.tsx +3 -2
- package/src/modules/dashboards/components/WidgetVisibilityEditor.tsx +17 -22
- package/src/modules/dashboards/widgets/dashboard/orders-by-status/widget.client.tsx +17 -7
- package/src/modules/dashboards/widgets/dashboard/revenue-trend/widget.client.tsx +20 -10
- package/src/modules/dashboards/widgets/dashboard/sales-by-region/widget.client.tsx +3 -2
- package/src/modules/dashboards/widgets/dashboard/top-customers/widget.client.tsx +3 -2
- package/src/modules/dashboards/widgets/dashboard/top-products/widget.client.tsx +20 -9
- package/src/modules/data_sync/backend/data-sync/page.tsx +64 -38
- package/src/modules/data_sync/components/IntegrationScheduleTab.tsx +18 -7
- package/src/modules/dictionaries/components/AppearanceSelector.tsx +4 -4
- package/src/modules/dictionaries/components/DictionaryEntriesEditor.tsx +3 -4
- package/src/modules/dictionaries/components/DictionaryEntrySelect.tsx +27 -21
- package/src/modules/dictionaries/fields/dictionary.tsx +36 -23
- package/src/modules/entities/components/EncryptionManager.tsx +49 -33
- package/src/modules/feature_toggles/components/formConfig.tsx +20 -10
- package/src/modules/feature_toggles/components/overrideFormConfig.tsx +20 -10
- package/src/modules/inbox_ops/backend/inbox-ops/settings/page.tsx +19 -10
- package/src/modules/inbox_ops/components/proposals/EditActionDialog.tsx +49 -26
- package/src/modules/integrations/backend/integrations/[id]/page.tsx +20 -11
- package/src/modules/integrations/backend/integrations/bundle/[id]/page.tsx +19 -9
- package/src/modules/planner/components/AvailabilityRulesEditor.tsx +34 -21
- package/src/modules/resources/components/ResourceCrudForm.tsx +24 -15
- package/src/modules/sales/backend/sales/documents/[id]/page.tsx +12 -15
- package/src/modules/sales/components/ProviderFieldInput.tsx +26 -17
- package/src/modules/sales/components/ShippingMethodsSettings.tsx +28 -20
- package/src/modules/sales/components/channels/ChannelOfferForm.tsx +51 -46
- package/src/modules/sales/components/documents/AddressesSection.tsx +78 -76
- package/src/modules/sales/components/documents/AdjustmentDialog.tsx +27 -15
- package/src/modules/sales/components/documents/LineItemDialog.tsx +69 -51
- package/src/modules/sales/components/documents/SalesDocumentForm.tsx +98 -87
- package/src/modules/sales/widgets/dashboard/new-orders/widget.client.tsx +23 -12
- package/src/modules/sales/widgets/dashboard/new-quotes/widget.client.tsx +23 -12
- package/src/modules/shipping_carriers/lib/shipment-wizard/components/ConfigureStep.tsx +35 -19
- package/src/modules/staff/components/TeamMemberForm.tsx +23 -14
- package/src/modules/workflows/backend/tasks/[id]/page.tsx +51 -23
- package/src/modules/workflows/components/ActivitiesEditor.tsx +20 -10
- package/src/modules/workflows/components/DefinitionTriggersEditor.tsx +28 -18
- package/src/modules/workflows/components/EdgeEditDialog.tsx +51 -40
- package/src/modules/workflows/components/NodeEditDialog.tsx +81 -77
- package/src/modules/workflows/components/StepsEditor.tsx +20 -10
- package/src/modules/workflows/components/TransitionsEditor.tsx +61 -44
- package/src/modules/workflows/components/fields/ActivityArrayEditor.tsx +22 -12
- package/src/modules/workflows/components/fields/BusinessRuleConditionsEditor.tsx +9 -13
- package/src/modules/workflows/components/fields/FormFieldArrayEditor.tsx +27 -17
- package/src/modules/workflows/components/fields/StartPreConditionsEditor.tsx +9 -12
- package/src/modules/workflows/components/mobile/MobileTaskForm.tsx +19 -11
- package/src/modules/workflows/frontend/checkout-demo/page.tsx +71 -60
|
@@ -4,7 +4,15 @@ import {Node} from '@xyflow/react'
|
|
|
4
4
|
import {useEffect, useState} from 'react'
|
|
5
5
|
import {Dialog, DialogContent, DialogFooter, DialogHeader, DialogTitle} from '@open-mercato/ui/primitives/dialog'
|
|
6
6
|
import {Button} from '@open-mercato/ui/primitives/button'
|
|
7
|
+
import {Input} from '@open-mercato/ui/primitives/input'
|
|
7
8
|
import {Badge} from '@open-mercato/ui/primitives/badge'
|
|
9
|
+
import {
|
|
10
|
+
Select,
|
|
11
|
+
SelectContent,
|
|
12
|
+
SelectItem,
|
|
13
|
+
SelectTrigger,
|
|
14
|
+
SelectValue,
|
|
15
|
+
} from '@open-mercato/ui/primitives/select'
|
|
8
16
|
import {Alert, AlertDescription} from '@open-mercato/ui/primitives/alert'
|
|
9
17
|
import {ChevronDown, Info, Plus, Trash2} from 'lucide-react'
|
|
10
18
|
import {sanitizeId} from '../lib/graph-utils'
|
|
@@ -507,12 +515,11 @@ export function NodeEditDialog({ node, isOpen, onClose, onSave, onDelete }: Node
|
|
|
507
515
|
<label className="block text-sm font-medium text-gray-700 mb-1">
|
|
508
516
|
{t('workflows.form.stepName')} *
|
|
509
517
|
</label>
|
|
510
|
-
<
|
|
518
|
+
<Input
|
|
511
519
|
type="text"
|
|
512
520
|
value={stepName}
|
|
513
521
|
onChange={(e) => setStepName(e.target.value)}
|
|
514
522
|
placeholder={t('workflows.form.placeholders.stepName')}
|
|
515
|
-
className="w-full px-3 py-2 border border-gray-300 rounded-lg text-sm focus-visible:ring-2 focus-visible:ring-ring focus-visible:border-ring"
|
|
516
523
|
autoFocus
|
|
517
524
|
/>
|
|
518
525
|
<p className="text-xs text-gray-500 mt-1">
|
|
@@ -542,12 +549,11 @@ export function NodeEditDialog({ node, isOpen, onClose, onSave, onDelete }: Node
|
|
|
542
549
|
<label className="block text-sm font-medium text-gray-700 mb-1">
|
|
543
550
|
{t('workflows.form.timeout')}
|
|
544
551
|
</label>
|
|
545
|
-
<
|
|
552
|
+
<Input
|
|
546
553
|
type="text"
|
|
547
554
|
value={timeout}
|
|
548
555
|
onChange={(e) => setTimeout(e.target.value)}
|
|
549
556
|
placeholder={t('workflows.form.placeholders.timeout')}
|
|
550
|
-
className="w-full px-3 py-2 border border-gray-300 rounded-lg text-sm focus-visible:ring-2 focus-visible:ring-ring focus-visible:border-ring"
|
|
551
557
|
/>
|
|
552
558
|
<p className="text-xs text-gray-500 mt-1">
|
|
553
559
|
{t('workflows.form.descriptions.timeout')}
|
|
@@ -567,12 +573,11 @@ export function NodeEditDialog({ node, isOpen, onClose, onSave, onDelete }: Node
|
|
|
567
573
|
<label className="block text-sm font-medium text-gray-700 mb-1">
|
|
568
574
|
{t('workflows.form.assignedTo')}
|
|
569
575
|
</label>
|
|
570
|
-
<
|
|
576
|
+
<Input
|
|
571
577
|
type="text"
|
|
572
578
|
value={assignedTo}
|
|
573
579
|
onChange={(e) => setAssignedTo(e.target.value)}
|
|
574
580
|
placeholder={t('workflows.form.placeholders.userId')}
|
|
575
|
-
className="w-full px-3 py-2 border border-gray-300 rounded-lg text-sm focus-visible:ring-2 focus-visible:ring-ring focus-visible:border-ring"
|
|
576
581
|
/>
|
|
577
582
|
<p className="text-xs text-gray-500 mt-1">
|
|
578
583
|
{t('workflows.form.descriptions.assignedTo')}
|
|
@@ -583,12 +588,11 @@ export function NodeEditDialog({ node, isOpen, onClose, onSave, onDelete }: Node
|
|
|
583
588
|
<label className="block text-sm font-medium text-gray-700 mb-1">
|
|
584
589
|
{t('workflows.form.assignedToRoles')}
|
|
585
590
|
</label>
|
|
586
|
-
<
|
|
591
|
+
<Input
|
|
587
592
|
type="text"
|
|
588
593
|
value={assignedToRoles}
|
|
589
594
|
onChange={(e) => setAssignedToRoles(e.target.value)}
|
|
590
595
|
placeholder={t('workflows.form.placeholders.roles')}
|
|
591
|
-
className="w-full px-3 py-2 border border-gray-300 rounded-lg text-sm focus-visible:ring-2 focus-visible:ring-ring focus-visible:border-ring"
|
|
592
596
|
/>
|
|
593
597
|
<p className="text-xs text-gray-500 mt-1">
|
|
594
598
|
{t('workflows.form.descriptions.assignedToRoles')}
|
|
@@ -599,12 +603,11 @@ export function NodeEditDialog({ node, isOpen, onClose, onSave, onDelete }: Node
|
|
|
599
603
|
<label className="block text-sm font-medium text-gray-700 mb-1">
|
|
600
604
|
{t('workflows.form.formKey')}
|
|
601
605
|
</label>
|
|
602
|
-
<
|
|
606
|
+
<Input
|
|
603
607
|
type="text"
|
|
604
608
|
value={formKey}
|
|
605
609
|
onChange={(e) => setFormKey(e.target.value)}
|
|
606
610
|
placeholder={t('workflows.form.placeholders.formKey')}
|
|
607
|
-
className="w-full px-3 py-2 border border-gray-300 rounded-lg text-sm focus-visible:ring-2 focus-visible:ring-ring focus-visible:border-ring"
|
|
608
611
|
/>
|
|
609
612
|
<p className="text-xs text-gray-500 mt-1">
|
|
610
613
|
{t('workflows.form.descriptions.formKey')}
|
|
@@ -686,11 +689,11 @@ export function NodeEditDialog({ node, isOpen, onClose, onSave, onDelete }: Node
|
|
|
686
689
|
{/* Field Name */}
|
|
687
690
|
<div className="pt-3">
|
|
688
691
|
<label className="block text-xs font-medium text-gray-700 mb-1">{t('workflows.form.fieldName')} *</label>
|
|
689
|
-
<
|
|
692
|
+
<Input
|
|
690
693
|
type="text"
|
|
694
|
+
size="sm"
|
|
691
695
|
value={field.name}
|
|
692
696
|
onChange={(e) => updateFormField(index, 'name', e.target.value)}
|
|
693
|
-
className="w-full px-2 py-1.5 border border-gray-300 rounded text-xs focus-visible:ring-1 focus-visible:ring-ring focus-visible:border-ring"
|
|
694
697
|
placeholder={t('workflows.form.placeholders.fieldName')}
|
|
695
698
|
/>
|
|
696
699
|
<p className="text-xs text-gray-500 mt-0.5">{t('workflows.form.descriptions.fieldName')}</p>
|
|
@@ -699,11 +702,11 @@ export function NodeEditDialog({ node, isOpen, onClose, onSave, onDelete }: Node
|
|
|
699
702
|
{/* Field Label */}
|
|
700
703
|
<div>
|
|
701
704
|
<label className="block text-xs font-medium text-gray-700 mb-1">{t('workflows.form.fieldLabel')} *</label>
|
|
702
|
-
<
|
|
705
|
+
<Input
|
|
703
706
|
type="text"
|
|
707
|
+
size="sm"
|
|
704
708
|
value={field.label}
|
|
705
709
|
onChange={(e) => updateFormField(index, 'label', e.target.value)}
|
|
706
|
-
className="w-full px-2 py-1.5 border border-gray-300 rounded text-xs focus-visible:ring-1 focus-visible:ring-ring focus-visible:border-ring"
|
|
707
710
|
placeholder={t('workflows.form.placeholders.fieldLabel')}
|
|
708
711
|
/>
|
|
709
712
|
<p className="text-xs text-gray-500 mt-0.5">{t('workflows.form.descriptions.fieldLabel')}</p>
|
|
@@ -712,34 +715,38 @@ export function NodeEditDialog({ node, isOpen, onClose, onSave, onDelete }: Node
|
|
|
712
715
|
{/* Field Type */}
|
|
713
716
|
<div>
|
|
714
717
|
<label className="block text-xs font-medium text-gray-700 mb-1">{t('workflows.form.fieldType')} *</label>
|
|
715
|
-
<
|
|
718
|
+
<Select
|
|
716
719
|
value={field.type}
|
|
717
|
-
|
|
718
|
-
className="w-full px-2 py-1.5 border border-gray-300 rounded text-xs focus-visible:ring-1 focus-visible:ring-ring focus-visible:border-ring"
|
|
720
|
+
onValueChange={(value) => updateFormField(index, 'type', value)}
|
|
719
721
|
>
|
|
720
|
-
<
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
<
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
722
|
+
<SelectTrigger size="sm">
|
|
723
|
+
<SelectValue />
|
|
724
|
+
</SelectTrigger>
|
|
725
|
+
<SelectContent>
|
|
726
|
+
<SelectItem value="text">{t('workflows.form.fieldTypes.text')}</SelectItem>
|
|
727
|
+
<SelectItem value="number">{t('workflows.form.fieldTypes.number')}</SelectItem>
|
|
728
|
+
<SelectItem value="email">{t('workflows.form.fieldTypes.email')}</SelectItem>
|
|
729
|
+
<SelectItem value="tel">{t('workflows.form.fieldTypes.tel')}</SelectItem>
|
|
730
|
+
<SelectItem value="url">{t('workflows.form.fieldTypes.url')}</SelectItem>
|
|
731
|
+
<SelectItem value="textarea">{t('workflows.form.fieldTypes.textarea')}</SelectItem>
|
|
732
|
+
<SelectItem value="select">{t('workflows.form.fieldTypes.select')}</SelectItem>
|
|
733
|
+
<SelectItem value="radio">{t('workflows.form.fieldTypes.radio')}</SelectItem>
|
|
734
|
+
<SelectItem value="checkbox">{t('workflows.form.fieldTypes.checkbox')}</SelectItem>
|
|
735
|
+
<SelectItem value="date">{t('workflows.form.fieldTypes.date')}</SelectItem>
|
|
736
|
+
<SelectItem value="time">{t('workflows.form.fieldTypes.time')}</SelectItem>
|
|
737
|
+
<SelectItem value="datetime-local">{t('workflows.form.fieldTypes.datetime-local')}</SelectItem>
|
|
738
|
+
</SelectContent>
|
|
739
|
+
</Select>
|
|
733
740
|
</div>
|
|
734
741
|
|
|
735
742
|
{/* Placeholder */}
|
|
736
743
|
<div>
|
|
737
744
|
<label className="block text-xs font-medium text-gray-700 mb-1">{t('workflows.form.placeholder')}</label>
|
|
738
|
-
<
|
|
745
|
+
<Input
|
|
739
746
|
type="text"
|
|
747
|
+
size="sm"
|
|
740
748
|
value={field.placeholder || ''}
|
|
741
749
|
onChange={(e) => updateFormField(index, 'placeholder', e.target.value)}
|
|
742
|
-
className="w-full px-2 py-1.5 border border-gray-300 rounded text-xs focus-visible:ring-1 focus-visible:ring-ring focus-visible:border-ring"
|
|
743
750
|
placeholder={t('workflows.form.placeholders.placeholder')}
|
|
744
751
|
/>
|
|
745
752
|
</div>
|
|
@@ -747,11 +754,11 @@ export function NodeEditDialog({ node, isOpen, onClose, onSave, onDelete }: Node
|
|
|
747
754
|
{/* Default Value */}
|
|
748
755
|
<div>
|
|
749
756
|
<label className="block text-xs font-medium text-gray-700 mb-1">{t('workflows.form.defaultValue')}</label>
|
|
750
|
-
<
|
|
757
|
+
<Input
|
|
751
758
|
type="text"
|
|
759
|
+
size="sm"
|
|
752
760
|
value={field.defaultValue || ''}
|
|
753
761
|
onChange={(e) => updateFormField(index, 'defaultValue', e.target.value)}
|
|
754
|
-
className="w-full px-2 py-1.5 border border-gray-300 rounded text-xs focus-visible:ring-1 focus-visible:ring-ring focus-visible:border-ring"
|
|
755
762
|
placeholder={t('workflows.form.placeholders.defaultValue')}
|
|
756
763
|
/>
|
|
757
764
|
</div>
|
|
@@ -760,11 +767,11 @@ export function NodeEditDialog({ node, isOpen, onClose, onSave, onDelete }: Node
|
|
|
760
767
|
{(field.type === 'select' || field.type === 'radio') && (
|
|
761
768
|
<div>
|
|
762
769
|
<label className="block text-xs font-medium text-gray-700 mb-1">{t('workflows.form.options')}</label>
|
|
763
|
-
<
|
|
770
|
+
<Input
|
|
764
771
|
type="text"
|
|
772
|
+
size="sm"
|
|
765
773
|
value={field.options?.join(', ') || ''}
|
|
766
774
|
onChange={(e) => updateFormField(index, 'options', e.target.value.split(',').map(o => o.trim()).filter(Boolean))}
|
|
767
|
-
className="w-full px-2 py-1.5 border border-gray-300 rounded text-xs focus-visible:ring-1 focus-visible:ring-ring focus-visible:border-ring"
|
|
768
775
|
placeholder={t('workflows.form.placeholders.options')}
|
|
769
776
|
/>
|
|
770
777
|
<p className="text-xs text-gray-500 mt-0.5">{t('workflows.form.descriptions.options')}</p>
|
|
@@ -896,15 +903,15 @@ export function NodeEditDialog({ node, isOpen, onClose, onSave, onDelete }: Node
|
|
|
896
903
|
<label className="block text-xs font-medium text-gray-700 mb-1">
|
|
897
904
|
{t('workflows.form.activityId')} *
|
|
898
905
|
</label>
|
|
899
|
-
<
|
|
906
|
+
<Input
|
|
900
907
|
type="text"
|
|
908
|
+
size="sm"
|
|
901
909
|
value={activity.activityId}
|
|
902
910
|
onChange={(e) => {
|
|
903
911
|
const updated = [...stepActivities]
|
|
904
912
|
updated[index].activityId = e.target.value
|
|
905
913
|
setStepActivities(updated)
|
|
906
914
|
}}
|
|
907
|
-
className="w-full px-2 py-1.5 border border-gray-300 rounded text-xs focus-visible:ring-1 focus-visible:ring-ring"
|
|
908
915
|
placeholder={t('workflows.form.placeholders.activityId')}
|
|
909
916
|
/>
|
|
910
917
|
</div>
|
|
@@ -914,15 +921,15 @@ export function NodeEditDialog({ node, isOpen, onClose, onSave, onDelete }: Node
|
|
|
914
921
|
<label className="block text-xs font-medium text-gray-700 mb-1">
|
|
915
922
|
{t('workflows.form.activityName')} *
|
|
916
923
|
</label>
|
|
917
|
-
<
|
|
924
|
+
<Input
|
|
918
925
|
type="text"
|
|
926
|
+
size="sm"
|
|
919
927
|
value={activity.activityName || ''}
|
|
920
928
|
onChange={(e) => {
|
|
921
929
|
const updated = [...stepActivities]
|
|
922
930
|
updated[index].activityName = e.target.value
|
|
923
931
|
setStepActivities(updated)
|
|
924
932
|
}}
|
|
925
|
-
className="w-full px-2 py-1.5 border border-gray-300 rounded text-xs focus-visible:ring-1 focus-visible:ring-ring"
|
|
926
933
|
placeholder={t('workflows.form.placeholders.activityName')}
|
|
927
934
|
/>
|
|
928
935
|
</div>
|
|
@@ -932,22 +939,26 @@ export function NodeEditDialog({ node, isOpen, onClose, onSave, onDelete }: Node
|
|
|
932
939
|
<label className="block text-xs font-medium text-gray-700 mb-1">
|
|
933
940
|
{t('workflows.form.activityType')} *
|
|
934
941
|
</label>
|
|
935
|
-
<
|
|
942
|
+
<Select
|
|
936
943
|
value={activity.activityType}
|
|
937
|
-
|
|
944
|
+
onValueChange={(value) => {
|
|
938
945
|
const updated = [...stepActivities]
|
|
939
|
-
updated[index].activityType =
|
|
946
|
+
updated[index].activityType = value
|
|
940
947
|
setStepActivities(updated)
|
|
941
948
|
}}
|
|
942
|
-
className="w-full px-2 py-1.5 border border-gray-300 rounded text-xs focus-visible:ring-1 focus-visible:ring-ring"
|
|
943
949
|
>
|
|
944
|
-
<
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
<
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
950
|
+
<SelectTrigger size="sm">
|
|
951
|
+
<SelectValue />
|
|
952
|
+
</SelectTrigger>
|
|
953
|
+
<SelectContent>
|
|
954
|
+
<SelectItem value="SEND_EMAIL">{t('workflows.activities.types.SEND_EMAIL')}</SelectItem>
|
|
955
|
+
<SelectItem value="CALL_API">{t('workflows.activities.types.CALL_API')}</SelectItem>
|
|
956
|
+
<SelectItem value="UPDATE_ENTITY">{t('workflows.activities.types.UPDATE_ENTITY')}</SelectItem>
|
|
957
|
+
<SelectItem value="EMIT_EVENT">{t('workflows.activities.types.EMIT_EVENT')}</SelectItem>
|
|
958
|
+
<SelectItem value="CALL_WEBHOOK">{t('workflows.activities.types.CALL_WEBHOOK')}</SelectItem>
|
|
959
|
+
<SelectItem value="EXECUTE_FUNCTION">{t('workflows.activities.types.EXECUTE_FUNCTION')}</SelectItem>
|
|
960
|
+
</SelectContent>
|
|
961
|
+
</Select>
|
|
951
962
|
</div>
|
|
952
963
|
|
|
953
964
|
{/* Timeout */}
|
|
@@ -955,15 +966,15 @@ export function NodeEditDialog({ node, isOpen, onClose, onSave, onDelete }: Node
|
|
|
955
966
|
<label className="block text-xs font-medium text-gray-700 mb-1">
|
|
956
967
|
{t('workflows.form.timeout')}
|
|
957
968
|
</label>
|
|
958
|
-
<
|
|
969
|
+
<Input
|
|
959
970
|
type="text"
|
|
971
|
+
size="sm"
|
|
960
972
|
value={activity.timeoutMs || ''}
|
|
961
973
|
onChange={(e) => {
|
|
962
974
|
const updated = [...stepActivities]
|
|
963
975
|
updated[index].timeoutMs = e.target.value ? parseInt(e.target.value) : undefined
|
|
964
976
|
setStepActivities(updated)
|
|
965
977
|
}}
|
|
966
|
-
className="w-full px-2 py-1.5 border border-gray-300 rounded text-xs focus-visible:ring-1 focus-visible:ring-ring"
|
|
967
978
|
placeholder={t('workflows.form.placeholders.timeoutMs')}
|
|
968
979
|
/>
|
|
969
980
|
<p className="text-xs text-gray-500 mt-1">{t('workflows.form.descriptions.timeoutMs')}</p>
|
|
@@ -977,8 +988,9 @@ export function NodeEditDialog({ node, isOpen, onClose, onSave, onDelete }: Node
|
|
|
977
988
|
<div className="grid grid-cols-1 sm:grid-cols-2 gap-2">
|
|
978
989
|
<div>
|
|
979
990
|
<label className="block text-xs text-gray-600 mb-1">{t('workflows.form.maxAttempts')}</label>
|
|
980
|
-
<
|
|
991
|
+
<Input
|
|
981
992
|
type="number"
|
|
993
|
+
size="sm"
|
|
982
994
|
value={activity.retryPolicy?.maxAttempts || 1}
|
|
983
995
|
onChange={(e) => {
|
|
984
996
|
const updated = [...stepActivities]
|
|
@@ -988,13 +1000,13 @@ export function NodeEditDialog({ node, isOpen, onClose, onSave, onDelete }: Node
|
|
|
988
1000
|
}}
|
|
989
1001
|
min="1"
|
|
990
1002
|
max="10"
|
|
991
|
-
className="w-full px-2 py-1 border border-gray-300 rounded text-xs"
|
|
992
1003
|
/>
|
|
993
1004
|
</div>
|
|
994
1005
|
<div>
|
|
995
1006
|
<label className="block text-xs text-gray-600 mb-1">{t('workflows.form.initialInterval')}</label>
|
|
996
|
-
<
|
|
1007
|
+
<Input
|
|
997
1008
|
type="number"
|
|
1009
|
+
size="sm"
|
|
998
1010
|
value={activity.retryPolicy?.initialIntervalMs || 1000}
|
|
999
1011
|
onChange={(e) => {
|
|
1000
1012
|
const updated = [...stepActivities]
|
|
@@ -1002,13 +1014,13 @@ export function NodeEditDialog({ node, isOpen, onClose, onSave, onDelete }: Node
|
|
|
1002
1014
|
updated[index].retryPolicy.initialIntervalMs = parseInt(e.target.value) || 1000
|
|
1003
1015
|
setStepActivities(updated)
|
|
1004
1016
|
}}
|
|
1005
|
-
className="w-full px-2 py-1 border border-gray-300 rounded text-xs"
|
|
1006
1017
|
/>
|
|
1007
1018
|
</div>
|
|
1008
1019
|
<div>
|
|
1009
1020
|
<label className="block text-xs text-gray-600 mb-1">{t('workflows.form.backoffCoefficient')}</label>
|
|
1010
|
-
<
|
|
1021
|
+
<Input
|
|
1011
1022
|
type="number"
|
|
1023
|
+
size="sm"
|
|
1012
1024
|
step="0.1"
|
|
1013
1025
|
value={activity.retryPolicy?.backoffCoefficient || 2}
|
|
1014
1026
|
onChange={(e) => {
|
|
@@ -1017,13 +1029,13 @@ export function NodeEditDialog({ node, isOpen, onClose, onSave, onDelete }: Node
|
|
|
1017
1029
|
updated[index].retryPolicy.backoffCoefficient = parseFloat(e.target.value) || 2
|
|
1018
1030
|
setStepActivities(updated)
|
|
1019
1031
|
}}
|
|
1020
|
-
className="w-full px-2 py-1 border border-gray-300 rounded text-xs"
|
|
1021
1032
|
/>
|
|
1022
1033
|
</div>
|
|
1023
1034
|
<div>
|
|
1024
1035
|
<label className="block text-xs text-gray-600 mb-1">{t('workflows.form.maxInterval')}</label>
|
|
1025
|
-
<
|
|
1036
|
+
<Input
|
|
1026
1037
|
type="number"
|
|
1038
|
+
size="sm"
|
|
1027
1039
|
value={activity.retryPolicy?.maxIntervalMs || 60000}
|
|
1028
1040
|
onChange={(e) => {
|
|
1029
1041
|
const updated = [...stepActivities]
|
|
@@ -1031,7 +1043,6 @@ export function NodeEditDialog({ node, isOpen, onClose, onSave, onDelete }: Node
|
|
|
1031
1043
|
updated[index].retryPolicy.maxIntervalMs = parseInt(e.target.value) || 60000
|
|
1032
1044
|
setStepActivities(updated)
|
|
1033
1045
|
}}
|
|
1034
|
-
className="w-full px-2 py-1 border border-gray-300 rounded text-xs"
|
|
1035
1046
|
/>
|
|
1036
1047
|
</div>
|
|
1037
1048
|
</div>
|
|
@@ -1113,12 +1124,12 @@ export function NodeEditDialog({ node, isOpen, onClose, onSave, onDelete }: Node
|
|
|
1113
1124
|
{t('workflows.form.workflowToInvoke')} *
|
|
1114
1125
|
</label>
|
|
1115
1126
|
<div className="flex gap-2">
|
|
1116
|
-
<
|
|
1127
|
+
<Input
|
|
1117
1128
|
type="text"
|
|
1118
1129
|
value={subWorkflowId}
|
|
1119
1130
|
onChange={(e) => setSubWorkflowId(e.target.value)}
|
|
1120
1131
|
placeholder={t('workflows.form.placeholders.subWorkflowId')}
|
|
1121
|
-
className="flex-1
|
|
1132
|
+
className="flex-1"
|
|
1122
1133
|
readOnly
|
|
1123
1134
|
/>
|
|
1124
1135
|
<Button
|
|
@@ -1138,12 +1149,11 @@ export function NodeEditDialog({ node, isOpen, onClose, onSave, onDelete }: Node
|
|
|
1138
1149
|
<label className="block text-sm font-medium text-gray-700 mb-1">
|
|
1139
1150
|
{t('workflows.form.version')}
|
|
1140
1151
|
</label>
|
|
1141
|
-
<
|
|
1152
|
+
<Input
|
|
1142
1153
|
type="number"
|
|
1143
1154
|
value={subWorkflowVersion}
|
|
1144
1155
|
onChange={(e) => setSubWorkflowVersion(e.target.value)}
|
|
1145
1156
|
placeholder={t('workflows.form.placeholders.version')}
|
|
1146
|
-
className="w-full px-3 py-2 border border-gray-300 rounded-lg text-sm focus-visible:ring-2 focus-visible:ring-ring focus-visible:border-ring"
|
|
1147
1157
|
/>
|
|
1148
1158
|
<p className="text-xs text-gray-500 mt-1">
|
|
1149
1159
|
{t('workflows.form.descriptions.subWorkflowVersion')}
|
|
@@ -1180,7 +1190,7 @@ export function NodeEditDialog({ node, isOpen, onClose, onSave, onDelete }: Node
|
|
|
1180
1190
|
{inputMappings.map((mapping, index) => (
|
|
1181
1191
|
<div key={index} className="flex gap-2 items-start">
|
|
1182
1192
|
<div className="flex-1">
|
|
1183
|
-
<
|
|
1193
|
+
<Input
|
|
1184
1194
|
type="text"
|
|
1185
1195
|
value={mapping.key}
|
|
1186
1196
|
onChange={(e) => {
|
|
@@ -1189,13 +1199,12 @@ export function NodeEditDialog({ node, isOpen, onClose, onSave, onDelete }: Node
|
|
|
1189
1199
|
setInputMappings(newMappings)
|
|
1190
1200
|
}}
|
|
1191
1201
|
placeholder={t('workflows.form.placeholders.childKey')}
|
|
1192
|
-
className="w-full px-2 py-1.5 border border-gray-300 rounded text-sm focus-visible:ring-2 focus-visible:ring-ring"
|
|
1193
1202
|
/>
|
|
1194
1203
|
<p className="text-xs text-gray-500 mt-0.5">{t('workflows.form.descriptions.childKey')}</p>
|
|
1195
1204
|
</div>
|
|
1196
1205
|
<span className="text-gray-400 mt-2">→</span>
|
|
1197
1206
|
<div className="flex-1">
|
|
1198
|
-
<
|
|
1207
|
+
<Input
|
|
1199
1208
|
type="text"
|
|
1200
1209
|
value={mapping.value}
|
|
1201
1210
|
onChange={(e) => {
|
|
@@ -1204,7 +1213,6 @@ export function NodeEditDialog({ node, isOpen, onClose, onSave, onDelete }: Node
|
|
|
1204
1213
|
setInputMappings(newMappings)
|
|
1205
1214
|
}}
|
|
1206
1215
|
placeholder={t('workflows.form.placeholders.parentPath')}
|
|
1207
|
-
className="w-full px-2 py-1.5 border border-gray-300 rounded text-sm focus-visible:ring-2 focus-visible:ring-ring"
|
|
1208
1216
|
/>
|
|
1209
1217
|
<p className="text-xs text-gray-500 mt-0.5">{t('workflows.form.descriptions.parentPath')}</p>
|
|
1210
1218
|
</div>
|
|
@@ -1255,7 +1263,7 @@ export function NodeEditDialog({ node, isOpen, onClose, onSave, onDelete }: Node
|
|
|
1255
1263
|
{outputMappings.map((mapping, index) => (
|
|
1256
1264
|
<div key={index} className="flex gap-2 items-start">
|
|
1257
1265
|
<div className="flex-1">
|
|
1258
|
-
<
|
|
1266
|
+
<Input
|
|
1259
1267
|
type="text"
|
|
1260
1268
|
value={mapping.key}
|
|
1261
1269
|
onChange={(e) => {
|
|
@@ -1264,13 +1272,12 @@ export function NodeEditDialog({ node, isOpen, onClose, onSave, onDelete }: Node
|
|
|
1264
1272
|
setOutputMappings(newMappings)
|
|
1265
1273
|
}}
|
|
1266
1274
|
placeholder={t('workflows.form.placeholders.parentKey')}
|
|
1267
|
-
className="w-full px-2 py-1.5 border border-gray-300 rounded text-sm focus-visible:ring-2 focus-visible:ring-ring"
|
|
1268
1275
|
/>
|
|
1269
1276
|
<p className="text-xs text-gray-500 mt-0.5">{t('workflows.form.descriptions.parentKey')}</p>
|
|
1270
1277
|
</div>
|
|
1271
1278
|
<span className="text-gray-400 mt-2">←</span>
|
|
1272
1279
|
<div className="flex-1">
|
|
1273
|
-
<
|
|
1280
|
+
<Input
|
|
1274
1281
|
type="text"
|
|
1275
1282
|
value={mapping.value}
|
|
1276
1283
|
onChange={(e) => {
|
|
@@ -1279,7 +1286,6 @@ export function NodeEditDialog({ node, isOpen, onClose, onSave, onDelete }: Node
|
|
|
1279
1286
|
setOutputMappings(newMappings)
|
|
1280
1287
|
}}
|
|
1281
1288
|
placeholder={t('workflows.form.placeholders.childPath')}
|
|
1282
|
-
className="w-full px-2 py-1.5 border border-gray-300 rounded text-sm focus-visible:ring-2 focus-visible:ring-ring"
|
|
1283
1289
|
/>
|
|
1284
1290
|
<p className="text-xs text-gray-500 mt-0.5">{t('workflows.form.descriptions.childPath')}</p>
|
|
1285
1291
|
</div>
|
|
@@ -1315,12 +1321,11 @@ export function NodeEditDialog({ node, isOpen, onClose, onSave, onDelete }: Node
|
|
|
1315
1321
|
<label className="block text-sm font-medium text-gray-700 mb-1">
|
|
1316
1322
|
{t('workflows.form.signalName')} *
|
|
1317
1323
|
</label>
|
|
1318
|
-
<
|
|
1324
|
+
<Input
|
|
1319
1325
|
type="text"
|
|
1320
1326
|
value={signalName}
|
|
1321
1327
|
onChange={(e) => setSignalName(e.target.value)}
|
|
1322
1328
|
placeholder={t('workflows.form.placeholders.signalName')}
|
|
1323
|
-
className="w-full px-3 py-2 border border-gray-300 rounded-lg text-sm focus-visible:ring-2 focus-visible:ring-ring focus-visible:border-ring"
|
|
1324
1329
|
/>
|
|
1325
1330
|
<p className="text-xs text-gray-500 mt-1">
|
|
1326
1331
|
{t('workflows.form.descriptions.signalName')}
|
|
@@ -1331,12 +1336,11 @@ export function NodeEditDialog({ node, isOpen, onClose, onSave, onDelete }: Node
|
|
|
1331
1336
|
<label className="block text-sm font-medium text-gray-700 mb-1">
|
|
1332
1337
|
{t('workflows.form.timeout')}
|
|
1333
1338
|
</label>
|
|
1334
|
-
<
|
|
1339
|
+
<Input
|
|
1335
1340
|
type="text"
|
|
1336
1341
|
value={signalTimeout}
|
|
1337
1342
|
onChange={(e) => setSignalTimeout(e.target.value)}
|
|
1338
1343
|
placeholder={t('workflows.form.placeholders.signalTimeout')}
|
|
1339
|
-
className="w-full px-3 py-2 border border-gray-300 rounded-lg text-sm focus-visible:ring-2 focus-visible:ring-ring focus-visible:border-ring"
|
|
1340
1344
|
/>
|
|
1341
1345
|
<p className="text-xs text-gray-500 mt-1">
|
|
1342
1346
|
{t('workflows.form.descriptions.signalTimeout')}
|
|
@@ -4,6 +4,13 @@ import * as React from 'react'
|
|
|
4
4
|
import { Button } from '@open-mercato/ui/primitives/button'
|
|
5
5
|
import { Input } from '@open-mercato/ui/primitives/input'
|
|
6
6
|
import { Label } from '@open-mercato/ui/primitives/label'
|
|
7
|
+
import {
|
|
8
|
+
Select,
|
|
9
|
+
SelectContent,
|
|
10
|
+
SelectItem,
|
|
11
|
+
SelectTrigger,
|
|
12
|
+
SelectValue,
|
|
13
|
+
} from '@open-mercato/ui/primitives/select'
|
|
7
14
|
import { Textarea } from '@open-mercato/ui/primitives/textarea'
|
|
8
15
|
import { Trash2, Plus, ChevronUp, ChevronDown } from 'lucide-react'
|
|
9
16
|
import { useT } from '@open-mercato/shared/lib/i18n/context'
|
|
@@ -165,18 +172,21 @@ export function StepsEditor({ value = [], onChange, error }: StepsEditorProps) {
|
|
|
165
172
|
<Label htmlFor={`step-${index}-type`} className="text-xs">
|
|
166
173
|
{t('workflows.steps.stepType')} *
|
|
167
174
|
</Label>
|
|
168
|
-
<
|
|
169
|
-
id={`step-${index}-type`}
|
|
175
|
+
<Select
|
|
170
176
|
value={step.stepType}
|
|
171
|
-
|
|
172
|
-
className="mt-1 w-full px-3 py-2 border border-gray-300 rounded-md text-sm"
|
|
177
|
+
onValueChange={(value) => updateStep(index, 'stepType', value)}
|
|
173
178
|
>
|
|
174
|
-
{
|
|
175
|
-
<
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
179
|
+
<SelectTrigger id={`step-${index}-type`} className="mt-1">
|
|
180
|
+
<SelectValue />
|
|
181
|
+
</SelectTrigger>
|
|
182
|
+
<SelectContent>
|
|
183
|
+
{STEP_TYPES.map((type) => (
|
|
184
|
+
<SelectItem key={type.value} value={type.value}>
|
|
185
|
+
{t(`workflows.steps.types.${type.value}`)}
|
|
186
|
+
</SelectItem>
|
|
187
|
+
))}
|
|
188
|
+
</SelectContent>
|
|
189
|
+
</Select>
|
|
180
190
|
</div>
|
|
181
191
|
<div>
|
|
182
192
|
<Label htmlFor={`step-${index}-timeout`} className="text-xs">
|