@xapps-platform/marketplace-ui 0.1.15 → 0.1.17

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.
package/README.md CHANGED
@@ -6,6 +6,10 @@ React UI package for marketplace/catalog and xapp operational screens.
6
6
 
7
7
  This package is now prepared for public distribution for React integrators who want the ready-made marketplace/catalog/activity UI layer above `@xapps-platform/embed-sdk`.
8
8
 
9
+ For the current XMS current-user plans, balances, paywalls, and history reader path, read:
10
+
11
+ - [docs/specifications/xms/README.md](/home/dacrise/x/xapps/docs/specifications/xms/README.md)
12
+
9
13
  ## Exports
10
14
 
11
15
  - `MarketplaceProvider`, `useMarketplace`
@@ -1 +1 @@
1
- {"version":3,"file":"MarketplaceContext.d.ts","sourceRoot":"","sources":["../src/MarketplaceContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+C,MAAM,OAAO,CAAC;AAEpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEzF,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,IAAI,EAAE,sBAAsB,CAAC;IAC7B,GAAG,CAAC,EAAE,cAAc,CAAC;CACtB,CAAC;AA+FF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IACzC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,IAAI,EAAE,sBAAsB,CAAC;IAC7B,GAAG,CAAC,EAAE,cAAc,CAAC;IACrB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,2CAUA;AAED,wBAAgB,cAAc,IAAI,uBAAuB,CAIxD"}
1
+ {"version":3,"file":"MarketplaceContext.d.ts","sourceRoot":"","sources":["../src/MarketplaceContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+C,MAAM,OAAO,CAAC;AAEpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEzF,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,IAAI,EAAE,sBAAsB,CAAC;IAC7B,GAAG,CAAC,EAAE,cAAc,CAAC;CACtB,CAAC;AAgGF,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IACzC,MAAM,EAAE,iBAAiB,CAAC;IAC1B,IAAI,EAAE,sBAAsB,CAAC;IAC7B,GAAG,CAAC,EAAE,cAAc,CAAC;IACrB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,2CAUA;AAED,wBAAgB,cAAc,IAAI,uBAAuB,CAIxD"}
@@ -0,0 +1,25 @@
1
+ import type { MarketplaceClient } from "./types";
2
+ type JsonFetcher = <T>(path: string) => Promise<T>;
3
+ type JsonPoster = <T>(path: string, body?: Record<string, unknown>) => Promise<T>;
4
+ type HttpMarketplaceClientRouteConfig = {
5
+ catalogListPath: string;
6
+ catalogXappBasePath: string;
7
+ myXappsBasePath: string;
8
+ myMonetizedXappsPath: string;
9
+ myRequestsPath: string;
10
+ myPaymentSessionsPath: string;
11
+ myInvoicesPath: string;
12
+ myNotificationsPath: string;
13
+ widgetTokenPath?: string;
14
+ supportsSubjectIdQuery?: boolean;
15
+ };
16
+ export type HttpMarketplaceClientOptions = {
17
+ getJson: JsonFetcher;
18
+ postJson: JsonPoster;
19
+ routes: HttpMarketplaceClientRouteConfig;
20
+ defaultLocale?: string | null | (() => string | null | undefined);
21
+ getWidgetToken?: MarketplaceClient["getWidgetToken"];
22
+ };
23
+ export declare function createHttpMarketplaceClient(options: HttpMarketplaceClientOptions): MarketplaceClient;
24
+ export {};
25
+ //# sourceMappingURL=httpMarketplaceClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"httpMarketplaceClient.d.ts","sourceRoot":"","sources":["../src/httpMarketplaceClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEjD,KAAK,WAAW,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;AACnD,KAAK,UAAU,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;AAElF,KAAK,gCAAgC,GAAG;IACtC,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,EAAE,MAAM,CAAC;IACxB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,OAAO,EAAE,WAAW,CAAC;IACrB,QAAQ,EAAE,UAAU,CAAC;IACrB,MAAM,EAAE,gCAAgC,CAAC;IACzC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IAClE,cAAc,CAAC,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;CACtD,CAAC;AAsCF,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,4BAA4B,GACpC,iBAAiB,CAqNnB"}
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../src/i18n.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,aAAa,EAAW,MAAM,+BAA+B,CAAC;AAC1F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAyxBvC,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAMtF;AAED,wBAAgB,kBAAkB;;;;;;;EAEjC;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAmC3F"}
1
+ {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../src/i18n.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,aAAa,EAAW,MAAM,+BAA+B,CAAC;AAC1F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AA+1BvC,wBAAgB,uBAAuB,CAAC,KAAK,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAMtF;AAED,wBAAgB,kBAAkB;;;;;;;EAEjC;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,aAAa,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAmC3F"}
package/dist/index.css CHANGED
@@ -19,13 +19,8 @@
19
19
  --mx-radius-lg: 1rem;
20
20
  --mx-radius-md: 0.75rem;
21
21
  --mx-radius-sm: 0.5rem;
22
- --mx-font-family: var(--xapps-font-family, system-ui, sans-serif);
23
- --mx-display-font:
24
- "IBM Plex Serif",
25
- "Iowan Old Style",
26
- "Palatino Linotype",
27
- Georgia,
28
- serif;
22
+ --mx-font-family: var( --xapps-font-family, "Inter", "Segoe UI", system-ui, -apple-system, sans-serif );
23
+ --mx-display-font: var(--xapps-display-font, var(--mx-font-family));
29
24
  }
30
25
  :root[data-xapps-theme-mode=dark] {
31
26
  --mx-shadow-sm: 0 1px 2px 0 rgb(2 6 23 / 0.22);
@@ -1373,6 +1368,9 @@
1373
1368
  color: var(--mx-text-muted);
1374
1369
  padding: 1rem 1.125rem;
1375
1370
  }
1371
+ .mx-plans-route-empty .mx-empty-catalog {
1372
+ padding: 2.2rem 1.25rem;
1373
+ }
1376
1374
  .mx-detail-widget-list {
1377
1375
  display: grid;
1378
1376
  gap: 0.625rem;
@@ -1852,6 +1850,13 @@
1852
1850
  padding-bottom: 0.9rem;
1853
1851
  border-bottom: 1px solid color-mix(in srgb, var(--mx-border) 82%, transparent);
1854
1852
  }
1853
+ .mx-paywall-card-kicker {
1854
+ font-size: 0.7rem;
1855
+ font-weight: 800;
1856
+ letter-spacing: 0.08em;
1857
+ text-transform: uppercase;
1858
+ color: var(--mx-text-muted);
1859
+ }
1855
1860
  .mx-paywall-card-title {
1856
1861
  font-family: var(--mx-display-font);
1857
1862
  font-size: 1.08rem;
@@ -1892,8 +1897,8 @@
1892
1897
  }
1893
1898
  .mx-paywall-card-package {
1894
1899
  display: grid;
1895
- gap: 0.65rem;
1896
- padding: 0.95rem 1rem;
1900
+ gap: 0.78rem;
1901
+ padding: 1rem 1.05rem;
1897
1902
  border-radius: 1rem;
1898
1903
  border: 1px solid var(--mx-border);
1899
1904
  background:
@@ -1910,6 +1915,18 @@
1910
1915
  font-weight: 700;
1911
1916
  box-shadow: 0 8px 18px rgba(15, 23, 42, 0.06);
1912
1917
  }
1918
+ .mx-paywall-card-package-actions {
1919
+ display: grid;
1920
+ gap: 0.45rem;
1921
+ padding-top: 0.2rem;
1922
+ margin-top: 0.05rem;
1923
+ }
1924
+ .mx-paywall-card-package-note {
1925
+ font-size: 0.76rem;
1926
+ line-height: 1.45;
1927
+ color: var(--mx-text-muted);
1928
+ max-width: 48ch;
1929
+ }
1913
1930
  .mx-paywall-card-package.is-default {
1914
1931
  border-color: color-mix(in srgb, var(--mx-primary) 40%, var(--mx-border));
1915
1932
  background:
@@ -1937,7 +1954,7 @@
1937
1954
  color: var(--mx-text-main);
1938
1955
  }
1939
1956
  .mx-paywall-card-package-description {
1940
- margin-top: 0.22rem;
1957
+ margin-top: 0.28rem;
1941
1958
  font-size: 0.81rem;
1942
1959
  line-height: 1.46;
1943
1960
  color: var(--mx-text-muted);
@@ -1966,6 +1983,7 @@
1966
1983
  display: flex;
1967
1984
  flex-wrap: wrap;
1968
1985
  gap: 0.45rem;
1986
+ margin-top: 0.05rem;
1969
1987
  }
1970
1988
  .mx-paywall-card-signal {
1971
1989
  background: color-mix(in srgb, var(--mx-text-main) 3%, var(--mx-card-bg));
@@ -1978,6 +1996,48 @@
1978
1996
  .mx-paywall-card-package .mx-btn-secondary[disabled] {
1979
1997
  box-shadow: none;
1980
1998
  }
1999
+ .mx-paywall-card-package .mx-btn-primary {
2000
+ justify-self: start;
2001
+ box-shadow: 0 12px 24px -18px color-mix(in srgb, var(--mx-primary) 42%, transparent);
2002
+ }
2003
+ @media (max-width: 720px) {
2004
+ .mx-paywall-card-head {
2005
+ gap: 0.38rem;
2006
+ margin-bottom: 0.9rem;
2007
+ padding-bottom: 0.8rem;
2008
+ }
2009
+ .mx-paywall-card-badges {
2010
+ margin-bottom: 0.85rem;
2011
+ }
2012
+ .mx-paywall-card-packages {
2013
+ gap: 0.72rem;
2014
+ }
2015
+ .mx-paywall-card-package {
2016
+ gap: 0.72rem;
2017
+ padding: 0.92rem;
2018
+ }
2019
+ .mx-paywall-card-package-head {
2020
+ flex-direction: column;
2021
+ align-items: stretch;
2022
+ gap: 0.55rem;
2023
+ }
2024
+ .mx-paywall-card-money {
2025
+ align-self: flex-start;
2026
+ }
2027
+ .mx-paywall-card-package-meta,
2028
+ .mx-paywall-card-signals {
2029
+ gap: 0.4rem;
2030
+ }
2031
+ .mx-paywall-card-package-actions {
2032
+ flex-direction: column;
2033
+ align-items: stretch;
2034
+ gap: 0.5rem;
2035
+ }
2036
+ .mx-paywall-card-package-actions .mx-btn {
2037
+ width: 100%;
2038
+ justify-content: center;
2039
+ }
2040
+ }
1981
2041
  .mx-tag-list {
1982
2042
  margin-top: 0.45rem;
1983
2043
  }
@@ -3486,6 +3546,70 @@
3486
3546
  display: grid;
3487
3547
  gap: 16px;
3488
3548
  }
3549
+ .mx-monetization-page .mx-header {
3550
+ margin-bottom: 1rem;
3551
+ }
3552
+ .mx-monetization-overview-panel {
3553
+ margin-bottom: 1.2rem;
3554
+ padding: 1.1rem 1.15rem;
3555
+ background:
3556
+ radial-gradient(
3557
+ circle at top right,
3558
+ color-mix(in srgb, var(--mx-primary) 7%, transparent) 0%,
3559
+ transparent 36%),
3560
+ linear-gradient(
3561
+ 180deg,
3562
+ color-mix(in srgb, var(--mx-card-bg) 92%, var(--mx-bg)) 0%,
3563
+ color-mix(in srgb, var(--mx-card-bg) 84%, var(--mx-bg)) 100%);
3564
+ }
3565
+ .mx-monetization-overview-head {
3566
+ display: flex;
3567
+ justify-content: space-between;
3568
+ gap: 1rem;
3569
+ align-items: start;
3570
+ }
3571
+ .mx-monetization-overview-title {
3572
+ margin: 0.2rem 0 0;
3573
+ font-family: var(--mx-display-font);
3574
+ font-size: 1.38rem;
3575
+ line-height: 1.15;
3576
+ letter-spacing: -0.02em;
3577
+ color: var(--mx-text-main);
3578
+ }
3579
+ .mx-monetization-overview-subtitle {
3580
+ margin: 0.45rem 0 0;
3581
+ max-width: 68ch;
3582
+ color: var(--mx-text-muted);
3583
+ font-size: 0.94rem;
3584
+ line-height: 1.55;
3585
+ }
3586
+ .mx-monetization-overview-grid {
3587
+ margin-top: 1rem;
3588
+ display: grid;
3589
+ grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
3590
+ gap: 0.8rem;
3591
+ }
3592
+ .mx-monetization-stat {
3593
+ min-width: 0;
3594
+ padding: 0.9rem 0.95rem;
3595
+ border-radius: 14px;
3596
+ border: 1px solid color-mix(in srgb, var(--mx-border) 84%, transparent);
3597
+ background: color-mix(in srgb, var(--mx-card-bg) 92%, var(--mx-bg));
3598
+ }
3599
+ .mx-monetization-stat-label {
3600
+ color: var(--mx-text-muted);
3601
+ font-size: 0.74rem;
3602
+ font-weight: 700;
3603
+ text-transform: uppercase;
3604
+ letter-spacing: 0.08em;
3605
+ }
3606
+ .mx-monetization-stat-value {
3607
+ margin-top: 0.35rem;
3608
+ color: var(--mx-text-main);
3609
+ font-size: 1.55rem;
3610
+ font-weight: 800;
3611
+ line-height: 1;
3612
+ }
3489
3613
  .mx-record-panel-stack {
3490
3614
  display: grid;
3491
3615
  gap: 1rem;
@@ -3535,6 +3659,76 @@
3535
3659
  font-weight: 600;
3536
3660
  text-align: right;
3537
3661
  }
3662
+ .mx-monetization-card-badges {
3663
+ margin-top: 0.75rem;
3664
+ display: flex;
3665
+ flex-wrap: wrap;
3666
+ gap: 0.45rem;
3667
+ align-items: center;
3668
+ }
3669
+ .mx-subtle-note-card {
3670
+ margin-bottom: 1rem;
3671
+ padding: 0.9rem 1.1rem;
3672
+ }
3673
+ .mx-monetization-summary-card,
3674
+ .mx-monetization-activity-card {
3675
+ margin-bottom: 1rem;
3676
+ }
3677
+ .mx-monetization-card-body {
3678
+ padding: 1rem 1.1rem;
3679
+ background: var(--mx-card-bg);
3680
+ }
3681
+ .mx-monetization-card-primary-grid {
3682
+ margin-top: 0.2rem;
3683
+ }
3684
+ .mx-monetization-card-secondary {
3685
+ display: grid;
3686
+ grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
3687
+ gap: 0.65rem 1rem;
3688
+ margin-top: 0.95rem;
3689
+ padding-top: 0.95rem;
3690
+ border-top: 1px solid color-mix(in srgb, var(--mx-border) 84%, transparent);
3691
+ }
3692
+ .mx-monetization-card-secondary-row {
3693
+ display: grid;
3694
+ gap: 0.14rem;
3695
+ }
3696
+ .mx-monetization-card-secondary-label {
3697
+ color: var(--mx-text-muted);
3698
+ font-size: 0.72rem;
3699
+ font-weight: 700;
3700
+ line-height: 1.2;
3701
+ letter-spacing: 0.06em;
3702
+ text-transform: uppercase;
3703
+ }
3704
+ .mx-monetization-card-secondary-value {
3705
+ color: var(--mx-text-main);
3706
+ font-size: 0.86rem;
3707
+ line-height: 1.45;
3708
+ }
3709
+ .mx-monetization-card-balance-strip {
3710
+ margin-top: 0.95rem;
3711
+ padding-top: 0.95rem;
3712
+ border-top: 1px solid color-mix(in srgb, var(--mx-border) 84%, transparent);
3713
+ }
3714
+ @media (max-width: 720px) {
3715
+ .mx-monetization-card-body {
3716
+ padding: 0.92rem 0.95rem;
3717
+ }
3718
+ .mx-monetization-card-primary-grid {
3719
+ margin-top: 0.1rem;
3720
+ }
3721
+ .mx-monetization-card-secondary {
3722
+ grid-template-columns: 1fr;
3723
+ gap: 0.55rem;
3724
+ margin-top: 0.8rem;
3725
+ padding-top: 0.8rem;
3726
+ }
3727
+ .mx-monetization-card-balance-strip {
3728
+ margin-top: 0.8rem;
3729
+ padding-top: 0.8rem;
3730
+ }
3731
+ }
3538
3732
  .mx-publisher-avatar {
3539
3733
  width: 56px;
3540
3734
  height: 56px;