@open-mercato/core 0.6.1-develop.3276.1.1fcd145078 → 0.6.1-develop.3287.1.450f4ffb56

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 (266) hide show
  1. package/.turbo/turbo-build.log +2 -2
  2. package/dist/generated/entities/domain_mapping/index.js +31 -0
  3. package/dist/generated/entities/domain_mapping/index.js.map +7 -0
  4. package/dist/generated/entities.ids.generated.js +2 -1
  5. package/dist/generated/entities.ids.generated.js.map +2 -2
  6. package/dist/generated/entity-fields-registry.js +16 -0
  7. package/dist/generated/entity-fields-registry.js.map +2 -2
  8. package/dist/helpers/integration/auth.js +1 -1
  9. package/dist/helpers/integration/auth.js.map +2 -2
  10. package/dist/helpers/integration/authUi.js +1 -1
  11. package/dist/helpers/integration/authUi.js.map +2 -2
  12. package/dist/helpers/integration/salesUi.js +18 -17
  13. package/dist/helpers/integration/salesUi.js.map +2 -2
  14. package/dist/modules/auth/frontend/login.js +4 -4
  15. package/dist/modules/auth/frontend/login.js.map +2 -2
  16. package/dist/modules/auth/frontend/reset/[token]/page.js +5 -5
  17. package/dist/modules/auth/frontend/reset/[token]/page.js.map +2 -2
  18. package/dist/modules/auth/frontend/reset.js +2 -2
  19. package/dist/modules/auth/frontend/reset.js.map +2 -2
  20. package/dist/modules/customer_accounts/acl.js +2 -1
  21. package/dist/modules/customer_accounts/acl.js.map +2 -2
  22. package/dist/modules/customer_accounts/api/admin/domain-mappings/[id]/health-check.js +110 -0
  23. package/dist/modules/customer_accounts/api/admin/domain-mappings/[id]/health-check.js.map +7 -0
  24. package/dist/modules/customer_accounts/api/admin/domain-mappings/[id]/verify.js +114 -0
  25. package/dist/modules/customer_accounts/api/admin/domain-mappings/[id]/verify.js.map +7 -0
  26. package/dist/modules/customer_accounts/api/admin/domain-mappings.js +271 -0
  27. package/dist/modules/customer_accounts/api/admin/domain-mappings.js.map +7 -0
  28. package/dist/modules/customer_accounts/api/domain-check.js +70 -0
  29. package/dist/modules/customer_accounts/api/domain-check.js.map +7 -0
  30. package/dist/modules/customer_accounts/api/domain-resolve/all.js +128 -0
  31. package/dist/modules/customer_accounts/api/domain-resolve/all.js.map +7 -0
  32. package/dist/modules/customer_accounts/api/domain-resolve.js +84 -0
  33. package/dist/modules/customer_accounts/api/domain-resolve.js.map +7 -0
  34. package/dist/modules/customer_accounts/api/login.js +14 -3
  35. package/dist/modules/customer_accounts/api/login.js.map +2 -2
  36. package/dist/modules/customer_accounts/api/magic-link/request.js +14 -3
  37. package/dist/modules/customer_accounts/api/magic-link/request.js.map +2 -2
  38. package/dist/modules/customer_accounts/api/password/reset-request.js +14 -3
  39. package/dist/modules/customer_accounts/api/password/reset-request.js.map +2 -2
  40. package/dist/modules/customer_accounts/api/signup.js +32 -5
  41. package/dist/modules/customer_accounts/api/signup.js.map +2 -2
  42. package/dist/modules/customer_accounts/backend/customer_accounts/settings/domain/components/Actions.js +48 -0
  43. package/dist/modules/customer_accounts/backend/customer_accounts/settings/domain/components/Actions.js.map +7 -0
  44. package/dist/modules/customer_accounts/backend/customer_accounts/settings/domain/components/Diagnostics.js +43 -0
  45. package/dist/modules/customer_accounts/backend/customer_accounts/settings/domain/components/Diagnostics.js.map +7 -0
  46. package/dist/modules/customer_accounts/backend/customer_accounts/settings/domain/components/DnsConfig.js +53 -0
  47. package/dist/modules/customer_accounts/backend/customer_accounts/settings/domain/components/DnsConfig.js.map +7 -0
  48. package/dist/modules/customer_accounts/backend/customer_accounts/settings/domain/components/DomainPanel.js +69 -0
  49. package/dist/modules/customer_accounts/backend/customer_accounts/settings/domain/components/DomainPanel.js.map +7 -0
  50. package/dist/modules/customer_accounts/backend/customer_accounts/settings/domain/components/OrgSwitcher.js +31 -0
  51. package/dist/modules/customer_accounts/backend/customer_accounts/settings/domain/components/OrgSwitcher.js.map +7 -0
  52. package/dist/modules/customer_accounts/backend/customer_accounts/settings/domain/components/RegisterDialog.js +147 -0
  53. package/dist/modules/customer_accounts/backend/customer_accounts/settings/domain/components/RegisterDialog.js.map +7 -0
  54. package/dist/modules/customer_accounts/backend/customer_accounts/settings/domain/components/StatusBadgeSection.js +39 -0
  55. package/dist/modules/customer_accounts/backend/customer_accounts/settings/domain/components/StatusBadgeSection.js.map +7 -0
  56. package/dist/modules/customer_accounts/backend/customer_accounts/settings/domain/components/Stepper.js +60 -0
  57. package/dist/modules/customer_accounts/backend/customer_accounts/settings/domain/components/Stepper.js.map +7 -0
  58. package/dist/modules/customer_accounts/backend/customer_accounts/settings/domain/components/domainStatusMap.js +11 -0
  59. package/dist/modules/customer_accounts/backend/customer_accounts/settings/domain/components/domainStatusMap.js.map +7 -0
  60. package/dist/modules/customer_accounts/backend/customer_accounts/settings/domain/components/types.js +1 -0
  61. package/dist/modules/customer_accounts/backend/customer_accounts/settings/domain/components/types.js.map +7 -0
  62. package/dist/modules/customer_accounts/backend/customer_accounts/settings/domain/page.js +361 -0
  63. package/dist/modules/customer_accounts/backend/customer_accounts/settings/domain/page.js.map +7 -0
  64. package/dist/modules/customer_accounts/backend/customer_accounts/settings/domain/page.meta.js +28 -0
  65. package/dist/modules/customer_accounts/backend/customer_accounts/settings/domain/page.meta.js.map +7 -0
  66. package/dist/modules/customer_accounts/backend/customer_accounts/users/[id]/page.js +4 -3
  67. package/dist/modules/customer_accounts/backend/customer_accounts/users/[id]/page.js.map +2 -2
  68. package/dist/modules/customer_accounts/backend/customer_accounts/users/page.js +6 -5
  69. package/dist/modules/customer_accounts/backend/customer_accounts/users/page.js.map +2 -2
  70. package/dist/modules/customer_accounts/data/enrichers.js +78 -12
  71. package/dist/modules/customer_accounts/data/enrichers.js.map +2 -2
  72. package/dist/modules/customer_accounts/data/entities.js +85 -2
  73. package/dist/modules/customer_accounts/data/entities.js.map +2 -2
  74. package/dist/modules/customer_accounts/data/guards.js +130 -0
  75. package/dist/modules/customer_accounts/data/guards.js.map +7 -0
  76. package/dist/modules/customer_accounts/data/validators.js +19 -0
  77. package/dist/modules/customer_accounts/data/validators.js.map +2 -2
  78. package/dist/modules/customer_accounts/di.js +23 -1
  79. package/dist/modules/customer_accounts/di.js.map +2 -2
  80. package/dist/modules/customer_accounts/events.js +9 -2
  81. package/dist/modules/customer_accounts/events.js.map +2 -2
  82. package/dist/modules/customer_accounts/lib/customerAuthServer.js +27 -7
  83. package/dist/modules/customer_accounts/lib/customerAuthServer.js.map +2 -2
  84. package/dist/modules/customer_accounts/lib/customerUrl.js +48 -0
  85. package/dist/modules/customer_accounts/lib/customerUrl.js.map +7 -0
  86. package/dist/modules/customer_accounts/lib/hostname.js +55 -0
  87. package/dist/modules/customer_accounts/lib/hostname.js.map +7 -0
  88. package/dist/modules/customer_accounts/lib/platformDomains.js +7 -0
  89. package/dist/modules/customer_accounts/lib/platformDomains.js.map +7 -0
  90. package/dist/modules/customer_accounts/lib/proxyRanges.js +71 -0
  91. package/dist/modules/customer_accounts/lib/proxyRanges.js.map +7 -0
  92. package/dist/modules/customer_accounts/lib/rateLimiter.js +7 -0
  93. package/dist/modules/customer_accounts/lib/rateLimiter.js.map +2 -2
  94. package/dist/modules/customer_accounts/lib/resolveTenantContext.js +63 -0
  95. package/dist/modules/customer_accounts/lib/resolveTenantContext.js.map +7 -0
  96. package/dist/modules/customer_accounts/lib/secretCompare.js +13 -0
  97. package/dist/modules/customer_accounts/lib/secretCompare.js.map +7 -0
  98. package/dist/modules/customer_accounts/migrations/Migration20260430120000_customer_accounts.js +37 -0
  99. package/dist/modules/customer_accounts/migrations/Migration20260430120000_customer_accounts.js.map +7 -0
  100. package/dist/modules/customer_accounts/notifications.client.js +76 -0
  101. package/dist/modules/customer_accounts/notifications.client.js.map +2 -2
  102. package/dist/modules/customer_accounts/notifications.js +76 -0
  103. package/dist/modules/customer_accounts/notifications.js.map +2 -2
  104. package/dist/modules/customer_accounts/services/domainMappingService.js +497 -0
  105. package/dist/modules/customer_accounts/services/domainMappingService.js.map +7 -0
  106. package/dist/modules/customer_accounts/setup.js +48 -1
  107. package/dist/modules/customer_accounts/setup.js.map +2 -2
  108. package/dist/modules/customer_accounts/subscribers/invalidateDomainCache.js +29 -0
  109. package/dist/modules/customer_accounts/subscribers/invalidateDomainCache.js.map +7 -0
  110. package/dist/modules/customer_accounts/subscribers/notifyDomainActivated.js +29 -0
  111. package/dist/modules/customer_accounts/subscribers/notifyDomainActivated.js.map +7 -0
  112. package/dist/modules/customer_accounts/subscribers/notifyDomainDnsFailed.js +30 -0
  113. package/dist/modules/customer_accounts/subscribers/notifyDomainDnsFailed.js.map +7 -0
  114. package/dist/modules/customer_accounts/subscribers/notifyDomainTlsFailed.js +31 -0
  115. package/dist/modules/customer_accounts/subscribers/notifyDomainTlsFailed.js.map +7 -0
  116. package/dist/modules/customer_accounts/subscribers/notifyDomainVerified.js +29 -0
  117. package/dist/modules/customer_accounts/subscribers/notifyDomainVerified.js.map +7 -0
  118. package/dist/modules/customer_accounts/widgets/injection/account-status/widget.client.js +2 -2
  119. package/dist/modules/customer_accounts/widgets/injection/account-status/widget.client.js.map +2 -2
  120. package/dist/modules/customer_accounts/workers/domainTlsRetryWorker.js +67 -0
  121. package/dist/modules/customer_accounts/workers/domainTlsRetryWorker.js.map +7 -0
  122. package/dist/modules/customer_accounts/workers/domainVerificationWorker.js +34 -0
  123. package/dist/modules/customer_accounts/workers/domainVerificationWorker.js.map +7 -0
  124. package/dist/modules/customers/api/companies/route.js +4 -9
  125. package/dist/modules/customers/api/companies/route.js.map +2 -2
  126. package/dist/modules/customers/api/deals/route.js +4 -9
  127. package/dist/modules/customers/api/deals/route.js.map +2 -2
  128. package/dist/modules/customers/api/people/route.js +4 -9
  129. package/dist/modules/customers/api/people/route.js.map +2 -2
  130. package/dist/modules/customers/api/utils.js +0 -12
  131. package/dist/modules/customers/api/utils.js.map +2 -2
  132. package/dist/modules/customers/backend/customers/companies/page.js +361 -284
  133. package/dist/modules/customers/backend/customers/companies/page.js.map +2 -2
  134. package/dist/modules/customers/backend/customers/deals/page.js +378 -473
  135. package/dist/modules/customers/backend/customers/deals/page.js.map +2 -2
  136. package/dist/modules/customers/backend/customers/people/page.js +368 -286
  137. package/dist/modules/customers/backend/customers/people/page.js.map +2 -2
  138. package/dist/modules/customers/components/detail/assignableStaff.js +15 -1
  139. package/dist/modules/customers/components/detail/assignableStaff.js.map +2 -2
  140. package/dist/modules/customers/components/formConfig.js +2 -2
  141. package/dist/modules/customers/components/formConfig.js.map +2 -2
  142. package/dist/modules/customers/widgets/injection/ai-assistant-trigger/widget.client.js +188 -36
  143. package/dist/modules/customers/widgets/injection/ai-assistant-trigger/widget.client.js.map +2 -2
  144. package/dist/modules/customers/widgets/injection/ai-assistant-trigger/widget.js +2 -2
  145. package/dist/modules/customers/widgets/injection/ai-assistant-trigger/widget.js.map +2 -2
  146. package/dist/modules/customers/widgets/injection-table.js +6 -0
  147. package/dist/modules/customers/widgets/injection-table.js.map +2 -2
  148. package/dist/modules/integrations/backend/integrations/[id]/page.js +2 -3
  149. package/dist/modules/integrations/backend/integrations/[id]/page.js.map +2 -2
  150. package/dist/modules/perspectives/services/perspectiveService.js +16 -2
  151. package/dist/modules/perspectives/services/perspectiveService.js.map +2 -2
  152. package/dist/modules/portal/frontend/[orgSlug]/portal/login/page.js +5 -3
  153. package/dist/modules/portal/frontend/[orgSlug]/portal/login/page.js.map +2 -2
  154. package/dist/modules/portal/frontend/[orgSlug]/portal/reset-password/page.js +3 -3
  155. package/dist/modules/portal/frontend/[orgSlug]/portal/reset-password/page.js.map +2 -2
  156. package/dist/modules/portal/frontend/[orgSlug]/portal/signup/page.js +4 -2
  157. package/dist/modules/portal/frontend/[orgSlug]/portal/signup/page.js.map +2 -2
  158. package/dist/modules/query_index/lib/engine.js +31 -8
  159. package/dist/modules/query_index/lib/engine.js.map +2 -2
  160. package/dist/modules/sales/backend/sales/documents/[id]/page.js +3 -5
  161. package/dist/modules/sales/backend/sales/documents/[id]/page.js.map +2 -2
  162. package/dist/modules/sales/components/ProviderFieldInput.js +2 -2
  163. package/dist/modules/sales/components/ProviderFieldInput.js.map +2 -2
  164. package/dist/modules/sales/components/documents/SalesDocumentForm.js +3 -4
  165. package/dist/modules/sales/components/documents/SalesDocumentForm.js.map +2 -2
  166. package/dist/modules/shipping_carriers/lib/shipment-wizard/components/ConfigureStep.js +3 -4
  167. package/dist/modules/shipping_carriers/lib/shipment-wizard/components/ConfigureStep.js.map +2 -2
  168. package/dist/modules/workflows/backend/tasks/[id]/page.js +2 -2
  169. package/dist/modules/workflows/backend/tasks/[id]/page.js.map +2 -2
  170. package/dist/modules/workflows/frontend/checkout-demo/page.js +2 -2
  171. package/dist/modules/workflows/frontend/checkout-demo/page.js.map +2 -2
  172. package/generated/entities/domain_mapping/index.ts +14 -0
  173. package/generated/entities.ids.generated.ts +2 -1
  174. package/generated/entity-fields-registry.ts +16 -0
  175. package/package.json +5 -5
  176. package/src/helpers/integration/auth.ts +1 -1
  177. package/src/helpers/integration/authUi.ts +1 -1
  178. package/src/helpers/integration/salesUi.ts +27 -23
  179. package/src/modules/auth/frontend/login.tsx +4 -3
  180. package/src/modules/auth/frontend/reset/[token]/page.tsx +4 -4
  181. package/src/modules/auth/frontend/reset.tsx +2 -2
  182. package/src/modules/customer_accounts/acl.ts +1 -0
  183. package/src/modules/customer_accounts/api/admin/domain-mappings/[id]/health-check.ts +119 -0
  184. package/src/modules/customer_accounts/api/admin/domain-mappings/[id]/verify.ts +123 -0
  185. package/src/modules/customer_accounts/api/admin/domain-mappings.ts +303 -0
  186. package/src/modules/customer_accounts/api/domain-check.ts +83 -0
  187. package/src/modules/customer_accounts/api/domain-resolve/all.ts +139 -0
  188. package/src/modules/customer_accounts/api/domain-resolve.ts +91 -0
  189. package/src/modules/customer_accounts/api/login.ts +14 -3
  190. package/src/modules/customer_accounts/api/magic-link/request.ts +14 -3
  191. package/src/modules/customer_accounts/api/password/reset-request.ts +15 -3
  192. package/src/modules/customer_accounts/api/signup.ts +36 -5
  193. package/src/modules/customer_accounts/backend/customer_accounts/settings/domain/components/Actions.tsx +70 -0
  194. package/src/modules/customer_accounts/backend/customer_accounts/settings/domain/components/Diagnostics.tsx +66 -0
  195. package/src/modules/customer_accounts/backend/customer_accounts/settings/domain/components/DnsConfig.tsx +78 -0
  196. package/src/modules/customer_accounts/backend/customer_accounts/settings/domain/components/DomainPanel.tsx +90 -0
  197. package/src/modules/customer_accounts/backend/customer_accounts/settings/domain/components/OrgSwitcher.tsx +43 -0
  198. package/src/modules/customer_accounts/backend/customer_accounts/settings/domain/components/RegisterDialog.tsx +178 -0
  199. package/src/modules/customer_accounts/backend/customer_accounts/settings/domain/components/StatusBadgeSection.tsx +56 -0
  200. package/src/modules/customer_accounts/backend/customer_accounts/settings/domain/components/Stepper.tsx +69 -0
  201. package/src/modules/customer_accounts/backend/customer_accounts/settings/domain/components/domainStatusMap.ts +10 -0
  202. package/src/modules/customer_accounts/backend/customer_accounts/settings/domain/components/types.ts +31 -0
  203. package/src/modules/customer_accounts/backend/customer_accounts/settings/domain/page.meta.ts +26 -0
  204. package/src/modules/customer_accounts/backend/customer_accounts/settings/domain/page.tsx +411 -0
  205. package/src/modules/customer_accounts/backend/customer_accounts/users/[id]/page.tsx +3 -2
  206. package/src/modules/customer_accounts/backend/customer_accounts/users/page.tsx +5 -4
  207. package/src/modules/customer_accounts/data/enrichers.ts +95 -12
  208. package/src/modules/customer_accounts/data/entities.ts +80 -1
  209. package/src/modules/customer_accounts/data/guards.ts +155 -0
  210. package/src/modules/customer_accounts/data/validators.ts +26 -0
  211. package/src/modules/customer_accounts/di.ts +35 -1
  212. package/src/modules/customer_accounts/events.ts +8 -1
  213. package/src/modules/customer_accounts/i18n/de.json +78 -0
  214. package/src/modules/customer_accounts/i18n/en.json +78 -0
  215. package/src/modules/customer_accounts/i18n/es.json +78 -0
  216. package/src/modules/customer_accounts/i18n/pl.json +78 -0
  217. package/src/modules/customer_accounts/lib/customerAuthServer.ts +44 -8
  218. package/src/modules/customer_accounts/lib/customerUrl.ts +72 -0
  219. package/src/modules/customer_accounts/lib/hostname.ts +76 -0
  220. package/src/modules/customer_accounts/lib/platformDomains.ts +14 -0
  221. package/src/modules/customer_accounts/lib/proxyRanges.ts +85 -0
  222. package/src/modules/customer_accounts/lib/rateLimiter.ts +10 -0
  223. package/src/modules/customer_accounts/lib/resolveTenantContext.ts +96 -0
  224. package/src/modules/customer_accounts/lib/secretCompare.ts +20 -0
  225. package/src/modules/customer_accounts/migrations/.snapshot-open-mercato.json +341 -0
  226. package/src/modules/customer_accounts/migrations/Migration20260430120000_customer_accounts.ts +38 -0
  227. package/src/modules/customer_accounts/notifications.client.ts +76 -0
  228. package/src/modules/customer_accounts/notifications.ts +76 -0
  229. package/src/modules/customer_accounts/services/domainMappingService.ts +632 -0
  230. package/src/modules/customer_accounts/setup.ts +81 -1
  231. package/src/modules/customer_accounts/subscribers/invalidateDomainCache.ts +35 -0
  232. package/src/modules/customer_accounts/subscribers/notifyDomainActivated.ts +32 -0
  233. package/src/modules/customer_accounts/subscribers/notifyDomainDnsFailed.ts +33 -0
  234. package/src/modules/customer_accounts/subscribers/notifyDomainTlsFailed.ts +34 -0
  235. package/src/modules/customer_accounts/subscribers/notifyDomainVerified.ts +32 -0
  236. package/src/modules/customer_accounts/widgets/injection/account-status/widget.client.tsx +2 -2
  237. package/src/modules/customer_accounts/workers/domainTlsRetryWorker.ts +84 -0
  238. package/src/modules/customer_accounts/workers/domainVerificationWorker.ts +45 -0
  239. package/src/modules/customers/api/companies/route.ts +4 -9
  240. package/src/modules/customers/api/deals/route.ts +4 -9
  241. package/src/modules/customers/api/people/route.ts +4 -9
  242. package/src/modules/customers/api/utils.ts +0 -14
  243. package/src/modules/customers/backend/customers/companies/page.tsx +321 -237
  244. package/src/modules/customers/backend/customers/deals/page.tsx +321 -455
  245. package/src/modules/customers/backend/customers/people/page.tsx +331 -240
  246. package/src/modules/customers/components/detail/assignableStaff.ts +21 -0
  247. package/src/modules/customers/components/formConfig.tsx +2 -2
  248. package/src/modules/customers/i18n/de.json +31 -0
  249. package/src/modules/customers/i18n/en.json +31 -0
  250. package/src/modules/customers/i18n/es.json +31 -0
  251. package/src/modules/customers/i18n/pl.json +31 -0
  252. package/src/modules/customers/widgets/injection/ai-assistant-trigger/widget.client.tsx +197 -40
  253. package/src/modules/customers/widgets/injection/ai-assistant-trigger/widget.ts +13 -7
  254. package/src/modules/customers/widgets/injection-table.ts +6 -0
  255. package/src/modules/integrations/backend/integrations/[id]/page.tsx +2 -2
  256. package/src/modules/perspectives/services/perspectiveService.ts +30 -2
  257. package/src/modules/portal/frontend/[orgSlug]/portal/login/page.tsx +5 -3
  258. package/src/modules/portal/frontend/[orgSlug]/portal/reset-password/page.tsx +3 -3
  259. package/src/modules/portal/frontend/[orgSlug]/portal/signup/page.tsx +4 -2
  260. package/src/modules/query_index/lib/engine.ts +46 -8
  261. package/src/modules/sales/backend/sales/documents/[id]/page.tsx +3 -5
  262. package/src/modules/sales/components/ProviderFieldInput.tsx +2 -2
  263. package/src/modules/sales/components/documents/SalesDocumentForm.tsx +2 -3
  264. package/src/modules/shipping_carriers/lib/shipment-wizard/components/ConfigureStep.tsx +3 -4
  265. package/src/modules/workflows/backend/tasks/[id]/page.tsx +2 -2
  266. package/src/modules/workflows/frontend/checkout-demo/page.tsx +2 -2
@@ -0,0 +1,69 @@
1
+ "use client";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { useRegisteredComponent } from "@open-mercato/ui/backend/injection/useRegisteredComponent";
4
+ import { Tag } from "@open-mercato/ui/primitives/tag";
5
+ import { useT } from "@open-mercato/shared/lib/i18n/context";
6
+ import { DefaultStepper } from "./Stepper.js";
7
+ import { DefaultStatusBadge } from "./StatusBadgeSection.js";
8
+ import { DefaultDnsConfig } from "./DnsConfig.js";
9
+ import { DefaultActions } from "./Actions.js";
10
+ import { DnsDiagnostics, TlsDiagnostics } from "./Diagnostics.js";
11
+ function DomainPanel(props) {
12
+ const t = useT();
13
+ const Stepper = useRegisteredComponent(
14
+ "section:customer_accounts.domain-settings:stepper",
15
+ DefaultStepper
16
+ );
17
+ const StatusBadgeSection = useRegisteredComponent(
18
+ "section:customer_accounts.domain-settings:status",
19
+ DefaultStatusBadge
20
+ );
21
+ const DnsConfig = useRegisteredComponent(
22
+ "section:customer_accounts.domain-settings:dns-config",
23
+ DefaultDnsConfig
24
+ );
25
+ const Actions = useRegisteredComponent(
26
+ "section:customer_accounts.domain-settings:actions",
27
+ DefaultActions
28
+ );
29
+ const { mapping, isReplacement, cnameTarget, aRecordTarget } = props;
30
+ const showDnsConfig = mapping.status !== "active";
31
+ return /* @__PURE__ */ jsxs("section", { className: "space-y-4 rounded-xl border bg-card p-6 shadow-sm", children: [
32
+ /* @__PURE__ */ jsx("div", { className: "flex flex-wrap items-start justify-between gap-3", children: /* @__PURE__ */ jsxs("div", { className: "space-y-1", children: [
33
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [
34
+ /* @__PURE__ */ jsx("h3", { className: "text-lg font-semibold tracking-tight", children: mapping.hostname }),
35
+ isReplacement ? /* @__PURE__ */ jsx(Tag, { variant: "info", dot: true, children: t("customer_accounts.domainMapping.replacement.label", "Replacement (waiting to activate)") }) : null
36
+ ] }),
37
+ /* @__PURE__ */ jsx(StatusBadgeSection, { mapping })
38
+ ] }) }),
39
+ /* @__PURE__ */ jsx(Stepper, { status: mapping.status }),
40
+ /* @__PURE__ */ jsx(DnsDiagnostics, { mapping }),
41
+ /* @__PURE__ */ jsx(TlsDiagnostics, { mapping }),
42
+ showDnsConfig ? /* @__PURE__ */ jsx(
43
+ DnsConfig,
44
+ {
45
+ hostname: mapping.hostname,
46
+ cnameTarget: mapping.cnameTarget ?? cnameTarget,
47
+ aRecordTarget: mapping.aRecordTarget ?? aRecordTarget
48
+ }
49
+ ) : null,
50
+ /* @__PURE__ */ jsx(
51
+ Actions,
52
+ {
53
+ mapping,
54
+ isReplacement,
55
+ busy: props.busy,
56
+ onCheckNow: props.onCheckNow,
57
+ onRetryTls: props.onRetryTls,
58
+ onChangeDomain: props.onChangeDomain,
59
+ onRemove: props.onRemove
60
+ }
61
+ )
62
+ ] });
63
+ }
64
+ var DomainPanel_default = DomainPanel;
65
+ export {
66
+ DomainPanel,
67
+ DomainPanel_default as default
68
+ };
69
+ //# sourceMappingURL=DomainPanel.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../../src/modules/customer_accounts/backend/customer_accounts/settings/domain/components/DomainPanel.tsx"],
4
+ "sourcesContent": ["\"use client\"\n\nimport * as React from 'react'\nimport { useRegisteredComponent } from '@open-mercato/ui/backend/injection/useRegisteredComponent'\nimport { Tag } from '@open-mercato/ui/primitives/tag'\nimport { useT } from '@open-mercato/shared/lib/i18n/context'\nimport { DefaultStepper, type StepperProps } from './Stepper'\nimport { DefaultStatusBadge, type StatusBadgeSectionProps } from './StatusBadgeSection'\nimport { DefaultDnsConfig, type DnsConfigProps } from './DnsConfig'\nimport { DefaultActions, type ActionsProps } from './Actions'\nimport { DnsDiagnostics, TlsDiagnostics } from './Diagnostics'\nimport type { DomainMappingRow } from './types'\n\nexport type DomainPanelProps = {\n mapping: DomainMappingRow\n isReplacement: boolean\n cnameTarget: string | null\n aRecordTarget: string | null\n busy?: boolean\n onCheckNow: () => void\n onRetryTls: () => void\n onChangeDomain: () => void\n onRemove: () => void\n}\n\nexport function DomainPanel(props: DomainPanelProps) {\n const t = useT()\n const Stepper = useRegisteredComponent<StepperProps>(\n 'section:customer_accounts.domain-settings:stepper',\n DefaultStepper,\n )\n const StatusBadgeSection = useRegisteredComponent<StatusBadgeSectionProps>(\n 'section:customer_accounts.domain-settings:status',\n DefaultStatusBadge,\n )\n const DnsConfig = useRegisteredComponent<DnsConfigProps>(\n 'section:customer_accounts.domain-settings:dns-config',\n DefaultDnsConfig,\n )\n const Actions = useRegisteredComponent<ActionsProps>(\n 'section:customer_accounts.domain-settings:actions',\n DefaultActions,\n )\n\n const { mapping, isReplacement, cnameTarget, aRecordTarget } = props\n const showDnsConfig = mapping.status !== 'active'\n\n return (\n <section className=\"space-y-4 rounded-xl border bg-card p-6 shadow-sm\">\n <div className=\"flex flex-wrap items-start justify-between gap-3\">\n <div className=\"space-y-1\">\n <div className=\"flex flex-wrap items-center gap-2\">\n <h3 className=\"text-lg font-semibold tracking-tight\">{mapping.hostname}</h3>\n {isReplacement ? (\n <Tag variant=\"info\" dot>\n {t('customer_accounts.domainMapping.replacement.label', 'Replacement (waiting to activate)')}\n </Tag>\n ) : null}\n </div>\n <StatusBadgeSection mapping={mapping} />\n </div>\n </div>\n\n <Stepper status={mapping.status} />\n\n <DnsDiagnostics mapping={mapping} />\n <TlsDiagnostics mapping={mapping} />\n\n {showDnsConfig ? (\n <DnsConfig\n hostname={mapping.hostname}\n cnameTarget={mapping.cnameTarget ?? cnameTarget}\n aRecordTarget={mapping.aRecordTarget ?? aRecordTarget}\n />\n ) : null}\n\n <Actions\n mapping={mapping}\n isReplacement={isReplacement}\n busy={props.busy}\n onCheckNow={props.onCheckNow}\n onRetryTls={props.onRetryTls}\n onChangeDomain={props.onChangeDomain}\n onRemove={props.onRemove}\n />\n </section>\n )\n}\n\nexport default DomainPanel\n"],
5
+ "mappings": ";AAmDU,SACE,KADF;AAhDV,SAAS,8BAA8B;AACvC,SAAS,WAAW;AACpB,SAAS,YAAY;AACrB,SAAS,sBAAyC;AAClD,SAAS,0BAAwD;AACjE,SAAS,wBAA6C;AACtD,SAAS,sBAAyC;AAClD,SAAS,gBAAgB,sBAAsB;AAexC,SAAS,YAAY,OAAyB;AACnD,QAAM,IAAI,KAAK;AACf,QAAM,UAAU;AAAA,IACd;AAAA,IACA;AAAA,EACF;AACA,QAAM,qBAAqB;AAAA,IACzB;AAAA,IACA;AAAA,EACF;AACA,QAAM,YAAY;AAAA,IAChB;AAAA,IACA;AAAA,EACF;AACA,QAAM,UAAU;AAAA,IACd;AAAA,IACA;AAAA,EACF;AAEA,QAAM,EAAE,SAAS,eAAe,aAAa,cAAc,IAAI;AAC/D,QAAM,gBAAgB,QAAQ,WAAW;AAEzC,SACE,qBAAC,aAAQ,WAAU,qDACjB;AAAA,wBAAC,SAAI,WAAU,oDACb,+BAAC,SAAI,WAAU,aACb;AAAA,2BAAC,SAAI,WAAU,qCACb;AAAA,4BAAC,QAAG,WAAU,wCAAwC,kBAAQ,UAAS;AAAA,QACtE,gBACC,oBAAC,OAAI,SAAQ,QAAO,KAAG,MACpB,YAAE,qDAAqD,mCAAmC,GAC7F,IACE;AAAA,SACN;AAAA,MACA,oBAAC,sBAAmB,SAAkB;AAAA,OACxC,GACF;AAAA,IAEA,oBAAC,WAAQ,QAAQ,QAAQ,QAAQ;AAAA,IAEjC,oBAAC,kBAAe,SAAkB;AAAA,IAClC,oBAAC,kBAAe,SAAkB;AAAA,IAEjC,gBACC;AAAA,MAAC;AAAA;AAAA,QACC,UAAU,QAAQ;AAAA,QAClB,aAAa,QAAQ,eAAe;AAAA,QACpC,eAAe,QAAQ,iBAAiB;AAAA;AAAA,IAC1C,IACE;AAAA,IAEJ;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA,MAAM,MAAM;AAAA,QACZ,YAAY,MAAM;AAAA,QAClB,YAAY,MAAM;AAAA,QAClB,gBAAgB,MAAM;AAAA,QACtB,UAAU,MAAM;AAAA;AAAA,IAClB;AAAA,KACF;AAEJ;AAEA,IAAO,sBAAQ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,31 @@
1
+ "use client";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { useT } from "@open-mercato/shared/lib/i18n/context";
4
+ function OrgSwitcher({ options, selectedId, onChange }) {
5
+ const t = useT();
6
+ if (options.length <= 1) return null;
7
+ return /* @__PURE__ */ jsxs("label", { className: "flex items-center gap-2 text-sm text-muted-foreground", children: [
8
+ /* @__PURE__ */ jsx("span", { children: t("customer_accounts.domainMapping.orgSwitcher.label", "Organization") }),
9
+ /* @__PURE__ */ jsx(
10
+ "select",
11
+ {
12
+ className: "h-9 rounded-md border border-input bg-background px-3 text-sm text-foreground shadow-xs focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40",
13
+ value: selectedId ?? "",
14
+ onChange: (event) => onChange(event.target.value),
15
+ children: options.map((opt) => {
16
+ const indent = opt.depth > 0 ? "\xA0\xA0".repeat(opt.depth) : "";
17
+ return /* @__PURE__ */ jsxs("option", { value: opt.id, children: [
18
+ indent,
19
+ opt.label
20
+ ] }, opt.id);
21
+ })
22
+ }
23
+ )
24
+ ] });
25
+ }
26
+ var OrgSwitcher_default = OrgSwitcher;
27
+ export {
28
+ OrgSwitcher,
29
+ OrgSwitcher_default as default
30
+ };
31
+ //# sourceMappingURL=OrgSwitcher.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../../src/modules/customer_accounts/backend/customer_accounts/settings/domain/components/OrgSwitcher.tsx"],
4
+ "sourcesContent": ["\"use client\"\n\nimport * as React from 'react'\nimport { useT } from '@open-mercato/shared/lib/i18n/context'\n\nexport type OrgOption = {\n id: string\n label: string\n depth: number\n}\n\nexport type OrgSwitcherProps = {\n options: OrgOption[]\n selectedId: string | null\n onChange: (next: string) => void\n}\n\nexport function OrgSwitcher({ options, selectedId, onChange }: OrgSwitcherProps) {\n const t = useT()\n if (options.length <= 1) return null\n return (\n <label className=\"flex items-center gap-2 text-sm text-muted-foreground\">\n <span>{t('customer_accounts.domainMapping.orgSwitcher.label', 'Organization')}</span>\n <select\n className=\"h-9 rounded-md border border-input bg-background px-3 text-sm text-foreground shadow-xs focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40\"\n value={selectedId ?? ''}\n onChange={(event) => onChange(event.target.value)}\n >\n {options.map((opt) => {\n const indent = opt.depth > 0 ? '\u00A0\u00A0'.repeat(opt.depth) : ''\n return (\n <option key={opt.id} value={opt.id}>\n {indent}\n {opt.label}\n </option>\n )\n })}\n </select>\n </label>\n )\n}\n\nexport default OrgSwitcher\n"],
5
+ "mappings": ";AAsBM,cASM,YATN;AAnBN,SAAS,YAAY;AAcd,SAAS,YAAY,EAAE,SAAS,YAAY,SAAS,GAAqB;AAC/E,QAAM,IAAI,KAAK;AACf,MAAI,QAAQ,UAAU,EAAG,QAAO;AAChC,SACE,qBAAC,WAAM,WAAU,yDACf;AAAA,wBAAC,UAAM,YAAE,qDAAqD,cAAc,GAAE;AAAA,IAC9E;AAAA,MAAC;AAAA;AAAA,QACC,WAAU;AAAA,QACV,OAAO,cAAc;AAAA,QACrB,UAAU,CAAC,UAAU,SAAS,MAAM,OAAO,KAAK;AAAA,QAE/C,kBAAQ,IAAI,CAAC,QAAQ;AACpB,gBAAM,SAAS,IAAI,QAAQ,IAAI,WAAK,OAAO,IAAI,KAAK,IAAI;AACxD,iBACE,qBAAC,YAAoB,OAAO,IAAI,IAC7B;AAAA;AAAA,YACA,IAAI;AAAA,eAFM,IAAI,EAGjB;AAAA,QAEJ,CAAC;AAAA;AAAA,IACH;AAAA,KACF;AAEJ;AAEA,IAAO,sBAAQ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,147 @@
1
+ "use client";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import * as React from "react";
4
+ import {
5
+ Dialog,
6
+ DialogContent,
7
+ DialogDescription,
8
+ DialogFooter,
9
+ DialogHeader,
10
+ DialogTitle
11
+ } from "@open-mercato/ui/primitives/dialog";
12
+ import { Button } from "@open-mercato/ui/primitives/button";
13
+ import { Input } from "@open-mercato/ui/primitives/input";
14
+ import { Label } from "@open-mercato/ui/primitives/label";
15
+ import { KbdShortcut } from "@open-mercato/ui/primitives/kbd";
16
+ import { Spinner } from "@open-mercato/ui/primitives/spinner";
17
+ import { useT } from "@open-mercato/shared/lib/i18n/context";
18
+ const HOSTNAME_BASIC = /^[a-z0-9.-]+$/i;
19
+ function RegisterDialog({
20
+ open,
21
+ onOpenChange,
22
+ mode,
23
+ currentHostname,
24
+ onSubmit,
25
+ initialError
26
+ }) {
27
+ const t = useT();
28
+ const [hostname, setHostname] = React.useState("");
29
+ const [error, setError] = React.useState(initialError ?? null);
30
+ const [submitting, setSubmitting] = React.useState(false);
31
+ const inputRef = React.useRef(null);
32
+ React.useEffect(() => {
33
+ if (!open) {
34
+ setHostname("");
35
+ setError(null);
36
+ setSubmitting(false);
37
+ return;
38
+ }
39
+ setError(initialError ?? null);
40
+ window.setTimeout(() => inputRef.current?.focus(), 0);
41
+ }, [open, initialError]);
42
+ const validate = React.useCallback(
43
+ (value) => {
44
+ const trimmed = value.trim();
45
+ if (!trimmed) return t("customer_accounts.domainMapping.errors.required", "Domain is required");
46
+ if (trimmed.length > 253) return t("customer_accounts.domainMapping.hostname.validation.invalid", "Enter a valid domain name (no protocol, path, or port)");
47
+ if (trimmed.includes("://") || trimmed.includes("/") || trimmed.includes(":")) {
48
+ return t("customer_accounts.domainMapping.hostname.validation.invalid", "Enter a valid domain name (no protocol, path, or port)");
49
+ }
50
+ if (!HOSTNAME_BASIC.test(trimmed) && !/^xn--/i.test(trimmed)) {
51
+ return t("customer_accounts.domainMapping.hostname.validation.invalid", "Enter a valid domain name (no protocol, path, or port)");
52
+ }
53
+ return null;
54
+ },
55
+ [t]
56
+ );
57
+ const handleSubmit = React.useCallback(
58
+ async (event) => {
59
+ event.preventDefault();
60
+ const validation = validate(hostname);
61
+ if (validation) {
62
+ setError(validation);
63
+ return;
64
+ }
65
+ setSubmitting(true);
66
+ setError(null);
67
+ try {
68
+ await onSubmit(hostname.trim());
69
+ } catch (err) {
70
+ const message = err instanceof Error ? err.message : "Submission failed";
71
+ setError(message);
72
+ } finally {
73
+ setSubmitting(false);
74
+ }
75
+ },
76
+ [hostname, onSubmit, validate]
77
+ );
78
+ const handleKeyDown = React.useCallback(
79
+ (event) => {
80
+ if ((event.metaKey || event.ctrlKey) && event.key === "Enter") {
81
+ event.preventDefault();
82
+ handleSubmit(event);
83
+ }
84
+ },
85
+ [handleSubmit]
86
+ );
87
+ const title = mode === "change" ? t("customer_accounts.domainMapping.dialog.change.title", "Change custom domain") : t("customer_accounts.domainMapping.dialog.register.title", "Register custom domain");
88
+ const description = mode === "change" && currentHostname ? t(
89
+ "customer_accounts.domainMapping.changeDomain.description",
90
+ "Your current domain ({hostname}) will stay active until the new domain is fully set up. No downtime for your customers.",
91
+ { hostname: currentHostname }
92
+ ) : t("customer_accounts.domainMapping.description", "Map your own domain to the customer portal");
93
+ const submitLabel = mode === "change" ? t("customer_accounts.domainMapping.dialog.change.submit", "Start replacement") : t("customer_accounts.domainMapping.dialog.register.submit", "Register");
94
+ return /* @__PURE__ */ jsx(Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs(DialogContent, { children: [
95
+ /* @__PURE__ */ jsxs(DialogHeader, { children: [
96
+ /* @__PURE__ */ jsx(DialogTitle, { children: title }),
97
+ /* @__PURE__ */ jsx(DialogDescription, { children: description })
98
+ ] }),
99
+ /* @__PURE__ */ jsxs("form", { className: "space-y-4", onSubmit: handleSubmit, onKeyDown: handleKeyDown, children: [
100
+ /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
101
+ /* @__PURE__ */ jsx(Label, { htmlFor: "custom-domain-hostname", children: t("customer_accounts.domainMapping.hostname.label", "Domain") }),
102
+ /* @__PURE__ */ jsx(
103
+ Input,
104
+ {
105
+ id: "custom-domain-hostname",
106
+ ref: inputRef,
107
+ value: hostname,
108
+ autoComplete: "off",
109
+ spellCheck: false,
110
+ placeholder: t("customer_accounts.domainMapping.hostname.placeholder", "e.g., shop.yourdomain.com"),
111
+ onChange: (event) => {
112
+ setHostname(event.target.value);
113
+ if (error) setError(null);
114
+ },
115
+ "aria-invalid": error ? true : void 0,
116
+ disabled: submitting
117
+ }
118
+ ),
119
+ error ? /* @__PURE__ */ jsx("p", { className: "text-sm text-status-error-text", role: "alert", children: error }) : null
120
+ ] }),
121
+ /* @__PURE__ */ jsxs(DialogFooter, { className: "items-center", children: [
122
+ /* @__PURE__ */ jsx("span", { className: "hidden text-xs text-muted-foreground sm:inline-flex sm:items-center sm:gap-1", children: /* @__PURE__ */ jsx(KbdShortcut, { keys: ["\u2318", "Enter"] }) }),
123
+ /* @__PURE__ */ jsx(
124
+ Button,
125
+ {
126
+ type: "button",
127
+ variant: "ghost",
128
+ size: "default",
129
+ onClick: () => onOpenChange(false),
130
+ disabled: submitting,
131
+ children: t("customer_accounts.domainMapping.dialog.cancel", "Cancel")
132
+ }
133
+ ),
134
+ /* @__PURE__ */ jsxs(Button, { type: "submit", size: "default", disabled: submitting, children: [
135
+ submitting ? /* @__PURE__ */ jsx(Spinner, { className: "mr-2 h-4 w-4" }) : null,
136
+ submitLabel
137
+ ] })
138
+ ] })
139
+ ] })
140
+ ] }) });
141
+ }
142
+ var RegisterDialog_default = RegisterDialog;
143
+ export {
144
+ RegisterDialog,
145
+ RegisterDialog_default as default
146
+ };
147
+ //# sourceMappingURL=RegisterDialog.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../../src/modules/customer_accounts/backend/customer_accounts/settings/domain/components/RegisterDialog.tsx"],
4
+ "sourcesContent": ["\"use client\"\n\nimport * as React from 'react'\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n} from '@open-mercato/ui/primitives/dialog'\nimport { Button } from '@open-mercato/ui/primitives/button'\nimport { Input } from '@open-mercato/ui/primitives/input'\nimport { Label } from '@open-mercato/ui/primitives/label'\nimport { KbdShortcut } from '@open-mercato/ui/primitives/kbd'\nimport { Spinner } from '@open-mercato/ui/primitives/spinner'\nimport { useT } from '@open-mercato/shared/lib/i18n/context'\n\nexport type RegisterDialogProps = {\n open: boolean\n onOpenChange: (next: boolean) => void\n mode: 'register' | 'change'\n currentHostname?: string | null\n onSubmit: (hostname: string) => Promise<void>\n initialError?: string | null\n}\n\nconst HOSTNAME_BASIC = /^[a-z0-9.-]+$/i\n\nexport function RegisterDialog({\n open,\n onOpenChange,\n mode,\n currentHostname,\n onSubmit,\n initialError,\n}: RegisterDialogProps) {\n const t = useT()\n const [hostname, setHostname] = React.useState('')\n const [error, setError] = React.useState<string | null>(initialError ?? null)\n const [submitting, setSubmitting] = React.useState(false)\n const inputRef = React.useRef<HTMLInputElement>(null)\n\n React.useEffect(() => {\n if (!open) {\n setHostname('')\n setError(null)\n setSubmitting(false)\n return\n }\n setError(initialError ?? null)\n window.setTimeout(() => inputRef.current?.focus(), 0)\n }, [open, initialError])\n\n const validate = React.useCallback(\n (value: string): string | null => {\n const trimmed = value.trim()\n if (!trimmed) return t('customer_accounts.domainMapping.errors.required', 'Domain is required')\n if (trimmed.length > 253) return t('customer_accounts.domainMapping.hostname.validation.invalid', 'Enter a valid domain name (no protocol, path, or port)')\n if (trimmed.includes('://') || trimmed.includes('/') || trimmed.includes(':')) {\n return t('customer_accounts.domainMapping.hostname.validation.invalid', 'Enter a valid domain name (no protocol, path, or port)')\n }\n if (!HOSTNAME_BASIC.test(trimmed) && !/^xn--/i.test(trimmed)) {\n return t('customer_accounts.domainMapping.hostname.validation.invalid', 'Enter a valid domain name (no protocol, path, or port)')\n }\n return null\n },\n [t],\n )\n\n const handleSubmit = React.useCallback(\n async (event: React.FormEvent) => {\n event.preventDefault()\n const validation = validate(hostname)\n if (validation) {\n setError(validation)\n return\n }\n setSubmitting(true)\n setError(null)\n try {\n await onSubmit(hostname.trim())\n } catch (err) {\n const message = err instanceof Error ? err.message : 'Submission failed'\n setError(message)\n } finally {\n setSubmitting(false)\n }\n },\n [hostname, onSubmit, validate],\n )\n\n const handleKeyDown = React.useCallback(\n (event: React.KeyboardEvent<HTMLFormElement>) => {\n if ((event.metaKey || event.ctrlKey) && event.key === 'Enter') {\n event.preventDefault()\n handleSubmit(event)\n }\n },\n [handleSubmit],\n )\n\n const title =\n mode === 'change'\n ? t('customer_accounts.domainMapping.dialog.change.title', 'Change custom domain')\n : t('customer_accounts.domainMapping.dialog.register.title', 'Register custom domain')\n\n const description =\n mode === 'change' && currentHostname\n ? t(\n 'customer_accounts.domainMapping.changeDomain.description',\n 'Your current domain ({hostname}) will stay active until the new domain is fully set up. No downtime for your customers.',\n { hostname: currentHostname },\n )\n : t('customer_accounts.domainMapping.description', 'Map your own domain to the customer portal')\n\n const submitLabel =\n mode === 'change'\n ? t('customer_accounts.domainMapping.dialog.change.submit', 'Start replacement')\n : t('customer_accounts.domainMapping.dialog.register.submit', 'Register')\n\n return (\n <Dialog open={open} onOpenChange={onOpenChange}>\n <DialogContent>\n <DialogHeader>\n <DialogTitle>{title}</DialogTitle>\n <DialogDescription>{description}</DialogDescription>\n </DialogHeader>\n <form className=\"space-y-4\" onSubmit={handleSubmit} onKeyDown={handleKeyDown}>\n <div className=\"space-y-2\">\n <Label htmlFor=\"custom-domain-hostname\">\n {t('customer_accounts.domainMapping.hostname.label', 'Domain')}\n </Label>\n <Input\n id=\"custom-domain-hostname\"\n ref={inputRef}\n value={hostname}\n autoComplete=\"off\"\n spellCheck={false}\n placeholder={t('customer_accounts.domainMapping.hostname.placeholder', 'e.g., shop.yourdomain.com')}\n onChange={(event) => {\n setHostname(event.target.value)\n if (error) setError(null)\n }}\n aria-invalid={error ? true : undefined}\n disabled={submitting}\n />\n {error ? (\n <p className=\"text-sm text-status-error-text\" role=\"alert\">\n {error}\n </p>\n ) : null}\n </div>\n <DialogFooter className=\"items-center\">\n <span className=\"hidden text-xs text-muted-foreground sm:inline-flex sm:items-center sm:gap-1\">\n <KbdShortcut keys={['\u2318', 'Enter']} />\n </span>\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"default\"\n onClick={() => onOpenChange(false)}\n disabled={submitting}\n >\n {t('customer_accounts.domainMapping.dialog.cancel', 'Cancel')}\n </Button>\n <Button type=\"submit\" size=\"default\" disabled={submitting}>\n {submitting ? <Spinner className=\"mr-2 h-4 w-4\" /> : null}\n {submitLabel}\n </Button>\n </DialogFooter>\n </form>\n </DialogContent>\n </Dialog>\n )\n}\n\nexport default RegisterDialog\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
@@ -0,0 +1,39 @@
1
+ "use client";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { StatusBadge } from "@open-mercato/ui/primitives/status-badge";
4
+ import { useT } from "@open-mercato/shared/lib/i18n/context";
5
+ import { domainStatusMap } from "./domainStatusMap.js";
6
+ function formatTime(value, fallback) {
7
+ if (!value) return fallback;
8
+ const date = new Date(value);
9
+ if (Number.isNaN(date.getTime())) return fallback;
10
+ return date.toLocaleString();
11
+ }
12
+ function DefaultStatusBadge({ mapping }) {
13
+ const t = useT();
14
+ const variant = domainStatusMap[mapping.status];
15
+ const label = t(
16
+ `customer_accounts.domainMapping.status.${mapping.status}`,
17
+ mapping.status
18
+ );
19
+ const lastChecked = formatTime(
20
+ mapping.lastDnsCheckAt,
21
+ t("customer_accounts.domainMapping.autoVerify.checking", "Automatically checking every 5 minutes")
22
+ );
23
+ const showAutoCheck = mapping.status === "pending" || mapping.status === "dns_failed";
24
+ return /* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center gap-3", children: [
25
+ /* @__PURE__ */ jsx(StatusBadge, { variant, dot: true, children: label }),
26
+ mapping.lastDnsCheckAt ? /* @__PURE__ */ jsx("span", { className: "text-xs text-muted-foreground", children: t("customer_accounts.domainMapping.autoVerify.lastChecked", "Last checked: {time}", {
27
+ time: lastChecked
28
+ }) }) : null,
29
+ showAutoCheck ? /* @__PURE__ */ jsx("span", { className: "text-xs text-muted-foreground", children: t("customer_accounts.domainMapping.autoVerify.nextCheck", "Next check in ~{minutes} minutes", {
30
+ minutes: "5"
31
+ }) }) : null
32
+ ] });
33
+ }
34
+ var StatusBadgeSection_default = DefaultStatusBadge;
35
+ export {
36
+ DefaultStatusBadge,
37
+ StatusBadgeSection_default as default
38
+ };
39
+ //# sourceMappingURL=StatusBadgeSection.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../../src/modules/customer_accounts/backend/customer_accounts/settings/domain/components/StatusBadgeSection.tsx"],
4
+ "sourcesContent": ["\"use client\"\n\nimport * as React from 'react'\nimport { StatusBadge } from '@open-mercato/ui/primitives/status-badge'\nimport { useT } from '@open-mercato/shared/lib/i18n/context'\nimport { domainStatusMap } from './domainStatusMap'\nimport type { DomainMappingRow } from './types'\n\nexport type StatusBadgeSectionProps = {\n mapping: DomainMappingRow\n}\n\nfunction formatTime(value: string | null, fallback: string): string {\n if (!value) return fallback\n const date = new Date(value)\n if (Number.isNaN(date.getTime())) return fallback\n return date.toLocaleString()\n}\n\nexport function DefaultStatusBadge({ mapping }: StatusBadgeSectionProps) {\n const t = useT()\n const variant = domainStatusMap[mapping.status]\n const label = t(\n `customer_accounts.domainMapping.status.${mapping.status}`,\n mapping.status,\n )\n const lastChecked = formatTime(\n mapping.lastDnsCheckAt,\n t('customer_accounts.domainMapping.autoVerify.checking', 'Automatically checking every 5 minutes'),\n )\n const showAutoCheck = mapping.status === 'pending' || mapping.status === 'dns_failed'\n\n return (\n <div className=\"flex flex-wrap items-center gap-3\">\n <StatusBadge variant={variant} dot>\n {label}\n </StatusBadge>\n {mapping.lastDnsCheckAt ? (\n <span className=\"text-xs text-muted-foreground\">\n {t('customer_accounts.domainMapping.autoVerify.lastChecked', 'Last checked: {time}', {\n time: lastChecked,\n })}\n </span>\n ) : null}\n {showAutoCheck ? (\n <span className=\"text-xs text-muted-foreground\">\n {t('customer_accounts.domainMapping.autoVerify.nextCheck', 'Next check in ~{minutes} minutes', {\n minutes: '5',\n })}\n </span>\n ) : null}\n </div>\n )\n}\n\nexport default DefaultStatusBadge\n"],
5
+ "mappings": ";AAiCI,SACE,KADF;AA9BJ,SAAS,mBAAmB;AAC5B,SAAS,YAAY;AACrB,SAAS,uBAAuB;AAOhC,SAAS,WAAW,OAAsB,UAA0B;AAClE,MAAI,CAAC,MAAO,QAAO;AACnB,QAAM,OAAO,IAAI,KAAK,KAAK;AAC3B,MAAI,OAAO,MAAM,KAAK,QAAQ,CAAC,EAAG,QAAO;AACzC,SAAO,KAAK,eAAe;AAC7B;AAEO,SAAS,mBAAmB,EAAE,QAAQ,GAA4B;AACvE,QAAM,IAAI,KAAK;AACf,QAAM,UAAU,gBAAgB,QAAQ,MAAM;AAC9C,QAAM,QAAQ;AAAA,IACZ,0CAA0C,QAAQ,MAAM;AAAA,IACxD,QAAQ;AAAA,EACV;AACA,QAAM,cAAc;AAAA,IAClB,QAAQ;AAAA,IACR,EAAE,uDAAuD,wCAAwC;AAAA,EACnG;AACA,QAAM,gBAAgB,QAAQ,WAAW,aAAa,QAAQ,WAAW;AAEzE,SACE,qBAAC,SAAI,WAAU,qCACb;AAAA,wBAAC,eAAY,SAAkB,KAAG,MAC/B,iBACH;AAAA,IACC,QAAQ,iBACP,oBAAC,UAAK,WAAU,iCACb,YAAE,0DAA0D,wBAAwB;AAAA,MACnF,MAAM;AAAA,IACR,CAAC,GACH,IACE;AAAA,IACH,gBACC,oBAAC,UAAK,WAAU,iCACb,YAAE,wDAAwD,oCAAoC;AAAA,MAC7F,SAAS;AAAA,IACX,CAAC,GACH,IACE;AAAA,KACN;AAEJ;AAEA,IAAO,6BAAQ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,60 @@
1
+ "use client";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { Check } from "lucide-react";
4
+ import { cn } from "@open-mercato/shared/lib/utils";
5
+ import { useT } from "@open-mercato/shared/lib/i18n/context";
6
+ function activeStep(status) {
7
+ if (!status) return 1;
8
+ if (status === "pending" || status === "dns_failed") return 2;
9
+ if (status === "verified" || status === "tls_failed") return 3;
10
+ if (status === "active") return 4;
11
+ return 1;
12
+ }
13
+ function DefaultStepper({ status }) {
14
+ const t = useT();
15
+ const current = activeStep(status);
16
+ const steps = [
17
+ { idx: 1, label: t("customer_accounts.domainMapping.stepper.step1", "Register Domain") },
18
+ { idx: 2, label: t("customer_accounts.domainMapping.stepper.step2", "Configure DNS") },
19
+ { idx: 3, label: t("customer_accounts.domainMapping.stepper.step3", "SSL Certificate") },
20
+ { idx: 4, label: t("customer_accounts.domainMapping.stepper.step4", "Live") }
21
+ ];
22
+ return /* @__PURE__ */ jsx("ol", { className: "flex flex-wrap items-center gap-3 text-sm", children: steps.map((step, index) => {
23
+ const isDone = step.idx < current;
24
+ const isCurrent = step.idx === current;
25
+ return /* @__PURE__ */ jsxs("li", { className: "flex items-center gap-3", children: [
26
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
27
+ /* @__PURE__ */ jsx(
28
+ "span",
29
+ {
30
+ className: cn(
31
+ "flex h-7 w-7 items-center justify-center rounded-full border text-xs font-medium",
32
+ isDone && "border-status-success-icon bg-status-success-icon text-status-success-foreground",
33
+ isCurrent && "border-primary bg-primary/10 text-primary",
34
+ !isDone && !isCurrent && "border-border bg-background text-muted-foreground"
35
+ ),
36
+ "aria-current": isCurrent ? "step" : void 0,
37
+ children: isDone ? /* @__PURE__ */ jsx(Check, { className: "h-4 w-4", "aria-hidden": true }) : step.idx
38
+ }
39
+ ),
40
+ /* @__PURE__ */ jsx(
41
+ "span",
42
+ {
43
+ className: cn(
44
+ "whitespace-nowrap",
45
+ isCurrent ? "font-medium text-foreground" : "text-muted-foreground"
46
+ ),
47
+ children: step.label
48
+ }
49
+ )
50
+ ] }),
51
+ index < steps.length - 1 ? /* @__PURE__ */ jsx("span", { className: "hidden h-px w-8 bg-border sm:block", "aria-hidden": true }) : null
52
+ ] }, step.idx);
53
+ }) });
54
+ }
55
+ var Stepper_default = DefaultStepper;
56
+ export {
57
+ DefaultStepper,
58
+ Stepper_default as default
59
+ };
60
+ //# sourceMappingURL=Stepper.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../../src/modules/customer_accounts/backend/customer_accounts/settings/domain/components/Stepper.tsx"],
4
+ "sourcesContent": ["\"use client\"\n\nimport * as React from 'react'\nimport { Check } from 'lucide-react'\nimport { cn } from '@open-mercato/shared/lib/utils'\nimport { useT } from '@open-mercato/shared/lib/i18n/context'\nimport type { DomainStatus } from '@open-mercato/core/modules/customer_accounts/data/entities'\n\nexport type StepperProps = {\n status: DomainStatus | null\n}\n\nfunction activeStep(status: DomainStatus | null): number {\n if (!status) return 1\n if (status === 'pending' || status === 'dns_failed') return 2\n if (status === 'verified' || status === 'tls_failed') return 3\n if (status === 'active') return 4\n return 1\n}\n\nexport function DefaultStepper({ status }: StepperProps) {\n const t = useT()\n const current = activeStep(status)\n const steps: Array<{ idx: number; label: string }> = [\n { idx: 1, label: t('customer_accounts.domainMapping.stepper.step1', 'Register Domain') },\n { idx: 2, label: t('customer_accounts.domainMapping.stepper.step2', 'Configure DNS') },\n { idx: 3, label: t('customer_accounts.domainMapping.stepper.step3', 'SSL Certificate') },\n { idx: 4, label: t('customer_accounts.domainMapping.stepper.step4', 'Live') },\n ]\n\n return (\n <ol className=\"flex flex-wrap items-center gap-3 text-sm\">\n {steps.map((step, index) => {\n const isDone = step.idx < current\n const isCurrent = step.idx === current\n return (\n <li key={step.idx} className=\"flex items-center gap-3\">\n <div className=\"flex items-center gap-2\">\n <span\n className={cn(\n 'flex h-7 w-7 items-center justify-center rounded-full border text-xs font-medium',\n isDone && 'border-status-success-icon bg-status-success-icon text-status-success-foreground',\n isCurrent && 'border-primary bg-primary/10 text-primary',\n !isDone && !isCurrent && 'border-border bg-background text-muted-foreground',\n )}\n aria-current={isCurrent ? 'step' : undefined}\n >\n {isDone ? <Check className=\"h-4 w-4\" aria-hidden /> : step.idx}\n </span>\n <span\n className={cn(\n 'whitespace-nowrap',\n isCurrent ? 'font-medium text-foreground' : 'text-muted-foreground',\n )}\n >\n {step.label}\n </span>\n </div>\n {index < steps.length - 1 ? (\n <span className=\"hidden h-px w-8 bg-border sm:block\" aria-hidden />\n ) : null}\n </li>\n )\n })}\n </ol>\n )\n}\n\nexport default DefaultStepper\n"],
5
+ "mappings": ";AAqCY,SAUc,KAVd;AAlCZ,SAAS,aAAa;AACtB,SAAS,UAAU;AACnB,SAAS,YAAY;AAOrB,SAAS,WAAW,QAAqC;AACvD,MAAI,CAAC,OAAQ,QAAO;AACpB,MAAI,WAAW,aAAa,WAAW,aAAc,QAAO;AAC5D,MAAI,WAAW,cAAc,WAAW,aAAc,QAAO;AAC7D,MAAI,WAAW,SAAU,QAAO;AAChC,SAAO;AACT;AAEO,SAAS,eAAe,EAAE,OAAO,GAAiB;AACvD,QAAM,IAAI,KAAK;AACf,QAAM,UAAU,WAAW,MAAM;AACjC,QAAM,QAA+C;AAAA,IACnD,EAAE,KAAK,GAAG,OAAO,EAAE,iDAAiD,iBAAiB,EAAE;AAAA,IACvF,EAAE,KAAK,GAAG,OAAO,EAAE,iDAAiD,eAAe,EAAE;AAAA,IACrF,EAAE,KAAK,GAAG,OAAO,EAAE,iDAAiD,iBAAiB,EAAE;AAAA,IACvF,EAAE,KAAK,GAAG,OAAO,EAAE,iDAAiD,MAAM,EAAE;AAAA,EAC9E;AAEA,SACE,oBAAC,QAAG,WAAU,6CACX,gBAAM,IAAI,CAAC,MAAM,UAAU;AAC1B,UAAM,SAAS,KAAK,MAAM;AAC1B,UAAM,YAAY,KAAK,QAAQ;AAC/B,WACE,qBAAC,QAAkB,WAAU,2BAC3B;AAAA,2BAAC,SAAI,WAAU,2BACb;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,WAAW;AAAA,cACT;AAAA,cACA,UAAU;AAAA,cACV,aAAa;AAAA,cACb,CAAC,UAAU,CAAC,aAAa;AAAA,YAC3B;AAAA,YACA,gBAAc,YAAY,SAAS;AAAA,YAElC,mBAAS,oBAAC,SAAM,WAAU,WAAU,eAAW,MAAC,IAAK,KAAK;AAAA;AAAA,QAC7D;AAAA,QACA;AAAA,UAAC;AAAA;AAAA,YACC,WAAW;AAAA,cACT;AAAA,cACA,YAAY,gCAAgC;AAAA,YAC9C;AAAA,YAEC,eAAK;AAAA;AAAA,QACR;AAAA,SACF;AAAA,MACC,QAAQ,MAAM,SAAS,IACtB,oBAAC,UAAK,WAAU,sCAAqC,eAAW,MAAC,IAC/D;AAAA,SAxBG,KAAK,GAyBd;AAAA,EAEJ,CAAC,GACH;AAEJ;AAEA,IAAO,kBAAQ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,11 @@
1
+ const domainStatusMap = {
2
+ pending: "info",
3
+ verified: "info",
4
+ active: "success",
5
+ dns_failed: "error",
6
+ tls_failed: "warning"
7
+ };
8
+ export {
9
+ domainStatusMap
10
+ };
11
+ //# sourceMappingURL=domainStatusMap.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../../src/modules/customer_accounts/backend/customer_accounts/settings/domain/components/domainStatusMap.ts"],
4
+ "sourcesContent": ["import type { StatusMap } from '@open-mercato/ui/primitives/status-badge'\nimport type { DomainStatus } from '@open-mercato/core/modules/customer_accounts/data/entities'\n\nexport const domainStatusMap: StatusMap<DomainStatus> = {\n pending: 'info',\n verified: 'info',\n active: 'success',\n dns_failed: 'error',\n tls_failed: 'warning',\n}\n"],
5
+ "mappings": "AAGO,MAAM,kBAA2C;AAAA,EACtD,SAAS;AAAA,EACT,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,YAAY;AACd;",
6
+ "names": []
7
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }