k3-plugin-api 1.0.8 → 1.2.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.
package/README.md ADDED
@@ -0,0 +1,150 @@
1
+ # k3-plugin-api
2
+
3
+ > Official TypeScript types for the plugin API for the [K3 product configurator](https://k3-konfigurator.de/).
4
+
5
+ [![npm version](https://img.shields.io/npm/v/k3-plugin-api)](https://www.npmjs.com/package/k3-plugin-api)
6
+ [![TypeScript](https://img.shields.io/badge/TypeScript-5.x-blue)](https://www.typescriptlang.org/)
7
+
8
+ ---
9
+
10
+ ## What is K3?
11
+
12
+ [K3](https://k3-konfigurator.de/) is a professional product configurator platform by **ObjectCode GmbH**. It lets companies sell complex, customizable products online — with live price calculation, 3D visualization, AR, and integrations into Shopify, Shopware 6, WooCommerce, and many more shop systems.
13
+
14
+ ## What is this package?
15
+
16
+ `k3-plugin-api` contains the **TypeScript types** required to build K3 plugins — packages that extend the K3 configurator runtime with custom UI components, 3D models, pricing logic, and lifecycle hooks. The package ships zero runtime code; every export is a type, interface, or const enum.
17
+
18
+ ---
19
+
20
+ ## Installation
21
+
22
+ ```sh
23
+ npm install k3-plugin-api
24
+ # or
25
+ pnpm add k3-plugin-api
26
+ ```
27
+
28
+ ---
29
+
30
+ ## Quick Start
31
+
32
+ A K3 plugin exports a `K3PluginDescriptor` object:
33
+
34
+ ```ts
35
+ import type { K3PluginDescriptor } from "k3-plugin-api";
36
+
37
+ const plugin: K3PluginDescriptor = {
38
+ id: "acme.my-plugin", // globally unique, stable identifier
39
+ version: "1.0.0",
40
+
41
+ ui: {
42
+ layout: {
43
+ // wrap the default header with your own component
44
+ header: (Default) => (props) => <MyCustomHeader fallback={Default} {...props} />,
45
+ },
46
+ },
47
+
48
+ logic: {
49
+ config: {
50
+ // attach a custom order code to the configuration before it is persisted
51
+ onSave: (config) => ({ ...config, code: `TEST-${config.code}` }),
52
+ },
53
+ },
54
+ };
55
+
56
+ export default plugin;
57
+ ```
58
+
59
+ ---
60
+
61
+ ## Extension Points
62
+
63
+ K3 plugins can extend three layers of the configurator.
64
+
65
+ ### `ui` — UI Extensions
66
+
67
+ | Property | Description |
68
+ | ------------ | --------------------------------------------------------------------------------------------- |
69
+ | `ui.layout` | Override layout shell components (header, sidebar, footer, …) using Higher-Order Components |
70
+ | `ui.inputs` | Register custom variable visualisations per data type (list, color, number, text, boolean, …) |
71
+ | `ui.dialogs` | Override the order dialog and warning/validation components |
72
+
73
+ ### `viewer` — 3D Viewer Extensions
74
+
75
+ | Property | Description |
76
+ | ------------------------ | ---------------------------------------------------------------- |
77
+ | `viewer.canvas` | Wrap the Three.js canvas element |
78
+ | `viewer.sceneComponents` | Add or replace named React components injected into the 3D scene |
79
+ | `viewer.models` | Register dynamic 3D model types (`DynamicModel`) |
80
+ | `viewer.labels` | Override the label overlay components (desktop and mobile) |
81
+
82
+ ### `logic` — Logic & Lifecycle Hooks
83
+
84
+ | Property | Description |
85
+ | -------------------------------------- | ---------------------------------------------------------------------- |
86
+ | `logic.config.onUpdate` | Transform a `K3Configuration` on every update |
87
+ | `logic.config.onSave` | Transform a configuration before it is persisted |
88
+ | `logic.config.onSaveFiles` | Modify screenshot `Blob` files before they are uploaded |
89
+ | `logic.config.onSaveEvent` | React to a completed save / order action (`K3ConfigurationSavedEvent`) |
90
+ | `logic.camera.onSetCameraList` | Filter or reorder the scene camera list |
91
+ | `logic.camera.onSetScreenshotCameras` | Control which cameras are used for screenshots |
92
+ | `logic.camera.getScreenshotDimensions` | Override the screenshot render resolution |
93
+ | `logic.core.preprocessFullApp` | Transform the raw `K3FullApp` snapshot before the store initialises |
94
+ | `logic.core.onOpenPdf` | Called after a PDF has been generated (receive the `K3SaveResult`) |
95
+ | `logic.core.onExportAR` | Custom AR export — receives scene context, must return a `Blob` |
96
+
97
+ ---
98
+
99
+ ## Custom Variable Visualisations
100
+
101
+ Register a fully custom input component for any variable type:
102
+
103
+ ```ts
104
+ import type { K3PluginDescriptor, VariableVisualisation } from "k3-plugin-api";
105
+
106
+ const mySlider: VariableVisualisation = {
107
+ key: "acme.mySlider", // namespaced key — set on the variable in the K3 admin
108
+ label: "ACME Slider",
109
+ component: MySliderComponent, // React.ComponentType<K3VariableComponentProps>
110
+ };
111
+
112
+ const plugin: K3PluginDescriptor = {
113
+ id: "acme.my-plugin",
114
+ version: "1.0.0",
115
+ ui: {
116
+ inputs: {
117
+ number: [mySlider],
118
+ },
119
+ },
120
+ };
121
+ ```
122
+
123
+ ---
124
+
125
+ ## Key Types
126
+
127
+ | Type | Description |
128
+ | --------------------------- | -------------------------------------------------------------- |
129
+ | `K3PluginDescriptor` | Root descriptor object exported by a plugin |
130
+ | `HOC<P>` | Higher-Order Component: `(Default: FC<P>) => FC<P>` |
131
+ | `VariableVisualisation` | Descriptor for a custom input visualisation |
132
+ | `K3VariableComponentProps` | Props injected into a custom variable renderer |
133
+ | `DynamicModel` | 3D model type definition for the viewer |
134
+ | `K3Configuration` | A persisted configuration with code, price, and selection JSON |
135
+ | `K3ConfigurationSavedEvent` | Event payload dispatched on completed save |
136
+ | `VariableType` | Const enum of all variable types |
137
+
138
+ ---
139
+
140
+ ## Learn More
141
+
142
+ - **K3 Konfigurator** – [k3-konfigurator.de](https://k3-konfigurator.de/)
143
+ - **Documentation** – [k3.objectcode.de/help](https://k3.objectcode.de/help/)
144
+ - **npm** – [npmjs.com/package/k3-plugin-api](https://www.npmjs.com/package/k3-plugin-api)
145
+
146
+ ---
147
+
148
+ ## License
149
+
150
+ MIT © [ObjectCode GmbH](https://k3-konfigurator.de/)
package/index.ts CHANGED
@@ -1,33 +1,722 @@
1
- export interface K3Plugin {
2
- dynamicModels: DynamicModel[];
3
- variableTemplates: VariableTemplate[];
4
- layoutComponents: Record<string, React.ComponentType<any>>;
1
+ import type React from "react";
2
+
3
+ // ─── HOC type (mirrors K3 internal, no K3 imports) ──────────────────────────
4
+
5
+ /** A Higher-Order Component: takes the default component, returns a new one. */
6
+ export type HOC<P = Record<string, unknown>> = (
7
+ comp: React.FC<P>,
8
+ ) => React.FC<P>;
9
+
10
+ /** Four editor languages supported by K3. */
11
+ export type LocalizedString = {
12
+ de?: string;
13
+ en?: string;
14
+ nl?: string;
15
+ fr?: string;
16
+ };
17
+
18
+ /** An HOC slot with a required description for the admin UI. */
19
+ export interface HOCWithDescription<P = Record<string, unknown>> {
20
+ hoc: HOC<P>;
21
+ /** Describe what this extension point does. Shown in the plugin extensions dialog. */
22
+ description: string | LocalizedString;
23
+ }
24
+
25
+ /** A logic callback with a required description for the admin UI. */
26
+ export interface CallbackWithDescription<T> {
27
+ fn: T;
28
+ /** Describe what this callback does. Shown in the plugin extensions dialog. */
29
+ description: string | LocalizedString;
30
+ }
31
+
32
+ // ─── Public Plugin Descriptor ───────────────────────────────────────────────
33
+
34
+ export interface K3PluginDescriptor {
35
+ /** Unique stable identifier, e.g. "vendor.myplugin". Required for collision detection. */
36
+ id: string;
37
+ /** Semver string, e.g. "1.0.0". */
38
+ version: string;
39
+
40
+ /** UI extension points: layout HOCs, input HOCs, dialog HOCs. */
41
+ ui?: K3UIExtensions;
42
+ /** Viewer / 3D extension points: canvas, scene components, layout components, dynamic models. */
43
+ viewer?: K3ViewerExtensions;
44
+ /** Logic/callback hooks: config, camera, core. */
45
+ logic?: K3LogicExtensions;
46
+
47
+ /** @deprecated Use viewer.models instead. */
48
+ dynamicModels?: DynamicModel[];
49
+ }
50
+
51
+ // ─── UI Extensions ──────────────────────────────────────────────────────────
52
+
53
+ export interface K3UIExtensions {
54
+ /** Override layout shell components. */
55
+ layout?: K3LayoutExtensions;
56
+ /** Register new variable visualisations (renderers) per variable data type. */
57
+ inputs?: K3InputExtensions;
58
+ /** Override dialog components. */
59
+ dialogs?: K3DialogExtensions;
60
+ }
61
+
62
+ export interface K3LayoutExtensions {
63
+ /** Wraps the outermost app shell component. */
64
+ root?: HOCWithDescription;
65
+ /** Wraps the top header bar containing branding, navigation buttons, and scene controls. */
66
+ header?: HOCWithDescription;
67
+ /** Wraps the sidebar container that lists groups and variables. */
68
+ sidebar?: HOCWithDescription;
69
+ /** Wraps the header section inside the sidebar (above the groups list). */
70
+ sidebarHeader?: HOCWithDescription;
71
+ /** Wraps the footer section inside the sidebar (below the groups list). */
72
+ sidebarFooter?: HOCWithDescription;
73
+ /** Wraps the bottom footer bar of the app shell. */
74
+ footer?: HOCWithDescription;
75
+ /** Wraps the main content / viewer area of the configurator page. */
76
+ contentView?: HOCWithDescription;
77
+ /** Wraps the gallery / image viewer page layout. */
78
+ gallery?: HOCWithDescription;
79
+ /** Wraps the branding slot in the header (typically a logo + brand name). */
80
+ branding?: HOCWithDescription;
81
+ /** Wraps the logo image component inside the branding area. */
82
+ logo?: HOCWithDescription;
83
+ /** Wraps the previous/next group navigation button bar. */
84
+ navigationButtons?: HOCWithDescription;
85
+ /** Wraps the exit / close configurator button(s). */
86
+ exitButtons?: HOCWithDescription;
87
+ /** Wraps the 3D scene action buttons (e.g. AR, fullscreen, screenshot). */
88
+ sceneButtons?: HOCWithDescription;
89
+ /** Wraps the price display component shown in the header or footer. */
90
+ price?: HOCWithDescription;
91
+ /** Wraps the label/hotspot action display overlay rendered on the desktop 3D canvas. */
92
+ labelActionDisplay?: HOCWithDescription;
93
+ /** Wraps the label/hotspot action display overlay rendered on mobile. */
94
+ mobileLabelActionDisplay?: HOCWithDescription;
95
+ /** Wraps the modal shown when a selection violates a mandatory rule. */
96
+ invalidRuleModal?: HOCWithDescription;
97
+ /** Wraps a component that is only mounted after the app has fully loaded. */
98
+ mountedWhenLoaded?: HOCWithDescription;
99
+ /** Wraps the top-level configurator page layout (groups navigation + variable panel). */
100
+ configurator?: HOCWithDescription;
101
+ /** Wraps each group label in the sidebar navigation list. */
102
+ groupLabel?: HOCWithDescription;
103
+ /** Wraps the expandable group panel that contains its variables. */
104
+ groupPanel?: HOCWithDescription;
105
+ /** Wraps the additional-groups slot appended below the main groups list. */
106
+ additionalGroups?: HOCWithDescription;
107
+ /** Wraps the additional-variables slot appended at the end of a group's variable list. */
108
+ additionalVars?: HOCWithDescription;
109
+ /** Wraps each individual variable label inside a group panel. */
110
+ variableLabel?: HOCWithDescription;
111
+ }
112
+
113
+ /**
114
+ * Props passed to a plugin variable component (VariableVisualisation.component) at runtime.
115
+ * Use these to render a fully custom variable input UI.
116
+ */
117
+ export interface K3VariableComponentProps {
118
+ /** The variable definition for which this component is rendered. */
119
+ variable: {
120
+ /** Database ID of the variable. */
121
+ id: string | number;
122
+ /** Translated display label of the variable. */
123
+ label: string;
124
+ /** Data type of the variable (list, color, number, …). */
125
+ type: VariableTypes;
126
+ settings?: {
127
+ /** Key of the VariableVisualisation that should be used to render this variable. */
128
+ template?: string;
129
+ templateOptions?: {
130
+ min?: number;
131
+ max?: number;
132
+ digits?: number;
133
+ [key: string]: unknown;
134
+ };
135
+ [key: string]: unknown;
136
+ };
137
+ [key: string]: unknown;
138
+ };
139
+ /** The currently active selection for this variable, if any. */
140
+ selection?: {
141
+ /** ID of the currently selected value. */
142
+ id: string | number;
143
+ data?: {
144
+ inputValue?: number;
145
+ [key: string]: unknown;
146
+ };
147
+ [key: string]: unknown;
148
+ };
149
+ /** All available value options for this variable. */
150
+ values?: Array<{
151
+ /** Database ID of the value. */
152
+ id: string | number;
153
+ /** Translated display label of the value. */
154
+ label: string;
155
+ /** Raw value payload (hex color, boolean, etc.). */
156
+ value?: string | boolean | null;
157
+ [key: string]: unknown;
158
+ }>;
159
+ /**
160
+ * Commit a selection.
161
+ * Number variables: onChange(values[0].id, { inputValue: numericValue })
162
+ * List/color/boolean: onChange(value.id)
163
+ */
164
+ onChange: (
165
+ valueId: string | number,
166
+ metadata?: { inputValue?: number },
167
+ ) => void;
168
+ /** When `true`, the variable is locked and user interaction should be blocked. */
169
+ disabled?: boolean;
170
+ }
171
+
172
+ /**
173
+ * A plugin-registered variable renderer (VariableVisualisation).
174
+ * Displayed as a selectable option in the admin visualisation chooser.
175
+ * The component owns its full UI — label, input, chrome.
176
+ */
177
+ export interface VariableVisualisation {
178
+ /**
179
+ * Globally unique template key, e.g. "acme.mySlider".
180
+ * Set variable.settings.template = this key to use this visualisation.
181
+ * Must be namespaced to avoid collisions.
182
+ */
183
+ key: string;
184
+ /** Label shown in the admin visualisation chooser. */
185
+ label: string;
186
+ /** Describe what this visualisation does. Shown in the plugin extensions dialog. */
187
+ description: string | LocalizedString;
188
+ /** Full variable renderer component. Receives K3VariableComponentProps. */
189
+ component: React.ComponentType<K3VariableComponentProps>;
190
+ }
191
+
192
+ export interface K3InputExtensions {
193
+ /** Register new visualisations for list-type variables. */
194
+ list?: VariableVisualisation[];
195
+ /** Register new visualisations for color-type variables. */
196
+ color?: VariableVisualisation[];
197
+ /** Register new visualisations for number-type variables (e.g. custom slider). */
198
+ number?: VariableVisualisation[];
199
+ /** Register new visualisations for text-type variables. */
200
+ text?: VariableVisualisation[];
201
+ /** Register new visualisations for boolean-type variables. */
202
+ boolean?: VariableVisualisation[];
203
+ /** Register new visualisations for image-type variables. */
204
+ image?: VariableVisualisation[];
205
+ /** Register new visualisations for upload-type variables. */
206
+ upload?: VariableVisualisation[];
207
+ /** Register new visualisations for components-type variables. */
208
+ components?: VariableVisualisation[];
209
+ /** Register new visualisations for information-type variables. */
210
+ information?: VariableVisualisation[];
211
+ }
212
+
213
+ export interface K3DialogExtensions {
214
+ /** Extension points for the order / summary dialog (contact form, price table, confirmation). */
215
+ order?: K3OrderDialogExtensions;
216
+ /** Extension points for inline selection-warning components shown in the sidebar. */
217
+ warnings?: K3WarningExtensions;
218
+ }
219
+
220
+ export interface K3OrderDialogExtensions {
221
+ /** Wraps the entire order dialog modal. */
222
+ root?: HOCWithDescription;
223
+ /** Wraps the dialog headline / title element. */
224
+ headline?: HOCWithDescription;
225
+ /** Wraps the customer contact form fields (name, email, …). */
226
+ contactFields?: HOCWithDescription;
227
+ /** Wraps the price table container in the order summary. */
228
+ priceTable?: HOCWithDescription;
229
+ /** Wraps the list of selected option rows inside the price table. */
230
+ priceTableSelectionList?: HOCWithDescription;
231
+ /** Wraps the list of article/BOM rows inside the price table. */
232
+ priceTableArticleList?: HOCWithDescription;
233
+ /** Wraps the totals row at the bottom of the price table. */
234
+ priceTableTotal?: HOCWithDescription;
235
+ /** Wraps the success confirmation screen shown after a successful order submission. */
236
+ confirmationSuccess?: HOCWithDescription;
237
+ /** Wraps the error confirmation screen shown after a failed order submission. */
238
+ confirmationError?: HOCWithDescription;
239
+ }
240
+
241
+ export interface K3WarningExtensions {
242
+ /** Wraps the full invalid-selection warning component (red badge next to a variable value). */
243
+ invalidSelection?: HOCWithDescription;
244
+ /** Wraps the icon inside the invalid-selection warning. */
245
+ invalidSelectionIcon?: HOCWithDescription;
246
+ /** Wraps the tooltip content shown when hovering the invalid-selection warning. */
247
+ invalidSelectionTooltip?: HOCWithDescription;
248
+ /** Wraps the tooltip content shown when a number variable value is out of bounds. */
249
+ numberWarningTooltip?: HOCWithDescription;
250
+ }
251
+
252
+ // ─── Viewer Extensions ──────────────────────────────────────────────────────
253
+
254
+ /**
255
+ * A single Bill-of-Materials entry exposed to plugin components.
256
+ * Mirrors the internal BOMEntry shape using only primitive/simple types.
257
+ */
258
+ export interface K3BomEntry {
259
+ article: {
260
+ id: number;
261
+ /** Article number as defined in the K3 admin. */
262
+ no: string;
263
+ name: string;
264
+ description?: string | null;
265
+ thumbnail?: string | null;
266
+ category?: string | null;
267
+ };
268
+ /** Quantity of this article for the current selection. */
269
+ qty: number;
270
+ /** Optional override quantity from the article amount modal. */
271
+ amount?: number | null;
272
+ /** Price of a single unit of this article. */
273
+ price: { price: number; unit?: string };
274
+ /** Whether this is a main article (`true`) or an accessory/surcharge (`false`). */
275
+ main?: boolean;
276
+ }
277
+
278
+ /**
279
+ * Props automatically injected into every `customLayoutComponents` entry.
280
+ *
281
+ * @remarks TODO(WIP) — This interface will grow as more configurator data is
282
+ * exposed to plugins.
283
+ */
284
+ export interface CustomLayoutComponentProps {
285
+ /** The slot name this component was mounted under. */
286
+ name: string;
287
+ /**
288
+ * Live Bill-of-Materials rows derived from the current selection.
289
+ * Each entry represents one article line or surcharge line.
290
+ */
291
+ bom: K3BomEntry[];
292
+ /**
293
+ * Aggregated total price for the current configuration in the app's currency unit.
294
+ * TODO(WIP): Currency/formatting helpers are not yet part of the public API.
295
+ */
296
+ totalPrice: number;
297
+ /** Any additional props forwarded by the layout. */
298
+ [key: string]: unknown;
299
+ }
300
+
301
+ export interface K3ViewerExtensions {
302
+ /** Wraps the root Three.js / R3F canvas element. */
303
+ canvas?: HOCWithDescription;
304
+ /**
305
+ * Named React components injected into the configurator layout by key.
306
+ * Consumed by `getDynamicComponents` to render plugin-provided UI inside layout slots.
307
+ * Use a plain component (no HOC wrapping needed).
308
+ *
309
+ * Components receive {@link CustomLayoutComponentProps} with BOM and total price data.
310
+ */
311
+ // TODO(WIP): CustomLayoutComponentProps will be extended as more data becomes available
312
+ customLayoutComponents?: Record<
313
+ string,
314
+ React.ComponentType<CustomLayoutComponentProps>
315
+ >;
316
+ /** Dynamic 3D model definitions contributed by this plugin. Equivalent to the top-level `dynamicModels`. */
317
+ models?: DynamicModel[];
318
+ /** Override the label / hotspot overlay components rendered on the 3D canvas. */
319
+ labels?: {
320
+ /** Wraps the label action display overlay on desktop. Alias for `ui.layout.labelActionDisplay`. */
321
+ display?: HOCWithDescription;
322
+ /** Wraps the label action display overlay on mobile. Alias for `ui.layout.mobileLabelActionDisplay`. */
323
+ mobile?: HOCWithDescription;
324
+ };
325
+ }
326
+
327
+ // ─── Logic Callback Types ────────────────────────────────────────────────────
328
+
329
+ /** [x, y, z] coordinate tuple used on camera objects. */
330
+ export type K3Coordinates = [number, number, number];
331
+
332
+ /**
333
+ * Restricts a camera to a specific configurator context.
334
+ * `"group"` / `"variable"` — camera activates only when that item is in view; `id` is the entity's database ID.
335
+ * `"general"` — camera is always available regardless of the active group or variable.
336
+ */
337
+ export type K3CameraScope =
338
+ | { type: "group" | "variable"; id: number }
339
+ | { type: "general"; id?: null };
340
+
341
+ interface K3BaseCamera {
342
+ /** Unique database ID of the camera record. */
343
+ id: string;
344
+ /** Human-readable camera name as set in the scene editor. */
345
+ name: string;
346
+ /** World-space XYZ position of the camera. */
347
+ position: K3Coordinates;
348
+ /** World-space XYZ point the camera is aimed at. */
349
+ lookAt: K3Coordinates;
350
+ /** Euler rotation [x, y, z] in radians. */
351
+ rotation: K3Coordinates;
352
+ /** Optional override for the screenshot render resolution in pixels. */
353
+ resolution?: { width: number; height: number };
354
+ /** Transition easing threshold used by the camera animation driver. */
355
+ threshold?: number;
356
+ /**
357
+ * How the camera's look-at target is computed.
358
+ * `"dynamic"` — recalculated from the current scene bounding box (default).
359
+ * `"static"` — uses the stored `lookAt` value unchanged.
360
+ */
361
+ focusType?: "dynamic" | "static";
362
+ /** Restricts this camera to a specific group or variable context, or `"general"` for all contexts. */
363
+ scope?: K3CameraScope;
364
+ /** Orthographic zoom factor or perspective field-of-view multiplier. */
365
+ zoom?: number;
366
+ [key: string]: unknown;
367
+ }
368
+
369
+ /** A perspective camera configured in the K3 scene editor. */
370
+ export interface K3PerspectiveCamera extends K3BaseCamera {
371
+ type: "PerspectiveCamera";
372
+ /** Intrinsic perspective parameters: field-of-view in degrees, aspect ratio, near/far clip planes. */
373
+ baseSettings?: { fov: number; aspect: number; near: number; far: number };
374
+ }
375
+
376
+ /** An orthographic camera configured in the K3 scene editor. */
377
+ export interface K3OrthographicCamera extends K3BaseCamera {
378
+ type: "OrthographicCamera";
379
+ /** Intrinsic orthographic parameters: frustum left/right/top/bottom extents and near/far clip planes. */
380
+ baseSettings?: {
381
+ left: number;
382
+ right: number;
383
+ top: number;
384
+ bottom: number;
385
+ near: number;
386
+ far: number;
387
+ };
388
+ }
389
+
390
+ /** A scene camera — perspective or orthographic. Passed to screenshot / camera-list callbacks. */
391
+ export type K3Camera = K3PerspectiveCamera | K3OrthographicCamera;
392
+
393
+ /** Pixel dimensions used for screenshot rendering. */
394
+ export interface K3ScreenshotDimensions {
395
+ width: number;
396
+ height: number;
397
+ }
398
+
399
+ /** AR platform identifier. */
400
+ export type K3ARPlatform = "iOS" | "AndroidOS";
401
+
402
+ /**
403
+ * Minimal structural representation of a Three.js scene graph node.
404
+ * Cast to `import("three").Object3D` for full Three.js access.
405
+ */
406
+ export interface K3Scene {
407
+ /** Three.js object type string, e.g. `"Scene"`, `"Mesh"`, `"Group"`. */
408
+ type: string;
409
+ /** Direct child nodes of this scene graph node. */
410
+ children: readonly K3Scene[];
411
+ /** Arbitrary metadata attached by K3 or the GLTF loader (e.g. material names, model IDs). */
412
+ userData: Record<string, unknown>;
413
+ traverse(callback: (object: K3Scene) => void): void;
414
+ getObjectByName(name: string): K3Scene | undefined;
415
+ }
416
+
417
+ /** Context passed to `core.onExportAR`. */
418
+ export interface K3ARExportContext {
419
+ /** Platform the AR export is targeting. */
420
+ platform: K3ARPlatform;
421
+ /**
422
+ * Live Three.js scene graph.
423
+ * Cast to `import("three").Object3D` for full Three.js access.
424
+ */
425
+ scene: K3Scene;
426
+ }
427
+
428
+ /** An uploaded file in a save operation (e.g. a screenshot per camera). */
429
+ export interface K3UploadFile {
430
+ /** Camera name or custom key identifying this file. */
431
+ key: string;
432
+ /** The file data. */
433
+ file: Blob;
434
+ /** Optional explicit file name. */
435
+ fileName?: string;
436
+ }
437
+
438
+ /** Result returned to `core.onOpenPdf` after a save/order action. */
439
+ export interface K3SaveResult {
440
+ /** Generated configuration code. */
441
+ code?: string;
442
+ /** Pricing verification info. */
443
+ price?: {
444
+ okay: boolean;
445
+ priceSent?: number;
446
+ priceCalculated?: number;
447
+ };
448
+ /** `true` if the save action encountered a server-side error. */
449
+ error?: boolean;
450
+ /** Optional human-readable error or status message from the server. */
451
+ message?: string;
452
+ /** URL to a shop or cart page the user can be redirected to after saving. */
453
+ shopLink?: string;
454
+ /** URL to the generated PDF. */
455
+ pdf?: string;
456
+ /** Suggested file name for the generated PDF download. */
457
+ pdfName?: string;
458
+ [key: string]: unknown;
5
459
  }
6
460
 
461
+ /**
462
+ * Payload dispatched when a configuration is saved (e.g. "order", "cart", "pdf").
463
+ * Passed to `config.onSaveEvent`.
464
+ */
465
+ export interface K3ConfigurationSavedEvent {
466
+ type: "K3ConfigurationSaved";
467
+ /** Save action key, e.g. "cart", "pdf", "email". */
468
+ actionKey: string;
469
+ /** Generated configuration code. */
470
+ code: string;
471
+ /** Optional customer data if collected during the save flow. */
472
+ customer?: {
473
+ email?: string;
474
+ firstName?: string;
475
+ lastName?: string;
476
+ [key: string]: unknown;
477
+ };
478
+ [key: string]: unknown;
479
+ }
480
+
481
+ /** A persisted configuration object. Passed to `config.onUpdate` and `config.onSave`. */
482
+ export interface K3Configuration {
483
+ /** Database ID of the saved configuration record. */
484
+ id: number | string;
485
+ /** ID of the K3 app this configuration belongs to. */
486
+ appId: number;
487
+ /** Human-readable configuration code generated by the backend (e.g. "ABC-123"). */
488
+ code: string;
489
+ /** Calculated total price, or `null` if pricing is not configured. */
490
+ price: number | null;
491
+ /** ISO language code. */
492
+ lang: string;
493
+ /** Serialised selection state and BOM. */
494
+ json: {
495
+ /** Array of variable selection states at save time. */
496
+ variables: unknown[];
497
+ /** Bill-of-materials rows derived from the current selection. */
498
+ bom: unknown[];
499
+ /** Aggregated summary data (e.g. totals, labels). */
500
+ summary: unknown;
501
+ [key: string]: unknown;
502
+ };
503
+ /** Screenshot files, keyed by camera name then file name. */
504
+ files: Record<string, Record<string, string>>;
505
+ [key: string]: unknown;
506
+ }
507
+
508
+ /** A configuration not yet persisted (no `id` or `code`). */
509
+ export type K3NewConfiguration = Omit<K3Configuration, "id" | "code">;
510
+
511
+ /** An individual variable selection state. */
512
+ export interface K3Selection {
513
+ /** Unique selection ID. */
514
+ id: string;
515
+ /** ID of the variable this selection belongs to. */
516
+ variableId: number;
517
+ /** ID of the chosen value, or `null` / `undefined` when no value is selected. */
518
+ valueId?: number | string | null;
519
+ data?: {
520
+ /** Number variable input value. */
521
+ inputValue?: number;
522
+ /** Text variable input value. */
523
+ inputText?: string;
524
+ /** Image variable URL. */
525
+ url?: string;
526
+ [key: string]: unknown;
527
+ };
528
+ [key: string]: unknown;
529
+ }
530
+
531
+ /** Full application snapshot passed to `core.preprocessFullApp` before the store initialises. */
532
+ export interface K3FullApp {
533
+ app: { id: number; [key: string]: unknown };
534
+ client: { id: number; [key: string]: unknown };
535
+ groups: Array<{ id: number; [key: string]: unknown }>;
536
+ variables: Array<{ id: number; [key: string]: unknown }>;
537
+ values: Array<{ id: number | string; [key: string]: unknown }>;
538
+ articles: Array<{ id: number; [key: string]: unknown }>;
539
+ prices: Array<{ id: number; [key: string]: unknown }>;
540
+ materials: Array<{ id: number; [key: string]: unknown }>;
541
+ models: Array<{ id: number; [key: string]: unknown }>;
542
+ images: Array<{ id: number; [key: string]: unknown }>;
543
+ rules: Array<{ id: number; [key: string]: unknown }>;
544
+ ruleItems: Array<{ id: number; [key: string]: unknown }>;
545
+ [key: string]: unknown;
546
+ }
547
+
548
+ // ─── Logic / Callback Extensions ────────────────────────────────────────────
549
+
550
+ export interface K3LogicExtensions {
551
+ /** Hooks into the configuration data lifecycle (create, update, save). */
552
+ config?: {
553
+ /**
554
+ * Called every time the active configuration object is updated in the store (e.g. on every selection change).
555
+ * Return a modified copy to alter prices, codes, or any other configuration field.
556
+ */
557
+ onUpdate?: CallbackWithDescription<
558
+ (config: K3Configuration) => K3Configuration
559
+ >;
560
+ /**
561
+ * Called just before a configuration is persisted (order, cart, email, …).
562
+ * Return a modified copy to inject extra fields or override values before saving.
563
+ */
564
+ onSave?: CallbackWithDescription<
565
+ (
566
+ config: K3Configuration | K3NewConfiguration,
567
+ ) => K3Configuration | K3NewConfiguration
568
+ >;
569
+ /**
570
+ * Called with the list of screenshot files that will be uploaded alongside the save.
571
+ * Return a modified array to add, remove, or rename files.
572
+ */
573
+ onSaveFiles?: CallbackWithDescription<
574
+ (files: K3UploadFile[]) => K3UploadFile[]
575
+ >;
576
+ /**
577
+ * Called after a successful save action with the dispatched event payload.
578
+ * Return a modified payload to add custom fields consumed by downstream integrations.
579
+ */
580
+ onSaveEvent?: CallbackWithDescription<
581
+ (payload: K3ConfigurationSavedEvent) => K3ConfigurationSavedEvent
582
+ >;
583
+ };
584
+ /** Hooks into the camera and screenshot pipeline. */
585
+ camera?: {
586
+ /**
587
+ * Called with the list of cameras used for automated screenshot capture.
588
+ * Return a modified array to add, remove, or reorder screenshot cameras.
589
+ */
590
+ onSetScreenshotCameras?: CallbackWithDescription<
591
+ (cameras: K3Camera[]) => K3Camera[]
592
+ >;
593
+ /**
594
+ * Called with the full list of scene cameras available in the viewer.
595
+ * Return a modified array to filter or reorder cameras shown in the UI.
596
+ */
597
+ onSetCameraList?: CallbackWithDescription<
598
+ (cameras: K3Camera[]) => K3Camera[]
599
+ >;
600
+ /**
601
+ * Called to determine the pixel dimensions used when rendering screenshots.
602
+ * Return modified dimensions to override the default canvas size.
603
+ */
604
+ getScreenshotDimensions?: CallbackWithDescription<
605
+ (dim: K3ScreenshotDimensions) => K3ScreenshotDimensions
606
+ >;
607
+ };
608
+ /** Core app lifecycle hooks. */
609
+ core?: {
610
+ /**
611
+ * Called once with the full application data object before the K3 store is initialised.
612
+ * Return a modified copy to patch groups, variables, values, rules, or any other app data.
613
+ */
614
+ preprocessFullApp?: CallbackWithDescription<(app: K3FullApp) => K3FullApp>;
615
+ /**
616
+ * Called after a PDF is generated and the save result is available.
617
+ * Use this to open, download, or post-process the PDF URL from `result.pdf`.
618
+ */
619
+ onOpenPdf?: CallbackWithDescription<(result: K3SaveResult) => void>;
620
+ /**
621
+ * Called when the user triggers an AR export.
622
+ * Receives the target platform and live Three.js scene; must return a `Blob` of the AR file.
623
+ */
624
+ onExportAR?: CallbackWithDescription<
625
+ (ctx: K3ARExportContext) => Promise<Blob>
626
+ >;
627
+ };
628
+ }
629
+
630
+ // ─── Legacy types (unchanged) ────────────────────────────────────────────────
631
+
7
632
  export interface DynamicModel {
633
+ /** Unique type key used to reference this model from rule items, e.g. `"acme.my-model"`. */
8
634
  type: string;
635
+ /** Human-readable display name shown in the admin model picker. */
9
636
  label: string;
637
+ /** Describe what this dynamic model does. Shown in the plugin extensions dialog. */
638
+ description: string | LocalizedString;
639
+ /** Optional URL to a preview screenshot shown in the admin model picker. */
10
640
  screenshot?: string;
641
+ /** List of Three.js material name patterns this model applies to in the scene. */
11
642
  materials: string[];
643
+ /** When `true`, this model is excluded from AR exports (e.g. because it uses unsupported shaders). */
12
644
  disabledForAR: boolean;
645
+ /** The React component rendered inside the Three.js canvas for this model. */
13
646
  component: React.ComponentType<any>;
647
+ /**
648
+ * Schema for the admin props-editor dialog.
649
+ * Each key maps to a `ModelProp` descriptor that controls which editor widget is rendered.
650
+ */
14
651
  propsDialog: Record<string, ModelProp>;
652
+ /**
653
+ * Default prop values used when a new model action is created.
654
+ * Each key matches a `propsDialog` key; values may be plain data or `{ expression: string }`.
655
+ */
15
656
  defaultProps: Record<string, ModelPropDefault>;
657
+ /** Optional tag used to group or filter models in the admin UI. */
16
658
  tag?: string;
17
659
  }
18
660
 
19
661
  export interface ModelProp {
20
- type?: string;
662
+ /**
663
+ * Editor widget type for this prop in the admin dialog.
664
+ * `"basic"` — plain text/number input.
665
+ * `"model"` — K3 model selector.
666
+ * `"variable"` — K3 variable selector.
667
+ * `"expression"` — expression / formula editor.
668
+ */
669
+ type?: "basic" | "model" | "variable" | "expression";
670
+ /** Human-readable label shown next to the editor widget in the admin dialog. */
21
671
  label?: string;
672
+ /** For type="variable": restrict which variable types are selectable. */
673
+ allowedTypes?: VariableTypes[];
674
+ /** For type="model": allow selecting multiple models. */
675
+ multiple?: boolean;
22
676
  }
23
677
 
678
+ /** All variable type string literals. */
679
+ export const VariableType = {
680
+ List: "list",
681
+ Color: "color",
682
+ Number: "number",
683
+ Text: "text",
684
+ MultiSelect: "multiSelect",
685
+ Boolean: "boolean",
686
+ Image: "image",
687
+ Upload: "upload",
688
+ Components: "components",
689
+ Information: "information",
690
+ } as const;
691
+
692
+ export type VariableTypes = (typeof VariableType)[keyof typeof VariableType];
693
+
24
694
  export interface ModelPropDefault {
695
+ /** An expression string evaluated at runtime instead of a static value (e.g. `"group.width * 2"`). */
25
696
  expression?: string;
26
697
  }
27
698
 
28
- export interface VariableTemplate {
29
- key: string;
699
+ /** K3 Value object (list / color / boolean selection). */
700
+ export interface Value {
701
+ /** Unique database ID of the value. */
702
+ id: number | string;
703
+ /** Optional stable string key for the value, usable as an alternative identifier. */
704
+ key?: string | null;
705
+ /** The underlying data value: a hex color string, boolean flag, or generic string payload. */
706
+ value?: string | boolean | null;
707
+ /** Human-readable display label shown in the configurator UI. */
30
708
  label: string;
31
- type: string;
32
- component: (Wrapped: React.ComponentType<any>) => React.ComponentType<any>;
33
709
  }
710
+
711
+ /**
712
+ * Context passed to plugin dynamic model components at runtime.
713
+ */
714
+ export interface PluginModelContext {
715
+ /** Only set during screenshot rendering. */
716
+ screenshotCameraName?: string;
717
+ /** The unique ID of the model action this instance is rendered for. */
718
+ modelActionId?: string;
719
+ }
720
+
721
+ /** @deprecated Use K3PluginDescriptor */
722
+ export type K3Plugin = Pick<K3PluginDescriptor, "dynamicModels">;
package/package.json CHANGED
@@ -1,13 +1,38 @@
1
1
  {
2
2
  "name": "k3-plugin-api",
3
- "version": "1.0.8",
3
+ "version": "1.2.0",
4
+ "description": "Official TypeScript types and plugin API for the K3 product configurator",
4
5
  "main": "index.js",
5
6
  "types": "index.ts",
6
- "scripts": {
7
- "prepublishOnly": "tsc --emitDeclarationOnly"
7
+ "files": [
8
+ "index.ts",
9
+ "index.js",
10
+ "index.d.ts",
11
+ "index.d.ts.map",
12
+ "README.md"
13
+ ],
14
+ "keywords": [
15
+ "k3",
16
+ "k3-konfigurator",
17
+ "product-configurator",
18
+ "configurator",
19
+ "plugin",
20
+ "plugin-api",
21
+ "typescript",
22
+ "objectcode",
23
+ "3d",
24
+ "react"
25
+ ],
26
+ "author": "ObjectCode GmbH <info@objectcode.de> (https://k3-konfigurator.de/)",
27
+ "license": "MIT",
28
+ "peerDependencies": {
29
+ "react": ">=19"
8
30
  },
9
31
  "devDependencies": {
10
32
  "typescript": "^5.8.3",
11
33
  "@types/react": "^19.0.0"
34
+ },
35
+ "scripts": {
36
+ "yalc": "pnpm prepublishOnly && yalc publish"
12
37
  }
13
- }
38
+ }
package/dist/index.d.ts DELETED
@@ -1,30 +0,0 @@
1
- export interface K3Plugin {
2
- dynamicModels: DynamicModel[];
3
- variableTemplates: VariableTemplate[];
4
- layoutComponents: Record<string, React.ComponentType<any>>;
5
- }
6
- export interface DynamicModel {
7
- type: string;
8
- label: string;
9
- screenshot?: string;
10
- materials: string[];
11
- disabledForAR: boolean;
12
- component: React.ComponentType<any>;
13
- propsDialog: Record<string, ModelProp>;
14
- defaultProps: Record<string, ModelPropDefault>;
15
- tag?: string;
16
- }
17
- export interface ModelProp {
18
- type?: string;
19
- label?: string;
20
- }
21
- export interface ModelPropDefault {
22
- expression?: string;
23
- }
24
- export interface VariableTemplate {
25
- key: string;
26
- label: string;
27
- type: string;
28
- component: (Wrapped: React.ComponentType<any>) => React.ComponentType<any>;
29
- }
30
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACvB,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;CAC5D;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa,EAAE,OAAO,CAAC;IACvB,SAAS,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;IACpC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACvC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;IAC/C,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;CAC5E"}
@@ -1 +0,0 @@
1
- {"fileNames":["../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es5.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2023.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2024.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.dom.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.dom.asynciterable.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.scripthost.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.string.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.array.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.object.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.string.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2023.array.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2023.collection.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2023.intl.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2024.collection.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2024.object.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2024.promise.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2024.regexp.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.es2024.string.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.array.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.collection.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.intl.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.disposable.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.promise.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.decorators.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.iterator.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.float16.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.error.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.decorators.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../node_modules/.pnpm/typescript@5.9.3/node_modules/typescript/lib/lib.esnext.full.d.ts","../node_modules/.pnpm/@types+react@19.2.3/node_modules/@types/react/global.d.ts","../node_modules/.pnpm/csstype@3.1.3/node_modules/csstype/index.d.ts","../node_modules/.pnpm/@types+react@19.2.3/node_modules/@types/react/index.d.ts","../node_modules/.pnpm/@types+react@19.2.3/node_modules/@types/react/jsx-runtime.d.ts","../index.ts"],"fileIdsList":[[90],[87,88],[89]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"8fd575e12870e9944c7e1d62e1f5a73fcf23dd8d3a321f2a2c74c20d022283fe","impliedFormat":1},{"version":"2ab096661c711e4a81cc464fa1e6feb929a54f5340b46b0a07ac6bbf857471f0","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7a3c8b952931daebdfc7a2897c53c0a1c73624593fa070e46bd537e64dcd20a","affectsGlobalScope":true,"impliedFormat":1},{"version":"80e18897e5884b6723488d4f5652167e7bb5024f946743134ecc4aa4ee731f89","affectsGlobalScope":true,"impliedFormat":1},{"version":"cd034f499c6cdca722b60c04b5b1b78e058487a7085a8e0d6fb50809947ee573","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"87dc0f382502f5bbce5129bdc0aea21e19a3abbc19259e0b43ae038a9fc4e326","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ece9f17b3866cc077099c73f4983bddbcb1dc7ddb943227f1ec070f529dedd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c9319a09485199c1f7b0498f2988d6d2249793ef67edda49d1e584746be9032","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3a2a0cee0f03ffdde24d89660eba2685bfbdeae955a6c67e8c4c9fd28928eeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"60037901da1a425516449b9a20073aa03386cce92f7a1fd902d7602be3a7c2e9","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"22adec94ef7047a6c9d1af3cb96be87a335908bf9ef386ae9fd50eeb37f44c47","affectsGlobalScope":true,"impliedFormat":1},{"version":"196cb558a13d4533a5163286f30b0509ce0210e4b316c56c38d4c0fd2fb38405","affectsGlobalScope":true,"impliedFormat":1},{"version":"73f78680d4c08509933daf80947902f6ff41b6230f94dd002ae372620adb0f60","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5239f5c01bcfa9cd32f37c496cf19c61d69d37e48be9de612b541aac915805b","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"bde31fd423cd93b0eff97197a3f66df7c93e8c0c335cbeb113b7ff1ac35c23f4","impliedFormat":1},{"version":"170d4db14678c68178ee8a3d5a990d5afb759ecb6ec44dbd885c50f6da6204f6","affectsGlobalScope":true,"impliedFormat":1},{"version":"8a8eb4ebffd85e589a1cc7c178e291626c359543403d58c9cd22b81fab5b1fb9","impliedFormat":1},{"version":"0ff1b165090b491f5e1407ae680b9a0bc3806dc56827ec85f93c57390491e732","impliedFormat":1},{"version":"42c169fb8c2d42f4f668c624a9a11e719d5d07dacbebb63cbcf7ef365b0a75b3","impliedFormat":1},{"version":"1601a1f324700b20fa0b8aba02e807c846b2f4f34287775874a885c150d0d65c","signature":"c52f986b68b718e21f9397ff2d6b326570eadf3aa7fe14521af08a4e1e4e05ea"}],"root":[91],"options":{"composite":true,"declaration":true,"declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":true,"jsx":4,"module":99,"outDir":"./","skipLibCheck":true,"strict":true,"target":99},"referencedMap":[[91,1],[89,2],[90,3]],"latestChangedDtsFile":"./index.d.ts","version":"5.9.3"}
package/tsconfig.json DELETED
@@ -1,22 +0,0 @@
1
- {
2
- "compilerOptions": {
3
- "target": "ESNext",
4
- "module": "ESNext",
5
- "moduleResolution": "Node",
6
- "esModuleInterop": true,
7
- "forceConsistentCasingInFileNames": true,
8
- "strict": true,
9
- "declaration": true,
10
- "emitDeclarationOnly": true,
11
- "declarationMap": true,
12
- "outDir": "dist",
13
- "baseUrl": ".",
14
- "paths": {
15
- "#core/*": ["../k3-frontend/src/lib/*"]
16
- },
17
- "skipLibCheck": true,
18
- "composite": true,
19
- "jsx": "react-jsx"
20
- },
21
- "include": ["index.ts"]
22
- }
@@ -1 +0,0 @@
1
- {"fileNames":["./node_modules/typescript/lib/lib.es5.d.ts","./node_modules/typescript/lib/lib.es2015.d.ts","./node_modules/typescript/lib/lib.es2016.d.ts","./node_modules/typescript/lib/lib.es2017.d.ts","./node_modules/typescript/lib/lib.es2018.d.ts","./node_modules/typescript/lib/lib.es2019.d.ts","./node_modules/typescript/lib/lib.es2020.d.ts","./node_modules/typescript/lib/lib.es2021.d.ts","./node_modules/typescript/lib/lib.es2022.d.ts","./node_modules/typescript/lib/lib.es2023.d.ts","./node_modules/typescript/lib/lib.es2024.d.ts","./node_modules/typescript/lib/lib.esnext.d.ts","./node_modules/typescript/lib/lib.dom.d.ts","./node_modules/typescript/lib/lib.dom.iterable.d.ts","./node_modules/typescript/lib/lib.dom.asynciterable.d.ts","./node_modules/typescript/lib/lib.webworker.importscripts.d.ts","./node_modules/typescript/lib/lib.scripthost.d.ts","./node_modules/typescript/lib/lib.es2015.core.d.ts","./node_modules/typescript/lib/lib.es2015.collection.d.ts","./node_modules/typescript/lib/lib.es2015.generator.d.ts","./node_modules/typescript/lib/lib.es2015.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.promise.d.ts","./node_modules/typescript/lib/lib.es2015.proxy.d.ts","./node_modules/typescript/lib/lib.es2015.reflect.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2016.array.include.d.ts","./node_modules/typescript/lib/lib.es2016.intl.d.ts","./node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","./node_modules/typescript/lib/lib.es2017.date.d.ts","./node_modules/typescript/lib/lib.es2017.object.d.ts","./node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2017.string.d.ts","./node_modules/typescript/lib/lib.es2017.intl.d.ts","./node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","./node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","./node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","./node_modules/typescript/lib/lib.es2018.intl.d.ts","./node_modules/typescript/lib/lib.es2018.promise.d.ts","./node_modules/typescript/lib/lib.es2018.regexp.d.ts","./node_modules/typescript/lib/lib.es2019.array.d.ts","./node_modules/typescript/lib/lib.es2019.object.d.ts","./node_modules/typescript/lib/lib.es2019.string.d.ts","./node_modules/typescript/lib/lib.es2019.symbol.d.ts","./node_modules/typescript/lib/lib.es2019.intl.d.ts","./node_modules/typescript/lib/lib.es2020.bigint.d.ts","./node_modules/typescript/lib/lib.es2020.date.d.ts","./node_modules/typescript/lib/lib.es2020.promise.d.ts","./node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2020.string.d.ts","./node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2020.intl.d.ts","./node_modules/typescript/lib/lib.es2020.number.d.ts","./node_modules/typescript/lib/lib.es2021.promise.d.ts","./node_modules/typescript/lib/lib.es2021.string.d.ts","./node_modules/typescript/lib/lib.es2021.weakref.d.ts","./node_modules/typescript/lib/lib.es2021.intl.d.ts","./node_modules/typescript/lib/lib.es2022.array.d.ts","./node_modules/typescript/lib/lib.es2022.error.d.ts","./node_modules/typescript/lib/lib.es2022.intl.d.ts","./node_modules/typescript/lib/lib.es2022.object.d.ts","./node_modules/typescript/lib/lib.es2022.string.d.ts","./node_modules/typescript/lib/lib.es2022.regexp.d.ts","./node_modules/typescript/lib/lib.es2023.array.d.ts","./node_modules/typescript/lib/lib.es2023.collection.d.ts","./node_modules/typescript/lib/lib.es2023.intl.d.ts","./node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","./node_modules/typescript/lib/lib.es2024.collection.d.ts","./node_modules/typescript/lib/lib.es2024.object.d.ts","./node_modules/typescript/lib/lib.es2024.promise.d.ts","./node_modules/typescript/lib/lib.es2024.regexp.d.ts","./node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2024.string.d.ts","./node_modules/typescript/lib/lib.esnext.array.d.ts","./node_modules/typescript/lib/lib.esnext.collection.d.ts","./node_modules/typescript/lib/lib.esnext.intl.d.ts","./node_modules/typescript/lib/lib.esnext.disposable.d.ts","./node_modules/typescript/lib/lib.esnext.promise.d.ts","./node_modules/typescript/lib/lib.esnext.decorators.d.ts","./node_modules/typescript/lib/lib.esnext.iterator.d.ts","./node_modules/typescript/lib/lib.esnext.float16.d.ts","./node_modules/typescript/lib/lib.decorators.d.ts","./node_modules/typescript/lib/lib.decorators.legacy.d.ts","./node_modules/typescript/lib/lib.esnext.full.d.ts","./index.ts"],"fileInfos":[{"version":"69684132aeb9b5642cbcd9e22dff7818ff0ee1aa831728af0ecf97d3364d5546","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"8fd575e12870e9944c7e1d62e1f5a73fcf23dd8d3a321f2a2c74c20d022283fe","impliedFormat":1},{"version":"8bf8b5e44e3c9c36f98e1007e8b7018c0f38d8adc07aecef42f5200114547c70","impliedFormat":1},{"version":"092c2bfe125ce69dbb1223c85d68d4d2397d7d8411867b5cc03cec902c233763","affectsGlobalScope":true,"impliedFormat":1},{"version":"07f073f19d67f74d732b1adea08e1dc66b1b58d77cb5b43931dee3d798a2fd53","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7a3c8b952931daebdfc7a2897c53c0a1c73624593fa070e46bd537e64dcd20a","affectsGlobalScope":true,"impliedFormat":1},{"version":"80e18897e5884b6723488d4f5652167e7bb5024f946743134ecc4aa4ee731f89","affectsGlobalScope":true,"impliedFormat":1},{"version":"cd034f499c6cdca722b60c04b5b1b78e058487a7085a8e0d6fb50809947ee573","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"936e80ad36a2ee83fc3caf008e7c4c5afe45b3cf3d5c24408f039c1d47bdc1df","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"fef8cfad2e2dc5f5b3d97a6f4f2e92848eb1b88e897bb7318cef0e2820bceaab","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"b5ce7a470bc3628408429040c4e3a53a27755022a32fd05e2cb694e7015386c7","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"87dc0f382502f5bbce5129bdc0aea21e19a3abbc19259e0b43ae038a9fc4e326","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ece9f17b3866cc077099c73f4983bddbcb1dc7ddb943227f1ec070f529dedd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c9319a09485199c1f7b0498f2988d6d2249793ef67edda49d1e584746be9032","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3a2a0cee0f03ffdde24d89660eba2685bfbdeae955a6c67e8c4c9fd28928eeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"60037901da1a425516449b9a20073aa03386cce92f7a1fd902d7602be3a7c2e9","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"22adec94ef7047a6c9d1af3cb96be87a335908bf9ef386ae9fd50eeb37f44c47","affectsGlobalScope":true,"impliedFormat":1},{"version":"4245fee526a7d1754529d19227ecbf3be066ff79ebb6a380d78e41648f2f224d","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"bde31fd423cd93b0eff97197a3f66df7c93e8c0c335cbeb113b7ff1ac35c23f4","impliedFormat":1},{"version":"7a0eed010a28b7b5497d849ecf16c54ae7e271df263d7de7c56c0e18dca4e11e","signature":"361cfde5b2d12f671f1b72455c9ec7b75b3416e2d1b1ed59ed204b65166590dd"}],"root":[85],"options":{"composite":true,"declaration":true,"declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":true,"module":99,"skipLibCheck":true,"strict":true,"target":99},"semanticDiagnosticsPerFile":[[85,[{"start":75,"length":68,"messageText":"Cannot find module '#/core/r3f/dynamicModels/models/components/BasicDynamicModelEditor' or its corresponding type declarations.","category":1,"code":2307},{"start":179,"length":36,"messageText":"Cannot find module '#core/types/dynamicModel.interface' or its corresponding type declarations.","category":1,"code":2307}]]],"latestChangedDtsFile":"./index.d.ts","version":"5.8.3"}