@servicetitan/json-render-react 0.2.0 → 0.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 (86) hide show
  1. package/dist/catalog/context/catalog-prompt.md +229 -0
  2. package/dist/catalog/context/schema.json +56 -0
  3. package/dist/catalog/core/catalog-prompt.md +104 -90
  4. package/dist/catalog/core/schema.json +0 -1
  5. package/dist/catalog/marketing/catalog-prompt.md +104 -90
  6. package/dist/catalog/marketing/schema.json +0 -1
  7. package/dist/context/catalog/catalog-def.d.ts +50 -0
  8. package/dist/context/catalog/context-card.catalog.d.ts +19 -0
  9. package/dist/context/catalog/context-card.d.ts +8 -0
  10. package/dist/context/catalog/context-data-table.catalog.d.ts +34 -0
  11. package/dist/context/catalog/context-data-table.css.d.ts +2 -0
  12. package/dist/context/catalog/context-data-table.d.ts +6 -0
  13. package/dist/context/catalog/context-file-list.catalog.d.ts +11 -0
  14. package/dist/context/catalog/context-file-list.css.d.ts +16 -0
  15. package/dist/context/catalog/context-file-list.d.ts +6 -0
  16. package/dist/context/catalog/context-list.catalog.d.ts +48 -0
  17. package/dist/context/catalog/context-list.css.d.ts +16 -0
  18. package/dist/context/catalog/context-list.d.ts +6 -0
  19. package/dist/context/catalog/context-metric-grid.catalog.d.ts +22 -0
  20. package/dist/context/catalog/context-metric-grid.css.d.ts +13 -0
  21. package/dist/context/catalog/context-metric-grid.d.ts +6 -0
  22. package/dist/context/catalog/context-note-list.catalog.d.ts +15 -0
  23. package/dist/context/catalog/context-note-list.d.ts +6 -0
  24. package/dist/context/catalog/context-overview.catalog.d.ts +8 -0
  25. package/dist/context/catalog/context-overview.css.d.ts +2 -0
  26. package/dist/context/catalog/context-overview.d.ts +6 -0
  27. package/dist/context/catalog/context-panel.catalog.d.ts +6 -0
  28. package/dist/context/catalog/context-panel.css.d.ts +1 -0
  29. package/dist/context/catalog/context-panel.d.ts +6 -0
  30. package/dist/context/catalog/context-tabular-list.catalog.d.ts +19 -0
  31. package/dist/context/catalog/context-tabular-list.css.d.ts +17 -0
  32. package/dist/context/catalog/context-tabular-list.d.ts +6 -0
  33. package/dist/context/catalog/index.d.ts +10 -0
  34. package/dist/context/catalog/schemas.d.ts +151 -0
  35. package/dist/context/components/collapsible-card.css.d.ts +41 -0
  36. package/dist/context/components/collapsible-card.d.ts +14 -0
  37. package/dist/context/components/context-ai-summary.css.d.ts +5 -0
  38. package/dist/context/components/context-ai-summary.d.ts +4 -0
  39. package/dist/context/components/context-chip-tone.d.ts +10 -0
  40. package/dist/context/components/context-note-list.css.d.ts +10 -0
  41. package/dist/context/components/context-render-error-boundary.d.ts +21 -0
  42. package/dist/context/constants.d.ts +6 -0
  43. package/dist/context/index.d.ts +4 -0
  44. package/dist/context/validate-context-spec-deep.d.ts +9 -0
  45. package/dist/context/validate-context-spec.d.ts +11 -0
  46. package/dist/core/catalog/alert.catalog.d.ts +2 -0
  47. package/dist/core/catalog/button.catalog.d.ts +3 -0
  48. package/dist/core/catalog/card.catalog.d.ts +2 -0
  49. package/dist/core/catalog/catalog-def.d.ts +33 -19
  50. package/dist/core/catalog/checkbox.catalog.d.ts +1 -0
  51. package/dist/core/catalog/chip.catalog.d.ts +1 -0
  52. package/dist/core/catalog/flex.catalog.d.ts +13 -0
  53. package/dist/core/catalog/grid.catalog.d.ts +4 -0
  54. package/dist/core/catalog/input.catalog.d.ts +1 -0
  55. package/dist/core/catalog/link.catalog.d.ts +2 -0
  56. package/dist/core/catalog/listbox.catalog.d.ts +1 -0
  57. package/dist/core/catalog/radio-group.catalog.d.ts +1 -0
  58. package/dist/core/catalog/schemas.d.ts +33 -19
  59. package/dist/core/catalog/switch.catalog.d.ts +1 -0
  60. package/dist/core/catalog/text.catalog.d.ts +0 -8
  61. package/dist/core/catalog/textarea.catalog.d.ts +1 -0
  62. package/dist/generate.d.ts +4 -4
  63. package/dist/index.d.ts +6 -3
  64. package/dist/json-render-react.js +1820 -705
  65. package/dist/json-render-react.js.map +1 -1
  66. package/dist/marketing/catalog/catalog.d.ts +1 -1
  67. package/dist/marketing/catalog/index.d.ts +1 -1
  68. package/dist/marketing/catalog/scoped-catalogs.d.ts +4 -0
  69. package/dist/registry-utils.d.ts +1 -1
  70. package/dist/registry.d.ts +1 -0
  71. package/dist/renderers/context-spec-renderer.d.ts +6 -0
  72. package/dist/renderers/sectioned-context-renderer.css.d.ts +1 -0
  73. package/dist/renderers/sectioned-context-renderer.d.ts +36 -0
  74. package/dist/renderers/spec-renderer.d.ts +6 -1
  75. package/dist/renderers/types.d.ts +2 -1
  76. package/dist/renderers/wrap-context-registry.d.ts +3 -0
  77. package/dist/scoped-catalog.d.ts +64 -0
  78. package/dist/styles.css +1 -1
  79. package/dist/test/setup-dom.d.ts +1 -0
  80. package/dist/types.d.ts +6 -3
  81. package/package.json +4 -2
  82. package/dist/core/catalog/badge.catalog.d.ts +0 -12
  83. package/dist/core/catalog/badge.css.d.ts +0 -1
  84. package/dist/core/catalog/badge.d.ts +0 -8
  85. package/dist/marketing/catalog/teams.d.ts +0 -4
  86. package/dist/team-catalog.d.ts +0 -26
@@ -1 +1 @@
1
- export declare const marketingCatalog: import('../..').TeamCatalogDef;
1
+ export declare const marketingCatalog: import('../..').ScopedCatalogDef;
@@ -3,4 +3,4 @@ import { marketingCatalog } from './catalog';
3
3
  export { marketingRenderers } from './components';
4
4
  export { marketingCatalog };
5
5
  export declare const marketingCatalogEntries: CatalogEntry[];
6
- export { teams } from './teams';
6
+ export { scopedCatalogs } from './scoped-catalogs';
@@ -0,0 +1,4 @@
1
+ export declare const scopedCatalogs: readonly [{
2
+ readonly name: "marketing";
3
+ readonly catalog: import('../..').ScopedCatalogDef;
4
+ }];
@@ -1,5 +1,5 @@
1
1
  import { AllComponentRenderers } from './renderers/types';
2
- import { ComponentCatalogDef } from './team-catalog';
2
+ import { ComponentCatalogDef } from './scoped-catalog';
3
3
  import { CatalogEntry, RendererContext } from './types';
4
4
  export declare function filterCatalogEntries(entries: CatalogEntry[], renderer: RendererContext): CatalogEntry[];
5
5
  export declare function toComponentCatalogMap(entries: CatalogEntry[]): Record<string, ComponentCatalogDef>;
@@ -4,5 +4,6 @@ export declare function getRegistry(renderer?: RendererContext): import('@json-r
4
4
  export declare const registry: import('@json-render/react').ComponentRegistry;
5
5
  export declare const handlers: (getSetState: () => import('@json-render/react').SetState | undefined, getState: () => import('@json-render/core').StateModel) => Record<string, (params: Record<string, unknown>) => Promise<void>>;
6
6
  export declare const executeAction: (actionName: string, params: Record<string, unknown> | undefined, setState: import('@json-render/react').SetState, state?: import('@json-render/core').StateModel) => Promise<void>;
7
+ export declare function getContextRegistry(): import('@json-render/react').DefineRegistryResult;
7
8
  /** Core catalog used for schema generation and prompt artifacts. */
8
9
  export { coreCatalog as catalog };
@@ -0,0 +1,6 @@
1
+ import { ContextRenderErrorInfo } from '../context/components/context-render-error-boundary';
2
+ import { SpecRendererProps } from './spec-renderer';
3
+ export type ContextSpecRendererProps = Omit<SpecRendererProps, "registry" | "handlers"> & Partial<Pick<SpecRendererProps, "registry" | "handlers">> & {
4
+ onRenderError?: (info: ContextRenderErrorInfo) => void;
5
+ };
6
+ export declare const ContextSpecRenderer: ({ spec, registry, handlers, actions, onRenderError, loading, }: ContextSpecRendererProps) => import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1 @@
1
+ export declare const sectionLoadingTail: string;
@@ -0,0 +1,36 @@
1
+ import { Spec } from '@json-render/core';
2
+ import { ComponentRegistry, DefineRegistryResult } from '@json-render/react';
3
+ import { ContextRenderErrorInfo } from '../context/components/context-render-error-boundary';
4
+ import { SpecRendererProps } from './spec-renderer';
5
+ export type ContextSectionStatus = "loading" | "ready" | "error";
6
+ /** A single top-level context section rendered by its own SpecRenderer + store. */
7
+ export interface ContextSection {
8
+ id: string;
9
+ title?: string;
10
+ spec: Spec | null;
11
+ status: ContextSectionStatus;
12
+ error?: string;
13
+ }
14
+ export interface SectionedContextRendererProps {
15
+ /** Combined ContextPanel spec — split client-side into per-section slots. */
16
+ spec?: Spec | null;
17
+ /** Explicit ordered section slots (parallel per-section streams). Wins over `spec`. */
18
+ sections?: ContextSection[];
19
+ /** Global streaming flag — the last in-progress section shows a loading state. */
20
+ loading?: boolean;
21
+ registry?: ComponentRegistry;
22
+ handlers?: DefineRegistryResult["handlers"];
23
+ actions?: SpecRendererProps["actions"];
24
+ onRenderError?: (info: ContextRenderErrorInfo) => void;
25
+ }
26
+ /** Build a standalone `{ root, elements, state }` spec for one section. */
27
+ export declare function extractSectionSpec(spec: Spec, sectionId: string): {
28
+ spec: Spec;
29
+ hasMissingRefs: boolean;
30
+ };
31
+ /**
32
+ * Renders a context panel as independent per-section renderers. Each section
33
+ * owns its own SpecRenderer + state store, so streaming in (or parallel-loading)
34
+ * later sections never resets an already-expanded section.
35
+ */
36
+ export declare const SectionedContextRenderer: ({ spec, sections, loading, registry, handlers, actions, onRenderError, }: SectionedContextRendererProps) => import("react/jsx-runtime").JSX.Element;
@@ -20,6 +20,11 @@ export interface SpecRendererProps {
20
20
  * `atlas.navigate`, `atlas.toolCall`) without changes to this package.
21
21
  */
22
22
  actions?: SpecActionsFactory;
23
+ /**
24
+ * True while the spec is still streaming in. Renders partial trees and
25
+ * suppresses "missing child" warnings for elements that have not arrived yet.
26
+ */
27
+ loading?: boolean;
23
28
  }
24
- export declare const SpecRenderer: ({ spec, registry, handlers, actions }: SpecRendererProps) => import("react/jsx-runtime").JSX.Element;
29
+ export declare const SpecRenderer: ({ spec, registry, handlers, actions, loading }: SpecRendererProps) => import("react/jsx-runtime").JSX.Element;
25
30
  export {};
@@ -1,3 +1,4 @@
1
+ import { contextContentRenderers, contextShellRenderers } from '../context/catalog';
1
2
  import { baseRenderers } from '../core/catalog';
2
3
  import { marketingRenderers } from '../marketing/catalog/components';
3
- export type AllComponentRenderers = typeof baseRenderers & typeof marketingRenderers;
4
+ export type AllComponentRenderers = typeof baseRenderers & typeof marketingRenderers & typeof contextShellRenderers & typeof contextContentRenderers;
@@ -0,0 +1,3 @@
1
+ import { ComponentRegistry } from '@json-render/react';
2
+ import { ContextRenderErrorInfo } from '../context/components/context-render-error-boundary';
3
+ export declare function wrapContextRegistryWithErrorFallback(registry: ComponentRegistry, onRenderError?: (info: ContextRenderErrorInfo) => void): ComponentRegistry;
@@ -0,0 +1,64 @@
1
+ import { Catalog } from '@json-render/core';
2
+ import { z } from 'zod';
3
+ import { baseComponents } from './core/catalog/schemas';
4
+ export interface ComponentCatalogDef {
5
+ props: z.ZodType;
6
+ slots: string[];
7
+ description: string;
8
+ /**
9
+ * Events this component emits, surfaced to the LLM as `[events: ...]` in the
10
+ * generated prompt so it knows which event names are valid in an element's
11
+ * `on` map (e.g. `{ "press": { "action": "..." } }`).
12
+ */
13
+ events?: string[];
14
+ }
15
+ export interface ActionCatalogDef {
16
+ params: z.ZodType;
17
+ description: string;
18
+ }
19
+ /** Names of the components available in the core catalog. */
20
+ export type CoreComponentName = keyof typeof baseComponents;
21
+ /** Replace or append to a component's catalog description (prompt + JSON schema). */
22
+ export interface DescriptionOverride {
23
+ /** Replace the component's description entirely. */
24
+ description?: string;
25
+ /** Append to the existing description (joined with a space). */
26
+ append?: string;
27
+ }
28
+ export interface ComposeCatalogComponentsOptions {
29
+ /** Core components to include: an array of names, or "all" (default). */
30
+ core?: CoreComponentName[] | "all";
31
+ /** Per-component description overrides/appends — applies to core and own components. */
32
+ overrides?: Partial<Record<string, DescriptionOverride>>;
33
+ /** This catalog's own (non-core) components. */
34
+ components?: Record<string, ComponentCatalogDef>;
35
+ }
36
+ /**
37
+ * Build the component map for a catalog: pick a subset of core components (or
38
+ * all), merge in the catalog's own components, and apply per-component
39
+ * description overrides. Descriptions feed both `defineCatalog(...).prompt()`
40
+ * and `.jsonSchema()`, so this controls what an agent sees for the catalog.
41
+ *
42
+ * Overrides are applied immutably — the shared `baseComponents` definitions
43
+ * (also used by the core catalog/registry) are never mutated.
44
+ */
45
+ export declare function composeCatalogComponents(opts?: ComposeCatalogComponentsOptions): Record<string, ComponentCatalogDef>;
46
+ export interface ScopedCatalogDef {
47
+ prefix: string;
48
+ components?: Record<string, ComponentCatalogDef>;
49
+ actions?: Record<string, ActionCatalogDef>;
50
+ /** Core components to include: an array of names, or "all" (default). */
51
+ core?: CoreComponentName[] | "all";
52
+ /** Per-component description overrides/appends — applies to core and own components. */
53
+ overrides?: Partial<Record<string, DescriptionOverride>>;
54
+ /** Appended to base rules in generated prompt */
55
+ rules?: string;
56
+ }
57
+ export interface MergedCatalog {
58
+ prefix: string;
59
+ catalog: Catalog;
60
+ prompt(baseRules: string): string;
61
+ jsonSchema(): object;
62
+ }
63
+ export declare function createScopedCatalog(def: ScopedCatalogDef): ScopedCatalogDef;
64
+ export declare function mergeCatalogs(scopedDef: ScopedCatalogDef): MergedCatalog;
package/dist/styles.css CHANGED
@@ -1,2 +1,2 @@
1
- ._128xbc80{display:inline-block;position:relative}.zf6dad0{width:100%}._116vl6m0{--_116vl6m1:1rem;--_116vl6m2:640px;--_116vl6m3:768px;--_116vl6m4:1024px;--_116vl6m5:1280px;--_116vl6m6:1536px;--_116vl6m7:#fff;--_116vl6m8:#fcfcfc;--_116vl6m9:#f9f9f9;--_116vl6ma:#f6f6f6;--_116vl6mb:#f1f1f1;--_116vl6mc:#eee;--_116vl6md:#ededed;--_116vl6me:#e8e8e8;--_116vl6mf:#e6e6e6;--_116vl6mg:#e5e5e5;--_116vl6mh:#dfdfdf;--_116vl6mi:#c4c4c4;--_116vl6mj:#a8a8a8;--_116vl6mk:#8b8b8b;--_116vl6ml:#707070;--_116vl6mm:#545454;--_116vl6mn:#404040;--_116vl6mo:#292929;--_116vl6mp:#1a1a1a;--_116vl6mq:#040404;--_116vl6mr:#fafcff;--_116vl6ms:#e6f1ff;--_116vl6mt:#cce3ff;--_116vl6mu:#9ecaff;--_116vl6mv:#70b1ff;--_116vl6mw:#3d95ff;--_116vl6mx:#1a82ff;--_116vl6my:#0265dc;--_116vl6mz:#1d4ca3;--_116vl6m10:#003472;--_116vl6m11:#002047;--_116vl6m12:#000b19;--_116vl6m13:#fffbfa;--_116vl6m14:#ffe9e5;--_116vl6m15:#ffd4cc;--_116vl6m16:#ffac9e;--_116vl6m17:#ff8670;--_116vl6m18:#ff5b3d;--_116vl6m19:#ff3914;--_116vl6m1a:#d62100;--_116vl6m1b:#a31900;--_116vl6m1c:#731100;--_116vl6m1d:#470b00;--_116vl6m1e:#0a0200;--_116vl6m1f:#f5fefb;--_116vl6m1g:#d3fded;--_116vl6m1h:#b8f5dd;--_116vl6m1i:#70ebbc;--_116vl6m1j:#3be3a2;--_116vl6m1k:#0bd085;--_116vl6m1l:#0aa86c;--_116vl6m1m:#077e50;--_116vl6m1n:#05613e;--_116vl6m1o:#04482e;--_116vl6m1p:#022c1c;--_116vl6m1q:#010f0a;--_116vl6m1r:#f7f9fa;--_116vl6m1s:#e9eef2;--_116vl6m1t:#dce4ea;--_116vl6m1u:#b9c9d5;--_116vl6m1v:#99b1c2;--_116vl6m1w:#7899b0;--_116vl6m1x:#55768e;--_116vl6m1y:#445e71;--_116vl6m1z:#344856;--_116vl6m20:#24333d;--_116vl6m21:#192329;--_116vl6m22:#090d10;--_116vl6m23:#fff8f1;--_116vl6m24:#ffecd6;--_116vl6m25:#ffddb7;--_116vl6m26:#ffc07a;--_116vl6m27:#ffa037;--_116vl6m28:#e37700;--_116vl6m29:#c16500;--_116vl6m2a:#964f00;--_116vl6m2b:#693700;--_116vl6m2c:#4d2800;--_116vl6m2d:#2e1900;--_116vl6m2e:#140b00;--_116vl6m2f:#f2fcfe;--_116vl6m2g:#daf7fc;--_116vl6m2h:#c2f2fb;--_116vl6m2i:#7fe5f6;--_116vl6m2j:#45d8f2;--_116vl6m2k:#10c2e2;--_116vl6m2l:#0da2bd;--_116vl6m2m:#0a7a8e;--_116vl6m2n:#075563;--_116vl6m2o:#05424d;--_116vl6m2p:#032025;--_116vl6m2q:#011013;--_116vl6m2r:#fcfbfe;--_116vl6m2s:#eeecf9;--_116vl6m2t:#e7e4f6;--_116vl6m2u:#c9c2eb;--_116vl6m2v:#b1a7e2;--_116vl6m2w:#9688d7;--_116vl6m2x:#76c;--_116vl6m2y:#5c47c2;--_116vl6m2z:#3f2f8e;--_116vl6m30:#2e2267;--_116vl6m31:#191338;--_116vl6m32:#100c25;--_116vl6m33:#fefbfd;--_116vl6m34:#fae6f3;--_116vl6m35:#f8ddef;--_116vl6m36:#efb3db;--_116vl6m37:#e892cc;--_116vl6m38:#eb61be;--_116vl6m39:#d741a6;--_116vl6m3a:#be288d;--_116vl6m3b:#831b60;--_116vl6m3c:#591342;--_116vl6m3d:#26081c;--_116vl6m3e:#15040f;--_116vl6m3f:#fffbfa;--_116vl6m3g:#fff7f5;--_116vl6m3h:#fff4f0;--_116vl6m3i:#ffe4db;--_116vl6m3j:#ffd1c2;--_116vl6m3k:#ffaf94;--_116vl6m3l:#ffa78a;--_116vl6m3m:#d88569;--_116vl6m3n:#d27151;--_116vl6m3o:#823a21;--_116vl6m3p:#411d11;--_116vl6m3q:#200e08;--_116vl6m3r:#fdfdfc;--_116vl6m3s:#eaf0db;--_116vl6m3t:#e3eccf;--_116vl6m3u:#c3d595;--_116vl6m3v:#a8c26a;--_116vl6m3w:#8aad39;--_116vl6m3x:#6b9013;--_116vl6m3y:#56750b;--_116vl6m3z:#3a5007;--_116vl6m40:#2a3a03;--_116vl6m41:#111801;--_116vl6m42:#0a0f01;--_116vl6m43:#fffef8;--_116vl6m44:#fffcf0;--_116vl6m45:#fff9e2;--_116vl6m46:#fff0b1;--_116vl6m47:#ffe278;--_116vl6m48:#ffc902;--_116vl6m49:#ffbe00;--_116vl6m4a:#de9500;--_116vl6m4b:#c98600;--_116vl6m4c:#704b00;--_116vl6m4d:#382500;--_116vl6m4e:#191100;--_116vl6m4f:0s;--_116vl6m4g:.1s;--_116vl6m4h:.2s;--_116vl6m4i:.3s;--_116vl6m4j:.4s;--_116vl6m4k:Satoshi, system-ui, sans-serif;--_116vl6m4l:Inter, sans-serif;--_116vl6m4m:100;--_116vl6m4n:200;--_116vl6m4o:300;--_116vl6m4p:400;--_116vl6m4q:500;--_116vl6m4r:600;--_116vl6m4s:700;--_116vl6m4t:800;--_116vl6m4u:900;--_116vl6m4v:1;--_116vl6m4w:1.25;--_116vl6m4x:1.5;--_116vl6m4y:1.75;--_116vl6m4z:.625rem;--_116vl6m50:.75rem;--_116vl6m51:.875rem;--_116vl6m52:1rem;--_116vl6m53:1.125rem;--_116vl6m54:1.25rem;--_116vl6m55:1.5rem;--_116vl6m56:2rem;--_116vl6m57:0;--_116vl6m58:.25rem;--_116vl6m59:.5rem;--_116vl6m5a:.75rem;--_116vl6m5b:1rem;--_116vl6m5c:1.25rem;--_116vl6m5d:1.5rem;--_116vl6m5e:1.75rem;--_116vl6m5f:2rem;--_116vl6m5g:.1;--_116vl6m5h:.2;--_116vl6m5i:.3;--_116vl6m5j:.4;--_116vl6m5k:.5;--_116vl6m5l:.6;--_116vl6m5m:.7;--_116vl6m5n:.8;--_116vl6m5o:.9;--_116vl6m5p:.95;--_116vl6m5q:1;--_116vl6m5r:0;--_116vl6m5s:.0625rem;--_116vl6m5t:.125rem;--_116vl6m5u:.1875rem;--_116vl6m5v:.25rem;--_116vl6m5w:.5rem;--_116vl6m5x:.75rem;--_116vl6m5y:1rem;--_116vl6m5z:1.25rem;--_116vl6m60:1.5rem;--_116vl6m61:1.75rem;--_116vl6m62:2rem;--_116vl6m63:2.25rem;--_116vl6m64:2.5rem;--_116vl6m65:2.75rem;--_116vl6m66:3rem;--_116vl6m67:3.25rem;--_116vl6m68:3.5rem}._166ain02w{--_166ain00:var(--_116vl6m57);--_166ain01:var(--_116vl6m5a);--_166ain02:var(--_116vl6m5b);--_166ain03:var(--_116vl6m5d);--_166ain04:9999px;--_166ain05:50%;--_166ain06:var(--lightningcss-light,color-mix(in srgb, var(--_116vl6md), transparent 40%))var(--lightningcss-dark,color-mix(in srgb, var(--_116vl6md), transparent 40%));--_166ain07:var(--lightningcss-light,var(--_116vl6mo))var(--lightningcss-dark,var(--_116vl6mo));--_166ain08:var(--lightningcss-light,var(--_116vl6mn))var(--lightningcss-dark,var(--_116vl6mn));--_166ain09:var(--lightningcss-light,var(--_116vl6mm))var(--lightningcss-dark,var(--_116vl6mm));--_166ain0a:var(--_166ain06);--_166ain0b:var(--lightningcss-light,var(--_116vl6mc))var(--lightningcss-dark,var(--_116vl6mc));--_166ain0c:var(--lightningcss-light,var(--_116vl6me))var(--lightningcss-dark,var(--_116vl6me));--_166ain0d:var(--lightningcss-light,var(--_116vl6mg))var(--lightningcss-dark,var(--_116vl6mg));--_166ain0e:var(--_166ain06);--_166ain0f:var(--lightningcss-light,var(--_116vl6m7))var(--lightningcss-dark,var(--_116vl6m7));--_166ain0g:var(--lightningcss-light,var(--_116vl6m9))var(--lightningcss-dark,var(--_116vl6m9));--_166ain0h:var(--lightningcss-light,var(--_116vl6mb))var(--lightningcss-dark,var(--_116vl6mb));--_166ain0i:var(--_166ain06);--_166ain0j:#0000;--_166ain0k:var(--lightningcss-light,color-mix(in srgb, var(--_116vl6mk), transparent 92%))var(--lightningcss-dark,color-mix(in srgb, var(--_116vl6mk), transparent 92%));--_166ain0l:var(--lightningcss-light,color-mix(in srgb, var(--_116vl6mk), transparent 84%))var(--lightningcss-dark,color-mix(in srgb, var(--_116vl6mk), transparent 84%));--_166ain0m:var(--_166ain06);--_166ain0n:var(--lightningcss-light,var(--_116vl6m1a))var(--lightningcss-dark,var(--_116vl6m1a));--_166ain0o:var(--lightningcss-light,var(--_116vl6m1b))var(--lightningcss-dark,var(--_116vl6m1b));--_166ain0p:var(--lightningcss-light,var(--_116vl6m1c))var(--lightningcss-dark,var(--_116vl6m1c));--_166ain0q:var(--_166ain06);--_166ain0r:var(--lightningcss-light,var(--_116vl6ms))var(--lightningcss-dark,var(--_116vl6ms));--_166ain0s:var(--lightningcss-light,var(--_116vl6mt))var(--lightningcss-dark,var(--_116vl6mt));--_166ain0t:var(--lightningcss-light,var(--_116vl6mu))var(--lightningcss-dark,var(--_116vl6mu));--_166ain0u:var(--lightningcss-light,var(--_116vl6m1g))var(--lightningcss-dark,var(--_116vl6m1g));--_166ain0v:var(--lightningcss-light,var(--_116vl6ma))var(--lightningcss-dark,var(--_116vl6ma));--_166ain0w:var(--lightningcss-light,var(--_116vl6mh))var(--lightningcss-dark,var(--_116vl6mh));--_166ain0x:var(--lightningcss-light,var(--_116vl6my))var(--lightningcss-dark,var(--_116vl6my));--_166ain0y:var(--lightningcss-light,var(--_116vl6mn))var(--lightningcss-dark,var(--_116vl6mn));--_166ain0z:var(--_116vl6m5u);--_166ain010:var(--_116vl6m5t);--_166ain011:var(--_166ain0x);--_166ain012:var(--lightningcss-light,var(--_116vl6ml))var(--lightningcss-dark,var(--_116vl6ml));--_166ain013:var(--lightningcss-light,var(--_116vl6mo))var(--lightningcss-dark,var(--_116vl6mo));--_166ain014:var(--lightningcss-light,var(--_116vl6my))var(--lightningcss-dark,var(--_116vl6my));--_166ain015:var(--lightningcss-light,var(--_116vl6m1a))var(--lightningcss-dark,var(--_116vl6m1a));--_166ain016:var(--lightningcss-light,var(--_116vl6m7))var(--lightningcss-dark,var(--_116vl6m7));--_166ain017:var(--lightningcss-light,var(--_116vl6m7))var(--lightningcss-dark,var(--_116vl6m7));--_166ain018:var(--lightningcss-light,var(--_116vl6mo))var(--lightningcss-dark,var(--_116vl6mo));--_166ain019:var(--lightningcss-light,var(--_116vl6mo))var(--lightningcss-dark,var(--_116vl6mo));--_166ain01a:var(--lightningcss-light,var(--_116vl6my))var(--lightningcss-dark,var(--_116vl6my));--_166ain01b:var(--lightningcss-light,var(--_116vl6mz))var(--lightningcss-dark,var(--_116vl6mz));--_166ain01c:var(--lightningcss-light,var(--_116vl6m10))var(--lightningcss-dark,var(--_116vl6m10));--_166ain01d:var(--lightningcss-light,var(--_116vl6mo))var(--lightningcss-dark,var(--_116vl6mo));--_166ain01e:var(--lightningcss-light,var(--_116vl6m7))var(--lightningcss-dark,var(--_116vl6m7));--_166ain01f:var(--lightningcss-light,var(--_116vl6mo))var(--lightningcss-dark,var(--_116vl6mo));--_166ain01g:var(--_116vl6m4f);--_166ain01h:var(--_116vl6m4g);--_166ain01i:var(--_116vl6m4h);--_166ain01j:var(--_116vl6m4i);--_166ain01k:var(--_116vl6m4j);--_166ain01l:var(--_116vl6m5p);--_166ain01m:var(--_116vl6m5o);--_166ain01n:var(--_116vl6m5n);--_166ain01o:var(--_116vl6m5l);--_166ain01p:var(--_116vl6m5k);--_166ain01q:var(--_116vl6m5p);--_166ain01r:cubic-bezier(0, 0, .2, 1);--_166ain01s:cubic-bezier(.4, 0, 1, 1);--_166ain01t:cubic-bezier(.4, 0, .2, 1);--_166ain01u:cubic-bezier(0, 0, 1, 1);--_166ain01v:cubic-bezier(.34, 1.56, .64, 1);--_166ain01w:.6;--_166ain01x:var(--lightningcss-light,color-mix(in srgb, var(--_116vl6mo), transparent 40%))var(--lightningcss-dark,color-mix(in srgb, var(--_116vl6mo), transparent 40%));--_166ain01y:var(--_116vl6m5r) var(--_116vl6m5s) var(--_116vl6m5w) var(--_116vl6m5r) #0000;--_166ain01z:var(--_116vl6m5r) var(--_116vl6m5s) var(--_116vl6m5w) var(--_116vl6m5r) color-mix(in srgb, var(--_116vl6mo), transparent 92%);--_166ain020:var(--_116vl6m5r) var(--_116vl6m5r) var(--_116vl6m5y) var(--_116vl6m5r) color-mix(in srgb, var(--_116vl6mo), transparent 96%);--_166ain021:var(--_116vl6m5r) var(--_116vl6m5r) var(--_116vl6m5y) var(--_116vl6m5r) color-mix(in srgb, var(--_116vl6mo), transparent 92%);--_166ain022:var(--_116vl6m5r) var(--_116vl6m5s) var(--_116vl6m5w) var(--_116vl6m5r) color-mix(in srgb, var(--_116vl6mo), transparent 88%);--_166ain023:var(--_116vl6m5r) var(--_116vl6m5s) var(--_116vl6m5w) var(--_116vl6m5r) color-mix(in srgb, var(--_116vl6mo), transparent 80%);--_166ain024:var(--_116vl6m5r) var(--_116vl6m5s) var(--_116vl6m5w) var(--_116vl6m5r) color-mix(in srgb, var(--_116vl6mo), transparent 76%);--_166ain025:var(--_116vl6m5r) var(--_116vl6m5s) var(--_116vl6m5w) var(--_116vl6m5r) color-mix(in srgb, var(--_116vl6mo), transparent 70%);--_166ain026:var(--_116vl6m5v);--_166ain027:var(--_116vl6m5w);--_166ain028:var(--_116vl6m5x);--_166ain029:var(--_116vl6m5y);--_166ain02a:var(--_116vl6m60);--_166ain02b:var(--_116vl6m62);--_166ain02c:var(--_116vl6m64);--_166ain02d:var(--_116vl6m66);--_166ain02e:var(--_116vl6m68);--_166ain02f:var(--_116vl6m4k);--_166ain02g:var(--_116vl6m4l);--_166ain02h:var(--_116vl6m4z);--_166ain02i:var(--_116vl6m50);--_166ain02j:var(--_116vl6m51);--_166ain02k:var(--_116vl6m52);--_166ain02l:var(--_116vl6m53);--_166ain02m:var(--_116vl6m54);--_166ain02n:var(--_116vl6m55);--_166ain02o:var(--_116vl6m56);--_166ain02p:var(--_116vl6m4p);--_166ain02q:var(--_116vl6m4q);--_166ain02r:var(--_116vl6m4r);--_166ain02s:var(--_116vl6m4s);--_166ain02t:var(--_116vl6m4v);--_166ain02u:var(--_116vl6m4w);--_166ain02v:var(--_116vl6m4x)}.vyfct876{--vyfct80:var(--_166ain0f);--vyfct81:var(--_166ain0w);--vyfct82:var(--_166ain03);--vyfct83:var(--_166ain022);--vyfct84:var(--_166ain029);--vyfct85:var(--_166ain028);--vyfct86:var(--_166ain027);--vyfct87:var(--_166ain012);--vyfct88:var(--_166ain027);--vyfct89:var(--_166ain0b);--vyfct8a:var(--_166ain0c);--vyfct8b:var(--_166ain0d);--vyfct8c:var(--_166ain018);--vyfct8d:var(--_166ain029);--vyfct8e:var(--_166ain02);--vyfct8f:var(--_166ain0y);--vyfct8g:var(--_166ain0y);--vyfct8h:var(--_166ain016);--vyfct8i:var(--_166ain013);--vyfct8j:var(--_166ain027);--vyfct8k:var(--_166ain015);--vyfct8l:var(--_166ain026);--vyfct8m:var(--_166ain0f);--vyfct8n:var(--_166ain0k);--vyfct8o:var(--_166ain0l);--vyfct8p:var(--_166ain013);--vyfct8q:var(--_166ain029);--vyfct8r:var(--_166ain026);--vyfct8s:var(--_166ain0f);--vyfct8t:var(--_166ain019);--vyfct8u:var(--_166ain03);--vyfct8v:var(--_166ain024);--vyfct8w:var(--_166ain02a);--vyfct8x:var(--_166ain02a);--vyfct8y:var(--_166ain027);--vyfct8z:var(--_166ain026);--vyfct810:var(--_166ain02b);--vyfct811:var(--_166ain012);--vyfct812:var(--_166ain028);--vyfct813:var(--_166ain027);--vyfct814:var(--_116vl6m63);--vyfct815:var(--_116vl6m5v);--vyfct816:var(--_166ain04);--vyfct817:var(--_116vl6mk);--vyfct818:var(--_166ain011);--vyfct819:var(--_166ain0z);--vyfct81a:var(--_166ain010);--vyfct81b:var(--_166ain01i);--vyfct81c:var(--_166ain01t);--vyfct81d:var(--_166ain07);--vyfct81e:var(--_166ain08);--vyfct81f:var(--_166ain09);--vyfct81g:var(--_166ain06);--vyfct81h:var(--_166ain017);--vyfct81i:var(--_166ain01f);--vyfct81j:var(--_116vl6m5r);--vyfct81k:var(--_166ain022);--vyfct81l:var(--_166ain022);--vyfct81m:var(--_166ain0f);--vyfct81n:var(--_166ain0g);--vyfct81o:var(--_166ain0h);--vyfct81p:var(--_166ain06);--vyfct81q:var(--_166ain019);--vyfct81r:var(--_166ain01f);--vyfct81s:var(--_166ain0v);--vyfct81t:var(--_116vl6m5s);--vyfct81u:var(--_166ain022);--vyfct81v:var(--_166ain022);--vyfct81w:var(--_166ain0j);--vyfct81x:var(--_166ain0k);--vyfct81y:var(--_166ain0l);--vyfct81z:var(--_166ain06);--vyfct820:var(--_166ain01d);--vyfct821:var(--_166ain01f);--vyfct822:var(--_116vl6m5r);--vyfct823:var(--_166ain01y);--vyfct824:var(--_166ain022);--vyfct825:var(--_166ain0n);--vyfct826:var(--_166ain0o);--vyfct827:var(--_166ain0p);--vyfct828:var(--_166ain06);--vyfct829:var(--_166ain01e);--vyfct82a:var(--_166ain01f);--vyfct82b:var(--_116vl6m5r);--vyfct82c:var(--_166ain022);--vyfct82d:var(--_166ain022);--vyfct82e:var(--_166ain02g);--vyfct82f:var(--_166ain02k);--vyfct82g:var(--_166ain02p);--vyfct82h:var(--_166ain02v);--vyfct82i:var(--_166ain027);--vyfct82j:var(--_166ain029);--vyfct82k:var(--_166ain029);--vyfct82l:var(--_166ain028);--vyfct82m:var(--_166ain029);--vyfct82n:var(--_166ain029);--vyfct82o:var(--_166ain028);--vyfct82p:var(--_166ain028);--vyfct82q:var(--_166ain027);--vyfct82r:var(--_166ain026);--vyfct82s:var(--_166ain028);--vyfct82t:var(--_166ain027);--vyfct82u:var(--_166ain026);--vyfct82v:var(--_166ain028);--vyfct82w:var(--_166ain027);--vyfct82x:var(--_166ain027);--vyfct82y:var(--_166ain02);--vyfct82z:var(--_166ain02);--vyfct830:var(--_166ain01);--vyfct831:var(--_166ain011);--vyfct832:var(--_166ain0z);--vyfct833:var(--_166ain010);--vyfct834:var(--_166ain0f);--vyfct835:var(--_166ain0g);--vyfct836:var(--_166ain02);--vyfct837:var(--_166ain020);--vyfct838:var(--_166ain021);--vyfct839:var(--_166ain028);--vyfct83a:var(--_166ain029);--vyfct83b:var(--_166ain02a);--vyfct83c:var(--_166ain011);--vyfct83d:var(--_166ain0z);--vyfct83e:var(--_166ain010);--vyfct83f:var(--_166ain0b);--vyfct83g:var(--_166ain0r);--vyfct83h:var(--_166ain013);--vyfct83i:var(--_166ain014);--vyfct83j:var(--_166ain02g);--vyfct83k:var(--_166ain02j);--vyfct83l:var(--_166ain02p);--vyfct83m:var(--_166ain02v);--vyfct83n:var(--_166ain026);--vyfct83o:var(--_166ain027);--vyfct83p:var(--_166ain01);--vyfct83q:var(--_166ain011);--vyfct83r:var(--_166ain0z);--vyfct83s:var(--_166ain010);--vyfct83t:var(--_166ain02a);--vyfct83u:var(--_166ain0f);--vyfct83v:var(--_166ain019);--vyfct83w:var(--_166ain0v);--vyfct83x:var(--_116vl6m5s);--vyfct83y:var(--_166ain03);--vyfct83z:var(--_166ain024);--vyfct840:var(--_166ain02a);--vyfct841:var(--_166ain02a);--vyfct842:var(--_166ain027);--vyfct843:var(--_166ain028);--vyfct844:var(--_166ain011);--vyfct845:var(--_166ain0z);--vyfct846:var(--_166ain010);--vyfct847:var(--_166ain01i);--vyfct848:var(--_166ain01t);--vyfct849:var(--_116vl6m5x);--vyfct84a:var(--_116vl6m5y);--vyfct84b:var(--_116vl6m60);--vyfct84c:var(--_116vl6m62);--vyfct84d:var(--_166ain013);--vyfct84e:var(--_166ain014);--vyfct84f:var(--_166ain01);--vyfct84g:var(--_166ain026);--vyfct84h:var(--_166ain0f);--vyfct84i:var(--_166ain02);--vyfct84j:var(--_166ain024);--vyfct84k:var(--_166ain026);--vyfct84l:var(--_166ain027);--vyfct84m:var(--_166ain0j);--vyfct84n:var(--_166ain0k);--vyfct84o:var(--_166ain0l);--vyfct84p:var(--_166ain01d);--vyfct84q:var(--_166ain0r);--vyfct84r:var(--_166ain0s);--vyfct84s:var(--_166ain0t);--vyfct84t:var(--_166ain01a);--vyfct84u:var(--_166ain01b);--vyfct84v:var(--_166ain01c);--vyfct84w:var(--_166ain027);--vyfct84x:var(--_166ain01);--vyfct84y:var(--_166ain029);--vyfct84z:var(--_166ain028);--vyfct850:var(--_166ain01w);--vyfct851:var(--_166ain011);--vyfct852:var(--_166ain0z);--vyfct853:var(--_166ain027);--vyfct854:var(--_166ain026);--vyfct855:var(--_166ain012);--vyfct856:var(--_166ain0f);--vyfct857:var(--_166ain0v);--vyfct858:var(--_166ain03);--vyfct859:var(--_166ain022);--vyfct85a:var(--_166ain027);--vyfct85b:var(--_166ain029);--vyfct85c:var(--_166ain026);--vyfct85d:var(--_166ain0b);--vyfct85e:var(--_166ain0w);--vyfct85f:var(--_166ain01);--vyfct85g:var(--_166ain027);--vyfct85h:var(--_166ain012);--vyfct85i:var(--_166ain012);--vyfct85j:var(--_166ain027);--vyfct85k:var(--_166ain026);--vyfct85l:var(--_166ain015);--vyfct85m:var(--_166ain02f);--vyfct85n:var(--_166ain02k);--vyfct85o:var(--_166ain02q);--vyfct85p:var(--_166ain02u);--vyfct85q:var(--_166ain02f);--vyfct85r:var(--_166ain02m);--vyfct85s:var(--_166ain02q);--vyfct85t:var(--_166ain02u);--vyfct85u:var(--_166ain02f);--vyfct85v:var(--_166ain02n);--vyfct85w:var(--_166ain02q);--vyfct85x:var(--_166ain02u);--vyfct85y:var(--_166ain02f);--vyfct85z:var(--_166ain02o);--vyfct860:var(--_166ain02q);--vyfct861:var(--_166ain02u);--vyfct862:var(--_166ain02g);--vyfct863:var(--_166ain02i);--vyfct864:var(--_166ain02p);--vyfct865:var(--_166ain02v);--vyfct866:var(--_166ain02g);--vyfct867:var(--_166ain02j);--vyfct868:var(--_166ain02p);--vyfct869:var(--_166ain02v);--vyfct86a:var(--_166ain02g);--vyfct86b:var(--_166ain02k);--vyfct86c:var(--_166ain02p);--vyfct86d:var(--_166ain02v);--vyfct86e:var(--_166ain02g);--vyfct86f:var(--_166ain02l);--vyfct86g:var(--_166ain02p);--vyfct86h:var(--_166ain02v);--vyfct86i:var(--_166ain02g);--vyfct86j:var(--_166ain02h);--vyfct86k:var(--_166ain02s);--vyfct86l:var(--_166ain02u);--vyfct86m:var(--_166ain017);--vyfct86n:var(--_166ain07);--vyfct86o:var(--_166ain01);--vyfct86p:var(--_166ain027);--vyfct86q:var(--_166ain026);--vyfct86r:var(--_166ain02g);--vyfct86s:var(--_166ain02j);--vyfct86t:var(--_166ain02p);--vyfct86u:var(--_166ain02v);--vyfct86v:var(--_166ain027);--vyfct86w:var(--_166ain02a);--vyfct86x:var(--_166ain026);--vyfct86y:var(--_166ain015);--vyfct86z:var(--_166ain027);--vyfct870:var(--_166ain0b);--vyfct871:var(--_166ain018);--vyfct872:var(--_166ain029);--vyfct873:var(--_166ain02a);--vyfct874:var(--_166ain03);--vyfct875:var(--_166ain00)}._1v76lkh0{border-width:var(--_116vl6m5s);border-style:solid;border-color:var(--_166ain0w);border-radius:var(--_166ain01);display:grid;overflow:hidden}._1v76lkh1{padding-block:var(--_116vl6m5w);padding-inline:var(--_116vl6m5x)}._1v76lkh2{border-bottom-width:var(--_116vl6m5s);border-bottom-style:solid;border-bottom-color:var(--_166ain0w)}._1le8ba61{pointer-events:none;opacity:var(--_166ain01w)}.cy2dbi0{font-weight:var(--_116vl6m4r);font-size:13px}.cy2dbi1{color:var(--_116vl6m1m)}.cy2dbi2{color:var(--_116vl6m1a)}.cy2dbi3{color:var(--_166ain012)}
1
+ ._7hazmf0{width:100%}._7hazmf1{gap:var(--gpbfm95y);flex-direction:column;display:flex;overflow:visible}._7hazmf2{flex-direction:column;width:100%;display:flex}._7hazmf3{transition:grid-template-rows var(--m8lxqj1i) var(--m8lxqj1t), margin-top var(--m8lxqj1i) var(--m8lxqj1t), opacity var(--m8lxqj1i) var(--m8lxqj1t);display:grid;overflow:visible}._7hazmf4{margin-top:var(--gpbfm95y);opacity:1;grid-template-rows:1fr}._7hazmf5{opacity:0;grid-template-rows:0fr;margin-top:0}._7hazmf6{min-height:0;transition:padding var(--m8lxqj1i) var(--m8lxqj1t), margin var(--m8lxqj1i) var(--m8lxqj1t);overflow:hidden}._7hazmf7{padding:var(--gpbfm95y);margin:calc(-1 * var(--gpbfm95y))}._7hazmf8{margin:0;padding:0}._7hazmf9{justify-content:space-between;align-items:center;gap:var(--gpbfm95w);cursor:pointer;width:100%;color:inherit;font:inherit;text-align:left;background:0 0;border:none;margin:0;padding:0;display:flex}._7hazmfa{align-items:center;gap:var(--gpbfm95w);flex:1;min-width:0;display:flex}._7hazmfb{flex-shrink:0;align-items:center;min-width:0;display:inline-flex}._7hazmfc{transition:transform var(--m8lxqj1i) var(--m8lxqj1t);transform-origin:50%;flex-shrink:0}._7hazmfd{transform:rotate(180deg)}@media (prefers-reduced-motion:reduce){._7hazmf3,._7hazmf6,._7hazmfc{transition:none}}._1b4fiav0{width:100%;overflow-x:auto}._1b4fiav1{font-variant-numeric:tabular-nums;font-weight:500}._1afcqze0{gap:var(--gpbfm95w);flex-direction:column;width:100%;display:flex}._1afcqze1{width:100%}._1afcqze2{align-items:center;gap:var(--gpbfm95x);min-width:0;display:flex}._1afcqze3{width:var(--gpbfm962);height:var(--gpbfm962);background-color:var(--m8lxqjb);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}._1afcqze4{gap:var(--gpbfm95x);flex-direction:column;width:100%;display:flex}._1afcqze5{justify-content:center;align-items:center;width:100%;display:flex}._1afcqze6{object-fit:contain;border-radius:var(--m8lxqj1);max-width:100%;max-height:65vh}._1afcqze7{width:100%;min-height:var(--gpbfm968);justify-content:center;align-items:center;display:flex}._1afcqze8{text-align:left;width:100%}.blgld0{flex-direction:column;width:100%;display:flex}.blgld1{color:var(--m8lxqj12)}.blgld2{padding:var(--gpbfm95x)}.blgld3{column-gap:var(--gpbfm95x);row-gap:var(--gpbfm95v);grid-template-columns:minmax(0,1fr) max-content;align-items:start;width:100%;display:grid}.blgld4{gap:var(--gpbfm95v);flex-direction:column;min-width:0;display:flex}.blgld5{align-items:center;gap:var(--gpbfm95w);min-width:0;display:flex}.blgld6{width:var(--gpbfm95s);background-color:var(--m8lxqjw);flex-shrink:0;align-self:stretch}.blgld7{align-items:flex-end;gap:var(--gpbfm95v);flex-direction:column;flex-shrink:0;display:flex}._16tl57e0{gap:var(--gpbfm95y);width:100%;display:grid}._16tl57e1{grid-template-columns:repeat(3,minmax(0,1fr))}._16tl57e2{grid-template-columns:repeat(4,minmax(0,1fr))}._16tl57e3{color:var(--m8lxqj12)}._16tl57e4{gap:var(--gpbfm95v);flex-direction:column;min-width:0;display:flex}._2pn4ri0{isolation:isolate;width:100%;position:relative;overflow:visible}._4l9lye0{flex-direction:column;width:100%;display:flex}._4l9lye1{margin-bottom:var(--gpbfm95x)}._4l9lye2{padding-block:var(--gpbfm95w);gap:var(--gpbfm95v);flex-direction:column;display:flex}._4l9lye2:first-child{padding-top:0}._4l9lye3{justify-content:space-between;align-items:baseline;gap:var(--gpbfm95w);display:flex}._4l9lye4{color:var(--m8lxqj12)}._1ysu3qn0{gap:var(--gpbfm95w);flex-direction:column;display:flex}._1ysu3qn1{align-items:center;gap:var(--gpbfm95w);display:flex}._19nljxi0{gap:var(--gpbfm95x);flex-direction:column;max-width:800px;margin:0 auto;display:flex}._5kl5rv0{flex-direction:column;width:100%;display:flex}._5kl5rv1{background-color:var(--gpbfm9a);border-radius:var(--m8lxqj2);padding:var(--gpbfm95x);flex-direction:column;display:flex}._5kl5rv1:not(:first-child){margin-top:var(--gpbfm95x)}._5kl5rv2{margin-bottom:var(--gpbfm95w)}._5kl5rv3{color:var(--m8lxqj12)}._5kl5rv4{align-content:start;justify-items:start;width:100%;display:grid}._5kl5rv5{width:100%;margin-top:var(--gpbfm95x);margin-bottom:var(--gpbfm95x);height:var(--gpbfm95s);background-color:var(--m8lxqjw);grid-column:1/-1}._5kl5rv6{align-items:flex-start;gap:var(--gpbfm95v);flex-direction:column;justify-self:start;min-width:0;display:flex}.zf6dad0{width:100%}._1v76lkh0{border-width:var(--gpbfm95s);border-style:solid;border-color:var(--m8lxqjw);border-radius:var(--m8lxqj1);display:grid;overflow:hidden}._1v76lkh1{padding-block:var(--gpbfm95w);padding-inline:var(--gpbfm95x)}._1v76lkh2{border-bottom-width:var(--gpbfm95s);border-bottom-style:solid;border-bottom-color:var(--m8lxqjw)}._1le8ba61{pointer-events:none;opacity:var(--m8lxqj1w)}.cy2dbi0{font-weight:var(--gpbfm94r);font-size:13px}.cy2dbi1{color:var(--gpbfm91m)}.cy2dbi2{color:var(--gpbfm91a)}.cy2dbi3{color:var(--m8lxqj12)}.nilaa0{padding-top:var(--gpbfm95w)}
2
2
  /*$vite$:1*/
@@ -0,0 +1 @@
1
+ export {};
package/dist/types.d.ts CHANGED
@@ -1,7 +1,10 @@
1
1
  import { z } from 'zod';
2
- import { ComponentCatalogDef } from './team-catalog';
3
- export type RendererContext = "chat" | "panel" | "app";
4
- export declare const ALL_RENDERERS: RendererContext[];
2
+ import { ComponentCatalogDef } from './scoped-catalog';
3
+ /**
4
+ * Surfaces a catalog component can render on. `"all"` is a wildcard that matches
5
+ * every surface; `"panel"` and `"app"` are reserved for future use.
6
+ */
7
+ export type RendererContext = "all" | "chat" | "panel" | "app" | "context";
5
8
  export interface CatalogEntry {
6
9
  name: string;
7
10
  catalog: ComponentCatalogDef;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@servicetitan/json-render-react",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "Generative UI catalog, registry, and renderers for json-render",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -32,6 +32,7 @@
32
32
  "@amcharts/amcharts5": "^5.0.0",
33
33
  "@servicetitan/anvil2": ">=1.0.0",
34
34
  "@servicetitan/anvil2-ext-charts": "0.1.7",
35
+ "@servicetitan/carto-react-kit": ">=0.3.0",
35
36
  "react": ">=18 <20",
36
37
  "react-dom": ">=18 <20"
37
38
  },
@@ -39,7 +40,7 @@
39
40
  "@amcharts/amcharts5": "^5.0.0",
40
41
  "@biomejs/biome": "^2.4.15",
41
42
  "@chromatic-com/storybook": "^5.2.1",
42
- "@servicetitan/anvil2": "^3.0.6",
43
+ "@servicetitan/anvil2": "^3.3.0",
43
44
  "@servicetitan/anvil2-ext-charts": "0.1.7",
44
45
  "@storybook/addon-a11y": "^10.4.1",
45
46
  "@storybook/addon-docs": "^10.4.1",
@@ -72,6 +73,7 @@
72
73
  "@carto-internal/biome-config": "0.0.0",
73
74
  "@carto-internal/tools": "0.0.0",
74
75
  "@carto-internal/tsconfig": "0.0.0",
76
+ "@servicetitan/carto-react-kit": "0.3.3",
75
77
  "@servicetitan/carto-tokens": "0.2.0"
76
78
  },
77
79
  "scripts": {
@@ -1,12 +0,0 @@
1
- import { z } from 'zod';
2
- export declare const badgeCatalog: {
3
- props: z.ZodObject<{
4
- content: z.ZodOptional<z.ZodString>;
5
- offset: z.ZodOptional<z.ZodObject<{
6
- x: z.ZodOptional<z.ZodString>;
7
- y: z.ZodOptional<z.ZodString>;
8
- }, z.core.$strip>>;
9
- }, z.core.$strip>;
10
- slots: string[];
11
- description: string;
12
- };
@@ -1 +0,0 @@
1
- export declare const badgeAnchor: string;
@@ -1,8 +0,0 @@
1
- import { ReactNode } from 'react';
2
- import { z } from 'zod';
3
- import { badgeCatalog } from './badge.catalog';
4
- export { badgeCatalog };
5
- export declare const BadgeRenderer: ({ props, children, }: {
6
- props: z.infer<typeof badgeCatalog.props>;
7
- children?: ReactNode;
8
- }) => import("react/jsx-runtime").JSX.Element;
@@ -1,4 +0,0 @@
1
- export declare const teams: readonly [{
2
- readonly name: "marketing";
3
- readonly catalog: import('../..').TeamCatalogDef;
4
- }];
@@ -1,26 +0,0 @@
1
- import { Catalog } from '@json-render/core';
2
- import { z } from 'zod';
3
- export interface ComponentCatalogDef {
4
- props: z.ZodType;
5
- slots: string[];
6
- description: string;
7
- }
8
- export interface ActionCatalogDef {
9
- params: z.ZodType;
10
- description: string;
11
- }
12
- export interface TeamCatalogDef {
13
- prefix: string;
14
- components?: Record<string, ComponentCatalogDef>;
15
- actions?: Record<string, ActionCatalogDef>;
16
- /** Appended to base rules in generated prompt */
17
- rules?: string;
18
- }
19
- export interface MergedCatalog {
20
- prefix: string;
21
- catalog: Catalog;
22
- prompt(baseRules: string): string;
23
- jsonSchema(): object;
24
- }
25
- export declare function createTeamCatalog(def: TeamCatalogDef): TeamCatalogDef;
26
- export declare function mergeCatalogs(teamDef: TeamCatalogDef): MergedCatalog;