@pisapp/react-helpers 7.0.0-dev.20260916-153034

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/LICENSE ADDED
@@ -0,0 +1,28 @@
1
+ PRODUCT INFORMATION SERVICES (PIS) PROPRIETARY SOFTWARE LICENSE
2
+
3
+ Copyright (c) 2026 ABB Asea Brown Boveri Ltd. All rights reserved.
4
+
5
+ The Product Information Services (PIS) software package and its documentation
6
+ (the "Software") are proprietary to ABB Asea Brown Boveri Ltd and its
7
+ licensors.
8
+
9
+ Subject to a valid written agreement between ABB and you or the organization
10
+ you represent that authorizes use of PIS (the "Applicable Agreement"), ABB
11
+ grants you a non-exclusive, non-transferable, non-sublicensable, limited
12
+ license to install and use the Software solely to develop, test, and run
13
+ applications that access PIS services as authorized by the Applicable
14
+ Agreement.
15
+
16
+ Except to the extent that mandatory law does not allow a restriction, you may
17
+ not copy, modify, distribute, publish, sublicense, rent, lease, sell, or
18
+ otherwise make the Software available to a third party. You may not remove or
19
+ alter proprietary notices or reverse engineer the Software except as expressly
20
+ permitted by mandatory law.
21
+
22
+ If no Applicable Agreement authorizes your use of PIS, no license to use the
23
+ Software is granted. Your right to use the Software ends when the Applicable
24
+ Agreement ends or your authorization under it is withdrawn.
25
+
26
+ The Applicable Agreement controls if it conflicts with this notice. The
27
+ Software is provided subject to the warranties, limitations of liability, and
28
+ other terms in the Applicable Agreement.
package/README.md ADDED
@@ -0,0 +1,66 @@
1
+ # @pisapp/react-helpers
2
+
3
+ React 18+ helper for **PIS v7**. `compileComponent(C)` mounts a React component
4
+ into a PIS template surface (a table cell, header, pagination slot, …) and
5
+ bridges the PIS reactive context to React so that mutations to `ctx` fields
6
+ re-render your component.
7
+
8
+ ## Install
9
+
10
+ ```bash
11
+ pnpm add @pisapp/core @pisapp/react-helpers react react-dom vue
12
+ # npm install @pisapp/core @pisapp/react-helpers react react-dom vue
13
+ ```
14
+
15
+ ### Peer dependencies
16
+
17
+ | Package | Range | Notes |
18
+ | -------------- | -------- | ------------------------------ |
19
+ | `@pisapp/core` | `^7.0.0` | The component runtime + types. |
20
+ | `react` | `>=18` | |
21
+ | `react-dom` | `>=18` | |
22
+ | `vue` | `^3.5.0` | **Required.** See below. |
23
+
24
+ > **Why is `vue` required?** The PIS context (`ctx`) passed to your component is
25
+ > a Vue `reactive()` object. This helper bridges that Vue-reactive ctx to React
26
+ > (it is built on `@vue/reactivity`), so `vue` is a required peer dependency —
27
+ > even though you write React and never touch Vue yourself. Omitting it produces
28
+ > a missing-peer error at install time.
29
+
30
+ ## Usage
31
+
32
+ ```tsx
33
+ import { registerAll } from '@pisapp/core';
34
+ import '@pisapp/react-helpers/jsx'; // JSX tag types for <pis-*> (import once)
35
+ import { compileComponent } from '@pisapp/react-helpers';
36
+ import { BuyButton } from './BuyButton';
37
+
38
+ registerAll(); // explicit registration (C11 follow-up) — once at startup
39
+
40
+ const cellCallbacks = compileComponent(BuyButton);
41
+
42
+ const options = {
43
+ components: {
44
+ itemsTable: {
45
+ columns: [{ dataField: 'ProductId', cellTemplate: cellCallbacks }],
46
+ },
47
+ },
48
+ };
49
+
50
+ // BuyButton receives the ctx as a SINGLE prop.
51
+ export function BuyButton({
52
+ ctx,
53
+ }: {
54
+ ctx: { item: { productId: string }; t: (s: string) => string };
55
+ }) {
56
+ return <button>{ctx.t('Buy')}</button>;
57
+ }
58
+ ```
59
+
60
+ `compileComponent` returns the `{ mount }` template value (`TemplateCallbacks`)
61
+ that PIS expects on a template slot; `mount` returns the teardown cleanup PIS
62
+ runs when the cell goes away. Your component still owns cleanup of any external
63
+ subscriptions.
64
+
65
+ See the [React migration guide](../../PisNextGenDocs/src/migration/web-components/react.md) for
66
+ the full DSL translation rules and the codemod-first migration flow.
@@ -0,0 +1,43 @@
1
+ THIRD-PARTY NOTICES
2
+
3
+ Product Information Services (PIS) packages may include or depend on the
4
+ third-party software listed below. The applicable third-party license terms
5
+ apply to that software.
6
+
7
+ Bootstrap 5.3.2
8
+ Copyright (c) 2011-2023 The Bootstrap Authors
9
+
10
+ vue-virtual-scroller 2.0.1
11
+ Copyright (c) 2020 guillaume.b.chau@gmail.com
12
+
13
+ Vue 3.5.40
14
+ Copyright (c) 2018-present, Yuxi (Evan) You
15
+
16
+ vue3-runtime-template 1.0.2
17
+ Copyright (c) 2018 Alex Jover
18
+
19
+ The components listed above are licensed under the MIT License:
20
+
21
+ MIT License
22
+
23
+ Permission is hereby granted, free of charge, to any person obtaining a copy
24
+ of this software and associated documentation files (the "Software"), to deal
25
+ in the Software without restriction, including without limitation the rights
26
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
27
+ copies of the Software, and to permit persons to whom the Software is
28
+ furnished to do so, subject to the following conditions:
29
+
30
+ The above copyright notice and this permission notice shall be included in all
31
+ copies or substantial portions of the Software.
32
+
33
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
34
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
35
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
36
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
37
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
38
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
39
+ SOFTWARE.
40
+
41
+ ABBvoice font assets are proprietary ABB assets. They are not redistributed in
42
+ these npm packages. PIS CSS references the ABB-hosted font service at:
43
+ https://external.productinformation.abb.com/PisApp/current/fonts/
@@ -0,0 +1,25 @@
1
+ import { TemplateCallbacks } from '@pisapp/core';
2
+ import { ComponentType } from 'react';
3
+ /**
4
+ * Compile a React component into a template mount value. The context type `C`
5
+ * is inferred from the component's `ctx` prop (React's `ComponentType<P>`
6
+ * preserves prop types), so type safety is anchored to the component's own
7
+ * declaration — annotate `ctx` with the surface context type
8
+ * (e.g. `ProductsSearchTableCellProps`) and the call site is checked end-to-end with no
9
+ * extra arguments. The component receives the reactive ctx as a SINGLE `ctx`
10
+ * prop; mutations to ctx fields re-render automatically (D-N2 bridge).
11
+ *
12
+ * React renders inside a Vue watchEffect, so only the reactive ctx fields read
13
+ * by the component become dependencies — no deep traversal of the full PIS
14
+ * context graph for every mounted cell.
15
+ *
16
+ * `compileComponent` returns `{ mount }` (decision D-Grouped); `mount` returns
17
+ * the teardown cleanup (stops the watcher, unmounts the React root).
18
+ *
19
+ * Light-DOM note: PIS v7 components render with `shadowRoot: false`, so the
20
+ * mount container is plain light DOM and host-document CSS reaches the mounted
21
+ * component naturally — no stylesheet mirroring is done here.
22
+ */
23
+ export declare function compileComponent<C>(component: ComponentType<{
24
+ ctx: C;
25
+ }>): TemplateCallbacks<C>;
package/dist/index.js ADDED
@@ -0,0 +1,19 @@
1
+ import { flushSync as e } from "react-dom";
2
+ import { createRoot as t } from "react-dom/client";
3
+ import { watchEffect as n } from "vue";
4
+ import { jsx as r } from "react/jsx-runtime";
5
+ //#region src/index.tsx
6
+ var i = /* @__PURE__ */ new WeakMap();
7
+ function a(a) {
8
+ return { mount: (o, s) => {
9
+ i.get(o)?.();
10
+ let c = t(o), l = a, u = n(() => {
11
+ e(() => c.render(/* @__PURE__ */ r(l, { ctx: s })));
12
+ }, { flush: "sync" }), d = !1, f = () => {
13
+ d || (d = !0, i.delete(o), u(), c.unmount());
14
+ };
15
+ return i.set(o, f), f;
16
+ } };
17
+ }
18
+ //#endregion
19
+ export { a as compileComponent };
package/dist/jsx.d.ts ADDED
@@ -0,0 +1,211 @@
1
+ /**
2
+ * GENERATED by scripts/generate-react-jsx.ts — DO NOT EDIT.
3
+ * Phase 6.1 (E1): React JSX IntrinsicElements for all pis-* tags.
4
+ * Source: packages/core/src/spec/components.shipped.json (D-SoT).
5
+ * Import once: `import "@pisapp/react-helpers/jsx";`
6
+ */
7
+ export {};
8
+ declare global {
9
+ namespace JSX {
10
+ interface IntrinsicElements {
11
+ 'pis-catalogs-aliases-search-actions-modals': import('@pisapp/core').PisCatalogsAliasesSearchActionsModalsAttributes;
12
+ 'pis-catalogs-aliases-search-filters': import('@pisapp/core').PisCatalogsAliasesSearchFiltersAttributes;
13
+ 'pis-catalogs-aliases-search-mobile-nav': import('@pisapp/core').PisCatalogsAliasesSearchMobileNavAttributes;
14
+ 'pis-catalogs-aliases-search-router-view': import('@pisapp/core').PisCatalogsAliasesSearchRouterViewAttributes;
15
+ 'pis-catalogs-aliases-search-table': import('@pisapp/core').PisCatalogsAliasesSearchTableAttributes;
16
+ 'pis-catalogs-aliases-search-toolbar': import('@pisapp/core').PisCatalogsAliasesSearchToolbarAttributes;
17
+ 'pis-catalogs-common-notifications': import('@pisapp/core').PisCatalogsCommonNotificationsAttributes;
18
+ 'pis-catalogs-common-view-switch': import('@pisapp/core').PisCatalogsCommonViewSwitchAttributes;
19
+ 'pis-catalogs-instance': import('@pisapp/core').PisCatalogsInstanceAttributes;
20
+ 'pis-catalogs-layout': import('@pisapp/core').PisCatalogsLayoutAttributes;
21
+ 'pis-catalogs-loading-indicator': import('@pisapp/core').PisCatalogsLoadingIndicatorAttributes;
22
+ 'pis-catalogs-products-preview': import('@pisapp/core').PisCatalogsProductsPreviewAttributes;
23
+ 'pis-catalogs-products-search-actions-modals': import('@pisapp/core').PisCatalogsProductsSearchActionsModalsAttributes;
24
+ 'pis-catalogs-products-search-breadcrumbs': import('@pisapp/core').PisCatalogsProductsSearchBreadcrumbsAttributes;
25
+ 'pis-catalogs-products-search-filters': import('@pisapp/core').PisCatalogsProductsSearchFiltersAttributes;
26
+ 'pis-catalogs-products-search-filters-status': import('@pisapp/core').PisCatalogsProductsSearchFiltersStatusAttributes;
27
+ 'pis-catalogs-products-search-form': import('@pisapp/core').PisCatalogsProductsSearchFormAttributes;
28
+ 'pis-catalogs-products-search-grid': import('@pisapp/core').PisCatalogsProductsSearchGridAttributes;
29
+ 'pis-catalogs-products-search-grid-horizontal': import('@pisapp/core').PisCatalogsProductsSearchGridHorizontalAttributes;
30
+ 'pis-catalogs-products-search-grid-router-view': import('@pisapp/core').PisCatalogsProductsSearchGridRouterViewAttributes;
31
+ 'pis-catalogs-products-search-list': import('@pisapp/core').PisCatalogsProductsSearchListAttributes;
32
+ 'pis-catalogs-products-search-list-router-view': import('@pisapp/core').PisCatalogsProductsSearchListRouterViewAttributes;
33
+ 'pis-catalogs-products-search-mobile-nav': import('@pisapp/core').PisCatalogsProductsSearchMobileNavAttributes;
34
+ 'pis-catalogs-products-search-no-results': import('@pisapp/core').PisCatalogsProductsSearchNoResultsAttributes;
35
+ 'pis-catalogs-products-search-pagination': import('@pisapp/core').PisCatalogsProductsSearchPaginationAttributes;
36
+ 'pis-catalogs-products-search-part-categories': import('@pisapp/core').PisCatalogsProductsSearchPartCategoriesAttributes;
37
+ 'pis-catalogs-products-search-product-categories': import('@pisapp/core').PisCatalogsProductsSearchProductCategoriesAttributes;
38
+ 'pis-catalogs-products-search-router-view': import('@pisapp/core').PisCatalogsProductsSearchRouterViewAttributes;
39
+ 'pis-catalogs-products-search-selection': import('@pisapp/core').PisCatalogsProductsSearchSelectionAttributes;
40
+ 'pis-catalogs-products-search-table': import('@pisapp/core').PisCatalogsProductsSearchTableAttributes;
41
+ 'pis-catalogs-products-search-table-router-view': import('@pisapp/core').PisCatalogsProductsSearchTableRouterViewAttributes;
42
+ 'pis-catalogs-products-search-toolbar': import('@pisapp/core').PisCatalogsProductsSearchToolbarAttributes;
43
+ 'pis-catalogs-search-actions-modals': import('@pisapp/core').PisCatalogsSearchActionsModalsAttributes;
44
+ 'pis-catalogs-search-form': import('@pisapp/core').PisCatalogsSearchFormAttributes;
45
+ 'pis-catalogs-search-pagination': import('@pisapp/core').PisCatalogsSearchPaginationAttributes;
46
+ 'pis-catalogs-search-router-view': import('@pisapp/core').PisCatalogsSearchRouterViewAttributes;
47
+ 'pis-catalogs-search-table': import('@pisapp/core').PisCatalogsSearchTableAttributes;
48
+ 'pis-catalogs-search-toolbar': import('@pisapp/core').PisCatalogsSearchToolbarAttributes;
49
+ 'pis-classifications-browser-actions': import('@pisapp/core').PisClassificationsBrowserActionsAttributes;
50
+ 'pis-classifications-browser-note': import('@pisapp/core').PisClassificationsBrowserNoteAttributes;
51
+ 'pis-classifications-browser-search-form': import('@pisapp/core').PisClassificationsBrowserSearchFormAttributes;
52
+ 'pis-classifications-browser-selection': import('@pisapp/core').PisClassificationsBrowserSelectionAttributes;
53
+ 'pis-classifications-browser-tree': import('@pisapp/core').PisClassificationsBrowserTreeAttributes;
54
+ 'pis-classifications-browser-tree-type-tabs': import('@pisapp/core').PisClassificationsBrowserTreeTypeTabsAttributes;
55
+ 'pis-classifications-common-notifications': import('@pisapp/core').PisClassificationsCommonNotificationsAttributes;
56
+ 'pis-classifications-instance': import('@pisapp/core').PisClassificationsInstanceAttributes;
57
+ 'pis-classifications-layout': import('@pisapp/core').PisClassificationsLayoutAttributes;
58
+ 'pis-classifications-loading-indicator': import('@pisapp/core').PisClassificationsLoadingIndicatorAttributes;
59
+ 'pis-products-common-actions-modals': import('@pisapp/core').PisProductsCommonActionsModalsAttributes;
60
+ 'pis-products-common-notifications': import('@pisapp/core').PisProductsCommonNotificationsAttributes;
61
+ 'pis-products-compare': import('@pisapp/core').PisProductsCompareAttributes;
62
+ 'pis-products-compare-router-view': import('@pisapp/core').PisProductsCompareRouterViewAttributes;
63
+ 'pis-products-details-actions': import('@pisapp/core').PisProductsDetailsActionsAttributes;
64
+ 'pis-products-details-attribute-groups': import('@pisapp/core').PisProductsDetailsAttributeGroupsAttributes;
65
+ 'pis-products-details-classifications': import('@pisapp/core').PisProductsDetailsClassificationsAttributes;
66
+ 'pis-products-details-data': import('@pisapp/core').PisProductsDetailsDataAttributes;
67
+ 'pis-products-details-gallery': import('@pisapp/core').PisProductsDetailsGalleryAttributes;
68
+ 'pis-products-details-general-information': import('@pisapp/core').PisProductsDetailsGeneralInformationAttributes;
69
+ 'pis-products-details-header': import('@pisapp/core').PisProductsDetailsHeaderAttributes;
70
+ 'pis-products-details-identifiers': import('@pisapp/core').PisProductsDetailsIdentifiersAttributes;
71
+ 'pis-products-details-navigation': import('@pisapp/core').PisProductsDetailsNavigationAttributes;
72
+ 'pis-products-details-related-links': import('@pisapp/core').PisProductsDetailsRelatedLinksAttributes;
73
+ 'pis-products-details-relationships': import('@pisapp/core').PisProductsDetailsRelationshipsAttributes;
74
+ 'pis-products-details-replacements': import('@pisapp/core').PisProductsDetailsReplacementsAttributes;
75
+ 'pis-products-details-router-view': import('@pisapp/core').PisProductsDetailsRouterViewAttributes;
76
+ 'pis-products-details-variants-dropdown': import('@pisapp/core').PisProductsDetailsVariantsDropdownAttributes;
77
+ 'pis-products-details-variants-selector': import('@pisapp/core').PisProductsDetailsVariantsSelectorAttributes;
78
+ 'pis-products-details-variants-table': import('@pisapp/core').PisProductsDetailsVariantsTableAttributes;
79
+ 'pis-products-instance': import('@pisapp/core').PisProductsInstanceAttributes;
80
+ 'pis-products-layout': import('@pisapp/core').PisProductsLayoutAttributes;
81
+ 'pis-products-loading-indicator': import('@pisapp/core').PisProductsLoadingIndicatorAttributes;
82
+ 'pis-products-preview': import('@pisapp/core').PisProductsPreviewAttributes;
83
+ 'pis-products-search-breadcrumbs': import('@pisapp/core').PisProductsSearchBreadcrumbsAttributes;
84
+ 'pis-products-search-categories': import('@pisapp/core').PisProductsSearchCategoriesAttributes;
85
+ 'pis-products-search-favorite-categories': import('@pisapp/core').PisProductsSearchFavoriteCategoriesAttributes;
86
+ 'pis-products-search-favorite-views': import('@pisapp/core').PisProductsSearchFavoriteViewsAttributes;
87
+ 'pis-products-search-filters': import('@pisapp/core').PisProductsSearchFiltersAttributes;
88
+ 'pis-products-search-filters-status': import('@pisapp/core').PisProductsSearchFiltersStatusAttributes;
89
+ 'pis-products-search-form': import('@pisapp/core').PisProductsSearchFormAttributes;
90
+ 'pis-products-search-grid': import('@pisapp/core').PisProductsSearchGridAttributes;
91
+ 'pis-products-search-grid-horizontal': import('@pisapp/core').PisProductsSearchGridHorizontalAttributes;
92
+ 'pis-products-search-grid-router-view': import('@pisapp/core').PisProductsSearchGridRouterViewAttributes;
93
+ 'pis-products-search-header': import('@pisapp/core').PisProductsSearchHeaderAttributes;
94
+ 'pis-products-search-list': import('@pisapp/core').PisProductsSearchListAttributes;
95
+ 'pis-products-search-list-router-view': import('@pisapp/core').PisProductsSearchListRouterViewAttributes;
96
+ 'pis-products-search-mobile-nav': import('@pisapp/core').PisProductsSearchMobileNavAttributes;
97
+ 'pis-products-search-narrow-by-product': import('@pisapp/core').PisProductsSearchNarrowByProductAttributes;
98
+ 'pis-products-search-no-results': import('@pisapp/core').PisProductsSearchNoResultsAttributes;
99
+ 'pis-products-search-no-results-gate': import('@pisapp/core').PisProductsSearchNoResultsGateAttributes;
100
+ 'pis-products-search-pagination': import('@pisapp/core').PisProductsSearchPaginationAttributes;
101
+ 'pis-products-search-part-types': import('@pisapp/core').PisProductsSearchPartTypesAttributes;
102
+ 'pis-products-search-router-view': import('@pisapp/core').PisProductsSearchRouterViewAttributes;
103
+ 'pis-products-search-selection': import('@pisapp/core').PisProductsSearchSelectionAttributes;
104
+ 'pis-products-search-table': import('@pisapp/core').PisProductsSearchTableAttributes;
105
+ 'pis-products-search-table-router-view': import('@pisapp/core').PisProductsSearchTableRouterViewAttributes;
106
+ 'pis-products-search-toolbar': import('@pisapp/core').PisProductsSearchToolbarAttributes;
107
+ }
108
+ }
109
+ }
110
+ declare module 'react' {
111
+ namespace JSX {
112
+ interface IntrinsicElements {
113
+ 'pis-catalogs-aliases-search-actions-modals': import('@pisapp/core').PisCatalogsAliasesSearchActionsModalsAttributes;
114
+ 'pis-catalogs-aliases-search-filters': import('@pisapp/core').PisCatalogsAliasesSearchFiltersAttributes;
115
+ 'pis-catalogs-aliases-search-mobile-nav': import('@pisapp/core').PisCatalogsAliasesSearchMobileNavAttributes;
116
+ 'pis-catalogs-aliases-search-router-view': import('@pisapp/core').PisCatalogsAliasesSearchRouterViewAttributes;
117
+ 'pis-catalogs-aliases-search-table': import('@pisapp/core').PisCatalogsAliasesSearchTableAttributes;
118
+ 'pis-catalogs-aliases-search-toolbar': import('@pisapp/core').PisCatalogsAliasesSearchToolbarAttributes;
119
+ 'pis-catalogs-common-notifications': import('@pisapp/core').PisCatalogsCommonNotificationsAttributes;
120
+ 'pis-catalogs-common-view-switch': import('@pisapp/core').PisCatalogsCommonViewSwitchAttributes;
121
+ 'pis-catalogs-instance': import('@pisapp/core').PisCatalogsInstanceAttributes;
122
+ 'pis-catalogs-layout': import('@pisapp/core').PisCatalogsLayoutAttributes;
123
+ 'pis-catalogs-loading-indicator': import('@pisapp/core').PisCatalogsLoadingIndicatorAttributes;
124
+ 'pis-catalogs-products-preview': import('@pisapp/core').PisCatalogsProductsPreviewAttributes;
125
+ 'pis-catalogs-products-search-actions-modals': import('@pisapp/core').PisCatalogsProductsSearchActionsModalsAttributes;
126
+ 'pis-catalogs-products-search-breadcrumbs': import('@pisapp/core').PisCatalogsProductsSearchBreadcrumbsAttributes;
127
+ 'pis-catalogs-products-search-filters': import('@pisapp/core').PisCatalogsProductsSearchFiltersAttributes;
128
+ 'pis-catalogs-products-search-filters-status': import('@pisapp/core').PisCatalogsProductsSearchFiltersStatusAttributes;
129
+ 'pis-catalogs-products-search-form': import('@pisapp/core').PisCatalogsProductsSearchFormAttributes;
130
+ 'pis-catalogs-products-search-grid': import('@pisapp/core').PisCatalogsProductsSearchGridAttributes;
131
+ 'pis-catalogs-products-search-grid-horizontal': import('@pisapp/core').PisCatalogsProductsSearchGridHorizontalAttributes;
132
+ 'pis-catalogs-products-search-grid-router-view': import('@pisapp/core').PisCatalogsProductsSearchGridRouterViewAttributes;
133
+ 'pis-catalogs-products-search-list': import('@pisapp/core').PisCatalogsProductsSearchListAttributes;
134
+ 'pis-catalogs-products-search-list-router-view': import('@pisapp/core').PisCatalogsProductsSearchListRouterViewAttributes;
135
+ 'pis-catalogs-products-search-mobile-nav': import('@pisapp/core').PisCatalogsProductsSearchMobileNavAttributes;
136
+ 'pis-catalogs-products-search-no-results': import('@pisapp/core').PisCatalogsProductsSearchNoResultsAttributes;
137
+ 'pis-catalogs-products-search-pagination': import('@pisapp/core').PisCatalogsProductsSearchPaginationAttributes;
138
+ 'pis-catalogs-products-search-part-categories': import('@pisapp/core').PisCatalogsProductsSearchPartCategoriesAttributes;
139
+ 'pis-catalogs-products-search-product-categories': import('@pisapp/core').PisCatalogsProductsSearchProductCategoriesAttributes;
140
+ 'pis-catalogs-products-search-router-view': import('@pisapp/core').PisCatalogsProductsSearchRouterViewAttributes;
141
+ 'pis-catalogs-products-search-selection': import('@pisapp/core').PisCatalogsProductsSearchSelectionAttributes;
142
+ 'pis-catalogs-products-search-table': import('@pisapp/core').PisCatalogsProductsSearchTableAttributes;
143
+ 'pis-catalogs-products-search-table-router-view': import('@pisapp/core').PisCatalogsProductsSearchTableRouterViewAttributes;
144
+ 'pis-catalogs-products-search-toolbar': import('@pisapp/core').PisCatalogsProductsSearchToolbarAttributes;
145
+ 'pis-catalogs-search-actions-modals': import('@pisapp/core').PisCatalogsSearchActionsModalsAttributes;
146
+ 'pis-catalogs-search-form': import('@pisapp/core').PisCatalogsSearchFormAttributes;
147
+ 'pis-catalogs-search-pagination': import('@pisapp/core').PisCatalogsSearchPaginationAttributes;
148
+ 'pis-catalogs-search-router-view': import('@pisapp/core').PisCatalogsSearchRouterViewAttributes;
149
+ 'pis-catalogs-search-table': import('@pisapp/core').PisCatalogsSearchTableAttributes;
150
+ 'pis-catalogs-search-toolbar': import('@pisapp/core').PisCatalogsSearchToolbarAttributes;
151
+ 'pis-classifications-browser-actions': import('@pisapp/core').PisClassificationsBrowserActionsAttributes;
152
+ 'pis-classifications-browser-note': import('@pisapp/core').PisClassificationsBrowserNoteAttributes;
153
+ 'pis-classifications-browser-search-form': import('@pisapp/core').PisClassificationsBrowserSearchFormAttributes;
154
+ 'pis-classifications-browser-selection': import('@pisapp/core').PisClassificationsBrowserSelectionAttributes;
155
+ 'pis-classifications-browser-tree': import('@pisapp/core').PisClassificationsBrowserTreeAttributes;
156
+ 'pis-classifications-browser-tree-type-tabs': import('@pisapp/core').PisClassificationsBrowserTreeTypeTabsAttributes;
157
+ 'pis-classifications-common-notifications': import('@pisapp/core').PisClassificationsCommonNotificationsAttributes;
158
+ 'pis-classifications-instance': import('@pisapp/core').PisClassificationsInstanceAttributes;
159
+ 'pis-classifications-layout': import('@pisapp/core').PisClassificationsLayoutAttributes;
160
+ 'pis-classifications-loading-indicator': import('@pisapp/core').PisClassificationsLoadingIndicatorAttributes;
161
+ 'pis-products-common-actions-modals': import('@pisapp/core').PisProductsCommonActionsModalsAttributes;
162
+ 'pis-products-common-notifications': import('@pisapp/core').PisProductsCommonNotificationsAttributes;
163
+ 'pis-products-compare': import('@pisapp/core').PisProductsCompareAttributes;
164
+ 'pis-products-compare-router-view': import('@pisapp/core').PisProductsCompareRouterViewAttributes;
165
+ 'pis-products-details-actions': import('@pisapp/core').PisProductsDetailsActionsAttributes;
166
+ 'pis-products-details-attribute-groups': import('@pisapp/core').PisProductsDetailsAttributeGroupsAttributes;
167
+ 'pis-products-details-classifications': import('@pisapp/core').PisProductsDetailsClassificationsAttributes;
168
+ 'pis-products-details-data': import('@pisapp/core').PisProductsDetailsDataAttributes;
169
+ 'pis-products-details-gallery': import('@pisapp/core').PisProductsDetailsGalleryAttributes;
170
+ 'pis-products-details-general-information': import('@pisapp/core').PisProductsDetailsGeneralInformationAttributes;
171
+ 'pis-products-details-header': import('@pisapp/core').PisProductsDetailsHeaderAttributes;
172
+ 'pis-products-details-identifiers': import('@pisapp/core').PisProductsDetailsIdentifiersAttributes;
173
+ 'pis-products-details-navigation': import('@pisapp/core').PisProductsDetailsNavigationAttributes;
174
+ 'pis-products-details-related-links': import('@pisapp/core').PisProductsDetailsRelatedLinksAttributes;
175
+ 'pis-products-details-relationships': import('@pisapp/core').PisProductsDetailsRelationshipsAttributes;
176
+ 'pis-products-details-replacements': import('@pisapp/core').PisProductsDetailsReplacementsAttributes;
177
+ 'pis-products-details-router-view': import('@pisapp/core').PisProductsDetailsRouterViewAttributes;
178
+ 'pis-products-details-variants-dropdown': import('@pisapp/core').PisProductsDetailsVariantsDropdownAttributes;
179
+ 'pis-products-details-variants-selector': import('@pisapp/core').PisProductsDetailsVariantsSelectorAttributes;
180
+ 'pis-products-details-variants-table': import('@pisapp/core').PisProductsDetailsVariantsTableAttributes;
181
+ 'pis-products-instance': import('@pisapp/core').PisProductsInstanceAttributes;
182
+ 'pis-products-layout': import('@pisapp/core').PisProductsLayoutAttributes;
183
+ 'pis-products-loading-indicator': import('@pisapp/core').PisProductsLoadingIndicatorAttributes;
184
+ 'pis-products-preview': import('@pisapp/core').PisProductsPreviewAttributes;
185
+ 'pis-products-search-breadcrumbs': import('@pisapp/core').PisProductsSearchBreadcrumbsAttributes;
186
+ 'pis-products-search-categories': import('@pisapp/core').PisProductsSearchCategoriesAttributes;
187
+ 'pis-products-search-favorite-categories': import('@pisapp/core').PisProductsSearchFavoriteCategoriesAttributes;
188
+ 'pis-products-search-favorite-views': import('@pisapp/core').PisProductsSearchFavoriteViewsAttributes;
189
+ 'pis-products-search-filters': import('@pisapp/core').PisProductsSearchFiltersAttributes;
190
+ 'pis-products-search-filters-status': import('@pisapp/core').PisProductsSearchFiltersStatusAttributes;
191
+ 'pis-products-search-form': import('@pisapp/core').PisProductsSearchFormAttributes;
192
+ 'pis-products-search-grid': import('@pisapp/core').PisProductsSearchGridAttributes;
193
+ 'pis-products-search-grid-horizontal': import('@pisapp/core').PisProductsSearchGridHorizontalAttributes;
194
+ 'pis-products-search-grid-router-view': import('@pisapp/core').PisProductsSearchGridRouterViewAttributes;
195
+ 'pis-products-search-header': import('@pisapp/core').PisProductsSearchHeaderAttributes;
196
+ 'pis-products-search-list': import('@pisapp/core').PisProductsSearchListAttributes;
197
+ 'pis-products-search-list-router-view': import('@pisapp/core').PisProductsSearchListRouterViewAttributes;
198
+ 'pis-products-search-mobile-nav': import('@pisapp/core').PisProductsSearchMobileNavAttributes;
199
+ 'pis-products-search-narrow-by-product': import('@pisapp/core').PisProductsSearchNarrowByProductAttributes;
200
+ 'pis-products-search-no-results': import('@pisapp/core').PisProductsSearchNoResultsAttributes;
201
+ 'pis-products-search-no-results-gate': import('@pisapp/core').PisProductsSearchNoResultsGateAttributes;
202
+ 'pis-products-search-pagination': import('@pisapp/core').PisProductsSearchPaginationAttributes;
203
+ 'pis-products-search-part-types': import('@pisapp/core').PisProductsSearchPartTypesAttributes;
204
+ 'pis-products-search-router-view': import('@pisapp/core').PisProductsSearchRouterViewAttributes;
205
+ 'pis-products-search-selection': import('@pisapp/core').PisProductsSearchSelectionAttributes;
206
+ 'pis-products-search-table': import('@pisapp/core').PisProductsSearchTableAttributes;
207
+ 'pis-products-search-table-router-view': import('@pisapp/core').PisProductsSearchTableRouterViewAttributes;
208
+ 'pis-products-search-toolbar': import('@pisapp/core').PisProductsSearchToolbarAttributes;
209
+ }
210
+ }
211
+ }
package/dist/jsx.js ADDED
File without changes
package/package.json ADDED
@@ -0,0 +1,59 @@
1
+ {
2
+ "name": "@pisapp/react-helpers",
3
+ "version": "7.0.0-dev.20260916-153034",
4
+ "license": "SEE LICENSE IN LICENSE",
5
+ "author": "ABB Asea Brown Boveri Ltd",
6
+ "description": "React 18+ helper for PIS v7 — compileComponent(). Bridges the Vue-reactive ctx to React so mutations to ctx fields re-render the mounted component; hosts the JSX tag augmentation.",
7
+ "type": "module",
8
+ "main": "./dist/index.js",
9
+ "types": "./dist/index.d.ts",
10
+ "exports": {
11
+ ".": {
12
+ "types": "./dist/index.d.ts",
13
+ "import": "./dist/index.js"
14
+ },
15
+ "./jsx": {
16
+ "types": "./dist/jsx.d.ts",
17
+ "import": "./dist/jsx.js"
18
+ },
19
+ "./package.json": "./package.json"
20
+ },
21
+ "files": [
22
+ "dist",
23
+ "LICENSE",
24
+ "THIRD-PARTY-NOTICES.txt"
25
+ ],
26
+ "peerDependencies": {
27
+ "react": ">=18",
28
+ "react-dom": ">=18",
29
+ "vue": ">=3.5.17 <4",
30
+ "@pisapp/core": "^7.0.0"
31
+ },
32
+ "devDependencies": {
33
+ "@pisapp/core": "7.0.0-dev.20260916-153034",
34
+ "@types/node": "^22.20.1",
35
+ "@types/react": "19.2.18",
36
+ "@types/react-dom": "19.2.5",
37
+ "typescript": "~6.0.3",
38
+ "vue": ">=3.5.17 <4",
39
+ "react": "19.2.8",
40
+ "react-dom": "19.2.8",
41
+ "vitest": "^4.1.10",
42
+ "jsdom": "^25.0.1"
43
+ },
44
+ "publishConfig": {
45
+ "access": "public"
46
+ },
47
+ "pisRelease": {
48
+ "version": "7.0.0-dev.20260916-153034",
49
+ "channel": "dev",
50
+ "commit": "3cfd54cc87975b643036674bfb2d000d81973ac5"
51
+ },
52
+ "scripts": {
53
+ "build": "node ../../scripts/build-library.mjs --package @pisapp/react-helpers",
54
+ "lint": "eslint . --max-warnings 0",
55
+ "lint:fix": "eslint . --fix",
56
+ "typecheck": "tsc --noEmit -p tsconfig.json",
57
+ "test": "vitest run"
58
+ }
59
+ }