rip-lang 3.13.12 → 3.13.13

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
@@ -9,7 +9,7 @@
9
9
  </p>
10
10
 
11
11
  <p align="center">
12
- <a href="CHANGELOG.md"><img src="https://img.shields.io/badge/version-3.13.12-blue.svg" alt="Version"></a>
12
+ <a href="CHANGELOG.md"><img src="https://img.shields.io/badge/version-3.13.13-blue.svg" alt="Version"></a>
13
13
  <a href="#zero-dependencies"><img src="https://img.shields.io/badge/dependencies-ZERO-brightgreen.svg" alt="Dependencies"></a>
14
14
  <a href="#"><img src="https://img.shields.io/badge/tests-1%2C251%2F1%2C251-brightgreen.svg" alt="Tests"></a>
15
15
  <a href="LICENSE"><img src="https://img.shields.io/badge/license-MIT-green.svg" alt="License"></a>
@@ -330,6 +330,12 @@ That's it. All `<script type="text/rip">` tags share scope — `export` makes na
330
330
 
331
331
  <!-- Server mode with full app lifecycle (router, stash, hot reload) -->
332
332
  <script defer src="/rip/rip.min.js" data-launch="bundle"></script>
333
+
334
+ <!-- Server mode with stash persistence (sessionStorage) -->
335
+ <script defer src="/rip/rip.min.js" data-launch="bundle" data-persist></script>
336
+
337
+ <!-- Server mode with localStorage persistence -->
338
+ <script defer src="/rip/rip.min.js" data-launch="bundle" data-persist="local"></script>
333
339
  ```
334
340
 
335
341
  Every component has a static `mount(target)` method — `App.mount '#app'` is shorthand for `App.new().mount('#app')`. Target defaults to `'body'`.
package/docs/dist/rip.js CHANGED
@@ -3827,8 +3827,8 @@ Expecting ${expected.join(", ")}, got '${this.tokenNames[symbol] || symbol}'`;
3827
3827
  }
3828
3828
  return sexpr;
3829
3829
  }
3830
- if (sexpr[0] === ".") {
3831
- return [".", this.transformComponentMembers(sexpr[1]), sexpr[2]];
3830
+ if (sexpr[0] === "." || sexpr[0] === "?.") {
3831
+ return [sexpr[0], this.transformComponentMembers(sexpr[1]), sexpr[2]];
3832
3832
  }
3833
3833
  if (sexpr[0] === "->") {
3834
3834
  return ["=>", ...sexpr.slice(1).map((item) => this.transformComponentMembers(item))];
@@ -8352,8 +8352,8 @@ globalThis.zip ??= (...a) => a[0].map((_, i) => a.map(b => b[i]));
8352
8352
  return new CodeGenerator({}).getComponentRuntime();
8353
8353
  }
8354
8354
  // src/browser.js
8355
- var VERSION = "3.13.11";
8356
- var BUILD_DATE = "2026-02-24@21:52:35GMT";
8355
+ var VERSION = "3.13.13";
8356
+ var BUILD_DATE = "2026-02-25@00:01:59GMT";
8357
8357
  if (typeof globalThis !== "undefined") {
8358
8358
  if (!globalThis.__rip)
8359
8359
  new Function(getReactiveRuntime())();
@@ -8434,9 +8434,12 @@ ${js}
8434
8434
  if (ui?.launch) {
8435
8435
  const url = cfg.getAttribute("data-launch") || "";
8436
8436
  const hash = cfg.getAttribute("data-hash");
8437
+ const persist = cfg.getAttribute("data-persist");
8437
8438
  const opts = { hash: hash !== "false" };
8438
8439
  if (url)
8439
8440
  opts.bundleUrl = url;
8441
+ if (persist != null)
8442
+ opts.persist = persist === "local" ? "local" : true;
8440
8443
  await ui.launch("", opts);
8441
8444
  }
8442
8445
  }