@scania/tegel-react 0.0.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.
Files changed (22) hide show
  1. package/README.md +63 -0
  2. package/dist/components/stencil-generated/index.js +84 -0
  3. package/dist/components/stencil-generated/react-component-lib/createComponent.js +74 -0
  4. package/dist/components/stencil-generated/react-component-lib/createOverlayComponent.js +96 -0
  5. package/dist/components/stencil-generated/react-component-lib/index.js +2 -0
  6. package/dist/components/stencil-generated/react-component-lib/interfaces.js +1 -0
  7. package/dist/components/stencil-generated/react-component-lib/utils/attachProps.js +107 -0
  8. package/dist/components/stencil-generated/react-component-lib/utils/case.js +6 -0
  9. package/dist/components/stencil-generated/react-component-lib/utils/dev.js +12 -0
  10. package/dist/components/stencil-generated/react-component-lib/utils/index.js +32 -0
  11. package/dist/index.js +2 -0
  12. package/dist/types/components/stencil-generated/index.d.ts +82 -0
  13. package/dist/types/components/stencil-generated/react-component-lib/createComponent.d.ts +10 -0
  14. package/dist/types/components/stencil-generated/react-component-lib/createOverlayComponent.d.ts +21 -0
  15. package/dist/types/components/stencil-generated/react-component-lib/index.d.ts +2 -0
  16. package/dist/types/components/stencil-generated/react-component-lib/interfaces.d.ts +29 -0
  17. package/dist/types/components/stencil-generated/react-component-lib/utils/attachProps.d.ts +16 -0
  18. package/dist/types/components/stencil-generated/react-component-lib/utils/case.d.ts +2 -0
  19. package/dist/types/components/stencil-generated/react-component-lib/utils/dev.d.ts +2 -0
  20. package/dist/types/components/stencil-generated/react-component-lib/utils/index.d.ts +10 -0
  21. package/dist/types/index.d.ts +2 -0
  22. package/package.json +39 -0
package/README.md ADDED
@@ -0,0 +1,63 @@
1
+ [![Storybook](https://img.shields.io/badge/docs-storybook-ff69b4)](https://tegel-storybook.netlify.app/)
2
+ ![](https://img.shields.io/github/license/scania-digital-design-system/tegel)
3
+ ![Status: Beta](https://img.shields.io/badge/status-beta-red)
4
+ ![npm](https://img.shields.io/npm/v/%40scania%2Ftegel-angular)
5
+
6
+ # @scania/tegel-react
7
+ This is a ongoing project with the purpose to simplify the integration of Tegel in React apps.
8
+
9
+ This guide [here](https://stenciljs.com/docs/react) has served as base for the configuration.
10
+
11
+ Official website: https://tegel.scania.com/
12
+
13
+ Storybook: https://tegel-storybook.netlify.app/
14
+
15
+ The design system supports the design and development of digital solutions at Scania. The purpose is to secure a coherent, premium brand and user experience across all of Scania's digital touchpoints.
16
+
17
+ ## Status
18
+
19
+ This package is currently in a **beta** stage. We are now working hard towards a 1.0 release, but if you want to try out the package today you can!
20
+
21
+ ## Installation
22
+
23
+
24
+ 1. Run `npm install @scania/tegel-react`
25
+ 2. In your App.tsx:
26
+
27
+ ```ts
28
+ import { MyComponent, defineCustomElements } from '@scania/tegel-react';
29
+
30
+ defineCustomElements();
31
+
32
+ function App() {
33
+ return (
34
+ <div className="App">
35
+ <MyComponent first="Your" last="Name" />
36
+ </div>
37
+ );
38
+ }
39
+
40
+ export default App;
41
+ ```
42
+
43
+ 3. In your global css file (`styles.css`) import the tegel stylesheet.
44
+
45
+ ```css
46
+ @import url('@scania/tegel/dist/tegel/tegel.css');
47
+ ```
48
+
49
+ See all available components in the [Tegel Design System](https://tegel.scania.com/components/overview).
50
+
51
+ ## Browser support
52
+
53
+ See the browser support section on [the Tegel website](https://tegel.scania.com/development/getting-started-development/introduction#browser-support).
54
+
55
+ ## Community
56
+
57
+ Get in touch with the team and the community:
58
+
59
+ - [Teams](https://teams.microsoft.com/l/team/19%3a1257007a64d44c64954acca27a9d4b46%40thread.skype/conversations?groupId=79f9bfeb-73e2-424d-9477-b236191ece5e&tenantId=3bc062e4-ac9d-4c17-b4dd-3aad637ff1ac)
60
+
61
+ ## License
62
+
63
+ All CSS, HTML and JS code are available under the MIT license. The Scania brand identity, logos and photographs found in this repository are copyrighted Scania CV AB and are not available on an open source basis or to be used as examples or in any other way, if not specifically ordered by Scania CV AB.
@@ -0,0 +1,84 @@
1
+ /* eslint-disable */
2
+ /* tslint:disable */
3
+ /* auto-generated react proxies */
4
+ import { createReactComponent } from './react-component-lib';
5
+ export const TdsAccordion = /*@__PURE__*/ createReactComponent('tds-accordion');
6
+ export const TdsAccordionItem = /*@__PURE__*/ createReactComponent('tds-accordion-item');
7
+ export const TdsBadge = /*@__PURE__*/ createReactComponent('tds-badge');
8
+ export const TdsBanner = /*@__PURE__*/ createReactComponent('tds-banner');
9
+ export const TdsBlock = /*@__PURE__*/ createReactComponent('tds-block');
10
+ export const TdsBodyCell = /*@__PURE__*/ createReactComponent('tds-body-cell');
11
+ export const TdsBreadcrumb = /*@__PURE__*/ createReactComponent('tds-breadcrumb');
12
+ export const TdsBreadcrumbs = /*@__PURE__*/ createReactComponent('tds-breadcrumbs');
13
+ export const TdsButton = /*@__PURE__*/ createReactComponent('tds-button');
14
+ export const TdsCard = /*@__PURE__*/ createReactComponent('tds-card');
15
+ export const TdsCheckbox = /*@__PURE__*/ createReactComponent('tds-checkbox');
16
+ export const TdsChip = /*@__PURE__*/ createReactComponent('tds-chip');
17
+ export const TdsCoreHeaderItem = /*@__PURE__*/ createReactComponent('tds-core-header-item');
18
+ export const TdsDatetime = /*@__PURE__*/ createReactComponent('tds-datetime');
19
+ export const TdsDivider = /*@__PURE__*/ createReactComponent('tds-divider');
20
+ export const TdsDropdown = /*@__PURE__*/ createReactComponent('tds-dropdown');
21
+ export const TdsDropdownOption = /*@__PURE__*/ createReactComponent('tds-dropdown-option');
22
+ export const TdsFolderTab = /*@__PURE__*/ createReactComponent('tds-folder-tab');
23
+ export const TdsFolderTabs = /*@__PURE__*/ createReactComponent('tds-folder-tabs');
24
+ export const TdsFooter = /*@__PURE__*/ createReactComponent('tds-footer');
25
+ export const TdsFooterGroup = /*@__PURE__*/ createReactComponent('tds-footer-group');
26
+ export const TdsFooterItem = /*@__PURE__*/ createReactComponent('tds-footer-item');
27
+ export const TdsHeader = /*@__PURE__*/ createReactComponent('tds-header');
28
+ export const TdsHeaderBrandSymbol = /*@__PURE__*/ createReactComponent('tds-header-brand-symbol');
29
+ export const TdsHeaderCell = /*@__PURE__*/ createReactComponent('tds-header-cell');
30
+ export const TdsHeaderDropdown = /*@__PURE__*/ createReactComponent('tds-header-dropdown');
31
+ export const TdsHeaderDropdownList = /*@__PURE__*/ createReactComponent('tds-header-dropdown-list');
32
+ export const TdsHeaderDropdownListItem = /*@__PURE__*/ createReactComponent('tds-header-dropdown-list-item');
33
+ export const TdsHeaderDropdownListUser = /*@__PURE__*/ createReactComponent('tds-header-dropdown-list-user');
34
+ export const TdsHeaderHamburger = /*@__PURE__*/ createReactComponent('tds-header-hamburger');
35
+ export const TdsHeaderItem = /*@__PURE__*/ createReactComponent('tds-header-item');
36
+ export const TdsHeaderLauncher = /*@__PURE__*/ createReactComponent('tds-header-launcher');
37
+ export const TdsHeaderLauncherButton = /*@__PURE__*/ createReactComponent('tds-header-launcher-button');
38
+ export const TdsHeaderLauncherGrid = /*@__PURE__*/ createReactComponent('tds-header-launcher-grid');
39
+ export const TdsHeaderLauncherGridItem = /*@__PURE__*/ createReactComponent('tds-header-launcher-grid-item');
40
+ export const TdsHeaderLauncherGridTitle = /*@__PURE__*/ createReactComponent('tds-header-launcher-grid-title');
41
+ export const TdsHeaderLauncherList = /*@__PURE__*/ createReactComponent('tds-header-launcher-list');
42
+ export const TdsHeaderLauncherListItem = /*@__PURE__*/ createReactComponent('tds-header-launcher-list-item');
43
+ export const TdsHeaderLauncherListTitle = /*@__PURE__*/ createReactComponent('tds-header-launcher-list-title');
44
+ export const TdsHeaderTitle = /*@__PURE__*/ createReactComponent('tds-header-title');
45
+ export const TdsIcon = /*@__PURE__*/ createReactComponent('tds-icon');
46
+ export const TdsInlineTab = /*@__PURE__*/ createReactComponent('tds-inline-tab');
47
+ export const TdsInlineTabs = /*@__PURE__*/ createReactComponent('tds-inline-tabs');
48
+ export const TdsLink = /*@__PURE__*/ createReactComponent('tds-link');
49
+ export const TdsMessage = /*@__PURE__*/ createReactComponent('tds-message');
50
+ export const TdsModal = /*@__PURE__*/ createReactComponent('tds-modal');
51
+ export const TdsNavigationTab = /*@__PURE__*/ createReactComponent('tds-navigation-tab');
52
+ export const TdsNavigationTabs = /*@__PURE__*/ createReactComponent('tds-navigation-tabs');
53
+ export const TdsPopoverCanvas = /*@__PURE__*/ createReactComponent('tds-popover-canvas');
54
+ export const TdsPopoverCore = /*@__PURE__*/ createReactComponent('tds-popover-core');
55
+ export const TdsPopoverMenu = /*@__PURE__*/ createReactComponent('tds-popover-menu');
56
+ export const TdsPopoverMenuItem = /*@__PURE__*/ createReactComponent('tds-popover-menu-item');
57
+ export const TdsRadioButton = /*@__PURE__*/ createReactComponent('tds-radio-button');
58
+ export const TdsSideMenu = /*@__PURE__*/ createReactComponent('tds-side-menu');
59
+ export const TdsSideMenuCloseButton = /*@__PURE__*/ createReactComponent('tds-side-menu-close-button');
60
+ export const TdsSideMenuCollapseButton = /*@__PURE__*/ createReactComponent('tds-side-menu-collapse-button');
61
+ export const TdsSideMenuDropdown = /*@__PURE__*/ createReactComponent('tds-side-menu-dropdown');
62
+ export const TdsSideMenuDropdownList = /*@__PURE__*/ createReactComponent('tds-side-menu-dropdown-list');
63
+ export const TdsSideMenuDropdownListItem = /*@__PURE__*/ createReactComponent('tds-side-menu-dropdown-list-item');
64
+ export const TdsSideMenuItem = /*@__PURE__*/ createReactComponent('tds-side-menu-item');
65
+ export const TdsSideMenuOverlay = /*@__PURE__*/ createReactComponent('tds-side-menu-overlay');
66
+ export const TdsSideMenuUser = /*@__PURE__*/ createReactComponent('tds-side-menu-user');
67
+ export const TdsSideMenuUserImage = /*@__PURE__*/ createReactComponent('tds-side-menu-user-image');
68
+ export const TdsSideMenuUserLabel = /*@__PURE__*/ createReactComponent('tds-side-menu-user-label');
69
+ export const TdsSlider = /*@__PURE__*/ createReactComponent('tds-slider');
70
+ export const TdsSpinner = /*@__PURE__*/ createReactComponent('tds-spinner');
71
+ export const TdsStep = /*@__PURE__*/ createReactComponent('tds-step');
72
+ export const TdsStepper = /*@__PURE__*/ createReactComponent('tds-stepper');
73
+ export const TdsTable = /*@__PURE__*/ createReactComponent('tds-table');
74
+ export const TdsTableBody = /*@__PURE__*/ createReactComponent('tds-table-body');
75
+ export const TdsTableBodyRow = /*@__PURE__*/ createReactComponent('tds-table-body-row');
76
+ export const TdsTableBodyRowExpandable = /*@__PURE__*/ createReactComponent('tds-table-body-row-expandable');
77
+ export const TdsTableFooter = /*@__PURE__*/ createReactComponent('tds-table-footer');
78
+ export const TdsTableHeader = /*@__PURE__*/ createReactComponent('tds-table-header');
79
+ export const TdsTableToolbar = /*@__PURE__*/ createReactComponent('tds-table-toolbar');
80
+ export const TdsTextField = /*@__PURE__*/ createReactComponent('tds-text-field');
81
+ export const TdsTextarea = /*@__PURE__*/ createReactComponent('tds-textarea');
82
+ export const TdsToast = /*@__PURE__*/ createReactComponent('tds-toast');
83
+ export const TdsToggle = /*@__PURE__*/ createReactComponent('tds-toggle');
84
+ export const TdsTooltip = /*@__PURE__*/ createReactComponent('tds-tooltip');
@@ -0,0 +1,74 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import React, { createElement } from 'react';
13
+ import { attachProps, camelToDashCase, createForwardRef, dashToPascalCase, isCoveredByReact, mergeRefs } from './utils';
14
+ export const createReactComponent = (tagName, ReactComponentContext, manipulatePropsFunction, defineCustomElement) => {
15
+ if (defineCustomElement !== undefined) {
16
+ defineCustomElement();
17
+ }
18
+ const displayName = dashToPascalCase(tagName);
19
+ const ReactComponent = class extends React.Component {
20
+ constructor(props) {
21
+ super(props);
22
+ this.setComponentElRef = (element) => {
23
+ this.componentEl = element;
24
+ };
25
+ }
26
+ componentDidMount() {
27
+ this.componentDidUpdate(this.props);
28
+ }
29
+ componentDidUpdate(prevProps) {
30
+ attachProps(this.componentEl, this.props, prevProps);
31
+ }
32
+ render() {
33
+ const _a = this.props, { children, forwardedRef, style, className, ref } = _a, cProps = __rest(_a, ["children", "forwardedRef", "style", "className", "ref"]);
34
+ let propsToPass = Object.keys(cProps).reduce((acc, name) => {
35
+ const value = cProps[name];
36
+ if (name.indexOf('on') === 0 && name[2] === name[2].toUpperCase()) {
37
+ const eventName = name.substring(2).toLowerCase();
38
+ if (typeof document !== 'undefined' && isCoveredByReact(eventName)) {
39
+ acc[name] = value;
40
+ }
41
+ }
42
+ else {
43
+ // we should only render strings, booleans, and numbers as attrs in html.
44
+ // objects, functions, arrays etc get synced via properties on mount.
45
+ const type = typeof value;
46
+ if (type === 'string' || type === 'boolean' || type === 'number') {
47
+ acc[camelToDashCase(name)] = value;
48
+ }
49
+ }
50
+ return acc;
51
+ }, {});
52
+ if (manipulatePropsFunction) {
53
+ propsToPass = manipulatePropsFunction(this.props, propsToPass);
54
+ }
55
+ const newProps = Object.assign(Object.assign({}, propsToPass), { ref: mergeRefs(forwardedRef, this.setComponentElRef), style });
56
+ /**
57
+ * We use createElement here instead of
58
+ * React.createElement to work around a
59
+ * bug in Vite (https://github.com/vitejs/vite/issues/6104).
60
+ * React.createElement causes all elements to be rendered
61
+ * as <tagname> instead of the actual Web Component.
62
+ */
63
+ return createElement(tagName, newProps, children);
64
+ }
65
+ static get displayName() {
66
+ return displayName;
67
+ }
68
+ };
69
+ // If context was passed to createReactComponent then conditionally add it to the Component Class
70
+ if (ReactComponentContext) {
71
+ ReactComponent.contextType = ReactComponentContext;
72
+ }
73
+ return createForwardRef(ReactComponent, displayName);
74
+ };
@@ -0,0 +1,96 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import { jsx as _jsx } from "react/jsx-runtime";
13
+ import React from 'react';
14
+ import ReactDOM from 'react-dom';
15
+ import { attachProps, dashToPascalCase, defineCustomElement, setRef } from './utils';
16
+ export const createOverlayComponent = (tagName, controller, customElement) => {
17
+ defineCustomElement(tagName, customElement);
18
+ const displayName = dashToPascalCase(tagName);
19
+ const didDismissEventName = `on${displayName}DidDismiss`;
20
+ const didPresentEventName = `on${displayName}DidPresent`;
21
+ const willDismissEventName = `on${displayName}WillDismiss`;
22
+ const willPresentEventName = `on${displayName}WillPresent`;
23
+ let isDismissing = false;
24
+ class Overlay extends React.Component {
25
+ constructor(props) {
26
+ super(props);
27
+ if (typeof document !== 'undefined') {
28
+ this.el = document.createElement('div');
29
+ }
30
+ this.handleDismiss = this.handleDismiss.bind(this);
31
+ }
32
+ static get displayName() {
33
+ return displayName;
34
+ }
35
+ componentDidMount() {
36
+ if (this.props.isOpen) {
37
+ this.present();
38
+ }
39
+ }
40
+ componentWillUnmount() {
41
+ if (this.overlay) {
42
+ this.overlay.dismiss();
43
+ }
44
+ }
45
+ handleDismiss(event) {
46
+ if (this.props.onDidDismiss) {
47
+ this.props.onDidDismiss(event);
48
+ }
49
+ setRef(this.props.forwardedRef, null);
50
+ }
51
+ shouldComponentUpdate(nextProps) {
52
+ // Check if the overlay component is about to dismiss
53
+ if (this.overlay && nextProps.isOpen !== this.props.isOpen && nextProps.isOpen === false) {
54
+ isDismissing = true;
55
+ }
56
+ return true;
57
+ }
58
+ async componentDidUpdate(prevProps) {
59
+ if (this.overlay) {
60
+ attachProps(this.overlay, this.props, prevProps);
61
+ }
62
+ if (prevProps.isOpen !== this.props.isOpen && this.props.isOpen === true) {
63
+ this.present(prevProps);
64
+ }
65
+ if (this.overlay && prevProps.isOpen !== this.props.isOpen && this.props.isOpen === false) {
66
+ await this.overlay.dismiss();
67
+ isDismissing = false;
68
+ /**
69
+ * Now that the overlay is dismissed
70
+ * we need to render again so that any
71
+ * inner components will be unmounted
72
+ */
73
+ this.forceUpdate();
74
+ }
75
+ }
76
+ async present(prevProps) {
77
+ const _a = this.props, { children, isOpen, onDidDismiss, onDidPresent, onWillDismiss, onWillPresent } = _a, cProps = __rest(_a, ["children", "isOpen", "onDidDismiss", "onDidPresent", "onWillDismiss", "onWillPresent"]);
78
+ const elementProps = Object.assign(Object.assign({}, cProps), { ref: this.props.forwardedRef, [didDismissEventName]: this.handleDismiss, [didPresentEventName]: (e) => this.props.onDidPresent && this.props.onDidPresent(e), [willDismissEventName]: (e) => this.props.onWillDismiss && this.props.onWillDismiss(e), [willPresentEventName]: (e) => this.props.onWillPresent && this.props.onWillPresent(e) });
79
+ this.overlay = await controller.create(Object.assign(Object.assign({}, elementProps), { component: this.el, componentProps: {} }));
80
+ setRef(this.props.forwardedRef, this.overlay);
81
+ attachProps(this.overlay, elementProps, prevProps);
82
+ await this.overlay.present();
83
+ }
84
+ render() {
85
+ /**
86
+ * Continue to render the component even when
87
+ * overlay is dismissing otherwise component
88
+ * will be hidden before animation is done.
89
+ */
90
+ return ReactDOM.createPortal(this.props.isOpen || isDismissing ? this.props.children : null, this.el);
91
+ }
92
+ }
93
+ return React.forwardRef((props, ref) => {
94
+ return _jsx(Overlay, Object.assign({}, props, { forwardedRef: ref }));
95
+ });
96
+ };
@@ -0,0 +1,2 @@
1
+ export { createReactComponent } from './createComponent';
2
+ export { createOverlayComponent } from './createOverlayComponent';
@@ -0,0 +1,107 @@
1
+ import { camelToDashCase } from './case';
2
+ export const attachProps = (node, newProps, oldProps = {}) => {
3
+ // some test frameworks don't render DOM elements, so we test here to make sure we are dealing with DOM first
4
+ if (node instanceof Element) {
5
+ // add any classes in className to the class list
6
+ const className = getClassName(node.classList, newProps, oldProps);
7
+ if (className !== '') {
8
+ node.className = className;
9
+ }
10
+ Object.keys(newProps).forEach((name) => {
11
+ if (name === 'children' ||
12
+ name === 'style' ||
13
+ name === 'ref' ||
14
+ name === 'class' ||
15
+ name === 'className' ||
16
+ name === 'forwardedRef') {
17
+ return;
18
+ }
19
+ if (name.indexOf('on') === 0 && name[2] === name[2].toUpperCase()) {
20
+ const eventName = name.substring(2);
21
+ const eventNameLc = eventName[0].toLowerCase() + eventName.substring(1);
22
+ if (!isCoveredByReact(eventNameLc)) {
23
+ syncEvent(node, eventNameLc, newProps[name]);
24
+ }
25
+ }
26
+ else {
27
+ node[name] = newProps[name];
28
+ const propType = typeof newProps[name];
29
+ if (propType === 'string') {
30
+ node.setAttribute(camelToDashCase(name), newProps[name]);
31
+ }
32
+ }
33
+ });
34
+ }
35
+ };
36
+ export const getClassName = (classList, newProps, oldProps) => {
37
+ const newClassProp = newProps.className || newProps.class;
38
+ const oldClassProp = oldProps.className || oldProps.class;
39
+ // map the classes to Maps for performance
40
+ const currentClasses = arrayToMap(classList);
41
+ const incomingPropClasses = arrayToMap(newClassProp ? newClassProp.split(' ') : []);
42
+ const oldPropClasses = arrayToMap(oldClassProp ? oldClassProp.split(' ') : []);
43
+ const finalClassNames = [];
44
+ // loop through each of the current classes on the component
45
+ // to see if it should be a part of the classNames added
46
+ currentClasses.forEach((currentClass) => {
47
+ if (incomingPropClasses.has(currentClass)) {
48
+ // add it as its already included in classnames coming in from newProps
49
+ finalClassNames.push(currentClass);
50
+ incomingPropClasses.delete(currentClass);
51
+ }
52
+ else if (!oldPropClasses.has(currentClass)) {
53
+ // add it as it has NOT been removed by user
54
+ finalClassNames.push(currentClass);
55
+ }
56
+ });
57
+ incomingPropClasses.forEach((s) => finalClassNames.push(s));
58
+ return finalClassNames.join(' ');
59
+ };
60
+ /**
61
+ * Transforms a React event name to a browser event name.
62
+ */
63
+ export const transformReactEventName = (eventNameSuffix) => {
64
+ switch (eventNameSuffix) {
65
+ case 'doubleclick':
66
+ return 'dblclick';
67
+ }
68
+ return eventNameSuffix;
69
+ };
70
+ /**
71
+ * Checks if an event is supported in the current execution environment.
72
+ * @license Modernizr 3.0.0pre (Custom Build) | MIT
73
+ */
74
+ export const isCoveredByReact = (eventNameSuffix) => {
75
+ if (typeof document === 'undefined') {
76
+ return true;
77
+ }
78
+ else {
79
+ const eventName = 'on' + transformReactEventName(eventNameSuffix);
80
+ let isSupported = eventName in document;
81
+ if (!isSupported) {
82
+ const element = document.createElement('div');
83
+ element.setAttribute(eventName, 'return;');
84
+ isSupported = typeof element[eventName] === 'function';
85
+ }
86
+ return isSupported;
87
+ }
88
+ };
89
+ export const syncEvent = (node, eventName, newEventHandler) => {
90
+ const eventStore = node.__events || (node.__events = {});
91
+ const oldEventHandler = eventStore[eventName];
92
+ // Remove old listener so they don't double up.
93
+ if (oldEventHandler) {
94
+ node.removeEventListener(eventName, oldEventHandler);
95
+ }
96
+ // Bind new listener.
97
+ node.addEventListener(eventName, (eventStore[eventName] = function handler(e) {
98
+ if (newEventHandler) {
99
+ newEventHandler.call(this, e);
100
+ }
101
+ }));
102
+ };
103
+ const arrayToMap = (arr) => {
104
+ const map = new Map();
105
+ arr.forEach((s) => map.set(s, s));
106
+ return map;
107
+ };
@@ -0,0 +1,6 @@
1
+ export const dashToPascalCase = (str) => str
2
+ .toLowerCase()
3
+ .split('-')
4
+ .map((segment) => segment.charAt(0).toUpperCase() + segment.slice(1))
5
+ .join('');
6
+ export const camelToDashCase = (str) => str.replace(/([A-Z])/g, (m) => `-${m[0].toLowerCase()}`);
@@ -0,0 +1,12 @@
1
+ export const isDevMode = () => {
2
+ return process && process.env && process.env.NODE_ENV === 'development';
3
+ };
4
+ const warnings = {};
5
+ export const deprecationWarning = (key, message) => {
6
+ if (isDevMode()) {
7
+ if (!warnings[key]) {
8
+ console.warn(message);
9
+ warnings[key] = true;
10
+ }
11
+ }
12
+ };
@@ -0,0 +1,32 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import React from 'react';
3
+ export const setRef = (ref, value) => {
4
+ if (typeof ref === 'function') {
5
+ ref(value);
6
+ }
7
+ else if (ref != null) {
8
+ // Cast as a MutableRef so we can assign current
9
+ ref.current = value;
10
+ }
11
+ };
12
+ export const mergeRefs = (...refs) => {
13
+ return (value) => {
14
+ refs.forEach((ref) => {
15
+ setRef(ref, value);
16
+ });
17
+ };
18
+ };
19
+ export const createForwardRef = (ReactComponent, displayName) => {
20
+ const forwardRef = (props, ref) => {
21
+ return _jsx(ReactComponent, Object.assign({}, props, { forwardedRef: ref }));
22
+ };
23
+ forwardRef.displayName = displayName;
24
+ return React.forwardRef(forwardRef);
25
+ };
26
+ export const defineCustomElement = (tagName, customElement) => {
27
+ if (customElement !== undefined && typeof customElements !== 'undefined' && !customElements.get(tagName)) {
28
+ customElements.define(tagName, customElement);
29
+ }
30
+ };
31
+ export * from './attachProps';
32
+ export * from './case';
package/dist/index.js ADDED
@@ -0,0 +1,2 @@
1
+ export * from './components/stencil-generated';
2
+ export { defineCustomElements } from '@scania/tegel/loader';
@@ -0,0 +1,82 @@
1
+ /// <reference types="react" />
2
+ import type { JSX } from '@scania/tegel';
3
+ export declare const TdsAccordion: import("react").ForwardRefExoticComponent<JSX.TdsAccordion & Omit<import("react").HTMLAttributes<HTMLTdsAccordionElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsAccordionElement>>;
4
+ export declare const TdsAccordionItem: import("react").ForwardRefExoticComponent<JSX.TdsAccordionItem & Omit<import("react").HTMLAttributes<HTMLTdsAccordionItemElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsAccordionItemElement>>;
5
+ export declare const TdsBadge: import("react").ForwardRefExoticComponent<JSX.TdsBadge & Omit<import("react").HTMLAttributes<HTMLTdsBadgeElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsBadgeElement>>;
6
+ export declare const TdsBanner: import("react").ForwardRefExoticComponent<JSX.TdsBanner & Omit<import("react").HTMLAttributes<HTMLTdsBannerElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsBannerElement>>;
7
+ export declare const TdsBlock: import("react").ForwardRefExoticComponent<JSX.TdsBlock & Omit<import("react").HTMLAttributes<HTMLTdsBlockElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsBlockElement>>;
8
+ export declare const TdsBodyCell: import("react").ForwardRefExoticComponent<JSX.TdsBodyCell & Omit<import("react").HTMLAttributes<HTMLTdsBodyCellElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsBodyCellElement>>;
9
+ export declare const TdsBreadcrumb: import("react").ForwardRefExoticComponent<JSX.TdsBreadcrumb & Omit<import("react").HTMLAttributes<HTMLTdsBreadcrumbElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsBreadcrumbElement>>;
10
+ export declare const TdsBreadcrumbs: import("react").ForwardRefExoticComponent<JSX.TdsBreadcrumbs & Omit<import("react").HTMLAttributes<HTMLTdsBreadcrumbsElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsBreadcrumbsElement>>;
11
+ export declare const TdsButton: import("react").ForwardRefExoticComponent<JSX.TdsButton & Omit<import("react").HTMLAttributes<HTMLTdsButtonElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsButtonElement>>;
12
+ export declare const TdsCard: import("react").ForwardRefExoticComponent<JSX.TdsCard & Omit<import("react").HTMLAttributes<HTMLTdsCardElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsCardElement>>;
13
+ export declare const TdsCheckbox: import("react").ForwardRefExoticComponent<JSX.TdsCheckbox & Omit<import("react").HTMLAttributes<HTMLTdsCheckboxElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsCheckboxElement>>;
14
+ export declare const TdsChip: import("react").ForwardRefExoticComponent<JSX.TdsChip & Omit<import("react").HTMLAttributes<HTMLTdsChipElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsChipElement>>;
15
+ export declare const TdsCoreHeaderItem: import("react").ForwardRefExoticComponent<JSX.TdsCoreHeaderItem & Omit<import("react").HTMLAttributes<HTMLTdsCoreHeaderItemElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsCoreHeaderItemElement>>;
16
+ export declare const TdsDatetime: import("react").ForwardRefExoticComponent<JSX.TdsDatetime & Omit<import("react").HTMLAttributes<HTMLTdsDatetimeElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsDatetimeElement>>;
17
+ export declare const TdsDivider: import("react").ForwardRefExoticComponent<JSX.TdsDivider & Omit<import("react").HTMLAttributes<HTMLTdsDividerElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsDividerElement>>;
18
+ export declare const TdsDropdown: import("react").ForwardRefExoticComponent<JSX.TdsDropdown & Omit<import("react").HTMLAttributes<HTMLTdsDropdownElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsDropdownElement>>;
19
+ export declare const TdsDropdownOption: import("react").ForwardRefExoticComponent<JSX.TdsDropdownOption & Omit<import("react").HTMLAttributes<HTMLTdsDropdownOptionElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsDropdownOptionElement>>;
20
+ export declare const TdsFolderTab: import("react").ForwardRefExoticComponent<JSX.TdsFolderTab & Omit<import("react").HTMLAttributes<HTMLTdsFolderTabElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsFolderTabElement>>;
21
+ export declare const TdsFolderTabs: import("react").ForwardRefExoticComponent<JSX.TdsFolderTabs & Omit<import("react").HTMLAttributes<HTMLTdsFolderTabsElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsFolderTabsElement>>;
22
+ export declare const TdsFooter: import("react").ForwardRefExoticComponent<JSX.TdsFooter & Omit<import("react").HTMLAttributes<HTMLTdsFooterElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsFooterElement>>;
23
+ export declare const TdsFooterGroup: import("react").ForwardRefExoticComponent<JSX.TdsFooterGroup & Omit<import("react").HTMLAttributes<HTMLTdsFooterGroupElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsFooterGroupElement>>;
24
+ export declare const TdsFooterItem: import("react").ForwardRefExoticComponent<JSX.TdsFooterItem & Omit<import("react").HTMLAttributes<HTMLTdsFooterItemElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsFooterItemElement>>;
25
+ export declare const TdsHeader: import("react").ForwardRefExoticComponent<JSX.TdsHeader & Omit<import("react").HTMLAttributes<HTMLTdsHeaderElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsHeaderElement>>;
26
+ export declare const TdsHeaderBrandSymbol: import("react").ForwardRefExoticComponent<JSX.TdsHeaderBrandSymbol & Omit<import("react").HTMLAttributes<HTMLTdsHeaderBrandSymbolElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsHeaderBrandSymbolElement>>;
27
+ export declare const TdsHeaderCell: import("react").ForwardRefExoticComponent<JSX.TdsHeaderCell & Omit<import("react").HTMLAttributes<HTMLTdsHeaderCellElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsHeaderCellElement>>;
28
+ export declare const TdsHeaderDropdown: import("react").ForwardRefExoticComponent<JSX.TdsHeaderDropdown & Omit<import("react").HTMLAttributes<HTMLTdsHeaderDropdownElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsHeaderDropdownElement>>;
29
+ export declare const TdsHeaderDropdownList: import("react").ForwardRefExoticComponent<JSX.TdsHeaderDropdownList & Omit<import("react").HTMLAttributes<HTMLTdsHeaderDropdownListElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsHeaderDropdownListElement>>;
30
+ export declare const TdsHeaderDropdownListItem: import("react").ForwardRefExoticComponent<JSX.TdsHeaderDropdownListItem & Omit<import("react").HTMLAttributes<HTMLTdsHeaderDropdownListItemElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsHeaderDropdownListItemElement>>;
31
+ export declare const TdsHeaderDropdownListUser: import("react").ForwardRefExoticComponent<JSX.TdsHeaderDropdownListUser & Omit<import("react").HTMLAttributes<HTMLTdsHeaderDropdownListUserElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsHeaderDropdownListUserElement>>;
32
+ export declare const TdsHeaderHamburger: import("react").ForwardRefExoticComponent<JSX.TdsHeaderHamburger & Omit<import("react").HTMLAttributes<HTMLTdsHeaderHamburgerElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsHeaderHamburgerElement>>;
33
+ export declare const TdsHeaderItem: import("react").ForwardRefExoticComponent<JSX.TdsHeaderItem & Omit<import("react").HTMLAttributes<HTMLTdsHeaderItemElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsHeaderItemElement>>;
34
+ export declare const TdsHeaderLauncher: import("react").ForwardRefExoticComponent<JSX.TdsHeaderLauncher & Omit<import("react").HTMLAttributes<HTMLTdsHeaderLauncherElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsHeaderLauncherElement>>;
35
+ export declare const TdsHeaderLauncherButton: import("react").ForwardRefExoticComponent<JSX.TdsHeaderLauncherButton & Omit<import("react").HTMLAttributes<HTMLTdsHeaderLauncherButtonElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsHeaderLauncherButtonElement>>;
36
+ export declare const TdsHeaderLauncherGrid: import("react").ForwardRefExoticComponent<JSX.TdsHeaderLauncherGrid & Omit<import("react").HTMLAttributes<HTMLTdsHeaderLauncherGridElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsHeaderLauncherGridElement>>;
37
+ export declare const TdsHeaderLauncherGridItem: import("react").ForwardRefExoticComponent<JSX.TdsHeaderLauncherGridItem & Omit<import("react").HTMLAttributes<HTMLTdsHeaderLauncherGridItemElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsHeaderLauncherGridItemElement>>;
38
+ export declare const TdsHeaderLauncherGridTitle: import("react").ForwardRefExoticComponent<JSX.TdsHeaderLauncherGridTitle & Omit<import("react").HTMLAttributes<HTMLTdsHeaderLauncherGridTitleElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsHeaderLauncherGridTitleElement>>;
39
+ export declare const TdsHeaderLauncherList: import("react").ForwardRefExoticComponent<JSX.TdsHeaderLauncherList & Omit<import("react").HTMLAttributes<HTMLTdsHeaderLauncherListElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsHeaderLauncherListElement>>;
40
+ export declare const TdsHeaderLauncherListItem: import("react").ForwardRefExoticComponent<JSX.TdsHeaderLauncherListItem & Omit<import("react").HTMLAttributes<HTMLTdsHeaderLauncherListItemElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsHeaderLauncherListItemElement>>;
41
+ export declare const TdsHeaderLauncherListTitle: import("react").ForwardRefExoticComponent<JSX.TdsHeaderLauncherListTitle & Omit<import("react").HTMLAttributes<HTMLTdsHeaderLauncherListTitleElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsHeaderLauncherListTitleElement>>;
42
+ export declare const TdsHeaderTitle: import("react").ForwardRefExoticComponent<JSX.TdsHeaderTitle & Omit<import("react").HTMLAttributes<HTMLTdsHeaderTitleElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsHeaderTitleElement>>;
43
+ export declare const TdsIcon: import("react").ForwardRefExoticComponent<JSX.TdsIcon & Omit<import("react").HTMLAttributes<HTMLTdsIconElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsIconElement>>;
44
+ export declare const TdsInlineTab: import("react").ForwardRefExoticComponent<JSX.TdsInlineTab & Omit<import("react").HTMLAttributes<HTMLTdsInlineTabElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsInlineTabElement>>;
45
+ export declare const TdsInlineTabs: import("react").ForwardRefExoticComponent<JSX.TdsInlineTabs & Omit<import("react").HTMLAttributes<HTMLTdsInlineTabsElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsInlineTabsElement>>;
46
+ export declare const TdsLink: import("react").ForwardRefExoticComponent<JSX.TdsLink & Omit<import("react").HTMLAttributes<HTMLTdsLinkElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsLinkElement>>;
47
+ export declare const TdsMessage: import("react").ForwardRefExoticComponent<JSX.TdsMessage & Omit<import("react").HTMLAttributes<HTMLTdsMessageElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsMessageElement>>;
48
+ export declare const TdsModal: import("react").ForwardRefExoticComponent<JSX.TdsModal & Omit<import("react").HTMLAttributes<HTMLTdsModalElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsModalElement>>;
49
+ export declare const TdsNavigationTab: import("react").ForwardRefExoticComponent<JSX.TdsNavigationTab & Omit<import("react").HTMLAttributes<HTMLTdsNavigationTabElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsNavigationTabElement>>;
50
+ export declare const TdsNavigationTabs: import("react").ForwardRefExoticComponent<JSX.TdsNavigationTabs & Omit<import("react").HTMLAttributes<HTMLTdsNavigationTabsElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsNavigationTabsElement>>;
51
+ export declare const TdsPopoverCanvas: import("react").ForwardRefExoticComponent<JSX.TdsPopoverCanvas & Omit<import("react").HTMLAttributes<HTMLTdsPopoverCanvasElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsPopoverCanvasElement>>;
52
+ export declare const TdsPopoverCore: import("react").ForwardRefExoticComponent<JSX.TdsPopoverCore & Omit<import("react").HTMLAttributes<HTMLTdsPopoverCoreElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsPopoverCoreElement>>;
53
+ export declare const TdsPopoverMenu: import("react").ForwardRefExoticComponent<JSX.TdsPopoverMenu & Omit<import("react").HTMLAttributes<HTMLTdsPopoverMenuElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsPopoverMenuElement>>;
54
+ export declare const TdsPopoverMenuItem: import("react").ForwardRefExoticComponent<JSX.TdsPopoverMenuItem & Omit<import("react").HTMLAttributes<HTMLTdsPopoverMenuItemElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsPopoverMenuItemElement>>;
55
+ export declare const TdsRadioButton: import("react").ForwardRefExoticComponent<JSX.TdsRadioButton & Omit<import("react").HTMLAttributes<HTMLTdsRadioButtonElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsRadioButtonElement>>;
56
+ export declare const TdsSideMenu: import("react").ForwardRefExoticComponent<JSX.TdsSideMenu & Omit<import("react").HTMLAttributes<HTMLTdsSideMenuElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsSideMenuElement>>;
57
+ export declare const TdsSideMenuCloseButton: import("react").ForwardRefExoticComponent<JSX.TdsSideMenuCloseButton & Omit<import("react").HTMLAttributes<HTMLTdsSideMenuCloseButtonElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsSideMenuCloseButtonElement>>;
58
+ export declare const TdsSideMenuCollapseButton: import("react").ForwardRefExoticComponent<JSX.TdsSideMenuCollapseButton & Omit<import("react").HTMLAttributes<HTMLTdsSideMenuCollapseButtonElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsSideMenuCollapseButtonElement>>;
59
+ export declare const TdsSideMenuDropdown: import("react").ForwardRefExoticComponent<JSX.TdsSideMenuDropdown & Omit<import("react").HTMLAttributes<HTMLTdsSideMenuDropdownElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsSideMenuDropdownElement>>;
60
+ export declare const TdsSideMenuDropdownList: import("react").ForwardRefExoticComponent<JSX.TdsSideMenuDropdownList & Omit<import("react").HTMLAttributes<HTMLTdsSideMenuDropdownListElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsSideMenuDropdownListElement>>;
61
+ export declare const TdsSideMenuDropdownListItem: import("react").ForwardRefExoticComponent<JSX.TdsSideMenuDropdownListItem & Omit<import("react").HTMLAttributes<HTMLTdsSideMenuDropdownListItemElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsSideMenuDropdownListItemElement>>;
62
+ export declare const TdsSideMenuItem: import("react").ForwardRefExoticComponent<JSX.TdsSideMenuItem & Omit<import("react").HTMLAttributes<HTMLTdsSideMenuItemElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsSideMenuItemElement>>;
63
+ export declare const TdsSideMenuOverlay: import("react").ForwardRefExoticComponent<JSX.TdsSideMenuOverlay & Omit<import("react").HTMLAttributes<HTMLTdsSideMenuOverlayElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsSideMenuOverlayElement>>;
64
+ export declare const TdsSideMenuUser: import("react").ForwardRefExoticComponent<JSX.TdsSideMenuUser & Omit<import("react").HTMLAttributes<HTMLTdsSideMenuUserElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsSideMenuUserElement>>;
65
+ export declare const TdsSideMenuUserImage: import("react").ForwardRefExoticComponent<JSX.TdsSideMenuUserImage & Omit<import("react").HTMLAttributes<HTMLTdsSideMenuUserImageElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsSideMenuUserImageElement>>;
66
+ export declare const TdsSideMenuUserLabel: import("react").ForwardRefExoticComponent<JSX.TdsSideMenuUserLabel & Omit<import("react").HTMLAttributes<HTMLTdsSideMenuUserLabelElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsSideMenuUserLabelElement>>;
67
+ export declare const TdsSlider: import("react").ForwardRefExoticComponent<JSX.TdsSlider & Omit<import("react").HTMLAttributes<HTMLTdsSliderElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsSliderElement>>;
68
+ export declare const TdsSpinner: import("react").ForwardRefExoticComponent<JSX.TdsSpinner & Omit<import("react").HTMLAttributes<HTMLTdsSpinnerElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsSpinnerElement>>;
69
+ export declare const TdsStep: import("react").ForwardRefExoticComponent<JSX.TdsStep & Omit<import("react").HTMLAttributes<HTMLTdsStepElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsStepElement>>;
70
+ export declare const TdsStepper: import("react").ForwardRefExoticComponent<JSX.TdsStepper & Omit<import("react").HTMLAttributes<HTMLTdsStepperElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsStepperElement>>;
71
+ export declare const TdsTable: import("react").ForwardRefExoticComponent<JSX.TdsTable & Omit<import("react").HTMLAttributes<HTMLTdsTableElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsTableElement>>;
72
+ export declare const TdsTableBody: import("react").ForwardRefExoticComponent<JSX.TdsTableBody & Omit<import("react").HTMLAttributes<HTMLTdsTableBodyElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsTableBodyElement>>;
73
+ export declare const TdsTableBodyRow: import("react").ForwardRefExoticComponent<JSX.TdsTableBodyRow & Omit<import("react").HTMLAttributes<HTMLTdsTableBodyRowElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsTableBodyRowElement>>;
74
+ export declare const TdsTableBodyRowExpandable: import("react").ForwardRefExoticComponent<JSX.TdsTableBodyRowExpandable & Omit<import("react").HTMLAttributes<HTMLTdsTableBodyRowExpandableElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsTableBodyRowExpandableElement>>;
75
+ export declare const TdsTableFooter: import("react").ForwardRefExoticComponent<JSX.TdsTableFooter & Omit<import("react").HTMLAttributes<HTMLTdsTableFooterElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsTableFooterElement>>;
76
+ export declare const TdsTableHeader: import("react").ForwardRefExoticComponent<JSX.TdsTableHeader & Omit<import("react").HTMLAttributes<HTMLTdsTableHeaderElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsTableHeaderElement>>;
77
+ export declare const TdsTableToolbar: import("react").ForwardRefExoticComponent<JSX.TdsTableToolbar & Omit<import("react").HTMLAttributes<HTMLTdsTableToolbarElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsTableToolbarElement>>;
78
+ export declare const TdsTextField: import("react").ForwardRefExoticComponent<JSX.TdsTextField & Omit<import("react").HTMLAttributes<HTMLTdsTextFieldElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsTextFieldElement>>;
79
+ export declare const TdsTextarea: import("react").ForwardRefExoticComponent<JSX.TdsTextarea & Omit<import("react").HTMLAttributes<HTMLTdsTextareaElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsTextareaElement>>;
80
+ export declare const TdsToast: import("react").ForwardRefExoticComponent<JSX.TdsToast & Omit<import("react").HTMLAttributes<HTMLTdsToastElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsToastElement>>;
81
+ export declare const TdsToggle: import("react").ForwardRefExoticComponent<JSX.TdsToggle & Omit<import("react").HTMLAttributes<HTMLTdsToggleElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsToggleElement>>;
82
+ export declare const TdsTooltip: import("react").ForwardRefExoticComponent<JSX.TdsTooltip & Omit<import("react").HTMLAttributes<HTMLTdsTooltipElement>, "style"> & import("./react-component-lib/interfaces").StyleReactProps & import("react").RefAttributes<HTMLTdsTooltipElement>>;
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ export interface HTMLStencilElement extends HTMLElement {
3
+ componentOnReady(): Promise<this>;
4
+ }
5
+ interface StencilReactInternalProps<ElementType> extends React.HTMLAttributes<ElementType> {
6
+ forwardedRef: React.RefObject<ElementType>;
7
+ ref?: React.Ref<any>;
8
+ }
9
+ export declare const createReactComponent: <PropType, ElementType extends HTMLStencilElement, ContextStateType = {}, ExpandedPropsTypes = {}>(tagName: string, ReactComponentContext?: React.Context<ContextStateType>, manipulatePropsFunction?: (originalProps: StencilReactInternalProps<ElementType>, propsToPass: any) => ExpandedPropsTypes, defineCustomElement?: () => void) => React.ForwardRefExoticComponent<React.PropsWithoutRef<import("./utils").StencilReactExternalProps<PropType, ElementType>> & React.RefAttributes<ElementType>>;
10
+ export {};
@@ -0,0 +1,21 @@
1
+ import React from 'react';
2
+ import { OverlayEventDetail } from './interfaces';
3
+ import { StencilReactForwardedRef } from './utils';
4
+ interface OverlayElement extends HTMLElement {
5
+ present: () => Promise<void>;
6
+ dismiss: (data?: any, role?: string | undefined) => Promise<boolean>;
7
+ }
8
+ export interface ReactOverlayProps {
9
+ children?: React.ReactNode;
10
+ isOpen: boolean;
11
+ onDidDismiss?: (event: CustomEvent<OverlayEventDetail>) => void;
12
+ onDidPresent?: (event: CustomEvent<OverlayEventDetail>) => void;
13
+ onWillDismiss?: (event: CustomEvent<OverlayEventDetail>) => void;
14
+ onWillPresent?: (event: CustomEvent<OverlayEventDetail>) => void;
15
+ }
16
+ export declare const createOverlayComponent: <OverlayComponent extends object, OverlayType extends OverlayElement>(tagName: string, controller: {
17
+ create: (options: any) => Promise<OverlayType>;
18
+ }, customElement?: any) => React.ForwardRefExoticComponent<React.PropsWithoutRef<OverlayComponent & ReactOverlayProps & {
19
+ forwardedRef?: StencilReactForwardedRef<OverlayType>;
20
+ }> & React.RefAttributes<OverlayType>>;
21
+ export {};
@@ -0,0 +1,2 @@
1
+ export { createReactComponent } from './createComponent';
2
+ export { createOverlayComponent } from './createOverlayComponent';
@@ -0,0 +1,29 @@
1
+ export interface EventEmitter<T = any> {
2
+ emit: (data?: T) => CustomEvent<T>;
3
+ }
4
+ export interface StyleReactProps {
5
+ class?: string;
6
+ className?: string;
7
+ style?: {
8
+ [key: string]: any;
9
+ };
10
+ }
11
+ export interface OverlayEventDetail<T = any> {
12
+ data?: T;
13
+ role?: string;
14
+ }
15
+ export interface OverlayInterface {
16
+ el: HTMLElement;
17
+ animated: boolean;
18
+ keyboardClose: boolean;
19
+ overlayIndex: number;
20
+ presented: boolean;
21
+ enterAnimation?: any;
22
+ leaveAnimation?: any;
23
+ didPresent: EventEmitter<void>;
24
+ willPresent: EventEmitter<void>;
25
+ willDismiss: EventEmitter<OverlayEventDetail>;
26
+ didDismiss: EventEmitter<OverlayEventDetail>;
27
+ present(): Promise<void>;
28
+ dismiss(data?: any, role?: string): Promise<boolean>;
29
+ }
@@ -0,0 +1,16 @@
1
+ export declare const attachProps: (node: HTMLElement, newProps: any, oldProps?: any) => void;
2
+ export declare const getClassName: (classList: DOMTokenList, newProps: any, oldProps: any) => string;
3
+ /**
4
+ * Transforms a React event name to a browser event name.
5
+ */
6
+ export declare const transformReactEventName: (eventNameSuffix: string) => string;
7
+ /**
8
+ * Checks if an event is supported in the current execution environment.
9
+ * @license Modernizr 3.0.0pre (Custom Build) | MIT
10
+ */
11
+ export declare const isCoveredByReact: (eventNameSuffix: string) => boolean;
12
+ export declare const syncEvent: (node: Element & {
13
+ __events?: {
14
+ [key: string]: (e: Event) => any;
15
+ };
16
+ }, eventName: string, newEventHandler?: (e: Event) => any) => void;
@@ -0,0 +1,2 @@
1
+ export declare const dashToPascalCase: (str: string) => string;
2
+ export declare const camelToDashCase: (str: string) => string;
@@ -0,0 +1,2 @@
1
+ export declare const isDevMode: () => boolean;
2
+ export declare const deprecationWarning: (key: string, message: string) => void;
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import type { StyleReactProps } from '../interfaces';
3
+ export type StencilReactExternalProps<PropType, ElementType> = PropType & Omit<React.HTMLAttributes<ElementType>, 'style'> & StyleReactProps;
4
+ export type StencilReactForwardedRef<T> = ((instance: T | null) => void) | React.MutableRefObject<T | null> | null;
5
+ export declare const setRef: (ref: StencilReactForwardedRef<any> | React.Ref<any> | undefined, value: any) => void;
6
+ export declare const mergeRefs: (...refs: (StencilReactForwardedRef<any> | React.Ref<any> | undefined)[]) => React.RefCallback<any>;
7
+ export declare const createForwardRef: <PropType, ElementType>(ReactComponent: any, displayName: string) => React.ForwardRefExoticComponent<React.PropsWithoutRef<StencilReactExternalProps<PropType, ElementType>> & React.RefAttributes<ElementType>>;
8
+ export declare const defineCustomElement: (tagName: string, customElement: any) => void;
9
+ export * from './attachProps';
10
+ export * from './case';
@@ -0,0 +1,2 @@
1
+ export * from './components/stencil-generated';
2
+ export { defineCustomElements } from '@scania/tegel/loader';
package/package.json ADDED
@@ -0,0 +1,39 @@
1
+ {
2
+ "name": "@scania/tegel-react",
3
+ "version": "0.0.1",
4
+ "description": "React wrappers for Tegel package",
5
+ "main": "dist/index.js",
6
+ "module": "dist/index.js",
7
+ "types": "dist/types/index.d.ts",
8
+ "scripts": {
9
+ "test": "node ./__tests__/react-library.test.js",
10
+ "build": "npm run tsc",
11
+ "tsc": "tsc -p . --outDir ./dist"
12
+ },
13
+ "files": [
14
+ "dist"
15
+ ],
16
+ "publishConfig": {
17
+ "access": "public"
18
+ },
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "git+https://github.com/scania-digital-design-system/tegel.git"
22
+ },
23
+ "author": "",
24
+ "license": "MIT",
25
+ "bugs": {
26
+ "url": "https://github.com/scania-digital-design-system/tegel/issues"
27
+ },
28
+ "homepage": "https://github.com/scania-digital-design-system/tegel#readme",
29
+ "dependencies": {
30
+ "@scania/tegel": "1.1.0"
31
+ },
32
+ "devDependencies": {
33
+ "@types/node": "^20.8.0",
34
+ "@types/react": "^18.2.24",
35
+ "react": "^18.2.0",
36
+ "react-dom": "^18.2.0",
37
+ "typescript": "^5.2.2"
38
+ }
39
+ }