tuix-webcomponents 0.0.22 → 0.0.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +103 -21
- package/dist/assets/tuix-styles.css +72 -0
- package/dist/src/index.d.ts +27 -1
- package/dist/src/index.js +19 -16
- package/dist/src/react/index.d.ts +42 -0
- package/dist/src/react/index.js +114 -0
- package/dist/src/tuix-button/TuixBaseButton.d.ts +17 -0
- package/dist/src/tuix-button/TuixBaseButton.js +60 -0
- package/dist/src/tuix-button/TuixButton.d.ts +7 -13
- package/dist/src/tuix-button/TuixButton.js +37 -61
- package/dist/src/tuix-button/TuixButton.styles.d.ts +1 -0
- package/dist/src/tuix-button/TuixButton.styles.js +78 -45
- package/dist/src/tuix-button/enums/tuix-button.enums.d.ts +1 -1
- package/dist/src/tuix-button/enums/tuix-button.enums.js +4 -5
- package/dist/src/tuix-button/interfaces/tuix-button.interface.d.ts +1 -0
- package/dist/src/tuix-button/interfaces/tuix-button.interface.js +1 -0
- package/dist/src/tuix-checkbox/TuixCheckbox.d.ts +17 -0
- package/dist/src/tuix-checkbox/TuixCheckbox.js +108 -0
- package/dist/src/tuix-checkbox/TuixCheckbox.styles.d.ts +4 -0
- package/dist/src/tuix-checkbox/TuixCheckbox.styles.js +132 -0
- package/dist/src/tuix-checkbox/enums/tuix-checkbox.enums.d.ts +21 -0
- package/dist/src/tuix-checkbox/enums/tuix-checkbox.enums.js +23 -0
- package/dist/src/tuix-checkbox/interfaces/tuix-checkbox.interface.d.ts +5 -0
- package/dist/src/tuix-checkbox/interfaces/tuix-checkbox.interface.js +1 -0
- package/dist/src/tuix-dropdown/TuixDropdown.d.ts +15 -5
- package/dist/src/tuix-dropdown/TuixDropdown.js +129 -43
- package/dist/src/tuix-dropdown/TuixDropdown.styles.js +61 -21
- package/dist/src/tuix-dropdown/enums/tuix-dropdown.enums.d.ts +0 -6
- package/dist/src/tuix-dropdown/enums/tuix-dropdown.enums.js +0 -8
- package/dist/src/tuix-dropdown/interfaces/tuix-dropdown.interface.d.ts +15 -1
- package/dist/src/tuix-dropdown/interfaces/tuix-dropdown.interface.js +0 -1
- package/dist/src/tuix-icon/TuixIcon.d.ts +6 -2
- package/dist/src/tuix-icon/TuixIcon.icons.d.ts +3 -3
- package/dist/src/tuix-icon/TuixIcon.icons.js +299 -7
- package/dist/src/tuix-icon/TuixIcon.js +39 -25
- package/dist/src/tuix-icon/enums/tuix-icon.enums.d.ts +67 -21
- package/dist/src/tuix-icon/enums/tuix-icon.enums.js +66 -22
- package/dist/src/tuix-icon-button/TuixIconButton.d.ts +7 -12
- package/dist/src/tuix-icon-button/TuixIconButton.js +22 -51
- package/dist/src/tuix-input/TuixInput.d.ts +13 -7
- package/dist/src/tuix-input/TuixInput.js +98 -51
- package/dist/src/tuix-input/TuixInput.styles.js +101 -112
- package/dist/src/tuix-input/enums/tuix-input.enums.d.ts +11 -9
- package/dist/src/tuix-input/enums/tuix-input.enums.js +11 -12
- package/dist/src/tuix-input/interfaces/tuix-input.interface.d.ts +13 -8
- package/dist/src/tuix-input/interfaces/tuix-input.interface.js +5 -2
- package/dist/src/tuix-link/TuixLink.d.ts +10 -6
- package/dist/src/tuix-link/TuixLink.js +39 -40
- package/dist/src/tuix-link/TuixLink.styles.d.ts +2 -0
- package/dist/src/tuix-link/TuixLink.styles.js +55 -0
- package/dist/src/tuix-link/enums/linkTarget.enum.d.ts +4 -4
- package/dist/src/tuix-link/enums/linkTarget.enum.js +4 -5
- package/dist/src/tuix-modal/TuixModal.d.ts +11 -0
- package/dist/src/tuix-modal/TuixModal.js +65 -0
- package/dist/src/tuix-modal/TuixModal.styles.d.ts +2 -0
- package/dist/src/tuix-modal/TuixModal.styles.js +55 -0
- package/dist/src/tuix-paper/TuixPaper.d.ts +7 -4
- package/dist/src/tuix-paper/TuixPaper.js +29 -23
- package/dist/src/tuix-paper/TuixPaper.styles.d.ts +1 -0
- package/dist/src/tuix-paper/TuixPaper.styles.js +30 -0
- package/dist/src/tuix-paper/enums/tuix-paper.enum.d.ts +12 -6
- package/dist/src/tuix-paper/enums/tuix-paper.enum.js +15 -9
- package/dist/src/tuix-radio-button/TuixRadioButton.d.ts +17 -0
- package/dist/src/tuix-radio-button/TuixRadioButton.js +96 -0
- package/dist/src/tuix-radio-button/TuixRadioButton.styles.d.ts +5 -0
- package/dist/src/tuix-radio-button/TuixRadioButton.styles.js +135 -0
- package/dist/src/tuix-radio-button/interfaces/tuix-radio-button.interface.d.ts +3 -0
- package/dist/src/tuix-radio-button/interfaces/tuix-radio-button.interface.js +1 -0
- package/dist/src/tuix-table/TuixTable.d.ts +48 -0
- package/dist/src/tuix-table/TuixTable.js +369 -0
- package/dist/src/tuix-table/TuixTable.styles.d.ts +2 -0
- package/dist/src/tuix-table/TuixTable.styles.js +197 -0
- package/dist/src/tuix-table/interfaces/tuix-table.interface.d.ts +45 -0
- package/dist/src/tuix-table/interfaces/tuix-table.interface.js +1 -0
- package/dist/src/tuix-text/TuixText.d.ts +7 -4
- package/dist/src/tuix-text/TuixText.js +44 -18
- package/dist/src/tuix-text/TuixText.styles.d.ts +1 -0
- package/dist/src/tuix-text/TuixText.styles.js +146 -65
- package/dist/src/tuix-text/enums/tuix-text.enums.d.ts +25 -11
- package/dist/src/tuix-text/enums/tuix-text.enums.js +61 -14
- package/dist/src/tuix-toast/TuixToast.d.ts +18 -0
- package/dist/src/tuix-toast/TuixToast.js +103 -0
- package/dist/src/tuix-toast/TuixToast.styles.d.ts +3 -0
- package/dist/src/tuix-toast/TuixToast.styles.js +43 -0
- package/dist/src/tuix-toast/enums/tuix-toast.enums.d.ts +20 -0
- package/dist/src/tuix-toast/enums/tuix-toast.enums.js +59 -0
- package/dist/src/tuix-toggle-button/TuixToggleButton.d.ts +14 -0
- package/dist/src/tuix-toggle-button/TuixToggleButton.js +86 -0
- package/dist/src/tuix-toggle-button/TuixToggleButton.styles.d.ts +5 -0
- package/dist/src/tuix-toggle-button/TuixToggleButton.styles.js +134 -0
- package/dist/src/tuix-toggle-button/interfaces/tuix-toggle.interface.d.ts +2 -0
- package/dist/src/tuix-toggle-button/interfaces/tuix-toggle.interface.js +1 -0
- package/dist/src/utils/colors.d.ts +29 -11
- package/dist/src/utils/colors.js +31 -46
- package/dist/src/utils/darkColors.d.ts +32 -1
- package/dist/src/utils/darkColors.js +33 -11
- package/dist/src/utils/hex-rgb.js +0 -1
- package/dist/src/utils/interfaces/detail-value.interface.d.ts +3 -0
- package/dist/src/utils/interfaces/detail-value.interface.js +1 -0
- package/dist/src/utils/mainVariant.enum.js +0 -1
- package/dist/src/utils/screenSizes.enum.d.ts +2 -2
- package/dist/src/utils/screenSizes.enum.js +2 -4
- package/dist/src/utils/slottedClassName.d.ts +2 -0
- package/dist/src/utils/slottedClassName.js +1 -0
- package/package.json +107 -66
- package/dist/src/index.js.map +0 -1
- package/dist/src/tuix-button/TuixButton.js.map +0 -1
- package/dist/src/tuix-button/TuixButton.styles.js.map +0 -1
- package/dist/src/tuix-button/enums/tuix-button.enums.js.map +0 -1
- package/dist/src/tuix-dropdown/TuixDropdown.js.map +0 -1
- package/dist/src/tuix-dropdown/TuixDropdown.styles.js.map +0 -1
- package/dist/src/tuix-dropdown/enums/tuix-dropdown.enums.js.map +0 -1
- package/dist/src/tuix-dropdown/interfaces/tuix-dropdown.interface.js.map +0 -1
- package/dist/src/tuix-icon/TuixIcon.icons.js.map +0 -1
- package/dist/src/tuix-icon/TuixIcon.js.map +0 -1
- package/dist/src/tuix-icon/enums/tuix-icon.enums.js.map +0 -1
- package/dist/src/tuix-icon-button/TuixIconButton.js.map +0 -1
- package/dist/src/tuix-input/TuixInput.js.map +0 -1
- package/dist/src/tuix-input/TuixInput.styles.js.map +0 -1
- package/dist/src/tuix-input/enums/tuix-input.enums.js.map +0 -1
- package/dist/src/tuix-input/interfaces/tuix-input.interface.js.map +0 -1
- package/dist/src/tuix-link/TuixLink.js.map +0 -1
- package/dist/src/tuix-link/enums/linkTarget.enum.js.map +0 -1
- package/dist/src/tuix-paper/TuixPaper.js.map +0 -1
- package/dist/src/tuix-paper/enums/tuix-paper.enum.js.map +0 -1
- package/dist/src/tuix-text/TuixText.js.map +0 -1
- package/dist/src/tuix-text/TuixText.styles.js.map +0 -1
- package/dist/src/tuix-text/enums/tuix-text.enums.js.map +0 -1
- package/dist/src/utils/colors.js.map +0 -1
- package/dist/src/utils/darkColors.js.map +0 -1
- package/dist/src/utils/hex-rgb.js.map +0 -1
- package/dist/src/utils/mainVariant.enum.js.map +0 -1
- package/dist/src/utils/screenSizes.enum.js.map +0 -1
- package/dist/tsconfig.publish.tsbuildinfo +0 -1
package/README.md
CHANGED
|
@@ -10,38 +10,110 @@ npm i tuix-webcomponents
|
|
|
10
10
|
|
|
11
11
|
## Usage
|
|
12
12
|
|
|
13
|
-
###
|
|
13
|
+
### Webbundle version
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
Webbundle Link: https://tuix-webcomponents.s3.eu-central-1.amazonaws.com/build-bf814e0@0.89.0.js
|
|
16
|
+
Styles Link: https://tuix-webcomponents.s3.eu-central-1.amazonaws.com/build-bf814e0@0.89.0.css
|
|
17
|
+
|
|
18
|
+
### React
|
|
19
|
+
|
|
20
|
+
The package ships generated [@lit/react](https://lit.dev/docs/frameworks/react/)
|
|
21
|
+
wrappers, one per element, so nothing has to be wrapped by hand. `@lit/react` is
|
|
22
|
+
a peer dependency:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
npm i tuix-webcomponents @lit/react
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
```tsx
|
|
29
|
+
import 'tuix-webcomponents/dist/assets/tuix-styles.css';
|
|
30
|
+
import { TuixButton, TuixText } from 'tuix-webcomponents/react';
|
|
31
|
+
import { IconName, MainVariant, TextSize } from 'tuix-webcomponents';
|
|
17
32
|
|
|
18
33
|
function App() {
|
|
19
|
-
|
|
20
|
-
// load fonts for SSR and CSR
|
|
21
|
-
useEffect(() => {
|
|
22
|
-
loadFonts()
|
|
23
|
-
}, [])
|
|
24
|
-
|
|
25
34
|
return (
|
|
26
|
-
|
|
27
|
-
|
|
35
|
+
<>
|
|
36
|
+
<TuixText size={TextSize.XL}>Test text</TuixText>
|
|
37
|
+
<TuixButton
|
|
38
|
+
variant={MainVariant.PRIMARY}
|
|
39
|
+
iconLeft={IconName.SAVE}
|
|
40
|
+
onCustomClick={() => console.log('clicked')}
|
|
41
|
+
>
|
|
42
|
+
Save
|
|
43
|
+
</TuixButton>
|
|
44
|
+
</>
|
|
45
|
+
);
|
|
28
46
|
}
|
|
29
47
|
```
|
|
30
48
|
|
|
31
|
-
|
|
49
|
+
The props are the element's own properties, so objects and arrays pass through
|
|
50
|
+
untouched, and each custom event arrives as an `on*` prop. Because those
|
|
51
|
+
properties are typed with the exported enums, pass `MainVariant.PRIMARY` rather
|
|
52
|
+
than the string `'primary'`.
|
|
32
53
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
54
|
+
The wrappers are generated by `scripts/build-react.ts` during `npm run build`
|
|
55
|
+
and land in `dist/src/react`; `src/react/` is gitignored. Nothing about them is
|
|
56
|
+
hand-kept: the generator reads `src/`, so every element with a `@customElement`
|
|
57
|
+
decorator gets a wrapper, and every event it dispatches gets its `on*` prop,
|
|
58
|
+
typed with the detail type written at the dispatch site.
|
|
36
59
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
60
|
+
### Fonts
|
|
61
|
+
|
|
62
|
+
The components render in Rubik, served from the Tuix CDN. The design tokens
|
|
63
|
+
stylesheet imports it, so `import 'tuix-webcomponents/dist/assets/tuix-styles.css'`
|
|
64
|
+
is enough. To start the request earlier, add the link to the document head:
|
|
65
|
+
|
|
66
|
+
```html
|
|
67
|
+
<link rel="preconnect" href="https://hccdn.tuix.ch" />
|
|
68
|
+
<link rel="stylesheet" href="https://hccdn.tuix.ch/rubik_d444e2375d.css" />
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
There is no `loadFonts()` helper any more: injecting the stylesheet from
|
|
72
|
+
JavaScript reflowed the page once the face arrived.
|
|
73
|
+
|
|
74
|
+
## Documentation
|
|
75
|
+
|
|
76
|
+
The developer documentation site (Fumadocs, statically exported) lives in
|
|
77
|
+
`docs/` as its own npm project:
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
cd docs
|
|
81
|
+
npm install
|
|
82
|
+
npm run dev # http://localhost:3000/en/developers
|
|
83
|
+
npm run build # static export into docs/dist
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
It carries step-by-step integration guides for React/Next.js, Vue and Angular,
|
|
87
|
+
and a page per component with live previews of every variant, in English and
|
|
88
|
+
German. Pages are MDX files in `docs/content/docs/` (`*.mdx` English,
|
|
89
|
+
`*.de.mdx` German), ordered by `meta.json` and `meta.de.json`.
|
|
90
|
+
|
|
91
|
+
See `docs/src/modules/docs/README.md` for how the site is put together, and
|
|
92
|
+
[the contributing page](docs/content/docs/contributing.mdx) for the workflow.
|
|
93
|
+
|
|
94
|
+
## Building the package
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
npm run build
|
|
43
98
|
```
|
|
44
99
|
|
|
100
|
+
writes `dist/`, which is exactly what `npm publish` ships (`files: ["dist"]`):
|
|
101
|
+
|
|
102
|
+
| Path | Entry point |
|
|
103
|
+
| -------------------------------- | -------------------------------------------- |
|
|
104
|
+
| `dist/src/index.js` + `.d.ts` | `tuix-webcomponents` — the custom elements |
|
|
105
|
+
| `dist/src/react/index.js` | `tuix-webcomponents/react` — the wrappers |
|
|
106
|
+
| `dist/assets/tuix-styles.css` | `tuix-webcomponents/dist/assets/tuix-styles.css` — the design tokens |
|
|
107
|
+
|
|
108
|
+
The steps behind it: `cem analyze` refreshes `custom-elements.json`,
|
|
109
|
+
`scripts/build-react.ts` regenerates `src/react/`, `tsc -p tsconfig.publish.json`
|
|
110
|
+
compiles both entry points with their declarations, `build:css` renders the
|
|
111
|
+
tokens, and `tsc-esm-fix` adds the `.js` extensions Node's ESM resolver needs.
|
|
112
|
+
|
|
113
|
+
`npm publish` re-runs it through `prepublishOnly`, so a release cannot ship a
|
|
114
|
+
stale `dist/`. `npm run publish:local` packs the same output into a linkable
|
|
115
|
+
`local/` folder for trying it in another project.
|
|
116
|
+
|
|
45
117
|
## Linting and formatting
|
|
46
118
|
|
|
47
119
|
To scan the project for linting and formatting errors, run
|
|
@@ -70,6 +142,15 @@ To build a production version of Storybook, run
|
|
|
70
142
|
npm run storybook:build
|
|
71
143
|
```
|
|
72
144
|
|
|
145
|
+
That writes `dist/storybook`, which is where the deployed site serves it from.
|
|
146
|
+
The site root is the documentation, and the Storybook sidebar brand links back
|
|
147
|
+
to it. `scripts/build.sh` is what assembles both into `dist/` for CI.
|
|
148
|
+
|
|
149
|
+
Note that `dist/` carries two different products, one per CI job: the site
|
|
150
|
+
(`scripts/build.sh`, deployed to S3) and the npm package (`npm run build`, what
|
|
151
|
+
`files` publishes). Both start by clearing it, so locally the last one to run
|
|
152
|
+
wins.
|
|
153
|
+
|
|
73
154
|
|
|
74
155
|
## Tooling configs
|
|
75
156
|
|
|
@@ -84,3 +165,4 @@ npm start
|
|
|
84
165
|
```
|
|
85
166
|
|
|
86
167
|
To run a local development server that serves the basic demo located in `demo/index.html`
|
|
168
|
+
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
@import url('https://hccdn.tuix.ch/rubik_d444e2375d.css');
|
|
2
|
+
|
|
3
|
+
:root {
|
|
4
|
+
--tuix-light-color-primary-50: #F2F3FA;
|
|
5
|
+
--tuix-light-color-primary-100: #E3E5F4;
|
|
6
|
+
--tuix-light-color-primary-200: #C7CAE8;
|
|
7
|
+
--tuix-light-color-primary-300: #AAAFE0;
|
|
8
|
+
--tuix-light-color-primary-400: #8B90D2;
|
|
9
|
+
--tuix-light-color-main: #585A9D;
|
|
10
|
+
--tuix-light-color-dark-main: #6F73B8;
|
|
11
|
+
--tuix-light-color-primary-600: #4E508E;
|
|
12
|
+
--tuix-light-color-primary-700: #404277;
|
|
13
|
+
--tuix-light-color-primary-800: #32345F;
|
|
14
|
+
--tuix-light-color-primary-900: #22233F;
|
|
15
|
+
--tuix-light-color-primary-950: #1F1E33;
|
|
16
|
+
--tuix-light-color-secondary: #BBADFF;
|
|
17
|
+
--tuix-light-color-white: #FFFFFF;
|
|
18
|
+
--tuix-light-color-black: #121212;
|
|
19
|
+
--tuix-light-color-neutral-200: #FAFAFA;
|
|
20
|
+
--tuix-light-color-neutral-600: #b6b6b6;
|
|
21
|
+
--tuix-light-color-success: #439F6E;
|
|
22
|
+
--tuix-light-color-success-50: #F1F9F5;
|
|
23
|
+
--tuix-light-color-validation: #FFB82E;
|
|
24
|
+
--tuix-light-color-validation-50: #FFFBF4;
|
|
25
|
+
--tuix-light-color-validation-200: #FFEAC1;
|
|
26
|
+
--tuix-light-color-error: #F93232;
|
|
27
|
+
--tuix-light-color-error-50: #FFF5F5;
|
|
28
|
+
--tuix-light-color-error-200: #FFD8D8;
|
|
29
|
+
--tuix-light-color-section-bg: #FAFAFA;
|
|
30
|
+
--tuix-light-color-disabled-bg: #EBEAF4;
|
|
31
|
+
--tuix-light-color-shadow: rgba(66, 79, 101, 0.16);
|
|
32
|
+
--tuix-dark-color-primary-50: #F4F5FB;
|
|
33
|
+
--tuix-dark-color-primary-100: #E3E5F4;
|
|
34
|
+
--tuix-dark-color-#e3e5f4: PRIMARY_100;
|
|
35
|
+
--tuix-dark-color-primary-200: #C7CAE8;
|
|
36
|
+
--tuix-dark-color-#c7cae8: PRIMARY_200;
|
|
37
|
+
--tuix-dark-color-primary-300: #AAAFE0;
|
|
38
|
+
--tuix-dark-color-#aaafe0: PRIMARY_300;
|
|
39
|
+
--tuix-dark-color-primary-400: #8B90D2;
|
|
40
|
+
--tuix-dark-color-#8b90d2: PRIMARY_400;
|
|
41
|
+
--tuix-dark-color-main: #6F73B8;
|
|
42
|
+
--tuix-dark-color-dark-main: #6F73B8;
|
|
43
|
+
--tuix-dark-color-#6f73b8: DARK_MAIN;
|
|
44
|
+
--tuix-dark-color-primary-600: #5C60A4;
|
|
45
|
+
--tuix-dark-color-primary-700: #4A4E8E;
|
|
46
|
+
--tuix-dark-color-primary-800: #32355F;
|
|
47
|
+
--tuix-dark-color-primary-900: #181A32;
|
|
48
|
+
--tuix-dark-color-primary-950: #1F1E33;
|
|
49
|
+
--tuix-dark-color-#1f1e33: PRIMARY_950;
|
|
50
|
+
--tuix-dark-color-secondary: #BBADFF;
|
|
51
|
+
--tuix-dark-color-#bbadff: SECONDARY;
|
|
52
|
+
--tuix-dark-color-white: #FFFFFF;
|
|
53
|
+
--tuix-dark-color-black: #0F1117;
|
|
54
|
+
--tuix-dark-color-neutral-200: #C9C8D3;
|
|
55
|
+
--tuix-dark-color-neutral-600: #8A8894;
|
|
56
|
+
--tuix-dark-color-success: #439F6E;
|
|
57
|
+
--tuix-dark-color-#439f6e: SUCCESS;
|
|
58
|
+
--tuix-dark-color-success-50: rgba(241, 249, 245, 0.30);
|
|
59
|
+
--tuix-dark-color-validation: #FFD489;
|
|
60
|
+
--tuix-dark-color-validation-50: rgba(255, 212, 137, 0.20);
|
|
61
|
+
--tuix-dark-color-validation-200: #FFEAC1;
|
|
62
|
+
--tuix-dark-color-#ffeac1: VALIDATION_200;
|
|
63
|
+
--tuix-dark-color-error: #FF8486;
|
|
64
|
+
--tuix-dark-color-error-50: rgba(255, 132, 134, 0.20);
|
|
65
|
+
--tuix-dark-color-error-200: #FFD8D8;
|
|
66
|
+
--tuix-dark-color-#ffd8d8: ERROR_200;
|
|
67
|
+
--tuix-dark-color-section-bg: #0E0E0E;
|
|
68
|
+
--tuix-dark-color-elevation-1: #141722;
|
|
69
|
+
--tuix-dark-color-elevation-2: #181C29;
|
|
70
|
+
--tuix-dark-color-elevation-3: #1D2131;
|
|
71
|
+
--tuix-dark-color-elevation-4: #23273A;
|
|
72
|
+
}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
export { type CustomEventTuixButton } from './tuix-button/interfaces/tuix-button.interface.js';
|
|
2
|
+
export type { CustomEventTuixCheckbox, DetailValueCheckbox, } from './tuix-checkbox/interfaces/tuix-checkbox.interface.js';
|
|
3
|
+
export type { CustomEventTuixDropdownInput, CustomEventTuixDropdownSelect, TuixDropdownOption, TuixDropdownObjectOption, TuixDropdownPlainOption, } from './tuix-dropdown/interfaces/tuix-dropdown.interface.js';
|
|
4
|
+
export type { CustomEventTuixInput } from './tuix-input/interfaces/tuix-input.interface.js';
|
|
5
|
+
export type { CustomEventTuixRadioButton } from './tuix-radio-button/interfaces/tuix-radio-button.interface.js';
|
|
6
|
+
export type { CustomEventTuixToggle } from './tuix-toggle-button/interfaces/tuix-toggle.interface.js';
|
|
7
|
+
export type { DetailValue } from './utils/interfaces/detail-value.interface.js';
|
|
1
8
|
export { TuixText } from './tuix-text/TuixText.js';
|
|
2
9
|
export { TuixIcon } from './tuix-icon/TuixIcon.js';
|
|
3
10
|
export { TuixButton } from './tuix-button/TuixButton.js';
|
|
@@ -6,4 +13,23 @@ export { TuixIconButton } from './tuix-icon-button/TuixIconButton.js';
|
|
|
6
13
|
export { TuixLink } from './tuix-link/TuixLink.js';
|
|
7
14
|
export { TuixInput } from './tuix-input/TuixInput.js';
|
|
8
15
|
export { TuixDropdown } from './tuix-dropdown/TuixDropdown.js';
|
|
9
|
-
export
|
|
16
|
+
export { TuixCheckbox } from './tuix-checkbox/TuixCheckbox.js';
|
|
17
|
+
export { TuixRadioButton } from './tuix-radio-button/TuixRadioButton.js';
|
|
18
|
+
export { TuixToggleButton } from './tuix-toggle-button/TuixToggleButton.js';
|
|
19
|
+
export { TuixTable } from './tuix-table/TuixTable.js';
|
|
20
|
+
export type { IDataTableHeader, PaginationEventDetail, TuixTableElement, } from './tuix-table/interfaces/tuix-table.interface.js';
|
|
21
|
+
export { TuixToast } from './tuix-toast/TuixToast.js';
|
|
22
|
+
export { TuixModal } from './tuix-modal/TuixModal.js';
|
|
23
|
+
export { ToastType } from './tuix-toast/enums/tuix-toast.enums.js';
|
|
24
|
+
export { TextSize, TextVariant } from './tuix-text/enums/tuix-text.enums.js';
|
|
25
|
+
export { MainVariant } from './utils/mainVariant.enum.js';
|
|
26
|
+
export { CheckboxLabelSide } from './tuix-checkbox/enums/tuix-checkbox.enums.js';
|
|
27
|
+
export { PaperElevation } from './tuix-paper/enums/tuix-paper.enum.js';
|
|
28
|
+
export { LinkTarget } from './tuix-link/enums/linkTarget.enum.js';
|
|
29
|
+
export { IconName, IconSizeVariant, } from './tuix-icon/enums/tuix-icon.enums.js';
|
|
30
|
+
export { DescriptionType, InputType, } from './tuix-input/enums/tuix-input.enums.js';
|
|
31
|
+
export { Palette } from './utils/colors.js';
|
|
32
|
+
export { DarkPalette } from './utils/darkColors.js';
|
|
33
|
+
export { DropdownType } from './tuix-dropdown/enums/tuix-dropdown.enums.js';
|
|
34
|
+
export { BorderRadiusPaper } from './tuix-paper/enums/tuix-paper.enum.js';
|
|
35
|
+
export { ScreenSizes } from './utils/screenSizes.enum.js';
|
package/dist/src/index.js
CHANGED
|
@@ -6,19 +6,22 @@ export { TuixIconButton } from './tuix-icon-button/TuixIconButton.js';
|
|
|
6
6
|
export { TuixLink } from './tuix-link/TuixLink.js';
|
|
7
7
|
export { TuixInput } from './tuix-input/TuixInput.js';
|
|
8
8
|
export { TuixDropdown } from './tuix-dropdown/TuixDropdown.js';
|
|
9
|
-
export
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
24
|
-
|
|
9
|
+
export { TuixCheckbox } from './tuix-checkbox/TuixCheckbox.js';
|
|
10
|
+
export { TuixRadioButton } from './tuix-radio-button/TuixRadioButton.js';
|
|
11
|
+
export { TuixToggleButton } from './tuix-toggle-button/TuixToggleButton.js';
|
|
12
|
+
export { TuixTable } from './tuix-table/TuixTable.js';
|
|
13
|
+
export { TuixToast } from './tuix-toast/TuixToast.js';
|
|
14
|
+
export { TuixModal } from './tuix-modal/TuixModal.js';
|
|
15
|
+
export { ToastType } from './tuix-toast/enums/tuix-toast.enums.js';
|
|
16
|
+
export { TextSize, TextVariant } from './tuix-text/enums/tuix-text.enums.js';
|
|
17
|
+
export { MainVariant } from './utils/mainVariant.enum.js';
|
|
18
|
+
export { CheckboxLabelSide } from './tuix-checkbox/enums/tuix-checkbox.enums.js';
|
|
19
|
+
export { PaperElevation } from './tuix-paper/enums/tuix-paper.enum.js';
|
|
20
|
+
export { LinkTarget } from './tuix-link/enums/linkTarget.enum.js';
|
|
21
|
+
export { IconName, IconSizeVariant, } from './tuix-icon/enums/tuix-icon.enums.js';
|
|
22
|
+
export { DescriptionType, InputType, } from './tuix-input/enums/tuix-input.enums.js';
|
|
23
|
+
export { Palette } from './utils/colors.js';
|
|
24
|
+
export { DarkPalette } from './utils/darkColors.js';
|
|
25
|
+
export { DropdownType } from './tuix-dropdown/enums/tuix-dropdown.enums.js';
|
|
26
|
+
export { BorderRadiusPaper } from './tuix-paper/enums/tuix-paper.enum.js';
|
|
27
|
+
export { ScreenSizes } from './utils/screenSizes.enum.js';
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { type EventName } from '@lit/react';
|
|
2
|
+
import { TuixText as TuixTextElement, TuixIcon as TuixIconElement, TuixButton as TuixButtonElement, TuixPaper as TuixPaperElement, TuixIconButton as TuixIconButtonElement, TuixLink as TuixLinkElement, TuixInput as TuixInputElement, TuixDropdown as TuixDropdownElement, TuixCheckbox as TuixCheckboxElement, TuixRadioButton as TuixRadioButtonElement, TuixToggleButton as TuixToggleButtonElement, TuixTable as TuixTableElement, TuixToast as TuixToastElement, TuixModal as TuixModalElement } from '../index.js';
|
|
3
|
+
import type { DetailValue, DetailValueCheckbox, PaginationEventDetail, TuixDropdownPlainOption } from '../index.js';
|
|
4
|
+
export declare const TuixText: import("@lit/react").ReactWebComponent<TuixTextElement, {}>;
|
|
5
|
+
export declare const TuixIcon: import("@lit/react").ReactWebComponent<TuixIconElement, {}>;
|
|
6
|
+
export declare const TuixButton: import("@lit/react").ReactWebComponent<TuixButtonElement, {
|
|
7
|
+
onCustomClick: EventName<CustomEvent<undefined>>;
|
|
8
|
+
}>;
|
|
9
|
+
export declare const TuixPaper: import("@lit/react").ReactWebComponent<TuixPaperElement, {}>;
|
|
10
|
+
export declare const TuixIconButton: import("@lit/react").ReactWebComponent<TuixIconButtonElement, {
|
|
11
|
+
onCustomClick: EventName<CustomEvent<undefined>>;
|
|
12
|
+
}>;
|
|
13
|
+
export declare const TuixLink: import("@lit/react").ReactWebComponent<TuixLinkElement, {}>;
|
|
14
|
+
export declare const TuixInput: import("@lit/react").ReactWebComponent<TuixInputElement, {
|
|
15
|
+
onChange: EventName<CustomEvent<DetailValue<string>>>;
|
|
16
|
+
onBlur: EventName<CustomEvent<DetailValue<string>>>;
|
|
17
|
+
onClick: EventName<CustomEvent<undefined>>;
|
|
18
|
+
}>;
|
|
19
|
+
export declare const TuixDropdown: import("@lit/react").ReactWebComponent<TuixDropdownElement, {
|
|
20
|
+
onSelect: EventName<CustomEvent<DetailValue<TuixDropdownPlainOption>>>;
|
|
21
|
+
onInputSingle: EventName<CustomEvent<DetailValue<string>>>;
|
|
22
|
+
}>;
|
|
23
|
+
export declare const TuixCheckbox: import("@lit/react").ReactWebComponent<TuixCheckboxElement, {
|
|
24
|
+
onChange: EventName<CustomEvent<DetailValueCheckbox>>;
|
|
25
|
+
}>;
|
|
26
|
+
export declare const TuixRadioButton: import("@lit/react").ReactWebComponent<TuixRadioButtonElement, {
|
|
27
|
+
onChange: EventName<CustomEvent<DetailValue<string>>>;
|
|
28
|
+
}>;
|
|
29
|
+
export declare const TuixToggleButton: import("@lit/react").ReactWebComponent<TuixToggleButtonElement, {
|
|
30
|
+
onChange: EventName<CustomEvent<DetailValueCheckbox>>;
|
|
31
|
+
}>;
|
|
32
|
+
export declare const TuixTable: import("@lit/react").ReactWebComponent<TuixTableElement, {
|
|
33
|
+
onNextPage: EventName<CustomEvent<PaginationEventDetail>>;
|
|
34
|
+
onPreviousPage: EventName<CustomEvent<PaginationEventDetail>>;
|
|
35
|
+
onPageSizeChange: EventName<CustomEvent<PaginationEventDetail>>;
|
|
36
|
+
}>;
|
|
37
|
+
export declare const TuixToast: import("@lit/react").ReactWebComponent<TuixToastElement, {
|
|
38
|
+
onClose: EventName<CustomEvent<undefined>>;
|
|
39
|
+
}>;
|
|
40
|
+
export declare const TuixModal: import("@lit/react").ReactWebComponent<TuixModalElement, {
|
|
41
|
+
onClose: EventName<CustomEvent<undefined>>;
|
|
42
|
+
}>;
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
// Generated by scripts/build-react.ts. Do not edit by hand.
|
|
2
|
+
//
|
|
3
|
+
// React wrappers for every element, built with @lit/react: the props are the
|
|
4
|
+
// element's own properties, so objects and arrays pass through untouched, and
|
|
5
|
+
// each custom event arrives as an `on*` prop instead of an addEventListener
|
|
6
|
+
// call. Importing from here registers the custom elements.
|
|
7
|
+
import { createComponent } from '@lit/react';
|
|
8
|
+
import * as React from 'react';
|
|
9
|
+
import { TuixText as TuixTextElement, TuixIcon as TuixIconElement, TuixButton as TuixButtonElement, TuixPaper as TuixPaperElement, TuixIconButton as TuixIconButtonElement, TuixLink as TuixLinkElement, TuixInput as TuixInputElement, TuixDropdown as TuixDropdownElement, TuixCheckbox as TuixCheckboxElement, TuixRadioButton as TuixRadioButtonElement, TuixToggleButton as TuixToggleButtonElement, TuixTable as TuixTableElement, TuixToast as TuixToastElement, TuixModal as TuixModalElement, } from '../index.js';
|
|
10
|
+
export const TuixText = createComponent({
|
|
11
|
+
tagName: 'tuix-text',
|
|
12
|
+
elementClass: TuixTextElement,
|
|
13
|
+
react: React,
|
|
14
|
+
});
|
|
15
|
+
export const TuixIcon = createComponent({
|
|
16
|
+
tagName: 'tuix-icon',
|
|
17
|
+
elementClass: TuixIconElement,
|
|
18
|
+
react: React,
|
|
19
|
+
});
|
|
20
|
+
export const TuixButton = createComponent({
|
|
21
|
+
tagName: 'tuix-button',
|
|
22
|
+
elementClass: TuixButtonElement,
|
|
23
|
+
react: React,
|
|
24
|
+
events: {
|
|
25
|
+
onCustomClick: 'customClick',
|
|
26
|
+
},
|
|
27
|
+
});
|
|
28
|
+
export const TuixPaper = createComponent({
|
|
29
|
+
tagName: 'tuix-paper',
|
|
30
|
+
elementClass: TuixPaperElement,
|
|
31
|
+
react: React,
|
|
32
|
+
});
|
|
33
|
+
export const TuixIconButton = createComponent({
|
|
34
|
+
tagName: 'tuix-icon-button',
|
|
35
|
+
elementClass: TuixIconButtonElement,
|
|
36
|
+
react: React,
|
|
37
|
+
events: {
|
|
38
|
+
onCustomClick: 'customClick',
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
export const TuixLink = createComponent({
|
|
42
|
+
tagName: 'tuix-link',
|
|
43
|
+
elementClass: TuixLinkElement,
|
|
44
|
+
react: React,
|
|
45
|
+
});
|
|
46
|
+
export const TuixInput = createComponent({
|
|
47
|
+
tagName: 'tuix-input',
|
|
48
|
+
elementClass: TuixInputElement,
|
|
49
|
+
react: React,
|
|
50
|
+
events: {
|
|
51
|
+
onChange: 'on-change',
|
|
52
|
+
onBlur: 'on-blur',
|
|
53
|
+
onClick: 'on-click',
|
|
54
|
+
},
|
|
55
|
+
});
|
|
56
|
+
export const TuixDropdown = createComponent({
|
|
57
|
+
tagName: 'tuix-dropdown',
|
|
58
|
+
elementClass: TuixDropdownElement,
|
|
59
|
+
react: React,
|
|
60
|
+
events: {
|
|
61
|
+
onSelect: 'select',
|
|
62
|
+
onInputSingle: 'input-single',
|
|
63
|
+
},
|
|
64
|
+
});
|
|
65
|
+
export const TuixCheckbox = createComponent({
|
|
66
|
+
tagName: 'tuix-checkbox',
|
|
67
|
+
elementClass: TuixCheckboxElement,
|
|
68
|
+
react: React,
|
|
69
|
+
events: {
|
|
70
|
+
onChange: 'change',
|
|
71
|
+
},
|
|
72
|
+
});
|
|
73
|
+
export const TuixRadioButton = createComponent({
|
|
74
|
+
tagName: 'tuix-radio-button',
|
|
75
|
+
elementClass: TuixRadioButtonElement,
|
|
76
|
+
react: React,
|
|
77
|
+
events: {
|
|
78
|
+
onChange: 'change',
|
|
79
|
+
},
|
|
80
|
+
});
|
|
81
|
+
export const TuixToggleButton = createComponent({
|
|
82
|
+
tagName: 'tuix-toggle-button',
|
|
83
|
+
elementClass: TuixToggleButtonElement,
|
|
84
|
+
react: React,
|
|
85
|
+
events: {
|
|
86
|
+
onChange: 'change',
|
|
87
|
+
},
|
|
88
|
+
});
|
|
89
|
+
export const TuixTable = createComponent({
|
|
90
|
+
tagName: 'tuix-table',
|
|
91
|
+
elementClass: TuixTableElement,
|
|
92
|
+
react: React,
|
|
93
|
+
events: {
|
|
94
|
+
onNextPage: 'next-page',
|
|
95
|
+
onPreviousPage: 'previous-page',
|
|
96
|
+
onPageSizeChange: 'page-size-change',
|
|
97
|
+
},
|
|
98
|
+
});
|
|
99
|
+
export const TuixToast = createComponent({
|
|
100
|
+
tagName: 'tuix-toast',
|
|
101
|
+
elementClass: TuixToastElement,
|
|
102
|
+
react: React,
|
|
103
|
+
events: {
|
|
104
|
+
onClose: 'on-close',
|
|
105
|
+
},
|
|
106
|
+
});
|
|
107
|
+
export const TuixModal = createComponent({
|
|
108
|
+
tagName: 'tuix-modal',
|
|
109
|
+
elementClass: TuixModalElement,
|
|
110
|
+
react: React,
|
|
111
|
+
events: {
|
|
112
|
+
onClose: 'on-close',
|
|
113
|
+
},
|
|
114
|
+
});
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { LitElement, type TemplateResult } from 'lit';
|
|
2
|
+
import { MainVariant } from '../utils/mainVariant.enum.js';
|
|
3
|
+
import { IconName, IconSizeVariant } from '../tuix-icon/enums/tuix-icon.enums.js';
|
|
4
|
+
import '../tuix-icon/TuixIcon.js';
|
|
5
|
+
export declare abstract class TuixBaseButton extends LitElement {
|
|
6
|
+
variant: MainVariant;
|
|
7
|
+
disabled: boolean;
|
|
8
|
+
dark: boolean;
|
|
9
|
+
protected iconColor: string;
|
|
10
|
+
updated(): void;
|
|
11
|
+
protected _getTextColor(): string;
|
|
12
|
+
protected abstract _updateIconColor(): void;
|
|
13
|
+
protected _handleClick(): void;
|
|
14
|
+
protected _iconTemplate(iconName: IconName, iconSize: IconSizeVariant): TemplateResult;
|
|
15
|
+
protected abstract _buttonContent(): TemplateResult;
|
|
16
|
+
protected render(): TemplateResult;
|
|
17
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { LitElement, html } from 'lit';
|
|
3
|
+
import { MainVariant } from '../utils/mainVariant.enum.js';
|
|
4
|
+
import { property, state } from 'lit/decorators.js';
|
|
5
|
+
import { buttonTextColor } from './enums/tuix-button.enums.js';
|
|
6
|
+
import '../tuix-icon/TuixIcon.js';
|
|
7
|
+
export class TuixBaseButton extends LitElement {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
this.variant = MainVariant.PRIMARY;
|
|
11
|
+
this.disabled = false;
|
|
12
|
+
this.dark = false;
|
|
13
|
+
this.iconColor = '';
|
|
14
|
+
}
|
|
15
|
+
updated() {
|
|
16
|
+
this._updateIconColor();
|
|
17
|
+
}
|
|
18
|
+
_getTextColor() {
|
|
19
|
+
const element = this.shadowRoot?.querySelector('.button');
|
|
20
|
+
if (!element)
|
|
21
|
+
return buttonTextColor[this.variant];
|
|
22
|
+
const computedStyle = getComputedStyle(element);
|
|
23
|
+
return computedStyle.color;
|
|
24
|
+
}
|
|
25
|
+
_handleClick() {
|
|
26
|
+
this.dispatchEvent(new CustomEvent('customClick', { bubbles: true }));
|
|
27
|
+
}
|
|
28
|
+
_iconTemplate(iconName, iconSize) {
|
|
29
|
+
this._updateIconColor();
|
|
30
|
+
return html `<tuix-icon
|
|
31
|
+
size="${iconSize}"
|
|
32
|
+
name="${iconName}"
|
|
33
|
+
color="${this.iconColor}"
|
|
34
|
+
></tuix-icon>`;
|
|
35
|
+
}
|
|
36
|
+
render() {
|
|
37
|
+
return html `<button
|
|
38
|
+
@click=${this._handleClick}
|
|
39
|
+
@mouseenter=${this._updateIconColor}
|
|
40
|
+
@mouseleave=${this._updateIconColor}
|
|
41
|
+
@blur=${this._updateIconColor}
|
|
42
|
+
?disabled="${this.disabled}"
|
|
43
|
+
class="button"
|
|
44
|
+
>
|
|
45
|
+
${this._buttonContent()}
|
|
46
|
+
</button>`;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
__decorate([
|
|
50
|
+
property({ type: MainVariant, reflect: true })
|
|
51
|
+
], TuixBaseButton.prototype, "variant", void 0);
|
|
52
|
+
__decorate([
|
|
53
|
+
property({ type: Boolean, reflect: true })
|
|
54
|
+
], TuixBaseButton.prototype, "disabled", void 0);
|
|
55
|
+
__decorate([
|
|
56
|
+
property({ type: Boolean, reflect: true })
|
|
57
|
+
], TuixBaseButton.prototype, "dark", void 0);
|
|
58
|
+
__decorate([
|
|
59
|
+
state()
|
|
60
|
+
], TuixBaseButton.prototype, "iconColor", void 0);
|
|
@@ -1,17 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { IconName } from '../tuix-icon/enums/tuix-icon.enums';
|
|
3
|
-
import '
|
|
4
|
-
|
|
5
|
-
export declare class TuixButton extends LitElement {
|
|
1
|
+
import { type TemplateResult } from 'lit';
|
|
2
|
+
import { IconName } from '../tuix-icon/enums/tuix-icon.enums.js';
|
|
3
|
+
import { TuixBaseButton } from './TuixBaseButton.js';
|
|
4
|
+
export declare class TuixButton extends TuixBaseButton {
|
|
6
5
|
static styles: import("lit").CSSResult[];
|
|
7
|
-
|
|
8
|
-
variant: MainVariant;
|
|
9
|
-
disabled: boolean;
|
|
6
|
+
full: boolean;
|
|
10
7
|
iconRight?: IconName;
|
|
11
8
|
iconLeft?: IconName;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
private _iconTemplate;
|
|
15
|
-
getButtonStyles(): string;
|
|
16
|
-
protected render(): TemplateResult;
|
|
9
|
+
protected _updateIconColor(): void;
|
|
10
|
+
protected _buttonContent(): TemplateResult;
|
|
17
11
|
}
|