@revealui/core 0.10.2 → 0.11.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.
Files changed (63) hide show
  1. package/README.md +4 -2
  2. package/dist/client/admin/components/DocumentForm.js +17 -6
  3. package/dist/client/richtext/RichTextEditor.d.ts +1 -1
  4. package/dist/client/richtext/RichTextEditor.d.ts.map +1 -1
  5. package/dist/client/richtext/RichTextEditor.js +15 -15
  6. package/dist/client/richtext/components/ImageNodeComponent.js +4 -4
  7. package/dist/collections/CollectionOperations.d.ts +5 -0
  8. package/dist/collections/CollectionOperations.d.ts.map +1 -1
  9. package/dist/collections/CollectionOperations.js +7 -0
  10. package/dist/collections/operations/create.d.ts.map +1 -1
  11. package/dist/collections/operations/create.js +20 -0
  12. package/dist/collections/operations/delete.d.ts.map +1 -1
  13. package/dist/collections/operations/delete.js +14 -0
  14. package/dist/collections/operations/drafts.d.ts +33 -0
  15. package/dist/collections/operations/drafts.d.ts.map +1 -0
  16. package/dist/collections/operations/drafts.js +43 -0
  17. package/dist/collections/operations/fieldValidation.d.ts +53 -0
  18. package/dist/collections/operations/fieldValidation.d.ts.map +1 -0
  19. package/dist/collections/operations/fieldValidation.js +89 -0
  20. package/dist/collections/operations/find.d.ts.map +1 -1
  21. package/dist/collections/operations/find.js +23 -5
  22. package/dist/collections/operations/findById.d.ts +1 -0
  23. package/dist/collections/operations/findById.d.ts.map +1 -1
  24. package/dist/collections/operations/findById.js +33 -21
  25. package/dist/collections/operations/snapshot.d.ts +30 -0
  26. package/dist/collections/operations/snapshot.d.ts.map +1 -0
  27. package/dist/collections/operations/snapshot.js +81 -0
  28. package/dist/collections/operations/update.d.ts.map +1 -1
  29. package/dist/collections/operations/update.js +21 -0
  30. package/dist/error-handling/error-boundary.d.ts.map +1 -1
  31. package/dist/error-handling/error-boundary.js +11 -7
  32. package/dist/error-handling/fallback-components.d.ts.map +1 -1
  33. package/dist/error-handling/fallback-components.js +68 -48
  34. package/dist/features.d.ts +0 -2
  35. package/dist/features.d.ts.map +1 -1
  36. package/dist/features.js +2 -5
  37. package/dist/generated/types/admin.d.ts +42 -35
  38. package/dist/generated/types/admin.d.ts.map +1 -1
  39. package/dist/instance/RevealUIInstance.d.ts.map +1 -1
  40. package/dist/instance/methods/findById.d.ts +2 -0
  41. package/dist/instance/methods/findById.d.ts.map +1 -1
  42. package/dist/license.d.ts +67 -1
  43. package/dist/license.d.ts.map +1 -1
  44. package/dist/license.js +184 -25
  45. package/dist/richtext/exports/client/rcc.d.ts.map +1 -1
  46. package/dist/richtext/exports/client/rcc.js +6 -1
  47. package/dist/richtext/exports/server/rsc.d.ts +15 -2
  48. package/dist/richtext/exports/server/rsc.d.ts.map +1 -1
  49. package/dist/richtext/exports/server/rsc.js +36 -6
  50. package/dist/storage/index.d.ts +4 -5
  51. package/dist/storage/index.d.ts.map +1 -1
  52. package/dist/storage/index.js +10 -13
  53. package/dist/storage/object-storage.d.ts +5 -5
  54. package/dist/storage/object-storage.js +5 -5
  55. package/dist/storage/types.d.ts +5 -12
  56. package/dist/storage/types.d.ts.map +1 -1
  57. package/dist/storage/types.js +4 -4
  58. package/dist/types/runtime.d.ts +51 -0
  59. package/dist/types/runtime.d.ts.map +1 -1
  60. package/package.json +22 -23
  61. package/dist/storage/vercel-blob-provider.d.ts +0 -28
  62. package/dist/storage/vercel-blob-provider.d.ts.map +0 -1
  63. package/dist/storage/vercel-blob-provider.js +0 -88
@@ -6,6 +6,7 @@
6
6
  import { afterRead } from '../../fields/hooks/afterRead/index.js';
7
7
  import { buildWhereClause } from '../../queries/queryBuilder.js';
8
8
  import { deserializeJsonFields } from '../../utils/json-parsing.js';
9
+ import { publishedOnlyReadFilter } from './drafts.js';
9
10
  import { countDocumentsQuery, escapeIdentifier, listDocumentsQuery } from './sqlAdapter.js';
10
11
  /**
11
12
  * Evaluate a collection's access.read function.
@@ -31,7 +32,7 @@ async function evaluateReadAccess(config, options) {
31
32
  return result;
32
33
  }
33
34
  export async function find(config, db, options) {
34
- const { where, limit = 10, page = 1, sort, depth = 0, req, populate: populateOption } = options;
35
+ const { where, limit = 10, page = 1, sort, depth = 0, req, populate: populateOption, draft = false, } = options;
35
36
  // Validate depth
36
37
  if (depth < 0 || depth > 3) {
37
38
  throw new Error(`Depth must be between 0 and 3, got ${depth}`);
@@ -53,8 +54,25 @@ export async function find(config, db, options) {
53
54
  nextPage: null,
54
55
  };
55
56
  }
56
- // Merge access-control WhereClause with user-provided where filter
57
- const mergedWhere = accessResult === true ? where : where ? { and: [where, accessResult] } : accessResult;
57
+ // Merge, with AND, three independent restrictions:
58
+ // 1. the user-provided where filter,
59
+ // 2. the access.read WhereClause (when access returned a clause, not `true`),
60
+ // 3. the drafts published-only filter (drafts-enabled collection, draft!==true).
61
+ // draft=true relaxes ONLY (3); it never removes (2), so a caller scoped to
62
+ // published content by access.read stays published-only even with draft=true.
63
+ const statusFilter = publishedOnlyReadFilter(config, draft);
64
+ const andClauses = [];
65
+ if (where)
66
+ andClauses.push(where);
67
+ if (accessResult !== true)
68
+ andClauses.push(accessResult);
69
+ if (statusFilter)
70
+ andClauses.push(statusFilter);
71
+ const mergedWhere = andClauses.length === 0
72
+ ? undefined
73
+ : andClauses.length === 1
74
+ ? andClauses[0]
75
+ : { and: andClauses };
58
76
  // Replace where in options for downstream use.
59
77
  // When access returned a WhereClause (not just boolean true), set overrideAccess: true
60
78
  // to prevent infinite recursion if collectionStorage.find re-invokes this function.
@@ -78,7 +96,7 @@ export async function find(config, db, options) {
78
96
  currentDepth: 1,
79
97
  depth,
80
98
  doc,
81
- draft: false,
99
+ draft,
82
100
  fallbackLocale: req.fallbackLocale || 'en',
83
101
  findMany: true,
84
102
  flattenLocales: true,
@@ -187,7 +205,7 @@ export async function find(config, db, options) {
187
205
  currentDepth: 1,
188
206
  depth,
189
207
  doc,
190
- draft: false,
208
+ draft,
191
209
  fallbackLocale: req.fallbackLocale || 'en',
192
210
  findMany: true,
193
211
  flattenLocales: true,
@@ -10,5 +10,6 @@ export declare function findByID(config: RevealCollectionConfig, db: QueryableDa
10
10
  req?: RevealRequest;
11
11
  populate?: PopulateType;
12
12
  overrideAccess?: boolean;
13
+ draft?: boolean;
13
14
  }): Promise<RevealDocument | null>;
14
15
  //# sourceMappingURL=findById.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"findById.d.ts","sourceRoot":"","sources":["../../../src/collections/operations/findById.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EACV,YAAY,EACZ,wBAAwB,EACxB,sBAAsB,EACtB,cAAc,EACd,aAAa,EAGd,MAAM,sBAAsB,CAAC;AAK9B,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,sBAAsB,EAC9B,EAAE,EAAE,wBAAwB,GAAG,IAAI,EACnC,OAAO,EAAE;IACP,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,aAAa,CAAC;IACpB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,GACA,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAsIhC"}
1
+ {"version":3,"file":"findById.d.ts","sourceRoot":"","sources":["../../../src/collections/operations/findById.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EACV,YAAY,EACZ,wBAAwB,EACxB,sBAAsB,EACtB,cAAc,EACd,aAAa,EAGd,MAAM,sBAAsB,CAAC;AAM9B,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,sBAAsB,EAC9B,EAAE,EAAE,wBAAwB,GAAG,IAAI,EACnC,OAAO,EAAE;IACP,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,aAAa,CAAC;IACpB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,GACA,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAkJhC"}
@@ -5,41 +5,53 @@
5
5
  */
6
6
  import { afterRead } from '../../fields/hooks/afterRead/index.js';
7
7
  import { deserializeJsonFields } from '../../utils/json-parsing.js';
8
+ import { publishedOnlyReadFilter } from './drafts.js';
8
9
  import { find } from './find.js';
9
10
  import { selectByIdQuery } from './sqlAdapter.js';
10
11
  export async function findByID(config, db, options) {
11
- const { id, depth = 0, req, populate: populateOption } = options;
12
+ const { id, depth = 0, req, populate: populateOption, draft = false } = options;
12
13
  // Validate depth
13
14
  if (depth < 0 || depth > 3) {
14
15
  throw new Error(`Depth must be between 0 and 3, got ${depth}`);
15
16
  }
16
- // --- Access control enforcement ---
17
+ // --- Access control + draft enforcement ---
17
18
  if (!options.overrideAccess) {
18
19
  const accessConfig = config.access;
19
20
  const readAccess = accessConfig?.read;
21
+ let accessWhere;
20
22
  if (readAccess) {
21
23
  if (!req)
22
24
  return null; // No request context = deny
23
25
  const result = await readAccess({ req, id });
24
26
  if (result === false)
25
27
  return null;
26
- if (result !== true) {
27
- // Row-level access: a WhereClause means "allowed only for rows matching
28
- // this filter". Confirm THIS row matches before returning it — otherwise
29
- // findByID hands back rows the ownership rule was meant to scope out
30
- // (cross-tenant / unpublished-draft leakage). Reuse find()'s AND-merge so
31
- // the filter runs through the same proven path the list view uses (both
32
- // storage adapters); overrideAccess skips re-evaluating the rule.
33
- const scoped = await find(config, db, {
34
- where: { and: [{ id: { equals: id } }, result] },
35
- limit: 1,
36
- depth,
37
- req,
38
- ...(populateOption !== undefined ? { populate: populateOption } : {}),
39
- overrideAccess: true,
40
- });
41
- return scoped.docs[0] ?? null;
42
- }
28
+ if (result !== true)
29
+ accessWhere = result;
30
+ }
31
+ // For a drafts-enabled collection read without draft mode, the row must also
32
+ // be published. draft=true drops THIS filter only — accessWhere still stands.
33
+ const statusFilter = publishedOnlyReadFilter(config, draft);
34
+ if (accessWhere || statusFilter) {
35
+ // Row-level access and/or the published-only filter apply. Route through
36
+ // find()'s AND-merge the same proven path the list view uses on both
37
+ // storage adapters — so findByID cannot hand back a row the ownership rule
38
+ // or draft state was meant to scope out (cross-tenant / draft leakage).
39
+ // overrideAccess skips re-evaluating access.read; find() re-derives the
40
+ // published-only filter itself from `draft`, so only accessWhere is merged
41
+ // in here.
42
+ const where = accessWhere
43
+ ? { and: [{ id: { equals: id } }, accessWhere] }
44
+ : { id: { equals: id } };
45
+ const scoped = await find(config, db, {
46
+ where,
47
+ limit: 1,
48
+ depth,
49
+ req,
50
+ draft,
51
+ ...(populateOption !== undefined ? { populate: populateOption } : {}),
52
+ overrideAccess: true,
53
+ });
54
+ return scoped.docs[0] ?? null;
43
55
  }
44
56
  }
45
57
  if (db?.collectionStorage?.findByID) {
@@ -60,7 +72,7 @@ export async function findByID(config, db, options) {
60
72
  currentDepth: 1,
61
73
  depth,
62
74
  doc,
63
- draft: false,
75
+ draft,
64
76
  fallbackLocale: req.fallbackLocale || 'en',
65
77
  findMany: false,
66
78
  flattenLocales: true,
@@ -107,7 +119,7 @@ export async function findByID(config, db, options) {
107
119
  currentDepth: 1,
108
120
  depth,
109
121
  doc,
110
- draft: false,
122
+ draft,
111
123
  fallbackLocale: req.fallbackLocale || 'en',
112
124
  findMany: false,
113
125
  flattenLocales: true,
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Snapshot Operations
3
+ *
4
+ * Point-in-time revisions of a document, modeled on the `page_revisions`
5
+ * pattern (per-doc revision number, content snapshot, createdBy,
6
+ * changeDescription).
7
+ *
8
+ * Persistence lives behind the `collectionStorage` seam so the typed store owns
9
+ * the revision table — the same seam `create`/`update`/`delete` already use.
10
+ * Core owns the access gate. This deliberately does NOT introduce a parallel
11
+ * dynamic revisions table: snapshots require a registered typed storage
12
+ * adapter, keeping core drafts thin (the edit-session layer owns its own
13
+ * snapshot path and does not route through here).
14
+ */
15
+ import type { QueryableDatabaseAdapter, RevealCollectionConfig, RevealDocument, RevealRequest } from '../../types/index.js';
16
+ export interface SnapshotOptions {
17
+ id: string | number;
18
+ req?: RevealRequest;
19
+ changeDescription?: string;
20
+ overrideAccess?: boolean;
21
+ }
22
+ export interface RestoreOptions {
23
+ id: string | number;
24
+ revisionId: string | number;
25
+ req?: RevealRequest;
26
+ overrideAccess?: boolean;
27
+ }
28
+ export declare function createSnapshot(config: RevealCollectionConfig, db: QueryableDatabaseAdapter | null, options: SnapshotOptions): Promise<RevealDocument>;
29
+ export declare function restoreSnapshot(config: RevealCollectionConfig, db: QueryableDatabaseAdapter | null, options: RestoreOptions): Promise<RevealDocument>;
30
+ //# sourceMappingURL=snapshot.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot.d.ts","sourceRoot":"","sources":["../../../src/collections/operations/snapshot.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EACV,wBAAwB,EACxB,sBAAsB,EACtB,cAAc,EACd,aAAa,EAEd,MAAM,sBAAsB,CAAC;AAiD9B,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,aAAa,CAAC;IACpB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,GAAG,CAAC,EAAE,aAAa,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAsB,cAAc,CAClC,MAAM,EAAE,sBAAsB,EAC9B,EAAE,EAAE,wBAAwB,GAAG,IAAI,EACnC,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,cAAc,CAAC,CAczB;AAED,wBAAsB,eAAe,CACnC,MAAM,EAAE,sBAAsB,EAC9B,EAAE,EAAE,wBAAwB,GAAG,IAAI,EACnC,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,cAAc,CAAC,CAczB"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Snapshot Operations
3
+ *
4
+ * Point-in-time revisions of a document, modeled on the `page_revisions`
5
+ * pattern (per-doc revision number, content snapshot, createdBy,
6
+ * changeDescription).
7
+ *
8
+ * Persistence lives behind the `collectionStorage` seam so the typed store owns
9
+ * the revision table — the same seam `create`/`update`/`delete` already use.
10
+ * Core owns the access gate. This deliberately does NOT introduce a parallel
11
+ * dynamic revisions table: snapshots require a registered typed storage
12
+ * adapter, keeping core drafts thin (the edit-session layer owns its own
13
+ * snapshot path and does not route through here).
14
+ */
15
+ import { find } from './find.js';
16
+ function accessDenied() {
17
+ return new Error('Access denied: insufficient permissions to snapshot this document');
18
+ }
19
+ function snapshotUnsupported(slug) {
20
+ const err = new Error(`Snapshots are not supported for collection '${slug}': no typed storage adapter is registered.`);
21
+ err.statusCode = 501;
22
+ return err;
23
+ }
24
+ /**
25
+ * Confirm the caller may write the target document — snapshotting and restoring
26
+ * are part of the edit lifecycle. Reuses `access.update` and the same row-level
27
+ * scoping `update()` uses, so a caller cannot snapshot or restore a row outside
28
+ * its scope.
29
+ */
30
+ async function assertWriteAccess(config, db, id, req, overrideAccess) {
31
+ if (overrideAccess)
32
+ return;
33
+ const updateAccess = config.access?.update;
34
+ if (!updateAccess)
35
+ return;
36
+ if (!req)
37
+ throw accessDenied();
38
+ const result = await updateAccess({ req, id });
39
+ if (result === false)
40
+ throw accessDenied();
41
+ if (result !== true) {
42
+ const scoped = await find(config, db, {
43
+ where: { and: [{ id: { equals: id } }, result] },
44
+ limit: 1,
45
+ req,
46
+ overrideAccess: true,
47
+ });
48
+ if (scoped.docs.length === 0)
49
+ throw accessDenied();
50
+ }
51
+ }
52
+ export async function createSnapshot(config, db, options) {
53
+ const { id, req, changeDescription } = options;
54
+ await assertWriteAccess(config, db, id, req, options.overrideAccess);
55
+ const seam = db?.collectionStorage?.snapshot;
56
+ if (!seam)
57
+ throw snapshotUnsupported(config.slug);
58
+ const revision = await seam(config, {
59
+ id,
60
+ ...(req ? { req } : {}),
61
+ ...(changeDescription !== undefined ? { changeDescription } : {}),
62
+ });
63
+ if (revision === undefined)
64
+ throw snapshotUnsupported(config.slug);
65
+ return revision;
66
+ }
67
+ export async function restoreSnapshot(config, db, options) {
68
+ const { id, revisionId, req } = options;
69
+ await assertWriteAccess(config, db, id, req, options.overrideAccess);
70
+ const seam = db?.collectionStorage?.restore;
71
+ if (!seam)
72
+ throw snapshotUnsupported(config.slug);
73
+ const restored = await seam(config, {
74
+ id,
75
+ revisionId,
76
+ ...(req ? { req } : {}),
77
+ });
78
+ if (restored === undefined)
79
+ throw snapshotUnsupported(config.slug);
80
+ return restored;
81
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/collections/operations/update.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EACV,wBAAwB,EACxB,sBAAsB,EACtB,cAAc,EAGd,mBAAmB,EAEpB,MAAM,sBAAsB,CAAC;AAmF9B,wBAAsB,MAAM,CAC1B,MAAM,EAAE,sBAAsB,EAC9B,EAAE,EAAE,wBAAwB,GAAG,IAAI,EACnC,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,cAAc,CAAC,CAgNzB"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../../src/collections/operations/update.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EACV,wBAAwB,EACxB,sBAAsB,EACtB,cAAc,EAGd,mBAAmB,EAEpB,MAAM,sBAAsB,CAAC;AAoF9B,wBAAsB,MAAM,CAC1B,MAAM,EAAE,sBAAsB,EAC9B,EAAE,EAAE,wBAAwB,GAAG,IAAI,EACnC,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,cAAc,CAAC,CAsOzB"}
@@ -8,6 +8,7 @@ import { defaultLogger } from '../../instance/logger.js';
8
8
  import { collectJsonFields, serializeValueForDatabase } from '../../utils/json-parsing.js';
9
9
  import { flattenFields, isJsonFieldType } from '../../utils/type-guards.js';
10
10
  import { runBeforeFieldHooks } from './fieldHooks.js';
11
+ import { runFieldValidators } from './fieldValidation.js';
11
12
  import { find } from './find.js';
12
13
  import { findByID } from './findById.js';
13
14
  import { checkExistsByIdQuery, selectJsonByIdQuery, updateByIdQuery, updateByIdWithVersionQuery, } from './sqlAdapter.js';
@@ -109,6 +110,10 @@ export async function update(config, db, options) {
109
110
  }
110
111
  }
111
112
  }
113
+ // Run field-level `validate` predicates for the fields present in this patch,
114
+ // after the built-in email check and before beforeChange hooks. Throws a
115
+ // ValidationError (HTTP 400) on the first failing field.
116
+ await runFieldValidators(config, data, 'update', options.req);
112
117
  // Run beforeChange field hooks after validation but before the DB write.
113
118
  await runBeforeFieldHooks(config, data, 'update', 'beforeChange', undefined, options.req);
114
119
  // Hash password if present and not already hashed (doesn't start with $2a$ or $2b$)
@@ -116,6 +121,21 @@ export async function update(config, db, options) {
116
121
  const saltRounds = 12;
117
122
  data.password = await bcrypt.hash(data.password, saltRounds);
118
123
  }
124
+ // Typed-storage write seam: a registered collectionStorage adapter may own
125
+ // this collection's writes. It receives the hook-processed `data` and returns
126
+ // the updated document, throws for not-found / optimistic-lock 409, or returns
127
+ // `undefined` to defer to the dynamic-SQL path below (same not-handled
128
+ // contract as the read seam).
129
+ if (db?.collectionStorage?.update) {
130
+ const doc = await db.collectionStorage.update(config, {
131
+ id,
132
+ data,
133
+ ...(options.req ? { req: options.req } : {}),
134
+ });
135
+ if (doc !== undefined) {
136
+ return doc;
137
+ }
138
+ }
119
139
  if (db?.query) {
120
140
  // Dynamic collection storage is quarantined in sqlAdapter.ts until this
121
141
  // layer is redesigned around typed tables that Drizzle can model directly.
@@ -135,6 +155,7 @@ export async function update(config, db, options) {
135
155
  'created_at',
136
156
  'updated_at',
137
157
  '_json',
158
+ '_status',
138
159
  'password',
139
160
  ]);
140
161
  if (config.fields) {
@@ -1 +1 @@
1
- {"version":3,"file":"error-boundary.d.ts","sourceRoot":"","sources":["../../src/error-handling/error-boundary.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAGzD,MAAM,WAAW,SAAS;IACxB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC;IAC5E,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,SAAS,KAAK,IAAI,CAAC;IACxD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;CAC7B;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,SAAS,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;gBACtE,KAAK,EAAE,kBAAkB;IASrC,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAO1E,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI;IAgB3D,kBAAkB,CAAC,SAAS,EAAE,kBAAkB,GAAG,IAAI;IAevD,KAAK,QAAO,IAAI,CAUd;IAEF,MAAM,IAAI,SAAS;CA2BpB;AA6FD;;GAEG;AACH,MAAM,WAAW,2BAA4B,SAAQ,kBAAkB;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,sBAAuB,SAAQ,SAAS,CACnD,2BAA2B,EAC3B,kBAAkB,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,CAC5C;IACC,OAAO,CAAC,YAAY,CAAC,CAAiB;gBAE1B,KAAK,EAAE,2BAA2B;IAU9C,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAO1E,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI;IAwB3D,oBAAoB,IAAI,IAAI;IAM5B,KAAK,QAAO,IAAI,CAed;IAEF,MAAM,IAAI,SAAS;CAkCpB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,EAChD,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,EACjC,kBAAkB,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC,GACxD,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAUxB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAgB5E;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,KAAK;IAG5B,UAAU,CAAC,EAAE,MAAM;gBAD1B,OAAO,EAAE,MAAM,EACR,UAAU,CAAC,EAAE,MAAM,YAAA;CAK7B;AAED,qBAAa,eAAgB,SAAQ,KAAK;IAG/B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;gBADtC,OAAO,EAAE,MAAM,EACR,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,YAAA;CAKzC;AAED,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,aAAc,SAAQ,KAAK;IAG7B,QAAQ,CAAC,EAAE,MAAM;gBADxB,OAAO,EAAE,MAAM,EACR,QAAQ,CAAC,EAAE,MAAM,YAAA;CAK3B;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY,CAEpE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,eAAe,CAI1E;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,mBAAmB,CAKlF;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAItE;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;AAEnE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,aAAa,CAO5D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAStD"}
1
+ {"version":3,"file":"error-boundary.d.ts","sourceRoot":"","sources":["../../src/error-handling/error-boundary.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAGzD,MAAM,WAAW,SAAS;IACxB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC;IAC5E,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,EAAE,SAAS,KAAK,IAAI,CAAC;IACxD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;CAC7B;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,SAAS,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;gBACtE,KAAK,EAAE,kBAAkB;IASrC,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAO1E,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI;IAgB3D,kBAAkB,CAAC,SAAS,EAAE,kBAAkB,GAAG,IAAI;IAevD,KAAK,QAAO,IAAI,CAUd;IAEF,MAAM,IAAI,SAAS;CA2BpB;AAuGD;;GAEG;AACH,MAAM,WAAW,2BAA4B,SAAQ,kBAAkB;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,sBAAuB,SAAQ,SAAS,CACnD,2BAA2B,EAC3B,kBAAkB,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,CAC5C;IACC,OAAO,CAAC,YAAY,CAAC,CAAiB;gBAE1B,KAAK,EAAE,2BAA2B;IAU9C,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAO1E,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI;IAwB3D,oBAAoB,IAAI,IAAI;IAM5B,KAAK,QAAO,IAAI,CAed;IAEF,MAAM,IAAI,SAAS;CAkCpB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,EAChD,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,EACjC,kBAAkB,CAAC,EAAE,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC,GACxD,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAUxB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAgB5E;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,KAAK;IAG5B,UAAU,CAAC,EAAE,MAAM;gBAD1B,OAAO,EAAE,MAAM,EACR,UAAU,CAAC,EAAE,MAAM,YAAA;CAK7B;AAED,qBAAa,eAAgB,SAAQ,KAAK;IAG/B,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;gBADtC,OAAO,EAAE,MAAM,EACR,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,YAAA;CAKzC;AAED,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,OAAO,EAAE,MAAM;CAI5B;AAED,qBAAa,aAAc,SAAQ,KAAK;IAG7B,QAAQ,CAAC,EAAE,MAAM;gBADxB,OAAO,EAAE,MAAM,EACR,QAAQ,CAAC,EAAE,MAAM,YAAA;CAK3B;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY,CAEpE;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,eAAe,CAI1E;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,mBAAmB,CAKlF;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAItE;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;AAEnE,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,aAAa,CAO5D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAStD"}
@@ -79,33 +79,37 @@ export class ErrorBoundary extends Component {
79
79
  }
80
80
  function DefaultErrorFallback({ error, errorInfo, onReset, isolate, }) {
81
81
  if (isolate) {
82
- return (_jsx("div", { style: { padding: '16px', border: '1px solid #f44336', borderRadius: '4px' }, children: _jsx("p", { style: { color: '#f44336', fontWeight: 'bold' }, children: "Something went wrong" }) }));
82
+ return (_jsx("div", { style: {
83
+ padding: '16px',
84
+ border: '1px solid var(--rvui-error, #f44336)',
85
+ borderRadius: '4px',
86
+ }, children: _jsx("p", { style: { color: 'var(--rvui-error, #f44336)', fontWeight: 'bold' }, children: "Something went wrong" }) }));
83
87
  }
84
88
  return (_jsxs("div", { role: "alert", style: {
85
89
  padding: '24px',
86
90
  maxWidth: '600px',
87
91
  margin: '40px auto',
88
- backgroundColor: '#fff',
89
- border: '1px solid #f44336',
92
+ backgroundColor: 'var(--rvui-surface-0, #fff)',
93
+ border: '1px solid var(--rvui-error, #f44336)',
90
94
  borderRadius: '8px',
91
- }, children: [_jsx("h2", { style: { color: '#f44336', marginTop: 0 }, children: "Something went wrong" }), _jsx("p", { style: { color: '#666' }, children: "An error occurred while rendering this component." }), process.env.NODE_ENV === 'development' && (_jsxs("details", { style: { marginTop: '16px' }, children: [_jsx("summary", { style: { cursor: 'pointer', fontWeight: 'bold' }, children: "Error details" }), _jsx("pre", { style: {
95
+ }, children: [_jsx("h2", { style: { color: 'var(--rvui-error, #f44336)', marginTop: 0 }, children: "Something went wrong" }), _jsx("p", { style: { color: 'var(--rvui-text-2, #666)' }, children: "An error occurred while rendering this component." }), process.env.NODE_ENV === 'development' && (_jsxs("details", { style: { marginTop: '16px' }, children: [_jsx("summary", { style: { cursor: 'pointer', fontWeight: 'bold' }, children: "Error details" }), _jsx("pre", { style: {
92
96
  marginTop: '8px',
93
97
  padding: '12px',
94
- backgroundColor: '#f5f5f5',
98
+ backgroundColor: 'var(--rvui-surface-2, #f5f5f5)',
95
99
  borderRadius: '4px',
96
100
  overflow: 'auto',
97
101
  fontSize: '12px',
98
102
  }, children: error.toString() }), _jsx("pre", { style: {
99
103
  marginTop: '8px',
100
104
  padding: '12px',
101
- backgroundColor: '#f5f5f5',
105
+ backgroundColor: 'var(--rvui-surface-2, #f5f5f5)',
102
106
  borderRadius: '4px',
103
107
  overflow: 'auto',
104
108
  fontSize: '12px',
105
109
  }, children: errorInfo?.componentStack })] })), _jsx("button", { type: "button", onClick: onReset, style: {
106
110
  marginTop: '16px',
107
111
  padding: '8px 16px',
108
- backgroundColor: '#2196f3',
112
+ backgroundColor: 'var(--rvui-brand, #2196f3)',
109
113
  color: '#fff',
110
114
  border: 'none',
111
115
  borderRadius: '4px',
@@ -1 +1 @@
1
- {"version":3,"file":"fallback-components.d.ts","sourceRoot":"","sources":["../../src/error-handling/fallback-components.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,OAAO,EACP,SAAS,EACT,KAA8B,EAC9B,OAAO,EACP,WAAoD,EACpD,OAAe,GAChB,EAAE,kBAAkB,GAAG,KAAK,CAAC,YAAY,CA6HzC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,OAAO,EACP,OAAmF,GACpF,EAAE;IACD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,KAAK,CAAC,YAAY,CAiCrB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,KAAwB,EACxB,OAAwD,EACxD,QAAQ,GACT,EAAE;IACD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB,GAAG,KAAK,CAAC,YAAY,CAiCrB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAC9B,OAAsB,EACtB,OAAO,EACP,SAAS,GACV,EAAE;IACD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB,GAAG,KAAK,CAAC,YAAY,CAyDrB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAC9B,OAAwE,EACxE,QAAQ,GACT,EAAE;IACD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,GAAG,KAAK,CAAC,YAAY,CAkBrB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,EACtC,WAAW,EACX,OAAO,EACP,QAAQ,GACT,EAAE;IACD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,GAAG,KAAK,CAAC,YAAY,CAwBrB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,KAA2B,EAC3B,OAA4E,EAC5E,aAAa,GACd,EAAE;IACD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GAAG,KAAK,CAAC,YAAY,CAkBrB;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,EACvC,OAA+D,EAC/D,eAAe,EACf,QAAQ,GACT,EAAE;IACD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB,GAAG,KAAK,CAAC,YAAY,CAkDrB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,QAAQ,EACR,UAAc,EACd,UAAiB,GAClB,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,IAAI,EAAE,OAAO,EAAE,MAAM,KAAK,SAAS,CAAC;IAC3E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,KAAK,CAAC,YAAY,CAsCrB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,OAAsB,EACtB,OAAe,GAChB,EAAE;IACD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,KAAK,CAAC,YAAY,CAqBrB;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,EACzC,WAAW,EACX,OAAO,GACR,EAAE;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,KAAK,CAAC,YAAY,CAiBrB;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,SAAS,GACV,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB,GAAG,KAAK,CAAC,YAAY,CAsCrB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,SAAS,GACV,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB,GAAG,KAAK,CAAC,YAAY,CAqCrB;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,EACpB,IAAa,EACb,OAAO,EACP,QAAe,EACf,SAAS,GACV,EAAE;IACD,IAAI,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB,GAAG,KAAK,CAAC,YAAY,CA0DrB;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,EACvB,KAAc,EACd,MAAe,EACf,YAAoB,GACrB,EAAE;IACD,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,KAAK,CAAC,YAAY,CAqBrB"}
1
+ {"version":3,"file":"fallback-components.d.ts","sourceRoot":"","sources":["../../src/error-handling/fallback-components.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAC5B,KAAK,EACL,OAAO,EACP,SAAS,EACT,KAA8B,EAC9B,OAAO,EACP,WAAoD,EACpD,OAAe,GAChB,EAAE,kBAAkB,GAAG,KAAK,CAAC,YAAY,CA6HzC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,EACnC,OAAO,EACP,OAAmF,GACpF,EAAE;IACD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,KAAK,CAAC,YAAY,CAiCrB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,KAAwB,EACxB,OAAwD,EACxD,QAAQ,GACT,EAAE;IACD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB,GAAG,KAAK,CAAC,YAAY,CAiCrB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAC9B,OAAsB,EACtB,OAAO,EACP,SAAS,GACV,EAAE;IACD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB,GAAG,KAAK,CAAC,YAAY,CAyDrB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,EAC9B,OAAwE,EACxE,QAAQ,GACT,EAAE;IACD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,GAAG,KAAK,CAAC,YAAY,CAkBrB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,EACtC,WAAW,EACX,OAAO,EACP,QAAQ,GACT,EAAE;IACD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,GAAG,KAAK,CAAC,YAAY,CAwBrB;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,KAA2B,EAC3B,OAA4E,EAC5E,aAAa,GACd,EAAE;IACD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GAAG,KAAK,CAAC,YAAY,CAsBrB;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,EACvC,OAA+D,EAC/D,eAAe,EACf,QAAQ,GACT,EAAE;IACD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB,GAAG,KAAK,CAAC,YAAY,CAkDrB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,QAAQ,EACR,UAAc,EACd,UAAiB,GAClB,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,IAAI,EAAE,OAAO,EAAE,MAAM,KAAK,SAAS,CAAC;IAC3E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,KAAK,CAAC,YAAY,CAsCrB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,OAAsB,EACtB,OAAe,GAChB,EAAE;IACD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,KAAK,CAAC,YAAY,CAqBrB;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,EACzC,WAAW,EACX,OAAO,GACR,EAAE;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,KAAK,CAAC,YAAY,CAiBrB;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,SAAS,GACV,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB,GAAG,KAAK,CAAC,YAAY,CAsCrB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,SAAS,GACV,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB,GAAG,KAAK,CAAC,YAAY,CAqCrB;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,EACpB,IAAa,EACb,OAAO,EACP,QAAe,EACf,SAAS,GACV,EAAE;IACD,IAAI,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB,GAAG,KAAK,CAAC,YAAY,CA8ErB;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,EACvB,KAAc,EACd,MAAe,EACf,YAAoB,GACrB,EAAE;IACD,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,KAAK,CAAC,YAAY,CAqBrB"}