PageSourceSearch

https://ship.you/chunk-PWN2I5AQ.js

js ship.you collected 2026-10-09 22:55:12 UTC 16,703 bytes, 1 lines download raw bytes

1import{a as V}from"./chunk-NQRLHYY5.js";import{c as W}from"./chunk-N6FP2GZP.js";import{b as B,c as F,d as L,e as D,f as R,g as j,i as q,j as J,k as U,n as H,o as K}from"./chunk-75IODL35.js";import{e as I,g as A}from"./chunk-7QPKAWFP.js";import{$a as k,Eb as E,Ja as P,La as y,Ma as O,O as _,Pa as x,Qa as f,Ra as C,S as g,Sa as a,T as c,Ta as r,Ua as m,Xb as Y,Za as z,ba as v,bb as d,jb as G,lb as s,mb as S,nb as N,pa as p,qb as h,rb as u,sb as b,xa as T}from"./chunk-GLQBUVV6.js";var w=(o,n)=>n.value;function X(o,n){o&1&&(a(0,"div",9),m(1,"i",11),s(2," Loading onboarding state... "),r())}function Z(o,n){o&1&&m(0,"i",33)}function $(o,n){o&1&&m(0,"i",34)}function ee(o,n){if(o&1){let e=z();a(0,"button",31),k("click",function(){let i=g(e).$implicit,l=d(2);return c(l.toggleGoal(i.value))}),a(1,"span",32),y(2,Z,1,0,"i",33)(3,$,1,0,"i",34),r(),a(4,"span"),s(5),r()()}if(o&2){let e=n.$implicit,t=d(2);G("ship-goal-chip--selected",t.goalIsSelected(e.value)),P("aria-pressed",t.goalIsSelected(e.value)),p(2),O(t.goalIsSelected(e.value)?2:3),p(3),S(e.label)}}function ne(o,n){if(o&1&&(a(0,"option",23),s(1),r()),o&2){let e=n.$implicit;C("value",e.value),p(),S(e.label)}}function ie(o,n){if(o&1&&(a(0,"option",23),s(1),r()),o&2){let e=n.$implicit;C("value",e.value),p(),S(e.label)}}function te(o,n){if(o&1&&(a(0,"option",23),s(1),r()),o&2){let e=n.$implicit;C("value",e.value),p(),S(e.label)}}function ae(o,n){o&1&&(m(0,"i",11),s(1," Preparing workspace... "))}function oe(o,n){o&1&&(s(0," Continue to BuilderStudio "),m(1,"i",35))}function re(o,n){if(o&1){let e=z();a(0,"form",12),k("ngSubmit",function(){g(e);let i=d();return c(i.completeOnboarding())}),a(1,"div",13)(2,"label",14),s(3,"Organization or workspace name"),r(),a(4,"input",15),b("ngModelChange",function(i){g(e);let l=d();return u(l.organizationName,i)||(l.organizationName=i),c(i)}),r()(),a(5,"fieldset",16)(6,"legend"),s(7,"What do you want to do with BuilderStudio?"),r(),a(8,"div",17),x(9,ee,6,5,"button",18,w),r(),a(11,"p",19),s(12),r()(),a(13,"div",20)(14,"div",13)(15,"label",21),s(16,"Your role"),r(),a(17,"select",22),b("ngModelChange",function(i){g(e);let l=d();return u(l.role,i)||(l.role=i),c(i)}),x(18,ne,2,2,"option",23,w),r()(),a(20,"div",13)(21,"label",24),s(22,"Launch timeline"),r(),a(23,"select",25),b("ngModelChange",function(i){g(e);let l=d();return u(l.launchTimeline,i)||(l.launchTimeline=i),c(i)}),x(24,ie,2,2,"option",23,w),r()(),a(26,"div",13)(27,"label",26),s(28,"Organization size"),r(),a(29,"select",27),b("ngModelChange",function(i){g(e);let l=d();return u(l.teamSize,i)||(l.teamSize=i),c(i)}),x(30,te,2,2,"option",23,w),r()()(),a(32,"div",13)(33,"label",28),s(34,"First app idea"),r(),a(35,"textarea",29),b("ngModelChange",function(i){g(e);let l=d();return u(l.appIdea,i)||(l.appIdea=i),c(i)}),r()(),a(36,"button",30),y(37,ae,2,0)(38,oe,2,0),r()()}if(o&2){let e=d();p(4),h("ngModel",e.organizationName),P("aria-invalid",!e.organizationName.trim()),p(5),f(e.goalOptions),p(3),N("Selected: ",e.selectedGoalsLabel()),p(5),h("ngModel",e.role),p(),f(e.roleOptions),p(5),h("ngModel",e.launchTimeline),p(),f(e.launchTimelineOptions),p(5),h("ngModel",e.teamSize),p(),f(e.teamSizeOptions),p(5),h("ngModel",e.appIdea),p(),C("disabled",e.saving()),p(),O(e.saving()?37:38)}}var Q=class o{constructor(){this.managedAppsApiService=_(V);this.appToastService=_(W);this.router=_(A);this.activatedRoute=_(I);this.loading=v(!1);this.saving=v(!1);this.onboardingStatus=v(null);this.selectedGoals=v(["ship_first_app"]);this.organizationName="";this.primaryGoal="ship_first_app";this.role="founder";this.launchTimeline="this_month";this.teamSize="solo";this.appIdea="";this.selectedGoalsLabel=E(()=>{let n=new Set(this.selectedGoals()),e=this.goalOptions.filter(t=>n.has(t.value)).map(t=>t.label);return e.length?e.join(", "):"Choose one or more goals"});this.goalOptions=[{value:"ship_first_app",label:"Ship my first app",description:"Turn an idea into a hosted application."},{value:"internal_tools",label:"Build internal tools",description:"Dashboards, portals, admin panels, and workflows."},{value:"client_work",label:"Launch apps for clients",description:"Use BuilderStudio as a studio or agency launch system."},{value:"api_integrations",label:"Connect APIs and workflows",description:"Build products around providers, data, and automations."},{value:"prototype_fast",label:"Prototype quickly",description:"Explore product ideas without standing up infrastru
1cture first."},{value:"scale_existing_app",label:"Scale an existing app",description:"Bring structure, deployment, and managed runtime to a project."}];this.roleOptions=[{value:"founder",label:"Founder"},{value:"developer",label:"Developer"},{value:"operator",label:"Operator"},{value:"product",label:"Product / PM"},{value:"agency",label:"Agency / Studio"},{value:"enterprise",label:"Enterprise team"}];this.launchTimelineOptions=[{value:"this_week",label:"This week"},{value:"this_month",label:"This month"},{value:"this_quarter",label:"This quarter"},{value:"six_months",label:"Within 6 months"},{value:"exploring",label:"Just exploring"}];this.teamSizeOptions=[{value:"solo",label:"Solo"},{value:"2_5",label:"2-5"},{value:"6_10",label:"6-10"},{value:"11_25",label:"11-25"},{value:"26_50",label:"26-50"},{value:"51_100",label:"51-100"},{value:"101_250",label:"101-250"},{value:"251_500",label:"251-500"},{value:"501_1000",label:"501-1,000"},{value:"1000_plus",label:"1,000+"}];this.loadStatus()}loadStatus(){this.loading.set(!0),this.managedAppsApiService.getShipYouOnboardingStatus().subscribe({next:n=>{this.onboardingStatus.set(n),this.organizationName=n.organizationName||this.organizationName,this.primaryGoal=n.primaryGoal||this.primaryGoal;let e=this.normalizeSelectedGoals(this.parseGoalsFromStatus(n)||[this.primaryGoal]);this.selectedGoals.set(e.length?e:["ship_first_app"]),this.role=n.role||this.role,this.launchTimeline=n.launchTimeline||this.launchTimeline,this.teamSize=n.teamSize||this.teamSize,this.appIdea=n.appIdea||this.appIdea,this.loading.set(!1)},error:()=>this.loading.set(!1)})}goalIsSelected(n){return this.selectedGoals().includes(n)}toggleGoal(n){let e=this.selectedGoals(),i=e.includes(n)?e.filter(M=>M!==n):[...e,n],l=this.normalizeSelectedGoals(i);this.selectedGoals.set(l),this.primaryGoal=l[0]||"ship_first_app"}completeOnboarding(){let n=this.organizationName.trim();if(!n){this.appToastService.show("Add your organization or workspace name first.","warning");return}let e=this.normalizeSelectedGoals(this.selectedGoals());if(!e.length){this.appToastService.show("Select at least one goal so BuilderStudio can personalize your workspace.","warning");return}this.saving.set(!0),this.managedAppsApiService.completeShipYouOnboarding({organizationName:n,primaryGoal:e[0],goals:e,role:this.role,launchTimeline:this.launchTimeline,teamSize:this.teamSize,appIdea:this.appIdea.trim()||null}).subscribe({next:()=>{this.saving.set(!1),this.appToastService.show("Workspace ready. We are preparing your organization runtime in the background.","success");let t=this.activatedRoute.snapshot.queryParamMap.get("returnUrl")||"/apps/studio";this.router.navigateByUrl(t)},error:t=>{this.saving.set(!1);let i=t&&typeof t=="object"&&"message"in t?String(t.message):"Could not complete onboarding.";this.appToastService.show(i,"error")}})}parseGoalsFromStatus(n){let e=n.goalsJson;if(!e)return null;try{let t=JSON.parse(e);if(Array.isArray(t))return t.map(i=>String(i))}catch(t){return null}return null}normalizeSelectedGoals(n){let e=new Set(this.goalOptions.map(i=>i.value));return n.filter((i,l,M)=>e.has(i)&&M.indexOf(i)===l)}static{this.\u0275fac=function(e){return new(e||o)}}static{this.\u0275cmp=T({type:o,selectors:[["app-ship-you-onboarding-page"]],decls:18,vars:1,consts:[[1,"ship-onboarding-page"],["aria-hidden","true",1,"ship-onboarding-background"],[1,"ship-onboarding-grid-lines"],["aria-labelledby","shipOnboardingTitle",1,"ship-onboarding-card"],["aria-label","BuilderStudio",1,"ship-onboarding-brand"],[1,"ship-onboarding-brand__mark"],[1,"ship-onboarding-card__header"],[1,"ship-onboarding-eyebrow"],["id","shipOnboardingTitle"],["role","status",1,"ship-onboarding-loading"],[1,"ship-onboarding-form"],["aria-hidden","true",1,"ph","ph-spinner-gap"],[1,"ship-onboarding-form",3,"ngSubmit"],[1,"ship-field"],["for","shipOrganizationName",1,"ship-field__label"],["id","shipOrganizationName","name","organizationName","placeholder","Acme Team","required","","autocomplete","organization",1,"ship-input",3,"ngModelChange","ngModel"],[1,"ship-fieldset","ship-fieldset--compact"],["role","group","aria-label","What do you want to do with BuilderStudio?",1,"ship-goal-picker"],["type","button",1,"ship-goal-chip",3,"ship-goal-chip--selected"],[1,"ship-field__description"],[1,"ship-onboarding-grid","ship-onboarding-grid--three"],["for","shipOnboardingRole",1,"ship-field__label"],["id","shipOnboardingRole","name","role",1,"ship-input",3,"ngModelChange","ngModel"],[3,"value"],["for","shipOnboardingTimeline",1,"ship-field__label"],["id","shipOnboardingTimeline","name","launchTimeline",1,"ship-input",3,"ngModelChange","ngModel"],["for","shipOnboardingTeamSize",1,"ship-field__label"],["id","shipOnboardingTeamSize","name","teamSize",1,"ship-input",3,"ngModelChange","ngModel"],["for","shipOnboardingAppIdea",1,"ship-field__label"],["id","shipOnboardingAppIdea","name","appIdea","rows","3","placeholder","A customer portal, booking app, marketplace, internal dashboard...",1,"ship-input","ship-textarea",3,"ngModelChange","ngModel"],["type","submit",1,"ship-onboarding-submit",3,"disabled"],["type","button",1,"ship-goal-chip",3,"click"],["aria-hidden","true",1,"ship-goal-chip__indicator"],[1,"ph","ph-check"],[1,"ph","ph-plus"],["aria-hidden","true",1,"ph","ph-arrow-right"]],template:function(e,t){e&1&&(a(0,"section",0)(1,"div",1),m(2,"div",2),r(),a(3,"main",3)(4,"div",4)(5,"span",5),s(6,"S"),r(),a(7,"span"),s(8,"BuilderStudio"),r()(),a(9,"div",6)(10,"p",7),s(11,"Workspace setup"),r(),a(12,"h1",8),s(13,"Setup your workspace."),r(),a(14,"p"),s(15,"Help us get to know y
1ou better."),r()(),y(16,X,3,0,"div",9)(17,re,39,9,"form",10),r()()),e&2&&(p(16),O(t.loading()?16:17))},dependencies:[Y,K,j,J,U,B,q,F,L,H,R,D],styles:[".ship-onboarding-page[_ngcontent-%COMP%]{position:relative;min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:clamp(1rem,4vw,3rem);overflow:hidden;background:linear-gradient(180deg,color-mix(in srgb,var(--bg-soft) 72%,white),var(--bg));color:var(--text);isolation:isolate}.ship-onboarding-background[_ngcontent-%COMP%]{position:absolute;inset:0;z-index:-2;pointer-events:none}.ship-onboarding-grid-lines[_ngcontent-%COMP%]{position:absolute;top:0;left:50%;width:min(100%,76rem);height:100%;transform:translate(-50%);background-image:linear-gradient(to right,color-mix(in srgb,var(--line) 55%,transparent) 1px,transparent 1px),linear-gradient(to bottom,color-mix(in srgb,var(--line) 48%,transparent) 1px,transparent 1px);background-size:96px 96px;opacity:.38;-webkit-mask-image:linear-gradient(to bottom,black 0%,black 68%,transparent 100%);mask-image:linear-gradient(to bottom,black 0%,black 68%,transparent 100%)}.ship-onboarding-card[_ngcontent-%COMP%]{position:relative;z-index:1;width:min(100%,46rem);border:1px solid var(--line);border-radius:.75rem;background:color-mix(in srgb,var(--panel-strong) 94%,transparent);box-shadow:0 24px 70px #0000001f,inset 0 1px color-mix(in srgb,white 38%,transparent);padding:clamp(1.15rem,3vw,1.75rem);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.ship-onboarding-brand[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.55rem;margin-bottom:1.35rem;color:var(--text);font-size:.92rem;font-weight:850;letter-spacing:-.03em}.ship-onboarding-brand__mark[_ngcontent-%COMP%]{display:grid;width:2rem;height:2rem;place-items:center;border:1px solid var(--line);border-radius:.5rem;background:color-mix(in srgb,var(--text) 92%,var(--panel-strong));color:var(--bg);font-size:.86rem;font-weight:950}.ship-onboarding-card__header[_ngcontent-%COMP%]{display:grid;gap:.4rem;margin-bottom:1.25rem}.ship-onboarding-eyebrow[_ngcontent-%COMP%]{margin:0;color:var(--muted);font-size:.72rem;font-weight:850;letter-spacing:.14em;line-height:1;text-transform:uppercase}.ship-onboarding-card[_ngcontent-%COMP%]   h1[_ngcontent-%COMP%]{margin:0;color:var(--text);font-size:clamp(2rem,5vw,3.1rem);font-weight:850;line-height:.98;letter-spacing:-.065em}.ship-onboarding-card[_ngcontent-%COMP%]   p[_ngcontent-%COMP%]{margin:0;color:var(--muted);line-height:1.55}.ship-onboarding-form[_ngcontent-%COMP%]{display:grid;gap:.9rem}.ship-onboarding-grid[_ngcontent-%COMP%]{display:grid;gap:.75rem}.ship-onboarding-grid--three[_ngcontent-%COMP%]{grid-template-columns:repeat(3,minmax(0,1fr))}.ship-field[_ngcontent-%COMP%]{display:grid;gap:.42rem}.ship-field__label[_ngcontent-%COMP%], .ship-fieldset[_ngcontent-%COMP%]   legend[_ngcontent-%COMP%]{color:var(--text);font-size:.84rem;font-weight:750;line-height:1.2}.ship-input[_ngcontent-%COMP%]{width:100%;min-height:2.75rem;border:1px solid var(--line);border-radius:.55rem;padding:.65rem .78rem;background:color-mix(in srgb,var(--panel-strong) 98%,transparent);color:var(--text);font-size:.92rem;line-height:1.35;outline:none;box-shadow:0 1px 2px #0f172a0a;transition:border-color .16s ease,box-shadow .16s ease,background .16s ease}.ship-input[_ngcontent-%COMP%]::placeholder{color:color-mix(in srgb,var(--muted) 72%,transparent)}.ship-input[_ngcontent-%COMP%]:focus{border-color:color-mix(in srgb,var(--accent) 72%,var(--line));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 16%,transparent)}.ship-input[aria-invalid=true][_ngcontent-%COMP%]{border-color:color-mix(in srgb,rgb(239,68,188) 68%,var(--line))}.ship-textarea[_ngcontent-%COMP%]{min-height:5.5rem;resize:vertical}.ship-field__description[_ngcontent-%COMP%]{color:var(--muted);font-size:.78rem;line-height:1.45}.ship-fieldset[_ngcontent-%COMP%]{display:grid;gap:.65rem;margin:0;border:1px solid var(--line);border-radius:.75rem;padding:.85rem;background:color-mix(in srgb,var(--panel) 78%,transparent)}.ship-fieldset--compact[_ngcontent-%COMP%]{gap:.6rem}.ship-goal-picker[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:.45rem}.ship-goal-chip[_ngcontent-%COMP%]{display:inline-flex;min-height:2.25rem;align-items:center;justify-content:center;gap:.42rem;border:1px solid var(--line);border-radius:999px;padding:.42rem .68rem;background:color-mix(in srgb,var(--panel-strong) 90%,transparent);color:var(--text);font-size:.82rem;font-weight:750;line-height:1;cursor:pointer;transition:transform .16s ease,border-color .16s ease,background .16s ease,color .16s ease,box-shadow .16s ease}.ship-goal-chip[_ngcontent-%COMP%]:hover, .ship-goal-chip[_ngcontent-%COMP%]:focus-visible{border-color:color-mix(in srgb,var(--text) 24%,var(--line));background:color-mix(in srgb,var(--panel-strong) 100%,var(--bg-soft));outline:none;transform:translateY(-1px)}.ship-goal-chip--selected[_ngcontent-%COMP%]{border-color:color-mix(in srgb,var(--text) 78%,var(--line));background:var(--text);color:var(--bg);box-shadow:0 10px 24px color-mix(in srgb,var(--text) 11%,transparent)}.ship-goal-chip__indicator[_ngcontent-%COMP%]{display:grid;width:1rem;height:1rem;place-items:center;font-size:.78rem}.ship-onboarding-submit[_ngcontent-%COMP%]{display:inline-flex;min-height:2.95rem;width:100%;align-items:center;justify-content:center;gap:.55rem;border:0;border-radius:.55rem;padding:0 1rem;background:var(--text);color:var(--bg);font-size:.94rem;font-weight:850;line-height:1;cursor:pointer;box-shadow:0 12px 30px color-mix(in srgb,var(--text) 14%,transparent);transition:transform .16s ease,opacity .16s ease,box-shadow .16s ease}.ship-onboarding-submit[_ngcontent-%COMP%]:hover:not(:disabled), .ship-onboarding-submit[_ngcontent-%COMP%]:focus-visible:not(:disabled){transform:translateY(-1px);outline:none;box-shadow:0 16px 36px color-mix(in srgb,var(--text) 18%,transparent)}.ship-onboarding-submit[_ngcontent-%COMP%]:disabled{opacity:.65;
1cursor:progress;transform:none}.ship-onboarding-loading[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.6rem;border:1px solid var(--line);border-radius:.65rem;padding:1rem;color:var(--muted);background:color-mix(in srgb,var(--panel) 80%,transparent)}@media(max-width:760px){.ship-onboarding-page[_ngcontent-%COMP%]{align-items:flex-start;padding:.75rem}.ship-onboarding-card[_ngcontent-%COMP%]{border-radius:.7rem}.ship-onboarding-grid--three[_ngcontent-%COMP%]{grid-template-columns:1fr}}@media(max-width:480px){.ship-goal-picker[_ngcontent-%COMP%]{display:grid}.ship-goal-chip[_ngcontent-%COMP%]{width:100%;justify-content:flex-start}}"]})}};export{Q as ShipYouOnboardingPageComponent};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.