@genesislcap/foundation-ui 14.492.0 → 14.492.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -131,14 +131,14 @@ interface HTMLWCProps extends React.AriaAttributes {
131
131
  onInput?(e: Event): void;
132
132
  }
133
133
 
134
- export declare const ActionsMenu: React.ForwardRefExoticComponent<
134
+ export declare const Accordion: React.ForwardRefExoticComponent<
135
135
  React.PropsWithChildren<
136
- Omit<PublicOf<ActionsMenuWC>, 'children' | 'style'> &
136
+ Omit<PublicOf<AccordionWC>, 'children' | 'style'> &
137
137
  HTMLWCProps & {
138
138
  }
139
- > & React.RefAttributes<ActionsMenuWC>
139
+ > & React.RefAttributes<AccordionWC>
140
140
  >;
141
- export type ActionsMenuRef = ActionsMenuWC;
141
+ export type AccordionRef = AccordionWC;
142
142
 
143
143
  export declare const AccordionItem: React.ForwardRefExoticComponent<
144
144
  React.PropsWithChildren<
@@ -149,16 +149,14 @@ export declare const AccordionItem: React.ForwardRefExoticComponent<
149
149
  >;
150
150
  export type AccordionItemRef = AccordionItemWC;
151
151
 
152
- export declare const AiCriteriaSearch: React.ForwardRefExoticComponent<
152
+ export declare const ActionsMenu: React.ForwardRefExoticComponent<
153
153
  React.PropsWithChildren<
154
- Omit<PublicOf<AiCriteriaSearchWC>, 'children' | 'style'> &
154
+ Omit<PublicOf<ActionsMenuWC>, 'children' | 'style'> &
155
155
  HTMLWCProps & {
156
- onCriteriaChanged?: (event: CustomEvent<string | null>) => void;
157
- onValidationErrors?: (event: CustomEvent<ValidationError[]>) => void;
158
156
  }
159
- > & React.RefAttributes<AiCriteriaSearchWC>
157
+ > & React.RefAttributes<ActionsMenuWC>
160
158
  >;
161
- export type AiCriteriaSearchRef = AiCriteriaSearchWC;
159
+ export type ActionsMenuRef = ActionsMenuWC;
162
160
 
163
161
  export declare const AiIndicator: React.ForwardRefExoticComponent<
164
162
  React.PropsWithChildren<
@@ -169,14 +167,16 @@ export declare const AiIndicator: React.ForwardRefExoticComponent<
169
167
  >;
170
168
  export type AiIndicatorRef = AiIndicatorWC;
171
169
 
172
- export declare const Accordion: React.ForwardRefExoticComponent<
170
+ export declare const AiCriteriaSearch: React.ForwardRefExoticComponent<
173
171
  React.PropsWithChildren<
174
- Omit<PublicOf<AccordionWC>, 'children' | 'style'> &
172
+ Omit<PublicOf<AiCriteriaSearchWC>, 'children' | 'style'> &
175
173
  HTMLWCProps & {
174
+ onCriteriaChanged?: (event: CustomEvent<string | null>) => void;
175
+ onValidationErrors?: (event: CustomEvent<ValidationError[]>) => void;
176
176
  }
177
- > & React.RefAttributes<AccordionWC>
177
+ > & React.RefAttributes<AiCriteriaSearchWC>
178
178
  >;
179
- export type AccordionRef = AccordionWC;
179
+ export type AiCriteriaSearchRef = AiCriteriaSearchWC;
180
180
 
181
181
  export declare const Anchor: React.ForwardRefExoticComponent<
182
182
  React.PropsWithChildren<
@@ -391,6 +391,17 @@ export declare abstract class BaseDatasource extends BaseDatasource_base {
391
391
  private refetchIfInitializedAndChanged;
392
392
  resourceName: string;
393
393
  reverse: boolean;
394
+ /**
395
+ * Explicit override for the field that uniquely identifies a row.
396
+ *
397
+ * @remarks
398
+ * Leave unset (the default) and the id is derived from the resolved resource type via
399
+ * {@link BaseDatasource.effectiveRowId} - `ROW_REF` for DATASERVER rows, `RECORD_ID` for
400
+ * REQUEST_SERVER (request/reply) rows. Only set this when a resource uses a non-standard
401
+ * identifier; a hardcoded value silently breaks if the datasource is later repointed at a
402
+ * different resource type.
403
+ * @public
404
+ */
394
405
  rowId: string;
395
406
  /**
396
407
  * Enabled by default, will format UNIX timestamp fields to readable [DATE|DATETIME] values.
@@ -415,6 +426,20 @@ export declare abstract class BaseDatasource extends BaseDatasource_base {
415
426
  update: BehaviorSubject<Map<string, string>>;
416
427
  private fetchGeneration;
417
428
  disconnectedCallback(): void;
429
+ /**
430
+ * The field used to key rows into {@link BaseDatasource.rowsSyncedWithStream}.
431
+ *
432
+ * @remarks
433
+ * An explicit {@link BaseDatasource.rowId} always wins. Otherwise the id is derived from the
434
+ * resolved resource type: REQUEST_SERVER (request/reply) rows carry no `ROW_REF` and are
435
+ * identified by `RECORD_ID`, while DATASERVER rows use `ROW_REF`. Computed from the current
436
+ * `resourceType` on every access, so repointing across resource types stays correct.
437
+ *
438
+ * `resourceType` is only known after `datasource.init()`; before then this falls back to the
439
+ * DATASERVER default, which is harmless because no rows are keyed until data arrives.
440
+ * @public
441
+ */
442
+ get effectiveRowId(): string;
418
443
  reset(): void;
419
444
  abstract clearData(): void;
420
445
  abstract syncComponentData(snapshotData?: any[]): void;
@@ -1 +1 @@
1
- {"version":3,"file":"base-datasource.d.ts","sourceRoot":"","sources":["../../../src/utils/base-datasource.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base-datasource.d.ts","sourceRoot":"","sources":["../../../src/utils/base-datasource.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,6 @@ export class BaseDatasource extends DatasourceEventHandler(FoundationElement) {
17
17
  this.maxView = DatasourceDefaults.MAX_VIEW_1000;
18
18
  this.resourceName = '';
19
19
  this.reverse = false;
20
- this.rowId = 'ROW_REF';
21
20
  /**
22
21
  * Enabled by default, will format UNIX timestamp fields to readable [DATE|DATETIME] values.
23
22
  * @public
@@ -80,6 +79,28 @@ export class BaseDatasource extends DatasourceEventHandler(FoundationElement) {
80
79
  this.datasource.destroy();
81
80
  delete this.datasource;
82
81
  }
82
+ /**
83
+ * The field used to key rows into {@link BaseDatasource.rowsSyncedWithStream}.
84
+ *
85
+ * @remarks
86
+ * An explicit {@link BaseDatasource.rowId} always wins. Otherwise the id is derived from the
87
+ * resolved resource type: REQUEST_SERVER (request/reply) rows carry no `ROW_REF` and are
88
+ * identified by `RECORD_ID`, while DATASERVER rows use `ROW_REF`. Computed from the current
89
+ * `resourceType` on every access, so repointing across resource types stays correct.
90
+ *
91
+ * `resourceType` is only known after `datasource.init()`; before then this falls back to the
92
+ * DATASERVER default, which is harmless because no rows are keyed until data arrives.
93
+ * @public
94
+ */
95
+ get effectiveRowId() {
96
+ var _a;
97
+ if (this.rowId) {
98
+ return this.rowId;
99
+ }
100
+ return ((_a = this.datasource) === null || _a === void 0 ? void 0 : _a.resourceType) === ResourceType.REQUEST_SERVER
101
+ ? DatasourceDefaults.REQUEST_SERVER_ROW_ID
102
+ : DatasourceDefaults.DATASERVER_ROW_ID;
103
+ }
83
104
  // Genesis Specific
84
105
  reset() {
85
106
  this.requiresFullDataRefresh = true;
@@ -307,20 +328,12 @@ export class BaseDatasource extends DatasourceEventHandler(FoundationElement) {
307
328
  });
308
329
  return;
309
330
  }
310
- if (this.rowId === 'ROW_REF') {
311
- // Request/reply rows have no ROW_REF (that's a data-server-only concept), so there's
312
- // no stable row identity to diff against. Each poll is already a full, self-contained
313
- // snapshot, so just render it directly rather than merging it into rowsSyncedWithStream.
314
- this.syncComponentData(requestServerResult.REPLY);
315
- return;
316
- }
317
331
  if (this.requiresFullDataRefresh) {
318
- // Subclasses that never leave full-refresh mode (e.g. options/data-grid datasources)
319
- // rely on this branch to render req/rep data: their handleStream* hooks are stubs or
320
- // serve infinite-scroll page appends, not poll diffing, so falling through would drop
321
- // or duplicate the reply.
332
+ // First render (and subclasses that never leave full-refresh mode, e.g. options/data-grid
333
+ // whose handleStream* hooks are stubs or serve infinite-scroll appends): merge the reply
334
+ // into the cache by its resolved identity and render the whole set.
322
335
  (_b = requestServerResult.REPLY) === null || _b === void 0 ? void 0 : _b.forEach((insertData) => {
323
- this.rowsSyncedWithStream.set(insertData[this.rowId], insertData);
336
+ this.rowsSyncedWithStream.set(insertData[this.effectiveRowId], insertData);
324
337
  });
325
338
  this.syncComponentData(Array.from(this.rowsSyncedWithStream.values()));
326
339
  return;
@@ -333,7 +346,7 @@ export class BaseDatasource extends DatasourceEventHandler(FoundationElement) {
333
346
  var _a, _b, _c, _d;
334
347
  if (this.requiresFullDataRefresh) {
335
348
  (_a = dataServerResult.inserts) === null || _a === void 0 ? void 0 : _a.forEach((insertData) => {
336
- this.rowsSyncedWithStream.set(insertData[this.rowId], insertData);
349
+ this.rowsSyncedWithStream.set(insertData[this.effectiveRowId], insertData);
337
350
  });
338
351
  const rowData = Array.from(this.rowsSyncedWithStream.values());
339
352
  this.syncComponentData(rowData);
@@ -8915,6 +8915,36 @@
8915
8915
  "isAbstract": false,
8916
8916
  "name": "disconnectedCallback"
8917
8917
  },
8918
+ {
8919
+ "kind": "Property",
8920
+ "canonicalReference": "@genesislcap/foundation-ui!BaseDatasource#effectiveRowId:member",
8921
+ "docComment": "/**\n * The field used to key rows into {@link BaseDatasource.rowsSyncedWithStream}.\n *\n * @remarks\n *\n * An explicit {@link BaseDatasource.rowId} always wins. Otherwise the id is derived from the resolved resource type: REQUEST_SERVER (request/reply) rows carry no `ROW_REF` and are identified by `RECORD_ID`, while DATASERVER rows use `ROW_REF`. Computed from the current `resourceType` on every access, so repointing across resource types stays correct.\n *\n * `resourceType` is only known after `datasource.init()`; before then this falls back to the DATASERVER default, which is harmless because no rows are keyed until data arrives.\n *\n * @public\n */\n",
8922
+ "excerptTokens": [
8923
+ {
8924
+ "kind": "Content",
8925
+ "text": "get effectiveRowId(): "
8926
+ },
8927
+ {
8928
+ "kind": "Content",
8929
+ "text": "string"
8930
+ },
8931
+ {
8932
+ "kind": "Content",
8933
+ "text": ";"
8934
+ }
8935
+ ],
8936
+ "isReadonly": true,
8937
+ "isOptional": false,
8938
+ "releaseTag": "Public",
8939
+ "name": "effectiveRowId",
8940
+ "propertyTypeTokenRange": {
8941
+ "startIndex": 1,
8942
+ "endIndex": 2
8943
+ },
8944
+ "isStatic": false,
8945
+ "isProtected": false,
8946
+ "isAbstract": false
8947
+ },
8918
8948
  {
8919
8949
  "kind": "Method",
8920
8950
  "canonicalReference": "@genesislcap/foundation-ui!BaseDatasource#fetchGenesisData:member(1)",
@@ -9823,7 +9853,7 @@
9823
9853
  {
9824
9854
  "kind": "Property",
9825
9855
  "canonicalReference": "@genesislcap/foundation-ui!BaseDatasource#rowId:member",
9826
- "docComment": "",
9856
+ "docComment": "/**\n * Explicit override for the field that uniquely identifies a row.\n *\n * @remarks\n *\n * Leave unset (the default) and the id is derived from the resolved resource type via {@link BaseDatasource.effectiveRowId} - `ROW_REF` for DATASERVER rows, `RECORD_ID` for REQUEST_SERVER (request/reply) rows. Only set this when a resource uses a non-standard identifier; a hardcoded value silently breaks if the datasource is later repointed at a different resource type.\n *\n * @public\n */\n",
9827
9857
  "excerptTokens": [
9828
9858
  {
9829
9859
  "kind": "Content",
@@ -906,6 +906,17 @@ export declare abstract class BaseDatasource extends BaseDatasource_base {
906
906
  private refetchIfInitializedAndChanged;
907
907
  resourceName: string;
908
908
  reverse: boolean;
909
+ /**
910
+ * Explicit override for the field that uniquely identifies a row.
911
+ *
912
+ * @remarks
913
+ * Leave unset (the default) and the id is derived from the resolved resource type via
914
+ * {@link BaseDatasource.effectiveRowId} - `ROW_REF` for DATASERVER rows, `RECORD_ID` for
915
+ * REQUEST_SERVER (request/reply) rows. Only set this when a resource uses a non-standard
916
+ * identifier; a hardcoded value silently breaks if the datasource is later repointed at a
917
+ * different resource type.
918
+ * @public
919
+ */
909
920
  rowId: string;
910
921
  /**
911
922
  * Enabled by default, will format UNIX timestamp fields to readable [DATE|DATETIME] values.
@@ -930,6 +941,20 @@ export declare abstract class BaseDatasource extends BaseDatasource_base {
930
941
  update: BehaviorSubject<Map<string, string>>;
931
942
  private fetchGeneration;
932
943
  disconnectedCallback(): void;
944
+ /**
945
+ * The field used to key rows into {@link BaseDatasource.rowsSyncedWithStream}.
946
+ *
947
+ * @remarks
948
+ * An explicit {@link BaseDatasource.rowId} always wins. Otherwise the id is derived from the
949
+ * resolved resource type: REQUEST_SERVER (request/reply) rows carry no `ROW_REF` and are
950
+ * identified by `RECORD_ID`, while DATASERVER rows use `ROW_REF`. Computed from the current
951
+ * `resourceType` on every access, so repointing across resource types stays correct.
952
+ *
953
+ * `resourceType` is only known after `datasource.init()`; before then this falls back to the
954
+ * DATASERVER default, which is harmless because no rows are keyed until data arrives.
955
+ * @public
956
+ */
957
+ get effectiveRowId(): string;
933
958
  reset(): void;
934
959
  abstract clearData(): void;
935
960
  abstract syncComponentData(snapshotData?: any[]): void;
package/dist/react.cjs CHANGED
@@ -111,9 +111,9 @@ function _mergeRefs(...refs) {
111
111
  };
112
112
  }
113
113
 
114
- const ActionsMenu = React.forwardRef(function ActionsMenu(props, ref) {
114
+ const Accordion = React.forwardRef(function Accordion(props, ref) {
115
115
  const { children, ...rest } = props;
116
- return React.createElement(customElements.getName(ActionsMenuWC) ?? '%%prefix%%-actions-menu', { ...rest, ref }, children);
116
+ return React.createElement(customElements.getName(AccordionWC) ?? '%%prefix%%-accordion', { ...rest, ref }, children);
117
117
  });
118
118
 
119
119
  const AccordionItem = React.forwardRef(function AccordionItem(props, ref) {
@@ -121,6 +121,16 @@ const AccordionItem = React.forwardRef(function AccordionItem(props, ref) {
121
121
  return React.createElement(customElements.getName(AccordionItemWC) ?? '%%prefix%%-accordion-item', { ...rest, ref }, children);
122
122
  });
123
123
 
124
+ const ActionsMenu = React.forwardRef(function ActionsMenu(props, ref) {
125
+ const { children, ...rest } = props;
126
+ return React.createElement(customElements.getName(ActionsMenuWC) ?? '%%prefix%%-actions-menu', { ...rest, ref }, children);
127
+ });
128
+
129
+ const AiIndicator = React.forwardRef(function AiIndicator(props, ref) {
130
+ const { children, ...rest } = props;
131
+ return React.createElement(customElements.getName(AiIndicatorWC) ?? '%%prefix%%-ai-indicator', { ...rest, ref }, children);
132
+ });
133
+
124
134
  const AiCriteriaSearch = React.forwardRef(function AiCriteriaSearch(props, ref) {
125
135
  const { onCriteriaChanged, onValidationErrors, children, ...rest } = props;
126
136
  const _innerRef = React.useRef(null);
@@ -143,16 +153,6 @@ const AiCriteriaSearch = React.forwardRef(function AiCriteriaSearch(props, ref)
143
153
  return React.createElement(customElements.getName(AiCriteriaSearchWC) ?? '%%prefix%%-ai-criteria-search', { ...rest, ref: _mergeRefs(_innerRef, ref) }, children);
144
154
  });
145
155
 
146
- const AiIndicator = React.forwardRef(function AiIndicator(props, ref) {
147
- const { children, ...rest } = props;
148
- return React.createElement(customElements.getName(AiIndicatorWC) ?? '%%prefix%%-ai-indicator', { ...rest, ref }, children);
149
- });
150
-
151
- const Accordion = React.forwardRef(function Accordion(props, ref) {
152
- const { children, ...rest } = props;
153
- return React.createElement(customElements.getName(AccordionWC) ?? '%%prefix%%-accordion', { ...rest, ref }, children);
154
- });
155
-
156
156
  const Anchor = React.forwardRef(function Anchor(props, ref) {
157
157
  const { children, ...rest } = props;
158
158
  return React.createElement(customElements.getName(AnchorWC) ?? '%%prefix%%-anchor', { ...rest, ref }, children);
@@ -1102,11 +1102,11 @@ const WeeklyRecurrence = React.forwardRef(function WeeklyRecurrence(props, ref)
1102
1102
  });
1103
1103
 
1104
1104
  module.exports = {
1105
- ActionsMenu,
1105
+ Accordion,
1106
1106
  AccordionItem,
1107
- AiCriteriaSearch,
1107
+ ActionsMenu,
1108
1108
  AiIndicator,
1109
- Accordion,
1109
+ AiCriteriaSearch,
1110
1110
  Anchor,
1111
1111
  AnchoredRegion,
1112
1112
  Avatar,
package/dist/react.mjs CHANGED
@@ -109,9 +109,9 @@ function _mergeRefs(...refs) {
109
109
  };
110
110
  }
111
111
 
112
- export const ActionsMenu = React.forwardRef(function ActionsMenu(props, ref) {
112
+ export const Accordion = React.forwardRef(function Accordion(props, ref) {
113
113
  const { children, ...rest } = props;
114
- return React.createElement(customElements.getName(ActionsMenuWC) ?? '%%prefix%%-actions-menu', { ...rest, ref }, children);
114
+ return React.createElement(customElements.getName(AccordionWC) ?? '%%prefix%%-accordion', { ...rest, ref }, children);
115
115
  });
116
116
 
117
117
  export const AccordionItem = React.forwardRef(function AccordionItem(props, ref) {
@@ -119,6 +119,16 @@ export const AccordionItem = React.forwardRef(function AccordionItem(props, ref)
119
119
  return React.createElement(customElements.getName(AccordionItemWC) ?? '%%prefix%%-accordion-item', { ...rest, ref }, children);
120
120
  });
121
121
 
122
+ export const ActionsMenu = React.forwardRef(function ActionsMenu(props, ref) {
123
+ const { children, ...rest } = props;
124
+ return React.createElement(customElements.getName(ActionsMenuWC) ?? '%%prefix%%-actions-menu', { ...rest, ref }, children);
125
+ });
126
+
127
+ export const AiIndicator = React.forwardRef(function AiIndicator(props, ref) {
128
+ const { children, ...rest } = props;
129
+ return React.createElement(customElements.getName(AiIndicatorWC) ?? '%%prefix%%-ai-indicator', { ...rest, ref }, children);
130
+ });
131
+
122
132
  export const AiCriteriaSearch = React.forwardRef(function AiCriteriaSearch(props, ref) {
123
133
  const { onCriteriaChanged, onValidationErrors, children, ...rest } = props;
124
134
  const _innerRef = React.useRef(null);
@@ -141,16 +151,6 @@ export const AiCriteriaSearch = React.forwardRef(function AiCriteriaSearch(props
141
151
  return React.createElement(customElements.getName(AiCriteriaSearchWC) ?? '%%prefix%%-ai-criteria-search', { ...rest, ref: _mergeRefs(_innerRef, ref) }, children);
142
152
  });
143
153
 
144
- export const AiIndicator = React.forwardRef(function AiIndicator(props, ref) {
145
- const { children, ...rest } = props;
146
- return React.createElement(customElements.getName(AiIndicatorWC) ?? '%%prefix%%-ai-indicator', { ...rest, ref }, children);
147
- });
148
-
149
- export const Accordion = React.forwardRef(function Accordion(props, ref) {
150
- const { children, ...rest } = props;
151
- return React.createElement(customElements.getName(AccordionWC) ?? '%%prefix%%-accordion', { ...rest, ref }, children);
152
- });
153
-
154
154
  export const Anchor = React.forwardRef(function Anchor(props, ref) {
155
155
  const { children, ...rest } = props;
156
156
  return React.createElement(customElements.getName(AnchorWC) ?? '%%prefix%%-anchor', { ...rest, ref }, children);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@genesislcap/foundation-ui",
3
3
  "description": "Genesis Foundation UI",
4
- "version": "14.492.0",
4
+ "version": "14.492.1",
5
5
  "sideEffects": false,
6
6
  "license": "SEE LICENSE IN license.txt",
7
7
  "main": "dist/esm/index.js",
@@ -85,13 +85,13 @@
85
85
  }
86
86
  },
87
87
  "devDependencies": {
88
- "@genesislcap/foundation-testing": "14.492.0",
89
- "@genesislcap/genx": "14.492.0",
90
- "@genesislcap/rollup-builder": "14.492.0",
91
- "@genesislcap/ts-builder": "14.492.0",
92
- "@genesislcap/uvu-playwright-builder": "14.492.0",
93
- "@genesislcap/vite-builder": "14.492.0",
94
- "@genesislcap/webpack-builder": "14.492.0",
88
+ "@genesislcap/foundation-testing": "14.492.1",
89
+ "@genesislcap/genx": "14.492.1",
90
+ "@genesislcap/rollup-builder": "14.492.1",
91
+ "@genesislcap/ts-builder": "14.492.1",
92
+ "@genesislcap/uvu-playwright-builder": "14.492.1",
93
+ "@genesislcap/vite-builder": "14.492.1",
94
+ "@genesislcap/webpack-builder": "14.492.1",
95
95
  "copyfiles": "^2.4.1"
96
96
  },
97
97
  "dependencies": {
@@ -100,16 +100,16 @@
100
100
  "@fortawesome/free-regular-svg-icons": "^6.2.1",
101
101
  "@fortawesome/free-solid-svg-icons": "^6.2.1",
102
102
  "@genesiscommunitysuccess/analyzer-import-alias-plugin": "^5.0.3",
103
- "@genesislcap/expression-builder": "14.492.0",
104
- "@genesislcap/foundation-ai": "14.492.0",
105
- "@genesislcap/foundation-comms": "14.492.0",
106
- "@genesislcap/foundation-criteria": "14.492.0",
107
- "@genesislcap/foundation-errors": "14.492.0",
108
- "@genesislcap/foundation-events": "14.492.0",
109
- "@genesislcap/foundation-logger": "14.492.0",
110
- "@genesislcap/foundation-notifications": "14.492.0",
111
- "@genesislcap/foundation-user": "14.492.0",
112
- "@genesislcap/foundation-utils": "14.492.0",
103
+ "@genesislcap/expression-builder": "14.492.1",
104
+ "@genesislcap/foundation-ai": "14.492.1",
105
+ "@genesislcap/foundation-comms": "14.492.1",
106
+ "@genesislcap/foundation-criteria": "14.492.1",
107
+ "@genesislcap/foundation-errors": "14.492.1",
108
+ "@genesislcap/foundation-events": "14.492.1",
109
+ "@genesislcap/foundation-logger": "14.492.1",
110
+ "@genesislcap/foundation-notifications": "14.492.1",
111
+ "@genesislcap/foundation-user": "14.492.1",
112
+ "@genesislcap/foundation-utils": "14.492.1",
113
113
  "@microsoft/fast-colors": "5.3.1",
114
114
  "@microsoft/fast-components": "2.30.6",
115
115
  "@microsoft/fast-element": "1.14.0",
@@ -142,5 +142,5 @@
142
142
  "require": "./dist/react.cjs"
143
143
  }
144
144
  },
145
- "gitHead": "a0a04e2ee9ff67058d488f2d0e0ff12b26d3437c"
145
+ "gitHead": "f26e1aef5e771f18dc447fa95bb4f1b63915993c"
146
146
  }