tuix-webcomponents 0.0.22 → 0.0.25
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 +110 -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 +6 -12
- package/dist/src/tuix-button/TuixButton.js +35 -59
- package/dist/src/tuix-button/TuixButton.styles.d.ts +1 -0
- package/dist/src/tuix-button/TuixButton.styles.js +77 -44
- package/dist/src/tuix-button/enums/tuix-button.enums.js +3 -4
- 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 +13 -3
- package/dist/src/tuix-dropdown/TuixDropdown.js +125 -39
- package/dist/src/tuix-dropdown/TuixDropdown.styles.js +59 -19
- 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 +5 -1
- package/dist/src/tuix-icon/TuixIcon.icons.d.ts +2 -2
- package/dist/src/tuix-icon/TuixIcon.icons.js +299 -7
- package/dist/src/tuix-icon/TuixIcon.js +37 -23
- 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 +6 -11
- package/dist/src/tuix-icon-button/TuixIconButton.js +20 -49
- package/dist/src/tuix-input/TuixInput.d.ts +12 -6
- package/dist/src/tuix-input/TuixInput.js +97 -50
- package/dist/src/tuix-input/TuixInput.styles.js +99 -110
- package/dist/src/tuix-input/enums/tuix-input.enums.d.ts +10 -8
- package/dist/src/tuix-input/enums/tuix-input.enums.js +10 -11
- package/dist/src/tuix-input/interfaces/tuix-input.interface.d.ts +11 -6
- package/dist/src/tuix-input/interfaces/tuix-input.interface.js +5 -2
- package/dist/src/tuix-link/TuixLink.d.ts +8 -4
- package/dist/src/tuix-link/TuixLink.js +37 -38
- 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 +145 -64
- 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 +113 -68
- 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,116 @@ 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 `package-build/src/react`; `src/react/` is gitignored. Nothing
|
|
56
|
+
about them is hand-kept: the generator reads `src/`, so every element with a
|
|
57
|
+
`@customElement` decorator gets a wrapper, and every event it dispatches gets
|
|
58
|
+
its `on*` prop, 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" />
|
|
43
69
|
```
|
|
44
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
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
writes `package-build/`, and `npm run stage:package` copies that into `dist/`,
|
|
101
|
+
which is what `npm publish` ships (`files: ["dist"]`):
|
|
102
|
+
|
|
103
|
+
| Path | Entry point |
|
|
104
|
+
| -------------------------------- | -------------------------------------------- |
|
|
105
|
+
| `dist/src/index.js` + `.d.ts` | `tuix-webcomponents` — the custom elements |
|
|
106
|
+
| `dist/src/react/index.js` | `tuix-webcomponents/react` — the wrappers |
|
|
107
|
+
| `dist/assets/tuix-styles.css` | `tuix-webcomponents/dist/assets/tuix-styles.css` — the design tokens |
|
|
108
|
+
|
|
109
|
+
The two steps are separate on purpose: `dist/` is also where the site is
|
|
110
|
+
assembled, so the package build never writes it. Only the staging step does,
|
|
111
|
+
and that runs inside `prepublishOnly` and `bin/publish.sh` — i.e. in the
|
|
112
|
+
publish job, after the site has already been uploaded from its own job.
|
|
113
|
+
|
|
114
|
+
The steps behind it: `cem analyze` refreshes `custom-elements.json`,
|
|
115
|
+
`scripts/build-react.ts` regenerates `src/react/`, `tsc -p tsconfig.publish.json`
|
|
116
|
+
compiles both entry points with their declarations, `build:css` renders the
|
|
117
|
+
tokens, and `tsc-esm-fix` adds the `.js` extensions Node's ESM resolver needs.
|
|
118
|
+
|
|
119
|
+
`npm publish` re-runs build and staging through `prepublishOnly`, so a release
|
|
120
|
+
cannot ship a stale `dist/`. `npm run publish:local` packs the same output into
|
|
121
|
+
a linkable `local/` folder for trying it in another project.
|
|
122
|
+
|
|
45
123
|
## Linting and formatting
|
|
46
124
|
|
|
47
125
|
To scan the project for linting and formatting errors, run
|
|
@@ -70,6 +148,16 @@ To build a production version of Storybook, run
|
|
|
70
148
|
npm run storybook:build
|
|
71
149
|
```
|
|
72
150
|
|
|
151
|
+
That writes `dist/storybook`, which is where the deployed site serves it from.
|
|
152
|
+
The site root is the documentation, and the Storybook sidebar brand links back
|
|
153
|
+
to it. `scripts/build.sh` is what assembles both into `dist/` for CI.
|
|
154
|
+
|
|
155
|
+
Three builds, three folders, so none of them clears another: the site into
|
|
156
|
+
`dist/` (`scripts/build.sh` — Storybook under `dist/storybook`, the docs export
|
|
157
|
+
at the root), the npm package into `package-build/` (`npm run build`), and the
|
|
158
|
+
dev compile into `build/` (`npm start`). `dist/` is reused for the package only
|
|
159
|
+
by `npm run stage:package`, which runs in the publish job.
|
|
160
|
+
|
|
73
161
|
|
|
74
162
|
## Tooling configs
|
|
75
163
|
|
|
@@ -84,3 +172,4 @@ npm start
|
|
|
84
172
|
```
|
|
85
173
|
|
|
86
174
|
To run a local development server that serves the basic demo located in `demo/index.html`
|
|
175
|
+
|
|
@@ -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, TuixRadioButtonOption, } 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, ThreeDotsLoaderConfig, TuixPaginationEvent, 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 WrappedTuixText, TuixIcon as WrappedTuixIcon, TuixButton as WrappedTuixButton, TuixPaper as WrappedTuixPaper, TuixIconButton as WrappedTuixIconButton, TuixLink as WrappedTuixLink, TuixInput as WrappedTuixInput, TuixDropdown as WrappedTuixDropdown, TuixCheckbox as WrappedTuixCheckbox, TuixRadioButton as WrappedTuixRadioButton, TuixToggleButton as WrappedTuixToggleButton, TuixTable as WrappedTuixTable, TuixToast as WrappedTuixToast, TuixModal as WrappedTuixModal } from '../index.js';
|
|
3
|
+
import type { DetailValue, DetailValueCheckbox, PaginationEventDetail, TuixDropdownPlainOption } from '../index.js';
|
|
4
|
+
export declare const TuixText: import("@lit/react").ReactWebComponent<WrappedTuixText, {}>;
|
|
5
|
+
export declare const TuixIcon: import("@lit/react").ReactWebComponent<WrappedTuixIcon, {}>;
|
|
6
|
+
export declare const TuixButton: import("@lit/react").ReactWebComponent<WrappedTuixButton, {
|
|
7
|
+
onCustomClick: EventName<CustomEvent<undefined>>;
|
|
8
|
+
}>;
|
|
9
|
+
export declare const TuixPaper: import("@lit/react").ReactWebComponent<WrappedTuixPaper, {}>;
|
|
10
|
+
export declare const TuixIconButton: import("@lit/react").ReactWebComponent<WrappedTuixIconButton, {
|
|
11
|
+
onCustomClick: EventName<CustomEvent<undefined>>;
|
|
12
|
+
}>;
|
|
13
|
+
export declare const TuixLink: import("@lit/react").ReactWebComponent<WrappedTuixLink, {}>;
|
|
14
|
+
export declare const TuixInput: import("@lit/react").ReactWebComponent<WrappedTuixInput, {
|
|
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<WrappedTuixDropdown, {
|
|
20
|
+
onSelect: EventName<CustomEvent<DetailValue<TuixDropdownPlainOption>>>;
|
|
21
|
+
onInputSingle: EventName<CustomEvent<DetailValue<string>>>;
|
|
22
|
+
}>;
|
|
23
|
+
export declare const TuixCheckbox: import("@lit/react").ReactWebComponent<WrappedTuixCheckbox, {
|
|
24
|
+
onChange: EventName<CustomEvent<DetailValueCheckbox>>;
|
|
25
|
+
}>;
|
|
26
|
+
export declare const TuixRadioButton: import("@lit/react").ReactWebComponent<WrappedTuixRadioButton, {
|
|
27
|
+
onChange: EventName<CustomEvent<DetailValue<string>>>;
|
|
28
|
+
}>;
|
|
29
|
+
export declare const TuixToggleButton: import("@lit/react").ReactWebComponent<WrappedTuixToggleButton, {
|
|
30
|
+
onChange: EventName<CustomEvent<DetailValueCheckbox>>;
|
|
31
|
+
}>;
|
|
32
|
+
export declare const TuixTable: import("@lit/react").ReactWebComponent<WrappedTuixTable, {
|
|
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<WrappedTuixToast, {
|
|
38
|
+
onClose: EventName<CustomEvent<undefined>>;
|
|
39
|
+
}>;
|
|
40
|
+
export declare const TuixModal: import("@lit/react").ReactWebComponent<WrappedTuixModal, {
|
|
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 WrappedTuixText, TuixIcon as WrappedTuixIcon, TuixButton as WrappedTuixButton, TuixPaper as WrappedTuixPaper, TuixIconButton as WrappedTuixIconButton, TuixLink as WrappedTuixLink, TuixInput as WrappedTuixInput, TuixDropdown as WrappedTuixDropdown, TuixCheckbox as WrappedTuixCheckbox, TuixRadioButton as WrappedTuixRadioButton, TuixToggleButton as WrappedTuixToggleButton, TuixTable as WrappedTuixTable, TuixToast as WrappedTuixToast, TuixModal as WrappedTuixModal, } from '../index.js';
|
|
10
|
+
export const TuixText = createComponent({
|
|
11
|
+
tagName: 'tuix-text',
|
|
12
|
+
elementClass: WrappedTuixText,
|
|
13
|
+
react: React,
|
|
14
|
+
});
|
|
15
|
+
export const TuixIcon = createComponent({
|
|
16
|
+
tagName: 'tuix-icon',
|
|
17
|
+
elementClass: WrappedTuixIcon,
|
|
18
|
+
react: React,
|
|
19
|
+
});
|
|
20
|
+
export const TuixButton = createComponent({
|
|
21
|
+
tagName: 'tuix-button',
|
|
22
|
+
elementClass: WrappedTuixButton,
|
|
23
|
+
react: React,
|
|
24
|
+
events: {
|
|
25
|
+
onCustomClick: 'customClick',
|
|
26
|
+
},
|
|
27
|
+
});
|
|
28
|
+
export const TuixPaper = createComponent({
|
|
29
|
+
tagName: 'tuix-paper',
|
|
30
|
+
elementClass: WrappedTuixPaper,
|
|
31
|
+
react: React,
|
|
32
|
+
});
|
|
33
|
+
export const TuixIconButton = createComponent({
|
|
34
|
+
tagName: 'tuix-icon-button',
|
|
35
|
+
elementClass: WrappedTuixIconButton,
|
|
36
|
+
react: React,
|
|
37
|
+
events: {
|
|
38
|
+
onCustomClick: 'customClick',
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
export const TuixLink = createComponent({
|
|
42
|
+
tagName: 'tuix-link',
|
|
43
|
+
elementClass: WrappedTuixLink,
|
|
44
|
+
react: React,
|
|
45
|
+
});
|
|
46
|
+
export const TuixInput = createComponent({
|
|
47
|
+
tagName: 'tuix-input',
|
|
48
|
+
elementClass: WrappedTuixInput,
|
|
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: WrappedTuixDropdown,
|
|
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: WrappedTuixCheckbox,
|
|
68
|
+
react: React,
|
|
69
|
+
events: {
|
|
70
|
+
onChange: 'change',
|
|
71
|
+
},
|
|
72
|
+
});
|
|
73
|
+
export const TuixRadioButton = createComponent({
|
|
74
|
+
tagName: 'tuix-radio-button',
|
|
75
|
+
elementClass: WrappedTuixRadioButton,
|
|
76
|
+
react: React,
|
|
77
|
+
events: {
|
|
78
|
+
onChange: 'change',
|
|
79
|
+
},
|
|
80
|
+
});
|
|
81
|
+
export const TuixToggleButton = createComponent({
|
|
82
|
+
tagName: 'tuix-toggle-button',
|
|
83
|
+
elementClass: WrappedTuixToggleButton,
|
|
84
|
+
react: React,
|
|
85
|
+
events: {
|
|
86
|
+
onChange: 'change',
|
|
87
|
+
},
|
|
88
|
+
});
|
|
89
|
+
export const TuixTable = createComponent({
|
|
90
|
+
tagName: 'tuix-table',
|
|
91
|
+
elementClass: WrappedTuixTable,
|
|
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: WrappedTuixToast,
|
|
102
|
+
react: React,
|
|
103
|
+
events: {
|
|
104
|
+
onClose: 'on-close',
|
|
105
|
+
},
|
|
106
|
+
});
|
|
107
|
+
export const TuixModal = createComponent({
|
|
108
|
+
tagName: 'tuix-modal',
|
|
109
|
+
elementClass: WrappedTuixModal,
|
|
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';
|
|
3
|
+
import { IconName, IconSizeVariant } from '../tuix-icon/enums/tuix-icon.enums';
|
|
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';
|
|
4
|
+
import { property, state } from 'lit/decorators.js';
|
|
5
|
+
import { buttonTextColor } from './enums/tuix-button.enums';
|
|
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 {
|
|
1
|
+
import { type TemplateResult } from 'lit';
|
|
2
2
|
import { IconName } from '../tuix-icon/enums/tuix-icon.enums';
|
|
3
|
-
import '
|
|
4
|
-
|
|
5
|
-
export declare class TuixButton extends LitElement {
|
|
3
|
+
import { TuixBaseButton } from './TuixBaseButton';
|
|
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
|
}
|