@madojs/mado 0.5.1 → 0.6.0

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.
Files changed (101) hide show
  1. package/AGENTS.md +26 -0
  2. package/CHANGELOG.md +153 -0
  3. package/MADO_V1_PLAN.md +179 -0
  4. package/README.md +31 -13
  5. package/ROADMAP.md +28 -7
  6. package/TODO.md +72 -0
  7. package/dist/src/forms.d.ts +37 -4
  8. package/dist/src/forms.js +331 -57
  9. package/dist/src/forms.js.map +1 -1
  10. package/dist/src/html/bindings.d.ts +41 -0
  11. package/dist/src/html/bindings.js +163 -6
  12. package/dist/src/html/bindings.js.map +1 -1
  13. package/dist/src/html.d.ts +2 -0
  14. package/dist/src/html.js +1 -0
  15. package/dist/src/html.js.map +1 -1
  16. package/dist/src/index.d.ts +6 -6
  17. package/dist/src/index.js +2 -2
  18. package/dist/src/index.js.map +1 -1
  19. package/dist/src/page.d.ts +56 -0
  20. package/dist/src/page.js +17 -0
  21. package/dist/src/page.js.map +1 -1
  22. package/dist/src/router/manifest.d.ts +16 -1
  23. package/dist/src/router/manifest.js +181 -38
  24. package/dist/src/router/manifest.js.map +1 -1
  25. package/dist/src/router/match.d.ts +7 -2
  26. package/dist/src/router/match.js +14 -4
  27. package/dist/src/router/match.js.map +1 -1
  28. package/dist/src/router/navigation.d.ts +10 -0
  29. package/dist/src/router/navigation.js +71 -3
  30. package/dist/src/router/navigation.js.map +1 -1
  31. package/dist/src/signal.d.ts +15 -1
  32. package/dist/src/signal.js +112 -16
  33. package/dist/src/signal.js.map +1 -1
  34. package/docs/en/02-project-layout.md +99 -40
  35. package/docs/en/10-app-architecture.md +141 -0
  36. package/docs/en/11-layouts.md +115 -0
  37. package/docs/en/12-auth-and-api.md +217 -0
  38. package/docs/en/13-deployment.md +192 -0
  39. package/docs/en/14-testing.md +82 -0
  40. package/docs/en/15-error-handling.md +100 -0
  41. package/docs/en/16-bake-cookbook.md +93 -0
  42. package/docs/en/README.md +7 -0
  43. package/docs/fr/10-app-architecture.md +61 -0
  44. package/docs/fr/11-layouts.md +35 -0
  45. package/docs/fr/12-auth-and-api.md +35 -0
  46. package/docs/fr/13-deployment.md +39 -0
  47. package/docs/fr/14-testing.md +41 -0
  48. package/docs/fr/15-error-handling.md +50 -0
  49. package/docs/fr/16-bake-cookbook.md +35 -0
  50. package/docs/fr/README.md +7 -0
  51. package/docs/ru/10-app-architecture.md +100 -0
  52. package/docs/ru/11-layouts.md +47 -0
  53. package/docs/ru/12-auth-and-api.md +53 -0
  54. package/docs/ru/13-deployment.md +60 -0
  55. package/docs/ru/14-testing.md +50 -0
  56. package/docs/ru/15-error-handling.md +56 -0
  57. package/docs/ru/16-bake-cookbook.md +55 -0
  58. package/docs/ru/README.md +7 -0
  59. package/docs/uk/10-app-architecture.md +56 -0
  60. package/docs/uk/11-layouts.md +34 -0
  61. package/docs/uk/12-auth-and-api.md +34 -0
  62. package/docs/uk/13-deployment.md +39 -0
  63. package/docs/uk/14-testing.md +34 -0
  64. package/docs/uk/15-error-handling.md +32 -0
  65. package/docs/uk/16-bake-cookbook.md +36 -0
  66. package/docs/uk/README.md +7 -0
  67. package/llms.txt +9 -1
  68. package/package.json +3 -1
  69. package/scripts/_config.mjs +224 -0
  70. package/scripts/bake.mjs +217 -120
  71. package/scripts/bundle.mjs +110 -67
  72. package/scripts/cli.mjs +119 -15
  73. package/scripts/preview.mjs +22 -12
  74. package/server/serve.mjs +82 -4
  75. package/starters/admin/README.md +63 -0
  76. package/starters/admin/index.html +21 -0
  77. package/starters/admin/mado.config.json +22 -0
  78. package/starters/admin/package.json +22 -0
  79. package/starters/admin/public/favicon.svg +4 -0
  80. package/starters/admin/src/components/x-button.ts +55 -0
  81. package/starters/admin/src/components/x-input.ts +74 -0
  82. package/starters/admin/src/layouts/app.ts +101 -0
  83. package/starters/admin/src/layouts/auth.ts +41 -0
  84. package/starters/admin/src/lib/api.ts +133 -0
  85. package/starters/admin/src/lib/auth.ts +83 -0
  86. package/starters/admin/src/main.ts +15 -0
  87. package/starters/admin/src/pages/admin/dashboard.ts +48 -0
  88. package/starters/admin/src/pages/admin/order-detail.ts +78 -0
  89. package/starters/admin/src/pages/admin/orders.ts +117 -0
  90. package/starters/admin/src/pages/home.ts +25 -0
  91. package/starters/admin/src/pages/login.ts +70 -0
  92. package/starters/admin/src/pages/not-found.ts +12 -0
  93. package/starters/admin/src/routes.ts +40 -0
  94. package/starters/admin/src/styles/global.ts +86 -0
  95. package/starters/admin/tsconfig.json +15 -0
  96. package/starters/crud/mado.config.json +20 -0
  97. package/starters/crud/package.json +8 -4
  98. package/starters/crud/src/routes.ts +4 -2
  99. package/starters/minimal/mado.config.json +20 -0
  100. package/starters/minimal/package.json +7 -3
  101. package/starters/minimal/src/routes.ts +4 -2
@@ -15,6 +15,35 @@ import { effect } from "../signal.js";
15
15
  import { isEachResult } from "../each.js";
16
16
  import { warnOnce } from "../diagnostics.js";
17
17
  import { isTemplateResult, } from "./template-types.js";
18
+ /**
19
+ * Render a trusted HTML string as DOM nodes in child position.
20
+ *
21
+ * This intentionally does not sanitize. Only pass strings you own or have
22
+ * sanitized elsewhere.
23
+ */
24
+ export function unsafeHTML(value) {
25
+ return { _madoDirective: "unsafeHTML", value };
26
+ }
27
+ /**
28
+ * Call `callback(element)` when the element is bound, and clean it up on
29
+ * disposal. Use as `ref=${ref((el) => { ... })}`.
30
+ */
31
+ export function ref(callback) {
32
+ return { _madoDirective: "ref", callback };
33
+ }
34
+ /** Toggle CSS classes by object keys. Truthy values add, falsy values remove. */
35
+ export function classMap(value) {
36
+ return { _madoDirective: "classMap", value };
37
+ }
38
+ /** Apply inline styles from an object and remove stale keys on updates. */
39
+ export function styleMap(value) {
40
+ return { _madoDirective: "styleMap", value };
41
+ }
42
+ export function isHtmlDirective(v) {
43
+ return (typeof v === "object" &&
44
+ v !== null &&
45
+ typeof v._madoDirective === "string");
46
+ }
18
47
  /**
19
48
  * Ownership invariant:
20
49
  * - ChildState owns everything inserted before its anchor for that binding.
@@ -91,6 +120,13 @@ function renderChild(st, value, instantiateFn) {
91
120
  append(v);
92
121
  return;
93
122
  }
123
+ if (isHtmlDirective(v)) {
124
+ if (v._madoDirective !== "unsafeHTML") {
125
+ throw new Error(`[mado] ${v._madoDirective} directive cannot be used in child position.`);
126
+ }
127
+ appendUnsafeHTML(st, v.value);
128
+ return;
129
+ }
94
130
  if (isTemplateResult(v)) {
95
131
  const inst = instantiateFn(v);
96
132
  const inserted = [...inst.fragment.childNodes];
@@ -109,6 +145,16 @@ function renderChild(st, value, instantiateFn) {
109
145
  };
110
146
  handle(value);
111
147
  }
148
+ function appendUnsafeHTML(st, value) {
149
+ const parent = st.anchor.parentNode;
150
+ if (!parent)
151
+ return;
152
+ const tpl = document.createElement("template");
153
+ tpl.innerHTML = value;
154
+ const nodes = [...tpl.content.childNodes];
155
+ parent.insertBefore(tpl.content, st.anchor);
156
+ st.current.push(...nodes);
157
+ }
112
158
  function clearCurrent(st) {
113
159
  for (const inst of st.currentInsts.splice(0))
114
160
  inst.dispose();
@@ -257,12 +303,7 @@ export function bindAttr(el, spec, values, disposers) {
257
303
  if (!isMulti) {
258
304
  warnBooleanAttrIfNeeded(name);
259
305
  const v = values[spec.slots[0]];
260
- applyReactive(v, disposers, (vv) => {
261
- if (vv == null || vv === false)
262
- el.removeAttribute(name);
263
- else
264
- el.setAttribute(name, vv === true ? "" : String(vv));
265
- });
306
+ bindSingleAttr(el, name, v, disposers);
266
307
  return;
267
308
  }
268
309
  // multi-part: assemble from spec.strings + values[spec.slots[i]].
@@ -273,6 +314,9 @@ export function bindAttr(el, spec, values, disposers) {
273
314
  for (let i = 0; i < spec.slots.length; i++) {
274
315
  const v = values[spec.slots[i]];
275
316
  const resolved = typeof v === "function" ? v() : v;
317
+ if (isHtmlDirective(resolved)) {
318
+ throw new Error(`[mado] ${resolved._madoDirective} directive cannot be used in a multi-part attribute.`);
319
+ }
276
320
  out += resolved == null ? "" : String(resolved);
277
321
  out += spec.strings[i + 1] ?? "";
278
322
  }
@@ -286,6 +330,119 @@ export function bindAttr(el, spec, values, disposers) {
286
330
  el.setAttribute(name, compute());
287
331
  }
288
332
  }
333
+ function bindSingleAttr(el, name, value, disposers) {
334
+ let cleanup;
335
+ let lastPlainAttr = false;
336
+ const apply = (vv) => {
337
+ cleanup?.();
338
+ if (lastPlainAttr && isHtmlDirective(vv)) {
339
+ clearPlainAttr(el, name);
340
+ }
341
+ cleanup = applySingleAttrValue(el, name, vv);
342
+ lastPlainAttr = !isHtmlDirective(vv);
343
+ };
344
+ if (typeof value === "function") {
345
+ const d = effect(() => apply(value()));
346
+ disposers.push(() => {
347
+ d();
348
+ cleanup?.();
349
+ cleanup = undefined;
350
+ });
351
+ return;
352
+ }
353
+ apply(value);
354
+ if (cleanup) {
355
+ disposers.push(() => {
356
+ cleanup?.();
357
+ cleanup = undefined;
358
+ });
359
+ }
360
+ }
361
+ function clearPlainAttr(el, name) {
362
+ if (name === "class") {
363
+ el.classList.remove(...Array.from(el.classList));
364
+ el.removeAttribute(name);
365
+ return;
366
+ }
367
+ el.removeAttribute(name);
368
+ }
369
+ function applySingleAttrValue(el, name, value) {
370
+ if (isHtmlDirective(value)) {
371
+ return applyAttrDirective(el, name, value);
372
+ }
373
+ if (value == null || value === false)
374
+ el.removeAttribute(name);
375
+ else
376
+ el.setAttribute(name, value === true ? "" : String(value));
377
+ return undefined;
378
+ }
379
+ function applyAttrDirective(el, name, directive) {
380
+ if (directive._madoDirective === "ref") {
381
+ if (name !== "ref") {
382
+ throw new Error("[mado] ref() directive must be used as ref=${ref(...)}.");
383
+ }
384
+ el.removeAttribute(name);
385
+ const dispose = directive.callback(el);
386
+ return () => {
387
+ if (typeof dispose === "function")
388
+ dispose();
389
+ directive.callback(null);
390
+ };
391
+ }
392
+ if (directive._madoDirective === "classMap") {
393
+ if (name !== "class") {
394
+ throw new Error("[mado] classMap() directive must be used as class=${classMap(...)}.");
395
+ }
396
+ return applyClassMap(el, directive.value);
397
+ }
398
+ if (directive._madoDirective === "styleMap") {
399
+ if (name !== "style") {
400
+ throw new Error("[mado] styleMap() directive must be used as style=${styleMap(...)}.");
401
+ }
402
+ return applyStyleMap(el, directive.value);
403
+ }
404
+ throw new Error("[mado] unsafeHTML() directive can only be used in child position.");
405
+ }
406
+ function applyClassMap(el, value) {
407
+ const applied = [];
408
+ for (const [className, enabled] of Object.entries(value)) {
409
+ if (!className || !enabled)
410
+ continue;
411
+ el.classList.add(...className.trim().split(/\s+/).filter(Boolean));
412
+ applied.push(className);
413
+ }
414
+ return () => {
415
+ for (const className of applied) {
416
+ el.classList.remove(...className.trim().split(/\s+/).filter(Boolean));
417
+ }
418
+ };
419
+ }
420
+ function applyStyleMap(el, value) {
421
+ const style = el.style;
422
+ const applied = [];
423
+ if (!style)
424
+ return () => { };
425
+ for (const [rawName, rawValue] of Object.entries(value)) {
426
+ const prop = toCssPropertyName(rawName);
427
+ if (!prop)
428
+ continue;
429
+ if (rawValue == null || rawValue === false) {
430
+ style.removeProperty(prop);
431
+ continue;
432
+ }
433
+ style.setProperty(prop, String(rawValue));
434
+ applied.push(prop);
435
+ }
436
+ return () => {
437
+ for (const prop of applied)
438
+ style.removeProperty(prop);
439
+ };
440
+ }
441
+ function toCssPropertyName(name) {
442
+ if (name.startsWith("--"))
443
+ return name;
444
+ return name.replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`);
445
+ }
289
446
  function warnBooleanAttrIfNeeded(name) {
290
447
  if (name !== "disabled" && name !== "checked")
291
448
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"bindings.js","sourceRoot":"","sources":["../../../src/html/bindings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bindings.js","sourceRoot":"","sources":["../../../src/html/bindings.ts"],"names":[],"mappings":"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"}
@@ -13,4 +13,6 @@
13
13
  * For now it has no runtime cost.
14
14
  */
15
15
  export { html, render, instantiate } from "./html/template.js";
16
+ export { unsafeHTML, ref, classMap, styleMap, isHtmlDirective, } from "./html/bindings.js";
16
17
  export type { TemplateResult } from "./html/template-types.js";
18
+ export type { HtmlDirective, UnsafeHTMLDirective, RefCallback, RefDirective, ClassMap, ClassMapDirective, StyleMap, StyleMapDirective, } from "./html/bindings.js";
package/dist/src/html.js CHANGED
@@ -13,4 +13,5 @@
13
13
  * For now it has no runtime cost.
14
14
  */
15
15
  export { html, render, instantiate } from "./html/template.js";
16
+ export { unsafeHTML, ref, classMap, styleMap, isHtmlDirective, } from "./html/bindings.js";
16
17
  //# sourceMappingURL=html.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"html.js","sourceRoot":"","sources":["../../src/html.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"html.js","sourceRoot":"","sources":["../../src/html.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EACL,UAAU,EACV,GAAG,EACH,QAAQ,EACR,QAAQ,EACR,eAAe,GAChB,MAAM,oBAAoB,CAAC"}
@@ -8,9 +8,9 @@
8
8
  * In Node: via `tsconfig.paths` (resolves to "./src/index.ts").
9
9
  */
10
10
  export { signal, computed, effect, untracked, batch, flushSync, } from "./signal.js";
11
- export type { Signal, Computed, Disposer } from "./signal.js";
12
- export { html, render } from "./html.js";
13
- export type { TemplateResult } from "./html.js";
11
+ export type { Signal, Computed, ComputedOptions, Disposer } from "./signal.js";
12
+ export { html, render, unsafeHTML, ref, classMap, styleMap, } from "./html.js";
13
+ export type { TemplateResult, HtmlDirective, UnsafeHTMLDirective, RefCallback, RefDirective, ClassMap, ClassMapDirective, StyleMap, StyleMapDirective, } from "./html.js";
14
14
  export { each, list } from "./each.js";
15
15
  export { component } from "./component.js";
16
16
  export type { ComponentContext, ComponentOptions, SetupFn, StyleInput, } from "./component.js";
@@ -18,13 +18,13 @@ export { css, cssVars, adopt, scopeStyles } from "./css.js";
18
18
  export type { CSSResult } from "./css.js";
19
19
  export { router, routes, queryParam, prefetchPath, navigate, } from "./router.js";
20
20
  export type { RouterApi, RouteHandler, RouteParams, Routes, RoutesMap, RoutesOptions, QueryParam, QuerySignal, } from "./router.js";
21
- export { page, nested, isPage, isNested } from "./page.js";
22
- export type { Page, PageContext, PageData, RouteEntry, NestedRoutes, HeadMeta, BakeConfig, } from "./page.js";
21
+ export { page, nested, layout, isPage, isNested } from "./page.js";
22
+ export type { Page, PageContext, PageData, RouteEntry, NestedRoutes, HeadMeta, BakeConfig, Guard, GuardResult, } from "./page.js";
23
23
  export { applyHead } from "./head.js";
24
24
  export { resource, mutation, invalidate, jsonFetcher, HttpError, } from "./resource.js";
25
25
  export type { Resource, ResourceOptions, Mutation, MutationOptions, } from "./resource.js";
26
26
  export { useForm } from "./forms.js";
27
- export type { FormApi, FormValues, FormErrors, FieldSchema, Schema, UseFormOptions, } from "./forms.js";
27
+ export type { FormApi, FormValue, FormValues, FormErrors, FieldValidator, AsyncFieldValidator, FieldSchema, FieldArrayApi, Schema, UseFormOptions, } from "./forms.js";
28
28
  export { createContext, provide, inject } from "./context.js";
29
29
  export type { Context } from "./context.js";
30
30
  export { persisted } from "./persisted.js";
package/dist/src/index.js CHANGED
@@ -10,7 +10,7 @@
10
10
  // --- core ---
11
11
  export { signal, computed, effect, untracked, batch, flushSync, } from "./signal.js";
12
12
  // --- rendering ---
13
- export { html, render } from "./html.js";
13
+ export { html, render, unsafeHTML, ref, classMap, styleMap, } from "./html.js";
14
14
  export { each, list } from "./each.js";
15
15
  // --- components ---
16
16
  export { component } from "./component.js";
@@ -18,7 +18,7 @@ export { component } from "./component.js";
18
18
  export { css, cssVars, adopt, scopeStyles } from "./css.js";
19
19
  // --- routing ---
20
20
  export { router, routes, queryParam, prefetchPath, navigate, } from "./router.js";
21
- export { page, nested, isPage, isNested } from "./page.js";
21
+ export { page, nested, layout, isPage, isNested } from "./page.js";
22
22
  export { applyHead } from "./head.js";
23
23
  // --- data ---
24
24
  export { resource, mutation, invalidate, jsonFetcher, HttpError, } from "./resource.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,eAAe;AACf,OAAO,EACL,MAAM,EACN,QAAQ,EACR,MAAM,EACN,SAAS,EACT,KAAK,EACL,SAAS,GACV,MAAM,aAAa,CAAC;AAGrB,oBAAoB;AACpB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAGzC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEvC,qBAAqB;AACrB,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAQ3C,iBAAiB;AACjB,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAG5D,kBAAkB;AAClB,OAAO,EACL,MAAM,EACN,MAAM,EACN,UAAU,EACV,YAAY,EACZ,QAAQ,GACT,MAAM,aAAa,CAAC;AAYrB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAW3D,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,eAAe;AACf,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,WAAW,EACX,SAAS,GACV,MAAM,eAAe,CAAC;AAQvB,gBAAgB;AAChB,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAUrC,aAAa;AACb,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAG9D,sBAAsB;AACtB,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,eAAe;AACf,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,mCAAmC;AACnC,EAAE;AACF,4EAA4E;AAC5E,8DAA8D;AAC9D,2DAA2D;AAC3D,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,eAAe,GAChB,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,eAAe;AACf,OAAO,EACL,MAAM,EACN,QAAQ,EACR,MAAM,EACN,SAAS,EACT,KAAK,EACL,SAAS,GACV,MAAM,aAAa,CAAC;AAGrB,oBAAoB;AACpB,OAAO,EACL,IAAI,EACJ,MAAM,EACN,UAAU,EACV,GAAG,EACH,QAAQ,EACR,QAAQ,GACT,MAAM,WAAW,CAAC;AAanB,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEvC,qBAAqB;AACrB,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAQ3C,iBAAiB;AACjB,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAG5D,kBAAkB;AAClB,OAAO,EACL,MAAM,EACN,MAAM,EACN,UAAU,EACV,YAAY,EACZ,QAAQ,GACT,MAAM,aAAa,CAAC;AAYrB,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAanE,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,eAAe;AACf,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,WAAW,EACX,SAAS,GACV,MAAM,eAAe,CAAC;AAQvB,gBAAgB;AAChB,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAcrC,aAAa;AACb,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAG9D,sBAAsB;AACtB,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAG3C,eAAe;AACf,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,mCAAmC;AACnC,EAAE;AACF,4EAA4E;AAC5E,8DAA8D;AAC9D,2DAA2D;AAC3D,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,eAAe,GAChB,MAAM,gBAAgB,CAAC"}
@@ -107,6 +107,35 @@ export interface BakeConfig<P extends RouteParams, D> {
107
107
  */
108
108
  revalidate?: number;
109
109
  }
110
+ /**
111
+ * Guard verdict.
112
+ *
113
+ * undefined / void → pass: continue to the next guard or render the page.
114
+ * { halt: true } → stop: the guard already navigated/handled it, render nothing.
115
+ * { redirect: url } → navigate to `url` (preserves a `?return=` if missing).
116
+ */
117
+ export type GuardResult = void | undefined | {
118
+ halt: true;
119
+ } | {
120
+ redirect: string;
121
+ replace?: boolean;
122
+ };
123
+ /**
124
+ * Guard function. Runs before a page (or any page in a nested group) is rendered.
125
+ *
126
+ * const requireAuth: Guard = ({ path }) => {
127
+ * if (isLoggedIn()) return;
128
+ * return { redirect: `/login?return=${encodeURIComponent(path)}` };
129
+ * };
130
+ *
131
+ * Guards can be async. They are evaluated in order: each parent group's guards
132
+ * first (outer → inner), then the page's own guards. The first non-pass verdict
133
+ * wins.
134
+ */
135
+ export type Guard = (ctx: {
136
+ params: RouteParams;
137
+ path: string;
138
+ }) => GuardResult | Promise<GuardResult>;
110
139
  export interface Page<P extends RouteParams = RouteParams, D = unknown> {
111
140
  readonly _page: true;
112
141
  title?: string | ((params: P) => string);
@@ -127,6 +156,11 @@ export interface Page<P extends RouteParams = RouteParams, D = unknown> {
127
156
  * If not set — the global `error` from routes() is used.
128
157
  */
129
158
  errorView?: (err: Error, params: P) => TemplateResult;
159
+ /**
160
+ * Route guards for this page. Evaluated after any guards from the
161
+ * enclosing nested groups. See `Guard` for the verdict contract.
162
+ */
163
+ guard?: Guard | Guard[];
130
164
  }
131
165
  /**
132
166
  * Page factory. A typed wrapper over a plain object —
@@ -156,6 +190,28 @@ export interface NestedRoutes {
156
190
  }>);
157
191
  /** Sub-routes. Keys are relative ("" , "users", "users/:id"). */
158
192
  routes: Record<string, RouteEntry>;
193
+ /**
194
+ * Guards applied to every page below this group, before the page's own
195
+ * guards. Single guard or ordered array. Async OK.
196
+ */
197
+ guard?: Guard | Guard[];
159
198
  }
160
199
  export declare function nested(spec: Omit<NestedRoutes, "_nested">): NestedRoutes;
200
+ /**
201
+ * `layout()` is the recommended factory for a nested route group with a
202
+ * shared shell. It is the same shape as `nested()` — kept under a clearer
203
+ * name so that app code reads as:
204
+ *
205
+ * "/admin": layout({
206
+ * layout: () => import("./layouts/admin.js"),
207
+ * guard: () => import("./lib/auth.js").then(m => m.requireAuth),
208
+ * routes: {
209
+ * "/": () => import("./pages/admin/dashboard.js"),
210
+ * "/orders": () => import("./pages/admin/orders.js"),
211
+ * },
212
+ * })
213
+ *
214
+ * Prefer `layout()` over `nested()` in new code.
215
+ */
216
+ export declare const layout: typeof nested;
161
217
  export declare const isNested: (v: unknown) => v is NestedRoutes;
package/dist/src/page.js CHANGED
@@ -34,5 +34,22 @@ export const isPage = (v) => typeof v === "object" && v !== null && v._page ===
34
34
  export function nested(spec) {
35
35
  return { _nested: true, ...spec };
36
36
  }
37
+ /**
38
+ * `layout()` is the recommended factory for a nested route group with a
39
+ * shared shell. It is the same shape as `nested()` — kept under a clearer
40
+ * name so that app code reads as:
41
+ *
42
+ * "/admin": layout({
43
+ * layout: () => import("./layouts/admin.js"),
44
+ * guard: () => import("./lib/auth.js").then(m => m.requireAuth),
45
+ * routes: {
46
+ * "/": () => import("./pages/admin/dashboard.js"),
47
+ * "/orders": () => import("./pages/admin/orders.js"),
48
+ * },
49
+ * })
50
+ *
51
+ * Prefer `layout()` over `nested()` in new code.
52
+ */
53
+ export const layout = nested;
37
54
  export const isNested = (v) => typeof v === "object" && v !== null && v._nested === true;
38
55
  //# sourceMappingURL=page.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"page.js","sourceRoot":"","sources":["../../src/page.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AA0GH;;;GAGG;AACH,MAAM,UAAU,IAAI,CAClB,IAA+B;IAE/B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC;AAClC,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAU,EAAa,EAAE,CAC9C,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAK,CAAU,CAAC,KAAK,KAAK,IAAI,CAAC;AA8BpE,MAAM,UAAU,MAAM,CAAC,IAAmC;IACxD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC;AACpC,CAAC;AAED,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAU,EAAqB,EAAE,CACxD,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAK,CAAkB,CAAC,OAAO,KAAK,IAAI,CAAC"}
1
+ {"version":3,"file":"page.js","sourceRoot":"","sources":["../../src/page.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AA6IH;;;GAGG;AACH,MAAM,UAAU,IAAI,CAClB,IAA+B;IAE/B,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC;AAClC,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAU,EAAa,EAAE,CAC9C,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAK,CAAU,CAAC,KAAK,KAAK,IAAI,CAAC;AAmCpE,MAAM,UAAU,MAAM,CAAC,IAAmC;IACxD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,CAAC;AACpC,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC;AAE7B,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAU,EAAqB,EAAE,CACxD,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAK,CAAkB,CAAC,OAAO,KAAK,IAAI,CAAC"}
@@ -13,7 +13,7 @@
13
13
  * without loading state and without a microtask. Removes flicker on back/forward.
14
14
  */
15
15
  import type { TemplateResult } from "../html/template-types.js";
16
- import { type RoutesMap } from "./match.js";
16
+ import { type RouteParams, type RoutesMap } from "./match.js";
17
17
  import { type RouterApi } from "./navigation.js";
18
18
  export interface RoutesOptions {
19
19
  /**
@@ -24,6 +24,11 @@ export interface RoutesOptions {
24
24
  loading?: () => TemplateResult;
25
25
  /** TemplateResult if the import threw. */
26
26
  error?: (err: Error) => TemplateResult;
27
+ /**
28
+ * Route-level error boundary for lazy import, load() and view() errors.
29
+ * A page's local `errorView` wins when present.
30
+ */
31
+ errorPage?: (err: Error, params: RouteParams) => TemplateResult;
27
32
  /** Prefix for document.title (e.g. ' · MyApp'). */
28
33
  titleSuffix?: string;
29
34
  /**
@@ -38,6 +43,16 @@ export interface RoutesOptions {
38
43
  * Default true.
39
44
  */
40
45
  viewTransitions?: boolean;
46
+ /**
47
+ * Restore saved scroll on back/forward and scroll new navigations to top.
48
+ * Default true.
49
+ */
50
+ scrollRestoration?: boolean;
51
+ /**
52
+ * Move focus to the main content landmark after navigation.
53
+ * Default true.
54
+ */
55
+ focusManagement?: boolean;
41
56
  }
42
57
  /**
43
58
  * Create a router from a manifest. Returns the same RouterApi as router().