@trebired/frontend 6.2.0 → 6.3.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 (96) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/namespace/index.d.ts +2 -1
  3. package/dist/namespace/index.d.ts.map +1 -1
  4. package/dist/namespace/index.js +7 -1
  5. package/dist/namespace/index.js.map +1 -1
  6. package/dist/react/index.d.ts +1 -0
  7. package/dist/react/index.d.ts.map +1 -1
  8. package/dist/react/index.js +1 -0
  9. package/dist/react/index.js.map +1 -1
  10. package/dist/react/title.d.ts +12 -0
  11. package/dist/react/title.d.ts.map +1 -0
  12. package/dist/react/title.js +43 -0
  13. package/dist/react/title.js.map +1 -0
  14. package/dist/server/favicon.d.ts +25 -0
  15. package/dist/server/favicon.d.ts.map +1 -0
  16. package/dist/server/favicon.js +76 -0
  17. package/dist/server/favicon.js.map +1 -0
  18. package/dist/server/http.d.ts +39 -0
  19. package/dist/server/http.d.ts.map +1 -0
  20. package/dist/server/http.js +69 -0
  21. package/dist/server/http.js.map +1 -0
  22. package/dist/server/index.d.ts +5 -0
  23. package/dist/server/index.d.ts.map +1 -1
  24. package/dist/server/index.js +5 -0
  25. package/dist/server/index.js.map +1 -1
  26. package/dist/server/live.d.ts +10 -0
  27. package/dist/server/live.d.ts.map +1 -0
  28. package/dist/server/live.js +22 -0
  29. package/dist/server/live.js.map +1 -0
  30. package/dist/server/sidebar.d.ts +55 -0
  31. package/dist/server/sidebar.d.ts.map +1 -0
  32. package/dist/server/sidebar.js +108 -0
  33. package/dist/server/sidebar.js.map +1 -0
  34. package/dist/server/theme.d.ts +59 -0
  35. package/dist/server/theme.d.ts.map +1 -0
  36. package/dist/server/theme.js +146 -0
  37. package/dist/server/theme.js.map +1 -0
  38. package/dist/src/namespace/index.d.ts +2 -1
  39. package/dist/src/namespace/index.d.ts.map +1 -1
  40. package/dist/src/namespace/index.js +7 -1
  41. package/dist/src/namespace/index.js.map +1 -1
  42. package/dist/src/react/index.d.ts +1 -0
  43. package/dist/src/react/index.d.ts.map +1 -1
  44. package/dist/src/react/index.js +1 -0
  45. package/dist/src/react/index.js.map +1 -1
  46. package/dist/src/react/title.d.ts +12 -0
  47. package/dist/src/react/title.d.ts.map +1 -0
  48. package/dist/src/react/title.js +43 -0
  49. package/dist/src/react/title.js.map +1 -0
  50. package/dist/src/server/favicon.d.ts +25 -0
  51. package/dist/src/server/favicon.d.ts.map +1 -0
  52. package/dist/src/server/favicon.js +76 -0
  53. package/dist/src/server/favicon.js.map +1 -0
  54. package/dist/src/server/http.d.ts +39 -0
  55. package/dist/src/server/http.d.ts.map +1 -0
  56. package/dist/src/server/http.js +69 -0
  57. package/dist/src/server/http.js.map +1 -0
  58. package/dist/src/server/index.d.ts +5 -0
  59. package/dist/src/server/index.d.ts.map +1 -1
  60. package/dist/src/server/index.js +5 -0
  61. package/dist/src/server/index.js.map +1 -1
  62. package/dist/src/server/live.d.ts +10 -0
  63. package/dist/src/server/live.d.ts.map +1 -0
  64. package/dist/src/server/live.js +22 -0
  65. package/dist/src/server/live.js.map +1 -0
  66. package/dist/src/server/sidebar.d.ts +55 -0
  67. package/dist/src/server/sidebar.d.ts.map +1 -0
  68. package/dist/src/server/sidebar.js +108 -0
  69. package/dist/src/server/sidebar.js.map +1 -0
  70. package/dist/src/server/theme.d.ts +59 -0
  71. package/dist/src/server/theme.d.ts.map +1 -0
  72. package/dist/src/server/theme.js +146 -0
  73. package/dist/src/server/theme.js.map +1 -0
  74. package/dist/src/theme/apply.d.ts +2 -0
  75. package/dist/src/theme/apply.d.ts.map +1 -1
  76. package/dist/src/theme/apply.js.map +1 -1
  77. package/dist/src/theme/browser-sync.d.ts +19 -0
  78. package/dist/src/theme/browser-sync.d.ts.map +1 -0
  79. package/dist/src/theme/browser-sync.js +69 -0
  80. package/dist/src/theme/browser-sync.js.map +1 -0
  81. package/dist/src/theme/index.d.ts +2 -0
  82. package/dist/src/theme/index.d.ts.map +1 -1
  83. package/dist/src/theme/index.js +4 -0
  84. package/dist/src/theme/index.js.map +1 -1
  85. package/dist/theme/apply.d.ts +2 -0
  86. package/dist/theme/apply.d.ts.map +1 -1
  87. package/dist/theme/apply.js.map +1 -1
  88. package/dist/theme/browser-sync.d.ts +19 -0
  89. package/dist/theme/browser-sync.d.ts.map +1 -0
  90. package/dist/theme/browser-sync.js +69 -0
  91. package/dist/theme/browser-sync.js.map +1 -0
  92. package/dist/theme/index.d.ts +2 -0
  93. package/dist/theme/index.d.ts.map +1 -1
  94. package/dist/theme/index.js +4 -0
  95. package/dist/theme/index.js.map +1 -1
  96. package/package.json +1 -1
@@ -0,0 +1,39 @@
1
+ type HeaderMap = Record<string, unknown>;
2
+ type CookieOptions = {
3
+ httpOnly?: boolean;
4
+ maxAge?: number;
5
+ path?: string;
6
+ sameSite?: string;
7
+ secure?: boolean;
8
+ };
9
+ type ServerRequestLike = {
10
+ body?: unknown;
11
+ cookies?: Record<string, unknown>;
12
+ headers?: HeaderMap;
13
+ query?: Record<string, unknown>;
14
+ secure?: boolean;
15
+ };
16
+ type ServerResponseLike = {
17
+ cookie?: (name: string, value: string, options?: CookieOptions) => unknown;
18
+ end?: (body?: unknown) => unknown;
19
+ json?: (body: unknown) => unknown;
20
+ redirect?: (status: number, url: string) => unknown;
21
+ send?: (body: unknown) => unknown;
22
+ set?: (name: string, value: string) => unknown;
23
+ setHeader?: (name: string, value: string) => unknown;
24
+ status?: (status: number) => ServerResponseLike;
25
+ };
26
+ declare function serverString(value: unknown): string;
27
+ declare function serverObject(value: unknown): Record<string, unknown>;
28
+ declare function requestBody(req: ServerRequestLike | null | undefined): Record<string, unknown>;
29
+ declare function requestCookies(req: ServerRequestLike | null | undefined): Record<string, unknown>;
30
+ declare function requestQuery(req: ServerRequestLike | null | undefined): Record<string, unknown>;
31
+ declare function requestHeader(req: ServerRequestLike | null | undefined, name: string): string;
32
+ declare function responseSecure(req: ServerRequestLike | null | undefined, forced?: boolean): boolean;
33
+ declare function setResponseHeader(res: ServerResponseLike | null | undefined, name: string, value: string): unknown;
34
+ declare function sendJson(res: ServerResponseLike | null | undefined, body: unknown, status?: number): unknown;
35
+ declare function sendText(res: ServerResponseLike | null | undefined, body: string, contentType: string, status?: number): unknown;
36
+ declare function redirectResponse(res: ServerResponseLike | null | undefined, status: number, url: string): unknown;
37
+ export { redirectResponse, requestBody, requestCookies, requestHeader, requestQuery, responseSecure, sendJson, sendText, serverObject, serverString, setResponseHeader, };
38
+ export type { CookieOptions, HeaderMap, ServerRequestLike, ServerResponseLike };
39
+ //# sourceMappingURL=http.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/server/http.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ function serverString(value) {
2
+ return String(value == null ? "" : value);
3
+ }
4
+ function serverObject(value) {
5
+ return value && typeof value === "object" ? value : {};
6
+ }
7
+ function requestBody(req) {
8
+ return serverObject(req && req.body);
9
+ }
10
+ function requestCookies(req) {
11
+ return serverObject(req && req.cookies);
12
+ }
13
+ function requestQuery(req) {
14
+ return serverObject(req && req.query);
15
+ }
16
+ function requestHeader(req, name) {
17
+ const headers = serverObject(req && req.headers);
18
+ const target = name.trim().toLowerCase();
19
+ for (const [key, value] of Object.entries(headers)) {
20
+ if (key.trim().toLowerCase() === target)
21
+ return serverString(value);
22
+ }
23
+ return "";
24
+ }
25
+ function responseSecure(req, forced) {
26
+ return typeof forced === "boolean" ? forced : Boolean(req && req.secure);
27
+ }
28
+ function setResponseHeader(res, name, value) {
29
+ if (res && typeof res.setHeader === "function")
30
+ return res.setHeader(name, value);
31
+ if (res && typeof res.set === "function")
32
+ return res.set(name, value);
33
+ return undefined;
34
+ }
35
+ function sendJson(res, body, status = 200) {
36
+ if (res && typeof res.status === "function")
37
+ res.status(status);
38
+ if (res && typeof res.json === "function")
39
+ return res.json(body);
40
+ setResponseHeader(res, "Content-Type", "application/json; charset=utf-8");
41
+ const payload = JSON.stringify(body == null ? {} : body);
42
+ if (res && typeof res.send === "function")
43
+ return res.send(payload);
44
+ if (res && typeof res.end === "function")
45
+ return res.end(payload);
46
+ return payload;
47
+ }
48
+ function sendText(res, body, contentType, status = 200) {
49
+ if (res && typeof res.status === "function")
50
+ res.status(status);
51
+ setResponseHeader(res, "Content-Type", contentType);
52
+ if (res && typeof res.send === "function")
53
+ return res.send(body);
54
+ if (res && typeof res.end === "function")
55
+ return res.end(body);
56
+ return body;
57
+ }
58
+ function redirectResponse(res, status, url) {
59
+ if (res && typeof res.redirect === "function")
60
+ return res.redirect(status, url);
61
+ if (res && typeof res.status === "function")
62
+ res.status(status);
63
+ setResponseHeader(res, "Location", url);
64
+ if (res && typeof res.end === "function")
65
+ return res.end();
66
+ return undefined;
67
+ }
68
+ export { redirectResponse, requestBody, requestCookies, requestHeader, requestQuery, responseSecure, sendJson, sendText, serverObject, serverString, setResponseHeader, };
69
+ //# sourceMappingURL=http.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/server/http.ts"],"names":[],"mappings":"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"}
@@ -2,4 +2,9 @@ export * from "../../icons/middleware/index.d.ts";
2
2
  export * from "../../icons/server/index.d.ts";
3
3
  export * from "../../icons/server-context.d.ts";
4
4
  export * from "../../icons/shared.d.ts";
5
+ export * from "./favicon.js";
6
+ export * from "./http.js";
7
+ export * from "./live.js";
8
+ export * from "./sidebar.js";
9
+ export * from "./theme.js";
5
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC"}
@@ -2,4 +2,9 @@ export * from "../../icons/middleware/index.js";
2
2
  export * from "../../icons/server/index.js";
3
3
  export * from "../../icons/server-context.js";
4
4
  export * from "../../icons/shared.js";
5
+ export * from "./favicon.js";
6
+ export * from "./http.js";
7
+ export * from "./live.js";
8
+ export * from "./sidebar.js";
9
+ export * from "./theme.js";
5
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { type ServerRequestLike } from "./http.js";
2
+ declare const LIVE_NAVIGATION_REQUEST = "tbf-router";
3
+ declare const LIVE_REGION_REQUEST = "tbf-live";
4
+ declare const REQUESTED_WITH_HEADER = "x-requested-with";
5
+ declare function requestedWith(req: ServerRequestLike | null | undefined): string;
6
+ declare function isLiveNavigationRequest(req: ServerRequestLike | null | undefined): boolean;
7
+ declare function isLiveRegionRequest(req: ServerRequestLike | null | undefined): boolean;
8
+ declare function frontendRequestMode(req: ServerRequestLike | null | undefined): "region" | "document" | "navigation";
9
+ export { LIVE_NAVIGATION_REQUEST, LIVE_REGION_REQUEST, REQUESTED_WITH_HEADER, frontendRequestMode, isLiveNavigationRequest, isLiveRegionRequest, requestedWith, };
10
+ //# sourceMappingURL=live.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"live.d.ts","sourceRoot":"","sources":["../../../src/server/live.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAElE,QAAA,MAAM,uBAAuB,eAAe,CAAC;AAC7C,QAAA,MAAM,mBAAmB,aAAa,CAAC;AACvC,QAAA,MAAM,qBAAqB,qBAAqB,CAAC;AAEjD,iBAAS,aAAa,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,UAE/D;AAED,iBAAS,uBAAuB,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,WAEzE;AAED,iBAAS,mBAAmB,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,WAErE;AAED,iBAAS,mBAAmB,CAAC,GAAG,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,wCAIrE;AAED,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,EACvB,mBAAmB,EACnB,aAAa,GACd,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { requestHeader } from "./http.js";
2
+ const LIVE_NAVIGATION_REQUEST = "tbf-router";
3
+ const LIVE_REGION_REQUEST = "tbf-live";
4
+ const REQUESTED_WITH_HEADER = "x-requested-with";
5
+ function requestedWith(req) {
6
+ return requestHeader(req, REQUESTED_WITH_HEADER).trim().toLowerCase();
7
+ }
8
+ function isLiveNavigationRequest(req) {
9
+ return requestedWith(req) === LIVE_NAVIGATION_REQUEST;
10
+ }
11
+ function isLiveRegionRequest(req) {
12
+ return requestedWith(req) === LIVE_REGION_REQUEST;
13
+ }
14
+ function frontendRequestMode(req) {
15
+ if (isLiveNavigationRequest(req))
16
+ return "navigation";
17
+ if (isLiveRegionRequest(req))
18
+ return "region";
19
+ return "document";
20
+ }
21
+ export { LIVE_NAVIGATION_REQUEST, LIVE_REGION_REQUEST, REQUESTED_WITH_HEADER, frontendRequestMode, isLiveNavigationRequest, isLiveRegionRequest, requestedWith, };
22
+ //# sourceMappingURL=live.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"live.js","sourceRoot":"","sources":["../../../src/server/live.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA0B,MAAM,WAAW,CAAC;AAElE,MAAM,uBAAuB,GAAG,YAAY,CAAC;AAC7C,MAAM,mBAAmB,GAAG,UAAU,CAAC;AACvC,MAAM,qBAAqB,GAAG,kBAAkB,CAAC;AAEjD,SAAS,aAAa,CAAC,GAAyC;IAC9D,OAAO,aAAa,CAAC,GAAG,EAAE,qBAAqB,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AACxE,CAAC;AAED,SAAS,uBAAuB,CAAC,GAAyC;IACxE,OAAO,aAAa,CAAC,GAAG,CAAC,KAAK,uBAAuB,CAAC;AACxD,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAyC;IACpE,OAAO,aAAa,CAAC,GAAG,CAAC,KAAK,mBAAmB,CAAC;AACpD,CAAC;AAED,SAAS,mBAAmB,CAAC,GAAyC;IACpE,IAAI,uBAAuB,CAAC,GAAG,CAAC;QAAE,OAAO,YAAY,CAAC;IACtD,IAAI,mBAAmB,CAAC,GAAG,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC9C,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,OAAO,EACL,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,EACvB,mBAAmB,EACnB,aAAa,GACd,CAAC"}
@@ -0,0 +1,55 @@
1
+ import { type CookieOptions, type ServerRequestLike, type ServerResponseLike } from "./http.js";
2
+ declare const DEFAULT_SIDEBAR_COOKIE_PREFIX = "sidebar_";
3
+ declare const DEFAULT_SIDEBAR_COOKIE_SUFFIX = "_minimized";
4
+ declare const DEFAULT_SIDEBAR_SIDES: readonly string[];
5
+ type SidebarServerOptions = {
6
+ allowedSides?: readonly string[];
7
+ cookieOptions?: CookieOptions;
8
+ cookiePrefix?: string;
9
+ cookieSuffix?: string;
10
+ secure?: boolean;
11
+ };
12
+ type SidebarToggleContext = {
13
+ messageKey: string;
14
+ payload: Record<string, unknown>;
15
+ req: ServerRequestLike;
16
+ res: ServerResponseLike;
17
+ state: {
18
+ minimized: boolean;
19
+ side: string;
20
+ };
21
+ };
22
+ type SidebarToggleHandlerOptions = {
23
+ options?: SidebarServerOptions;
24
+ path?: string;
25
+ respond?: (context: SidebarToggleContext) => unknown;
26
+ };
27
+ declare function normalizeSidebarSide(value: unknown, options?: SidebarServerOptions): string;
28
+ declare function sidebarCookieName(side: unknown, options?: SidebarServerOptions): string;
29
+ declare function normalizeMinimized(value: unknown): boolean;
30
+ declare function currentSidebarMinimized(req: ServerRequestLike | null | undefined, side: unknown, options?: SidebarServerOptions): boolean;
31
+ declare function setSidebarMinimizedCookie(req: ServerRequestLike | null | undefined, res: ServerResponseLike | null | undefined, side: unknown, minimized: unknown, options?: SidebarServerOptions): boolean;
32
+ declare function setServerSidebarMinimized(req: ServerRequestLike | null | undefined, res: ServerResponseLike | null | undefined, side: unknown, minimized: unknown, options?: SidebarServerOptions): {
33
+ side: string;
34
+ minimized: boolean;
35
+ };
36
+ declare function sidebarTogglePayload(state: {
37
+ minimized: boolean;
38
+ side: string;
39
+ }): {
40
+ messageKey: string;
41
+ payload: {
42
+ ok: boolean;
43
+ status_code: string;
44
+ message: string;
45
+ data: {
46
+ minimized: boolean;
47
+ side: string;
48
+ };
49
+ };
50
+ };
51
+ declare function createSidebarToggleHandler(config?: SidebarToggleHandlerOptions): (req: ServerRequestLike, res: ServerResponseLike, next?: (error: unknown) => unknown) => Promise<unknown>;
52
+ declare function attachSidebarRoutes(app: unknown, config?: SidebarToggleHandlerOptions): void;
53
+ export { DEFAULT_SIDEBAR_COOKIE_PREFIX, DEFAULT_SIDEBAR_COOKIE_SUFFIX, DEFAULT_SIDEBAR_SIDES, attachSidebarRoutes, createSidebarToggleHandler, currentSidebarMinimized, normalizeMinimized, normalizeSidebarSide, setServerSidebarMinimized, setServerSidebarMinimized as setSidebarMinimized, setSidebarMinimizedCookie, sidebarCookieName, sidebarTogglePayload, };
54
+ export type { SidebarServerOptions, SidebarToggleContext, SidebarToggleHandlerOptions };
55
+ //# sourceMappingURL=sidebar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar.d.ts","sourceRoot":"","sources":["../../../src/server/sidebar.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACxB,MAAM,WAAW,CAAC;AAEnB,QAAA,MAAM,6BAA6B,aAAa,CAAC;AACjD,QAAA,MAAM,6BAA6B,eAAe,CAAC;AACnD,QAAA,MAAM,qBAAqB,mBAAmC,CAAC;AAE/D,KAAK,oBAAoB,GAAG;IAC1B,YAAY,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,KAAK,oBAAoB,GAAG;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,GAAG,EAAE,iBAAiB,CAAC;IACvB,GAAG,EAAE,kBAAkB,CAAC;IACxB,KAAK,EAAE;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7C,CAAC;AAEF,KAAK,2BAA2B,GAAG;IACjC,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAC;CACtD,CAAC;AAEF,iBAAS,oBAAoB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,oBAAyB,UAM/E;AAED,iBAAS,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,GAAE,oBAAyB,UAI3E;AAED,iBAAS,kBAAkB,CAAC,KAAK,EAAE,OAAO,WAQzC;AAED,iBAAS,uBAAuB,CAC9B,GAAG,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,EACzC,IAAI,EAAE,OAAO,EACb,OAAO,GAAE,oBAAyB,WAKnC;AAED,iBAAS,yBAAyB,CAChC,GAAG,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,EACzC,GAAG,EAAE,kBAAkB,GAAG,IAAI,GAAG,SAAS,EAC1C,IAAI,EAAE,OAAO,EACb,SAAS,EAAE,OAAO,EAClB,OAAO,GAAE,oBAAyB,WAoBnC;AAED,iBAAS,yBAAyB,CAChC,GAAG,EAAE,iBAAiB,GAAG,IAAI,GAAG,SAAS,EACzC,GAAG,EAAE,kBAAkB,GAAG,IAAI,GAAG,SAAS,EAC1C,IAAI,EAAE,OAAO,EACb,SAAS,EAAE,OAAO,EAClB,OAAO,GAAE,oBAAyB;;;EAYnC;AAED,iBAAS,oBAAoB,CAAC,KAAK,EAAE;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE;;;;;;;uBAAvB,OAAO;kBAAQ,MAAM;;;EAWtE;AAED,iBAAS,0BAA0B,CAAC,MAAM,GAAE,2BAAgC,IAExE,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,OAAO,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,sBAmBrC;AAED,iBAAS,mBAAmB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,GAAE,2BAAgC,QAOlF;AAED,OAAO,EACL,6BAA6B,EAC7B,6BAA6B,EAC7B,qBAAqB,EACrB,mBAAmB,EACnB,0BAA0B,EAC1B,uBAAuB,EACvB,kBAAkB,EAClB,oBAAoB,EACpB,yBAAyB,EACzB,yBAAyB,IAAI,mBAAmB,EAChD,yBAAyB,EACzB,iBAAiB,EACjB,oBAAoB,GACrB,CAAC;AACF,YAAY,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,CAAC"}
@@ -0,0 +1,108 @@
1
+ import { requestBody, requestCookies, responseSecure, sendJson, } from "./http.js";
2
+ const DEFAULT_SIDEBAR_COOKIE_PREFIX = "sidebar_";
3
+ const DEFAULT_SIDEBAR_COOKIE_SUFFIX = "_minimized";
4
+ const DEFAULT_SIDEBAR_SIDES = Object.freeze(["left", "right"]);
5
+ function normalizeSidebarSide(value, options = {}) {
6
+ const side = String(value == null ? "" : value)
7
+ .trim()
8
+ .toLowerCase();
9
+ const allowed = options.allowedSides || DEFAULT_SIDEBAR_SIDES;
10
+ return allowed.includes(side) ? side : "";
11
+ }
12
+ function sidebarCookieName(side, options = {}) {
13
+ const normalizedSide = normalizeSidebarSide(side, options);
14
+ if (!normalizedSide)
15
+ return "";
16
+ return `${options.cookiePrefix || DEFAULT_SIDEBAR_COOKIE_PREFIX}${normalizedSide}${options.cookieSuffix || DEFAULT_SIDEBAR_COOKIE_SUFFIX}`;
17
+ }
18
+ function normalizeMinimized(value) {
19
+ if (value === true || value === 1 || value === "1")
20
+ return true;
21
+ if (value === false || value === 0 || value === "0")
22
+ return false;
23
+ const text = String(value == null ? "" : value)
24
+ .trim()
25
+ .toLowerCase();
26
+ if (text === "true" || text === "yes" || text === "on")
27
+ return true;
28
+ return false;
29
+ }
30
+ function currentSidebarMinimized(req, side, options = {}) {
31
+ const cookieName = sidebarCookieName(side, options);
32
+ if (!cookieName)
33
+ return false;
34
+ return normalizeMinimized(requestCookies(req)[cookieName]);
35
+ }
36
+ function setSidebarMinimizedCookie(req, res, side, minimized, options = {}) {
37
+ if (!res || typeof res.cookie !== "function")
38
+ return false;
39
+ const normalizedSide = normalizeSidebarSide(side, options);
40
+ const cookieName = sidebarCookieName(normalizedSide, options);
41
+ if (!normalizedSide || !cookieName)
42
+ return false;
43
+ const next = normalizeMinimized(minimized);
44
+ const base = {
45
+ httpOnly: false,
46
+ sameSite: "lax",
47
+ secure: responseSecure(req, options.secure),
48
+ path: "/",
49
+ ...(options.cookieOptions || {}),
50
+ };
51
+ if (!next) {
52
+ res.cookie(cookieName, "", { ...base, maxAge: 0 });
53
+ return false;
54
+ }
55
+ res.cookie(cookieName, "1", base);
56
+ return true;
57
+ }
58
+ function setServerSidebarMinimized(req, res, side, minimized, options = {}) {
59
+ const normalizedSide = normalizeSidebarSide(side, options);
60
+ if (!normalizedSide)
61
+ return { side: "", minimized: false };
62
+ const next = setSidebarMinimizedCookie(req, res, normalizedSide, minimized, options);
63
+ const cookieName = sidebarCookieName(normalizedSide, options);
64
+ const cookies = requestCookies(req);
65
+ if (cookieName) {
66
+ if (next)
67
+ cookies[cookieName] = "1";
68
+ else
69
+ delete cookies[cookieName];
70
+ }
71
+ return { side: normalizedSide, minimized: next };
72
+ }
73
+ function sidebarTogglePayload(state) {
74
+ const messageKey = state.minimized ? "minimized" : "expanded";
75
+ return {
76
+ messageKey,
77
+ payload: {
78
+ ok: true,
79
+ status_code: messageKey,
80
+ message: messageKey,
81
+ data: state,
82
+ },
83
+ };
84
+ }
85
+ function createSidebarToggleHandler(config = {}) {
86
+ return async function sidebarToggleHandler(req, res, next) {
87
+ try {
88
+ const body = requestBody(req);
89
+ const state = setServerSidebarMinimized(req, res, body.side, body.minimized, config.options || {});
90
+ const { messageKey, payload } = sidebarTogglePayload(state);
91
+ if (config.respond)
92
+ return config.respond({ messageKey, payload, req, res, state });
93
+ return sendJson(res, payload);
94
+ }
95
+ catch (error) {
96
+ if (typeof next === "function")
97
+ return next(error);
98
+ throw error;
99
+ }
100
+ };
101
+ }
102
+ function attachSidebarRoutes(app, config = {}) {
103
+ if (app && typeof app.post === "function") {
104
+ app.post(config.path || "/ui/sidebar/toggle", createSidebarToggleHandler(config));
105
+ }
106
+ }
107
+ export { DEFAULT_SIDEBAR_COOKIE_PREFIX, DEFAULT_SIDEBAR_COOKIE_SUFFIX, DEFAULT_SIDEBAR_SIDES, attachSidebarRoutes, createSidebarToggleHandler, currentSidebarMinimized, normalizeMinimized, normalizeSidebarSide, setServerSidebarMinimized, setServerSidebarMinimized as setSidebarMinimized, setSidebarMinimizedCookie, sidebarCookieName, sidebarTogglePayload, };
108
+ //# sourceMappingURL=sidebar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar.js","sourceRoot":"","sources":["../../../src/server/sidebar.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ import { type CookieOptions, type ServerRequestLike, type ServerResponseLike } from "./http.js";
2
+ declare const DEFAULT_THEME_COOKIE_NAME = "theme";
3
+ declare const DEFAULT_EFFECTIVE_THEME_COOKIE_NAME = "theme_effective";
4
+ declare const DEFAULT_THEME_KEYS: readonly string[];
5
+ declare const DEFAULT_THEME_CLASSES: Readonly<{
6
+ dark: "";
7
+ light: "light";
8
+ }>;
9
+ type ThemeServerOptions = {
10
+ allowedThemes?: readonly string[] | Record<string, unknown>;
11
+ classNames?: Record<string, string>;
12
+ cookieName?: string;
13
+ cookieOptions?: CookieOptions;
14
+ defaultTheme?: string;
15
+ effectiveCookieName?: string;
16
+ headerName?: string;
17
+ secure?: boolean;
18
+ };
19
+ type ThemeToggleContext = {
20
+ payload: Record<string, unknown>;
21
+ req: ServerRequestLike;
22
+ res: ServerResponseLike;
23
+ theme: string;
24
+ };
25
+ type ThemeToggleHandlerOptions = {
26
+ options?: ThemeServerOptions;
27
+ path?: string;
28
+ respond?: (context: ThemeToggleContext) => unknown;
29
+ };
30
+ declare function normalizeThemeToken(value: unknown): string;
31
+ declare function allowedThemeKeys(options?: ThemeServerOptions): string[];
32
+ declare function themeIsAllowed(value: unknown, options?: ThemeServerOptions): boolean;
33
+ declare function themeCookieName(options?: ThemeServerOptions): string;
34
+ declare function themeEffectiveCookieName(options?: ThemeServerOptions): string;
35
+ declare function currentTheme(req: ServerRequestLike | null | undefined, options?: ThemeServerOptions): string;
36
+ declare function browserPreferredTheme(req: ServerRequestLike | null | undefined, options?: ThemeServerOptions): string;
37
+ declare function effectiveThemeCookie(req: ServerRequestLike | null | undefined, options?: ThemeServerOptions): string;
38
+ declare function defaultThemeKey(options?: ThemeServerOptions): string;
39
+ declare function effectiveThemeKey(req: ServerRequestLike | null | undefined, options?: ThemeServerOptions): string;
40
+ declare function themeClass(theme: unknown, options?: ThemeServerOptions): string;
41
+ declare function applyThemeToLocals(req: ServerRequestLike | null | undefined, res: ServerResponseLike | null | undefined, options?: ThemeServerOptions): void;
42
+ declare function setThemeCookie(req: ServerRequestLike | null | undefined, res: ServerResponseLike | null | undefined, theme: unknown, options?: ThemeServerOptions): boolean;
43
+ declare function setServerTheme(req: ServerRequestLike | null | undefined, res: ServerResponseLike | null | undefined, theme: unknown, options?: ThemeServerOptions): string;
44
+ declare function themeTogglePayload(theme: string): {
45
+ ok: boolean;
46
+ status_code: string;
47
+ message: string;
48
+ data: {
49
+ theme: string;
50
+ };
51
+ theme: string;
52
+ };
53
+ declare function createThemeToggleHandler(config?: ThemeToggleHandlerOptions): (req: ServerRequestLike, res: ServerResponseLike, next?: (error: unknown) => unknown) => Promise<unknown>;
54
+ declare function createThemeMiddleware(options?: ThemeServerOptions): (req: ServerRequestLike, res: ServerResponseLike, next: () => unknown) => unknown;
55
+ declare function attachThemeMiddleware(app: unknown, options?: ThemeServerOptions): void;
56
+ declare function attachThemeRoutes(app: unknown, config?: ThemeToggleHandlerOptions): void;
57
+ export { DEFAULT_EFFECTIVE_THEME_COOKIE_NAME, DEFAULT_THEME_CLASSES, DEFAULT_THEME_COOKIE_NAME, DEFAULT_THEME_KEYS, allowedThemeKeys, applyThemeToLocals, attachThemeMiddleware, attachThemeRoutes, browserPreferredTheme, createThemeMiddleware, createThemeToggleHandler, currentTheme, defaultThemeKey, effectiveThemeCookie, effectiveThemeKey, normalizeThemeToken, setServerTheme, setServerTheme as setTheme, setThemeCookie, themeClass, themeCookieName, themeEffectiveCookieName, themeIsAllowed, themeTogglePayload, };
58
+ export type { ThemeServerOptions, ThemeToggleContext, ThemeToggleHandlerOptions };
59
+ //# sourceMappingURL=theme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../../src/server/theme.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,146 @@
1
+ import { requestBody, requestCookies, requestHeader, requestQuery, responseSecure, sendJson, } from "./http.js";
2
+ const DEFAULT_THEME_COOKIE_NAME = "theme";
3
+ const DEFAULT_EFFECTIVE_THEME_COOKIE_NAME = "theme_effective";
4
+ const DEFAULT_THEME_KEYS = Object.freeze(["dark", "light"]);
5
+ const DEFAULT_THEME_CLASSES = Object.freeze({ dark: "", light: "light" });
6
+ function normalizeThemeToken(value) {
7
+ const token = String(value == null ? "" : value)
8
+ .trim()
9
+ .toLowerCase();
10
+ return /^[a-z0-9_-]{1,32}$/u.test(token) ? token : "";
11
+ }
12
+ function allowedThemeKeys(options = {}) {
13
+ const source = options.allowedThemes || DEFAULT_THEME_KEYS;
14
+ const keys = Array.isArray(source) ? source : Object.keys(source);
15
+ return keys.map(normalizeThemeToken).filter(Boolean);
16
+ }
17
+ function themeIsAllowed(value, options = {}) {
18
+ const token = normalizeThemeToken(value);
19
+ return Boolean(token && allowedThemeKeys(options).includes(token));
20
+ }
21
+ function themeCookieName(options = {}) {
22
+ return String(options.cookieName || DEFAULT_THEME_COOKIE_NAME).trim();
23
+ }
24
+ function themeEffectiveCookieName(options = {}) {
25
+ return String(options.effectiveCookieName || DEFAULT_EFFECTIVE_THEME_COOKIE_NAME).trim();
26
+ }
27
+ function currentTheme(req, options = {}) {
28
+ const token = normalizeThemeToken(requestCookies(req)[themeCookieName(options)]);
29
+ return themeIsAllowed(token, options) ? token : "";
30
+ }
31
+ function browserPreferredTheme(req, options = {}) {
32
+ const token = normalizeThemeToken(requestHeader(req, "sec-ch-prefers-color-scheme"));
33
+ return themeIsAllowed(token, options) ? token : "";
34
+ }
35
+ function effectiveThemeCookie(req, options = {}) {
36
+ const token = normalizeThemeToken(requestCookies(req)[themeEffectiveCookieName(options)]);
37
+ return themeIsAllowed(token, options) ? token : "";
38
+ }
39
+ function defaultThemeKey(options = {}) {
40
+ return themeIsAllowed(options.defaultTheme, options)
41
+ ? normalizeThemeToken(options.defaultTheme)
42
+ : allowedThemeKeys(options)[0] || "";
43
+ }
44
+ function effectiveThemeKey(req, options = {}) {
45
+ const headerTheme = options.headerName
46
+ ? normalizeThemeToken(requestHeader(req, options.headerName))
47
+ : "";
48
+ if (themeIsAllowed(headerTheme, options))
49
+ return headerTheme;
50
+ return (currentTheme(req, options) ||
51
+ effectiveThemeCookie(req, options) ||
52
+ browserPreferredTheme(req, options) ||
53
+ defaultThemeKey(options));
54
+ }
55
+ function themeClass(theme, options = {}) {
56
+ const token = normalizeThemeToken(theme);
57
+ if (!themeIsAllowed(token, options))
58
+ return "";
59
+ return String((options.classNames || DEFAULT_THEME_CLASSES)[token] || "");
60
+ }
61
+ function applyThemeToLocals(req, res, options = {}) {
62
+ const locals = res?.locals;
63
+ if (locals)
64
+ locals.theme = currentTheme(req, options);
65
+ }
66
+ function setThemeCookie(req, res, theme, options = {}) {
67
+ if (!res || typeof res.cookie !== "function")
68
+ return false;
69
+ const token = normalizeThemeToken(theme);
70
+ const cookieName = themeCookieName(options);
71
+ const secure = responseSecure(req, options.secure);
72
+ const base = {
73
+ httpOnly: false,
74
+ sameSite: "lax",
75
+ secure,
76
+ path: "/",
77
+ ...(options.cookieOptions || {}),
78
+ };
79
+ if (!cookieName || !themeIsAllowed(token, options)) {
80
+ res.cookie(cookieName, "", { ...base, maxAge: 0 });
81
+ return false;
82
+ }
83
+ res.cookie(cookieName, token, base);
84
+ return true;
85
+ }
86
+ function setServerTheme(req, res, theme, options = {}) {
87
+ const token = normalizeThemeToken(theme);
88
+ const next = themeIsAllowed(token, options) ? token : "";
89
+ setThemeCookie(req, res, next, options);
90
+ const cookies = requestCookies(req);
91
+ const cookieName = themeCookieName(options);
92
+ if (cookieName) {
93
+ if (next)
94
+ cookies[cookieName] = next;
95
+ else
96
+ delete cookies[cookieName];
97
+ }
98
+ applyThemeToLocals(req, res, options);
99
+ return next;
100
+ }
101
+ function themeTogglePayload(theme) {
102
+ return {
103
+ ok: true,
104
+ status_code: "theme-set",
105
+ message: "theme-set",
106
+ data: { theme },
107
+ theme,
108
+ };
109
+ }
110
+ function createThemeToggleHandler(config = {}) {
111
+ return async function themeToggleHandler(req, res, next) {
112
+ try {
113
+ const body = requestBody(req);
114
+ const query = requestQuery(req);
115
+ const value = query.theme != null ? query.theme : body.theme;
116
+ const theme = setServerTheme(req, res, value, config.options || {});
117
+ const payload = themeTogglePayload(theme);
118
+ if (config.respond)
119
+ return config.respond({ payload, req, res, theme });
120
+ return sendJson(res, payload);
121
+ }
122
+ catch (error) {
123
+ if (typeof next === "function")
124
+ return next(error);
125
+ throw error;
126
+ }
127
+ };
128
+ }
129
+ function createThemeMiddleware(options = {}) {
130
+ return function themeMiddleware(req, res, next) {
131
+ applyThemeToLocals(req, res, options);
132
+ return next();
133
+ };
134
+ }
135
+ function attachThemeMiddleware(app, options = {}) {
136
+ if (app && typeof app.use === "function") {
137
+ app.use(createThemeMiddleware(options));
138
+ }
139
+ }
140
+ function attachThemeRoutes(app, config = {}) {
141
+ if (app && typeof app.post === "function") {
142
+ app.post(config.path || "/ui/theme/toggle", createThemeToggleHandler(config));
143
+ }
144
+ }
145
+ export { DEFAULT_EFFECTIVE_THEME_COOKIE_NAME, DEFAULT_THEME_CLASSES, DEFAULT_THEME_COOKIE_NAME, DEFAULT_THEME_KEYS, allowedThemeKeys, applyThemeToLocals, attachThemeMiddleware, attachThemeRoutes, browserPreferredTheme, createThemeMiddleware, createThemeToggleHandler, currentTheme, defaultThemeKey, effectiveThemeCookie, effectiveThemeKey, normalizeThemeToken, setServerTheme, setServerTheme as setTheme, setThemeCookie, themeClass, themeCookieName, themeEffectiveCookieName, themeIsAllowed, themeTogglePayload, };
146
+ //# sourceMappingURL=theme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.js","sourceRoot":"","sources":["../../../src/server/theme.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { BindRoot } from "../../dom/index.d.ts";
2
+ import type { ThemeBrowserSyncOptions } from "./browser-sync.js";
2
3
  import type { ThemeModeOptions, ThemeModeScheme } from "./modes.js";
3
4
  type ThemeValue = string;
4
5
  type ThemePersistenceAdapter = {
@@ -8,6 +9,7 @@ type ThemePersistenceAdapter = {
8
9
  type ThemeRuntimeOptions = ThemeModeOptions & {
9
10
  defaultTheme?: ThemeValue;
10
11
  persistence?: ThemePersistenceAdapter;
12
+ sync?: ThemeBrowserSyncOptions;
11
13
  };
12
14
  type ThemeSyncListener = (root: BindRoot) => void;
13
15
  declare function registerThemeSync(listener: ThemeSyncListener): void;
@@ -1 +1 @@
1
- {"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../../src/theme/apply.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAG9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEpE,KAAK,UAAU,GAAG,MAAM,CAAC;AAEzB,KAAK,uBAAuB,GAAG;IAC7B,GAAG,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC3E,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;CACzD,CAAC;AAEF,KAAK,mBAAmB,GAAG,gBAAgB,GAAG;IAC5C,YAAY,CAAC,EAAE,UAAU,CAAC;IAC1B,WAAW,CAAC,EAAE,uBAAuB,CAAC;CACvC,CAAC;AAEF,KAAK,iBAAiB,GAAG,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;AAIlD,iBAAS,iBAAiB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAE5D;AAED,iBAAS,YAAY,CAAC,IAAI,GAAE,QAAmB,GAAG,IAAI,CAErD;AAED,iBAAS,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,mBAAwB,GAAG,UAAU,CAGrF;AAUD,iBAAS,cAAc,CAAC,OAAO,GAAE,mBAAwB,GAAG,UAAU,CAGrE;AAED,iBAAS,eAAe,CAAC,OAAO,GAAE,mBAAwB,GAAG,UAAU,CAGtE;AAED,iBAAS,iBAAiB,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,OAAO,GAAE,mBAAwB,GAAG,UAAU,CAEzF;AAED,iBAAS,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,GAAE,mBAAwB,GAAG,eAAe,CAErF;AAWD,iBAAS,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,GAAE,mBAAwB,GAAG,UAAU,CAWpF;AAED,iBAAe,kBAAkB,CAC/B,OAAO,CAAC,EAAE,uBAAuB,EACjC,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,UAAU,CAAC,CAOrB;AAED,iBAAe,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,UAAU,CAAC,CASjG;AAED,iBAAS,SAAS,CAAC,OAAO,GAAE,mBAAwB,GAAG,UAAU,CAIhE;AAED,OAAO,EACL,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,SAAS,EACT,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,EACZ,QAAQ,EACR,cAAc,EACd,WAAW,GACZ,CAAC;AACF,YAAY,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../../src/theme/apply.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAG9C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEpE,KAAK,UAAU,GAAG,MAAM,CAAC;AAEzB,KAAK,uBAAuB,GAAG;IAC7B,GAAG,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC3E,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;CACzD,CAAC;AAEF,KAAK,mBAAmB,GAAG,gBAAgB,GAAG;IAC5C,YAAY,CAAC,EAAE,UAAU,CAAC;IAC1B,WAAW,CAAC,EAAE,uBAAuB,CAAC;IACtC,IAAI,CAAC,EAAE,uBAAuB,CAAC;CAChC,CAAC;AAEF,KAAK,iBAAiB,GAAG,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;AAIlD,iBAAS,iBAAiB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAE5D;AAED,iBAAS,YAAY,CAAC,IAAI,GAAE,QAAmB,GAAG,IAAI,CAErD;AAED,iBAAS,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,GAAE,mBAAwB,GAAG,UAAU,CAGrF;AAUD,iBAAS,cAAc,CAAC,OAAO,GAAE,mBAAwB,GAAG,UAAU,CAGrE;AAED,iBAAS,eAAe,CAAC,OAAO,GAAE,mBAAwB,GAAG,UAAU,CAGtE;AAED,iBAAS,iBAAiB,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,OAAO,GAAE,mBAAwB,GAAG,UAAU,CAEzF;AAED,iBAAS,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,GAAE,mBAAwB,GAAG,eAAe,CAErF;AAWD,iBAAS,UAAU,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,GAAE,mBAAwB,GAAG,UAAU,CAWpF;AAED,iBAAe,kBAAkB,CAC/B,OAAO,CAAC,EAAE,uBAAuB,EACjC,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,UAAU,CAAC,CAOrB;AAED,iBAAe,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,GAAE,mBAAwB,GAAG,OAAO,CAAC,UAAU,CAAC,CASjG;AAED,iBAAS,SAAS,CAAC,OAAO,GAAE,mBAAwB,GAAG,UAAU,CAIhE;AAED,OAAO,EACL,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,SAAS,EACT,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,EACZ,QAAQ,EACR,cAAc,EACd,WAAW,GACZ,CAAC;AACF,YAAY,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC"}