@jskit-ai/payments-web 0.2.9 → 0.2.11

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/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## Unreleased
4
+
5
+ - Plans show as filled Material 3 cards (`surface-container-highest`) instead of bordered boxes.
6
+
3
7
  ## 0.2.0 - 2026-10-29
4
8
 
5
9
  - Translation ready: every user-visible text is a message key with its English in `locales/en.json`, so an app translates it by supplying translation files only. With no translations, texts and behaviour are unchanged. See the guide "Translating a JSKIT app".
package/README.md CHANGED
@@ -144,7 +144,7 @@ loading behavior. A separate browser fixture uses real Vuetify and controlled
144
144
  component inputs, without a generated application or provider connection:
145
145
 
146
146
  ```sh
147
- JSKIT_PAYMENTS_WEB_BROWSER_INTEGRATION=1 node --test --test-concurrency=1 packages/payments-web/test/paymentAccount.browser.test.js
147
+ JSKIT_PAYMENTS_WEB_BROWSER_INTEGRATION=1 npx jskit test packages/payments-web/test/paymentAccount.browser.test.js
148
148
  ```
149
149
 
150
150
  Run that command from the JSKIT repository root with its prepared browser tools.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jskit-ai/payments-web",
3
- "version": "0.2.9",
3
+ "version": "0.2.11",
4
4
  "type": "module",
5
5
  "description": "Application-owned billing views for JSKIT Vue applications.",
6
6
  "exports": {
@@ -8,7 +8,7 @@
8
8
  "./locales/en.json": "./locales/en.json"
9
9
  },
10
10
  "peerDependencies": {
11
- "@jskit-ai/kernel": "0.2.9",
11
+ "@jskit-ai/kernel": "0.2.11",
12
12
  "vue": "^3.5.13",
13
13
  "vuetify": "^4.0.0"
14
14
  },
@@ -28,6 +28,6 @@
28
28
  }
29
29
  },
30
30
  "scripts": {
31
- "test": "node --test --test-concurrency=1"
31
+ "test": "jskit test"
32
32
  }
33
33
  }
@@ -127,13 +127,13 @@ function loadHistory(collection, after = null) {
127
127
  <style scoped>
128
128
  .payment-account { min-width: 0; overflow-wrap: anywhere; }
129
129
  .payment-account__summary { display: flex; flex-wrap: wrap; gap: 1rem 2rem; margin: 0 0 1rem; }
130
- .payment-account__summary dt { font-weight: 600; }
130
+ .payment-account__summary dt { font-weight: 500; }
131
131
  .payment-account__summary dd { margin: .25rem 0 0; }
132
132
  .payment-account__subscriptions { list-style: none; padding: 0; }
133
133
  .payment-account__subscriptions li { display: flex; flex-wrap: wrap; gap: .5rem 1rem; padding-block: .5rem; }
134
134
  .payment-account__actions { display: flex; flex-wrap: wrap; gap: .5rem; }
135
135
  .payment-account__plans { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); gap: 1rem; padding: 0; list-style: none; }
136
- .payment-account__plan { min-width: 0; padding: 1rem; border: 1px solid rgba(var(--v-border-color), var(--v-border-opacity)); border-radius: 12px; }
136
+ .payment-account__plan { min-width: 0; padding: 1rem; border-radius: 12px; background: rgb(var(--v-theme-surface-container-highest)); }
137
137
  .payment-account :deep(.v-list-item-title), .payment-account :deep(.v-list-item-subtitle) { white-space: normal; overflow-wrap: anywhere; }
138
138
  .payment-account :deep(.v-btn) { min-height: 48px; max-width: 100%; height: auto; white-space: normal; }
139
139
  .payment-account :deep(.v-btn__content) { white-space: normal; }
@@ -1,16 +1,16 @@
1
1
  import assert from "node:assert/strict";
2
2
  import test from "node:test";
3
3
  import { fileURLToPath } from "node:url";
4
- import { chromium, expect } from "@playwright/test";
5
- import { createChromiumLaunchOptions, startViteFixture, stopProcess } from "../../../tooling/testUtils/browserFixture.mjs";
4
+ import { expect } from "@playwright/test";
5
+ import { sharedBrowserFixture } from "../../../tooling/testUtils/browserFixture.mjs";
6
+
7
+ const openFixture = sharedBrowserFixture({ fixtureRoot: fileURLToPath(new URL("../fixtures/payment-account/", import.meta.url)) });
6
8
 
7
9
  test("billing component supports responsive layout, keyboard actions and recoverable states", {
8
10
  skip: process.env.JSKIT_PAYMENTS_WEB_BROWSER_INTEGRATION !== "1", timeout: 120_000
9
- }, async () => {
10
- const runtime = await startViteFixture({ fixtureRoot: fileURLToPath(new URL("../fixtures/payment-account/", import.meta.url)) });
11
- let browser;
11
+ }, async (t) => {
12
+ const { vite: runtime, browser } = await openFixture(t);
12
13
  try {
13
- browser = await chromium.launch(createChromiumLaunchOptions());
14
14
  const page = await browser.newPage();
15
15
  const errors = [];
16
16
  page.on("pageerror", (error) => errors.push(error.message));
@@ -62,7 +62,6 @@ test("billing component supports responsive layout, keyboard actions and recover
62
62
  await expect(billing.getByRole("button")).toHaveCount(0);
63
63
  assert.deepEqual(errors, []);
64
64
  } finally {
65
- await browser?.close();
66
- await stopProcess(runtime);
65
+ await browser.close();
67
66
  }
68
67
  });