@patientos/website-kit 0.2.8 → 0.2.9

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.
@@ -75,7 +75,7 @@ function CartLineList({
75
75
  children: "\u2212"
76
76
  }
77
77
  ),
78
- /* @__PURE__ */ jsx("span", { "aria-live": "polite", children: line.quantity }),
78
+ /* @__PURE__ */ jsx("span", { className: "sk-cart__qty-value", "aria-live": "polite", children: line.quantity }),
79
79
  /* @__PURE__ */ jsx(
80
80
  "button",
81
81
  {
@@ -9,10 +9,10 @@ import {
9
9
  } from "./chunk-THMT43MV.js";
10
10
  import {
11
11
  CartClient
12
- } from "./chunk-2CZFJOKK.js";
12
+ } from "./chunk-U6FJ6XYX.js";
13
13
  import {
14
14
  CartButtonClient
15
- } from "./chunk-ZNH6TSYP.js";
15
+ } from "./chunk-ORGTP5GB.js";
16
16
  import {
17
17
  CheckoutClient
18
18
  } from "./chunk-S3ZQQOQT.js";
@@ -5,7 +5,7 @@ import {
5
5
  UnsupportedCartLineList,
6
6
  quoteSourceQuantities,
7
7
  useCartQuote
8
- } from "./chunk-IOC6QLB7.js";
8
+ } from "./chunk-BHF7S6UQ.js";
9
9
  import {
10
10
  createStoreClient
11
11
  } from "./chunk-7BUDUYXN.js";
@@ -5,7 +5,7 @@ import {
5
5
  UnsupportedCartLineList,
6
6
  quoteSourceQuantities,
7
7
  useCartQuote
8
- } from "./chunk-IOC6QLB7.js";
8
+ } from "./chunk-BHF7S6UQ.js";
9
9
  import {
10
10
  createStoreClient
11
11
  } from "./chunk-7BUDUYXN.js";
package/dist/index.d.ts CHANGED
@@ -217,6 +217,6 @@ interface PortalSession {
217
217
  */
218
218
  declare function usePortalSession(): PortalSession;
219
219
 
220
- declare const WEBSITE_KIT_VERSION = "0.2.8";
220
+ declare const WEBSITE_KIT_VERSION = "0.2.9";
221
221
 
222
222
  export { Button, type ButtonProps, type ButtonVariant, Container, type ContainerProps, FAQ, type FAQProps, type FaqItem, Hero, type HeroProps, Hours, type HoursProps, type HoursRow, MapEmbed, type MapEmbedProps, PortalClient, PortalPrefill, PortalProvider, type PortalProviderProps, type PortalSession, type PortalSessionStatus, PublicClaim, Row, type RowProps, Section, type SectionProps, type Service, ServiceGrid, type ServiceGridProps, Stack, type StackProps, TeamGrid, type TeamGridProps, type TeamMember, ThemeProvider, type ThemeProviderProps, WEBSITE_KIT_VERSION, WebsiteShell, type WebsiteShellProps, type WebsiteTheme, WhoAmI, defaultTheme, resolveTheme, themeToCssVars, usePortalClient, usePortalSession };
package/dist/index.js CHANGED
@@ -11,7 +11,7 @@ import {
11
11
  import {
12
12
  ISLANDS,
13
13
  mountIslands
14
- } from "./chunk-HTVKKLWI.js";
14
+ } from "./chunk-DP2HJMVB.js";
15
15
  import {
16
16
  PortalAccount,
17
17
  PortalPanel,
@@ -36,9 +36,9 @@ import {
36
36
  mountIslandsWith,
37
37
  readIslandProps
38
38
  } from "./chunk-THMT43MV.js";
39
- import "./chunk-2CZFJOKK.js";
40
- import "./chunk-ZNH6TSYP.js";
41
- import "./chunk-IOC6QLB7.js";
39
+ import "./chunk-U6FJ6XYX.js";
40
+ import "./chunk-ORGTP5GB.js";
41
+ import "./chunk-BHF7S6UQ.js";
42
42
  import "./chunk-S3ZQQOQT.js";
43
43
  import {
44
44
  BPOINT_SCRIPT_ORIGIN,
@@ -511,7 +511,7 @@ function Checkout({
511
511
  }
512
512
 
513
513
  // src/index.ts
514
- var WEBSITE_KIT_VERSION = "0.2.8";
514
+ var WEBSITE_KIT_VERSION = "0.2.9";
515
515
  export {
516
516
  BPOINT_SCRIPT_ORIGIN,
517
517
  BPOINT_SCRIPT_URL,
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  CartButtonClient,
3
3
  CartDrawer
4
- } from "../chunk-ZNH6TSYP.js";
5
- import "../chunk-IOC6QLB7.js";
4
+ } from "../chunk-ORGTP5GB.js";
5
+ import "../chunk-BHF7S6UQ.js";
6
6
  import "../chunk-7BUDUYXN.js";
7
7
  import "../chunk-4NF7SSIX.js";
8
8
  import "../chunk-FZ4WKWIE.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  CartClient
3
- } from "../chunk-2CZFJOKK.js";
4
- import "../chunk-IOC6QLB7.js";
3
+ } from "../chunk-U6FJ6XYX.js";
4
+ import "../chunk-BHF7S6UQ.js";
5
5
  import "../chunk-7BUDUYXN.js";
6
6
  import "../chunk-4NF7SSIX.js";
7
7
  import "../chunk-FZ4WKWIE.js";
@@ -9,11 +9,11 @@ import "./chunk-QDO3SJWR.js";
9
9
  import "./chunk-THMT43MV.js";
10
10
  import {
11
11
  CartClient
12
- } from "./chunk-2CZFJOKK.js";
12
+ } from "./chunk-U6FJ6XYX.js";
13
13
  import {
14
14
  CartButtonClient
15
- } from "./chunk-ZNH6TSYP.js";
16
- import "./chunk-IOC6QLB7.js";
15
+ } from "./chunk-ORGTP5GB.js";
16
+ import "./chunk-BHF7S6UQ.js";
17
17
  import {
18
18
  CheckoutClient
19
19
  } from "./chunk-S3ZQQOQT.js";
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  ISLANDS,
3
3
  mountIslands
4
- } from "./chunk-HTVKKLWI.js";
4
+ } from "./chunk-DP2HJMVB.js";
5
5
  import "./chunk-4GKSSM5N.js";
6
6
  import "./chunk-3T7UWKAH.js";
7
7
  import "./chunk-QDO3SJWR.js";
8
8
  import "./chunk-THMT43MV.js";
9
- import "./chunk-2CZFJOKK.js";
10
- import "./chunk-ZNH6TSYP.js";
11
- import "./chunk-IOC6QLB7.js";
9
+ import "./chunk-U6FJ6XYX.js";
10
+ import "./chunk-ORGTP5GB.js";
11
+ import "./chunk-BHF7S6UQ.js";
12
12
  import "./chunk-S3ZQQOQT.js";
13
13
  import "./chunk-ZOF22TJA.js";
14
14
  import "./chunk-UTAMB2SK.js";
@@ -2891,19 +2891,59 @@ select.sk-identity__input[data-empty] {
2891
2891
  list-style: none;
2892
2892
  margin: 0;
2893
2893
  padding: 0;
2894
+ /* The drawer is ~380px inside a wide viewport, so a VIEWPORT media query can never
2895
+ tell us the row is cramped (PAT-948). Size the row off its own container instead. */
2896
+ container-type: inline-size;
2897
+ container-name: sk-cart-lines;
2894
2898
  }
2895
2899
  .sk-cart__line {
2896
2900
  display: grid;
2897
- grid-template-columns: 1fr auto auto auto;
2901
+ /* Five children, so name five tracks. They used to run in a FOUR-column grid, which
2902
+ wrapped Remove onto its own row where it stretched the full 1fr title column and
2903
+ centred its own label — the reason it floated mid-row (PAT-948). */
2904
+ grid-template-columns: minmax(0, 1fr) auto auto auto auto;
2905
+ grid-template-areas: 'title unit qty total remove';
2898
2906
  align-items: center;
2899
2907
  gap: calc(var(--sk-space, 0.5rem) * 2);
2900
2908
  padding: calc(var(--sk-space, 0.5rem) * 2) 0;
2901
2909
  border-bottom: 1px solid color-mix(in srgb, var(--sk-muted, #5b6b7a) 30%, transparent);
2902
2910
  }
2911
+ .sk-cart__line-title {
2912
+ grid-area: title;
2913
+ }
2914
+ .sk-cart__line-unit {
2915
+ grid-area: unit;
2916
+ }
2917
+ .sk-cart__qty {
2918
+ grid-area: qty;
2919
+ }
2920
+ .sk-cart__line-total {
2921
+ grid-area: total;
2922
+ }
2923
+ .sk-cart__remove {
2924
+ grid-area: remove;
2925
+ }
2926
+ /* Narrow CONTAINER (the drawer, and a phone): two columns, three rows. */
2927
+ @container sk-cart-lines (max-width: 34rem) {
2928
+ .sk-cart__line {
2929
+ grid-template-columns: minmax(0, 1fr) auto;
2930
+ grid-template-areas:
2931
+ 'title title'
2932
+ 'unit total'
2933
+ 'qty remove';
2934
+ row-gap: calc(var(--sk-space, 0.5rem) * 1);
2935
+ }
2936
+ }
2903
2937
  .sk-cart__line-title {
2904
2938
  color: inherit;
2905
2939
  font-weight: 600;
2906
2940
  text-decoration: none;
2941
+ /* One line, clipped — a product name is not worth reflowing the row it sits in.
2942
+ min-width:0 is what lets the 1fr track actually shrink inside a grid. */
2943
+ min-width: 0;
2944
+ overflow: hidden;
2945
+ text-overflow: ellipsis;
2946
+ white-space: nowrap;
2907
2947
  }
2908
2948
  .sk-cart__line-unit {
2909
2949
  font-size: 0.875rem;
@@ -2913,6 +2953,14 @@ select.sk-identity__input[data-empty] {
2913
2953
  display: inline-flex;
2914
2954
  align-items: center;
2915
2955
  gap: calc(var(--sk-space, 0.5rem) * 1);
2956
+ justify-self: start;
2957
+ }
2958
+ /* The quantity reserves room for two digits and uses tabular figures, so stepping
2959
+ 1 -> 2 -> 10 never shifts the − and + buttons under the shopper's cursor. */
2960
+ .sk-cart__qty-value {
2961
+ min-width: 2ch;
2962
+ text-align: center;
2963
+ font-variant-numeric: tabular-nums;
2916
2964
  }
2917
2965
  .sk-cart__qty button {
2918
2966
  min-width: 2rem;
@@ -2928,6 +2976,10 @@ select.sk-identity__input[data-empty] {
2928
2976
  .sk-cart__line-total {
2929
2977
  font-variant-numeric: tabular-nums;
2930
2978
  font-weight: 600;
2979
+ /* Reserve the widest realistic total so $70.00 and $599.00 hold the same column
2980
+ and the stepper beside them does not slide between lines. */
2981
+ min-width: 6ch;
2982
+ text-align: right;
2931
2983
  }
2932
2984
  .sk-cart__remove {
2933
2985
  border: 0;
@@ -2938,6 +2990,11 @@ select.sk-identity__input[data-empty] {
2938
2990
  opacity: 0.75;
2939
2991
  cursor: pointer;
2940
2992
  text-decoration: underline;
2993
+ /* A grid item stretches by default, so this button used to fill its track and
2994
+ centre its own label. Shrink it to its text and pin it to the row's end. */
2995
+ justify-self: end;
2996
+ padding: 0;
2997
+ width: max-content;
2941
2998
  }
2942
2999
  .sk-cart__totals {
2943
3000
  margin: calc(var(--sk-space, 0.5rem) * 3) 0 0;
@@ -2993,11 +3050,8 @@ select.sk-identity__input[data-empty] {
2993
3050
  font-weight: 600;
2994
3051
  text-decoration: none;
2995
3052
  }
2996
- @media (max-width: 600px) {
2997
- .sk-cart__line {
2998
- grid-template-columns: 1fr auto;
2999
- }
3000
- }
3053
+ /* The old viewport `max-width: 600px` rule lived here. It could not see the drawer,
3054
+ which is ~380px inside a wide window; the @container rule above replaces it. */
3001
3055
 
3002
3056
 
3003
3057
  /* ── checkout (PAT-766) ──────────────────────────────────────────────────── */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@patientos/website-kit",
3
- "version": "0.2.8",
3
+ "version": "0.2.9",
4
4
  "description": "PatientOS clinic website components and patient-facing interactive islands.",
5
5
  "type": "module",
6
6
  "sideEffects": [