@leavittsoftware/web 10.1.1 → 10.2.1

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/CLAUDE.md CHANGED
@@ -23,11 +23,23 @@ When bumping `@leavittsoftware/web` in a downstream project, read every entry **
23
23
 
24
24
  ### Unreleased
25
25
 
26
- **Upgrade if coming from:** `< unreleased` (published latest is `10.0.2`)
26
+ **Upgrade if coming from:** `< unreleased` (published latest is `10.2.0`)
27
+
28
+ **Search downstream for:**
29
+
30
+ - `AppRoute` / `PageRoute` / `RedirectRoute` imports from `titanium/helpers/route`
31
+ - App-shell `#routes` tables and `before` handlers on page routes
32
+ - `'page' in route` / `'redirect' in route` discriminators used to collect or execute matches
27
33
 
28
34
  **Adopt when upgrading to this version:**
29
35
 
30
- - `TitaniumDataTableCoreItemMetaData.omitFromCsv` set on action/button columns to exclude them from built-in CSV export; use `csvValue` when a complex `render` column should export a scalar value
36
+ - **Middleware + halt pipeline** — `AppRoute` now includes `MiddlewareRoute` (`pattern` + required `before`, no `page`/`redirect`). Matching destinations run **all** matching middleware (and page `before` handlers) in declaration order; handlers continue by default and may return `ROUTE_HALT` / `'halt'` (`RouteHandlerResult`) to stop the pipeline without rendering. Rework app routers from “first match wins immediately” to the two-pass collect-then-execute pattern (see skeleton.leavitt.com `develop` / leavittbook `my-app.ts`). Prefer importing `ROUTE_HALT` from `titanium/helpers/route` instead of the string literal.
37
+
38
+ **Renamed / API changes:**
39
+
40
+ - `AppRoute` = `MiddlewareRoute | PageRoute | RedirectRoute`
41
+ - `PageRoute.before` return type is now `RouteHandlerResult | Promise<RouteHandlerResult>` (may return `ROUTE_HALT` / `'halt'`)
42
+ - New exports: `MiddlewareRoute`, `RouteHandlerResult`, `ROUTE_HALT`
31
43
 
32
44
  ### 10.0.0
33
45
 
@@ -485,7 +497,7 @@ Titanium class inheritance (in addition to Material Web extend/compose — see *
485
497
  | Attribute | `fixed` | `boolean` | Content position when closed (inline mode only) |
486
498
  | Attribute | `keep-open-when-going-to-flyover` | `boolean` | Preserve open state on mode switch |
487
499
 
488
- **Methods:** `open()`, `close()`, `toggle()`, `closeQuick()`
500
+ **Methods:** `open()`, `openQuick()`, `close()`, `toggle()`, `closeQuick()`
489
501
 
490
502
  **Events:** `open-change`; redispatches native `close`, `toggle` from dialog
491
503
 
@@ -501,6 +513,7 @@ Titanium class inheritance (in addition to Material Web extend/compose — see *
501
513
  - Flyover sets `html { overflow: hidden }`
502
514
  - Inline sidebar: set `mode="inline"` and call `open()`; do not use removed `always-show-content`
503
515
  - Switching `mode` from inline→flyover: use `keep-open-when-going-to-flyover` to stay open
516
+ - Restoring an already-open drawer on mount (e.g. persisted sidebar state): call `openQuick()` instead of `open()` so slide-in animation does not replay; use `open()` for user-initiated toggles
504
517
 
505
518
  ---
506
519
 
@@ -1317,23 +1330,23 @@ These apply to the **host class** (`LitElement` or `Md*` subclass). They stack w
1317
1330
 
1318
1331
  ## Helpers (selected)
1319
1332
 
1320
- | Symbol | Import path | Purpose |
1321
- | ----------------------------------------------- | --------------------------------------------------------------- | ------------------------------------------------------------------------------- |
1322
- | `Debouncer` | `titanium/helpers/debouncer` | Debounced async calls |
1323
- | `delay` | `titanium/helpers/delay` | Promise delay |
1324
- | `getCdnDownloadUrl`, `getCdnInlineUrl` | `titanium/helpers/get-cdn-download-url`, `get-cdn-Inline-url` | CDN attachment URLs |
1325
- | `getCompanyMarkUrl`, `getCompanyLogoUrl` | `titanium/helpers/get-company-mark-url`, `get-company-logo-url` | Company branding URLs |
1326
- | `formatAddress`, address utils | `titanium/helpers/address/*` | Address formatting |
1327
- | Phone formatters | `titanium/helpers/phone-numbers/*` | Phone number display |
1328
- | `convertArrayToCsv`, `startCsvDownload` | `titanium/helpers/csv/*` | CSV export |
1329
- | `getSearchTokens` | `titanium/helpers/get-search-token` | OData search token parsing |
1330
- | `escapeTerm` | `titanium/helpers/escape-term` | OData string escaping |
1331
- | `groupBy`, `join`, `middleEllipsis` | `titanium/helpers/*` | General utilities |
1332
- | `notNull`, `notUndefined`, `notNullOrUndefined` | `titanium/helpers/*` | Type guards |
1333
- | `installMediaQueryWatcher` | `titanium/helpers/install-media-query-watcher` | Responsive layout callback |
1334
- | `findScrollableParent` | `titanium/helpers/find-scrollable-parent` | Scroll container detection |
1335
- | `isDevelopment` | `titanium/helpers/is-development` | Dev environment detection |
1336
- | `AppRoute`, `PageRoute`, `RedirectRoute` | `titanium/helpers/route` | Route table types for Navigation API SPA routers (`URLPattern` + lazy `import`) |
1333
+ | Symbol | Import path | Purpose |
1334
+ | --------------------------------------------------------------------------------- | --------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
1335
+ | `Debouncer` | `titanium/helpers/debouncer` | Debounced async calls |
1336
+ | `delay` | `titanium/helpers/delay` | Promise delay |
1337
+ | `getCdnDownloadUrl`, `getCdnInlineUrl` | `titanium/helpers/get-cdn-download-url`, `get-cdn-Inline-url` | CDN attachment URLs |
1338
+ | `getCompanyMarkUrl`, `getCompanyLogoUrl` | `titanium/helpers/get-company-mark-url`, `get-company-logo-url` | Company branding URLs |
1339
+ | `formatAddress`, address utils | `titanium/helpers/address/*` | Address formatting |
1340
+ | Phone formatters | `titanium/helpers/phone-numbers/*` | Phone number display |
1341
+ | `convertArrayToCsv`, `startCsvDownload` | `titanium/helpers/csv/*` | CSV export |
1342
+ | `getSearchTokens` | `titanium/helpers/get-search-token` | OData search token parsing |
1343
+ | `escapeTerm` | `titanium/helpers/escape-term` | OData string escaping |
1344
+ | `groupBy`, `join`, `middleEllipsis` | `titanium/helpers/*` | General utilities |
1345
+ | `notNull`, `notUndefined`, `notNullOrUndefined` | `titanium/helpers/*` | Type guards |
1346
+ | `installMediaQueryWatcher` | `titanium/helpers/install-media-query-watcher` | Responsive layout callback |
1347
+ | `findScrollableParent` | `titanium/helpers/find-scrollable-parent` | Scroll container detection |
1348
+ | `isDevelopment` | `titanium/helpers/is-development` | Dev environment detection |
1349
+ | `AppRoute`, `PageRoute`, `RedirectRoute`, `MiddlewareRoute`, `RouteHandlerResult`, `ROUTE_HALT` | `titanium/helpers/route` | Route table types for Navigation API SPA routers (`URLPattern` + lazy `import`). `MiddlewareRoute` (`pattern` + `before`, no `page`/`redirect`) runs for every matching destination in declaration order before the first matching page/redirect; handlers continue by default and may return `ROUTE_HALT` / `'halt'` (`RouteHandlerResult`) to stop the pipeline (e.g. after a guard redirect). `PageRoute.before` may also return `ROUTE_HALT` to skip its render. |
1337
1350
 
1338
1351
  ## Hacks
1339
1352
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leavittsoftware/web",
3
- "version": "10.1.1",
3
+ "version": "10.2.1",
4
4
  "license": "Apache-2.0",
5
5
  "description": "",
6
6
  "files": [
@@ -42,5 +42,5 @@
42
42
  "url": "https://github.com/LeavittSoftware/titanium-elements/issues"
43
43
  },
44
44
  "homepage": "https://github.com/LeavittSoftware/titanium-elements/#readme",
45
- "gitHead": "badd246ba7c02166d40f48c3b66adb25c6ad4864"
45
+ "gitHead": "3162a6324c1b3e2b860c779defcd5dec6655cbff"
46
46
  }
@@ -33,6 +33,10 @@ export declare class TitaniumDrawer extends LitElement {
33
33
  * Opens drawer
34
34
  */
35
35
  open(): void;
36
+ /**
37
+ * Opens drawer without animations
38
+ */
39
+ openQuick(): void;
36
40
  /**
37
41
  * Closes drawer
38
42
  */
@@ -120,6 +120,21 @@ let TitaniumDrawer = class TitaniumDrawer extends LitElement {
120
120
  this.setBodyOverflow('hidden');
121
121
  }
122
122
  }
123
+ /**
124
+ * Opens drawer without animations
125
+ */
126
+ openQuick() {
127
+ this.dialog?.setAttribute('no-animate', '');
128
+ if (this.mode === 'inline') {
129
+ this.#setOpen(true);
130
+ }
131
+ else {
132
+ this.dialog?.showModal();
133
+ this.dialog?.removeAttribute('hide');
134
+ this.setBodyOverflow('hidden');
135
+ }
136
+ requestAnimationFrame(() => this.dialog?.removeAttribute('no-animate'));
137
+ }
123
138
  /**
124
139
  * Closes drawer
125
140
  */
@@ -282,6 +297,11 @@ let TitaniumDrawer = class TitaniumDrawer extends LitElement {
282
297
  animation: show-reverse 0.25s ease normal;
283
298
  }
284
299
 
300
+ dialog[no-animate][open],
301
+ :host([mode='inline'][open]) dialog[no-animate]:not([open]) {
302
+ animation: none !important;
303
+ }
304
+
285
305
  ::slotted(h3) {
286
306
  font-family: 'Metropolis';
287
307
  color: var(--md-sys-color-on-background);
@@ -1 +1 @@
1
- {"version":3,"file":"drawer.js","sourceRoot":"","sources":["drawer.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,UAAU,EAAkB,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1F,OAAO,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAC;AAEjF;;;;;;;;GAQG;AAEI,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,UAAU;;IACV,yBAAkC;IAAlC,IAAA,MAAM,4CAA4B;IAAlC,IAAA,MAAM,kDAA4B;IAKf,0BAAiB,KAAK,CAAC;IAH5E;;OAEG;IACkD,IAAA,KAAK,2CAAkB;IAAvB,IAAA,KAAK,iDAAkB;IAKxB,8BAA2B,KAAK,CAAC;IAHrF;;OAEG;IACiD,IAAA,SAAS,+CAAwB;IAAjC,IAAA,SAAS,qDAAwB;IAEC,8BAAY,KAAK,CAAC;IAAlB,IAAA,SAAS,+CAAS;IAAlB,IAAA,SAAS,qDAAS;IAClB,8BAAY,KAAK,CAAC;IAAlB,IAAA,SAAS,+CAAS;IAAlB,IAAA,SAAS,qDAAS;IACG,+CAA6B,KAAK,CAAC;IAAnC,IAAA,0BAA0B,gEAAS;IAAnC,IAAA,0BAA0B,sEAAS;IAEvE,yBAAoC,IAAI,CAAC;IAAzC,IAAA,IAAI,0CAAqC;IAAzC,IAAA,IAAI,gDAAqC;IACxC,2BAAkB,KAAK,CAAC;IAAxB,IAAA,MAAM,4CAAkB,CAAC,WAAW;IAApC,IAAA,MAAM,kDAAkB;IAKhG,KAAK,CAAC,OAAO,CAAC,YAAkC;QAC9C,IAAI,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;YAC7B,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC3B,yCAAyC;gBACzC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC;YACvB,CAAC;YAED,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC5B,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBAChB,IAAI,IAAI,CAAC,0BAA0B,EAAE,CAAC;wBACpC,0EAA0E;wBAC1E,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC;wBACzB,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;wBACrC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;oBACjC,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;oBACvB,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,QAAQ,CAAC,MAAe;QACtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,SAAS,GAAG,CAAC,CAAC;QAElB,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE;YACxC,WAAW,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAC5C,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE;YACtC,SAAS,GAAG,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YACxC,IAAI,WAAW,GAAG,SAAS,GAAG,EAAE,EAAE,CAAC;gBACjC,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,eAAe,GAAuB,IAAI,CAAC;QAC/C,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE;YAC/C,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YAC3C,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,YAAY,OAAO,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,KAAK,QAAQ,CAAC;YACtF,MAAM,mBAAmB,GAAG,eAAe,YAAY,OAAO,IAAI,eAAe,CAAC,QAAQ,KAAK,QAAQ,CAAC;YACxG,IAAI,eAAe,IAAI,mBAAmB,EAAE,CAAC;gBAC3C,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;YAChD,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,KAAK,CAAC,CAAC;QAEvE,uCAAuC;QAEvC,MAAM,gBAAc,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAO,CAAC,CAAC;QAEtD,MAAM,gBAAc,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAO,CAAC,CAAC;QACtD,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,OAAoB;QAClD,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,OAAO,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;IAClG,CAAC;IAED;;OAEG;IACH,IAAI;QACF,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC3B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC;YACzB,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;YACrC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC3B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACtC,MAAM,gBAAc,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAO,CAAC,CAAC;YACtD,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC;YACrB,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED,MAAM;QACJ,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,UAAU;QACR,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC3B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAES,eAAe,CAAC,KAAa;QACrC,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;QAClC,CAAC;IACH,CAAC;aAEM,WAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsMlB,AAtMY,CAsMX;IAEF,MAAM;QACJ,OAAO,IAAI,CAAA;;eAEA,CAAC,CAAC,EAAE,EAAE;YACb,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;YACzB,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC3B,CAAC;gBACS,CAAC,CAAC,EAAE,EAAE;YACd,sEAAsE;YACtE,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC5B,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;gBAC9C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YACxB,CAAC;YAED,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC3B,CAAC;;;8DAGuD,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;;8DAEvD,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;cACvG,CAAC;IACb,CAAC;;AApXiC;IAAjC,KAAK,CAAC,QAAQ,CAAC;4CAAoD;AAKf;IAApD,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;2CAAiC;AAKxB;IAAnD,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;+CAA2C;AAEC;IAArF,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;+CAAoC;AAClB;IAArF,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;+CAAoC;AACG;IAA1G,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,iCAAiC,EAAE,CAAC;gEAAqD;AAEvE;IAAtE,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;0CAAmD;AACxC;IAAvE,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;4CAAkC;AAEpC;IAA3D,qBAAqB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;sDAA6C;AAC3B;IAA3D,qBAAqB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;sDAA6C;AArB5E,cAAc;IAD1B,aAAa,CAAC,iBAAiB,CAAC;GACpB,cAAc,CAsX1B"}
1
+ {"version":3,"file":"drawer.js","sourceRoot":"","sources":["drawer.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,26 @@
1
+ /** Return value that stops the routing pipeline (skip remaining matches and the page render). */
2
+ export declare const ROUTE_HALT: "halt";
3
+ /** Return `ROUTE_HALT` / `'halt'` to stop the pipeline. Returning nothing continues. */
4
+ export type RouteHandlerResult = typeof ROUTE_HALT | void;
5
+ /**
6
+ * A route with a pattern and a `before` handler but no page or redirect.
7
+ * All middleware routes matching the destination run in declaration order before
8
+ * the first matching page/redirect route; the pipeline continues automatically
9
+ * unless a handler returns `ROUTE_HALT` / `'halt'`.
10
+ */
11
+ export type MiddlewareRoute = {
12
+ pattern: URLPattern;
13
+ before: (params: Record<string, string>, url: URL) => RouteHandlerResult | Promise<RouteHandlerResult>;
14
+ };
1
15
  export type PageRoute = {
2
16
  pattern: URLPattern;
3
17
  page: string;
4
18
  import: () => Promise<unknown>;
5
- before?: (params: Record<string, string>, url: URL) => void | Promise<void>;
19
+ before?: (params: Record<string, string>, url: URL) => RouteHandlerResult | Promise<RouteHandlerResult>;
6
20
  };
7
21
  export type RedirectRoute = {
8
22
  pattern: URLPattern;
9
23
  redirect: string | ((params: Record<string, string>) => string);
10
24
  };
11
- export type AppRoute = PageRoute | RedirectRoute;
25
+ export type AppRoute = MiddlewareRoute | PageRoute | RedirectRoute;
12
26
  //# sourceMappingURL=route.d.ts.map
@@ -1,2 +1,3 @@
1
- export {};
1
+ /** Return value that stops the routing pipeline (skip remaining matches and the page render). */
2
+ export const ROUTE_HALT = 'halt';
2
3
  //# sourceMappingURL=route.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"route.js","sourceRoot":"","sources":["route.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"route.js","sourceRoot":"","sources":["route.ts"],"names":[],"mappings":"AAAA,iGAAiG;AACjG,MAAM,CAAC,MAAM,UAAU,GAAG,MAAe,CAAC"}