@hanzo/ui 8.27.31 → 8.27.35

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 (76) hide show
  1. package/dist/consent/Consent.cjs +76 -0
  2. package/dist/consent/Consent.d.ts +13 -0
  3. package/dist/consent/Consent.d.ts.map +1 -0
  4. package/dist/consent/Consent.js +72 -0
  5. package/dist/consent/Consent.js.map +1 -0
  6. package/dist/consent/index.cjs +7 -0
  7. package/dist/consent/index.d.ts +2 -0
  8. package/dist/consent/index.d.ts.map +1 -0
  9. package/dist/consent/index.js +2 -0
  10. package/dist/consent/index.js.map +1 -0
  11. package/dist/gallery.cjs +11 -0
  12. package/dist/gallery.d.ts.map +1 -1
  13. package/dist/gallery.html +5 -5
  14. package/dist/gallery.js +11 -0
  15. package/dist/gallery.js.map +1 -1
  16. package/dist/marketing/ClosingCta.cjs +4 -4
  17. package/dist/marketing/ClosingCta.d.ts +5 -3
  18. package/dist/marketing/ClosingCta.d.ts.map +1 -1
  19. package/dist/marketing/ClosingCta.js +4 -4
  20. package/dist/marketing/ClosingCta.js.map +1 -1
  21. package/dist/marketing/Footer.cjs +27 -0
  22. package/dist/marketing/Footer.d.ts +25 -0
  23. package/dist/marketing/Footer.d.ts.map +1 -0
  24. package/dist/marketing/Footer.js +25 -0
  25. package/dist/marketing/Footer.js.map +1 -0
  26. package/dist/marketing/Plans.cjs +14 -8
  27. package/dist/marketing/Plans.d.ts +5 -3
  28. package/dist/marketing/Plans.d.ts.map +1 -1
  29. package/dist/marketing/Plans.js +15 -9
  30. package/dist/marketing/Plans.js.map +1 -1
  31. package/dist/marketing/index.cjs +4 -1
  32. package/dist/marketing/index.d.ts +2 -1
  33. package/dist/marketing/index.d.ts.map +1 -1
  34. package/dist/marketing/index.js +2 -1
  35. package/dist/marketing/index.js.map +1 -1
  36. package/dist/marketing/rows.cjs +26 -0
  37. package/dist/marketing/rows.d.ts +10 -0
  38. package/dist/marketing/rows.d.ts.map +1 -1
  39. package/dist/marketing/rows.js +25 -0
  40. package/dist/marketing/rows.js.map +1 -1
  41. package/dist/onboarding/Checkout.cjs +19 -5
  42. package/dist/onboarding/Checkout.d.ts +3 -1
  43. package/dist/onboarding/Checkout.d.ts.map +1 -1
  44. package/dist/onboarding/Checkout.js +20 -6
  45. package/dist/onboarding/Checkout.js.map +1 -1
  46. package/dist/onboarding/Onboarding.cjs +18 -8
  47. package/dist/onboarding/Onboarding.d.ts +5 -1
  48. package/dist/onboarding/Onboarding.d.ts.map +1 -1
  49. package/dist/onboarding/Onboarding.js +19 -9
  50. package/dist/onboarding/Onboarding.js.map +1 -1
  51. package/dist/onboarding/catalog.cjs +30 -0
  52. package/dist/onboarding/catalog.d.ts +5 -0
  53. package/dist/onboarding/catalog.d.ts.map +1 -0
  54. package/dist/onboarding/catalog.js +27 -0
  55. package/dist/onboarding/catalog.js.map +1 -0
  56. package/dist/onboarding/frame.cjs +2 -3
  57. package/dist/onboarding/frame.d.ts +3 -2
  58. package/dist/onboarding/frame.d.ts.map +1 -1
  59. package/dist/onboarding/frame.js +2 -3
  60. package/dist/onboarding/frame.js.map +1 -1
  61. package/dist/onboarding/index.cjs +7 -3
  62. package/dist/onboarding/index.d.ts +2 -1
  63. package/dist/onboarding/index.d.ts.map +1 -1
  64. package/dist/onboarding/index.js +2 -1
  65. package/dist/onboarding/index.js.map +1 -1
  66. package/dist/onboarding/plans.cjs +75 -68
  67. package/dist/onboarding/plans.d.ts +41 -22
  68. package/dist/onboarding/plans.d.ts.map +1 -1
  69. package/dist/onboarding/plans.js +66 -64
  70. package/dist/onboarding/plans.js.map +1 -1
  71. package/dist/onboarding/screens.cjs +8 -7
  72. package/dist/onboarding/screens.d.ts +2 -1
  73. package/dist/onboarding/screens.d.ts.map +1 -1
  74. package/dist/onboarding/screens.js +9 -8
  75. package/dist/onboarding/screens.js.map +1 -1
  76. package/package.json +12 -1
@@ -1,40 +1,61 @@
1
1
  /**
2
- * What Hanzo sells, priced from @hanzo/plans and nothing else.
2
+ * What Hanzo sells, priced from commerce's live catalog (GET /v1/billing/plans)
3
+ * and nothing else: no price is typed in this package. `adopt` takes the rows,
4
+ * after which every function here answers from them.
3
5
  *
4
6
  * free chat only; offered on the personal path alone
5
- * dev, max the personal plans, at the catalog's monthly price
6
- * team_standard a Dev seat + the team add-on
7
- * team_premium a Max seat + the team add-on, two seats at least
8
- *
9
- * A year is the month times 0.82, paid at once.
7
+ * dev Pro, the personal plan
8
+ * max_5x, max_20x one Max card; the tier is picked at checkout
9
+ * team_standard the catalog's per-seat Team plan, two seats at least
10
+ * team_premium a heavier seat, offered only while the catalog lists one
10
11
  */
11
- export type PlanId = 'free' | 'dev' | 'max' | 'team_standard' | 'team_premium';
12
+ export type PlanId = 'free' | 'dev' | 'max_5x' | 'max_20x' | 'team_standard' | 'team_premium';
12
13
  export type Interval = 'monthly' | 'annual';
13
14
  export type Category = 'individual' | 'team';
14
- /** Annual price is the monthly price times this. */
15
- export declare const ANNUAL = 0.82;
16
- /** What a team seat adds to the personal plan it is built on, per month. */
17
- export declare const SEAT_ADDON = 5;
18
15
  export declare const MIN_SEATS = 2;
19
16
  export declare const MAX_SEATS = 150;
20
17
  /** From 20 people the team plan becomes a conversation. */
21
18
  export declare const ENTERPRISE_FROM = 20;
19
+ /** The commerce catalog's slug for each plan. */
20
+ export declare const SLUG: Record<PlanId, string>;
21
+ /** A row of the catalog, as commerce sends it (prices in cents). */
22
+ export interface Row {
23
+ slug: string;
24
+ name: string;
25
+ description?: string;
26
+ price: number;
27
+ annualTotal?: number;
28
+ features?: string[];
29
+ limits?: Record<string, number>;
30
+ }
22
31
  export interface Offer {
23
32
  id: PlanId;
33
+ slug: string;
24
34
  name: string;
25
35
  category: Category;
26
- /** GA4 item_id / item_category / item_name come from here. */
36
+ /** Dollars per month (per seat for a team plan). */
27
37
  monthly: number;
38
+ /** Dollars for a year paid at once, where the catalog sells one. */
39
+ yearly: number | null;
28
40
  blurb: string;
29
41
  features: string[];
30
42
  }
31
- export declare const OFFERS: Record<PlanId, Offer>;
32
- /** One unit's price per month at this interval (a year, spread over its twelve months). */
33
- export declare const unit: (id: PlanId, interval: Interval) => number;
43
+ /** The offers as loaded: a plan the catalog does not list is absent. */
44
+ export declare const OFFERS: Partial<Record<PlanId, Offer>>;
45
+ /** Take the catalog's rows as what is sold. */
46
+ export declare function adopt(rows: Row[]): void;
47
+ /** The offer for a plan; throws while the catalog has not loaded or does not list it. */
48
+ export declare function offer(id: PlanId): Offer;
49
+ /** Whether the catalog lists this plan. */
50
+ export declare const has: (id: PlanId) => boolean;
51
+ /** Whether this plan is sold by the year. */
52
+ export declare const yearly: (id: PlanId) => boolean;
53
+ /** One unit's price per month at this interval (a year spread over its twelve months). */
54
+ export declare function unit(id: PlanId, interval: Interval): number;
34
55
  /** What one unit costs per billing period: the month, or the year at once. */
35
- export declare const period: (id: PlanId, interval: Interval) => number;
56
+ export declare function period(id: PlanId, interval: Interval): number;
36
57
  /** What a year saves over twelve months, as a whole percent. */
37
- export declare const saving: number;
58
+ export declare function saving(id: PlanId): number;
38
59
  export interface Lines {
39
60
  seats: number;
40
61
  /** What is charged today (before tax): the period's price times the seats. */
@@ -43,9 +64,9 @@ export interface Lines {
43
64
  perMonth: number;
44
65
  }
45
66
  export declare function lines(id: PlanId, interval: Interval, seats?: number): Lines;
46
- /** GA4-shaped item for a commerce event: price is per unit, quantity is seats. */
67
+ /** GA4-shaped item for a commerce event: price is per unit, quantity is seats. Both Max tiers are item `max`. */
47
68
  export declare function item(id: PlanId, interval: Interval, seats?: number): {
48
- item_id: PlanId;
69
+ item_id: string;
49
70
  item_name: string;
50
71
  item_category: Category;
51
72
  item_variant: Interval;
@@ -53,8 +74,6 @@ export declare function item(id: PlanId, interval: Interval, seats?: number): {
53
74
  quantity: number;
54
75
  };
55
76
  export declare const usd: (n: number) => string;
56
- /** `$19` when whole, `$15.58` when not. */
77
+ /** `$20` when whole, `$16.67` when not. */
57
78
  export declare const money: (n: number) => string;
58
- /** The commerce catalog's slug for a plan, and the quantity it is bought at. */
59
- export declare const SLUG: Record<PlanId, string>;
60
79
  //# sourceMappingURL=plans.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plans.d.ts","sourceRoot":"","sources":["../../src/onboarding/plans.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AAEH,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,eAAe,GAAG,cAAc,CAAA;AAC9E,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAA;AAC3C,MAAM,MAAM,QAAQ,GAAG,YAAY,GAAG,MAAM,CAAA;AAE5C,oDAAoD;AACpD,eAAO,MAAM,MAAM,OAAO,CAAA;AAC1B,4EAA4E;AAC5E,eAAO,MAAM,UAAU,IAAI,CAAA;AAC3B,eAAO,MAAM,SAAS,IAAI,CAAA;AAC1B,eAAO,MAAM,SAAS,MAAM,CAAA;AAC5B,2DAA2D;AAC3D,eAAO,MAAM,eAAe,KAAK,CAAA;AAUjC,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,QAAQ,CAAA;IAClB,8DAA8D;IAC9D,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAED,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAyCxC,CAAA;AAED,2FAA2F;AAC3F,eAAO,MAAM,IAAI,OAAQ,MAAM,YAAY,QAAQ,KAAG,MAAyF,CAAA;AAE/I,8EAA8E;AAC9E,eAAO,MAAM,MAAM,OAAQ,MAAM,YAAY,QAAQ,KAAG,MAAwF,CAAA;AAEhJ,gEAAgE;AAChE,eAAO,MAAM,MAAM,QAAiC,CAAA;AAEpD,MAAM,WAAW,KAAK;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,8EAA8E;IAC9E,QAAQ,EAAE,MAAM,CAAA;IAChB,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,SAAI,GAAG,KAAK,CAGtE;AAED,kFAAkF;AAClF,wBAAgB,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,SAAI;IAEnD,OAAO;IAAM,SAAS;IAAU,aAAa;IAAc,YAAY;IAAY,KAAK;IAAwB,QAAQ;EAClI;AAED,eAAO,MAAM,GAAG,MAAO,MAAM,KAAG,MAA4B,CAAA;AAC5D,2CAA2C;AAC3C,eAAO,MAAM,KAAK,MAAO,MAAM,KAAG,MAAkD,CAAA;AAEpF,gFAAgF;AAChF,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAA0G,CAAA"}
1
+ {"version":3,"file":"plans.d.ts","sourceRoot":"","sources":["../../src/onboarding/plans.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,GAAG,eAAe,GAAG,cAAc,CAAA;AAC7F,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAA;AAC3C,MAAM,MAAM,QAAQ,GAAG,YAAY,GAAG,MAAM,CAAA;AAE5C,eAAO,MAAM,SAAS,IAAI,CAAA;AAC1B,eAAO,MAAM,SAAS,MAAM,CAAA;AAC5B,2DAA2D;AAC3D,eAAO,MAAM,eAAe,KAAK,CAAA;AAEjC,iDAAiD;AACjD,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAA2H,CAAA;AAEnK,oEAAoE;AACpE,MAAM,WAAW,GAAG;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAChC;AAED,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,QAAQ,CAAA;IAClB,oDAAoD;IACpD,OAAO,EAAE,MAAM,CAAA;IACf,oEAAoE;IACpE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAMD,wEAAwE;AACxE,eAAO,MAAM,MAAM,gCAAS,CAAA;AAE5B,+CAA+C;AAC/C,wBAAgB,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAiBvC;AAED,yFAAyF;AACzF,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,KAAK,CAIvC;AAED,2CAA2C;AAC3C,eAAO,MAAM,GAAG,OAAQ,MAAM,KAAG,OAAmC,CAAA;AAEpE,6CAA6C;AAC7C,eAAO,MAAM,MAAM,OAAQ,MAAM,KAAG,OAAoC,CAAA;AAExE,0FAA0F;AAC1F,wBAAgB,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAG3D;AAED,8EAA8E;AAC9E,wBAAgB,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAG7D;AAED,gEAAgE;AAChE,wBAAgB,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAGzC;AAED,MAAM,WAAW,KAAK;IACpB,KAAK,EAAE,MAAM,CAAA;IACb,8EAA8E;IAC9E,QAAQ,EAAE,MAAM,CAAA;IAChB,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,SAAI,GAAG,KAAK,CAGtE;AAED,iHAAiH;AACjH,wBAAgB,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,SAAI;;;;;;;EAG7D;AAED,eAAO,MAAM,GAAG,MAAO,MAAM,KAAG,MAA4B,CAAA;AAC5D,2CAA2C;AAC3C,eAAO,MAAM,KAAK,MAAO,MAAM,KAAG,MAAkD,CAAA"}
@@ -1,79 +1,81 @@
1
- import { subscriptionPlans } from '@hanzo/plans';
2
- /** Annual price is the monthly price times this. */
3
- export const ANNUAL = 0.82;
4
- /** What a team seat adds to the personal plan it is built on, per month. */
5
- export const SEAT_ADDON = 5;
1
+ /**
2
+ * What Hanzo sells, priced from commerce's live catalog (GET /v1/billing/plans)
3
+ * and nothing else: no price is typed in this package. `adopt` takes the rows,
4
+ * after which every function here answers from them.
5
+ *
6
+ * free chat only; offered on the personal path alone
7
+ * dev Pro, the personal plan
8
+ * max_5x, max_20x one Max card; the tier is picked at checkout
9
+ * team_standard the catalog's per-seat Team plan, two seats at least
10
+ * team_premium a heavier seat, offered only while the catalog lists one
11
+ */
6
12
  export const MIN_SEATS = 2;
7
13
  export const MAX_SEATS = 150;
8
14
  /** From 20 people the team plan becomes a conversation. */
9
15
  export const ENTERPRISE_FROM = 20;
10
- const monthlyOf = (slug) => {
11
- const p = subscriptionPlans.find((x) => x.id === slug);
12
- if (!p || p.priceMonthly == null)
13
- throw new Error(`@hanzo/plans has no monthly price for ${slug}`);
14
- return p.priceMonthly;
15
- };
16
+ /** The commerce catalog's slug for each plan. */
17
+ export const SLUG = { free: 'free', dev: 'dev', max_5x: 'max-5x', max_20x: 'max-20x', team_standard: 'team', team_premium: 'team-premium' };
16
18
  const cents = (n) => Math.round(n * 100) / 100;
17
- export const OFFERS = {
18
- free: {
19
- id: 'free',
20
- name: 'Free',
21
- category: 'individual',
22
- monthly: 0,
23
- blurb: 'Meet Hanzo',
24
- features: ['Chat on web, iOS, Android and desktop', 'The free Zen models, with a daily allowance', 'Built-in web search', 'Add credit at any time for the paid models'],
25
- },
26
- dev: {
27
- id: 'dev',
28
- name: 'Dev',
29
- category: 'individual',
30
- monthly: monthlyOf('dev'),
31
- blurb: 'Research, code, and organize',
32
- features: ['Everything in Free and:', 'Hanzo Dev in your own repository', 'Every room in the Hanzo app', 'Higher usage limits', 'MCP, the SDK and the CLI included'],
33
- },
34
- max: {
35
- id: 'max',
36
- name: 'Max',
37
- category: 'individual',
38
- monthly: monthlyOf('max'),
39
- blurb: 'Higher limits, priority access',
40
- features: ['Everything in Dev, plus:', 'Enso orchestration across models', 'Unlimited managed agents', 'Higher output limits for all tasks', 'Priority access at high traffic times'],
41
- },
42
- team_standard: {
43
- id: 'team_standard',
44
- name: 'Standard seat',
45
- category: 'team',
46
- monthly: monthlyOf('dev') + SEAT_ADDON,
47
- blurb: 'A Dev seat for each teammate',
48
- features: ['Everything in Dev, per person', 'Org workspaces with shared history and projects', 'SSO through Hanzo IAM', 'One bill for everyone'],
49
- },
50
- team_premium: {
51
- id: 'team_premium',
52
- name: 'Premium seat',
53
- category: 'team',
54
- monthly: monthlyOf('max') + SEAT_ADDON,
55
- blurb: 'A Max seat for heavy users',
56
- features: ['Everything in Max, per person', 'Org workspaces with shared history and projects', 'SSO through Hanzo IAM', 'One bill for everyone'],
57
- },
58
- };
59
- /** One unit's price per month at this interval (a year, spread over its twelve months). */
60
- export const unit = (id, interval) => cents(interval === 'annual' ? OFFERS[id].monthly * ANNUAL : OFFERS[id].monthly);
19
+ const offers = {};
20
+ /** The offers as loaded: a plan the catalog does not list is absent. */
21
+ export const OFFERS = offers;
22
+ /** Take the catalog's rows as what is sold. */
23
+ export function adopt(rows) {
24
+ for (const k of Object.keys(offers))
25
+ delete offers[k];
26
+ for (const id of Object.keys(SLUG)) {
27
+ const r = rows.find((x) => x.slug === SLUG[id]);
28
+ if (!r)
29
+ continue;
30
+ const team = id.startsWith('team');
31
+ offers[id] = {
32
+ id,
33
+ slug: r.slug,
34
+ name: team ? (id === 'team_standard' ? 'Standard seat' : 'Premium seat') : r.name,
35
+ category: team ? 'team' : 'individual',
36
+ monthly: cents(r.price / 100),
37
+ yearly: r.annualTotal ? cents(r.annualTotal / 100) : null,
38
+ blurb: r.description ?? '',
39
+ features: r.features ?? [],
40
+ };
41
+ }
42
+ }
43
+ /** The offer for a plan; throws while the catalog has not loaded or does not list it. */
44
+ export function offer(id) {
45
+ const o = offers[id];
46
+ if (!o)
47
+ throw new Error(`the catalog lists no ${id} plan`);
48
+ return o;
49
+ }
50
+ /** Whether the catalog lists this plan. */
51
+ export const has = (id) => offers[id] !== undefined;
52
+ /** Whether this plan is sold by the year. */
53
+ export const yearly = (id) => offer(id).yearly !== null;
54
+ /** One unit's price per month at this interval (a year spread over its twelve months). */
55
+ export function unit(id, interval) {
56
+ const o = offer(id);
57
+ return interval === 'annual' && o.yearly !== null ? cents(o.yearly / 12) : o.monthly;
58
+ }
61
59
  /** What one unit costs per billing period: the month, or the year at once. */
62
- export const period = (id, interval) => (interval === 'annual' ? cents(unit(id, 'annual') * 12) : unit(id, 'monthly'));
60
+ export function period(id, interval) {
61
+ const o = offer(id);
62
+ return interval === 'annual' && o.yearly !== null ? o.yearly : o.monthly;
63
+ }
63
64
  /** What a year saves over twelve months, as a whole percent. */
64
- export const saving = Math.round((1 - ANNUAL) * 100);
65
+ export function saving(id) {
66
+ const o = offer(id);
67
+ return o.yearly !== null && o.monthly > 0 ? Math.round((1 - o.yearly / (12 * o.monthly)) * 100) : 0;
68
+ }
65
69
  export function lines(id, interval, seats = 1) {
66
- const n = OFFERS[id].category === 'team' ? Math.max(MIN_SEATS, Math.min(MAX_SEATS, Math.floor(seats))) : 1;
70
+ const n = offer(id).category === 'team' ? Math.max(MIN_SEATS, Math.min(MAX_SEATS, Math.floor(seats))) : 1;
67
71
  return { seats: n, subtotal: cents(period(id, interval) * n), perMonth: cents(unit(id, interval) * n) };
68
72
  }
69
- /** GA4-shaped item for a commerce event: price is per unit, quantity is seats. */
73
+ /** GA4-shaped item for a commerce event: price is per unit, quantity is seats. Both Max tiers are item `max`. */
70
74
  export function item(id, interval, seats = 1) {
71
- const o = OFFERS[id];
72
- return { item_id: id, item_name: o.name, item_category: o.category, item_variant: interval, price: period(id, interval), quantity: lines(id, interval, seats).seats };
75
+ const o = offer(id);
76
+ return { item_id: id.startsWith('max') ? 'max' : id, item_name: o.name, item_category: o.category, item_variant: interval, price: period(id, interval), quantity: lines(id, interval, seats).seats };
73
77
  }
74
78
  export const usd = (n) => `$${n.toFixed(2)}`;
75
- /** `$19` when whole, `$15.58` when not. */
79
+ /** `$20` when whole, `$16.67` when not. */
76
80
  export const money = (n) => (Number.isInteger(n) ? `$${n}` : usd(n));
77
- /** The commerce catalog's slug for a plan, and the quantity it is bought at. */
78
- export const SLUG = { free: 'free', dev: 'dev', max: 'max', team_standard: 'team-standard', team_premium: 'team-premium' };
79
81
  //# sourceMappingURL=plans.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plans.js","sourceRoot":"","sources":["../../src/onboarding/plans.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plans.js","sourceRoot":"","sources":["../../src/onboarding/plans.ts"],"names":[],"mappings":"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"}
@@ -49,12 +49,12 @@ function UseCards({ onPick, onAsk }) {
49
49
  return ((0, jsx_runtime_1.jsxs)(layout_1.YStack, { items: "center", gap: "$5", width: "100%", children: [(0, jsx_runtime_1.jsxs)(layout_1.XStack, { role: "group", "aria-label": "How you will use Hanzo", flexWrap: "wrap", justify: "center", gap: "$6", width: "100%", children: [(0, jsx_runtime_1.jsx)(UseCard, { icon: (0, jsx_runtime_1.jsx)(lucide_icons_2_1.User, { size: 64 }), name: "For personal use", note: "For individuals who want to build and experiment with their own projects", dim: team, onPress: () => onPick('personal') }), (0, jsx_runtime_1.jsx)(UseCard, { icon: (0, jsx_runtime_1.jsx)(lucide_icons_2_1.Users, { size: 64 }), name: "With my team", note: "For organizations who want to collaborate and build at scale", on: team, onPress: () => setTeam(true) })] }), team ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)(layout_1.XStack, { role: "group", "aria-label": "Team size", flexWrap: "wrap", justify: "center", gap: "$6", width: "100%", children: [(0, jsx_runtime_1.jsx)(UseCard, { size: "small", name: "Team", note: `For ${plans_1.MIN_SEATS}–${plans_1.MAX_SEATS} people. Predictable per-seat pricing, set up in minutes.`, onPress: () => onPick('team') }), (0, jsx_runtime_1.jsx)(UseCard, { size: "small", name: "Enterprise", note: `For ${plans_1.ENTERPRISE_FROM} or more people. Pooled usage, advanced admin and security controls.`, onPress: () => onPick('enterprise') })] }), (0, jsx_runtime_1.jsxs)(layout_1.XStack, { items: "center", gap: "$1", children: [(0, jsx_runtime_1.jsx)(layout_1.SizableText, { size: "$2", color: "$quiet", children: "Questions?" }), (0, jsx_runtime_1.jsx)(Ask, { onAsk: onAsk })] })] })) : null] }));
50
50
  }
51
51
  /* ---------------------------------------------------------------- plans */
52
- function PlanCard({ id, cta, onPick, interval, setInterval, toggle }) {
53
- const o = plans_1.OFFERS[id];
54
- return ((0, jsx_runtime_1.jsxs)(card_1.Card, { "aria-label": o.name, bg: "$panel", flex: 1, flexBasis: 300, maxW: 380, gap: "$0", py: 0, children: [(0, jsx_runtime_1.jsxs)(layout_1.YStack, { p: "$5", gap: "$3", borderBottomWidth: 1, borderBottomColor: "$borderColor", children: [(0, jsx_runtime_1.jsx)(layout_1.XStack, { minH: 36, justify: "flex-end", children: toggle ? (0, jsx_runtime_1.jsx)(frame_1.IntervalToggle, { interval: interval, onChange: setInterval, name: o.name }) : null }), (0, jsx_runtime_1.jsx)(layout_1.Heading, { render: "h2", size: "$7", fontWeight: "600", color: "$ink", m: 0, children: o.name }), (0, jsx_runtime_1.jsx)(layout_1.Paragraph, { size: "$3", color: "$quiet", m: 0, children: o.blurb }), (0, jsx_runtime_1.jsxs)(layout_1.XStack, { items: "center", gap: "$2", my: "$2", children: [(0, jsx_runtime_1.jsx)(layout_1.SizableText, { size: "$10", fontWeight: "600", color: "$ink", children: (0, plans_1.money)((0, plans_1.unit)(id, interval)) }), (0, jsx_runtime_1.jsx)(layout_1.SizableText, { size: "$1", color: "$quiet", children: `USD / month\nbilled ${interval === 'annual' ? 'yearly' : 'monthly'}` })] }), (0, jsx_runtime_1.jsx)(Primary, { onClick: onPick, children: cta }), o.monthly > 0 ? ((0, jsx_runtime_1.jsx)(layout_1.Paragraph, { size: "$1", color: "$quiet", text: "center", m: 0, children: "No commitment \u00B7 Cancel anytime" })) : null] }), (0, jsx_runtime_1.jsx)(layout_1.YStack, { render: "ul", p: "$5", gap: "$2.5", m: 0, children: o.features.map((f) => ((0, jsx_runtime_1.jsxs)(layout_1.XStack, { render: "li", items: "flex-start", gap: "$2.5", children: [(0, jsx_runtime_1.jsx)(lucide_icons_2_1.Check, { size: 16 }), (0, jsx_runtime_1.jsx)(layout_1.SizableText, { size: "$2", color: "$quiet", flex: 1, children: f })] }, f))) })] }));
52
+ function PlanCard({ id, cta, onPick, interval, setInterval, toggle, from }) {
53
+ const o = (0, plans_1.offer)(id);
54
+ return ((0, jsx_runtime_1.jsxs)(card_1.Card, { "aria-label": from ? 'Max' : o.name, bg: "$panel", flex: 1, flexBasis: 300, maxW: 380, gap: "$0", py: 0, children: [(0, jsx_runtime_1.jsxs)(layout_1.YStack, { p: "$5", gap: "$3", borderBottomWidth: 1, borderBottomColor: "$borderColor", children: [(0, jsx_runtime_1.jsx)(layout_1.XStack, { minH: 36, justify: "flex-end", children: toggle && (0, plans_1.yearly)(id) ? (0, jsx_runtime_1.jsx)(frame_1.IntervalToggle, { interval: interval, onChange: setInterval, name: o.name, save: (0, plans_1.saving)(id) }) : null }), (0, jsx_runtime_1.jsx)(layout_1.Heading, { render: "h2", size: "$7", fontWeight: "600", color: "$ink", m: 0, children: from ? 'Max' : o.name }), (0, jsx_runtime_1.jsx)(layout_1.Paragraph, { size: "$3", color: "$quiet", m: 0, children: o.blurb }), (0, jsx_runtime_1.jsxs)(layout_1.XStack, { items: "center", gap: "$2", my: "$2", children: [(0, jsx_runtime_1.jsx)(layout_1.SizableText, { size: "$10", fontWeight: "600", color: "$ink", children: `${from ? 'From ' : ''}${(0, plans_1.money)((0, plans_1.unit)(id, interval))}` }), (0, jsx_runtime_1.jsx)(layout_1.SizableText, { size: "$1", color: "$quiet", children: `USD / month\nbilled ${interval === 'annual' && (0, plans_1.yearly)(id) ? 'yearly' : 'monthly'}` })] }), (0, jsx_runtime_1.jsx)(Primary, { onClick: onPick, children: cta }), o.monthly > 0 ? ((0, jsx_runtime_1.jsx)(layout_1.Paragraph, { size: "$1", color: "$quiet", text: "center", m: 0, children: "No commitment \u00B7 Cancel anytime" })) : null] }), (0, jsx_runtime_1.jsx)(layout_1.YStack, { render: "ul", p: "$5", gap: "$2.5", m: 0, children: o.features.map((f) => ((0, jsx_runtime_1.jsxs)(layout_1.XStack, { render: "li", items: "flex-start", gap: "$2.5", children: [(0, jsx_runtime_1.jsx)(lucide_icons_2_1.Check, { size: 16 }), (0, jsx_runtime_1.jsx)(layout_1.SizableText, { size: "$2", color: "$quiet", flex: 1, children: f })] }, f))) })] }));
55
55
  }
56
56
  function Plans({ interval, setInterval, onFree, onPick }) {
57
- return ((0, jsx_runtime_1.jsxs)(layout_1.YStack, { items: "center", gap: "$4", width: "100%", children: [(0, jsx_runtime_1.jsxs)(layout_1.XStack, { flexWrap: "wrap", justify: "center", gap: "$5", width: "100%", children: [(0, jsx_runtime_1.jsx)(PlanCard, { id: "free", cta: "Use Hanzo for free", onPick: onFree, interval: interval, setInterval: setInterval }), (0, jsx_runtime_1.jsx)(PlanCard, { id: "dev", cta: "Get Dev plan", onPick: () => onPick('dev'), interval: interval, setInterval: setInterval, toggle: true }), (0, jsx_runtime_1.jsx)(PlanCard, { id: "max", cta: "Get Max plan", onPick: () => onPick('max'), interval: interval, setInterval: setInterval })] }), (0, jsx_runtime_1.jsx)(layout_1.Paragraph, { size: "$1", color: "$quiet", text: "center", m: 0, children: "Prices are in US dollars. Usage limits apply, and plans are subject to change." })] }));
57
+ return ((0, jsx_runtime_1.jsxs)(layout_1.YStack, { items: "center", gap: "$4", width: "100%", children: [(0, jsx_runtime_1.jsxs)(layout_1.XStack, { flexWrap: "wrap", justify: "center", gap: "$5", width: "100%", children: [(0, jsx_runtime_1.jsx)(PlanCard, { id: "free", cta: "Use Hanzo for free", onPick: onFree, interval: interval, setInterval: setInterval }), (0, jsx_runtime_1.jsx)(PlanCard, { id: "dev", cta: `Get ${(0, plans_1.offer)('dev').name} plan`, onPick: () => onPick('dev'), interval: interval, setInterval: setInterval, toggle: true }), (0, jsx_runtime_1.jsx)(PlanCard, { id: "max_5x", cta: "Get Max plan", onPick: () => onPick('max_5x'), interval: interval, setInterval: setInterval, from: true })] }), (0, jsx_runtime_1.jsx)(layout_1.Paragraph, { size: "$1", color: "$quiet", text: "center", m: 0, children: "Prices are in US dollars. Usage limits apply, and plans are subject to change." })] }));
58
58
  }
59
59
  /* ----------------------------------------------------------------- team */
60
60
  function TeamName({ api, onCreated }) {
@@ -84,15 +84,16 @@ function TeamName({ api, onCreated }) {
84
84
  return ((0, jsx_runtime_1.jsxs)(layout_1.YStack, { render: (0, jsx_runtime_1.jsx)("form", { onSubmit: submit, noValidate: true }), gap: "$4", items: "stretch", children: [(0, jsx_runtime_1.jsxs)(field_1.Field, { gap: "$2", children: [(0, jsx_runtime_1.jsx)(field_1.FieldLabel, { htmlFor: "hanzo-team", children: "Team name" }), (0, jsx_runtime_1.jsx)(input_1.Input, { id: "hanzo-team", name: "team", autoComplete: "organization", value: name, onChangeText: setName, maxLength: 60, height: 48, autoFocus: true })] }), wrong ? (0, jsx_runtime_1.jsx)(field_1.FieldError, { children: wrong }) : null, (0, jsx_runtime_1.jsx)(Primary, { type: "submit", disabled: !handle || busy, self: "flex-start", px: "$6", children: busy ? 'One moment…' : 'Continue' })] }));
85
85
  }
86
86
  /* ---------------------------------------------------------------- seats */
87
- function IntervalChoice({ interval, setInterval, price }) {
88
- return ((0, jsx_runtime_1.jsx)(choice_1.ChoiceGroup, { label: "Billing interval", flexWrap: "wrap", children: ['monthly', 'annual'].map((i) => ((0, jsx_runtime_1.jsxs)(choice_1.ChoiceCard, { selected: interval === i, onSelect: () => setInterval(i), flex: 1, flexBasis: 200, children: [i === 'annual' ? ((0, jsx_runtime_1.jsx)(layout_1.SizableText, { size: "$1", color: "$ink", self: "flex-end", bg: "$edge", px: "$2", rounded: "$1", children: `Save ${plans_1.saving}%` })) : null, (0, jsx_runtime_1.jsx)(layout_1.SizableText, { size: "$3", fontWeight: "600", color: "$ink", children: i === 'annual' ? 'Annually' : 'Monthly' }), (0, jsx_runtime_1.jsx)(layout_1.SizableText, { size: "$2", color: "$ink", children: price(i) })] }, i))) }));
87
+ function IntervalChoice({ interval, setInterval, price, save }) {
88
+ return ((0, jsx_runtime_1.jsx)(choice_1.ChoiceGroup, { label: "Billing interval", flexWrap: "wrap", children: ['monthly', 'annual'].filter((i) => i === 'monthly' || save > 0).map((i) => ((0, jsx_runtime_1.jsxs)(choice_1.ChoiceCard, { selected: interval === i, onSelect: () => setInterval(i), flex: 1, flexBasis: 200, children: [i === 'annual' ? ((0, jsx_runtime_1.jsx)(layout_1.SizableText, { size: "$1", color: "$ink", self: "flex-end", bg: "$edge", px: "$2", rounded: "$1", children: `Save ${save}%` })) : null, (0, jsx_runtime_1.jsx)(layout_1.SizableText, { size: "$3", fontWeight: "600", color: "$ink", children: i === 'annual' ? 'Annually' : 'Monthly' }), (0, jsx_runtime_1.jsx)(layout_1.SizableText, { size: "$2", color: "$ink", children: price(i) })] }, i))) }));
89
89
  }
90
90
  function Seats({ interval, setInterval, value, setValue, onContinue, onEnterprise, onAsk, }) {
91
91
  const [adjust, setAdjust] = (0, react_1.useState)(false);
92
92
  const std = value.plan === 'team_standard';
93
+ const premium = (0, plans_1.has)('team_premium');
93
94
  const l = (0, plans_1.lines)(value.plan, interval, value.seats);
94
95
  const set = (plan, seats) => setValue({ plan, seats: Math.max(plans_1.MIN_SEATS, Math.min(plans_1.MAX_SEATS, seats)) });
95
- return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(IntervalChoice, { interval: interval, setInterval: setInterval, price: (i) => `${(0, plans_1.usd)((0, plans_1.lines)(value.plan, i, value.seats).subtotal)}/${i === 'annual' ? 'year' : 'month'} + tax` }), (0, jsx_runtime_1.jsxs)(frame_1.Panel, { label: "Order details", children: [(0, jsx_runtime_1.jsx)(layout_1.Heading, { render: "h2", size: "$5", fontWeight: "600", color: "$ink", m: 0, children: "Order details" }), (0, jsx_runtime_1.jsx)(frame_1.Line, { label: `${value.seats} ${std ? 'Standard' : 'Premium'} seats`, note: `× ${(0, plans_1.usd)((0, plans_1.unit)(value.plan, interval))} per seat /month${interval === 'annual' ? ', billed yearly' : ''}`, value: (0, plans_1.usd)(l.subtotal), strong: true }), (0, jsx_runtime_1.jsxs)(button_1.Button, { type: "button", variant: "secondary", size: "lg", "aria-expanded": adjust, onClick: () => setAdjust((a) => !a), children: ["Adjust seats", (0, jsx_runtime_1.jsx)(lucide_icons_2_1.ChevronDown, { size: 16 })] }), adjust ? ((0, jsx_runtime_1.jsxs)(layout_1.YStack, { gap: "$3", children: [(0, jsx_runtime_1.jsxs)(layout_1.XStack, { justify: "space-between", items: "center", gap: "$3", children: [(0, jsx_runtime_1.jsx)(frame_1.Line, { label: "Standard seat", note: `Dev + ${(0, plans_1.usd)(plans_1.SEAT_ADDON)} · ${(0, plans_1.usd)((0, plans_1.unit)('team_standard', interval))}/seat/month`, value: "" }), (0, jsx_runtime_1.jsx)(stepper_1.Stepper, { label: "Standard seats", value: std ? value.seats : 0, min: 0, max: plans_1.MAX_SEATS, onChange: (n) => (n === 0 ? set('team_premium', value.seats) : set('team_standard', n)) })] }), (0, jsx_runtime_1.jsxs)(layout_1.XStack, { justify: "space-between", items: "center", gap: "$3", children: [(0, jsx_runtime_1.jsx)(frame_1.Line, { label: "Premium seat", note: `Max + ${(0, plans_1.usd)(plans_1.SEAT_ADDON)} · ${(0, plans_1.usd)((0, plans_1.unit)('team_premium', interval))}/seat/month`, value: "" }), (0, jsx_runtime_1.jsx)(stepper_1.Stepper, { label: "Premium seats", value: std ? 0 : value.seats, min: 0, max: plans_1.MAX_SEATS, onChange: (n) => (n === 0 ? set('team_standard', value.seats) : set('team_premium', n)) })] }), value.seats >= plans_1.ENTERPRISE_FROM ? ((0, jsx_runtime_1.jsxs)(layout_1.XStack, { items: "center", gap: "$1", children: [(0, jsx_runtime_1.jsxs)(layout_1.SizableText, { size: "$1", color: "$quiet", children: [plans_1.ENTERPRISE_FROM, " or more?"] }), onAsk ? ((0, jsx_runtime_1.jsx)(Ask, { onAsk: onAsk })) : ((0, jsx_runtime_1.jsx)(button_1.Button, { type: "button", variant: "link", size: "sm", px: 0, minH: 0, onClick: onEnterprise, children: "Talk to sales" }))] })) : null] })) : null, (0, jsx_runtime_1.jsx)(frame_1.Line, { label: "Subtotal", value: (0, plans_1.usd)(l.subtotal), strong: true }), (0, jsx_runtime_1.jsx)(frame_1.Line, { label: "Tax (if applicable)", value: "Calculated at payment", muted: true }), (0, jsx_runtime_1.jsx)(frame_1.Line, { label: "Total due today", value: `${(0, plans_1.usd)(l.subtotal)} + tax`, strong: true })] }), (0, jsx_runtime_1.jsx)(Primary, { onClick: onContinue, children: "Continue to payment" })] }));
96
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(IntervalChoice, { interval: interval, setInterval: setInterval, save: (0, plans_1.saving)(value.plan), price: (i) => `${(0, plans_1.usd)((0, plans_1.lines)(value.plan, i, value.seats).subtotal)}/${i === 'annual' ? 'year' : 'month'} + tax` }), (0, jsx_runtime_1.jsxs)(frame_1.Panel, { label: "Order details", children: [(0, jsx_runtime_1.jsx)(layout_1.Heading, { render: "h2", size: "$5", fontWeight: "600", color: "$ink", m: 0, children: "Order details" }), (0, jsx_runtime_1.jsx)(frame_1.Line, { label: `${value.seats} ${std ? 'Standard' : 'Premium'} seats`, note: `× ${(0, plans_1.usd)((0, plans_1.unit)(value.plan, interval))} per seat /month${interval === 'annual' ? ', billed yearly' : ''}`, value: (0, plans_1.usd)(l.subtotal), strong: true }), (0, jsx_runtime_1.jsxs)(button_1.Button, { type: "button", variant: "secondary", size: "lg", "aria-expanded": adjust, onClick: () => setAdjust((a) => !a), children: ["Adjust seats", (0, jsx_runtime_1.jsx)(lucide_icons_2_1.ChevronDown, { size: 16 })] }), adjust ? ((0, jsx_runtime_1.jsxs)(layout_1.YStack, { gap: "$3", children: [(0, jsx_runtime_1.jsxs)(layout_1.XStack, { justify: "space-between", items: "center", gap: "$3", children: [(0, jsx_runtime_1.jsx)(frame_1.Line, { label: "Standard seat", note: `${(0, plans_1.usd)((0, plans_1.unit)('team_standard', interval))}/seat/month`, value: "" }), (0, jsx_runtime_1.jsx)(stepper_1.Stepper, { label: "Standard seats", value: std ? value.seats : 0, min: 0, max: plans_1.MAX_SEATS, onChange: (n) => (n === 0 && premium ? set('team_premium', value.seats) : set('team_standard', Math.max(n, plans_1.MIN_SEATS))) })] }), premium ? ((0, jsx_runtime_1.jsxs)(layout_1.XStack, { justify: "space-between", items: "center", gap: "$3", children: [(0, jsx_runtime_1.jsx)(frame_1.Line, { label: "Premium seat", note: `${(0, plans_1.usd)((0, plans_1.unit)('team_premium', interval))}/seat/month`, value: "" }), (0, jsx_runtime_1.jsx)(stepper_1.Stepper, { label: "Premium seats", value: std ? 0 : value.seats, min: 0, max: plans_1.MAX_SEATS, onChange: (n) => (n === 0 ? set('team_standard', value.seats) : set('team_premium', n)) })] })) : null, value.seats >= plans_1.ENTERPRISE_FROM ? ((0, jsx_runtime_1.jsxs)(layout_1.XStack, { items: "center", gap: "$1", children: [(0, jsx_runtime_1.jsxs)(layout_1.SizableText, { size: "$1", color: "$quiet", children: [plans_1.ENTERPRISE_FROM, " or more?"] }), onAsk ? ((0, jsx_runtime_1.jsx)(Ask, { onAsk: onAsk })) : ((0, jsx_runtime_1.jsx)(button_1.Button, { type: "button", variant: "link", size: "sm", px: 0, minH: 0, onClick: onEnterprise, children: "Talk to sales" }))] })) : null] })) : null, (0, jsx_runtime_1.jsx)(frame_1.Line, { label: "Subtotal", value: (0, plans_1.usd)(l.subtotal), strong: true }), (0, jsx_runtime_1.jsx)(frame_1.Line, { label: "Tax (if applicable)", value: "Calculated at payment", muted: true }), (0, jsx_runtime_1.jsx)(frame_1.Line, { label: "Total due today", value: `${(0, plans_1.usd)(l.subtotal)} + tax`, strong: true })] }), (0, jsx_runtime_1.jsx)(Primary, { onClick: onContinue, children: "Continue to payment" })] }));
96
97
  }
97
98
  /* ----------------------------------------------------------- enterprise */
98
99
  function Enterprise({ api, onSent }) {
@@ -19,10 +19,11 @@ export declare function TeamName({ api, onCreated }: {
19
19
  api: string;
20
20
  onCreated: (org: string) => void | Promise<void>;
21
21
  }): import("react").JSX.Element;
22
- export declare function IntervalChoice({ interval, setInterval, price }: {
22
+ export declare function IntervalChoice({ interval, setInterval, price, save }: {
23
23
  interval: Interval;
24
24
  setInterval: (i: Interval) => void;
25
25
  price: (i: Interval) => string;
26
+ save: number;
26
27
  }): import("react").JSX.Element;
27
28
  export declare function Seats({ interval, setInterval, value, setValue, onContinue, onEnterprise, onAsk, }: {
28
29
  interval: Interval;
@@ -1 +1 @@
1
- {"version":3,"file":"screens.d.ts","sourceRoot":"","sources":["../../src/onboarding/screens.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAU/C,OAAO,EAA8F,KAAK,QAAQ,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAA;AAChJ,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,SAAS,CAAA;AAElC,mGAAmG;AACnG,eAAO,MAAM,IAAI,SAAU,MAAM,KAAG,MAOb,CAAA;AAEvB,iDAAiD;AACjD,wBAAgB,OAAO,CAAC,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,+BAMlF;AA+BD,wBAAgB,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;IAAE,MAAM,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAA;CAAE,+BAwB3F;AAiDD,wBAAgB,KAAK,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,WAAW,EAAE,CAAC,CAAC,EAAE,QAAQ,KAAK,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,IAAI,CAAC;IAAC,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,+BAa3K;AAID,wBAAgB,QAAQ,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,+BAiC7G;AAID,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,WAAW,EAAE,CAAC,CAAC,EAAE,QAAQ,KAAK,IAAI,CAAC;IAAC,KAAK,EAAE,CAAC,CAAC,EAAE,QAAQ,KAAK,MAAM,CAAA;CAAE,+BAoB1J;AAED,wBAAgB,KAAK,CAAC,EACpB,QAAQ,EACR,WAAW,EACX,KAAK,EACL,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,KAAK,GACN,EAAE;IACD,QAAQ,EAAE,QAAQ,CAAA;IAClB,WAAW,EAAE,CAAC,CAAC,EAAE,QAAQ,KAAK,IAAI,CAAA;IAClC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IACtC,QAAQ,EAAE,CAAC,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IACtD,UAAU,EAAE,MAAM,IAAI,CAAA;IACtB,YAAY,EAAE,MAAM,IAAI,CAAA;IACxB,KAAK,CAAC,EAAE,MAAM,IAAI,CAAA;CACnB,+BAyDA;AAID,wBAAgB,UAAU,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,IAAI,CAAA;CAAE,+BAiD9E"}
1
+ {"version":3,"file":"screens.d.ts","sourceRoot":"","sources":["../../src/onboarding/screens.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAU/C,OAAO,EAA8F,KAAK,QAAQ,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAA;AAChJ,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,SAAS,CAAA;AAElC,mGAAmG;AACnG,eAAO,MAAM,IAAI,SAAU,MAAM,KAAG,MAOb,CAAA;AAEvB,iDAAiD;AACjD,wBAAgB,OAAO,CAAC,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,+BAMlF;AA+BD,wBAAgB,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE;IAAE,MAAM,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAA;CAAE,+BAwB3F;AAiDD,wBAAgB,KAAK,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,WAAW,EAAE,CAAC,CAAC,EAAE,QAAQ,KAAK,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,IAAI,CAAC;IAAC,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,+BAa3K;AAID,wBAAgB,QAAQ,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,+BAiC7G;AAID,wBAAgB,cAAc,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;IAAE,QAAQ,EAAE,QAAQ,CAAC;IAAC,WAAW,EAAE,CAAC,CAAC,EAAE,QAAQ,KAAK,IAAI,CAAC;IAAC,KAAK,EAAE,CAAC,CAAC,EAAE,QAAQ,KAAK,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,+BAoB9K;AAED,wBAAgB,KAAK,CAAC,EACpB,QAAQ,EACR,WAAW,EACX,KAAK,EACL,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,KAAK,GACN,EAAE;IACD,QAAQ,EAAE,QAAQ,CAAA;IAClB,WAAW,EAAE,CAAC,CAAC,EAAE,QAAQ,KAAK,IAAI,CAAA;IAClC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IACtC,QAAQ,EAAE,CAAC,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;IACtD,UAAU,EAAE,MAAM,IAAI,CAAA;IACtB,YAAY,EAAE,MAAM,IAAI,CAAA;IACxB,KAAK,CAAC,EAAE,MAAM,IAAI,CAAA;CACnB,+BA4DA;AAID,wBAAgB,UAAU,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,IAAI,CAAA;CAAE,+BAiD9E"}
@@ -12,7 +12,7 @@ import { Stepper } from '../backends/gui/stepper.js';
12
12
  import { Textarea } from '../backends/gui/textarea.js';
13
13
  import { ApiError, call } from './api.js';
14
14
  import { IntervalToggle, Line, Panel } from './frame.js';
15
- import { ENTERPRISE_FROM, MAX_SEATS, MIN_SEATS, OFFERS, SEAT_ADDON, lines, money, saving, unit, usd } from './plans.js';
15
+ import { ENTERPRISE_FROM, MAX_SEATS, MIN_SEATS, has, lines, money, offer, saving, unit, usd, yearly } from './plans.js';
16
16
  /** A team's IAM handle from its name: lowercase words joined by hyphens, 39 characters at most. */
17
17
  export const slug = (name) => name
18
18
  .normalize('NFKD')
@@ -38,12 +38,12 @@ export function UseCards({ onPick, onAsk }) {
38
38
  return (_jsxs(YStack, { items: "center", gap: "$5", width: "100%", children: [_jsxs(XStack, { role: "group", "aria-label": "How you will use Hanzo", flexWrap: "wrap", justify: "center", gap: "$6", width: "100%", children: [_jsx(UseCard, { icon: _jsx(User, { size: 64 }), name: "For personal use", note: "For individuals who want to build and experiment with their own projects", dim: team, onPress: () => onPick('personal') }), _jsx(UseCard, { icon: _jsx(Users, { size: 64 }), name: "With my team", note: "For organizations who want to collaborate and build at scale", on: team, onPress: () => setTeam(true) })] }), team ? (_jsxs(_Fragment, { children: [_jsxs(XStack, { role: "group", "aria-label": "Team size", flexWrap: "wrap", justify: "center", gap: "$6", width: "100%", children: [_jsx(UseCard, { size: "small", name: "Team", note: `For ${MIN_SEATS}–${MAX_SEATS} people. Predictable per-seat pricing, set up in minutes.`, onPress: () => onPick('team') }), _jsx(UseCard, { size: "small", name: "Enterprise", note: `For ${ENTERPRISE_FROM} or more people. Pooled usage, advanced admin and security controls.`, onPress: () => onPick('enterprise') })] }), _jsxs(XStack, { items: "center", gap: "$1", children: [_jsx(SizableText, { size: "$2", color: "$quiet", children: "Questions?" }), _jsx(Ask, { onAsk: onAsk })] })] })) : null] }));
39
39
  }
40
40
  /* ---------------------------------------------------------------- plans */
41
- function PlanCard({ id, cta, onPick, interval, setInterval, toggle }) {
42
- const o = OFFERS[id];
43
- return (_jsxs(Card, { "aria-label": o.name, bg: "$panel", flex: 1, flexBasis: 300, maxW: 380, gap: "$0", py: 0, children: [_jsxs(YStack, { p: "$5", gap: "$3", borderBottomWidth: 1, borderBottomColor: "$borderColor", children: [_jsx(XStack, { minH: 36, justify: "flex-end", children: toggle ? _jsx(IntervalToggle, { interval: interval, onChange: setInterval, name: o.name }) : null }), _jsx(Heading, { render: "h2", size: "$7", fontWeight: "600", color: "$ink", m: 0, children: o.name }), _jsx(Paragraph, { size: "$3", color: "$quiet", m: 0, children: o.blurb }), _jsxs(XStack, { items: "center", gap: "$2", my: "$2", children: [_jsx(SizableText, { size: "$10", fontWeight: "600", color: "$ink", children: money(unit(id, interval)) }), _jsx(SizableText, { size: "$1", color: "$quiet", children: `USD / month\nbilled ${interval === 'annual' ? 'yearly' : 'monthly'}` })] }), _jsx(Primary, { onClick: onPick, children: cta }), o.monthly > 0 ? (_jsx(Paragraph, { size: "$1", color: "$quiet", text: "center", m: 0, children: "No commitment \u00B7 Cancel anytime" })) : null] }), _jsx(YStack, { render: "ul", p: "$5", gap: "$2.5", m: 0, children: o.features.map((f) => (_jsxs(XStack, { render: "li", items: "flex-start", gap: "$2.5", children: [_jsx(Check, { size: 16 }), _jsx(SizableText, { size: "$2", color: "$quiet", flex: 1, children: f })] }, f))) })] }));
41
+ function PlanCard({ id, cta, onPick, interval, setInterval, toggle, from }) {
42
+ const o = offer(id);
43
+ return (_jsxs(Card, { "aria-label": from ? 'Max' : o.name, bg: "$panel", flex: 1, flexBasis: 300, maxW: 380, gap: "$0", py: 0, children: [_jsxs(YStack, { p: "$5", gap: "$3", borderBottomWidth: 1, borderBottomColor: "$borderColor", children: [_jsx(XStack, { minH: 36, justify: "flex-end", children: toggle && yearly(id) ? _jsx(IntervalToggle, { interval: interval, onChange: setInterval, name: o.name, save: saving(id) }) : null }), _jsx(Heading, { render: "h2", size: "$7", fontWeight: "600", color: "$ink", m: 0, children: from ? 'Max' : o.name }), _jsx(Paragraph, { size: "$3", color: "$quiet", m: 0, children: o.blurb }), _jsxs(XStack, { items: "center", gap: "$2", my: "$2", children: [_jsx(SizableText, { size: "$10", fontWeight: "600", color: "$ink", children: `${from ? 'From ' : ''}${money(unit(id, interval))}` }), _jsx(SizableText, { size: "$1", color: "$quiet", children: `USD / month\nbilled ${interval === 'annual' && yearly(id) ? 'yearly' : 'monthly'}` })] }), _jsx(Primary, { onClick: onPick, children: cta }), o.monthly > 0 ? (_jsx(Paragraph, { size: "$1", color: "$quiet", text: "center", m: 0, children: "No commitment \u00B7 Cancel anytime" })) : null] }), _jsx(YStack, { render: "ul", p: "$5", gap: "$2.5", m: 0, children: o.features.map((f) => (_jsxs(XStack, { render: "li", items: "flex-start", gap: "$2.5", children: [_jsx(Check, { size: 16 }), _jsx(SizableText, { size: "$2", color: "$quiet", flex: 1, children: f })] }, f))) })] }));
44
44
  }
45
45
  export function Plans({ interval, setInterval, onFree, onPick }) {
46
- return (_jsxs(YStack, { items: "center", gap: "$4", width: "100%", children: [_jsxs(XStack, { flexWrap: "wrap", justify: "center", gap: "$5", width: "100%", children: [_jsx(PlanCard, { id: "free", cta: "Use Hanzo for free", onPick: onFree, interval: interval, setInterval: setInterval }), _jsx(PlanCard, { id: "dev", cta: "Get Dev plan", onPick: () => onPick('dev'), interval: interval, setInterval: setInterval, toggle: true }), _jsx(PlanCard, { id: "max", cta: "Get Max plan", onPick: () => onPick('max'), interval: interval, setInterval: setInterval })] }), _jsx(Paragraph, { size: "$1", color: "$quiet", text: "center", m: 0, children: "Prices are in US dollars. Usage limits apply, and plans are subject to change." })] }));
46
+ return (_jsxs(YStack, { items: "center", gap: "$4", width: "100%", children: [_jsxs(XStack, { flexWrap: "wrap", justify: "center", gap: "$5", width: "100%", children: [_jsx(PlanCard, { id: "free", cta: "Use Hanzo for free", onPick: onFree, interval: interval, setInterval: setInterval }), _jsx(PlanCard, { id: "dev", cta: `Get ${offer('dev').name} plan`, onPick: () => onPick('dev'), interval: interval, setInterval: setInterval, toggle: true }), _jsx(PlanCard, { id: "max_5x", cta: "Get Max plan", onPick: () => onPick('max_5x'), interval: interval, setInterval: setInterval, from: true })] }), _jsx(Paragraph, { size: "$1", color: "$quiet", text: "center", m: 0, children: "Prices are in US dollars. Usage limits apply, and plans are subject to change." })] }));
47
47
  }
48
48
  /* ----------------------------------------------------------------- team */
49
49
  export function TeamName({ api, onCreated }) {
@@ -73,15 +73,16 @@ export function TeamName({ api, onCreated }) {
73
73
  return (_jsxs(YStack, { render: _jsx("form", { onSubmit: submit, noValidate: true }), gap: "$4", items: "stretch", children: [_jsxs(Field, { gap: "$2", children: [_jsx(FieldLabel, { htmlFor: "hanzo-team", children: "Team name" }), _jsx(Input, { id: "hanzo-team", name: "team", autoComplete: "organization", value: name, onChangeText: setName, maxLength: 60, height: 48, autoFocus: true })] }), wrong ? _jsx(FieldError, { children: wrong }) : null, _jsx(Primary, { type: "submit", disabled: !handle || busy, self: "flex-start", px: "$6", children: busy ? 'One moment…' : 'Continue' })] }));
74
74
  }
75
75
  /* ---------------------------------------------------------------- seats */
76
- export function IntervalChoice({ interval, setInterval, price }) {
77
- return (_jsx(ChoiceGroup, { label: "Billing interval", flexWrap: "wrap", children: ['monthly', 'annual'].map((i) => (_jsxs(ChoiceCard, { selected: interval === i, onSelect: () => setInterval(i), flex: 1, flexBasis: 200, children: [i === 'annual' ? (_jsx(SizableText, { size: "$1", color: "$ink", self: "flex-end", bg: "$edge", px: "$2", rounded: "$1", children: `Save ${saving}%` })) : null, _jsx(SizableText, { size: "$3", fontWeight: "600", color: "$ink", children: i === 'annual' ? 'Annually' : 'Monthly' }), _jsx(SizableText, { size: "$2", color: "$ink", children: price(i) })] }, i))) }));
76
+ export function IntervalChoice({ interval, setInterval, price, save }) {
77
+ return (_jsx(ChoiceGroup, { label: "Billing interval", flexWrap: "wrap", children: ['monthly', 'annual'].filter((i) => i === 'monthly' || save > 0).map((i) => (_jsxs(ChoiceCard, { selected: interval === i, onSelect: () => setInterval(i), flex: 1, flexBasis: 200, children: [i === 'annual' ? (_jsx(SizableText, { size: "$1", color: "$ink", self: "flex-end", bg: "$edge", px: "$2", rounded: "$1", children: `Save ${save}%` })) : null, _jsx(SizableText, { size: "$3", fontWeight: "600", color: "$ink", children: i === 'annual' ? 'Annually' : 'Monthly' }), _jsx(SizableText, { size: "$2", color: "$ink", children: price(i) })] }, i))) }));
78
78
  }
79
79
  export function Seats({ interval, setInterval, value, setValue, onContinue, onEnterprise, onAsk, }) {
80
80
  const [adjust, setAdjust] = useState(false);
81
81
  const std = value.plan === 'team_standard';
82
+ const premium = has('team_premium');
82
83
  const l = lines(value.plan, interval, value.seats);
83
84
  const set = (plan, seats) => setValue({ plan, seats: Math.max(MIN_SEATS, Math.min(MAX_SEATS, seats)) });
84
- return (_jsxs(_Fragment, { children: [_jsx(IntervalChoice, { interval: interval, setInterval: setInterval, price: (i) => `${usd(lines(value.plan, i, value.seats).subtotal)}/${i === 'annual' ? 'year' : 'month'} + tax` }), _jsxs(Panel, { label: "Order details", children: [_jsx(Heading, { render: "h2", size: "$5", fontWeight: "600", color: "$ink", m: 0, children: "Order details" }), _jsx(Line, { label: `${value.seats} ${std ? 'Standard' : 'Premium'} seats`, note: `× ${usd(unit(value.plan, interval))} per seat /month${interval === 'annual' ? ', billed yearly' : ''}`, value: usd(l.subtotal), strong: true }), _jsxs(Button, { type: "button", variant: "secondary", size: "lg", "aria-expanded": adjust, onClick: () => setAdjust((a) => !a), children: ["Adjust seats", _jsx(ChevronDown, { size: 16 })] }), adjust ? (_jsxs(YStack, { gap: "$3", children: [_jsxs(XStack, { justify: "space-between", items: "center", gap: "$3", children: [_jsx(Line, { label: "Standard seat", note: `Dev + ${usd(SEAT_ADDON)} · ${usd(unit('team_standard', interval))}/seat/month`, value: "" }), _jsx(Stepper, { label: "Standard seats", value: std ? value.seats : 0, min: 0, max: MAX_SEATS, onChange: (n) => (n === 0 ? set('team_premium', value.seats) : set('team_standard', n)) })] }), _jsxs(XStack, { justify: "space-between", items: "center", gap: "$3", children: [_jsx(Line, { label: "Premium seat", note: `Max + ${usd(SEAT_ADDON)} · ${usd(unit('team_premium', interval))}/seat/month`, value: "" }), _jsx(Stepper, { label: "Premium seats", value: std ? 0 : value.seats, min: 0, max: MAX_SEATS, onChange: (n) => (n === 0 ? set('team_standard', value.seats) : set('team_premium', n)) })] }), value.seats >= ENTERPRISE_FROM ? (_jsxs(XStack, { items: "center", gap: "$1", children: [_jsxs(SizableText, { size: "$1", color: "$quiet", children: [ENTERPRISE_FROM, " or more?"] }), onAsk ? (_jsx(Ask, { onAsk: onAsk })) : (_jsx(Button, { type: "button", variant: "link", size: "sm", px: 0, minH: 0, onClick: onEnterprise, children: "Talk to sales" }))] })) : null] })) : null, _jsx(Line, { label: "Subtotal", value: usd(l.subtotal), strong: true }), _jsx(Line, { label: "Tax (if applicable)", value: "Calculated at payment", muted: true }), _jsx(Line, { label: "Total due today", value: `${usd(l.subtotal)} + tax`, strong: true })] }), _jsx(Primary, { onClick: onContinue, children: "Continue to payment" })] }));
85
+ return (_jsxs(_Fragment, { children: [_jsx(IntervalChoice, { interval: interval, setInterval: setInterval, save: saving(value.plan), price: (i) => `${usd(lines(value.plan, i, value.seats).subtotal)}/${i === 'annual' ? 'year' : 'month'} + tax` }), _jsxs(Panel, { label: "Order details", children: [_jsx(Heading, { render: "h2", size: "$5", fontWeight: "600", color: "$ink", m: 0, children: "Order details" }), _jsx(Line, { label: `${value.seats} ${std ? 'Standard' : 'Premium'} seats`, note: `× ${usd(unit(value.plan, interval))} per seat /month${interval === 'annual' ? ', billed yearly' : ''}`, value: usd(l.subtotal), strong: true }), _jsxs(Button, { type: "button", variant: "secondary", size: "lg", "aria-expanded": adjust, onClick: () => setAdjust((a) => !a), children: ["Adjust seats", _jsx(ChevronDown, { size: 16 })] }), adjust ? (_jsxs(YStack, { gap: "$3", children: [_jsxs(XStack, { justify: "space-between", items: "center", gap: "$3", children: [_jsx(Line, { label: "Standard seat", note: `${usd(unit('team_standard', interval))}/seat/month`, value: "" }), _jsx(Stepper, { label: "Standard seats", value: std ? value.seats : 0, min: 0, max: MAX_SEATS, onChange: (n) => (n === 0 && premium ? set('team_premium', value.seats) : set('team_standard', Math.max(n, MIN_SEATS))) })] }), premium ? (_jsxs(XStack, { justify: "space-between", items: "center", gap: "$3", children: [_jsx(Line, { label: "Premium seat", note: `${usd(unit('team_premium', interval))}/seat/month`, value: "" }), _jsx(Stepper, { label: "Premium seats", value: std ? 0 : value.seats, min: 0, max: MAX_SEATS, onChange: (n) => (n === 0 ? set('team_standard', value.seats) : set('team_premium', n)) })] })) : null, value.seats >= ENTERPRISE_FROM ? (_jsxs(XStack, { items: "center", gap: "$1", children: [_jsxs(SizableText, { size: "$1", color: "$quiet", children: [ENTERPRISE_FROM, " or more?"] }), onAsk ? (_jsx(Ask, { onAsk: onAsk })) : (_jsx(Button, { type: "button", variant: "link", size: "sm", px: 0, minH: 0, onClick: onEnterprise, children: "Talk to sales" }))] })) : null] })) : null, _jsx(Line, { label: "Subtotal", value: usd(l.subtotal), strong: true }), _jsx(Line, { label: "Tax (if applicable)", value: "Calculated at payment", muted: true }), _jsx(Line, { label: "Total due today", value: `${usd(l.subtotal)} + tax`, strong: true })] }), _jsx(Primary, { onClick: onContinue, children: "Continue to payment" })] }));
85
86
  }
86
87
  /* ----------------------------------------------------------- enterprise */
87
88
  export function Enterprise({ api, onSent }) {
@@ -1 +1 @@
1
- {"version":3,"file":"screens.js","sourceRoot":"","sources":["../../src/onboarding/screens.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"screens.js","sourceRoot":"","sources":["../../src/onboarding/screens.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hanzo/ui",
3
- "version": "8.27.31",
3
+ "version": "8.27.35",
4
4
  "type": "module",
5
5
  "description": "Hanzo UI — the one canonical Hanzo component library, on @hanzo/gui + @hanzo/design. ONE substrate: every component renders through @hanzo/gui primitives, so the same import works on web, native (expo) and desktop (Tauri). Self-contained (theme.css), presentational, host-agnostic, clean-room.",
6
6
  "exports": {
@@ -110,6 +110,12 @@
110
110
  "require": "./dist/auth/index.cjs",
111
111
  "default": "./dist/auth/index.js"
112
112
  },
113
+ "./consent": {
114
+ "types": "./dist/consent/index.d.ts",
115
+ "import": "./dist/consent/index.js",
116
+ "require": "./dist/consent/index.cjs",
117
+ "default": "./dist/consent/index.js"
118
+ },
113
119
  "./marketing": {
114
120
  "types": "./dist/marketing/index.d.ts",
115
121
  "import": "./dist/marketing/index.js",
@@ -311,6 +317,7 @@
311
317
  "@hanzo/canvas": ">=0.2.3",
312
318
  "@hanzo/cd": ">=0.1.2",
313
319
  "@hanzo/dashboard": ">=0.2.0",
320
+ "@hanzo/event": ">=0.3.48",
314
321
  "@hanzo/data": ">=1.2.4",
315
322
  "@hanzo/gui": "^8.3.5",
316
323
  "@hanzo/iam": ">=0.21.21",
@@ -349,6 +356,9 @@
349
356
  "@hanzo/cd": {
350
357
  "optional": true
351
358
  },
359
+ "@hanzo/event": {
360
+ "optional": true
361
+ },
352
362
  "@hanzo/usage": {
353
363
  "optional": true
354
364
  },
@@ -367,6 +377,7 @@
367
377
  },
368
378
  "devDependencies": {
369
379
  "@hanzo/cd": "0.1.2",
380
+ "@hanzo/event": "0.3.49",
370
381
  "@hanzo/dashboard": "0.2.0",
371
382
  "@hanzo/data": "1.2.4",
372
383
  "@hanzo/gui": "8.3.5",