@symbiotejs/symbiote 3.4.2 → 3.4.3
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/AI_REFERENCE.md +1 -1
- package/CHANGELOG.md +10 -0
- package/README.md +2 -2
- package/core/Symbiote.js +9 -0
- package/core/dictionary.js +1 -1
- package/package.json +1 -1
- package/types/core/Symbiote.d.ts.map +1 -1
package/AI_REFERENCE.md
CHANGED
|
@@ -153,7 +153,7 @@ Prefixes control which data context a binding resolves to:
|
|
|
153
153
|
| Prefix | Meaning | Example | Description |
|
|
154
154
|
|--------|---------|---------|-------------|
|
|
155
155
|
| _(none)_ | Local state | `{{count}}` | Current component's local context |
|
|
156
|
-
| `^` |
|
|
156
|
+
| `^` | Pop-up | `{{^parentProp}}` | Walk up DOM ancestry to find nearest component that has this prop in its data context (`init$` / `add$()`) |
|
|
157
157
|
| `*` | Shared context | `{{*sharedProp}}` | Shared context scoped by `ctx` attribute or CSS `--ctx` |
|
|
158
158
|
| `/` | Named context | `{{APP/myProp}}` | Global named context identified by key before `/` |
|
|
159
159
|
| `--` | CSS Data | `{{--my-css-var}}` | Read value from CSS custom property |
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 3.4.3
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
|
|
7
|
+
- **SSR: shared context props (`*prop`) with `ctx` attribute.** `getCssData()` attempted `window.getComputedStyle()` during server-side rendering, which is unavailable in linkedom. Now returns `null` immediately when `globalThis.__SYMBIOTE_SSR` is set, skipping all computed CSS reads on the server.
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- **DevMode warning for CSS data bindings in SSR/ISO mode.** When `devMode = true` and the component has `ssrMode` or `isoMode`, a `console.warn` fires for each `bindCssData` call — computed styles are unavailable during SSR, so the init value is used instead.
|
|
12
|
+
|
|
3
13
|
## 3.4.2
|
|
4
14
|
|
|
5
15
|
### Fixed
|
package/README.md
CHANGED
|
@@ -168,7 +168,7 @@ class TaskList extends Symbiote {
|
|
|
168
168
|
{ name: 'Write docs' },
|
|
169
169
|
];
|
|
170
170
|
init$ = {
|
|
171
|
-
// Needs to be defined in init$ for
|
|
171
|
+
// Needs to be defined in init$ for pop-up binding to work
|
|
172
172
|
onItemClick: () => {
|
|
173
173
|
console.log('clicked!');
|
|
174
174
|
},
|
|
@@ -186,7 +186,7 @@ TaskList.template = html`
|
|
|
186
186
|
|
|
187
187
|
Items have their own state scope. Use the **`^` prefix** to reach higher-level component properties and handlers — `'^onItemClick'` binds to the parent's `onItemClick`, not the item's. Properties referenced via `^` must be defined in the parent's `init$`.
|
|
188
188
|
|
|
189
|
-
###
|
|
189
|
+
### Pop-up binding (`^`)
|
|
190
190
|
|
|
191
191
|
The `^` prefix works in any nested component template — it walks up the DOM tree to find the nearest ancestor that has the property registered in its data context (`init$` or `add$()`):
|
|
192
192
|
|
package/core/Symbiote.js
CHANGED
|
@@ -598,6 +598,9 @@ export class Symbiote extends HTMLElement {
|
|
|
598
598
|
* @param {Boolean} [silentCheck]
|
|
599
599
|
*/
|
|
600
600
|
getCssData(propName, silentCheck = false) {
|
|
601
|
+
if (globalThis.__SYMBIOTE_SSR) {
|
|
602
|
+
return null;
|
|
603
|
+
}
|
|
601
604
|
if (!this.#cssDataCache) {
|
|
602
605
|
this.#cssDataCache = Object.create(null);
|
|
603
606
|
}
|
|
@@ -639,6 +642,12 @@ export class Symbiote extends HTMLElement {
|
|
|
639
642
|
* @param {any} [initValue] Uses empty string by default to make value useful in template
|
|
640
643
|
*/
|
|
641
644
|
bindCssData(propName, initValue = '') {
|
|
645
|
+
if (Symbiote.#devMode && (this.ssrMode || this.isoMode)) {
|
|
646
|
+
console.warn(
|
|
647
|
+
`[Symbiote dev] <${this.localName}>: CSS data binding "${propName}" will not read computed styles during SSR. `
|
|
648
|
+
+ 'The init value will be used instead.'
|
|
649
|
+
);
|
|
650
|
+
}
|
|
642
651
|
if (!this.#boundCssProps) {
|
|
643
652
|
this.#boundCssProps = new Set();
|
|
644
653
|
}
|
package/core/dictionary.js
CHANGED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"type": "module",
|
|
3
3
|
"name": "@symbiotejs/symbiote",
|
|
4
|
-
"version": "3.4.
|
|
4
|
+
"version": "3.4.3",
|
|
5
5
|
"description": "Symbiote.js - zero-dependency close-to-platform frontend library to build super-powered web components",
|
|
6
6
|
"author": "team@rnd-pro.com",
|
|
7
7
|
"license": "MIT",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Symbiote.d.ts","sourceRoot":"","sources":["../../core/Symbiote.js"],"names":[],"mappings":";;AAmBA,sBADc,CAAC;IAuBb,cADW,mBAAmB,CACjB;IAGb,sCAAwB;IAExB,iCAGC;IAED,8BAEC;IAkBD,wBAAgB;IAyJhB,+BAJwB,CAAC,SAAZ,aAAU,uBAEZ,CAAC;;;MAuCX;IAmPD,qCAA+B;IAoC/B,iDAFa,OAAO,QAAQ,CAqB3B;IAED,wBAKC;IAGD;;aAOC;
|
|
1
|
+
{"version":3,"file":"Symbiote.d.ts","sourceRoot":"","sources":["../../core/Symbiote.js"],"names":[],"mappings":";;AAmBA,sBADc,CAAC;IAuBb,cADW,mBAAmB,CACjB;IAGb,sCAAwB;IAExB,iCAGC;IAED,8BAEC;IAkBD,wBAAgB;IAyJhB,+BAJwB,CAAC,SAAZ,aAAU,uBAEZ,CAAC;;;MAuCX;IAmPD,qCAA+B;IAoC/B,iDAFa,OAAO,QAAQ,CAqB3B;IAED,wBAKC;IAGD;;aAOC;IAsHD,6BADY,SAAS,aAAa,QAOjC;IAGD,+BADY,SAAS,aAAa,QAOjC;IAGD,8BADY,SAAS,aAAa,EAIjC;IAGD,gCADY,SAAS,aAAa,EAIjC;IAnjBD,cA6BC;IApID,gCAEC;IAED,qBAAiB;IACjB,uBAAmB;IAiBnB,kBAHW,SAAS,gBAAgB,0BAkFnC;IAnDG,aAAiD;IAwDnD,OADW,CAAC,CACoB;IAEhC;;MAAmC;IAEnC,oBADW,GAAG,CAAC,CAAC,EAAE,EAAE,gBAAgB,gBAAW,EAAE,KAAK,eAAU,KAAK,IAAI,CAAC,CACvC;IAEnC;;MAA8B;IAC9B,kBAAwB;IAExB,qBAAwB;IAExB,sBAAyB;IAEzB,wBAA0B;IAE1B,0BAA6B;IAI7B,iBAAoB;IAEpB,6BAAgC;IAEhC,mBAAsB;IAEtB,4BAA8B;IAIhC,yBAEC;IAGD,sBASC;IAGD,4BAKC;IAGD,6BAEC;IAoDD,IALuB,CAAC,SAAX,MAAO,CAAE,QACX,CAAC,WACD,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,wBAmB/B;IAGD,2BAGC;IAGD,uBAGC;IAQD,IALuB,CAAC,SAAX,MAAO,CAAE,qBAEX,CAAC,CAAC,CAAC,CAAC,2BAMd;IAMD,UAHW,OAAO,CAAC,CAAC,CAAC,2BAOpB;IAGD,SADc,CAAC,CA2Bd;IAMD,YAHW,OAAO,CAAC,CAAC,CAAC,mCAcpB;IAED,8BAgBC;IAdG,4CASE;IAwFF,0BAAwC;IAwB1C,uBAAyB;IAG3B,0BAEC;IAED,wBAAoB;IAUpB,yBAAuB;IACvB,6BA0BC;IA6CD,oEAeC;IAMD,yDAoBC;IAYD,0BAME;IAMF,0CAFW,GAAG,QAmBb;IAED,yBAGC;IAOD,8EAmBC;;CA+BF;;mBAltBkB,aAAa;qBACX,iBAAiB;2BACX,iBAAiB"}
|