@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.
Files changed (229) hide show
  1. package/dist/helpers/integration/salesUi.js +25 -23
  2. package/dist/helpers/integration/salesUi.js.map +2 -2
  3. package/dist/modules/api_docs/frontend/docs/api/Explorer.js +24 -24
  4. package/dist/modules/api_docs/frontend/docs/api/Explorer.js.map +2 -2
  5. package/dist/modules/attachments/components/AttachmentPartitionSettings.js +15 -7
  6. package/dist/modules/attachments/components/AttachmentPartitionSettings.js.map +2 -2
  7. package/dist/modules/attachments/fields/attachment.js +4 -6
  8. package/dist/modules/attachments/fields/attachment.js.map +2 -2
  9. package/dist/modules/auth/api/users/route.js +63 -23
  10. package/dist/modules/auth/api/users/route.js.map +2 -2
  11. package/dist/modules/auth/backend/users/create/page.js +26 -26
  12. package/dist/modules/auth/backend/users/create/page.js.map +2 -2
  13. package/dist/modules/business_rules/components/ActionRow.js +36 -25
  14. package/dist/modules/business_rules/components/ActionRow.js.map +2 -2
  15. package/dist/modules/business_rules/components/ConditionGroup.js +14 -5
  16. package/dist/modules/business_rules/components/ConditionGroup.js.map +2 -2
  17. package/dist/modules/business_rules/components/ConditionRow.js +19 -10
  18. package/dist/modules/business_rules/components/ConditionRow.js.map +2 -2
  19. package/dist/modules/business_rules/components/RuleSetMembers.js +16 -10
  20. package/dist/modules/business_rules/components/RuleSetMembers.js.map +2 -2
  21. package/dist/modules/catalog/backend/catalog/products/[id]/page.js +30 -34
  22. package/dist/modules/catalog/backend/catalog/products/[id]/page.js.map +2 -2
  23. package/dist/modules/catalog/backend/catalog/products/create/page.js +220 -223
  24. package/dist/modules/catalog/backend/catalog/products/create/page.js.map +2 -2
  25. package/dist/modules/catalog/components/PriceKindSettings.js +20 -19
  26. package/dist/modules/catalog/components/PriceKindSettings.js.map +2 -2
  27. package/dist/modules/catalog/components/products/ProductUomSection.js +42 -37
  28. package/dist/modules/catalog/components/products/ProductUomSection.js.map +2 -2
  29. package/dist/modules/catalog/components/products/VariantBuilder.js +22 -18
  30. package/dist/modules/catalog/components/products/VariantBuilder.js.map +2 -2
  31. package/dist/modules/customer_accounts/backend/customer_accounts/users/[id]/page.js +18 -26
  32. package/dist/modules/customer_accounts/backend/customer_accounts/users/[id]/page.js.map +2 -2
  33. package/dist/modules/customer_accounts/backend/customer_accounts/users/page.js +4 -6
  34. package/dist/modules/customer_accounts/backend/customer_accounts/users/page.js.map +2 -2
  35. package/dist/modules/customer_accounts/widgets/injection/account-status/widget.client.js +5 -4
  36. package/dist/modules/customer_accounts/widgets/injection/account-status/widget.client.js.map +2 -2
  37. package/dist/modules/customers/backend/config/customers/pipeline-stages/page.js +19 -7
  38. package/dist/modules/customers/backend/config/customers/pipeline-stages/page.js.map +2 -2
  39. package/dist/modules/customers/backend/customers/deals/pipeline/page.js +24 -21
  40. package/dist/modules/customers/backend/customers/deals/pipeline/page.js.map +2 -2
  41. package/dist/modules/customers/components/AddressEditor.js +24 -7
  42. package/dist/modules/customers/components/AddressEditor.js.map +2 -2
  43. package/dist/modules/customers/components/AddressFormatSettings.js +35 -25
  44. package/dist/modules/customers/components/AddressFormatSettings.js.map +2 -2
  45. package/dist/modules/customers/components/detail/ActivityForm.js +20 -12
  46. package/dist/modules/customers/components/detail/ActivityForm.js.map +2 -2
  47. package/dist/modules/customers/components/detail/AnnualRevenueField.js +2 -2
  48. package/dist/modules/customers/components/detail/AnnualRevenueField.js.map +2 -2
  49. package/dist/modules/customers/components/detail/DealForm.js +19 -14
  50. package/dist/modules/customers/components/detail/DealForm.js.map +2 -2
  51. package/dist/modules/customers/components/formConfig.js +16 -12
  52. package/dist/modules/customers/components/formConfig.js.map +2 -2
  53. package/dist/modules/customers/widgets/dashboard/customer-todos/widget.client.js +3 -2
  54. package/dist/modules/customers/widgets/dashboard/customer-todos/widget.client.js.map +2 -2
  55. package/dist/modules/customers/widgets/dashboard/new-customers/widget.client.js +18 -10
  56. package/dist/modules/customers/widgets/dashboard/new-customers/widget.client.js.map +2 -2
  57. package/dist/modules/customers/widgets/dashboard/new-deals/widget.client.js +3 -2
  58. package/dist/modules/customers/widgets/dashboard/new-deals/widget.client.js.map +2 -2
  59. package/dist/modules/customers/widgets/dashboard/next-interactions/widget.client.js +3 -2
  60. package/dist/modules/customers/widgets/dashboard/next-interactions/widget.client.js.map +2 -2
  61. package/dist/modules/dashboards/components/WidgetVisibilityEditor.js +27 -28
  62. package/dist/modules/dashboards/components/WidgetVisibilityEditor.js.map +2 -2
  63. package/dist/modules/dashboards/widgets/dashboard/orders-by-status/widget.client.js +14 -6
  64. package/dist/modules/dashboards/widgets/dashboard/orders-by-status/widget.client.js.map +2 -2
  65. package/dist/modules/dashboards/widgets/dashboard/revenue-trend/widget.client.js +14 -6
  66. package/dist/modules/dashboards/widgets/dashboard/revenue-trend/widget.client.js.map +2 -2
  67. package/dist/modules/dashboards/widgets/dashboard/sales-by-region/widget.client.js +3 -2
  68. package/dist/modules/dashboards/widgets/dashboard/sales-by-region/widget.client.js.map +2 -2
  69. package/dist/modules/dashboards/widgets/dashboard/top-customers/widget.client.js +3 -2
  70. package/dist/modules/dashboards/widgets/dashboard/top-customers/widget.client.js.map +2 -2
  71. package/dist/modules/dashboards/widgets/dashboard/top-products/widget.client.js +17 -8
  72. package/dist/modules/dashboards/widgets/dashboard/top-products/widget.client.js.map +2 -2
  73. package/dist/modules/data_sync/backend/data-sync/page.js +40 -23
  74. package/dist/modules/data_sync/backend/data-sync/page.js.map +2 -2
  75. package/dist/modules/data_sync/components/IntegrationScheduleTab.js +15 -6
  76. package/dist/modules/data_sync/components/IntegrationScheduleTab.js.map +2 -2
  77. package/dist/modules/dictionaries/components/AppearanceSelector.js +4 -4
  78. package/dist/modules/dictionaries/components/AppearanceSelector.js.map +2 -2
  79. package/dist/modules/dictionaries/components/DictionaryEntriesEditor.js +4 -5
  80. package/dist/modules/dictionaries/components/DictionaryEntriesEditor.js.map +2 -2
  81. package/dist/modules/dictionaries/components/DictionaryEntrySelect.js +22 -14
  82. package/dist/modules/dictionaries/components/DictionaryEntrySelect.js.map +2 -2
  83. package/dist/modules/dictionaries/fields/dictionary.js +18 -13
  84. package/dist/modules/dictionaries/fields/dictionary.js.map +2 -2
  85. package/dist/modules/entities/components/EncryptionManager.js +23 -19
  86. package/dist/modules/entities/components/EncryptionManager.js.map +2 -2
  87. package/dist/modules/feature_toggles/components/formConfig.js +17 -9
  88. package/dist/modules/feature_toggles/components/formConfig.js.map +2 -2
  89. package/dist/modules/feature_toggles/components/overrideFormConfig.js +17 -9
  90. package/dist/modules/feature_toggles/components/overrideFormConfig.js.map +2 -2
  91. package/dist/modules/inbox_ops/backend/inbox-ops/settings/page.js +15 -8
  92. package/dist/modules/inbox_ops/backend/inbox-ops/settings/page.js.map +2 -2
  93. package/dist/modules/inbox_ops/components/proposals/EditActionDialog.js +37 -22
  94. package/dist/modules/inbox_ops/components/proposals/EditActionDialog.js.map +2 -2
  95. package/dist/modules/integrations/backend/integrations/[id]/page.js +22 -17
  96. package/dist/modules/integrations/backend/integrations/[id]/page.js.map +2 -2
  97. package/dist/modules/integrations/backend/integrations/bundle/[id]/page.js +12 -6
  98. package/dist/modules/integrations/backend/integrations/bundle/[id]/page.js.map +2 -2
  99. package/dist/modules/planner/components/AvailabilityRulesEditor.js +19 -12
  100. package/dist/modules/planner/components/AvailabilityRulesEditor.js.map +2 -2
  101. package/dist/modules/resources/components/ResourceCrudForm.js +15 -10
  102. package/dist/modules/resources/components/ResourceCrudForm.js.map +3 -3
  103. package/dist/modules/sales/backend/sales/documents/[id]/page.js +15 -18
  104. package/dist/modules/sales/backend/sales/documents/[id]/page.js.map +2 -2
  105. package/dist/modules/sales/components/ProviderFieldInput.js +23 -20
  106. package/dist/modules/sales/components/ProviderFieldInput.js.map +2 -2
  107. package/dist/modules/sales/components/ShippingMethodsSettings.js +25 -17
  108. package/dist/modules/sales/components/ShippingMethodsSettings.js.map +3 -3
  109. package/dist/modules/sales/components/channels/ChannelOfferForm.js +35 -42
  110. package/dist/modules/sales/components/channels/ChannelOfferForm.js.map +2 -2
  111. package/dist/modules/sales/components/documents/AddressesSection.js +87 -90
  112. package/dist/modules/sales/components/documents/AddressesSection.js.map +2 -2
  113. package/dist/modules/sales/components/documents/AdjustmentDialog.js +17 -6
  114. package/dist/modules/sales/components/documents/AdjustmentDialog.js.map +3 -3
  115. package/dist/modules/sales/components/documents/LineItemDialog.js +42 -25
  116. package/dist/modules/sales/components/documents/LineItemDialog.js.map +2 -2
  117. package/dist/modules/sales/components/documents/SalesDocumentForm.js +96 -87
  118. package/dist/modules/sales/components/documents/SalesDocumentForm.js.map +2 -2
  119. package/dist/modules/sales/widgets/dashboard/new-orders/widget.client.js +20 -11
  120. package/dist/modules/sales/widgets/dashboard/new-orders/widget.client.js.map +2 -2
  121. package/dist/modules/sales/widgets/dashboard/new-quotes/widget.client.js +20 -11
  122. package/dist/modules/sales/widgets/dashboard/new-quotes/widget.client.js.map +2 -2
  123. package/dist/modules/shipping_carriers/lib/shipment-wizard/components/ConfigureStep.js +36 -22
  124. package/dist/modules/shipping_carriers/lib/shipment-wizard/components/ConfigureStep.js.map +2 -2
  125. package/dist/modules/staff/components/TeamMemberForm.js +14 -9
  126. package/dist/modules/staff/components/TeamMemberForm.js.map +3 -3
  127. package/dist/modules/workflows/backend/tasks/[id]/page.js +42 -21
  128. package/dist/modules/workflows/backend/tasks/[id]/page.js.map +2 -2
  129. package/dist/modules/workflows/components/ActivitiesEditor.js +14 -6
  130. package/dist/modules/workflows/components/ActivitiesEditor.js.map +3 -3
  131. package/dist/modules/workflows/components/DefinitionTriggersEditor.js +25 -17
  132. package/dist/modules/workflows/components/DefinitionTriggersEditor.js.map +3 -3
  133. package/dist/modules/workflows/components/EdgeEditDialog.js +48 -45
  134. package/dist/modules/workflows/components/EdgeEditDialog.js.map +2 -2
  135. package/dist/modules/workflows/components/NodeEditDialog.js +90 -90
  136. package/dist/modules/workflows/components/NodeEditDialog.js.map +2 -2
  137. package/dist/modules/workflows/components/StepsEditor.js +14 -6
  138. package/dist/modules/workflows/components/StepsEditor.js.map +3 -3
  139. package/dist/modules/workflows/components/TransitionsEditor.js +31 -26
  140. package/dist/modules/workflows/components/TransitionsEditor.js.map +3 -3
  141. package/dist/modules/workflows/components/fields/ActivityArrayEditor.js +19 -11
  142. package/dist/modules/workflows/components/fields/ActivityArrayEditor.js.map +3 -3
  143. package/dist/modules/workflows/components/fields/BusinessRuleConditionsEditor.js +12 -14
  144. package/dist/modules/workflows/components/fields/BusinessRuleConditionsEditor.js.map +2 -2
  145. package/dist/modules/workflows/components/fields/FormFieldArrayEditor.js +24 -16
  146. package/dist/modules/workflows/components/fields/FormFieldArrayEditor.js.map +3 -3
  147. package/dist/modules/workflows/components/fields/StartPreConditionsEditor.js +12 -13
  148. package/dist/modules/workflows/components/fields/StartPreConditionsEditor.js.map +2 -2
  149. package/dist/modules/workflows/components/mobile/MobileTaskForm.js +12 -8
  150. package/dist/modules/workflows/components/mobile/MobileTaskForm.js.map +2 -2
  151. package/dist/modules/workflows/frontend/checkout-demo/page.js +43 -46
  152. package/dist/modules/workflows/frontend/checkout-demo/page.js.map +2 -2
  153. package/package.json +3 -3
  154. package/src/helpers/integration/salesUi.ts +40 -30
  155. package/src/modules/api_docs/frontend/docs/api/Explorer.tsx +25 -19
  156. package/src/modules/attachments/components/AttachmentPartitionSettings.tsx +21 -11
  157. package/src/modules/attachments/fields/attachment.tsx +4 -6
  158. package/src/modules/auth/api/users/route.ts +75 -25
  159. package/src/modules/auth/backend/users/create/page.tsx +16 -20
  160. package/src/modules/business_rules/components/ActionRow.tsx +51 -32
  161. package/src/modules/business_rules/components/ConditionGroup.tsx +20 -9
  162. package/src/modules/business_rules/components/ConditionRow.tsx +24 -15
  163. package/src/modules/business_rules/components/RuleSetMembers.tsx +23 -13
  164. package/src/modules/catalog/backend/catalog/products/[id]/page.tsx +47 -53
  165. package/src/modules/catalog/backend/catalog/products/create/page.tsx +84 -87
  166. package/src/modules/catalog/components/PriceKindSettings.tsx +9 -9
  167. package/src/modules/catalog/components/products/ProductUomSection.tsx +85 -83
  168. package/src/modules/catalog/components/products/VariantBuilder.tsx +49 -33
  169. package/src/modules/customer_accounts/backend/customer_accounts/users/[id]/page.tsx +12 -27
  170. package/src/modules/customer_accounts/backend/customer_accounts/users/page.tsx +4 -6
  171. package/src/modules/customer_accounts/widgets/injection/account-status/widget.client.tsx +5 -4
  172. package/src/modules/customers/backend/config/customers/pipeline-stages/page.tsx +28 -15
  173. package/src/modules/customers/backend/customers/deals/pipeline/page.tsx +37 -26
  174. package/src/modules/customers/components/AddressEditor.tsx +30 -16
  175. package/src/modules/customers/components/AddressFormatSettings.tsx +25 -19
  176. package/src/modules/customers/components/detail/ActivityForm.tsx +35 -23
  177. package/src/modules/customers/components/detail/AnnualRevenueField.tsx +2 -2
  178. package/src/modules/customers/components/detail/DealForm.tsx +33 -20
  179. package/src/modules/customers/components/formConfig.tsx +25 -17
  180. package/src/modules/customers/widgets/dashboard/customer-todos/widget.client.tsx +3 -2
  181. package/src/modules/customers/widgets/dashboard/new-customers/widget.client.tsx +21 -11
  182. package/src/modules/customers/widgets/dashboard/new-deals/widget.client.tsx +3 -2
  183. package/src/modules/customers/widgets/dashboard/next-interactions/widget.client.tsx +3 -2
  184. package/src/modules/dashboards/components/WidgetVisibilityEditor.tsx +17 -22
  185. package/src/modules/dashboards/widgets/dashboard/orders-by-status/widget.client.tsx +17 -7
  186. package/src/modules/dashboards/widgets/dashboard/revenue-trend/widget.client.tsx +20 -10
  187. package/src/modules/dashboards/widgets/dashboard/sales-by-region/widget.client.tsx +3 -2
  188. package/src/modules/dashboards/widgets/dashboard/top-customers/widget.client.tsx +3 -2
  189. package/src/modules/dashboards/widgets/dashboard/top-products/widget.client.tsx +20 -9
  190. package/src/modules/data_sync/backend/data-sync/page.tsx +64 -38
  191. package/src/modules/data_sync/components/IntegrationScheduleTab.tsx +18 -7
  192. package/src/modules/dictionaries/components/AppearanceSelector.tsx +4 -4
  193. package/src/modules/dictionaries/components/DictionaryEntriesEditor.tsx +3 -4
  194. package/src/modules/dictionaries/components/DictionaryEntrySelect.tsx +27 -21
  195. package/src/modules/dictionaries/fields/dictionary.tsx +36 -23
  196. package/src/modules/entities/components/EncryptionManager.tsx +49 -33
  197. package/src/modules/feature_toggles/components/formConfig.tsx +20 -10
  198. package/src/modules/feature_toggles/components/overrideFormConfig.tsx +20 -10
  199. package/src/modules/inbox_ops/backend/inbox-ops/settings/page.tsx +19 -10
  200. package/src/modules/inbox_ops/components/proposals/EditActionDialog.tsx +49 -26
  201. package/src/modules/integrations/backend/integrations/[id]/page.tsx +20 -11
  202. package/src/modules/integrations/backend/integrations/bundle/[id]/page.tsx +19 -9
  203. package/src/modules/planner/components/AvailabilityRulesEditor.tsx +34 -21
  204. package/src/modules/resources/components/ResourceCrudForm.tsx +24 -15
  205. package/src/modules/sales/backend/sales/documents/[id]/page.tsx +12 -15
  206. package/src/modules/sales/components/ProviderFieldInput.tsx +26 -17
  207. package/src/modules/sales/components/ShippingMethodsSettings.tsx +28 -20
  208. package/src/modules/sales/components/channels/ChannelOfferForm.tsx +51 -46
  209. package/src/modules/sales/components/documents/AddressesSection.tsx +78 -76
  210. package/src/modules/sales/components/documents/AdjustmentDialog.tsx +27 -15
  211. package/src/modules/sales/components/documents/LineItemDialog.tsx +69 -51
  212. package/src/modules/sales/components/documents/SalesDocumentForm.tsx +98 -87
  213. package/src/modules/sales/widgets/dashboard/new-orders/widget.client.tsx +23 -12
  214. package/src/modules/sales/widgets/dashboard/new-quotes/widget.client.tsx +23 -12
  215. package/src/modules/shipping_carriers/lib/shipment-wizard/components/ConfigureStep.tsx +35 -19
  216. package/src/modules/staff/components/TeamMemberForm.tsx +23 -14
  217. package/src/modules/workflows/backend/tasks/[id]/page.tsx +51 -23
  218. package/src/modules/workflows/components/ActivitiesEditor.tsx +20 -10
  219. package/src/modules/workflows/components/DefinitionTriggersEditor.tsx +28 -18
  220. package/src/modules/workflows/components/EdgeEditDialog.tsx +51 -40
  221. package/src/modules/workflows/components/NodeEditDialog.tsx +81 -77
  222. package/src/modules/workflows/components/StepsEditor.tsx +20 -10
  223. package/src/modules/workflows/components/TransitionsEditor.tsx +61 -44
  224. package/src/modules/workflows/components/fields/ActivityArrayEditor.tsx +22 -12
  225. package/src/modules/workflows/components/fields/BusinessRuleConditionsEditor.tsx +9 -13
  226. package/src/modules/workflows/components/fields/FormFieldArrayEditor.tsx +27 -17
  227. package/src/modules/workflows/components/fields/StartPreConditionsEditor.tsx +9 -12
  228. package/src/modules/workflows/components/mobile/MobileTaskForm.tsx +19 -11
  229. package/src/modules/workflows/frontend/checkout-demo/page.tsx +71 -60
@@ -13,6 +13,13 @@ import { Button } from '@open-mercato/ui/primitives/button'
13
13
  import { Input } from '@open-mercato/ui/primitives/input'
14
14
  import { Label } from '@open-mercato/ui/primitives/label'
15
15
  import { Alert, AlertDescription } from '@open-mercato/ui/primitives/alert'
16
+ import {
17
+ Select,
18
+ SelectContent,
19
+ SelectItem,
20
+ SelectTrigger,
21
+ SelectValue,
22
+ } from '@open-mercato/ui/primitives/select'
16
23
  import { Separator } from '@open-mercato/ui/primitives/separator'
17
24
  import { Switch } from '@open-mercato/ui/primitives/switch'
18
25
  import { RowActions } from '@open-mercato/ui/backend/RowActions'
@@ -676,56 +683,71 @@ export default function SyncRunsDashboardPage() {
676
683
  <PlugZap className="size-4 text-muted-foreground" />
677
684
  <span>{t('data_sync.dashboard.columns.integration')}</span>
678
685
  </Label>
679
- <select
680
- className="flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm"
681
- value={selectedIntegrationId}
682
- onChange={(event) => setSelectedIntegrationId(event.target.value)}
686
+ <Select
687
+ value={selectedIntegrationId || undefined}
688
+ onValueChange={(value) => setSelectedIntegrationId(value ?? '')}
683
689
  disabled={isLoadingOptions || options.length === 0}
684
690
  >
685
- {options.length === 0 ? (
686
- <option value="">{t('integrations.marketplace.noResults', 'No integrations found')}</option>
687
- ) : null}
688
- {options.map((item) => (
689
- <option key={item.integrationId} value={item.integrationId}>
690
- {item.title}
691
- </option>
692
- ))}
693
- </select>
691
+ <SelectTrigger size="lg">
692
+ <SelectValue
693
+ placeholder={
694
+ options.length === 0
695
+ ? t('integrations.marketplace.noResults', 'No integrations found')
696
+ : undefined
697
+ }
698
+ />
699
+ </SelectTrigger>
700
+ <SelectContent>
701
+ {options.map((item) => (
702
+ <SelectItem key={item.integrationId} value={item.integrationId}>
703
+ {item.title}
704
+ </SelectItem>
705
+ ))}
706
+ </SelectContent>
707
+ </Select>
694
708
  </div>
695
709
  <div className="space-y-2">
696
710
  <Label className="flex items-center gap-2 text-sm font-medium">
697
711
  <Boxes className="size-4 text-muted-foreground" />
698
712
  <span>{t('data_sync.dashboard.columns.entityType')}</span>
699
713
  </Label>
700
- <select
701
- className="flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm"
702
- value={selectedEntityType}
703
- onChange={(event) => setSelectedEntityType(event.target.value)}
714
+ <Select
715
+ value={selectedEntityType || undefined}
716
+ onValueChange={(value) => setSelectedEntityType(value ?? '')}
704
717
  disabled={entityOptions.length === 0}
705
718
  >
706
- {entityOptions.map((entityType) => (
707
- <option key={entityType} value={entityType}>
708
- {formatEntityTypeLabel(entityType)}
709
- </option>
710
- ))}
711
- </select>
719
+ <SelectTrigger size="lg">
720
+ <SelectValue />
721
+ </SelectTrigger>
722
+ <SelectContent>
723
+ {entityOptions.map((entityType) => (
724
+ <SelectItem key={entityType} value={entityType}>
725
+ {formatEntityTypeLabel(entityType)}
726
+ </SelectItem>
727
+ ))}
728
+ </SelectContent>
729
+ </Select>
712
730
  </div>
713
731
  <div className="space-y-2">
714
732
  <Label className="flex items-center gap-2 text-sm font-medium">
715
733
  <ArrowRightLeft className="size-4 text-muted-foreground" />
716
734
  <span>{t('data_sync.dashboard.columns.direction')}</span>
717
735
  </Label>
718
- <select
719
- className="flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm"
736
+ <Select
720
737
  value={selectedDirection}
721
- onChange={(event) => setSelectedDirection(event.target.value === 'export' ? 'export' : 'import')}
738
+ onValueChange={(value) => setSelectedDirection(value === 'export' ? 'export' : 'import')}
722
739
  disabled={selectedIntegration?.direction !== 'bidirectional'}
723
740
  >
724
- <option value="import">{t('data_sync.dashboard.direction.import')}</option>
725
- {(selectedIntegration?.direction === 'bidirectional' || selectedIntegration?.direction === 'export') ? (
726
- <option value="export">{t('data_sync.dashboard.direction.export')}</option>
727
- ) : null}
728
- </select>
741
+ <SelectTrigger size="lg">
742
+ <SelectValue />
743
+ </SelectTrigger>
744
+ <SelectContent>
745
+ <SelectItem value="import">{t('data_sync.dashboard.direction.import')}</SelectItem>
746
+ {(selectedIntegration?.direction === 'bidirectional' || selectedIntegration?.direction === 'export') ? (
747
+ <SelectItem value="export">{t('data_sync.dashboard.direction.export')}</SelectItem>
748
+ ) : null}
749
+ </SelectContent>
750
+ </Select>
729
751
  </div>
730
752
  </div>
731
753
 
@@ -818,17 +840,21 @@ export default function SyncRunsDashboardPage() {
818
840
  <Clock3 className="size-4 text-muted-foreground" />
819
841
  <span>{t('data_sync.dashboard.schedule.type', 'Schedule type')}</span>
820
842
  </Label>
821
- <select
822
- className="flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm"
843
+ <Select
823
844
  value={scheduleEditor.scheduleType}
824
- onChange={(event) => updateScheduleEditor({
825
- scheduleType: event.target.value === 'cron' ? 'cron' : 'interval',
845
+ onValueChange={(value) => updateScheduleEditor({
846
+ scheduleType: value === 'cron' ? 'cron' : 'interval',
826
847
  })}
827
848
  disabled={isLoadingSchedule || isSavingSchedule || isDeletingSchedule || !selectedIntegration || !selectedEntityType}
828
849
  >
829
- <option value="interval">{t('data_sync.dashboard.schedule.interval', 'Interval')}</option>
830
- <option value="cron">{t('data_sync.dashboard.schedule.cron', 'Cron')}</option>
831
- </select>
850
+ <SelectTrigger size="lg">
851
+ <SelectValue />
852
+ </SelectTrigger>
853
+ <SelectContent>
854
+ <SelectItem value="interval">{t('data_sync.dashboard.schedule.interval', 'Interval')}</SelectItem>
855
+ <SelectItem value="cron">{t('data_sync.dashboard.schedule.cron', 'Cron')}</SelectItem>
856
+ </SelectContent>
857
+ </Select>
832
858
  </div>
833
859
  <div className="space-y-2">
834
860
  <Label className="flex items-center gap-2 text-sm font-medium">
@@ -8,6 +8,13 @@ import { Button } from '@open-mercato/ui/primitives/button'
8
8
  import { Input } from '@open-mercato/ui/primitives/input'
9
9
  import { Label } from '@open-mercato/ui/primitives/label'
10
10
  import { Alert, AlertDescription } from '@open-mercato/ui/primitives/alert'
11
+ import {
12
+ Select,
13
+ SelectContent,
14
+ SelectItem,
15
+ SelectTrigger,
16
+ SelectValue,
17
+ } from '@open-mercato/ui/primitives/select'
11
18
  import { Spinner } from '@open-mercato/ui/primitives/spinner'
12
19
  import { useOrganizationScopeVersion } from '@open-mercato/shared/lib/frontend/useOrganizationScope'
13
20
  import { useT } from '@open-mercato/shared/lib/i18n/context'
@@ -396,17 +403,21 @@ export function IntegrationScheduleTab(props: IntegrationScheduleTabProps) {
396
403
  <td className="px-3 py-3 font-medium">{formatEntityTypeLabel(row.entityType)}</td>
397
404
  <td className="px-3 py-3">{t(`data_sync.dashboard.direction.${row.direction}`, row.direction === 'import' ? 'Import' : 'Export')}</td>
398
405
  <td className="px-3 py-3">
399
- <select
400
- className="flex h-10 w-full min-w-32 rounded-md border border-input bg-background px-3 py-2 text-sm"
406
+ <Select
401
407
  value={scheduleState.scheduleType}
402
- onChange={(event) => updateScheduleEditor(row.key, {
403
- scheduleType: event.target.value === 'cron' ? 'cron' : 'interval',
408
+ onValueChange={(value) => updateScheduleEditor(row.key, {
409
+ scheduleType: value === 'cron' ? 'cron' : 'interval',
404
410
  }, row.entityType)}
405
411
  disabled={controlsDisabled}
406
412
  >
407
- <option value="interval">{t('data_sync.dashboard.schedule.interval', 'Interval')}</option>
408
- <option value="cron">{t('data_sync.dashboard.schedule.cron', 'Cron')}</option>
409
- </select>
413
+ <SelectTrigger size="lg" className="min-w-32">
414
+ <SelectValue />
415
+ </SelectTrigger>
416
+ <SelectContent>
417
+ <SelectItem value="interval">{t('data_sync.dashboard.schedule.interval', 'Interval')}</SelectItem>
418
+ <SelectItem value="cron">{t('data_sync.dashboard.schedule.cron', 'Cron')}</SelectItem>
419
+ </SelectContent>
420
+ </Select>
410
421
  </td>
411
422
  <td className="px-3 py-3">
412
423
  <Input
@@ -3,6 +3,7 @@
3
3
  import * as React from 'react'
4
4
  import { Ellipsis } from 'lucide-react'
5
5
  import { Button } from '@open-mercato/ui/primitives/button'
6
+ import { Input } from '@open-mercato/ui/primitives/input'
6
7
  import { ICON_LIBRARY, ICON_SUGGESTIONS, type IconOption, renderDictionaryColor, renderDictionaryIcon } from './dictionaryAppearance'
7
8
 
8
9
  export type AppearanceSelectorLabels = {
@@ -142,12 +143,12 @@ export function AppearanceSelector({
142
143
  <label className="text-sm font-medium">{labels.iconLabel}</label>
143
144
  <div ref={pickerContainerRef} className="relative">
144
145
  <div className="flex gap-2">
145
- <input
146
+ <Input
146
147
  type="text"
147
148
  value={normalizedIcon}
148
149
  onChange={(event) => onIconChange(event.target.value)}
149
150
  placeholder={labels.iconPlaceholder}
150
- className="flex-1 rounded border px-3 py-2 text-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"
151
+ className="flex-1"
151
152
  disabled={disabled}
152
153
  />
153
154
  <Button
@@ -166,14 +167,13 @@ export function AppearanceSelector({
166
167
  {pickerOpen ? (
167
168
  <div className="absolute left-0 right-0 top-full z-dropdown mt-2 rounded-md border border-border bg-popover p-3 shadow-lg">
168
169
  <div className="space-y-3">
169
- <input
170
+ <Input
170
171
  ref={searchInputRef}
171
172
  type="search"
172
173
  value={iconSearch}
173
174
  onChange={(event) => setIconSearch(event.target.value)}
174
175
  placeholder={labels.iconSearchPlaceholder}
175
176
  aria-label={labels.iconSearchPlaceholder}
176
- className="w-full rounded border border-border px-3 py-2 text-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"
177
177
  autoComplete="off"
178
178
  />
179
179
  <div className="max-h-64 overflow-y-auto pr-1">
@@ -3,6 +3,7 @@
3
3
  import * as React from 'react'
4
4
  import { Plus, Pencil, Trash2, RefreshCw, Languages } from 'lucide-react'
5
5
  import { Button } from '@open-mercato/ui/primitives/button'
6
+ import { Input } from '@open-mercato/ui/primitives/input'
6
7
  import {
7
8
  Dialog,
8
9
  DialogContent,
@@ -362,7 +363,7 @@ export function DictionaryEntriesEditor({ dictionaryId, dictionaryName, readOnly
362
363
  {t('dictionaries.config.entries.dialog.valueLabel', 'Value')}
363
364
  <span className="ml-1 text-destructive">*</span>
364
365
  </label>
365
- <input
366
+ <Input
366
367
  type="text"
367
368
  value={formState.value}
368
369
  onChange={(event) => {
@@ -372,7 +373,6 @@ export function DictionaryEntriesEditor({ dictionaryId, dictionaryName, readOnly
372
373
  setErrors((prev) => ({ ...prev, value: undefined }))
373
374
  }
374
375
  }}
375
- className={`w-full rounded border px-3 py-2 text-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring ${errors.value ? 'border-destructive focus-visible:ring-destructive' : ''}`}
376
376
  aria-invalid={errors.value ? 'true' : 'false'}
377
377
  aria-describedby="dictionary-entry-value-error"
378
378
  />
@@ -386,12 +386,11 @@ export function DictionaryEntriesEditor({ dictionaryId, dictionaryName, readOnly
386
386
  <label className="text-sm font-medium">
387
387
  {t('dictionaries.config.entries.dialog.labelLabel', 'Label')}
388
388
  </label>
389
- <input
389
+ <Input
390
390
  type="text"
391
391
  value={formState.label}
392
392
  onChange={(event) => setFormState((prev) => ({ ...prev, label: event.target.value }))}
393
393
  placeholder={t('dictionaries.config.entries.dialog.labelPlaceholder', 'Display name shown in UI')}
394
- className="w-full rounded border px-3 py-2 text-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"
395
394
  />
396
395
  </div>
397
396
  <AppearanceSelector
@@ -5,6 +5,7 @@ import Link from 'next/link'
5
5
  import { usePathname, useSearchParams } from 'next/navigation'
6
6
  import { Plus, Settings, Save } from 'lucide-react'
7
7
  import { Button } from '@open-mercato/ui/primitives/button'
8
+ import { Input } from '@open-mercato/ui/primitives/input'
8
9
  import {
9
10
  Dialog,
10
11
  DialogContent,
@@ -14,6 +15,13 @@ import {
14
15
  DialogTitle,
15
16
  DialogTrigger,
16
17
  } from '@open-mercato/ui/primitives/dialog'
18
+ import {
19
+ Select,
20
+ SelectContent,
21
+ SelectItem,
22
+ SelectTrigger,
23
+ SelectValue,
24
+ } from '@open-mercato/ui/primitives/select'
17
25
  import { Spinner } from '@open-mercato/ui/primitives/spinner'
18
26
  import { flash } from '@open-mercato/ui/backend/FlashMessages'
19
27
  import { buildHrefWithReturnTo } from '@open-mercato/shared/lib/navigation/returnTo'
@@ -233,25 +241,25 @@ export function DictionaryEntrySelect({
233
241
  return (
234
242
  <div className="space-y-2">
235
243
  <div className="flex items-center gap-2">
236
- <select
237
- className={[
238
- 'h-9 w-full rounded border pl-3 pr-8 text-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50',
239
- selectClassName,
240
- ]
241
- .filter(Boolean)
242
- .join(' ')}
243
- value={value ?? ''}
244
- onChange={(event) => onChange(event.target.value ? event.target.value : undefined)}
244
+ <Select
245
+ value={value || undefined}
246
+ onValueChange={(next) => onChange(next || undefined)}
245
247
  disabled={disabled}
246
- title={activeOption?.label ?? undefined}
247
248
  >
248
- <option value="">{labels.placeholder}</option>
249
- {options.map((option) => (
250
- <option key={option.value} value={option.value} title={option.label}>
251
- {option.label}
252
- </option>
253
- ))}
254
- </select>
249
+ <SelectTrigger
250
+ className={selectClassName}
251
+ title={activeOption?.label ?? undefined}
252
+ >
253
+ <SelectValue placeholder={labels.placeholder} />
254
+ </SelectTrigger>
255
+ <SelectContent>
256
+ {options.map((option) => (
257
+ <SelectItem key={option.value} value={option.value}>
258
+ {option.label}
259
+ </SelectItem>
260
+ ))}
261
+ </SelectContent>
262
+ </Select>
255
263
  <div className="flex items-center gap-1">
256
264
  {allowInlineCreate && createOption ? (
257
265
  <Dialog open={dialogOpen} onOpenChange={setDialogOpen}>
@@ -275,9 +283,8 @@ export function DictionaryEntrySelect({
275
283
  <div className="space-y-4">
276
284
  <div className="space-y-2">
277
285
  <label className="text-sm font-medium">{labels.valueLabel}</label>
278
- <input
286
+ <Input
279
287
  type="text"
280
- className="w-full rounded border px-3 py-2 text-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"
281
288
  value={newValue}
282
289
  onChange={(event) => {
283
290
  setNewValue(event.target.value)
@@ -291,9 +298,8 @@ export function DictionaryEntrySelect({
291
298
  {showLabelInput ? (
292
299
  <div className="space-y-2">
293
300
  <label className="text-sm font-medium">{labels.labelLabel}</label>
294
- <input
301
+ <Input
295
302
  type="text"
296
- className="w-full rounded border px-3 py-2 text-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"
297
303
  value={newLabel}
298
304
  onChange={(event) => setNewLabel(event.target.value)}
299
305
  placeholder={labels.labelPlaceholder}
@@ -5,6 +5,13 @@ import type { CrudCustomFieldRenderProps } from '@open-mercato/ui/backend/CrudFo
5
5
  import { FieldRegistry } from '@open-mercato/ui/backend/fields/registry'
6
6
  import { apiCall } from '@open-mercato/ui/backend/utils/apiCall'
7
7
  import { useT } from '@open-mercato/shared/lib/i18n/context'
8
+ import {
9
+ Select,
10
+ SelectContent,
11
+ SelectItem,
12
+ SelectTrigger,
13
+ SelectValue,
14
+ } from '@open-mercato/ui/primitives/select'
8
15
  import { DictionarySelectControl } from '../components/DictionarySelectControl'
9
16
  import { useDictionaryEntries } from '../components/hooks/useDictionaryEntries'
10
17
 
@@ -42,18 +49,21 @@ function DictionaryDefaultSelector({
42
49
  <label className="text-xs font-medium text-muted-foreground">
43
50
  {t('dictionaries.customFields.defaultValue', 'Default value')}
44
51
  </label>
45
- <select
46
- className="w-full rounded border px-2 py-1 text-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"
47
- value={defaultValue}
48
- onChange={(event) => onChange(event.target.value)}
52
+ <Select
53
+ value={defaultValue || undefined}
54
+ onValueChange={(next) => onChange(next ?? '')}
49
55
  >
50
- <option value="">{t('dictionaries.customFields.defaultValueNone', 'No default')}</option>
51
- {entries.map((entry) => (
52
- <option key={entry.value} value={entry.value}>
53
- {entry.label}
54
- </option>
55
- ))}
56
- </select>
56
+ <SelectTrigger size="sm">
57
+ <SelectValue placeholder={t('dictionaries.customFields.defaultValueNone', 'No default')} />
58
+ </SelectTrigger>
59
+ <SelectContent>
60
+ {entries.map((entry) => (
61
+ <SelectItem key={entry.value} value={entry.value}>
62
+ {entry.label}
63
+ </SelectItem>
64
+ ))}
65
+ </SelectContent>
66
+ </Select>
57
67
  {isLoading ? (
58
68
  <p className="text-xs text-muted-foreground">
59
69
  {t('dictionaries.customFields.loading', 'Loading dictionaries…')}
@@ -126,19 +136,22 @@ function DictionaryFieldDefEditor({ def, onChange }: { def: { configJson?: Dicti
126
136
  <label className="text-xs font-medium text-muted-foreground">
127
137
  {t('dictionaries.customFields.dictionaryLabel', 'Dictionary source')}
128
138
  </label>
129
- <select
130
- className="w-full rounded border px-2 py-1 text-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"
131
- value={selectedId}
132
- onChange={(event) => onChange({ dictionaryId: event.target.value || undefined })}
139
+ <Select
140
+ value={selectedId || undefined}
141
+ onValueChange={(next) => onChange({ dictionaryId: next || undefined })}
133
142
  >
134
- <option value="">{t('dictionaries.customFields.dictionaryPlaceholder', 'Select a dictionary')}</option>
135
- {items.map((item) => (
136
- <option key={item.id} value={item.id}>
137
- {item.name}
138
- {item.isActive ? '' : ` (${t('dictionaries.customFields.inactive', 'inactive')})`}
139
- </option>
140
- ))}
141
- </select>
143
+ <SelectTrigger size="sm">
144
+ <SelectValue placeholder={t('dictionaries.customFields.dictionaryPlaceholder', 'Select a dictionary')} />
145
+ </SelectTrigger>
146
+ <SelectContent>
147
+ {items.map((item) => (
148
+ <SelectItem key={item.id} value={item.id}>
149
+ {item.name}
150
+ {item.isActive ? '' : ` (${t('dictionaries.customFields.inactive', 'inactive')})`}
151
+ </SelectItem>
152
+ ))}
153
+ </SelectContent>
154
+ </Select>
142
155
  {loading ? (
143
156
  <p className="text-xs text-muted-foreground">
144
157
  {t('dictionaries.customFields.loading', 'Loading dictionaries…')}
@@ -3,6 +3,13 @@
3
3
  import * as React from 'react'
4
4
  import { useQuery, useMutation } from '@tanstack/react-query'
5
5
  import { Button } from '@open-mercato/ui/primitives/button'
6
+ import {
7
+ Select,
8
+ SelectContent,
9
+ SelectItem,
10
+ SelectTrigger,
11
+ SelectValue,
12
+ } from '@open-mercato/ui/primitives/select'
6
13
  import { LoadingMessage, ErrorMessage } from '@open-mercato/ui/backend/detail'
7
14
  import { flash } from '@open-mercato/ui/backend/FlashMessages'
8
15
  import { apiCall, readApiResultOrThrow } from '@open-mercato/ui/backend/utils/apiCall'
@@ -303,32 +310,38 @@ export function EncryptionManager() {
303
310
  return (
304
311
  <tr key={row.id} className="border-t">
305
312
  <td className="px-3 py-2 align-top">
306
- <select
307
- className="w-full rounded border bg-background px-3 py-2 text-sm"
308
- value={row.field}
309
- onChange={(event) => updateField(row.id, { field: event.target.value })}
313
+ <Select
314
+ value={row.field || undefined}
315
+ onValueChange={(value) => updateField(row.id, { field: value ?? '' })}
310
316
  >
311
- <option value="">{t('entities.encryption.fields.selectField', 'Select field')}</option>
312
- {fieldOpts.map((option) => (
313
- <option key={option.value} value={option.value}>
314
- {option.label}
315
- </option>
316
- ))}
317
- </select>
317
+ <SelectTrigger>
318
+ <SelectValue placeholder={t('entities.encryption.fields.selectField', 'Select field')} />
319
+ </SelectTrigger>
320
+ <SelectContent>
321
+ {fieldOpts.map((option) => (
322
+ <SelectItem key={option.value} value={option.value}>
323
+ {option.label}
324
+ </SelectItem>
325
+ ))}
326
+ </SelectContent>
327
+ </Select>
318
328
  </td>
319
329
  <td className="px-3 py-2 align-top">
320
- <select
321
- className="w-full rounded border bg-background px-3 py-2 text-sm"
322
- value={row.hashField || ''}
323
- onChange={(event) => updateField(row.id, { hashField: event.target.value ? event.target.value : null })}
330
+ <Select
331
+ value={row.hashField || undefined}
332
+ onValueChange={(value) => updateField(row.id, { hashField: value || null })}
324
333
  >
325
- <option value="">{t('entities.encryption.fields.selectHash', 'Select hash field (optional)')}</option>
326
- {hashOpts.map((option) => (
327
- <option key={option.value} value={option.value}>
328
- {option.label}
329
- </option>
330
- ))}
331
- </select>
334
+ <SelectTrigger>
335
+ <SelectValue placeholder={t('entities.encryption.fields.selectHash', 'Select hash field (optional)')} />
336
+ </SelectTrigger>
337
+ <SelectContent>
338
+ {hashOpts.map((option) => (
339
+ <SelectItem key={option.value} value={option.value}>
340
+ {option.label}
341
+ </SelectItem>
342
+ ))}
343
+ </SelectContent>
344
+ </Select>
332
345
  <p className="mt-1 text-overline text-muted-foreground">
333
346
  {t('entities.encryption.fields.hashHint', 'Use when lookups must stay deterministic (e.g., login by email).')}
334
347
  </p>
@@ -368,19 +381,22 @@ export function EncryptionManager() {
368
381
  <label className="text-xs text-muted-foreground">
369
382
  {t('entities.encryption.selectEntity', 'Choose entity')}
370
383
  </label>
371
- <select
372
- className="mt-1 w-full rounded border px-3 py-2 text-sm"
373
- value={selectedEntityId}
374
- onChange={(event) => setSelectedEntityId(event.target.value)}
384
+ <Select
385
+ value={selectedEntityId || undefined}
386
+ onValueChange={(value) => setSelectedEntityId(value ?? '')}
375
387
  disabled={loadingEntities || !!entitiesError}
376
388
  >
377
- {!selectedEntityId ? <option value="">{t('entities.encryption.placeholder', 'Select an entity')}</option> : null}
378
- {(entities?.items || []).map((item) => (
379
- <option key={item.entityId} value={item.entityId}>
380
- {item.label || item.entityId} {item.source === 'custom' ? `(${t('entities.encryption.source.custom', 'custom')})` : ''}
381
- </option>
382
- ))}
383
- </select>
389
+ <SelectTrigger className="mt-1">
390
+ <SelectValue placeholder={t('entities.encryption.placeholder', 'Select an entity')} />
391
+ </SelectTrigger>
392
+ <SelectContent>
393
+ {(entities?.items || []).map((item) => (
394
+ <SelectItem key={item.entityId} value={item.entityId}>
395
+ {item.label || item.entityId} {item.source === 'custom' ? `(${t('entities.encryption.source.custom', 'custom')})` : ''}
396
+ </SelectItem>
397
+ ))}
398
+ </SelectContent>
399
+ </Select>
384
400
  {entitiesError ? (
385
401
  <p className="mt-1 text-xs text-red-600">
386
402
  {t('entities.encryption.errors.loadEntities', 'Failed to load entities')}
@@ -1,6 +1,14 @@
1
1
  "use client"
2
2
  import { CrudFormGroup, CrudCustomFieldRenderProps, CrudField } from "@open-mercato/ui/backend/CrudForm";
3
3
  import { JsonBuilder } from "@open-mercato/ui/backend/JsonBuilder";
4
+ import { Input } from "@open-mercato/ui/primitives/input";
5
+ import {
6
+ Select,
7
+ SelectContent,
8
+ SelectItem,
9
+ SelectTrigger,
10
+ SelectValue,
11
+ } from "@open-mercato/ui/primitives/select";
4
12
  import { useT } from '@open-mercato/shared/lib/i18n/context'
5
13
 
6
14
 
@@ -13,15 +21,19 @@ export function renderDefaultValueCreateComponent(props: CrudCustomFieldRenderPr
13
21
  return (
14
22
  <div>
15
23
  <label className="block text-sm font-medium mb-2">{t('feature_toggles.form.fields.defaultValue.boolean.label', 'Default Value (Boolean)')}</label>
16
- <select
24
+ <Select
17
25
  value={props.value as string || 'false'}
18
- onChange={(e) => props.setValue(e.target.value === 'true')}
19
- className="w-full h-9 rounded border px-2 text-sm"
26
+ onValueChange={(value) => props.setValue(value === 'true')}
20
27
  disabled={props.disabled}
21
28
  >
22
- <option value="true">{t('feature_toggles.values.true', 'True')}</option>
23
- <option value="false">{t('feature_toggles.values.false', 'False')}</option>
24
- </select>
29
+ <SelectTrigger>
30
+ <SelectValue />
31
+ </SelectTrigger>
32
+ <SelectContent>
33
+ <SelectItem value="true">{t('feature_toggles.values.true', 'True')}</SelectItem>
34
+ <SelectItem value="false">{t('feature_toggles.values.false', 'False')}</SelectItem>
35
+ </SelectContent>
36
+ </Select>
25
37
  </div>
26
38
  );
27
39
 
@@ -29,12 +41,11 @@ export function renderDefaultValueCreateComponent(props: CrudCustomFieldRenderPr
29
41
  return (
30
42
  <div>
31
43
  <label className="block text-sm font-medium mb-2">{t('feature_toggles.form.fields.defaultValue.string.label', 'Default Value (String)')}</label>
32
- <input
44
+ <Input
33
45
  type="text"
34
46
  value={props.value as string || ''}
35
47
  onChange={(e) => props.setValue(e.target.value)}
36
48
  placeholder={t('feature_toggles.form.fields.defaultValue.string.placeholder', 'Enter default string value')}
37
- className="w-full h-9 rounded border px-2 text-sm"
38
49
  disabled={props.disabled}
39
50
  autoFocus={props.autoFocus}
40
51
  />
@@ -45,11 +56,10 @@ export function renderDefaultValueCreateComponent(props: CrudCustomFieldRenderPr
45
56
  return (
46
57
  <div>
47
58
  <label className="block text-sm font-medium mb-2">{t('feature_toggles.form.fields.defaultValue.number.label', 'Default Value (Number)')}</label>
48
- <input
59
+ <Input
49
60
  type="number"
50
61
  value={props.value as number || 0}
51
62
  onChange={(e) => props.setValue(Number(e.target.value) || 0)}
52
- className="w-full h-9 rounded border px-2 text-sm"
53
63
  disabled={props.disabled}
54
64
  autoFocus={props.autoFocus}
55
65
  />