@tripod311/splash 0.0.7 → 0.0.8

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
@@ -188,6 +188,7 @@ TemplateCache.registerDrop("chatMessage", `
188
188
 
189
189
  **Creating a drop**
190
190
  ```ts
191
+ // second parameter is optional, use it when you want to fill drop with some content.
191
192
  const drop = TemplateCache.createDrop("chatMessage", {
192
193
  author: "Alice",
193
194
  text: "<b>Hello!</b>"
@@ -208,6 +209,29 @@ export interface Drop {
208
209
  }
209
210
  ```
210
211
 
212
+ ### 4. Generic Components
213
+
214
+ Generic components are a middle ground between **drops** and **regular components**.
215
+ They are useful when you need something that behaves like a component (can be mounted into a slot, updated, unmounted), but is too simple to justify creating a separate `.ts` + `.html` pair.
216
+
217
+ A common use case is when you want to render either a real component or a simple piece of UI (like an error message) into the same slot. A drop alone cannot be mounted into a slot, but a generic component can wrap it.
218
+
219
+ **Example:**
220
+ ```ts
221
+ const result = await someAsyncRequest();
222
+
223
+ if (!result.error) {
224
+ this.slots.content.push(new MyRegularComponent({}));
225
+ } else {
226
+ // Wrap a drop (or any HTML node) into a generic component
227
+ const errorDrop = TemplateCache.createDrop("errorMessage");
228
+ this.slots.content.push(Component.generic({ text: result.details }, errorDrop.node));
229
+ }
230
+ ```
231
+
232
+ In this way, you can take drops or any ad-hoc HTML node created in code and treat it as a real component.
233
+ This keeps your slot API consistent — you always mount components, whether they are full, generic, or lightweight wrappers around static HTML.
234
+
211
235
  ---
212
236
 
213
237
  ### 4. Mounting & Unmounting
@@ -1 +1 @@
1
- {"version":3,"file":"templateCache.d.ts","sourceRoot":"","sources":["../src/templateCache.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,IAAI;IACpB,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;CAClC;AAED,qBAAa,aAAa;IACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAmC;IACvD,OAAO,CAAC,MAAM,CAAC,SAAS,CAA4B;IAEpD,MAAM,CAAC,eAAe,CAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAYtE,MAAM,CAAC,WAAW,CAAE,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAIvD,MAAM,CAAC,YAAY,CAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAWvD,MAAM,CAAC,UAAU,CAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,IAAI;IAe7E,OAAO,CAAC,MAAM,CAAC,QAAQ;CAkDvB"}
1
+ {"version":3,"file":"templateCache.d.ts","sourceRoot":"","sources":["../src/templateCache.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,IAAI;IACpB,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;CAClC;AAED,qBAAa,aAAa;IACzB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAmC;IACvD,OAAO,CAAC,MAAM,CAAC,SAAS,CAA4B;IAEpD,MAAM,CAAC,eAAe,CAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAYtE,MAAM,CAAC,WAAW,CAAE,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAIvD,MAAM,CAAC,YAAY,CAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAWvD,MAAM,CAAC,UAAU,CAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAM,GAAG,IAAI,GAAG,IAAI;IAejF,OAAO,CAAC,MAAM,CAAC,QAAQ;CAkDvB"}
@@ -23,7 +23,7 @@ export class TemplateCache {
23
23
  const compiled = root.firstElementChild;
24
24
  TemplateCache.drops[dropName] = compiled;
25
25
  }
26
- static createDrop(dropName, fill) {
26
+ static createDrop(dropName, fill = {}) {
27
27
  if (TemplateCache.drops[dropName] === undefined)
28
28
  return null;
29
29
  const result = {
@@ -1 +1 @@
1
- {"version":3,"file":"templateCache.js","sourceRoot":"","sources":["../src/templateCache.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"templateCache.js","sourceRoot":"","sources":["../src/templateCache.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tripod311/splash",
3
- "version": "0.0.7",
3
+ "version": "0.0.8",
4
4
  "description": "simple and flexible ui framework",
5
5
  "keywords": [
6
6
  "js",