@eric-emg/symphiq-components 1.2.154 → 1.2.156

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.
@@ -52796,60 +52796,50 @@ function SymphiqCreateAccountDashboardComponent_Conditional_26_Template(rf, ctx)
52796
52796
  i0.ɵɵadvance(2);
52797
52797
  i0.ɵɵrepeater(ctx_r1.allFocusAreaDomains());
52798
52798
  } }
52799
- function SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_2_Template(rf, ctx) { if (rf & 1) {
52800
- i0.ɵɵelementStart(0, "div", 74);
52801
- i0.ɵɵtext(1);
52802
- i0.ɵɵelementEnd();
52803
- } if (rf & 2) {
52804
- const ctx_r1 = i0.ɵɵnextContext(2);
52805
- i0.ɵɵproperty("ngClass", ctx_r1.validationMessageClasses());
52806
- i0.ɵɵadvance();
52807
- i0.ɵɵtextInterpolate3(" Please answer all ", ctx_r1.totalFocusAreas(), " focus area questions before creating your account. ", ctx_r1.focusAreasAnswered(), " of ", ctx_r1.totalFocusAreas(), " completed. ");
52808
- } }
52809
- function SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_4_Template(rf, ctx) { if (rf & 1) {
52799
+ function SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_3_Template(rf, ctx) { if (rf & 1) {
52810
52800
  const _r13 = i0.ɵɵgetCurrentView();
52811
- i0.ɵɵelementStart(0, "button", 78);
52812
- i0.ɵɵlistener("click", function SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_4_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r13); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.focusAreasEditMode() ? ctx_r1.cancelFocusAreasEditMode() : ctx_r1.cancelEditMode()); });
52801
+ i0.ɵɵelementStart(0, "button", 77);
52802
+ i0.ɵɵlistener("click", function SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_3_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r13); const ctx_r1 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r1.focusAreasEditMode() ? ctx_r1.cancelFocusAreasEditMode() : ctx_r1.cancelEditMode()); });
52813
52803
  i0.ɵɵtext(1, " Cancel ");
52814
52804
  i0.ɵɵelementEnd();
52815
52805
  } if (rf & 2) {
52816
52806
  const ctx_r1 = i0.ɵɵnextContext(2);
52817
52807
  i0.ɵɵproperty("ngClass", ctx_r1.cancelButtonClasses());
52818
52808
  } }
52819
- function SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_6_Conditional_3_Template(rf, ctx) { if (rf & 1) {
52809
+ function SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_5_Conditional_3_Template(rf, ctx) { if (rf & 1) {
52820
52810
  i0.ɵɵtext(0, " Saving Focus Areas... ");
52821
52811
  } }
52822
- function SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_6_Conditional_4_Template(rf, ctx) { if (rf & 1) {
52812
+ function SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_5_Conditional_4_Template(rf, ctx) { if (rf & 1) {
52823
52813
  i0.ɵɵtext(0, " Updating Account... ");
52824
52814
  } }
52825
- function SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_6_Conditional_5_Template(rf, ctx) { if (rf & 1) {
52815
+ function SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_5_Conditional_5_Template(rf, ctx) { if (rf & 1) {
52826
52816
  i0.ɵɵtext(0, " Creating Account... ");
52827
52817
  } }
52828
- function SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_6_Template(rf, ctx) { if (rf & 1) {
52818
+ function SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_5_Template(rf, ctx) { if (rf & 1) {
52829
52819
  i0.ɵɵnamespaceSVG();
52830
- i0.ɵɵelementStart(0, "svg", 79);
52831
- i0.ɵɵelement(1, "circle", 80)(2, "path", 81);
52820
+ i0.ɵɵelementStart(0, "svg", 78);
52821
+ i0.ɵɵelement(1, "circle", 79)(2, "path", 80);
52832
52822
  i0.ɵɵelementEnd();
52833
- i0.ɵɵconditionalCreate(3, SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_6_Conditional_3_Template, 1, 0)(4, SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_6_Conditional_4_Template, 1, 0)(5, SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_6_Conditional_5_Template, 1, 0);
52823
+ i0.ɵɵconditionalCreate(3, SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_5_Conditional_3_Template, 1, 0)(4, SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_5_Conditional_4_Template, 1, 0)(5, SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_5_Conditional_5_Template, 1, 0);
52834
52824
  } if (rf & 2) {
52835
52825
  const ctx_r1 = i0.ɵɵnextContext(2);
52836
52826
  i0.ɵɵadvance(3);
52837
52827
  i0.ɵɵconditional(ctx_r1.focusAreasEditMode() ? 3 : ctx_r1.accountData() && ctx_r1.editMode() ? 4 : 5);
52838
52828
  } }
52839
- function SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_7_Conditional_0_Template(rf, ctx) { if (rf & 1) {
52829
+ function SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_6_Conditional_0_Template(rf, ctx) { if (rf & 1) {
52840
52830
  i0.ɵɵtext(0, " Save Focus Areas ");
52841
52831
  } }
52842
- function SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_7_Conditional_1_Template(rf, ctx) { if (rf & 1) {
52832
+ function SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_6_Conditional_1_Template(rf, ctx) { if (rf & 1) {
52843
52833
  i0.ɵɵtext(0, " Save Changes ");
52844
52834
  } }
52845
- function SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_7_Conditional_2_Template(rf, ctx) { if (rf & 1) {
52835
+ function SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_6_Conditional_2_Template(rf, ctx) { if (rf & 1) {
52846
52836
  i0.ɵɵtext(0, " Create Account ");
52847
52837
  } }
52848
- function SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_7_Template(rf, ctx) { if (rf & 1) {
52849
- i0.ɵɵconditionalCreate(0, SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_7_Conditional_0_Template, 1, 0)(1, SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_7_Conditional_1_Template, 1, 0)(2, SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_7_Conditional_2_Template, 1, 0);
52838
+ function SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_6_Template(rf, ctx) { if (rf & 1) {
52839
+ i0.ɵɵconditionalCreate(0, SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_6_Conditional_0_Template, 1, 0)(1, SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_6_Conditional_1_Template, 1, 0)(2, SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_6_Conditional_2_Template, 1, 0);
52850
52840
  i0.ɵɵnamespaceSVG();
52851
- i0.ɵɵelementStart(3, "svg", 82);
52852
- i0.ɵɵelement(4, "path", 83);
52841
+ i0.ɵɵelementStart(3, "svg", 81);
52842
+ i0.ɵɵelement(4, "path", 82);
52853
52843
  i0.ɵɵelementEnd();
52854
52844
  } if (rf & 2) {
52855
52845
  const ctx_r1 = i0.ɵɵnextContext(2);
@@ -52857,26 +52847,22 @@ function SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_7_Tem
52857
52847
  } }
52858
52848
  function SymphiqCreateAccountDashboardComponent_Conditional_28_Template(rf, ctx) { if (rf & 1) {
52859
52849
  const _r12 = i0.ɵɵgetCurrentView();
52860
- i0.ɵɵelementStart(0, "div", 17)(1, "div", 73);
52861
- i0.ɵɵconditionalCreate(2, SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_2_Template, 2, 4, "div", 74);
52862
- i0.ɵɵelementStart(3, "div", 75);
52863
- i0.ɵɵconditionalCreate(4, SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_4_Template, 2, 1, "button", 76);
52864
- i0.ɵɵelementStart(5, "button", 77);
52865
- i0.ɵɵlistener("click", function SymphiqCreateAccountDashboardComponent_Conditional_28_Template_button_click_5_listener() { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.focusAreasEditMode() ? ctx_r1.handleSaveFocusAreas() : ctx_r1.handleContinue()); });
52866
- i0.ɵɵconditionalCreate(6, SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_6_Template, 6, 1)(7, SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_7_Template, 5, 1);
52850
+ i0.ɵɵelementStart(0, "div", 17)(1, "div", 73)(2, "div", 74);
52851
+ i0.ɵɵconditionalCreate(3, SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_3_Template, 2, 1, "button", 75);
52852
+ i0.ɵɵelementStart(4, "button", 76);
52853
+ i0.ɵɵlistener("click", function SymphiqCreateAccountDashboardComponent_Conditional_28_Template_button_click_4_listener() { i0.ɵɵrestoreView(_r12); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.focusAreasEditMode() ? ctx_r1.handleSaveFocusAreas() : ctx_r1.handleContinue()); });
52854
+ i0.ɵɵconditionalCreate(5, SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_5_Template, 6, 1)(6, SymphiqCreateAccountDashboardComponent_Conditional_28_Conditional_6_Template, 5, 1);
52867
52855
  i0.ɵɵelementEnd()()()();
52868
52856
  } if (rf & 2) {
52869
52857
  const ctx_r1 = i0.ɵɵnextContext();
52870
52858
  i0.ɵɵproperty("ngClass", ctx_r1.stickyButtonContainerClasses());
52871
- i0.ɵɵadvance(2);
52872
- i0.ɵɵconditional(!ctx_r1.allFocusAreasAnswered() && !ctx_r1.accountData() ? 2 : -1);
52873
- i0.ɵɵadvance(2);
52874
- i0.ɵɵconditional(ctx_r1.accountData() && ctx_r1.editMode() || ctx_r1.accountData() && ctx_r1.focusAreasEditMode() ? 4 : -1);
52859
+ i0.ɵɵadvance(3);
52860
+ i0.ɵɵconditional(ctx_r1.accountData() && ctx_r1.editMode() || ctx_r1.accountData() && ctx_r1.focusAreasEditMode() ? 3 : -1);
52875
52861
  i0.ɵɵadvance();
52876
52862
  i0.ɵɵclassProp("cursor-pointer", ctx_r1.isButtonEnabled())("cursor-not-allowed", !ctx_r1.isButtonEnabled())("opacity-50", !ctx_r1.isButtonEnabled())("hover:scale-105", ctx_r1.isButtonEnabled());
52877
52863
  i0.ɵɵproperty("disabled", !ctx_r1.isButtonEnabled())("ngClass", ctx_r1.continueButtonClasses());
52878
52864
  i0.ɵɵadvance();
52879
- i0.ɵɵconditional(ctx_r1.isLoading() ? 6 : 7);
52865
+ i0.ɵɵconditional(ctx_r1.isLoading() ? 5 : 6);
52880
52866
  } }
52881
52867
  var ShopPlatformEnum;
52882
52868
  (function (ShopPlatformEnum) {
@@ -53454,7 +53440,7 @@ class SymphiqCreateAccountDashboardComponent {
53454
53440
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.shopNameInput = _t.first);
53455
53441
  } }, hostBindings: function SymphiqCreateAccountDashboardComponent_HostBindings(rf, ctx) { if (rf & 1) {
53456
53442
  i0.ɵɵlistener("scroll", function SymphiqCreateAccountDashboardComponent_scroll_HostBindingHandler($event) { return ctx.onScroll($event); }, i0.ɵɵresolveWindow);
53457
- } }, inputs: { embedded: [1, "embedded"], parentHeaderOffset: [1, "parentHeaderOffset"], viewMode: [1, "viewMode"], scrollEvent: [1, "scrollEvent"], scrollElement: [1, "scrollElement"], accountData: [1, "accountData"], forDemo: [1, "forDemo"], showNextStepAction: [1, "showNextStepAction"], maxAccessibleStepId: [1, "maxAccessibleStepId"] }, outputs: { onCreateAccount: "onCreateAccount", stepClick: "stepClick", nextStepClick: "nextStepClick" }, decls: 29, vars: 51, consts: [["shopNameInput", ""], [3, "ngClass"], [1, "h-full", "transition-all", "duration-200", "ease-out", 3, "ngClass"], [1, "animated-bubbles", 2, "position", "fixed", "top", "0", "left", "0", "right", "0", "bottom", "0", "width", "100vw", "height", "100vh", "z-index", "1", "pointer-events", "none"], [1, "relative", "z-[51]"], [1, "sticky", "top-0", "z-50", 3, "ngClass"], [1, "transition-all", "duration-300", "ease-in-out", "overflow-hidden"], [1, "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-8"], [1, "flex", "items-center", "justify-between"], [1, "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-3"], [1, "flex-1", "min-w-0", "mr-4"], [3, "stepClick", "nextStepClick", "viewMode", "currentStepId", "showNextStepAction", "forDemo", "maxAccessibleStepId"], [1, "relative", "pb-32"], [1, "max-w-3xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-8"], [1, "rounded-2xl", "border", "shadow-lg", "overflow-hidden", "mb-8", 3, "ngClass"], [1, "rounded-2xl", "border", "shadow-lg", "overflow-hidden", 3, "ngClass"], [3, "close", "save", "isOpen", "focusAreaDomain", "focusAreaTitle", "selectedTools", "viewMode"], [1, "fixed", "bottom-0", "left-0", "right-0", "z-50", "border-t", "backdrop-blur-sm", 3, "ngClass"], [1, "px-8", "py-8", 3, "ngClass"], [1, "flex", "items-start", "justify-between", "mb-6"], [1, "text-2xl", "font-bold", "mb-2", 3, "ngClass"], ["type", "button", 1, "px-4", "py-2", "rounded-lg", "font-medium", "text-sm", "transition-all", "duration-200", "hover:scale-105", "flex", "items-center", "gap-2", "cursor-pointer", 3, "click", "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"], [1, "space-y-4"], [1, "block", "text-sm", "font-medium", "mb-1", 3, "ngClass"], [1, "text-base", 3, "ngClass"], ["target", "_blank", "rel", "noopener noreferrer", 1, "text-base", "hover:underline", 3, "href", "ngClass"], [1, "mb-6"], [1, "space-y-6", 3, "formGroup"], [1, "block", "text-sm", "font-semibold", "mb-2", 3, "ngClass"], [1, "text-red-500"], ["type", "text", "formControlName", "shopName", "placeholder", "Enter your shop name", 1, "w-full", "px-4", "py-3", "rounded-lg", "border-2", "transition-all", "duration-200", "focus:outline-none", "focus:ring-2", 3, "ngClass"], [1, "mt-1", "text-sm", 3, "ngClass"], [1, "flex", "items-center"], [1, "px-4", "py-3", "rounded-l-lg", "border-2", "border-r-0", "text-sm", "font-medium", 3, "ngClass"], ["type", "text", "formControlName", "shopUrl", "placeholder", "yourshop.com", 1, "flex-1", "px-4", "py-3", "rounded-r-lg", "border-2", "transition-all", "duration-200", "focus:outline-none", "focus:ring-2", 3, "ngClass"], [1, "block", "text-sm", "font-semibold", "mb-3", 3, "ngClass"], [1, "grid", "grid-cols-1", "sm:grid-cols-2", "gap-4"], [1, "cursor-pointer", 3, "ngClass"], ["type", "radio", "formControlName", "shopPlatform", 1, "sr-only", 3, "value"], [1, "flex", "items-center", "gap-3", "p-4", "rounded-lg", "border-2", "transition-all", "duration-200"], [1, "w-5", "h-5", "rounded-full", "border-2", "flex", "items-center", "justify-center", "flex-shrink-0", 3, "ngClass"], [1, "w-3", "h-3", "rounded-full", "bg-current"], [1, "flex-1"], [1, "font-semibold", 3, "ngClass"], ["type", "text", "formControlName", "companyName", "placeholder", "Enter company name", 1, "w-full", "px-4", "py-3", "rounded-lg", "border-2", "transition-all", "duration-200", "focus:outline-none", "focus:ring-2", 3, "ngClass", "readonly"], [1, "mt-2"], [1, "flex", "items-center", "gap-2", "cursor-pointer"], ["type", "checkbox", 1, "w-4", "h-4", "rounded", "border-2", "transition-all", "duration-200", 3, "change", "checked", "ngClass"], [1, "text-sm", 3, "ngClass"], ["type", "text", "formControlName", "otherPlatformName", "placeholder", "Enter platform name (e.g., WooCommerce, Magento)", 1, "w-full", "px-4", "py-3", "rounded-lg", "border-2", "transition-all", "duration-200", "focus:outline-none", "focus:ring-2", 3, "ngClass"], [1, "text-base", "font-bold", "mb-3", "flex", "items-center", "gap-2", 3, "ngClass"], [1, "w-2", "h-2", "rounded-full", "bg-emerald-500"], [1, "space-y-3"], [1, "p-4", "rounded-lg", "border-l-4", 3, "ngClass"], [1, "flex", "items-start", "justify-between", "mb-2"], [1, "font-semibold", "text-sm", 3, "ngClass"], [1, "px-2", "py-0.5", "rounded", "text-xs", "font-semibold", "whitespace-nowrap", 3, "ngClass"], [1, "flex", "items-center", "gap-2", "mt-2"], [1, "text-xs", "font-medium", 3, "ngClass"], [1, "flex", "flex-wrap", "gap-1.5"], [1, "px-2", "py-0.5", "rounded", "text-xs", 3, "ngClass"], [1, "w-2", "h-2", "rounded-full", "bg-blue-500"], [1, "grid", "grid-cols-1", "sm:grid-cols-2", "gap-3"], [1, "p-3", "rounded-lg", "border-l-4", 3, "ngClass"], [1, "w-2", "h-2", "rounded-full", "bg-slate-400"], [1, "grid", "grid-cols-2", "sm:grid-cols-3", "gap-2"], [1, "p-2", "rounded", "text-center", 3, "ngClass"], [1, "flex", "items-start", "justify-between"], [1, "px-4", "py-2", "rounded-lg", "text-sm", "font-semibold", "whitespace-nowrap", 3, "ngClass"], [3, "statusChange", "toolsClick", "focusAreaDomain", "selectedStatus", "selectedTools", "viewMode", "title", "description"], [1, "my-4", 3, "ngClass"], [1, "max-w-3xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-4"], [1, "mb-3", "p-3", "rounded-lg", "text-sm", 3, "ngClass"], [1, "flex", "items-center", "gap-3"], ["type", "button", 1, "px-6", "py-4", "rounded-xl", "font-bold", "text-base", "transition-all", "duration-200", "flex", "items-center", "justify-center", "gap-2", "cursor-pointer", "hover:scale-105", 3, "ngClass"], ["type", "button", 1, "flex-1", "px-6", "py-4", "rounded-xl", "font-bold", "text-lg", "transition-all", "duration-200", "flex", "items-center", "justify-center", "gap-3", "shadow-lg", 3, "click", "disabled", "ngClass"], ["type", "button", 1, "px-6", "py-4", "rounded-xl", "font-bold", "text-base", "transition-all", "duration-200", "flex", "items-center", "justify-center", "gap-2", "cursor-pointer", "hover:scale-105", 3, "click", "ngClass"], ["fill", "none", "viewBox", "0 0 24 24", 1, "w-6", "h-6", "animate-spin"], ["cx", "12", "cy", "12", "r", "10", "stroke", "currentColor", "stroke-width", "4", 1, "opacity-25"], ["fill", "currentColor", "d", "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z", 1, "opacity-75"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-6", "h-6"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M13 7l5 5m0 0l-5 5m5-5H6"]], template: function SymphiqCreateAccountDashboardComponent_Template(rf, ctx) { if (rf & 1) {
53443
+ } }, inputs: { embedded: [1, "embedded"], parentHeaderOffset: [1, "parentHeaderOffset"], viewMode: [1, "viewMode"], scrollEvent: [1, "scrollEvent"], scrollElement: [1, "scrollElement"], accountData: [1, "accountData"], forDemo: [1, "forDemo"], showNextStepAction: [1, "showNextStepAction"], maxAccessibleStepId: [1, "maxAccessibleStepId"] }, outputs: { onCreateAccount: "onCreateAccount", stepClick: "stepClick", nextStepClick: "nextStepClick" }, decls: 29, vars: 51, consts: [["shopNameInput", ""], [3, "ngClass"], [1, "h-full", "transition-all", "duration-200", "ease-out", 3, "ngClass"], [1, "animated-bubbles", 2, "position", "fixed", "top", "0", "left", "0", "right", "0", "bottom", "0", "width", "100vw", "height", "100vh", "z-index", "1", "pointer-events", "none"], [1, "relative", "z-[51]"], [1, "sticky", "top-0", "z-50", 3, "ngClass"], [1, "transition-all", "duration-300", "ease-in-out", "overflow-hidden"], [1, "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-8"], [1, "flex", "items-center", "justify-between"], [1, "max-w-7xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-3"], [1, "flex-1", "min-w-0", "mr-4"], [3, "stepClick", "nextStepClick", "viewMode", "currentStepId", "showNextStepAction", "forDemo", "maxAccessibleStepId"], [1, "relative", "pb-32"], [1, "max-w-3xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-8"], [1, "rounded-2xl", "border", "shadow-lg", "overflow-hidden", "mb-8", 3, "ngClass"], [1, "rounded-2xl", "border", "shadow-lg", "overflow-hidden", 3, "ngClass"], [3, "close", "save", "isOpen", "focusAreaDomain", "focusAreaTitle", "selectedTools", "viewMode"], [1, "fixed", "bottom-0", "left-0", "right-0", "z-50", "border-t", "backdrop-blur-sm", 3, "ngClass"], [1, "px-8", "py-8", 3, "ngClass"], [1, "flex", "items-start", "justify-between", "mb-6"], [1, "text-2xl", "font-bold", "mb-2", 3, "ngClass"], ["type", "button", 1, "px-4", "py-2", "rounded-lg", "font-medium", "text-sm", "transition-all", "duration-200", "hover:scale-105", "flex", "items-center", "gap-2", "cursor-pointer", 3, "click", "ngClass"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-4", "h-4"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"], [1, "space-y-4"], [1, "block", "text-sm", "font-medium", "mb-1", 3, "ngClass"], [1, "text-base", 3, "ngClass"], ["target", "_blank", "rel", "noopener noreferrer", 1, "text-base", "hover:underline", 3, "href", "ngClass"], [1, "mb-6"], [1, "space-y-6", 3, "formGroup"], [1, "block", "text-sm", "font-semibold", "mb-2", 3, "ngClass"], [1, "text-red-500"], ["type", "text", "formControlName", "shopName", "placeholder", "Enter your shop name", 1, "w-full", "px-4", "py-3", "rounded-lg", "border-2", "transition-all", "duration-200", "focus:outline-none", "focus:ring-2", 3, "ngClass"], [1, "mt-1", "text-sm", 3, "ngClass"], [1, "flex", "items-center"], [1, "px-4", "py-3", "rounded-l-lg", "border-2", "border-r-0", "text-sm", "font-medium", 3, "ngClass"], ["type", "text", "formControlName", "shopUrl", "placeholder", "yourshop.com", 1, "flex-1", "px-4", "py-3", "rounded-r-lg", "border-2", "transition-all", "duration-200", "focus:outline-none", "focus:ring-2", 3, "ngClass"], [1, "block", "text-sm", "font-semibold", "mb-3", 3, "ngClass"], [1, "grid", "grid-cols-1", "sm:grid-cols-2", "gap-4"], [1, "cursor-pointer", 3, "ngClass"], ["type", "radio", "formControlName", "shopPlatform", 1, "sr-only", 3, "value"], [1, "flex", "items-center", "gap-3", "p-4", "rounded-lg", "border-2", "transition-all", "duration-200"], [1, "w-5", "h-5", "rounded-full", "border-2", "flex", "items-center", "justify-center", "flex-shrink-0", 3, "ngClass"], [1, "w-3", "h-3", "rounded-full", "bg-current"], [1, "flex-1"], [1, "font-semibold", 3, "ngClass"], ["type", "text", "formControlName", "companyName", "placeholder", "Enter company name", 1, "w-full", "px-4", "py-3", "rounded-lg", "border-2", "transition-all", "duration-200", "focus:outline-none", "focus:ring-2", 3, "ngClass", "readonly"], [1, "mt-2"], [1, "flex", "items-center", "gap-2", "cursor-pointer"], ["type", "checkbox", 1, "w-4", "h-4", "rounded", "border-2", "transition-all", "duration-200", 3, "change", "checked", "ngClass"], [1, "text-sm", 3, "ngClass"], ["type", "text", "formControlName", "otherPlatformName", "placeholder", "Enter platform name (e.g., WooCommerce, Magento)", 1, "w-full", "px-4", "py-3", "rounded-lg", "border-2", "transition-all", "duration-200", "focus:outline-none", "focus:ring-2", 3, "ngClass"], [1, "text-base", "font-bold", "mb-3", "flex", "items-center", "gap-2", 3, "ngClass"], [1, "w-2", "h-2", "rounded-full", "bg-emerald-500"], [1, "space-y-3"], [1, "p-4", "rounded-lg", "border-l-4", 3, "ngClass"], [1, "flex", "items-start", "justify-between", "mb-2"], [1, "font-semibold", "text-sm", 3, "ngClass"], [1, "px-2", "py-0.5", "rounded", "text-xs", "font-semibold", "whitespace-nowrap", 3, "ngClass"], [1, "flex", "items-center", "gap-2", "mt-2"], [1, "text-xs", "font-medium", 3, "ngClass"], [1, "flex", "flex-wrap", "gap-1.5"], [1, "px-2", "py-0.5", "rounded", "text-xs", 3, "ngClass"], [1, "w-2", "h-2", "rounded-full", "bg-blue-500"], [1, "grid", "grid-cols-1", "sm:grid-cols-2", "gap-3"], [1, "p-3", "rounded-lg", "border-l-4", 3, "ngClass"], [1, "w-2", "h-2", "rounded-full", "bg-slate-400"], [1, "grid", "grid-cols-2", "sm:grid-cols-3", "gap-2"], [1, "p-2", "rounded", "text-center", 3, "ngClass"], [1, "flex", "items-start", "justify-between"], [1, "px-4", "py-2", "rounded-lg", "text-sm", "font-semibold", "whitespace-nowrap", 3, "ngClass"], [3, "statusChange", "toolsClick", "focusAreaDomain", "selectedStatus", "selectedTools", "viewMode", "title", "description"], [1, "my-4", 3, "ngClass"], [1, "max-w-3xl", "mx-auto", "px-4", "sm:px-6", "lg:px-8", "py-4"], [1, "flex", "items-center", "gap-3"], ["type", "button", 1, "px-6", "py-4", "rounded-xl", "font-bold", "text-base", "transition-all", "duration-200", "flex", "items-center", "justify-center", "gap-2", "cursor-pointer", "hover:scale-105", 3, "ngClass"], ["type", "button", 1, "flex-1", "px-6", "py-4", "rounded-xl", "font-bold", "text-lg", "transition-all", "duration-200", "flex", "items-center", "justify-center", "gap-3", "shadow-lg", 3, "click", "disabled", "ngClass"], ["type", "button", 1, "px-6", "py-4", "rounded-xl", "font-bold", "text-base", "transition-all", "duration-200", "flex", "items-center", "justify-center", "gap-2", "cursor-pointer", "hover:scale-105", 3, "click", "ngClass"], ["fill", "none", "viewBox", "0 0 24 24", 1, "w-6", "h-6", "animate-spin"], ["cx", "12", "cy", "12", "r", "10", "stroke", "currentColor", "stroke-width", "4", 1, "opacity-25"], ["fill", "currentColor", "d", "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z", 1, "opacity-75"], ["fill", "none", "stroke", "currentColor", "viewBox", "0 0 24 24", 1, "w-6", "h-6"], ["stroke-linecap", "round", "stroke-linejoin", "round", "stroke-width", "2", "d", "M13 7l5 5m0 0l-5 5m5-5H6"]], template: function SymphiqCreateAccountDashboardComponent_Template(rf, ctx) { if (rf & 1) {
53458
53444
  i0.ɵɵelementStart(0, "div", 1)(1, "div");
53459
53445
  i0.ɵɵelement(2, "div", 2);
53460
53446
  i0.ɵɵelementEnd();
@@ -53480,7 +53466,7 @@ class SymphiqCreateAccountDashboardComponent {
53480
53466
  i0.ɵɵelementStart(27, "symphiq-focus-area-tools-modal", 16);
53481
53467
  i0.ɵɵlistener("close", function SymphiqCreateAccountDashboardComponent_Template_symphiq_focus_area_tools_modal_close_27_listener() { return ctx.onToolsModalClose(); })("save", function SymphiqCreateAccountDashboardComponent_Template_symphiq_focus_area_tools_modal_save_27_listener($event) { return ctx.onToolsModalSave($event); });
53482
53468
  i0.ɵɵelementEnd();
53483
- i0.ɵɵconditionalCreate(28, SymphiqCreateAccountDashboardComponent_Conditional_28_Template, 8, 14, "div", 17);
53469
+ i0.ɵɵconditionalCreate(28, SymphiqCreateAccountDashboardComponent_Conditional_28_Template, 7, 13, "div", 17);
53484
53470
  i0.ɵɵelementEnd()();
53485
53471
  } if (rf & 2) {
53486
53472
  i0.ɵɵproperty("ngClass", ctx.getContainerClasses());
@@ -53514,7 +53500,7 @@ class SymphiqCreateAccountDashboardComponent {
53514
53500
  i0.ɵɵadvance();
53515
53501
  i0.ɵɵconditional(!ctx.accountData() || ctx.editMode() ? 24 : -1);
53516
53502
  i0.ɵɵadvance();
53517
- i0.ɵɵconditional(ctx.accountData() && ctx.accountData().focusAreaDetails && !ctx.focusAreasEditMode() ? 25 : -1);
53503
+ i0.ɵɵconditional(ctx.accountData() && ctx.accountData().focusAreaDetails && !ctx.focusAreasEditMode() && !ctx.editMode() ? 25 : -1);
53518
53504
  i0.ɵɵadvance();
53519
53505
  i0.ɵɵconditional(!ctx.accountData() || ctx.focusAreasEditMode() ? 26 : -1);
53520
53506
  i0.ɵɵadvance();
@@ -53525,536 +53511,530 @@ class SymphiqCreateAccountDashboardComponent {
53525
53511
  }
53526
53512
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SymphiqCreateAccountDashboardComponent, [{
53527
53513
  type: Component,
53528
- args: [{ selector: 'symphiq-create-account-dashboard', standalone: true, imports: [CommonModule, ReactiveFormsModule, JourneyProgressIndicatorComponent, FocusAreaQuestionComponent, FocusAreaToolsModalComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: `
53529
- <div [ngClass]="getContainerClasses()">
53530
- <!-- Scroll Progress Bar -->
53531
- <div [class]="embedded() ? 'sticky top-0 left-0 right-0 h-1 z-[60] bg-slate-200/30' : 'fixed top-0 left-0 right-0 h-1 z-[60] bg-slate-200/30'">
53532
- <div
53533
- [style.width.%]="scrollProgress()"
53534
- [ngClass]="isLightMode() ? 'bg-gradient-to-r from-blue-500 to-cyan-500' : 'bg-gradient-to-r from-blue-400 to-cyan-400'"
53535
- class="h-full transition-all duration-200 ease-out">
53536
- </div>
53537
- </div>
53538
-
53539
- <div class="animated-bubbles" [class.light-mode]="isLightMode()" style="position: fixed; top: 0; left: 0; right: 0; bottom: 0; width: 100vw; height: 100vh; z-index: 1; pointer-events: none;"></div>
53540
-
53541
- <div class="relative z-[51]">
53542
- <header [ngClass]="getHeaderClasses()" class="sticky top-0 z-50">
53543
- <!-- Expanded Header -->
53544
- <div
53545
- class="transition-all duration-300 ease-in-out overflow-hidden"
53546
- [class.max-h-0]="headerScrollService.isScrolled()"
53547
- [class.opacity-0]="headerScrollService.isScrolled()"
53548
- [class.max-h-96]="!headerScrollService.isScrolled()"
53549
- [class.opacity-100]="!headerScrollService.isScrolled()">
53550
- <div
53551
- class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8"
53552
- [class.pointer-events-none]="headerScrollService.isScrolled()"
53553
- [class.pointer-events-auto]="!headerScrollService.isScrolled()">
53554
- <div class="flex items-center justify-between">
53555
- <div>
53556
- <h1 [ngClass]="getMainTitleClasses()">
53557
- Create Account
53558
- </h1>
53559
- <p [ngClass]="getSubtitleClasses()">
53560
- Tell us about your shop
53561
- </p>
53562
- </div>
53563
- </div>
53564
- </div>
53565
- </div>
53566
-
53567
- <!-- Condensed Header -->
53568
- <div
53569
- class="transition-all duration-300 ease-in-out overflow-hidden"
53570
- [class.max-h-0]="!headerScrollService.isScrolled()"
53571
- [class.opacity-0]="!headerScrollService.isScrolled()"
53572
- [class.max-h-20]="headerScrollService.isScrolled()"
53573
- [class.opacity-100]="headerScrollService.isScrolled()">
53574
- <div
53575
- class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-3"
53576
- [class.pointer-events-none]="!headerScrollService.isScrolled()"
53577
- [class.pointer-events-auto]="headerScrollService.isScrolled()">
53578
- <div class="flex items-center justify-between">
53579
- <div class="flex-1 min-w-0 mr-4">
53580
- <h1 [ngClass]="isLightMode() ? 'text-xl font-bold bg-gradient-to-r from-blue-600 to-cyan-600 bg-clip-text text-transparent truncate' : 'text-xl font-bold bg-gradient-to-r from-blue-400 to-cyan-400 bg-clip-text text-transparent truncate'">
53581
- Create Account
53582
- </h1>
53583
- </div>
53584
- </div>
53585
- </div>
53586
- </div>
53587
- </header>
53588
-
53589
- <!-- Journey Progress Indicator -->
53590
- <symphiq-journey-progress-indicator
53591
- [viewMode]="viewMode()"
53592
- [currentStepId]="JourneyStepIdEnum.CREATE_ACCOUNT"
53593
- [showNextStepAction]="showNextStepAction()"
53594
- [forDemo]="forDemo()"
53595
- [maxAccessibleStepId]="maxAccessibleStepId()"
53596
- (stepClick)="stepClick.emit($event)"
53597
- (nextStepClick)="nextStepClick.emit()"
53598
- />
53599
-
53600
- <main class="relative pb-32">
53601
- <div class="max-w-3xl mx-auto px-4 sm:px-6 lg:px-8 py-8">
53602
- <!-- View Mode: Display Account Data -->
53603
- @if (accountData() && !editMode() && !focusAreasEditMode()) {
53604
- <div [ngClass]="containerClasses()" class="rounded-2xl border shadow-lg overflow-hidden mb-8">
53605
- <div [ngClass]="contentClasses()" class="px-8 py-8">
53606
- <div class="flex items-start justify-between mb-6">
53607
- <div>
53608
- <h2 [ngClass]="sectionTitleClasses()" class="text-2xl font-bold mb-2">
53609
- Shop Details
53610
- </h2>
53611
- <p [ngClass]="sectionDescriptionClasses()">
53612
- Your shop information
53613
- </p>
53614
- </div>
53615
- <button
53616
- type="button"
53617
- (click)="enableEditMode()"
53618
- [ngClass]="editButtonClasses()"
53619
- class="px-4 py-2 rounded-lg font-medium text-sm transition-all duration-200 hover:scale-105 flex items-center gap-2 cursor-pointer">
53620
- <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
53621
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"/>
53622
- </svg>
53623
- Edit
53624
- </button>
53625
- </div>
53626
-
53627
- <div class="space-y-4">
53628
- <div>
53629
- <label [ngClass]="viewLabelClasses()" class="block text-sm font-medium mb-1">
53630
- Shop Name
53631
- </label>
53632
- <p [ngClass]="viewValueClasses()" class="text-base">
53633
- {{ accountData()!.shopName }}
53634
- </p>
53635
- </div>
53636
-
53637
- <div>
53638
- <label [ngClass]="viewLabelClasses()" class="block text-sm font-medium mb-1">
53639
- Shop URL
53640
- </label>
53641
- <a [href]="accountData()!.shopUrl" target="_blank" rel="noopener noreferrer"
53642
- [ngClass]="viewLinkClasses()"
53643
- class="text-base hover:underline">
53644
- {{ accountData()!.shopUrl }}
53645
- </a>
53646
- </div>
53647
-
53648
- <div>
53649
- <label [ngClass]="viewLabelClasses()" class="block text-sm font-medium mb-1">
53650
- Shop Platform
53651
- </label>
53652
- <p [ngClass]="viewValueClasses()" class="text-base">
53653
- @if (accountData()!.shopPlatform === ShopPlatformEnum.SHOPIFY) {
53654
- Shopify
53655
- } @else {
53656
- {{ accountData()!.otherPlatformName || 'Other' }}
53657
- }
53658
- </p>
53659
- </div>
53660
-
53661
- <div>
53662
- <label [ngClass]="viewLabelClasses()" class="block text-sm font-medium mb-1">
53663
- Company Name
53664
- </label>
53665
- <p [ngClass]="viewValueClasses()" class="text-base">
53666
- {{ accountData()!.companyName }}
53667
- </p>
53668
- </div>
53669
- </div>
53670
- </div>
53671
- </div>
53672
- }
53673
-
53674
- <!-- Edit Mode: Form -->
53675
- @if (!accountData() || editMode()) {
53676
- <div [ngClass]="containerClasses()" class="rounded-2xl border shadow-lg overflow-hidden mb-8">
53677
- <div [ngClass]="contentClasses()" class="px-8 py-8">
53678
- <div class="mb-6">
53679
- <h2 [ngClass]="sectionTitleClasses()" class="text-2xl font-bold mb-2">
53680
- Shop Details
53681
- </h2>
53682
- <p [ngClass]="sectionDescriptionClasses()">
53683
- Enter your shop details to get started with Symphiq
53684
- </p>
53685
- </div>
53686
-
53687
- <form [formGroup]="accountForm" class="space-y-6">
53688
- <!-- Shop Name -->
53689
- <div>
53690
- <label [ngClass]="labelClasses()" class="block text-sm font-semibold mb-2">
53691
- Shop Name <span class="text-red-500">*</span>
53692
- </label>
53693
- <input
53694
- #shopNameInput
53695
- type="text"
53696
- formControlName="shopName"
53697
- [ngClass]="inputClasses('shopName')"
53698
- class="w-full px-4 py-3 rounded-lg border-2 transition-all duration-200 focus:outline-none focus:ring-2"
53699
- placeholder="Enter your shop name"
53700
- />
53701
- @if (isFieldInvalid('shopName')) {
53702
- <p [ngClass]="errorClasses()" class="mt-1 text-sm">
53703
- Shop name is required
53704
- </p>
53705
- }
53706
- </div>
53707
-
53708
- <!-- Shop URL -->
53709
- <div>
53710
- <label [ngClass]="labelClasses()" class="block text-sm font-semibold mb-2">
53711
- Shop URL <span class="text-red-500">*</span>
53712
- </label>
53713
- <div class="flex items-center">
53714
- <span [ngClass]="urlPrefixClasses()" class="px-4 py-3 rounded-l-lg border-2 border-r-0 text-sm font-medium">
53715
- https://
53716
- </span>
53717
- <input
53718
- type="text"
53719
- formControlName="shopUrl"
53720
- [ngClass]="urlInputClasses('shopUrl')"
53721
- class="flex-1 px-4 py-3 rounded-r-lg border-2 transition-all duration-200 focus:outline-none focus:ring-2"
53722
- placeholder="yourshop.com"
53723
- />
53724
- </div>
53725
- @if (isFieldInvalid('shopUrl')) {
53726
- <p [ngClass]="errorClasses()" class="mt-1 text-sm">
53727
- Shop URL is required
53728
- </p>
53729
- }
53730
- </div>
53731
-
53732
- <!-- Shop Platform -->
53733
- <div>
53734
- <label [ngClass]="labelClasses()" class="block text-sm font-semibold mb-3">
53735
- Shop Platform <span class="text-red-500">*</span>
53736
- </label>
53737
- <div class="grid grid-cols-1 sm:grid-cols-2 gap-4">
53738
- <label [ngClass]="radioPlatformClasses(ShopPlatformEnum.SHOPIFY)" class="cursor-pointer">
53739
- <input
53740
- type="radio"
53741
- formControlName="shopPlatform"
53742
- [value]="ShopPlatformEnum.SHOPIFY"
53743
- class="sr-only"
53744
- />
53745
- <div class="flex items-center gap-3 p-4 rounded-lg border-2 transition-all duration-200">
53746
- <div [ngClass]="radioIndicatorClasses(ShopPlatformEnum.SHOPIFY)" class="w-5 h-5 rounded-full border-2 flex items-center justify-center flex-shrink-0">
53747
- @if (accountForm.get('shopPlatform')?.value === ShopPlatformEnum.SHOPIFY) {
53748
- <div class="w-3 h-3 rounded-full bg-current"></div>
53749
- }
53750
- </div>
53751
- <div class="flex-1">
53752
- <div [ngClass]="radioLabelClasses()" class="font-semibold">
53753
- Shopify
53754
- </div>
53755
- </div>
53756
- </div>
53757
- </label>
53758
-
53759
- <label [ngClass]="radioPlatformClasses(ShopPlatformEnum.OTHER)" class="cursor-pointer">
53760
- <input
53761
- type="radio"
53762
- formControlName="shopPlatform"
53763
- [value]="ShopPlatformEnum.OTHER"
53764
- class="sr-only"
53765
- />
53766
- <div class="flex items-center gap-3 p-4 rounded-lg border-2 transition-all duration-200">
53767
- <div [ngClass]="radioIndicatorClasses(ShopPlatformEnum.OTHER)" class="w-5 h-5 rounded-full border-2 flex items-center justify-center flex-shrink-0">
53768
- @if (accountForm.get('shopPlatform')?.value === ShopPlatformEnum.OTHER) {
53769
- <div class="w-3 h-3 rounded-full bg-current"></div>
53770
- }
53771
- </div>
53772
- <div class="flex-1">
53773
- <div [ngClass]="radioLabelClasses()" class="font-semibold">
53774
- Other
53775
- </div>
53776
- </div>
53777
- </div>
53778
- </label>
53779
- </div>
53780
- </div>
53781
-
53782
- <!-- Other Platform Name (Conditional) -->
53783
- @if (accountForm.get('shopPlatform')?.value === ShopPlatformEnum.OTHER) {
53784
- <div>
53785
- <label [ngClass]="labelClasses()" class="block text-sm font-semibold mb-2">
53786
- Platform Name <span class="text-red-500">*</span>
53787
- </label>
53788
- <input
53789
- type="text"
53790
- formControlName="otherPlatformName"
53791
- [ngClass]="inputClasses('otherPlatformName')"
53792
- class="w-full px-4 py-3 rounded-lg border-2 transition-all duration-200 focus:outline-none focus:ring-2"
53793
- placeholder="Enter platform name (e.g., WooCommerce, Magento)"
53794
- />
53795
- @if (isFieldInvalid('otherPlatformName')) {
53796
- <p [ngClass]="errorClasses()" class="mt-1 text-sm">
53797
- Platform name is required
53798
- </p>
53799
- }
53800
- </div>
53801
- }
53802
-
53803
- <!-- Company Name -->
53804
- <div>
53805
- <label [ngClass]="labelClasses()" class="block text-sm font-semibold mb-2">
53806
- Company Name <span class="text-red-500">*</span>
53807
- </label>
53808
- <input
53809
- type="text"
53810
- formControlName="companyName"
53811
- [ngClass]="inputClasses('companyName')"
53812
- [readonly]="sameAsShopName()"
53813
- class="w-full px-4 py-3 rounded-lg border-2 transition-all duration-200 focus:outline-none focus:ring-2"
53814
- [class.cursor-not-allowed]="sameAsShopName()"
53815
- [class.opacity-60]="sameAsShopName()"
53816
- placeholder="Enter company name"
53817
- />
53818
- <div class="mt-2">
53819
- <label class="flex items-center gap-2 cursor-pointer">
53820
- <input
53821
- type="checkbox"
53822
- [checked]="sameAsShopName()"
53823
- (change)="toggleSameAsShopName()"
53824
- [ngClass]="checkboxClasses()"
53825
- class="w-4 h-4 rounded border-2 transition-all duration-200"
53826
- />
53827
- <span [ngClass]="checkboxLabelClasses()" class="text-sm">
53828
- Same as Shop Name
53829
- </span>
53830
- </label>
53831
- </div>
53832
- @if (isFieldInvalid('companyName')) {
53833
- <p [ngClass]="errorClasses()" class="mt-1 text-sm">
53834
- Company name is required
53835
- </p>
53836
- }
53837
- </div>
53838
- </form>
53839
- </div>
53840
- </div>
53841
- }
53842
-
53843
- <!-- Focus Areas Card - View Mode -->
53844
- @if (accountData() && accountData()!.focusAreaDetails && !focusAreasEditMode()) {
53845
- <div [ngClass]="containerClasses()" class="rounded-2xl border shadow-lg overflow-hidden">
53846
- <div [ngClass]="contentClasses()" class="px-8 py-8">
53847
- <div class="flex items-start justify-between mb-6">
53848
- <div>
53849
- <h2 [ngClass]="sectionTitleClasses()" class="text-2xl font-bold mb-2">
53850
- Focus Areas
53851
- </h2>
53852
- <p [ngClass]="sectionDescriptionClasses()">
53853
- Your marketing and operational focus areas
53854
- </p>
53855
- </div>
53856
- <button
53857
- type="button"
53858
- (click)="enableFocusAreasEditMode()"
53859
- [ngClass]="editButtonClasses()"
53860
- class="px-4 py-2 rounded-lg font-medium text-sm transition-all duration-200 hover:scale-105 flex items-center gap-2 cursor-pointer">
53861
- <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
53862
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"/>
53863
- </svg>
53864
- Edit
53865
- </button>
53866
- </div>
53867
-
53868
- <!-- Grouped by Status -->
53869
- @if (engagedFocusAreas().length > 0) {
53870
- <div class="mb-6">
53871
- <h3 [ngClass]="groupTitleClasses('engaged')" class="text-base font-bold mb-3 flex items-center gap-2">
53872
- <span class="w-2 h-2 rounded-full bg-emerald-500"></span>
53873
- Engaged In ({{ engagedFocusAreas().length }})
53874
- </h3>
53875
- <div class="space-y-3">
53876
- @for (focusArea of engagedFocusAreas(); track focusArea.focusAreaDomain) {
53877
- <div [ngClass]="focusAreaViewCardClasses('engaged')" class="p-4 rounded-lg border-l-4">
53878
- <div class="flex items-start justify-between mb-2">
53879
- <h4 [ngClass]="focusAreaViewTitleClasses()" class="font-semibold text-sm">
53880
- {{ getFocusAreaTitle(focusArea.focusAreaDomain!) }}
53881
- </h4>
53882
- <span [ngClass]="statusBadgeClasses('engaged')" class="px-2 py-0.5 rounded text-xs font-semibold whitespace-nowrap">
53883
- Engaged
53884
- </span>
53885
- </div>
53886
- @if (focusArea.tools && focusArea.tools.length > 0) {
53887
- <div class="flex items-center gap-2 mt-2">
53888
- <span [ngClass]="toolsLabelViewClasses()" class="text-xs font-medium">Tools:</span>
53889
- <div class="flex flex-wrap gap-1.5">
53890
- @for (tool of focusArea.tools; track tool) {
53891
- <span [ngClass]="toolChipViewClasses()" class="px-2 py-0.5 rounded text-xs">
53892
- {{ tool }}
53893
- </span>
53894
- }
53895
- </div>
53896
- </div>
53897
- }
53898
- </div>
53899
- }
53900
- </div>
53901
- </div>
53902
- }
53903
-
53904
- @if (interestedFocusAreas().length > 0) {
53905
- <div class="mb-6">
53906
- <h3 [ngClass]="groupTitleClasses('interested')" class="text-base font-bold mb-3 flex items-center gap-2">
53907
- <span class="w-2 h-2 rounded-full bg-blue-500"></span>
53908
- Interested In ({{ interestedFocusAreas().length }})
53909
- </h3>
53910
- <div class="grid grid-cols-1 sm:grid-cols-2 gap-3">
53911
- @for (focusArea of interestedFocusAreas(); track focusArea.focusAreaDomain) {
53912
- <div [ngClass]="focusAreaViewCardClasses('interested')" class="p-3 rounded-lg border-l-4">
53913
- <h4 [ngClass]="focusAreaViewTitleClasses()" class="font-semibold text-sm">
53914
- {{ getFocusAreaTitle(focusArea.focusAreaDomain!) }}
53915
- </h4>
53916
- </div>
53917
- }
53918
- </div>
53919
- </div>
53920
- }
53921
-
53922
- @if (notInterestedFocusAreas().length > 0) {
53923
- <div>
53924
- <h3 [ngClass]="groupTitleClasses('not-interested')" class="text-base font-bold mb-3 flex items-center gap-2">
53925
- <span class="w-2 h-2 rounded-full bg-slate-400"></span>
53926
- Not Interested ({{ notInterestedFocusAreas().length }})
53927
- </h3>
53928
- <div class="grid grid-cols-2 sm:grid-cols-3 gap-2">
53929
- @for (focusArea of notInterestedFocusAreas(); track focusArea.focusAreaDomain) {
53930
- <div [ngClass]="focusAreaViewCardClasses('not-interested')" class="p-2 rounded text-center">
53931
- <span [ngClass]="focusAreaViewTitleSmallClasses()" class="text-xs font-medium">
53932
- {{ getFocusAreaTitle(focusArea.focusAreaDomain!) }}
53933
- </span>
53934
- </div>
53935
- }
53936
- </div>
53937
- </div>
53938
- }
53939
- </div>
53940
- </div>
53941
- }
53942
-
53943
- <!-- Focus Areas Card - Edit Mode -->
53944
- @if (!accountData() || focusAreasEditMode()) {
53945
- <div [ngClass]="containerClasses()" class="rounded-2xl border shadow-lg overflow-hidden">
53946
- <div [ngClass]="contentClasses()" class="px-8 py-8">
53947
- <div class="mb-6">
53948
- <div class="flex items-start justify-between">
53949
- <div>
53950
- <h2 [ngClass]="sectionTitleClasses()" class="text-2xl font-bold mb-2">
53951
- Focus Areas
53952
- </h2>
53953
- <p [ngClass]="sectionDescriptionClasses()">
53954
- Tell us about your marketing and operational focus areas
53955
- </p>
53956
- </div>
53957
- <div [ngClass]="progressBadgeClasses()" class="px-4 py-2 rounded-lg text-sm font-semibold whitespace-nowrap">
53958
- {{ focusAreasAnswered() }} of {{ totalFocusAreas() }} answered
53959
- </div>
53960
- </div>
53961
- </div>
53962
-
53963
- <div class="space-y-4">
53964
- @for (domain of allFocusAreaDomains(); track domain; let i = $index) {
53965
- <symphiq-focus-area-question
53966
- [focusAreaDomain]="domain"
53967
- [selectedStatus]="getFocusAreaStatus(domain)"
53968
- [selectedTools]="getFocusAreaTools(domain)"
53969
- [viewMode]="viewMode()"
53970
- [title]="getFocusAreaTitle(domain)"
53971
- [description]="getFocusAreaDescription(domain)"
53972
- (statusChange)="onFocusAreaStatusChange(domain, $event)"
53973
- (toolsClick)="onFocusAreaToolsClick(domain)"
53974
- />
53975
- @if (i < allFocusAreaDomains().length - 1) {
53976
- <div [ngClass]="dividerClasses()" class="my-4"></div>
53977
- }
53978
- }
53979
- </div>
53980
- </div>
53981
- </div>
53982
- }
53983
- </div>
53984
- </main>
53985
-
53986
- <!-- Tools Selection Modal -->
53987
- <symphiq-focus-area-tools-modal
53988
- [isOpen]="toolsModalOpen()"
53989
- [focusAreaDomain]="currentEditingFocusArea()!"
53990
- [focusAreaTitle]="currentEditingFocusAreaTitle()"
53991
- [selectedTools]="currentEditingTools()"
53992
- [viewMode]="viewMode()"
53993
- (close)="onToolsModalClose()"
53994
- (save)="onToolsModalSave($event)"
53995
- />
53996
-
53997
- <!-- Sticky Continue Button -->
53998
- @if (!accountData() || editMode() || focusAreasEditMode()) {
53999
- <div [ngClass]="stickyButtonContainerClasses()" class="fixed bottom-0 left-0 right-0 z-50 border-t backdrop-blur-sm">
54000
- <div class="max-w-3xl mx-auto px-4 sm:px-6 lg:px-8 py-4">
54001
- @if (!allFocusAreasAnswered() && !accountData()) {
54002
- <div [ngClass]="validationMessageClasses()" class="mb-3 p-3 rounded-lg text-sm">
54003
- Please answer all {{ totalFocusAreas() }} focus area questions before creating your account.
54004
- {{ focusAreasAnswered() }} of {{ totalFocusAreas() }} completed.
54005
- </div>
54006
- }
54007
- <div class="flex items-center gap-3">
54008
- @if ((accountData() && editMode()) || (accountData() && focusAreasEditMode())) {
54009
- <button
54010
- type="button"
54011
- (click)="focusAreasEditMode() ? cancelFocusAreasEditMode() : cancelEditMode()"
54012
- [ngClass]="cancelButtonClasses()"
54013
- class="px-6 py-4 rounded-xl font-bold text-base transition-all duration-200 flex items-center justify-center gap-2 cursor-pointer hover:scale-105">
54014
- Cancel
54015
- </button>
54016
- }
54017
- <button
54018
- type="button"
54019
- (click)="focusAreasEditMode() ? handleSaveFocusAreas() : handleContinue()"
54020
- [disabled]="!isButtonEnabled()"
54021
- [ngClass]="continueButtonClasses()"
54022
- class="flex-1 px-6 py-4 rounded-xl font-bold text-lg transition-all duration-200 flex items-center justify-center gap-3 shadow-lg"
54023
- [class.cursor-pointer]="isButtonEnabled()"
54024
- [class.cursor-not-allowed]="!isButtonEnabled()"
54025
- [class.opacity-50]="!isButtonEnabled()"
54026
- [class.hover:scale-105]="isButtonEnabled()">
54027
- @if (isLoading()) {
54028
- <svg class="w-6 h-6 animate-spin" fill="none" viewBox="0 0 24 24">
54029
- <circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle>
54030
- <path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path>
54031
- </svg>
54032
- @if (focusAreasEditMode()) {
54033
- Saving Focus Areas...
54034
- } @else if (accountData() && editMode()) {
54035
- Updating Account...
54036
- } @else {
54037
- Creating Account...
54038
- }
54039
- } @else {
54040
- @if (focusAreasEditMode()) {
54041
- Save Focus Areas
54042
- } @else if (accountData() && editMode()) {
54043
- Save Changes
54044
- } @else {
54045
- Create Account
54046
- }
54047
- <svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24">
54048
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 7l5 5m0 0l-5 5m5-5H6"/>
54049
- </svg>
54050
- }
54051
- </button>
54052
- </div>
54053
- </div>
54054
- </div>
54055
- }
54056
- </div>
54057
- </div>
53514
+ args: [{ selector: 'symphiq-create-account-dashboard', standalone: true, imports: [CommonModule, ReactiveFormsModule, JourneyProgressIndicatorComponent, FocusAreaQuestionComponent, FocusAreaToolsModalComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: `
53515
+ <div [ngClass]="getContainerClasses()">
53516
+ <!-- Scroll Progress Bar -->
53517
+ <div [class]="embedded() ? 'sticky top-0 left-0 right-0 h-1 z-[60] bg-slate-200/30' : 'fixed top-0 left-0 right-0 h-1 z-[60] bg-slate-200/30'">
53518
+ <div
53519
+ [style.width.%]="scrollProgress()"
53520
+ [ngClass]="isLightMode() ? 'bg-gradient-to-r from-blue-500 to-cyan-500' : 'bg-gradient-to-r from-blue-400 to-cyan-400'"
53521
+ class="h-full transition-all duration-200 ease-out">
53522
+ </div>
53523
+ </div>
53524
+
53525
+ <div class="animated-bubbles" [class.light-mode]="isLightMode()" style="position: fixed; top: 0; left: 0; right: 0; bottom: 0; width: 100vw; height: 100vh; z-index: 1; pointer-events: none;"></div>
53526
+
53527
+ <div class="relative z-[51]">
53528
+ <header [ngClass]="getHeaderClasses()" class="sticky top-0 z-50">
53529
+ <!-- Expanded Header -->
53530
+ <div
53531
+ class="transition-all duration-300 ease-in-out overflow-hidden"
53532
+ [class.max-h-0]="headerScrollService.isScrolled()"
53533
+ [class.opacity-0]="headerScrollService.isScrolled()"
53534
+ [class.max-h-96]="!headerScrollService.isScrolled()"
53535
+ [class.opacity-100]="!headerScrollService.isScrolled()">
53536
+ <div
53537
+ class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-8"
53538
+ [class.pointer-events-none]="headerScrollService.isScrolled()"
53539
+ [class.pointer-events-auto]="!headerScrollService.isScrolled()">
53540
+ <div class="flex items-center justify-between">
53541
+ <div>
53542
+ <h1 [ngClass]="getMainTitleClasses()">
53543
+ Create Account
53544
+ </h1>
53545
+ <p [ngClass]="getSubtitleClasses()">
53546
+ Tell us about your shop
53547
+ </p>
53548
+ </div>
53549
+ </div>
53550
+ </div>
53551
+ </div>
53552
+
53553
+ <!-- Condensed Header -->
53554
+ <div
53555
+ class="transition-all duration-300 ease-in-out overflow-hidden"
53556
+ [class.max-h-0]="!headerScrollService.isScrolled()"
53557
+ [class.opacity-0]="!headerScrollService.isScrolled()"
53558
+ [class.max-h-20]="headerScrollService.isScrolled()"
53559
+ [class.opacity-100]="headerScrollService.isScrolled()">
53560
+ <div
53561
+ class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-3"
53562
+ [class.pointer-events-none]="!headerScrollService.isScrolled()"
53563
+ [class.pointer-events-auto]="headerScrollService.isScrolled()">
53564
+ <div class="flex items-center justify-between">
53565
+ <div class="flex-1 min-w-0 mr-4">
53566
+ <h1 [ngClass]="isLightMode() ? 'text-xl font-bold bg-gradient-to-r from-blue-600 to-cyan-600 bg-clip-text text-transparent truncate' : 'text-xl font-bold bg-gradient-to-r from-blue-400 to-cyan-400 bg-clip-text text-transparent truncate'">
53567
+ Create Account
53568
+ </h1>
53569
+ </div>
53570
+ </div>
53571
+ </div>
53572
+ </div>
53573
+ </header>
53574
+
53575
+ <!-- Journey Progress Indicator -->
53576
+ <symphiq-journey-progress-indicator
53577
+ [viewMode]="viewMode()"
53578
+ [currentStepId]="JourneyStepIdEnum.CREATE_ACCOUNT"
53579
+ [showNextStepAction]="showNextStepAction()"
53580
+ [forDemo]="forDemo()"
53581
+ [maxAccessibleStepId]="maxAccessibleStepId()"
53582
+ (stepClick)="stepClick.emit($event)"
53583
+ (nextStepClick)="nextStepClick.emit()"
53584
+ />
53585
+
53586
+ <main class="relative pb-32">
53587
+ <div class="max-w-3xl mx-auto px-4 sm:px-6 lg:px-8 py-8">
53588
+ <!-- View Mode: Display Account Data -->
53589
+ @if (accountData() && !editMode() && !focusAreasEditMode()) {
53590
+ <div [ngClass]="containerClasses()" class="rounded-2xl border shadow-lg overflow-hidden mb-8">
53591
+ <div [ngClass]="contentClasses()" class="px-8 py-8">
53592
+ <div class="flex items-start justify-between mb-6">
53593
+ <div>
53594
+ <h2 [ngClass]="sectionTitleClasses()" class="text-2xl font-bold mb-2">
53595
+ Shop Details
53596
+ </h2>
53597
+ <p [ngClass]="sectionDescriptionClasses()">
53598
+ Your shop information
53599
+ </p>
53600
+ </div>
53601
+ <button
53602
+ type="button"
53603
+ (click)="enableEditMode()"
53604
+ [ngClass]="editButtonClasses()"
53605
+ class="px-4 py-2 rounded-lg font-medium text-sm transition-all duration-200 hover:scale-105 flex items-center gap-2 cursor-pointer">
53606
+ <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
53607
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"/>
53608
+ </svg>
53609
+ Edit
53610
+ </button>
53611
+ </div>
53612
+
53613
+ <div class="space-y-4">
53614
+ <div>
53615
+ <label [ngClass]="viewLabelClasses()" class="block text-sm font-medium mb-1">
53616
+ Shop Name
53617
+ </label>
53618
+ <p [ngClass]="viewValueClasses()" class="text-base">
53619
+ {{ accountData()!.shopName }}
53620
+ </p>
53621
+ </div>
53622
+
53623
+ <div>
53624
+ <label [ngClass]="viewLabelClasses()" class="block text-sm font-medium mb-1">
53625
+ Shop URL
53626
+ </label>
53627
+ <a [href]="accountData()!.shopUrl" target="_blank" rel="noopener noreferrer"
53628
+ [ngClass]="viewLinkClasses()"
53629
+ class="text-base hover:underline">
53630
+ {{ accountData()!.shopUrl }}
53631
+ </a>
53632
+ </div>
53633
+
53634
+ <div>
53635
+ <label [ngClass]="viewLabelClasses()" class="block text-sm font-medium mb-1">
53636
+ Shop Platform
53637
+ </label>
53638
+ <p [ngClass]="viewValueClasses()" class="text-base">
53639
+ @if (accountData()!.shopPlatform === ShopPlatformEnum.SHOPIFY) {
53640
+ Shopify
53641
+ } @else {
53642
+ {{ accountData()!.otherPlatformName || 'Other' }}
53643
+ }
53644
+ </p>
53645
+ </div>
53646
+
53647
+ <div>
53648
+ <label [ngClass]="viewLabelClasses()" class="block text-sm font-medium mb-1">
53649
+ Company Name
53650
+ </label>
53651
+ <p [ngClass]="viewValueClasses()" class="text-base">
53652
+ {{ accountData()!.companyName }}
53653
+ </p>
53654
+ </div>
53655
+ </div>
53656
+ </div>
53657
+ </div>
53658
+ }
53659
+
53660
+ <!-- Edit Mode: Form -->
53661
+ @if (!accountData() || editMode()) {
53662
+ <div [ngClass]="containerClasses()" class="rounded-2xl border shadow-lg overflow-hidden mb-8">
53663
+ <div [ngClass]="contentClasses()" class="px-8 py-8">
53664
+ <div class="mb-6">
53665
+ <h2 [ngClass]="sectionTitleClasses()" class="text-2xl font-bold mb-2">
53666
+ Shop Details
53667
+ </h2>
53668
+ <p [ngClass]="sectionDescriptionClasses()">
53669
+ Enter your shop details to get started with Symphiq
53670
+ </p>
53671
+ </div>
53672
+
53673
+ <form [formGroup]="accountForm" class="space-y-6">
53674
+ <!-- Shop Name -->
53675
+ <div>
53676
+ <label [ngClass]="labelClasses()" class="block text-sm font-semibold mb-2">
53677
+ Shop Name <span class="text-red-500">*</span>
53678
+ </label>
53679
+ <input
53680
+ #shopNameInput
53681
+ type="text"
53682
+ formControlName="shopName"
53683
+ [ngClass]="inputClasses('shopName')"
53684
+ class="w-full px-4 py-3 rounded-lg border-2 transition-all duration-200 focus:outline-none focus:ring-2"
53685
+ placeholder="Enter your shop name"
53686
+ />
53687
+ @if (isFieldInvalid('shopName')) {
53688
+ <p [ngClass]="errorClasses()" class="mt-1 text-sm">
53689
+ Shop name is required
53690
+ </p>
53691
+ }
53692
+ </div>
53693
+
53694
+ <!-- Shop URL -->
53695
+ <div>
53696
+ <label [ngClass]="labelClasses()" class="block text-sm font-semibold mb-2">
53697
+ Shop URL <span class="text-red-500">*</span>
53698
+ </label>
53699
+ <div class="flex items-center">
53700
+ <span [ngClass]="urlPrefixClasses()" class="px-4 py-3 rounded-l-lg border-2 border-r-0 text-sm font-medium">
53701
+ https://
53702
+ </span>
53703
+ <input
53704
+ type="text"
53705
+ formControlName="shopUrl"
53706
+ [ngClass]="urlInputClasses('shopUrl')"
53707
+ class="flex-1 px-4 py-3 rounded-r-lg border-2 transition-all duration-200 focus:outline-none focus:ring-2"
53708
+ placeholder="yourshop.com"
53709
+ />
53710
+ </div>
53711
+ @if (isFieldInvalid('shopUrl')) {
53712
+ <p [ngClass]="errorClasses()" class="mt-1 text-sm">
53713
+ Shop URL is required
53714
+ </p>
53715
+ }
53716
+ </div>
53717
+
53718
+ <!-- Shop Platform -->
53719
+ <div>
53720
+ <label [ngClass]="labelClasses()" class="block text-sm font-semibold mb-3">
53721
+ Shop Platform <span class="text-red-500">*</span>
53722
+ </label>
53723
+ <div class="grid grid-cols-1 sm:grid-cols-2 gap-4">
53724
+ <label [ngClass]="radioPlatformClasses(ShopPlatformEnum.SHOPIFY)" class="cursor-pointer">
53725
+ <input
53726
+ type="radio"
53727
+ formControlName="shopPlatform"
53728
+ [value]="ShopPlatformEnum.SHOPIFY"
53729
+ class="sr-only"
53730
+ />
53731
+ <div class="flex items-center gap-3 p-4 rounded-lg border-2 transition-all duration-200">
53732
+ <div [ngClass]="radioIndicatorClasses(ShopPlatformEnum.SHOPIFY)" class="w-5 h-5 rounded-full border-2 flex items-center justify-center flex-shrink-0">
53733
+ @if (accountForm.get('shopPlatform')?.value === ShopPlatformEnum.SHOPIFY) {
53734
+ <div class="w-3 h-3 rounded-full bg-current"></div>
53735
+ }
53736
+ </div>
53737
+ <div class="flex-1">
53738
+ <div [ngClass]="radioLabelClasses()" class="font-semibold">
53739
+ Shopify
53740
+ </div>
53741
+ </div>
53742
+ </div>
53743
+ </label>
53744
+
53745
+ <label [ngClass]="radioPlatformClasses(ShopPlatformEnum.OTHER)" class="cursor-pointer">
53746
+ <input
53747
+ type="radio"
53748
+ formControlName="shopPlatform"
53749
+ [value]="ShopPlatformEnum.OTHER"
53750
+ class="sr-only"
53751
+ />
53752
+ <div class="flex items-center gap-3 p-4 rounded-lg border-2 transition-all duration-200">
53753
+ <div [ngClass]="radioIndicatorClasses(ShopPlatformEnum.OTHER)" class="w-5 h-5 rounded-full border-2 flex items-center justify-center flex-shrink-0">
53754
+ @if (accountForm.get('shopPlatform')?.value === ShopPlatformEnum.OTHER) {
53755
+ <div class="w-3 h-3 rounded-full bg-current"></div>
53756
+ }
53757
+ </div>
53758
+ <div class="flex-1">
53759
+ <div [ngClass]="radioLabelClasses()" class="font-semibold">
53760
+ Other
53761
+ </div>
53762
+ </div>
53763
+ </div>
53764
+ </label>
53765
+ </div>
53766
+ </div>
53767
+
53768
+ <!-- Other Platform Name (Conditional) -->
53769
+ @if (accountForm.get('shopPlatform')?.value === ShopPlatformEnum.OTHER) {
53770
+ <div>
53771
+ <label [ngClass]="labelClasses()" class="block text-sm font-semibold mb-2">
53772
+ Platform Name <span class="text-red-500">*</span>
53773
+ </label>
53774
+ <input
53775
+ type="text"
53776
+ formControlName="otherPlatformName"
53777
+ [ngClass]="inputClasses('otherPlatformName')"
53778
+ class="w-full px-4 py-3 rounded-lg border-2 transition-all duration-200 focus:outline-none focus:ring-2"
53779
+ placeholder="Enter platform name (e.g., WooCommerce, Magento)"
53780
+ />
53781
+ @if (isFieldInvalid('otherPlatformName')) {
53782
+ <p [ngClass]="errorClasses()" class="mt-1 text-sm">
53783
+ Platform name is required
53784
+ </p>
53785
+ }
53786
+ </div>
53787
+ }
53788
+
53789
+ <!-- Company Name -->
53790
+ <div>
53791
+ <label [ngClass]="labelClasses()" class="block text-sm font-semibold mb-2">
53792
+ Company Name <span class="text-red-500">*</span>
53793
+ </label>
53794
+ <input
53795
+ type="text"
53796
+ formControlName="companyName"
53797
+ [ngClass]="inputClasses('companyName')"
53798
+ [readonly]="sameAsShopName()"
53799
+ class="w-full px-4 py-3 rounded-lg border-2 transition-all duration-200 focus:outline-none focus:ring-2"
53800
+ [class.cursor-not-allowed]="sameAsShopName()"
53801
+ [class.opacity-60]="sameAsShopName()"
53802
+ placeholder="Enter company name"
53803
+ />
53804
+ <div class="mt-2">
53805
+ <label class="flex items-center gap-2 cursor-pointer">
53806
+ <input
53807
+ type="checkbox"
53808
+ [checked]="sameAsShopName()"
53809
+ (change)="toggleSameAsShopName()"
53810
+ [ngClass]="checkboxClasses()"
53811
+ class="w-4 h-4 rounded border-2 transition-all duration-200"
53812
+ />
53813
+ <span [ngClass]="checkboxLabelClasses()" class="text-sm">
53814
+ Same as Shop Name
53815
+ </span>
53816
+ </label>
53817
+ </div>
53818
+ @if (isFieldInvalid('companyName')) {
53819
+ <p [ngClass]="errorClasses()" class="mt-1 text-sm">
53820
+ Company name is required
53821
+ </p>
53822
+ }
53823
+ </div>
53824
+ </form>
53825
+ </div>
53826
+ </div>
53827
+ }
53828
+
53829
+ <!-- Focus Areas Card - View Mode -->
53830
+ @if (accountData() && accountData()!.focusAreaDetails && !focusAreasEditMode() && !editMode()) {
53831
+ <div [ngClass]="containerClasses()" class="rounded-2xl border shadow-lg overflow-hidden">
53832
+ <div [ngClass]="contentClasses()" class="px-8 py-8">
53833
+ <div class="flex items-start justify-between mb-6">
53834
+ <div>
53835
+ <h2 [ngClass]="sectionTitleClasses()" class="text-2xl font-bold mb-2">
53836
+ Focus Areas
53837
+ </h2>
53838
+ <p [ngClass]="sectionDescriptionClasses()">
53839
+ Your marketing and operational focus areas
53840
+ </p>
53841
+ </div>
53842
+ <button
53843
+ type="button"
53844
+ (click)="enableFocusAreasEditMode()"
53845
+ [ngClass]="editButtonClasses()"
53846
+ class="px-4 py-2 rounded-lg font-medium text-sm transition-all duration-200 hover:scale-105 flex items-center gap-2 cursor-pointer">
53847
+ <svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
53848
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"/>
53849
+ </svg>
53850
+ Edit
53851
+ </button>
53852
+ </div>
53853
+
53854
+ <!-- Grouped by Status -->
53855
+ @if (engagedFocusAreas().length > 0) {
53856
+ <div class="mb-6">
53857
+ <h3 [ngClass]="groupTitleClasses('engaged')" class="text-base font-bold mb-3 flex items-center gap-2">
53858
+ <span class="w-2 h-2 rounded-full bg-emerald-500"></span>
53859
+ Engaged In ({{ engagedFocusAreas().length }})
53860
+ </h3>
53861
+ <div class="space-y-3">
53862
+ @for (focusArea of engagedFocusAreas(); track focusArea.focusAreaDomain) {
53863
+ <div [ngClass]="focusAreaViewCardClasses('engaged')" class="p-4 rounded-lg border-l-4">
53864
+ <div class="flex items-start justify-between mb-2">
53865
+ <h4 [ngClass]="focusAreaViewTitleClasses()" class="font-semibold text-sm">
53866
+ {{ getFocusAreaTitle(focusArea.focusAreaDomain!) }}
53867
+ </h4>
53868
+ <span [ngClass]="statusBadgeClasses('engaged')" class="px-2 py-0.5 rounded text-xs font-semibold whitespace-nowrap">
53869
+ Engaged
53870
+ </span>
53871
+ </div>
53872
+ @if (focusArea.tools && focusArea.tools.length > 0) {
53873
+ <div class="flex items-center gap-2 mt-2">
53874
+ <span [ngClass]="toolsLabelViewClasses()" class="text-xs font-medium">Tools:</span>
53875
+ <div class="flex flex-wrap gap-1.5">
53876
+ @for (tool of focusArea.tools; track tool) {
53877
+ <span [ngClass]="toolChipViewClasses()" class="px-2 py-0.5 rounded text-xs">
53878
+ {{ tool }}
53879
+ </span>
53880
+ }
53881
+ </div>
53882
+ </div>
53883
+ }
53884
+ </div>
53885
+ }
53886
+ </div>
53887
+ </div>
53888
+ }
53889
+
53890
+ @if (interestedFocusAreas().length > 0) {
53891
+ <div class="mb-6">
53892
+ <h3 [ngClass]="groupTitleClasses('interested')" class="text-base font-bold mb-3 flex items-center gap-2">
53893
+ <span class="w-2 h-2 rounded-full bg-blue-500"></span>
53894
+ Interested In ({{ interestedFocusAreas().length }})
53895
+ </h3>
53896
+ <div class="grid grid-cols-1 sm:grid-cols-2 gap-3">
53897
+ @for (focusArea of interestedFocusAreas(); track focusArea.focusAreaDomain) {
53898
+ <div [ngClass]="focusAreaViewCardClasses('interested')" class="p-3 rounded-lg border-l-4">
53899
+ <h4 [ngClass]="focusAreaViewTitleClasses()" class="font-semibold text-sm">
53900
+ {{ getFocusAreaTitle(focusArea.focusAreaDomain!) }}
53901
+ </h4>
53902
+ </div>
53903
+ }
53904
+ </div>
53905
+ </div>
53906
+ }
53907
+
53908
+ @if (notInterestedFocusAreas().length > 0) {
53909
+ <div>
53910
+ <h3 [ngClass]="groupTitleClasses('not-interested')" class="text-base font-bold mb-3 flex items-center gap-2">
53911
+ <span class="w-2 h-2 rounded-full bg-slate-400"></span>
53912
+ Not Interested ({{ notInterestedFocusAreas().length }})
53913
+ </h3>
53914
+ <div class="grid grid-cols-2 sm:grid-cols-3 gap-2">
53915
+ @for (focusArea of notInterestedFocusAreas(); track focusArea.focusAreaDomain) {
53916
+ <div [ngClass]="focusAreaViewCardClasses('not-interested')" class="p-2 rounded text-center">
53917
+ <span [ngClass]="focusAreaViewTitleSmallClasses()" class="text-xs font-medium">
53918
+ {{ getFocusAreaTitle(focusArea.focusAreaDomain!) }}
53919
+ </span>
53920
+ </div>
53921
+ }
53922
+ </div>
53923
+ </div>
53924
+ }
53925
+ </div>
53926
+ </div>
53927
+ }
53928
+
53929
+ <!-- Focus Areas Card - Edit Mode -->
53930
+ @if (!accountData() || focusAreasEditMode()) {
53931
+ <div [ngClass]="containerClasses()" class="rounded-2xl border shadow-lg overflow-hidden">
53932
+ <div [ngClass]="contentClasses()" class="px-8 py-8">
53933
+ <div class="mb-6">
53934
+ <div class="flex items-start justify-between">
53935
+ <div>
53936
+ <h2 [ngClass]="sectionTitleClasses()" class="text-2xl font-bold mb-2">
53937
+ Focus Areas
53938
+ </h2>
53939
+ <p [ngClass]="sectionDescriptionClasses()">
53940
+ Tell us about your marketing and operational focus areas
53941
+ </p>
53942
+ </div>
53943
+ <div [ngClass]="progressBadgeClasses()" class="px-4 py-2 rounded-lg text-sm font-semibold whitespace-nowrap">
53944
+ {{ focusAreasAnswered() }} of {{ totalFocusAreas() }} answered
53945
+ </div>
53946
+ </div>
53947
+ </div>
53948
+
53949
+ <div class="space-y-4">
53950
+ @for (domain of allFocusAreaDomains(); track domain; let i = $index) {
53951
+ <symphiq-focus-area-question
53952
+ [focusAreaDomain]="domain"
53953
+ [selectedStatus]="getFocusAreaStatus(domain)"
53954
+ [selectedTools]="getFocusAreaTools(domain)"
53955
+ [viewMode]="viewMode()"
53956
+ [title]="getFocusAreaTitle(domain)"
53957
+ [description]="getFocusAreaDescription(domain)"
53958
+ (statusChange)="onFocusAreaStatusChange(domain, $event)"
53959
+ (toolsClick)="onFocusAreaToolsClick(domain)"
53960
+ />
53961
+ @if (i < allFocusAreaDomains().length - 1) {
53962
+ <div [ngClass]="dividerClasses()" class="my-4"></div>
53963
+ }
53964
+ }
53965
+ </div>
53966
+ </div>
53967
+ </div>
53968
+ }
53969
+ </div>
53970
+ </main>
53971
+
53972
+ <!-- Tools Selection Modal -->
53973
+ <symphiq-focus-area-tools-modal
53974
+ [isOpen]="toolsModalOpen()"
53975
+ [focusAreaDomain]="currentEditingFocusArea()!"
53976
+ [focusAreaTitle]="currentEditingFocusAreaTitle()"
53977
+ [selectedTools]="currentEditingTools()"
53978
+ [viewMode]="viewMode()"
53979
+ (close)="onToolsModalClose()"
53980
+ (save)="onToolsModalSave($event)"
53981
+ />
53982
+
53983
+ <!-- Sticky Continue Button -->
53984
+ @if (!accountData() || editMode() || focusAreasEditMode()) {
53985
+ <div [ngClass]="stickyButtonContainerClasses()" class="fixed bottom-0 left-0 right-0 z-50 border-t backdrop-blur-sm">
53986
+ <div class="max-w-3xl mx-auto px-4 sm:px-6 lg:px-8 py-4">
53987
+ <div class="flex items-center gap-3">
53988
+ @if ((accountData() && editMode()) || (accountData() && focusAreasEditMode())) {
53989
+ <button
53990
+ type="button"
53991
+ (click)="focusAreasEditMode() ? cancelFocusAreasEditMode() : cancelEditMode()"
53992
+ [ngClass]="cancelButtonClasses()"
53993
+ class="px-6 py-4 rounded-xl font-bold text-base transition-all duration-200 flex items-center justify-center gap-2 cursor-pointer hover:scale-105">
53994
+ Cancel
53995
+ </button>
53996
+ }
53997
+ <button
53998
+ type="button"
53999
+ (click)="focusAreasEditMode() ? handleSaveFocusAreas() : handleContinue()"
54000
+ [disabled]="!isButtonEnabled()"
54001
+ [ngClass]="continueButtonClasses()"
54002
+ class="flex-1 px-6 py-4 rounded-xl font-bold text-lg transition-all duration-200 flex items-center justify-center gap-3 shadow-lg"
54003
+ [class.cursor-pointer]="isButtonEnabled()"
54004
+ [class.cursor-not-allowed]="!isButtonEnabled()"
54005
+ [class.opacity-50]="!isButtonEnabled()"
54006
+ [class.hover:scale-105]="isButtonEnabled()">
54007
+ @if (isLoading()) {
54008
+ <svg class="w-6 h-6 animate-spin" fill="none" viewBox="0 0 24 24">
54009
+ <circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle>
54010
+ <path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path>
54011
+ </svg>
54012
+ @if (focusAreasEditMode()) {
54013
+ Saving Focus Areas...
54014
+ } @else if (accountData() && editMode()) {
54015
+ Updating Account...
54016
+ } @else {
54017
+ Creating Account...
54018
+ }
54019
+ } @else {
54020
+ @if (focusAreasEditMode()) {
54021
+ Save Focus Areas
54022
+ } @else if (accountData() && editMode()) {
54023
+ Save Changes
54024
+ } @else {
54025
+ Create Account
54026
+ }
54027
+ <svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24">
54028
+ <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 7l5 5m0 0l-5 5m5-5H6"/>
54029
+ </svg>
54030
+ }
54031
+ </button>
54032
+ </div>
54033
+ </div>
54034
+ </div>
54035
+ }
54036
+ </div>
54037
+ </div>
54058
54038
  `, styles: [":host{display:block}.animated-bubbles{overflow:hidden}.animated-bubbles:before,.animated-bubbles:after{content:\"\";position:absolute;border-radius:50%;animation:float 20s infinite ease-in-out;opacity:.05}.animated-bubbles:before{width:600px;height:600px;background:radial-gradient(circle,#3b82f6 0%,transparent 70%);top:-300px;left:-300px;animation-delay:-5s}.animated-bubbles:after{width:800px;height:800px;background:radial-gradient(circle,#06b6d4 0%,transparent 70%);bottom:-400px;right:-400px;animation-delay:-10s}.animated-bubbles.light-mode:before,.animated-bubbles.light-mode:after{opacity:.03}@keyframes float{0%,to{transform:translate(0) scale(1)}33%{transform:translate(50px,-50px) scale(1.1)}66%{transform:translate(-30px,30px) scale(.9)}}\n"] }]
54059
54039
  }], () => [], { embedded: [{ type: i0.Input, args: [{ isSignal: true, alias: "embedded", required: false }] }], parentHeaderOffset: [{ type: i0.Input, args: [{ isSignal: true, alias: "parentHeaderOffset", required: false }] }], viewMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "viewMode", required: false }] }], scrollEvent: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollEvent", required: false }] }], scrollElement: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollElement", required: false }] }], accountData: [{ type: i0.Input, args: [{ isSignal: true, alias: "accountData", required: false }] }], forDemo: [{ type: i0.Input, args: [{ isSignal: true, alias: "forDemo", required: false }] }], showNextStepAction: [{ type: i0.Input, args: [{ isSignal: true, alias: "showNextStepAction", required: false }] }], maxAccessibleStepId: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxAccessibleStepId", required: false }] }], onCreateAccount: [{ type: i0.Output, args: ["onCreateAccount"] }], stepClick: [{ type: i0.Output, args: ["stepClick"] }], nextStepClick: [{ type: i0.Output, args: ["nextStepClick"] }], shopNameInput: [{
54060
54040
  type: ViewChild,
@@ -54063,7 +54043,7 @@ class SymphiqCreateAccountDashboardComponent {
54063
54043
  type: HostListener,
54064
54044
  args: ['window:scroll', ['$event']]
54065
54045
  }] }); })();
54066
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SymphiqCreateAccountDashboardComponent, { className: "SymphiqCreateAccountDashboardComponent", filePath: "lib/components/create-account-dashboard/symphiq-create-account-dashboard.component.ts", lineNumber: 629 }); })();
54046
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SymphiqCreateAccountDashboardComponent, { className: "SymphiqCreateAccountDashboardComponent", filePath: "lib/components/create-account-dashboard/symphiq-create-account-dashboard.component.ts", lineNumber: 623 }); })();
54067
54047
 
54068
54048
  class SymphiqConnectGaDashboardComponent {
54069
54049
  constructor() {