@salesmind-ai/design-system 1.7.0 → 1.9.0

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 (64) hide show
  1. package/dist/ChangeEmail-BuUhjW0o.d.cts +226 -0
  2. package/dist/ChangeEmail-BuUhjW0o.d.ts +226 -0
  3. package/dist/{chunk-3NS6X2R4.cjs → chunk-5EIBL6DQ.cjs} +133 -38
  4. package/dist/chunk-5EIBL6DQ.cjs.map +1 -0
  5. package/dist/chunk-AI2YEYT4.js +1368 -0
  6. package/dist/chunk-AI2YEYT4.js.map +1 -0
  7. package/dist/{chunk-4QQKREVH.cjs → chunk-LM3UJILC.cjs} +3 -3
  8. package/dist/{chunk-4QQKREVH.cjs.map → chunk-LM3UJILC.cjs.map} +1 -1
  9. package/dist/{chunk-K7NQ7TQG.cjs → chunk-M4MLGT4B.cjs} +84 -27
  10. package/dist/chunk-M4MLGT4B.cjs.map +1 -0
  11. package/dist/{chunk-6BUS7RMS.js → chunk-Q3YVBUKQ.js} +133 -38
  12. package/dist/chunk-Q3YVBUKQ.js.map +1 -0
  13. package/dist/{chunk-25TUCNN6.js → chunk-QVGDMAZY.js} +84 -27
  14. package/dist/chunk-QVGDMAZY.js.map +1 -0
  15. package/dist/{chunk-2TC5EVSJ.js → chunk-TPZ3PKSF.js} +3 -3
  16. package/dist/{chunk-2TC5EVSJ.js.map → chunk-TPZ3PKSF.js.map} +1 -1
  17. package/dist/chunk-YWJKSY5C.cjs +1381 -0
  18. package/dist/chunk-YWJKSY5C.cjs.map +1 -0
  19. package/dist/index.cjs +57 -40
  20. package/dist/index.cjs.map +1 -1
  21. package/dist/index.css +2426 -0
  22. package/dist/index.css.map +1 -1
  23. package/dist/index.d.cts +1 -0
  24. package/dist/index.d.ts +1 -0
  25. package/dist/index.js +3 -2
  26. package/dist/index.js.map +1 -1
  27. package/dist/marketing/index.cjs +27 -27
  28. package/dist/marketing/index.js +1 -1
  29. package/dist/nav/index.cjs +10 -10
  30. package/dist/nav/index.css +54 -0
  31. package/dist/nav/index.css.map +1 -1
  32. package/dist/nav/index.d.cts +9 -0
  33. package/dist/nav/index.d.ts +9 -0
  34. package/dist/nav/index.js +1 -1
  35. package/dist/onboarding/index.cjs +5870 -0
  36. package/dist/onboarding/index.cjs.map +1 -0
  37. package/dist/onboarding/index.css +557 -0
  38. package/dist/onboarding/index.css.map +1 -0
  39. package/dist/onboarding/index.d.cts +1589 -0
  40. package/dist/onboarding/index.d.ts +1589 -0
  41. package/dist/onboarding/index.js +5736 -0
  42. package/dist/onboarding/index.js.map +1 -0
  43. package/dist/styles/styles.css +2593 -0
  44. package/dist/v2-auth/index.cjs +59 -0
  45. package/dist/v2-auth/index.cjs.map +1 -0
  46. package/dist/v2-auth/index.css +3360 -0
  47. package/dist/v2-auth/index.css.map +1 -0
  48. package/dist/v2-auth/index.d.cts +76 -0
  49. package/dist/v2-auth/index.d.ts +76 -0
  50. package/dist/v2-auth/index.js +24 -0
  51. package/dist/v2-auth/index.js.map +1 -0
  52. package/dist/web/index.cjs +7 -7
  53. package/dist/web/index.d.cts +1 -1
  54. package/dist/web/index.d.ts +1 -1
  55. package/dist/web/index.js +1 -1
  56. package/dist/web/server/index.cjs +7 -7
  57. package/dist/web/server/index.d.cts +91 -27
  58. package/dist/web/server/index.d.ts +91 -27
  59. package/dist/web/server/index.js +1 -1
  60. package/package.json +14 -2
  61. package/dist/chunk-25TUCNN6.js.map +0 -1
  62. package/dist/chunk-3NS6X2R4.cjs.map +0 -1
  63. package/dist/chunk-6BUS7RMS.js.map +0 -1
  64. package/dist/chunk-K7NQ7TQG.cjs.map +0 -1
@@ -1,4 +1,4 @@
1
- export { ArticleMeta, BrandConfig, CareerForSchema, CustomerOrganizationMeta, FAQItem, GlossaryTermForSchema, HowToMeta, HowToStep, ItemForList, JsonLd, JsonLdProps, PersonMeta, PricingPlan, SeoBreadcrumbItem, ServiceMotion, TestimonialForSchema, TranscriptForSchema, VideoObjectMeta, aggregateRatingFromTestimonials, buildPageGraph, canonicalUrl, createEntityIds, createSchemaGenerators } from './server/index.js';
1
+ export { ArticleMeta, BrandConfig, CareerForSchema, CustomerOrganizationMeta, FAQItem, GlossaryTermForSchema, HowToMeta, HowToStep, ItemForList, JsonLd, JsonLdProps, PersonMeta, PricingPlan, SeoBreadcrumbItem, ServiceMotion, SoftwareApplicationAggregateRatingConfig, SoftwareApplicationOffersConfig, SoftwareApplicationSchemaOptions, TestimonialForSchema, TranscriptForSchema, VideoObjectMeta, aggregateRatingFromTestimonials, buildPageGraph, canonicalUrl, createEntityIds, createSchemaGenerators } from './server/index.js';
2
2
  export { AnalyticsContextValue, AnalyticsEventProps, AnalyticsLoaderConfig, AnalyticsProvider, AnalyticsProviderProps, COOKIE_CONSENT_EVENT, COOKIE_CONSENT_KEY, ConsentStatus, CookieConsent, CookieConsentLabels, CookieConsentProps, TrackFn, createAnalyticsLoader, isEEAUser, loadClarity, loadGoogleAnalytics, useAnalytics, useCookieConsent } from './client/index.js';
3
3
  import { U as UtmParams } from '../types-D5bPCZi6.js';
4
4
  export { F as FirstTouchAttribution, a as UrlClassification, b as UtmAuditEntry, c as UtmBlockedError, d as UtmCampaign, e as UtmComplianceResult, f as UtmComplianceStatus, g as UtmConfidence, h as UtmContent, i as UtmMedium, j as UtmMediumAppPage, k as UtmMediumMessaging, l as UtmMediumWebPage, m as UtmOverrides, n as UtmSource, o as UtmSourceRequiringSeller, p as UtmTerm } from '../types-D5bPCZi6.js';
package/dist/web/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- export { JsonLd, aggregateRatingFromTestimonials, buildPageGraph, canonicalUrl, createEntityIds, createSchemaGenerators } from '../chunk-25TUCNN6.js';
2
+ export { JsonLd, aggregateRatingFromTestimonials, buildPageGraph, canonicalUrl, createEntityIds, createSchemaGenerators } from '../chunk-QVGDMAZY.js';
3
3
  export { AnalyticsProvider, COOKIE_CONSENT_EVENT, COOKIE_CONSENT_KEY, CookieConsent, createAnalyticsLoader, isEEAUser, loadClarity, loadGoogleAnalytics, useCookieConsent } from '../chunk-FZJLTJZS.js';
4
4
  export { UTM_CAMPAIGNS, UTM_CONTENTS, UTM_MEDIUMS_ALL, UTM_MEDIUMS_APP, UTM_MEDIUMS_MESSAGING, UTM_MEDIUMS_WEB, UTM_SOURCES, UTM_SOURCES_REQUIRING_SELLER, UTM_TERMS, buildBlockedError, classifyAndEnforce, createAuditEntry, isValidUtmParams, parseUtmParams, requiresSellerAttribution, toFirstTouchAttribution, validateCompliance, validateUtmField } from '../chunk-BILT5KD3.js';
5
5
  import '../chunk-KJHPOB3J.js';
@@ -1,32 +1,32 @@
1
1
  'use strict';
2
2
 
3
- var chunkK7NQ7TQG_cjs = require('../../chunk-K7NQ7TQG.cjs');
3
+ var chunkM4MLGT4B_cjs = require('../../chunk-M4MLGT4B.cjs');
4
4
 
5
5
 
6
6
 
7
7
  Object.defineProperty(exports, "JsonLd", {
8
8
  enumerable: true,
9
- get: function () { return chunkK7NQ7TQG_cjs.JsonLd; }
9
+ get: function () { return chunkM4MLGT4B_cjs.JsonLd; }
10
10
  });
11
11
  Object.defineProperty(exports, "aggregateRatingFromTestimonials", {
12
12
  enumerable: true,
13
- get: function () { return chunkK7NQ7TQG_cjs.aggregateRatingFromTestimonials; }
13
+ get: function () { return chunkM4MLGT4B_cjs.aggregateRatingFromTestimonials; }
14
14
  });
15
15
  Object.defineProperty(exports, "buildPageGraph", {
16
16
  enumerable: true,
17
- get: function () { return chunkK7NQ7TQG_cjs.buildPageGraph; }
17
+ get: function () { return chunkM4MLGT4B_cjs.buildPageGraph; }
18
18
  });
19
19
  Object.defineProperty(exports, "canonicalUrl", {
20
20
  enumerable: true,
21
- get: function () { return chunkK7NQ7TQG_cjs.canonicalUrl; }
21
+ get: function () { return chunkM4MLGT4B_cjs.canonicalUrl; }
22
22
  });
23
23
  Object.defineProperty(exports, "createEntityIds", {
24
24
  enumerable: true,
25
- get: function () { return chunkK7NQ7TQG_cjs.createEntityIds; }
25
+ get: function () { return chunkM4MLGT4B_cjs.createEntityIds; }
26
26
  });
27
27
  Object.defineProperty(exports, "createSchemaGenerators", {
28
28
  enumerable: true,
29
- get: function () { return chunkK7NQ7TQG_cjs.createSchemaGenerators; }
29
+ get: function () { return chunkM4MLGT4B_cjs.createSchemaGenerators; }
30
30
  });
31
31
  //# sourceMappingURL=out.js.map
32
32
  //# sourceMappingURL=index.cjs.map
@@ -13,9 +13,26 @@ interface SoftwareApplicationAggregateRatingConfig {
13
13
  bestRating?: number;
14
14
  worstRating?: number;
15
15
  }
16
+ /**
17
+ * AggregateOffer defaults for the SoftwareApplication schema.
18
+ *
19
+ * Google requires SoftwareApplication to expose `offers` with a price plus
20
+ * (`aggregateRating` OR `review`). We expose only the price floor via an
21
+ * `AggregateOffer` so A/B-tested tier prices stay hidden.
22
+ */
23
+ interface SoftwareApplicationOffersConfig {
24
+ /** Lowest publicly advertised price (the "starting from" floor). */
25
+ lowPrice: string;
26
+ priceCurrency: string;
27
+ /** Number of purchasable offers/tiers behind the floor. */
28
+ offerCount: number;
29
+ /** Optional URL where the offers can be viewed (defaults to `${brand.url}/pricing`). */
30
+ url?: string;
31
+ }
16
32
  /** Per-call options for `softwareApplication()`. */
17
33
  interface SoftwareApplicationSchemaOptions {
18
34
  aggregateRating?: SoftwareApplicationAggregateRatingConfig;
35
+ offers?: SoftwareApplicationOffersConfig;
19
36
  }
20
37
  /** Brand configuration required by schema generators */
21
38
  interface BrandConfig {
@@ -27,6 +44,8 @@ interface BrandConfig {
27
44
  sameAs?: string[];
28
45
  /** Optional aggregate-rating defaults applied to SoftwareApplication schema. */
29
46
  aggregateRating?: SoftwareApplicationAggregateRatingConfig;
47
+ /** Optional AggregateOffer defaults applied to SoftwareApplication schema. */
48
+ softwareApplicationOffers?: SoftwareApplicationOffersConfig;
30
49
  }
31
50
  interface BreadcrumbItem {
32
51
  name: string;
@@ -177,7 +196,12 @@ interface VideoObjectMeta {
177
196
  * Schema.org Generator System
178
197
  *
179
198
  * Pure functions that generate structured data objects for SEO.
180
- * Each generator accepts a `BrandConfig` and optional `locale` for `inLanguage` injection.
199
+ * Each generator accepts a `BrandConfig` and an optional `locale`. `inLanguage`
200
+ * is emitted ONLY on schema types where schema.org permits it (CreativeWork
201
+ * subtypes: WebPage, WebSite, Article, FAQPage, VideoObject, DefinedTermSet,
202
+ * HowTo, SoftwareApplication). Types that forbid it (Organization, Person,
203
+ * BreadcrumbList, Product, Service, JobPosting) accept `locale` for signature
204
+ * stability but do not emit it.
181
205
  *
182
206
  * Architecture:
183
207
  * - Each generator returns an object with its own `@context` (standalone-safe).
@@ -226,8 +250,15 @@ declare function createEntityIds(brand: BrandConfig): {
226
250
  * Returns an object with methods for each schema type.
227
251
  */
228
252
  declare function createSchemaGenerators(brand: BrandConfig, supportedLanguages?: readonly string[]): {
229
- /** Organization schema — Homepage + About page. */
230
- organization(locale?: string): {
253
+ /**
254
+ * Organization schema — Homepage + About page.
255
+ *
256
+ * Note: schema.org does NOT allow `inLanguage` or `availableLanguage` on
257
+ * Organization. The multilingual signal is carried by `knowsLanguage`
258
+ * (valid on Organization, BCP-47 codes). The `locale` param is retained
259
+ * for call-site signature stability but no longer emitted here.
260
+ */
261
+ organization(_locale?: string): {
231
262
  contactPoint: Record<string, unknown>[];
232
263
  areaServed: string;
233
264
  sameAs?: string[] | undefined;
@@ -241,8 +272,7 @@ declare function createSchemaGenerators(brand: BrandConfig, supportedLanguages?:
241
272
  url: string;
242
273
  };
243
274
  description: string;
244
- inLanguage: string;
245
- availableLanguage: string[];
275
+ knowsLanguage: string[];
246
276
  founder: {
247
277
  '@type': string;
248
278
  name: string;
@@ -286,6 +316,8 @@ declare function createSchemaGenerators(brand: BrandConfig, supportedLanguages?:
286
316
  description: string;
287
317
  inLanguage: string;
288
318
  isPartOf: {
319
+ name?: string | undefined;
320
+ url?: string | undefined;
289
321
  '@type': string;
290
322
  '@id': `${string}/#website`;
291
323
  };
@@ -311,6 +343,14 @@ declare function createSchemaGenerators(brand: BrandConfig, supportedLanguages?:
311
343
  bestRating: string;
312
344
  worstRating: string;
313
345
  } | undefined;
346
+ offers?: {
347
+ '@type': string;
348
+ lowPrice: string;
349
+ priceCurrency: string;
350
+ offerCount: number;
351
+ url: string;
352
+ availability: string;
353
+ } | undefined;
314
354
  '@context': string;
315
355
  '@type': string;
316
356
  '@id': `${string}/#software`;
@@ -320,7 +360,6 @@ declare function createSchemaGenerators(brand: BrandConfig, supportedLanguages?:
320
360
  applicationCategory: string;
321
361
  operatingSystem: string;
322
362
  inLanguage: string;
323
- availableLanguage: string[];
324
363
  };
325
364
  /** Article schema — Blog posts, Comparison pages. */
326
365
  article(meta: ArticleMeta, locale?: string): {
@@ -390,12 +429,15 @@ declare function createSchemaGenerators(brand: BrandConfig, supportedLanguages?:
390
429
  };
391
430
  }[];
392
431
  };
393
- /** BreadcrumbList schema — Every public page. */
394
- breadcrumb(items: BreadcrumbItem[], locale?: string): {
432
+ /**
433
+ * BreadcrumbList schema Every public page.
434
+ * `inLanguage` is NOT valid on BreadcrumbList and is not emitted. The
435
+ * `locale` param is retained for call-site signature stability.
436
+ */
437
+ breadcrumb(items: BreadcrumbItem[], _locale?: string): {
395
438
  '@context': string;
396
439
  '@type': string;
397
440
  '@id': string;
398
- inLanguage: string;
399
441
  itemListElement: {
400
442
  '@type': string;
401
443
  position: number;
@@ -403,8 +445,12 @@ declare function createSchemaGenerators(brand: BrandConfig, supportedLanguages?:
403
445
  item: string;
404
446
  }[];
405
447
  };
406
- /** Person schema — Team page, Blog author, Comparison author. */
407
- person(person: PersonMeta, locale?: string): {
448
+ /**
449
+ * Person schema — Team page, Blog author, Comparison author.
450
+ * `inLanguage` is NOT valid on Person (Person is not a CreativeWork) and is
451
+ * not emitted. The `locale` param is retained for signature stability.
452
+ */
453
+ person(person: PersonMeta, _locale?: string): {
408
454
  '@context': string;
409
455
  '@type': string;
410
456
  '@id': string;
@@ -412,7 +458,6 @@ declare function createSchemaGenerators(brand: BrandConfig, supportedLanguages?:
412
458
  jobTitle: string;
413
459
  url: string | undefined;
414
460
  image: string | undefined;
415
- inLanguage: string;
416
461
  worksFor: {
417
462
  name: string;
418
463
  '@id'?: string | undefined;
@@ -452,8 +497,12 @@ declare function createSchemaGenerators(brand: BrandConfig, supportedLanguages?:
452
497
  };
453
498
  reviewBody: string;
454
499
  };
455
- /** Product + multiple Offers schema — Pricing page. */
456
- productWithOffers(plans: PricingPlan[], testimonials?: TestimonialForSchema[], locale?: string): {
500
+ /**
501
+ * Product + multiple Offers schema — Pricing page.
502
+ * `inLanguage` is NOT valid on Product and is not emitted. The `locale`
503
+ * param is retained for call-site signature stability.
504
+ */
505
+ productWithOffers(plans: PricingPlan[], testimonials?: TestimonialForSchema[], _locale?: string): {
457
506
  offers: {
458
507
  priceSpecification?: {
459
508
  '@type': string;
@@ -486,7 +535,6 @@ declare function createSchemaGenerators(brand: BrandConfig, supportedLanguages?:
486
535
  '@id': `${string}/#organization`;
487
536
  name: string;
488
537
  };
489
- inLanguage: string;
490
538
  };
491
539
  /** VideoObject schema — Transcript detail pages. */
492
540
  videoObject(transcript: TranscriptForSchema, locale?: string): {
@@ -508,10 +556,15 @@ declare function createSchemaGenerators(brand: BrandConfig, supportedLanguages?:
508
556
  name: string;
509
557
  description: string;
510
558
  };
511
- /** CustomerOrganization schema — Customer's company for Success Story pages. */
559
+ /**
560
+ * CustomerOrganization schema — Customer's company for Success Story pages.
561
+ * `industry` is NOT valid on Organization (schema.org allows only the coded
562
+ * `naics` / `isicV4`, plus free-text `keywords`). The free-text industry
563
+ * value is carried by `keywords`.
564
+ */
512
565
  customerOrganization(meta: CustomerOrganizationMeta): {
513
566
  sameAs?: string[] | undefined;
514
- industry?: string | undefined;
567
+ keywords?: string | undefined;
515
568
  description?: string | undefined;
516
569
  logo?: string | undefined;
517
570
  url?: string | undefined;
@@ -556,8 +609,12 @@ declare function createSchemaGenerators(brand: BrandConfig, supportedLanguages?:
556
609
  description: string;
557
610
  inLanguage: string;
558
611
  };
559
- /** Service schema — Growth motion service offerings. */
560
- service(motion: ServiceMotion, locale?: string): {
612
+ /**
613
+ * Service schema Growth motion service offerings.
614
+ * Neither `inLanguage` nor `availableLanguage` is valid on Service, so both
615
+ * are dropped. The `locale` param is retained for signature stability.
616
+ */
617
+ service(motion: ServiceMotion, _locale?: string): {
561
618
  termsOfService: string;
562
619
  offers?: {
563
620
  '@type': string;
@@ -576,13 +633,14 @@ declare function createSchemaGenerators(brand: BrandConfig, supportedLanguages?:
576
633
  '@id': `${string}/#organization`;
577
634
  name: string;
578
635
  };
579
- inLanguage: string;
580
- availableLanguage: string[];
581
636
  areaServed: string;
582
637
  };
583
- /** JobPosting schema — Career detail pages. */
584
- jobPosting(job: CareerForSchema, locale?: string): {
585
- inLanguage: string;
638
+ /**
639
+ * JobPosting schema Career detail pages.
640
+ * `inLanguage` is NOT valid on JobPosting and is not emitted. The `locale`
641
+ * param is retained for call-site signature stability.
642
+ */
643
+ jobPosting(job: CareerForSchema, _locale?: string): {
586
644
  jobLocation: {
587
645
  '@type': string;
588
646
  address: {
@@ -604,7 +662,6 @@ declare function createSchemaGenerators(brand: BrandConfig, supportedLanguages?:
604
662
  sameAs: string;
605
663
  };
606
664
  } | {
607
- inLanguage: string;
608
665
  jobLocationType: string;
609
666
  '@context': string;
610
667
  '@type': string;
@@ -649,7 +706,14 @@ declare function createSchemaGenerators(brand: BrandConfig, supportedLanguages?:
649
706
  url: string;
650
707
  }[];
651
708
  };
652
- /** Speakable — marks content sections suitable for voice assistant reading. */
709
+ /**
710
+ * Speakable — marks content sections suitable for voice assistant reading.
711
+ *
712
+ * Includes its own `@context` so it is valid when rendered as a standalone
713
+ * top-level JSON-LD node. When embedded inside another schema (e.g. as the
714
+ * `speakable` value on WebPage/Article), the surrounding `buildPageGraph`
715
+ * strips the redundant `@context`, so the nested case is unaffected.
716
+ */
653
717
  speakable(cssSelectors: string[]): Record<string, unknown>;
654
718
  /** Access the entity IDs for cross-referencing */
655
719
  entityIds: {
@@ -727,4 +791,4 @@ interface JsonLdProps {
727
791
  }
728
792
  declare function JsonLd({ data, nonce }: JsonLdProps): react_jsx_runtime.JSX.Element;
729
793
 
730
- export { type ArticleMeta, type BrandConfig, type CareerForSchema, type CustomerOrganizationMeta, type FAQItem, type GlossaryTermForSchema, type HowToMeta, type HowToStep, type ItemForList, JsonLd, type JsonLdProps, type PersonMeta, type PricingPlan, type BreadcrumbItem as SeoBreadcrumbItem, type ServiceMotion, type TestimonialForSchema, type TranscriptForSchema, type VideoObjectMeta, aggregateRatingFromTestimonials, buildPageGraph, canonicalUrl, createEntityIds, createSchemaGenerators };
794
+ export { type ArticleMeta, type BrandConfig, type CareerForSchema, type CustomerOrganizationMeta, type FAQItem, type GlossaryTermForSchema, type HowToMeta, type HowToStep, type ItemForList, JsonLd, type JsonLdProps, type PersonMeta, type PricingPlan, type BreadcrumbItem as SeoBreadcrumbItem, type ServiceMotion, type SoftwareApplicationAggregateRatingConfig, type SoftwareApplicationOffersConfig, type SoftwareApplicationSchemaOptions, type TestimonialForSchema, type TranscriptForSchema, type VideoObjectMeta, aggregateRatingFromTestimonials, buildPageGraph, canonicalUrl, createEntityIds, createSchemaGenerators };
@@ -13,9 +13,26 @@ interface SoftwareApplicationAggregateRatingConfig {
13
13
  bestRating?: number;
14
14
  worstRating?: number;
15
15
  }
16
+ /**
17
+ * AggregateOffer defaults for the SoftwareApplication schema.
18
+ *
19
+ * Google requires SoftwareApplication to expose `offers` with a price plus
20
+ * (`aggregateRating` OR `review`). We expose only the price floor via an
21
+ * `AggregateOffer` so A/B-tested tier prices stay hidden.
22
+ */
23
+ interface SoftwareApplicationOffersConfig {
24
+ /** Lowest publicly advertised price (the "starting from" floor). */
25
+ lowPrice: string;
26
+ priceCurrency: string;
27
+ /** Number of purchasable offers/tiers behind the floor. */
28
+ offerCount: number;
29
+ /** Optional URL where the offers can be viewed (defaults to `${brand.url}/pricing`). */
30
+ url?: string;
31
+ }
16
32
  /** Per-call options for `softwareApplication()`. */
17
33
  interface SoftwareApplicationSchemaOptions {
18
34
  aggregateRating?: SoftwareApplicationAggregateRatingConfig;
35
+ offers?: SoftwareApplicationOffersConfig;
19
36
  }
20
37
  /** Brand configuration required by schema generators */
21
38
  interface BrandConfig {
@@ -27,6 +44,8 @@ interface BrandConfig {
27
44
  sameAs?: string[];
28
45
  /** Optional aggregate-rating defaults applied to SoftwareApplication schema. */
29
46
  aggregateRating?: SoftwareApplicationAggregateRatingConfig;
47
+ /** Optional AggregateOffer defaults applied to SoftwareApplication schema. */
48
+ softwareApplicationOffers?: SoftwareApplicationOffersConfig;
30
49
  }
31
50
  interface BreadcrumbItem {
32
51
  name: string;
@@ -177,7 +196,12 @@ interface VideoObjectMeta {
177
196
  * Schema.org Generator System
178
197
  *
179
198
  * Pure functions that generate structured data objects for SEO.
180
- * Each generator accepts a `BrandConfig` and optional `locale` for `inLanguage` injection.
199
+ * Each generator accepts a `BrandConfig` and an optional `locale`. `inLanguage`
200
+ * is emitted ONLY on schema types where schema.org permits it (CreativeWork
201
+ * subtypes: WebPage, WebSite, Article, FAQPage, VideoObject, DefinedTermSet,
202
+ * HowTo, SoftwareApplication). Types that forbid it (Organization, Person,
203
+ * BreadcrumbList, Product, Service, JobPosting) accept `locale` for signature
204
+ * stability but do not emit it.
181
205
  *
182
206
  * Architecture:
183
207
  * - Each generator returns an object with its own `@context` (standalone-safe).
@@ -226,8 +250,15 @@ declare function createEntityIds(brand: BrandConfig): {
226
250
  * Returns an object with methods for each schema type.
227
251
  */
228
252
  declare function createSchemaGenerators(brand: BrandConfig, supportedLanguages?: readonly string[]): {
229
- /** Organization schema — Homepage + About page. */
230
- organization(locale?: string): {
253
+ /**
254
+ * Organization schema — Homepage + About page.
255
+ *
256
+ * Note: schema.org does NOT allow `inLanguage` or `availableLanguage` on
257
+ * Organization. The multilingual signal is carried by `knowsLanguage`
258
+ * (valid on Organization, BCP-47 codes). The `locale` param is retained
259
+ * for call-site signature stability but no longer emitted here.
260
+ */
261
+ organization(_locale?: string): {
231
262
  contactPoint: Record<string, unknown>[];
232
263
  areaServed: string;
233
264
  sameAs?: string[] | undefined;
@@ -241,8 +272,7 @@ declare function createSchemaGenerators(brand: BrandConfig, supportedLanguages?:
241
272
  url: string;
242
273
  };
243
274
  description: string;
244
- inLanguage: string;
245
- availableLanguage: string[];
275
+ knowsLanguage: string[];
246
276
  founder: {
247
277
  '@type': string;
248
278
  name: string;
@@ -286,6 +316,8 @@ declare function createSchemaGenerators(brand: BrandConfig, supportedLanguages?:
286
316
  description: string;
287
317
  inLanguage: string;
288
318
  isPartOf: {
319
+ name?: string | undefined;
320
+ url?: string | undefined;
289
321
  '@type': string;
290
322
  '@id': `${string}/#website`;
291
323
  };
@@ -311,6 +343,14 @@ declare function createSchemaGenerators(brand: BrandConfig, supportedLanguages?:
311
343
  bestRating: string;
312
344
  worstRating: string;
313
345
  } | undefined;
346
+ offers?: {
347
+ '@type': string;
348
+ lowPrice: string;
349
+ priceCurrency: string;
350
+ offerCount: number;
351
+ url: string;
352
+ availability: string;
353
+ } | undefined;
314
354
  '@context': string;
315
355
  '@type': string;
316
356
  '@id': `${string}/#software`;
@@ -320,7 +360,6 @@ declare function createSchemaGenerators(brand: BrandConfig, supportedLanguages?:
320
360
  applicationCategory: string;
321
361
  operatingSystem: string;
322
362
  inLanguage: string;
323
- availableLanguage: string[];
324
363
  };
325
364
  /** Article schema — Blog posts, Comparison pages. */
326
365
  article(meta: ArticleMeta, locale?: string): {
@@ -390,12 +429,15 @@ declare function createSchemaGenerators(brand: BrandConfig, supportedLanguages?:
390
429
  };
391
430
  }[];
392
431
  };
393
- /** BreadcrumbList schema — Every public page. */
394
- breadcrumb(items: BreadcrumbItem[], locale?: string): {
432
+ /**
433
+ * BreadcrumbList schema Every public page.
434
+ * `inLanguage` is NOT valid on BreadcrumbList and is not emitted. The
435
+ * `locale` param is retained for call-site signature stability.
436
+ */
437
+ breadcrumb(items: BreadcrumbItem[], _locale?: string): {
395
438
  '@context': string;
396
439
  '@type': string;
397
440
  '@id': string;
398
- inLanguage: string;
399
441
  itemListElement: {
400
442
  '@type': string;
401
443
  position: number;
@@ -403,8 +445,12 @@ declare function createSchemaGenerators(brand: BrandConfig, supportedLanguages?:
403
445
  item: string;
404
446
  }[];
405
447
  };
406
- /** Person schema — Team page, Blog author, Comparison author. */
407
- person(person: PersonMeta, locale?: string): {
448
+ /**
449
+ * Person schema — Team page, Blog author, Comparison author.
450
+ * `inLanguage` is NOT valid on Person (Person is not a CreativeWork) and is
451
+ * not emitted. The `locale` param is retained for signature stability.
452
+ */
453
+ person(person: PersonMeta, _locale?: string): {
408
454
  '@context': string;
409
455
  '@type': string;
410
456
  '@id': string;
@@ -412,7 +458,6 @@ declare function createSchemaGenerators(brand: BrandConfig, supportedLanguages?:
412
458
  jobTitle: string;
413
459
  url: string | undefined;
414
460
  image: string | undefined;
415
- inLanguage: string;
416
461
  worksFor: {
417
462
  name: string;
418
463
  '@id'?: string | undefined;
@@ -452,8 +497,12 @@ declare function createSchemaGenerators(brand: BrandConfig, supportedLanguages?:
452
497
  };
453
498
  reviewBody: string;
454
499
  };
455
- /** Product + multiple Offers schema — Pricing page. */
456
- productWithOffers(plans: PricingPlan[], testimonials?: TestimonialForSchema[], locale?: string): {
500
+ /**
501
+ * Product + multiple Offers schema — Pricing page.
502
+ * `inLanguage` is NOT valid on Product and is not emitted. The `locale`
503
+ * param is retained for call-site signature stability.
504
+ */
505
+ productWithOffers(plans: PricingPlan[], testimonials?: TestimonialForSchema[], _locale?: string): {
457
506
  offers: {
458
507
  priceSpecification?: {
459
508
  '@type': string;
@@ -486,7 +535,6 @@ declare function createSchemaGenerators(brand: BrandConfig, supportedLanguages?:
486
535
  '@id': `${string}/#organization`;
487
536
  name: string;
488
537
  };
489
- inLanguage: string;
490
538
  };
491
539
  /** VideoObject schema — Transcript detail pages. */
492
540
  videoObject(transcript: TranscriptForSchema, locale?: string): {
@@ -508,10 +556,15 @@ declare function createSchemaGenerators(brand: BrandConfig, supportedLanguages?:
508
556
  name: string;
509
557
  description: string;
510
558
  };
511
- /** CustomerOrganization schema — Customer's company for Success Story pages. */
559
+ /**
560
+ * CustomerOrganization schema — Customer's company for Success Story pages.
561
+ * `industry` is NOT valid on Organization (schema.org allows only the coded
562
+ * `naics` / `isicV4`, plus free-text `keywords`). The free-text industry
563
+ * value is carried by `keywords`.
564
+ */
512
565
  customerOrganization(meta: CustomerOrganizationMeta): {
513
566
  sameAs?: string[] | undefined;
514
- industry?: string | undefined;
567
+ keywords?: string | undefined;
515
568
  description?: string | undefined;
516
569
  logo?: string | undefined;
517
570
  url?: string | undefined;
@@ -556,8 +609,12 @@ declare function createSchemaGenerators(brand: BrandConfig, supportedLanguages?:
556
609
  description: string;
557
610
  inLanguage: string;
558
611
  };
559
- /** Service schema — Growth motion service offerings. */
560
- service(motion: ServiceMotion, locale?: string): {
612
+ /**
613
+ * Service schema Growth motion service offerings.
614
+ * Neither `inLanguage` nor `availableLanguage` is valid on Service, so both
615
+ * are dropped. The `locale` param is retained for signature stability.
616
+ */
617
+ service(motion: ServiceMotion, _locale?: string): {
561
618
  termsOfService: string;
562
619
  offers?: {
563
620
  '@type': string;
@@ -576,13 +633,14 @@ declare function createSchemaGenerators(brand: BrandConfig, supportedLanguages?:
576
633
  '@id': `${string}/#organization`;
577
634
  name: string;
578
635
  };
579
- inLanguage: string;
580
- availableLanguage: string[];
581
636
  areaServed: string;
582
637
  };
583
- /** JobPosting schema — Career detail pages. */
584
- jobPosting(job: CareerForSchema, locale?: string): {
585
- inLanguage: string;
638
+ /**
639
+ * JobPosting schema Career detail pages.
640
+ * `inLanguage` is NOT valid on JobPosting and is not emitted. The `locale`
641
+ * param is retained for call-site signature stability.
642
+ */
643
+ jobPosting(job: CareerForSchema, _locale?: string): {
586
644
  jobLocation: {
587
645
  '@type': string;
588
646
  address: {
@@ -604,7 +662,6 @@ declare function createSchemaGenerators(brand: BrandConfig, supportedLanguages?:
604
662
  sameAs: string;
605
663
  };
606
664
  } | {
607
- inLanguage: string;
608
665
  jobLocationType: string;
609
666
  '@context': string;
610
667
  '@type': string;
@@ -649,7 +706,14 @@ declare function createSchemaGenerators(brand: BrandConfig, supportedLanguages?:
649
706
  url: string;
650
707
  }[];
651
708
  };
652
- /** Speakable — marks content sections suitable for voice assistant reading. */
709
+ /**
710
+ * Speakable — marks content sections suitable for voice assistant reading.
711
+ *
712
+ * Includes its own `@context` so it is valid when rendered as a standalone
713
+ * top-level JSON-LD node. When embedded inside another schema (e.g. as the
714
+ * `speakable` value on WebPage/Article), the surrounding `buildPageGraph`
715
+ * strips the redundant `@context`, so the nested case is unaffected.
716
+ */
653
717
  speakable(cssSelectors: string[]): Record<string, unknown>;
654
718
  /** Access the entity IDs for cross-referencing */
655
719
  entityIds: {
@@ -727,4 +791,4 @@ interface JsonLdProps {
727
791
  }
728
792
  declare function JsonLd({ data, nonce }: JsonLdProps): react_jsx_runtime.JSX.Element;
729
793
 
730
- export { type ArticleMeta, type BrandConfig, type CareerForSchema, type CustomerOrganizationMeta, type FAQItem, type GlossaryTermForSchema, type HowToMeta, type HowToStep, type ItemForList, JsonLd, type JsonLdProps, type PersonMeta, type PricingPlan, type BreadcrumbItem as SeoBreadcrumbItem, type ServiceMotion, type TestimonialForSchema, type TranscriptForSchema, type VideoObjectMeta, aggregateRatingFromTestimonials, buildPageGraph, canonicalUrl, createEntityIds, createSchemaGenerators };
794
+ export { type ArticleMeta, type BrandConfig, type CareerForSchema, type CustomerOrganizationMeta, type FAQItem, type GlossaryTermForSchema, type HowToMeta, type HowToStep, type ItemForList, JsonLd, type JsonLdProps, type PersonMeta, type PricingPlan, type BreadcrumbItem as SeoBreadcrumbItem, type ServiceMotion, type SoftwareApplicationAggregateRatingConfig, type SoftwareApplicationOffersConfig, type SoftwareApplicationSchemaOptions, type TestimonialForSchema, type TranscriptForSchema, type VideoObjectMeta, aggregateRatingFromTestimonials, buildPageGraph, canonicalUrl, createEntityIds, createSchemaGenerators };
@@ -1,3 +1,3 @@
1
- export { JsonLd, aggregateRatingFromTestimonials, buildPageGraph, canonicalUrl, createEntityIds, createSchemaGenerators } from '../../chunk-25TUCNN6.js';
1
+ export { JsonLd, aggregateRatingFromTestimonials, buildPageGraph, canonicalUrl, createEntityIds, createSchemaGenerators } from '../../chunk-QVGDMAZY.js';
2
2
  //# sourceMappingURL=out.js.map
3
3
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salesmind-ai/design-system",
3
- "version": "1.7.0",
3
+ "version": "1.9.0",
4
4
  "description": "Salesmind AI Design System",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -50,6 +50,16 @@
50
50
  "import": "./dist/social-media/index.js",
51
51
  "require": "./dist/social-media/index.cjs"
52
52
  },
53
+ "./onboarding": {
54
+ "types": "./dist/onboarding/index.d.ts",
55
+ "import": "./dist/onboarding/index.js",
56
+ "require": "./dist/onboarding/index.cjs"
57
+ },
58
+ "./v2-auth": {
59
+ "types": "./dist/v2-auth/index.d.ts",
60
+ "import": "./dist/v2-auth/index.js",
61
+ "require": "./dist/v2-auth/index.cjs"
62
+ },
53
63
  "./marketing": {
54
64
  "types": "./dist/marketing/index.d.ts",
55
65
  "import": "./dist/marketing/index.js",
@@ -104,6 +114,8 @@
104
114
  "./charts.css": "./dist/charts/index.css",
105
115
  "./report.css": "./dist/report/index.css",
106
116
  "./social-media.css": "./dist/social-media/index.css",
117
+ "./onboarding.css": "./dist/onboarding/index.css",
118
+ "./v2-auth.css": "./dist/v2-auth/index.css",
107
119
  "./theme": {
108
120
  "types": "./dist/theme/index.d.ts",
109
121
  "import": "./dist/theme/index.js",
@@ -121,7 +133,7 @@
121
133
  ],
122
134
  "lint-staged": {
123
135
  "src/**/*.{ts,tsx}": [
124
- "eslint --max-warnings 0 --fix"
136
+ "eslint --max-warnings 0 --fix --no-warn-ignored"
125
137
  ],
126
138
  "src/**/*.css": [
127
139
  "stylelint --fix --allow-empty-input"