openreceive-rails 0.4.8 → 0.4.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1e77eb3df78733f90ea869d2f97bcc7a38e6d608368aa4a2eefae5e31189ba2b
4
- data.tar.gz: 8a9f452271e8bb69acf0652b2a8ff40df46700853d8b946245d38746fdcdf0b0
3
+ metadata.gz: c53bf506f1db08240a35a17c509b74d5bdb13964f10bdc0b3e8d580d71e0f6c1
4
+ data.tar.gz: b3361f7e657d7d0e96228b1a8a8f5531ed61ed6924f002b6bebdb70a80f91efe
5
5
  SHA512:
6
- metadata.gz: 42ec6020ced1c31af6bec3e470bb62b3578e8825fbe87eda56aac0f4534014f17d7bb0b6e9c4cbcc2e7d11798a7eba6726c5f7e71b03e8d0113ecd9bf3a278e2
7
- data.tar.gz: eb036319121a4b993a31da270d84b68fd385749a5c1e4e55faeb5fa4651cff0dda7bfb787fe82638a2b8ce57860f090dff1bda218441ab8893250052e4b7c0f8
6
+ metadata.gz: 07c085990621609cde309b305d3887079232ddfa00c191b409a8aa2bba38370d2937422607cb3479dfff78edbe0bde4976e6ec9e50aa3bd0ff1525f429905b3f
7
+ data.tar.gz: 0ed794db39837fb586b2e49d705fc8064f2aadf647544e51bd13888f748fbf3ad897700950211ca2f5087739d2036bcf748d3af9a28668d13bb1a2c6660b4864
data/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.4.9 - 2026-09-14
4
+
5
+ Release alongside the packaged checkout fix that hides the Lightning pane
6
+ on “Switch payment method” and reuses the same invoice when Bitcoin is
7
+ selected again. Update `@openreceive/elements` and rebuild the frontend to
8
+ receive this fix; upgrading the gem alone does not update the checkout UI.
9
+
10
+ Refresh the bundled Rails integration directions with the method-switch
11
+ regression check and guidance to serve the compiled stylesheet without
12
+ importing it into the host Tailwind entry. No Rails engine API or settlement
13
+ changes.
14
+
3
15
  ## 0.4.8 - 2026-09-14
4
16
 
5
17
  Release alongside the custom element's Lightning invoice loading indicator.
@@ -5,6 +5,6 @@ module OpenReceive
5
5
  # top-level `::Rails` framework constant — engine code always references the framework as
6
6
  # `::Rails` to avoid shadowing.
7
7
  module Rails
8
- VERSION = "0.4.8"
8
+ VERSION = "0.4.9"
9
9
  end
10
10
  end
@@ -1,6 +1,6 @@
1
1
  # OpenReceive agent directions (BTCPay Server)
2
2
 
3
- These directions describe OpenReceive 0.4.8.
3
+ These directions describe OpenReceive 0.4.9.
4
4
 
5
5
  Connect a BTCPay Server store to a receive-only NWC wallet with the OpenReceive
6
6
  plugin, and optionally let payers pay BTCPay invoices with USDT, USDC, ETH or
@@ -1,6 +1,6 @@
1
1
  # OpenReceive agent directions (Django)
2
2
 
3
- These directions describe OpenReceive 0.4.8.
3
+ These directions describe OpenReceive 0.4.9.
4
4
 
5
5
  Add OpenReceive to a Django project — the app you are already working in. You
6
6
  do not need a copy of the OpenReceive source: the Python package is on PyPI
@@ -218,6 +218,8 @@ The engine serves JSON only, so the view is yours — but the drop-ins
218
218
  list is the short form of https://openreceive.org/guides/checkout-ux.md, for a UI
219
219
  built on `@openreceive/browser/headless`. Read that before writing components.
220
220
 
221
+ - Check Bitcoin → Switch payment method → Bitcoin: the grid must hide the
222
+ Lightning invoice, then restore the same bolt11 without another mint.
221
223
  - `createCheckoutController` is the engine. Do not hand-roll a poll loop.
222
224
  - `createCheckoutStatusModel` for the status line. Do not draw a
223
225
  Cart → Pay → Done stepper. Read the model's `phase`, not the snapshot's.
@@ -584,6 +586,11 @@ manage.py openreceive_doctor # the same, for humans; neve
584
586
 
585
587
  ### Render the checkout
586
588
 
589
+ Serve the compiled `styles.css` without Tailwind processing: import it from
590
+ JavaScript (with a CSS-capable bundler) or use a plain `<link rel="stylesheet">`.
591
+ Do not `@import` it into the host Tailwind entry. Its zero-specificity rules
592
+ allow host styles to override checkout styles; scoping does not prevent that.
593
+
587
594
  The app serves JSON checkout routes only — rendering is your template. Any
588
595
  OpenReceive frontend package works against the `/openreceive` mount; the
589
596
  smallest is the custom element, and the Python package carries its
@@ -604,8 +611,7 @@ bundler at all:
604
611
 
605
612
  `openreceive-checkout.js` registers the `<openreceive-checkout>` tag when it
606
613
  loads (one self-contained ES module, un-minified identifiers), and the
607
- stylesheet is scoped to what OpenReceive renders so it sits safely next to any
608
- CSS framework in any order. `collectstatic` ships both with the rest of your
614
+ stylesheet is scoped to what OpenReceive renders. `collectstatic` ships both with the rest of your
609
615
  static files; the package's `MANIFEST.json` names every file and its hash. The
610
616
  element creates the checkout for `reference`, then renders and polls itself
611
617
  (its default `prefix` is already `/openreceive`).
@@ -1,6 +1,6 @@
1
1
  # OpenReceive agent directions (FastAPI)
2
2
 
3
- These directions describe OpenReceive 0.4.8.
3
+ These directions describe OpenReceive 0.4.9.
4
4
 
5
5
  Add OpenReceive to a FastAPI application — the app you are already working in.
6
6
  You do not need a copy of the OpenReceive source: the engine is on PyPI
@@ -215,6 +215,8 @@ This list is the short form of https://openreceive.org/guides/checkout-ux.md, fo
215
215
  UI built on `@openreceive/browser/headless`. Read that before writing
216
216
  components.
217
217
 
218
+ - Check Bitcoin → Switch payment method → Bitcoin: the grid must hide the
219
+ Lightning invoice, then restore the same bolt11 without another mint.
218
220
  - `createCheckoutController` is the engine. Do not hand-roll a poll loop.
219
221
  - `createCheckoutStatusModel` for the status line. Do not draw a
220
222
  Cart → Pay → Done stepper. Read the model's `phase`, not the snapshot's.
@@ -486,8 +488,12 @@ import "@openreceive/react/styles.css";
486
488
  The checkout renders, polls, and settles itself. The compiled `styles.css`
487
489
  sheets (`@openreceive/react`, `@openreceive/elements`) are self-contained — a
488
490
  plain `<link rel="stylesheet">` works with no build step — and scoped: every
489
- rule applies only inside what OpenReceive renders, so the sheet is safe next
490
- to any CSS framework (Mantine, Bootstrap, your own reset) in any import order.
491
+ rule applies only inside what OpenReceive renders.
492
+
493
+ Serve the compiled `styles.css` without Tailwind processing: import it from
494
+ JavaScript (with a CSS-capable bundler) or use a plain `<link rel="stylesheet">`.
495
+ Do not `@import` it into the host Tailwind entry. Its zero-specificity rules
496
+ allow host styles to override checkout styles; scoping does not prevent that.
491
497
 
492
498
  `<Checkout>` is complete as rendered: it already shows the `description` from
493
499
  `amountFor` and the collapsed transaction-details panel. Do not build a custom
@@ -1,6 +1,6 @@
1
1
  # OpenReceive agent directions (Fastify)
2
2
 
3
- These directions describe OpenReceive 0.4.8.
3
+ These directions describe OpenReceive 0.4.9.
4
4
 
5
5
  Add OpenReceive to a Fastify application — the app you are already working in.
6
6
  You do not need a copy of the OpenReceive source: the packages are on npm, and
@@ -198,6 +198,8 @@ This list is the short form of https://openreceive.org/guides/checkout-ux.md, fo
198
198
  UI built on `@openreceive/browser/headless`. Read that before writing
199
199
  components.
200
200
 
201
+ - Check Bitcoin → Switch payment method → Bitcoin: the grid must hide the
202
+ Lightning invoice, then restore the same bolt11 without another mint.
201
203
  - `createCheckoutController` is the engine. Do not hand-roll a poll loop.
202
204
  - `createCheckoutStatusModel` for the status line. Do not draw a
203
205
  Cart → Pay → Done stepper. Read the model's `phase`, not the snapshot's.
@@ -488,8 +490,12 @@ import "@openreceive/react/styles.css";
488
490
  The checkout renders, polls, and settles itself. The compiled `styles.css`
489
491
  sheets (`@openreceive/react`, `@openreceive/elements`) are self-contained — a
490
492
  plain `<link rel="stylesheet">` works with no build step — and scoped: every
491
- rule applies only inside what OpenReceive renders, so the sheet is safe next
492
- to any CSS framework (Mantine, Bootstrap, your own reset) in any import order.
493
+ rule applies only inside what OpenReceive renders.
494
+
495
+ Serve the compiled `styles.css` without Tailwind processing: import it from
496
+ JavaScript (with a CSS-capable bundler) or use a plain `<link rel="stylesheet">`.
497
+ Do not `@import` it into the host Tailwind entry. Its zero-specificity rules
498
+ allow host styles to override checkout styles; scoping does not prevent that.
493
499
 
494
500
  `<Checkout>` is complete as rendered: it already shows the `description` from
495
501
  `amountFor` and the collapsed transaction-details panel. Do not build a custom
@@ -1,6 +1,6 @@
1
1
  # OpenReceive agent directions (Laravel)
2
2
 
3
- These directions describe OpenReceive 0.4.8.
3
+ These directions describe OpenReceive 0.4.9.
4
4
 
5
5
  Add OpenReceive to a Laravel application — the app you are already working in.
6
6
  You do not need a copy of the OpenReceive source: the package is on Packagist
@@ -203,6 +203,8 @@ The engine serves JSON only, so the view is yours — but the drop-ins
203
203
  list is the short form of https://openreceive.org/guides/checkout-ux.md, for a UI
204
204
  built on `@openreceive/browser/headless`. Read that before writing components.
205
205
 
206
+ - Check Bitcoin → Switch payment method → Bitcoin: the grid must hide the
207
+ Lightning invoice, then restore the same bolt11 without another mint.
206
208
  - `createCheckoutController` is the engine. Do not hand-roll a poll loop.
207
209
  - `createCheckoutStatusModel` for the status line. Do not draw a
208
210
  Cart → Pay → Done stepper. Read the model's `phase`, not the snapshot's.
@@ -560,12 +562,16 @@ costs one relay round trip, not two.
560
562
 
561
563
  ### Render the checkout
562
564
 
565
+ Serve the compiled `styles.css` without Tailwind processing: import it from
566
+ JavaScript (with a CSS-capable bundler) or use a plain `<link rel="stylesheet">`.
567
+ Do not `@import` it into the host Tailwind entry. Its zero-specificity rules
568
+ allow host styles to override checkout styles; scoping does not prevent that.
569
+
563
570
  The engine serves JSON checkout routes only — rendering is your view. Any
564
571
  OpenReceive frontend package works against the `/openreceive` mount; the
565
572
  smallest is the custom element (its default `prefix` is already
566
573
  `/openreceive`, and the package ships a self-contained `styles.css`; it is
567
- scoped to what OpenReceive renders, so it sits safely next to any CSS
568
- framework in any order). Laravel ships Vite, so the package installs like any
574
+ scoped to what OpenReceive renders). Laravel ships Vite, so the package installs like any
569
575
  other frontend dependency:
570
576
 
571
577
  ```sh
@@ -1,6 +1,6 @@
1
1
  # OpenReceive agent directions (Next.js)
2
2
 
3
- These directions describe OpenReceive 0.4.8.
3
+ These directions describe OpenReceive 0.4.9.
4
4
 
5
5
  Add OpenReceive to a Next.js App Router application — the app you are already
6
6
  working in. You do not need a copy of the OpenReceive source: the packages are
@@ -204,6 +204,8 @@ This list is the short form of https://openreceive.org/guides/checkout-ux.md, fo
204
204
  UI built on `@openreceive/browser/headless`. Read that before writing
205
205
  components.
206
206
 
207
+ - Check Bitcoin → Switch payment method → Bitcoin: the grid must hide the
208
+ Lightning invoice, then restore the same bolt11 without another mint.
207
209
  - `createCheckoutController` is the engine. Do not hand-roll a poll loop.
208
210
  - `createCheckoutStatusModel` for the status line. Do not draw a
209
211
  Cart → Pay → Done stepper. Read the model's `phase`, not the snapshot's.
@@ -537,10 +539,13 @@ reference the current session may not see; the page can read the session and
537
539
 
538
540
  The checkout renders, polls, and settles itself. The compiled `styles.css`
539
541
  sheets (`@openreceive/react`, `@openreceive/elements`) are self-contained and
540
- scoped: every rule applies only inside what OpenReceive renders, so the sheet
541
- is safe next to any CSS framework (Tailwind, Mantine, your own reset) in any
542
- import order. No `transpilePackages` entry is needed; the packages ship plain
543
- ESM.
542
+ scoped: every rule applies only inside what OpenReceive renders. No
543
+ `transpilePackages` entry is needed; the packages ship plain ESM.
544
+
545
+ Serve the compiled `styles.css` without Tailwind processing: import it from
546
+ JavaScript (with a CSS-capable bundler) or use a plain `<link rel="stylesheet">`.
547
+ Do not `@import` it into the host Tailwind entry. Its zero-specificity rules
548
+ allow host styles to override checkout styles; scoping does not prevent that.
544
549
 
545
550
  `<Checkout>` is complete as rendered: it already shows the `description` from
546
551
  `amountFor` and the collapsed transaction-details panel. Do not build a custom
@@ -1,6 +1,6 @@
1
1
  # OpenReceive agent directions (Node.js)
2
2
 
3
- These directions describe OpenReceive 0.4.8.
3
+ These directions describe OpenReceive 0.4.9.
4
4
 
5
5
  Add OpenReceive to a Node application — the app you are already working in. You
6
6
  do not need a copy of the OpenReceive source: the packages are on npm, and the
@@ -190,6 +190,8 @@ This list is the short form of https://openreceive.org/guides/checkout-ux.md, fo
190
190
  UI built on `@openreceive/browser/headless`. Read that before writing
191
191
  components.
192
192
 
193
+ - Check Bitcoin → Switch payment method → Bitcoin: the grid must hide the
194
+ Lightning invoice, then restore the same bolt11 without another mint.
193
195
  - `createCheckoutController` is the engine. Do not hand-roll a poll loop.
194
196
  - `createCheckoutStatusModel` for the status line. Do not draw a
195
197
  Cart → Pay → Done stepper. Read the model's `phase`, not the snapshot's.
@@ -465,8 +467,12 @@ import "@openreceive/react/styles.css";
465
467
  The checkout renders, polls, and settles itself. The compiled `styles.css`
466
468
  sheets (`@openreceive/react`, `@openreceive/elements`) are self-contained — a
467
469
  plain `<link rel="stylesheet">` works with no build step — and scoped: every
468
- rule applies only inside what OpenReceive renders, so the sheet is safe next
469
- to any CSS framework (Mantine, Bootstrap, your own reset) in any import order.
470
+ rule applies only inside what OpenReceive renders.
471
+
472
+ Serve the compiled `styles.css` without Tailwind processing: import it from
473
+ JavaScript (with a CSS-capable bundler) or use a plain `<link rel="stylesheet">`.
474
+ Do not `@import` it into the host Tailwind entry. Its zero-specificity rules
475
+ allow host styles to override checkout styles; scoping does not prevent that.
470
476
 
471
477
  `<Checkout>` is complete as rendered: it already shows the `description` from
472
478
  `amountFor` and the collapsed transaction-details panel. Do not build a custom
@@ -1,6 +1,6 @@
1
1
  # OpenReceive agent directions (PHP)
2
2
 
3
- These directions describe OpenReceive 0.4.8.
3
+ These directions describe OpenReceive 0.4.9.
4
4
 
5
5
  Add OpenReceive to a PHP application — the app you are already working in. You
6
6
  do not need a copy of the OpenReceive source: the engine is on Packagist
@@ -216,6 +216,8 @@ The drop-in (`<openreceive-checkout>`, from the release's standalone tarball or
216
216
  of https://openreceive.org/guides/checkout-ux.md, for a UI built on
217
217
  `@openreceive/browser/headless`. Read that before writing components.
218
218
 
219
+ - Check Bitcoin → Switch payment method → Bitcoin: the grid must hide the
220
+ Lightning invoice, then restore the same bolt11 without another mint.
219
221
  - `createCheckoutController` is the engine. Do not hand-roll a poll loop.
220
222
  - `createCheckoutStatusModel` for the status line. Do not draw a
221
223
  Cart → Pay → Done stepper. Read the model's `phase`, not the snapshot's.
@@ -513,6 +515,11 @@ and the browser snapshots are snake_case throughout.
513
515
 
514
516
  ### 5. Render checkout
515
517
 
518
+ Serve the compiled `styles.css` without Tailwind processing: import it from
519
+ JavaScript (with a CSS-capable bundler) or use a plain `<link rel="stylesheet">`.
520
+ Do not `@import` it into the host Tailwind entry. Its zero-specificity rules
521
+ allow host styles to override checkout styles; scoping does not prevent that.
522
+
516
523
  Unpack the release's `standalone-checkout-<version>.tar.gz` into a directory
517
524
  your web server serves — `public/openreceive/` here — and add two tags plus
518
525
  the element:
@@ -529,8 +536,7 @@ the element:
529
536
 
530
537
  The module registers `<openreceive-checkout>` as it loads; the element creates
531
538
  the checkout for `reference`, then renders, polls and settles itself. The
532
- stylesheet is scoped to what OpenReceive renders, so it sits safely next to
533
- any CSS framework. The checkout follows the payer's theme; on a page that is
539
+ stylesheet is scoped to what OpenReceive renders. The checkout follows the payer's theme; on a page that is
534
540
  always one theme, lock it with `theme="dark"`. React/Vue/Svelte/Angular apps
535
541
  use the matching wrapper package instead — same attributes
536
542
  ([Frontend checkout](https://openreceive.org/guides/frontend-checkout.md)); a custom UI builds on
@@ -1,6 +1,6 @@
1
1
  # OpenReceive agent directions (Rails)
2
2
 
3
- These directions describe OpenReceive 0.4.8.
3
+ These directions describe OpenReceive 0.4.9.
4
4
 
5
5
  Add OpenReceive to a Rails application — the app you are already working in. You
6
6
  do not need a copy of the OpenReceive source: the gem is on RubyGems, the
@@ -197,6 +197,8 @@ The engine serves JSON only, so the view is yours — but the drop-ins
197
197
  list is the short form of https://openreceive.org/guides/checkout-ux.md, for a UI
198
198
  built on `@openreceive/browser/headless`. Read that before writing components.
199
199
 
200
+ - Check Bitcoin → Switch payment method → Bitcoin: the grid must hide the
201
+ Lightning invoice, then restore the same bolt11 without another mint.
200
202
  - `createCheckoutController` is the engine. Do not hand-roll a poll loop.
201
203
  - `createCheckoutStatusModel` for the status line. Do not draw a
202
204
  Cart → Pay → Done stepper. Read the model's `phase`, not the snapshot's.
@@ -535,12 +537,16 @@ consoles) the client is built lazily so no live wallet is needed.
535
537
 
536
538
  ### Render the checkout
537
539
 
540
+ Serve the compiled `styles.css` without Tailwind processing: import it from
541
+ JavaScript (with a CSS-capable bundler) or use a plain `<link rel="stylesheet">`.
542
+ Do not `@import` it into the host Tailwind entry. Its zero-specificity rules
543
+ allow host styles to override checkout styles; scoping does not prevent that.
544
+
538
545
  The engine serves JSON checkout routes only — rendering is your view. Any
539
546
  OpenReceive frontend package works against the `/openreceive` mount; the
540
547
  smallest is the custom element (its default `prefix` is already
541
548
  `/openreceive`, and the package ships a self-contained `styles.css` a plain
542
- stylesheet link can serve; it is scoped to what OpenReceive renders, so it
543
- sits safely next to any CSS framework in any order):
549
+ stylesheet link can serve; it is scoped to what OpenReceive renders):
544
550
 
545
551
  ```erb
546
552
  <%# app/views/orders/pay.html.erb %>
@@ -548,7 +554,7 @@ sits safely next to any CSS framework in any order):
548
554
  ```
549
555
 
550
556
  ```js
551
- // In your JS bundle (importmap/esbuild/webpacker):
557
+ // In your JS bundle (esbuild/webpacker with CSS support):
552
558
  import { defineElements } from "@openreceive/elements";
553
559
  import "@openreceive/elements/styles.css"; // or link the compiled styles.css
554
560
 
@@ -1,6 +1,6 @@
1
1
  # OpenReceive agent directions (WordPress + WooCommerce)
2
2
 
3
- These directions describe OpenReceive 0.4.8.
3
+ These directions describe OpenReceive 0.4.9.
4
4
 
5
5
  Install and configure the OpenReceive gateway in the existing WooCommerce
6
6
  store. Preserve its theme, checkout, customer accounts, order model and prices.
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openreceive-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.8
4
+ version: 0.4.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - OpenReceive
@@ -15,28 +15,28 @@ dependencies:
15
15
  requirements:
16
16
  - - '='
17
17
  - !ruby/object:Gem::Version
18
- version: 0.4.8
18
+ version: 0.4.9
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
23
  - - '='
24
24
  - !ruby/object:Gem::Version
25
- version: 0.4.8
25
+ version: 0.4.9
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: openreceive-server
28
28
  requirement: !ruby/object:Gem::Requirement
29
29
  requirements:
30
30
  - - '='
31
31
  - !ruby/object:Gem::Version
32
- version: 0.4.8
32
+ version: 0.4.9
33
33
  type: :runtime
34
34
  prerelease: false
35
35
  version_requirements: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - '='
38
38
  - !ruby/object:Gem::Version
39
- version: 0.4.8
39
+ version: 0.4.9
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: rails
42
42
  requirement: !ruby/object:Gem::Requirement