@limetech/lime-web-components 6.10.0 → 6.11.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/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ ## [6.11.0](https://github.com/Lundalogik/lime-web-components/compare/v6.10.0...v6.11.0) (2026-02-20)
2
+
3
+
4
+ ### Features
5
+
6
+
7
+ * **problem:** add `getMetadataComponent` to `ProblemProvider` ([8b4b756](https://github.com/Lundalogik/lime-web-components/commit/8b4b756ec1bcdaaccd02e9a4f389efac4aebb18e))
8
+
1
9
  ## [6.10.0](https://github.com/Lundalogik/lime-web-components/compare/v6.9.0...v6.10.0) (2026-02-13)
2
10
 
3
11
 
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Describes a web component to create and the properties to set on it.
3
+ *
4
+ * Used wherever the platform needs a component specified as data rather
5
+ * than instantiated directly — for example configuration UIs, metadata
6
+ * renderers, or slot content provided by plugins.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * const descriptor: ComponentDescriptor = {
11
+ * name: 'customer-insights-config',
12
+ * props: { defaultView: 'monthly' },
13
+ * };
14
+ * ```
15
+ *
16
+ * @public
17
+ * @group Core
18
+ */
19
+ export interface ComponentDescriptor<V = unknown> {
20
+ /**
21
+ * Tag name of the web component to create.
22
+ */
23
+ name: string;
24
+ /**
25
+ * Properties to set on the created component.
26
+ */
27
+ props?: Record<string, V>;
28
+ }
29
+ //# sourceMappingURL=component-descriptor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component-descriptor.d.ts","sourceRoot":"","sources":["../../src/core/component-descriptor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,mBAAmB,CAAC,CAAC,GAAG,OAAO;IAC5C;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;CAC7B"}
@@ -5,6 +5,7 @@ export * from './plugin-loader';
5
5
  export * from './state';
6
6
  export type { StateDecoratorConfig } from './decorators';
7
7
  export * from './metadata';
8
+ export * from './component-descriptor';
8
9
  export * from './idle';
9
10
  export * from './icon';
10
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,YAAY,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACzD,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC;AACxB,YAAY,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACzD,cAAc,YAAY,CAAC;AAC3B,cAAc,wBAAwB,CAAC;AACvC,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { ComponentDescriptor } from './component-descriptor';
1
2
  import { Icon } from './icon';
2
3
  import { LimeWebComponentPlatform } from './platform';
3
4
  /**
@@ -90,21 +91,10 @@ export type ConfigMetadata = {
90
91
  * Specifies a web component that provides a configuration interface for
91
92
  * customizing the resource's behavior. This is typically used in admin
92
93
  * interfaces or setup wizards.
94
+ *
95
+ * @see {@link ComponentDescriptor}
93
96
  */
94
- configComponent?: {
95
- /**
96
- * Tag name of the configuration web component.
97
- *
98
- * Must be a registered web component that can receive the specified props.
99
- */
100
- name: string;
101
- /**
102
- * Initial properties to pass to the configuration component.
103
- *
104
- * These props configure the initial state of the configuration UI.
105
- */
106
- props?: Record<string, unknown>;
107
- };
97
+ configComponent?: ComponentDescriptor;
108
98
  };
109
99
  /**
110
100
  * Metadata describing a package or addon using Lime Web Components.
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/core/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAK9B,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,MAAM,MAAM,cAAc,GAAG;IACzB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAErB;;;;;;;;;OASG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAEhB;;;;;;OAMG;IACH,eAAe,CAAC,EAAE;QACd;;;;WAIG;QACH,IAAI,EAAE,MAAM,CAAC;QAEb;;;;WAIG;QACH,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACnC,CAAC;CACL,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,WAAW,mBAAmB;IAChC;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC;CACvD"}
1
+ {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/core/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAK9B,OAAO,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiDG;AACH,MAAM,MAAM,cAAc,GAAG;IACzB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAErB;;;;;;;;;OASG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAEhB;;;;;;;;OAQG;IACH,eAAe,CAAC,EAAE,mBAAmB,CAAC;CACzC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,WAAW,mBAAmB;IAChC;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,SAAS,CAAC,EAAE,KAAK,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC;CACvD"}
@@ -1,5 +1,5 @@
1
1
  import { Action } from '../action';
2
- import { Icon } from '../core';
2
+ import { ComponentDescriptor, Icon } from '../core';
3
3
  import { Problem } from './problem';
4
4
  import { ProblemQueryOptions, ProblemStatus, ProblemType } from './query';
5
5
  /**
@@ -188,5 +188,38 @@ export interface ProblemProvider {
188
188
  * @see {@link Problem.status}
189
189
  */
190
190
  getStatus(status: string): ProblemStatus | undefined;
191
+ /**
192
+ * Returns a web component descriptor for rendering custom metadata
193
+ * in the problem detail dialog.
194
+ *
195
+ * The component is responsible for rendering the problem's
196
+ * {@link Problem.metadata}. Any properties specified in
197
+ * {@link ComponentDescriptor.props} are set on the created element.
198
+ *
199
+ * When this method is not implemented or returns `undefined`, the
200
+ * detail dialog renders without a metadata section.
201
+ *
202
+ * @param problem - The problem whose metadata should be rendered.
203
+ * @returns A component descriptor, or `undefined` if no custom
204
+ * metadata rendering is needed for this problem.
205
+ *
206
+ * @example
207
+ * ```typescript
208
+ * getMetadataComponent(problem: Problem): ComponentDescriptor | undefined {
209
+ * if (problem.type === 'delivery-failed') {
210
+ * return {
211
+ * name: 'email-delivery-metadata',
212
+ * props: { problem },
213
+ * };
214
+ * }
215
+ *
216
+ * return undefined;
217
+ * }
218
+ * ```
219
+ *
220
+ * @see {@link ComponentDescriptor}
221
+ * @see {@link Problem.metadata}
222
+ */
223
+ getMetadataComponent?(problem: Problem): ComponentDescriptor | undefined;
191
224
  }
192
225
  //# sourceMappingURL=provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/problem/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE1E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AACH,MAAM,WAAW,eAAe;IAC5B;;;;;;;;;OASG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;;;;OAKG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;;;;;OAOG;IACH,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAEpB;;;;;;;;;;;OAWG;IACH,WAAW,CACP,OAAO,CAAC,EAAE,mBAAmB,GAC9B,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;IAE1C;;;;;;;;;OASG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEzD;;;;;;OAMG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,GAAG,SAAS,CAAC,CAAC;IAElE;;;;;;;;;;;;OAYG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,EAAE,CAAC;IAEvC;;;;;;;;;;OAUG;IACH,QAAQ,IAAI,WAAW,EAAE,CAAC;IAE1B;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC;IAE/C;;;;;;;;;;;OAWG;IACH,WAAW,IAAI,aAAa,EAAE,CAAC;IAE/B;;;;;;;;;OASG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAAC;CACxD"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/problem/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE1E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AACH,MAAM,WAAW,eAAe;IAC5B;;;;;;;;;OASG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;;;;OAKG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;;;;;OAOG;IACH,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAEpB;;;;;;;;;;;OAWG;IACH,WAAW,CACP,OAAO,CAAC,EAAE,mBAAmB,GAC9B,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,EAAE,CAAC,CAAC;IAE1C;;;;;;;;;OASG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEzD;;;;;;OAMG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,YAAY,CAAC,GAAG,SAAS,CAAC,CAAC;IAElE;;;;;;;;;;;;OAYG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,EAAE,CAAC;IAEvC;;;;;;;;;;OAUG;IACH,QAAQ,IAAI,WAAW,EAAE,CAAC;IAE1B;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC;IAE/C;;;;;;;;;;;OAWG;IACH,WAAW,IAAI,aAAa,EAAE,CAAC;IAE/B;;;;;;;;;OASG;IACH,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAAC;IAErD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+BG;IACH,oBAAoB,CAAC,CAAC,OAAO,EAAE,OAAO,GAAG,mBAAmB,GAAG,SAAS,CAAC;CAC5E"}
@@ -1,4 +1,4 @@
1
- import { LimeWebComponent } from '../core';
1
+ import { ComponentDescriptor, LimeWebComponent } from '../core';
2
2
  /**
3
3
  * The {@link RouteRegistry} service lets you register new locations in the
4
4
  * application specified by either a path or a path pattern. Once a location
@@ -71,16 +71,7 @@ export interface RouteRegistry {
71
71
  * @public
72
72
  * @group Registering routes
73
73
  */
74
- export type MatchedComponent = {
75
- /**
76
- * The name of the component.
77
- */
78
- name: string;
79
- /**
80
- * Matched path parameters.
81
- */
82
- props: Record<string, string | number | undefined>;
83
- };
74
+ export type MatchedComponent = Required<ComponentDescriptor<string | number | undefined>>;
84
75
  /**
85
76
  * Interface for components that are routed to and are registered with the
86
77
  * {@link RouteRegistry} service.
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/routeregistry/registry.ts"],"names":[],"mappings":"AAGA,OAAO,EAA2B,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,MAAM,WAAW,aAAa;IAC1B;;;;;;;OAOG;IACH,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAE5D;;;;;;OAMG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAAC;CAC7D;AAED;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC3B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,CAAC;CACtD,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,WAAW,cAAe,SAAQ,gBAAgB;IACpD;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEhC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,YAAY,CAAC,EAAE;QACX,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,KAAK,WAAW,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;KACxE,CAAC;CACL"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/routeregistry/registry.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAE9C,OAAO,EAA2B,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgDG;AACH,MAAM,WAAW,aAAa;IAC1B;;;;;;;OAOG;IACH,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAE5D;;;;;;OAMG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAAC;CAC7D;AAED;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CACnC,mBAAmB,CAAC,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC,CACnD,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,WAAW,cAAe,SAAQ,gBAAgB;IACpD;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEhC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,YAAY,CAAC,EAAE;QACX,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,KAAK,WAAW,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;KACxE,CAAC;CACL"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@limetech/lime-web-components",
3
- "version": "6.10.0",
3
+ "version": "6.11.0",
4
4
  "description": "Lime Web Components",
5
5
  "author": "Lime Technologies",
6
6
  "license": "Apache-2.0",
@@ -35,13 +35,13 @@
35
35
  "tslib": "^2.8.1"
36
36
  },
37
37
  "devDependencies": {
38
- "@commitlint/config-conventional": "^20.4.1",
38
+ "@commitlint/config-conventional": "^20.4.2",
39
39
  "@limetech/eslint-config": "^4.0.0",
40
40
  "@microsoft/api-extractor": "^7.56.3",
41
41
  "eslint": "^9.39.2",
42
42
  "expect-type": "^1.3.0",
43
43
  "globals": "^17.3.0",
44
- "jsdom": "^28.0.0",
44
+ "jsdom": "^28.1.0",
45
45
  "replace-in-file": "^8.4.0",
46
46
  "shelljs": "0.10.0",
47
47
  "typedoc": "^0.23.24",