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.
Files changed (133) hide show
  1. package/README.md +110 -21
  2. package/dist/assets/tuix-styles.css +72 -0
  3. package/dist/src/index.d.ts +27 -1
  4. package/dist/src/index.js +19 -16
  5. package/dist/src/react/index.d.ts +42 -0
  6. package/dist/src/react/index.js +114 -0
  7. package/dist/src/tuix-button/TuixBaseButton.d.ts +17 -0
  8. package/dist/src/tuix-button/TuixBaseButton.js +60 -0
  9. package/dist/src/tuix-button/TuixButton.d.ts +6 -12
  10. package/dist/src/tuix-button/TuixButton.js +35 -59
  11. package/dist/src/tuix-button/TuixButton.styles.d.ts +1 -0
  12. package/dist/src/tuix-button/TuixButton.styles.js +77 -44
  13. package/dist/src/tuix-button/enums/tuix-button.enums.js +3 -4
  14. package/dist/src/tuix-button/interfaces/tuix-button.interface.d.ts +1 -0
  15. package/dist/src/tuix-button/interfaces/tuix-button.interface.js +1 -0
  16. package/dist/src/tuix-checkbox/TuixCheckbox.d.ts +17 -0
  17. package/dist/src/tuix-checkbox/TuixCheckbox.js +108 -0
  18. package/dist/src/tuix-checkbox/TuixCheckbox.styles.d.ts +4 -0
  19. package/dist/src/tuix-checkbox/TuixCheckbox.styles.js +132 -0
  20. package/dist/src/tuix-checkbox/enums/tuix-checkbox.enums.d.ts +21 -0
  21. package/dist/src/tuix-checkbox/enums/tuix-checkbox.enums.js +23 -0
  22. package/dist/src/tuix-checkbox/interfaces/tuix-checkbox.interface.d.ts +5 -0
  23. package/dist/src/tuix-checkbox/interfaces/tuix-checkbox.interface.js +1 -0
  24. package/dist/src/tuix-dropdown/TuixDropdown.d.ts +13 -3
  25. package/dist/src/tuix-dropdown/TuixDropdown.js +125 -39
  26. package/dist/src/tuix-dropdown/TuixDropdown.styles.js +59 -19
  27. package/dist/src/tuix-dropdown/enums/tuix-dropdown.enums.d.ts +0 -6
  28. package/dist/src/tuix-dropdown/enums/tuix-dropdown.enums.js +0 -8
  29. package/dist/src/tuix-dropdown/interfaces/tuix-dropdown.interface.d.ts +15 -1
  30. package/dist/src/tuix-dropdown/interfaces/tuix-dropdown.interface.js +0 -1
  31. package/dist/src/tuix-icon/TuixIcon.d.ts +5 -1
  32. package/dist/src/tuix-icon/TuixIcon.icons.d.ts +2 -2
  33. package/dist/src/tuix-icon/TuixIcon.icons.js +299 -7
  34. package/dist/src/tuix-icon/TuixIcon.js +37 -23
  35. package/dist/src/tuix-icon/enums/tuix-icon.enums.d.ts +67 -21
  36. package/dist/src/tuix-icon/enums/tuix-icon.enums.js +66 -22
  37. package/dist/src/tuix-icon-button/TuixIconButton.d.ts +6 -11
  38. package/dist/src/tuix-icon-button/TuixIconButton.js +20 -49
  39. package/dist/src/tuix-input/TuixInput.d.ts +12 -6
  40. package/dist/src/tuix-input/TuixInput.js +97 -50
  41. package/dist/src/tuix-input/TuixInput.styles.js +99 -110
  42. package/dist/src/tuix-input/enums/tuix-input.enums.d.ts +10 -8
  43. package/dist/src/tuix-input/enums/tuix-input.enums.js +10 -11
  44. package/dist/src/tuix-input/interfaces/tuix-input.interface.d.ts +11 -6
  45. package/dist/src/tuix-input/interfaces/tuix-input.interface.js +5 -2
  46. package/dist/src/tuix-link/TuixLink.d.ts +8 -4
  47. package/dist/src/tuix-link/TuixLink.js +37 -38
  48. package/dist/src/tuix-link/TuixLink.styles.d.ts +2 -0
  49. package/dist/src/tuix-link/TuixLink.styles.js +55 -0
  50. package/dist/src/tuix-link/enums/linkTarget.enum.d.ts +4 -4
  51. package/dist/src/tuix-link/enums/linkTarget.enum.js +4 -5
  52. package/dist/src/tuix-modal/TuixModal.d.ts +11 -0
  53. package/dist/src/tuix-modal/TuixModal.js +65 -0
  54. package/dist/src/tuix-modal/TuixModal.styles.d.ts +2 -0
  55. package/dist/src/tuix-modal/TuixModal.styles.js +55 -0
  56. package/dist/src/tuix-paper/TuixPaper.d.ts +7 -4
  57. package/dist/src/tuix-paper/TuixPaper.js +29 -23
  58. package/dist/src/tuix-paper/TuixPaper.styles.d.ts +1 -0
  59. package/dist/src/tuix-paper/TuixPaper.styles.js +30 -0
  60. package/dist/src/tuix-paper/enums/tuix-paper.enum.d.ts +12 -6
  61. package/dist/src/tuix-paper/enums/tuix-paper.enum.js +15 -9
  62. package/dist/src/tuix-radio-button/TuixRadioButton.d.ts +17 -0
  63. package/dist/src/tuix-radio-button/TuixRadioButton.js +96 -0
  64. package/dist/src/tuix-radio-button/TuixRadioButton.styles.d.ts +5 -0
  65. package/dist/src/tuix-radio-button/TuixRadioButton.styles.js +135 -0
  66. package/dist/src/tuix-radio-button/interfaces/tuix-radio-button.interface.d.ts +3 -0
  67. package/dist/src/tuix-radio-button/interfaces/tuix-radio-button.interface.js +1 -0
  68. package/dist/src/tuix-table/TuixTable.d.ts +48 -0
  69. package/dist/src/tuix-table/TuixTable.js +369 -0
  70. package/dist/src/tuix-table/TuixTable.styles.d.ts +2 -0
  71. package/dist/src/tuix-table/TuixTable.styles.js +197 -0
  72. package/dist/src/tuix-table/interfaces/tuix-table.interface.d.ts +45 -0
  73. package/dist/src/tuix-table/interfaces/tuix-table.interface.js +1 -0
  74. package/dist/src/tuix-text/TuixText.d.ts +7 -4
  75. package/dist/src/tuix-text/TuixText.js +44 -18
  76. package/dist/src/tuix-text/TuixText.styles.d.ts +1 -0
  77. package/dist/src/tuix-text/TuixText.styles.js +145 -64
  78. package/dist/src/tuix-text/enums/tuix-text.enums.d.ts +25 -11
  79. package/dist/src/tuix-text/enums/tuix-text.enums.js +61 -14
  80. package/dist/src/tuix-toast/TuixToast.d.ts +18 -0
  81. package/dist/src/tuix-toast/TuixToast.js +103 -0
  82. package/dist/src/tuix-toast/TuixToast.styles.d.ts +3 -0
  83. package/dist/src/tuix-toast/TuixToast.styles.js +43 -0
  84. package/dist/src/tuix-toast/enums/tuix-toast.enums.d.ts +20 -0
  85. package/dist/src/tuix-toast/enums/tuix-toast.enums.js +59 -0
  86. package/dist/src/tuix-toggle-button/TuixToggleButton.d.ts +14 -0
  87. package/dist/src/tuix-toggle-button/TuixToggleButton.js +86 -0
  88. package/dist/src/tuix-toggle-button/TuixToggleButton.styles.d.ts +5 -0
  89. package/dist/src/tuix-toggle-button/TuixToggleButton.styles.js +134 -0
  90. package/dist/src/tuix-toggle-button/interfaces/tuix-toggle.interface.d.ts +2 -0
  91. package/dist/src/tuix-toggle-button/interfaces/tuix-toggle.interface.js +1 -0
  92. package/dist/src/utils/colors.d.ts +29 -11
  93. package/dist/src/utils/colors.js +31 -46
  94. package/dist/src/utils/darkColors.d.ts +32 -1
  95. package/dist/src/utils/darkColors.js +33 -11
  96. package/dist/src/utils/hex-rgb.js +0 -1
  97. package/dist/src/utils/interfaces/detail-value.interface.d.ts +3 -0
  98. package/dist/src/utils/interfaces/detail-value.interface.js +1 -0
  99. package/dist/src/utils/mainVariant.enum.js +0 -1
  100. package/dist/src/utils/screenSizes.enum.d.ts +2 -2
  101. package/dist/src/utils/screenSizes.enum.js +2 -4
  102. package/dist/src/utils/slottedClassName.d.ts +2 -0
  103. package/dist/src/utils/slottedClassName.js +1 -0
  104. package/package.json +113 -68
  105. package/dist/src/index.js.map +0 -1
  106. package/dist/src/tuix-button/TuixButton.js.map +0 -1
  107. package/dist/src/tuix-button/TuixButton.styles.js.map +0 -1
  108. package/dist/src/tuix-button/enums/tuix-button.enums.js.map +0 -1
  109. package/dist/src/tuix-dropdown/TuixDropdown.js.map +0 -1
  110. package/dist/src/tuix-dropdown/TuixDropdown.styles.js.map +0 -1
  111. package/dist/src/tuix-dropdown/enums/tuix-dropdown.enums.js.map +0 -1
  112. package/dist/src/tuix-dropdown/interfaces/tuix-dropdown.interface.js.map +0 -1
  113. package/dist/src/tuix-icon/TuixIcon.icons.js.map +0 -1
  114. package/dist/src/tuix-icon/TuixIcon.js.map +0 -1
  115. package/dist/src/tuix-icon/enums/tuix-icon.enums.js.map +0 -1
  116. package/dist/src/tuix-icon-button/TuixIconButton.js.map +0 -1
  117. package/dist/src/tuix-input/TuixInput.js.map +0 -1
  118. package/dist/src/tuix-input/TuixInput.styles.js.map +0 -1
  119. package/dist/src/tuix-input/enums/tuix-input.enums.js.map +0 -1
  120. package/dist/src/tuix-input/interfaces/tuix-input.interface.js.map +0 -1
  121. package/dist/src/tuix-link/TuixLink.js.map +0 -1
  122. package/dist/src/tuix-link/enums/linkTarget.enum.js.map +0 -1
  123. package/dist/src/tuix-paper/TuixPaper.js.map +0 -1
  124. package/dist/src/tuix-paper/enums/tuix-paper.enum.js.map +0 -1
  125. package/dist/src/tuix-text/TuixText.js.map +0 -1
  126. package/dist/src/tuix-text/TuixText.styles.js.map +0 -1
  127. package/dist/src/tuix-text/enums/tuix-text.enums.js.map +0 -1
  128. package/dist/src/utils/colors.js.map +0 -1
  129. package/dist/src/utils/darkColors.js.map +0 -1
  130. package/dist/src/utils/hex-rgb.js.map +0 -1
  131. package/dist/src/utils/mainVariant.enum.js.map +0 -1
  132. package/dist/src/utils/screenSizes.enum.js.map +0 -1
  133. package/dist/tsconfig.publish.tsbuildinfo +0 -1
@@ -0,0 +1,65 @@
1
+ import { __decorate } from "tslib";
2
+ import { html, LitElement } from 'lit';
3
+ import { customElement, property } from 'lit/decorators.js';
4
+ import '../tuix-icon/TuixIcon.js';
5
+ import '../tuix-paper/TuixPaper.js';
6
+ import { BorderRadiusPaper, PaperElevation, } from '../tuix-paper/enums/tuix-paper.enum.js';
7
+ import { commonModalStyles, mobileModalStyles } from './TuixModal.styles.js';
8
+ import { TextVariant } from '../tuix-text/enums/tuix-text.enums.js';
9
+ import { IconName, IconSizeVariant, } from '../tuix-icon/enums/tuix-icon.enums.js';
10
+ let TuixModal = class TuixModal extends LitElement {
11
+ constructor() {
12
+ super(...arguments);
13
+ this.visible = false;
14
+ this.dark = false;
15
+ this.scrollable = false;
16
+ }
17
+ static { this.styles = [commonModalStyles, mobileModalStyles]; }
18
+ _onClose() {
19
+ this.visible = false;
20
+ this.dispatchEvent(new CustomEvent('on-close', { bubbles: true }));
21
+ }
22
+ render() {
23
+ return html `
24
+ <tuix-paper
25
+ class="modal-container"
26
+ elevation=${PaperElevation.VARIANT_4}
27
+ border-radius=${BorderRadiusPaper.SOFT}
28
+ ?dark=${this.dark}
29
+ >
30
+ <div class="content">
31
+ <header>
32
+ <slot name="title"></slot>
33
+ <tuix-icon
34
+ @click=${this._onClose}
35
+ class="close-icon"
36
+ size="${IconSizeVariant.MEDIUM}"
37
+ name="${IconName.X}"
38
+ color="${TextVariant.MAIN}"
39
+ ?dark=${this.dark}
40
+ ></tuix-icon>
41
+ </header>
42
+ <div class="body" ?scrollable=${this.scrollable}>
43
+ <slot name="body"></slot>
44
+ </div>
45
+ <div class="action-buttons">
46
+ <slot name="actions"></slot>
47
+ </div>
48
+ </div>
49
+ </tuix-paper>
50
+ `;
51
+ }
52
+ };
53
+ __decorate([
54
+ property({ type: Boolean, reflect: true })
55
+ ], TuixModal.prototype, "visible", void 0);
56
+ __decorate([
57
+ property({ type: Boolean, reflect: true })
58
+ ], TuixModal.prototype, "dark", void 0);
59
+ __decorate([
60
+ property({ type: Boolean, reflect: true })
61
+ ], TuixModal.prototype, "scrollable", void 0);
62
+ TuixModal = __decorate([
63
+ customElement('tuix-modal')
64
+ ], TuixModal);
65
+ export { TuixModal };
@@ -0,0 +1,2 @@
1
+ export declare const commonModalStyles: import("lit").CSSResult;
2
+ export declare const mobileModalStyles: import("lit").CSSResult;
@@ -0,0 +1,55 @@
1
+ import { css, unsafeCSS } from 'lit';
2
+ import { ScreenSizes } from '../utils/screenSizes.enum';
3
+ import { Palette } from '../utils/colors';
4
+ export const commonModalStyles = css `
5
+ :host {
6
+ display: none;
7
+ position: fixed;
8
+ width: 100%;
9
+ height: 100vh;
10
+ align-items: center;
11
+ top: 0;
12
+ left: 0;
13
+ background-color: ${unsafeCSS(Palette.BLACK + '80')};
14
+ }
15
+
16
+ :host([visible]) {
17
+ display: flex;
18
+ }
19
+
20
+ .modal-container {
21
+ margin: auto;
22
+ max-width: 96%;
23
+ max-height: 96vh;
24
+
25
+ .content {
26
+ border-radius: 4px;
27
+
28
+ header {
29
+ display: flex;
30
+ justify-content: space-between;
31
+ padding: 16px 16px 8px;
32
+
33
+ .close-icon {
34
+ cursor: pointer;
35
+ }
36
+ }
37
+
38
+ div.body {
39
+ padding: 8px 16px 32px;
40
+ }
41
+
42
+ div.action-buttons {
43
+ padding: 8px 16px 16px 16px;
44
+ }
45
+ }
46
+ }
47
+ `;
48
+ export const mobileModalStyles = css `
49
+ @media only screen and (max-width: ${ScreenSizes.MOBILE}px) {
50
+ .modal-container {
51
+ min-width: 100%;
52
+ max-height: 100%;
53
+ }
54
+ }
55
+ `;
@@ -1,7 +1,10 @@
1
- import { LitElement, TemplateResult } from 'lit';
2
- import { ShadowVariants } from './enums/tuix-paper.enum';
1
+ import { LitElement, type TemplateResult } from 'lit';
2
+ import { BorderRadiusPaper, PaperElevation } from './enums/tuix-paper.enum';
3
3
  export declare class TuixPaper extends LitElement {
4
- elevation: ShadowVariants;
5
- static styles: import("lit").CSSResult;
4
+ static styles: import("lit").CSSResult[];
5
+ elevation: PaperElevation;
6
+ borderRadius: BorderRadiusPaper;
7
+ dark: boolean;
8
+ private _getOptionalClasses;
6
9
  render(): TemplateResult;
7
10
  }
@@ -1,40 +1,46 @@
1
1
  import { __decorate } from "tslib";
2
- import { LitElement, css, html, unsafeCSS } from 'lit';
2
+ import { LitElement, html } from 'lit';
3
3
  import { customElement, property } from 'lit/decorators.js';
4
- import { ShadowVariants } from './enums/tuix-paper.enum';
4
+ import { BorderRadiusPaper, PaperElevation } from './enums/tuix-paper.enum';
5
+ import { classMap } from 'lit/directives/class-map.js';
6
+ import { styleMap } from 'lit/directives/style-map.js';
7
+ import { paperStyles } from './TuixPaper.styles';
5
8
  let TuixPaper = class TuixPaper extends LitElement {
6
9
  constructor() {
7
10
  super(...arguments);
8
- this.elevation = ShadowVariants.Variant_1;
11
+ this.elevation = PaperElevation.VARIANT_1;
12
+ this.borderRadius = BorderRadiusPaper.NONE;
13
+ this.dark = false;
14
+ }
15
+ static { this.styles = [paperStyles]; }
16
+ _getOptionalClasses() {
17
+ const variantClass = `variant_${this.elevation}`;
18
+ const darkClass = `dark_${this.elevation}`;
19
+ return {
20
+ elevation: true,
21
+ [variantClass]: !this.dark,
22
+ [darkClass]: this.dark,
23
+ };
9
24
  }
10
25
  render() {
11
- return html ` <div class="elevation variant_${this.elevation}">
26
+ return html ` <div
27
+ class="${classMap(this._getOptionalClasses())}"
28
+ style="${styleMap({ borderRadius: this.borderRadius })}"
29
+ >
12
30
  <slot></slot>
13
31
  </div>`;
14
32
  }
15
33
  };
16
- // prettier-ignore
17
- TuixPaper.styles = css `
18
- .elevation {
19
- border-radius: 20px;
20
- padding: 16px 32px;
21
- }
22
-
23
- ${unsafeCSS(Object.values(ShadowVariants).slice(1)
24
- .map((variant, index) => {
25
- return `
26
- .elevation.variant_${variant} {
27
- box-shadow: 0px ${Math.pow(2, index)}px ${Math.pow(2, (index + 2))}px rgba(66, 79, 101, 0.16);
28
- }
29
- `;
30
- })
31
- .join('\n'))}
32
- `;
33
34
  __decorate([
34
- property({ type: ShadowVariants })
35
+ property({ type: PaperElevation })
35
36
  ], TuixPaper.prototype, "elevation", void 0);
37
+ __decorate([
38
+ property({ type: String, attribute: 'border-radius' })
39
+ ], TuixPaper.prototype, "borderRadius", void 0);
40
+ __decorate([
41
+ property({ type: Boolean, reflect: true })
42
+ ], TuixPaper.prototype, "dark", void 0);
36
43
  TuixPaper = __decorate([
37
44
  customElement('tuix-paper')
38
45
  ], TuixPaper);
39
46
  export { TuixPaper };
40
- //# sourceMappingURL=TuixPaper.js.map
@@ -0,0 +1 @@
1
+ export declare const paperStyles: import("lit").CSSResult;
@@ -0,0 +1,30 @@
1
+ import { css, unsafeCSS } from 'lit';
2
+ import { PaperElevation } from './enums/tuix-paper.enum';
3
+ import { Palette } from '../utils/colors';
4
+ const calculatedStyles = Object.values(PaperElevation)
5
+ .slice(1, -1)
6
+ .map((variant, index) => `
7
+ .elevation.variant_${variant} {
8
+ box-shadow: 0px ${2 ** index}px ${2 ** (index + 2)}px ${Palette.SHADOW};
9
+ }
10
+ .elevation.dark_${variant} {
11
+ background-color:rgb(${23 + 3 * index},${23 + 3 * index},${26 + 5 * index});
12
+ }`)
13
+ .join('\n');
14
+ export const paperStyles = css `
15
+ ${unsafeCSS(`
16
+ .elevation {
17
+ background-color: ${Palette.WHITE};
18
+ }
19
+ .elevation.dark_${PaperElevation.VARIANT_0} {
20
+ background-color: ${Palette.BLACK};
21
+ }
22
+ ${calculatedStyles}
23
+ .elevation.variant_${PaperElevation.VARIANT_4} {
24
+ box-shadow: 0px 7px 24px ${Palette.SHADOW};
25
+ }
26
+ .elevation.dark_${PaperElevation.VARIANT_4} {
27
+ background-color: rgb(33, 33, 40);
28
+ }
29
+ `)}
30
+ `;
@@ -1,7 +1,13 @@
1
- export declare enum ShadowVariants {
2
- Variant_0 = "0",
3
- Variant_1 = "1",
4
- Variant_2 = "2",
5
- Variant_3 = "3",
6
- Variant_4 = "4"
1
+ export declare enum PaperElevation {
2
+ VARIANT_0 = "0",
3
+ VARIANT_1 = "1",
4
+ VARIANT_2 = "2",
5
+ VARIANT_3 = "3",
6
+ VARIANT_4 = "4"
7
+ }
8
+ export declare enum BorderRadiusPaper {
9
+ NONE = "0px",
10
+ SOFT = "4px",
11
+ MEDIUM = "10px",
12
+ STRONG = "20px"
7
13
  }
@@ -1,9 +1,15 @@
1
- export var ShadowVariants;
2
- (function (ShadowVariants) {
3
- ShadowVariants["Variant_0"] = "0";
4
- ShadowVariants["Variant_1"] = "1";
5
- ShadowVariants["Variant_2"] = "2";
6
- ShadowVariants["Variant_3"] = "3";
7
- ShadowVariants["Variant_4"] = "4";
8
- })(ShadowVariants || (ShadowVariants = {}));
9
- //# sourceMappingURL=tuix-paper.enum.js.map
1
+ export var PaperElevation;
2
+ (function (PaperElevation) {
3
+ PaperElevation["VARIANT_0"] = "0";
4
+ PaperElevation["VARIANT_1"] = "1";
5
+ PaperElevation["VARIANT_2"] = "2";
6
+ PaperElevation["VARIANT_3"] = "3";
7
+ PaperElevation["VARIANT_4"] = "4";
8
+ })(PaperElevation || (PaperElevation = {}));
9
+ export var BorderRadiusPaper;
10
+ (function (BorderRadiusPaper) {
11
+ BorderRadiusPaper["NONE"] = "0px";
12
+ BorderRadiusPaper["SOFT"] = "4px";
13
+ BorderRadiusPaper["MEDIUM"] = "10px";
14
+ BorderRadiusPaper["STRONG"] = "20px";
15
+ })(BorderRadiusPaper || (BorderRadiusPaper = {}));
@@ -0,0 +1,17 @@
1
+ import { LitElement } from 'lit';
2
+ import '../tuix-text/TuixText.js';
3
+ import { CheckboxLabelSide } from '../tuix-checkbox/enums/tuix-checkbox.enums';
4
+ import type { TuixRadioButtonOption } from './interfaces/tuix-radio-button.interface';
5
+ export declare class TuixRadioButton extends LitElement {
6
+ static styles: import("lit").CSSResult[];
7
+ disabled: boolean;
8
+ dark: boolean;
9
+ error: boolean;
10
+ options: TuixRadioButtonOption[];
11
+ labelSide: CheckboxLabelSide;
12
+ selectedOption: TuixRadioButtonOption | null;
13
+ private _onRadioButtonChange;
14
+ private _getFullContainerClasses;
15
+ private _formatTemplate;
16
+ render(): import("lit-html").TemplateResult<1>;
17
+ }
@@ -0,0 +1,96 @@
1
+ import { __decorate } from "tslib";
2
+ import { LitElement, html } from 'lit';
3
+ import { customElement, property } from 'lit/decorators.js';
4
+ import { classMap } from 'lit/directives/class-map.js';
5
+ import '../tuix-text/TuixText.js';
6
+ import { CheckboxLabelSide } from '../tuix-checkbox/enums/tuix-checkbox.enums';
7
+ import { TextSize, TextVariant } from '../tuix-text/enums/tuix-text.enums';
8
+ import { radioButtonContainerStyles, radioButtonInnerStyles, radioButtonLabelStyles, radioButtonStyles, radioHostStyles, } from './TuixRadioButton.styles';
9
+ let TuixRadioButton = class TuixRadioButton extends LitElement {
10
+ constructor() {
11
+ super(...arguments);
12
+ this.disabled = false;
13
+ this.dark = false;
14
+ this.error = false;
15
+ this.options = [];
16
+ this.labelSide = CheckboxLabelSide.RIGHT;
17
+ this.selectedOption = null;
18
+ }
19
+ static { this.styles = [
20
+ radioHostStyles,
21
+ radioButtonContainerStyles,
22
+ radioButtonStyles,
23
+ radioButtonInnerStyles,
24
+ radioButtonLabelStyles,
25
+ ]; }
26
+ _onRadioButtonChange(event) {
27
+ this.dispatchEvent(new CustomEvent('change', {
28
+ detail: {
29
+ value: event.target.value,
30
+ },
31
+ bubbles: true,
32
+ }));
33
+ }
34
+ _getFullContainerClasses() {
35
+ return {
36
+ 't-radio-button-full-container': true,
37
+ 't-with-error': this.error && !this.disabled,
38
+ 't-with-label-left': this.labelSide === CheckboxLabelSide.LEFT,
39
+ 't-multiple-options': this.options.length > 1,
40
+ };
41
+ }
42
+ _formatTemplate(option, index) {
43
+ return html `<label class="${classMap(this._getFullContainerClasses())}">
44
+ <div class="t-radio-button-container">
45
+ <input
46
+ type="radio"
47
+ class="t-radio-button"
48
+ ?disabled="${this.disabled}"
49
+ .value="${option}"
50
+ name="tuix-radio-button"
51
+ ?checked="${this.selectedOption === option}"
52
+ @change="${this._onRadioButtonChange}"
53
+ />
54
+ <div class="t-radio-button-checkmark">
55
+ <div class="t-radio-button-inner"></div>
56
+ </div>
57
+ </div>
58
+ <div class="t-radio-button-label">
59
+ <slot name="label-${index}">
60
+ <tuix-text
61
+ size="${TextSize.FieldPlaceholder}"
62
+ color="${TextVariant.PRIMARY}"
63
+ ?dark="${this.dark}"
64
+ >
65
+ ${option}
66
+ </tuix-text>
67
+ </slot>
68
+ </div>
69
+ </label>`;
70
+ }
71
+ render() {
72
+ return html `${this.options.map((option, index) => this._formatTemplate(option, index))}`;
73
+ }
74
+ };
75
+ __decorate([
76
+ property({ type: Boolean, reflect: true })
77
+ ], TuixRadioButton.prototype, "disabled", void 0);
78
+ __decorate([
79
+ property({ type: Boolean, reflect: true })
80
+ ], TuixRadioButton.prototype, "dark", void 0);
81
+ __decorate([
82
+ property({ type: Boolean, reflect: true })
83
+ ], TuixRadioButton.prototype, "error", void 0);
84
+ __decorate([
85
+ property({ type: Array })
86
+ ], TuixRadioButton.prototype, "options", void 0);
87
+ __decorate([
88
+ property({ type: String })
89
+ ], TuixRadioButton.prototype, "labelSide", void 0);
90
+ __decorate([
91
+ property({ type: String })
92
+ ], TuixRadioButton.prototype, "selectedOption", void 0);
93
+ TuixRadioButton = __decorate([
94
+ customElement('tuix-radio-button')
95
+ ], TuixRadioButton);
96
+ export { TuixRadioButton };
@@ -0,0 +1,5 @@
1
+ export declare const radioHostStyles: import("lit").CSSResult;
2
+ export declare const radioButtonContainerStyles: import("lit").CSSResult;
3
+ export declare const radioButtonStyles: import("lit").CSSResult;
4
+ export declare const radioButtonInnerStyles: import("lit").CSSResult;
5
+ export declare const radioButtonLabelStyles: import("lit").CSSResult;
@@ -0,0 +1,135 @@
1
+ import { css, unsafeCSS } from 'lit';
2
+ import { hostStyles } from '../tuix-checkbox/TuixCheckbox.styles';
3
+ import { Palette } from '../utils/colors';
4
+ import { ScreenSizes } from '../utils/screenSizes.enum';
5
+ export const radioHostStyles = css `
6
+ ${hostStyles}
7
+ :host {
8
+ --t-margin-between-radio-buttons: 1rem;
9
+ --t-radio-button-inner-color-disabled: ${unsafeCSS(Palette.PRIMARY_300)};
10
+ }
11
+ `;
12
+ export const radioButtonContainerStyles = css `
13
+ .t-radio-button-full-container {
14
+ display: flex;
15
+ justify-content: var(--t-label-right-default-justify, flex-start);
16
+ cursor: pointer;
17
+ -webkit-user-select: none;
18
+ -moz-user-select: none;
19
+ -ms-user-select: none;
20
+ user-select: none;
21
+ }
22
+ :host([disabled]) .t-radio-button-full-container {
23
+ cursor: not-allowed;
24
+ }
25
+ .t-radio-button-container {
26
+ --t-radio-button-size-box: 1.5rem;
27
+ --t-radio-button-shadow-width: 2px;
28
+ display: block;
29
+ position: relative;
30
+ height: var(--t-radio-button-size-box);
31
+ width: var(--t-radio-button-size-box);
32
+ min-width: var(--t-radio-button-size-box);
33
+ }
34
+ .t-radio-button-container .t-radio-button {
35
+ position: absolute;
36
+ opacity: 0;
37
+ height: 0;
38
+ width: 0;
39
+ }
40
+ @media only screen and (max-width: ${ScreenSizes.MOBILE}px) {
41
+ .t-radio-button-container {
42
+ --t-radio-button-size-box: 1rem;
43
+ --t-radio-button-shadow-width: 1px;
44
+ margin-top: 1px;
45
+ }
46
+ }
47
+ `;
48
+ export const radioButtonStyles = css `
49
+ .t-radio-button-full-container.t-multiple-options {
50
+ margin-bottom: var(--t-margin-between-radio-buttons);
51
+ }
52
+ .t-radio-button-container .t-radio-button-checkmark {
53
+ position: absolute;
54
+ top: 0;
55
+ left: 0;
56
+ display: flex;
57
+ height: var(--t-radio-button-size-box);
58
+ width: var(--t-radio-button-size-box);
59
+ background-color: var(--t-bg-color-primary);
60
+ border: 1px solid var(--t-stroke-color-grey);
61
+ box-sizing: border-box;
62
+ border-radius: 50%;
63
+ }
64
+ .t-radio-button-container
65
+ .t-radio-button:checked
66
+ ~ .t-radio-button-checkmark {
67
+ border: 1px solid var(--t-main-color-tuix);
68
+ }
69
+ .t-radio-button-container .t-radio-button:focus ~ .t-radio-button-checkmark {
70
+ box-shadow: 0 0 0px var(--t-radio-button-shadow-width)
71
+ var(--t-stroke-color-focus);
72
+ }
73
+ .t-radio-button-full-container:hover
74
+ .t-radio-button-container
75
+ .t-radio-button-checkmark {
76
+ border: 1px solid var(--t-main-color-tuix);
77
+ }
78
+ .t-radio-button-full-container.t-with-error
79
+ .t-radio-button-container
80
+ .t-radio-button-checkmark {
81
+ border: 1px solid var(--t-text-color-error);
82
+ }
83
+
84
+ .t-radio-button-container
85
+ .t-radio-button:disabled
86
+ ~ .t-radio-button-checkmark {
87
+ background-color: var(--t-bg-color-disabled);
88
+ border: none;
89
+ box-shadow: none;
90
+ }
91
+ `;
92
+ export const radioButtonInnerStyles = css `
93
+ .t-radio-button-container .t-radio-button-checkmark .t-radio-button-inner {
94
+ background-color: var(--t-main-color-tuix);
95
+ margin: auto;
96
+ height: calc(var(--t-radio-button-size-box) / 2 - 2px);
97
+ width: calc(var(--t-radio-button-size-box) / 2 - 2px);
98
+ border-radius: 50%;
99
+ display: none;
100
+ }
101
+ .t-radio-button-container
102
+ .t-radio-button:checked
103
+ ~ .t-radio-button-checkmark
104
+ .t-radio-button-inner {
105
+ display: block;
106
+ }
107
+ :host([error])
108
+ .t-radio-button-container
109
+ .t-radio-button-checkmark
110
+ .t-radio-button-inner {
111
+ background-color: var(--t-text-color-error);
112
+ }
113
+ :host([disabled])
114
+ .t-radio-button-container
115
+ .t-radio-button-checkmark
116
+ .t-radio-button-inner {
117
+ background-color: var(--t-radio-button-inner-color-disabled);
118
+ cursor: not-allowed;
119
+ }
120
+ `;
121
+ export const radioButtonLabelStyles = css `
122
+ .t-radio-button-label {
123
+ display: block;
124
+ color: var(--t-text-color-label);
125
+ margin-left: 0.625rem;
126
+ }
127
+ .t-radio-button-full-container.t-with-label-left {
128
+ flex-direction: row-reverse;
129
+ justify-content: var(--t-label-left-default-justify, space-between);
130
+ }
131
+ .t-radio-button-full-container.t-with-label-left .t-radio-button-label {
132
+ margin-right: 0.625rem;
133
+ margin-left: 0;
134
+ }
135
+ `;
@@ -0,0 +1,3 @@
1
+ import { type DetailValue } from '../../utils/interfaces/detail-value.interface';
2
+ export type TuixRadioButtonOption = string | number;
3
+ export type CustomEventTuixRadioButton<T extends TuixRadioButtonOption = TuixRadioButtonOption> = CustomEvent<DetailValue<T>>;
@@ -0,0 +1,48 @@
1
+ import { LitElement } from 'lit';
2
+ import '../tuix-icon/TuixIcon.js';
3
+ import '../tuix-text/TuixText.js';
4
+ import type { IDataTableHeader, ThreeDotsLoaderConfig } from './interfaces/tuix-table.interface.js';
5
+ export declare class TuixTable extends LitElement {
6
+ static styles: import("lit").CSSResult[];
7
+ paginated: boolean;
8
+ disableMobileTable: boolean;
9
+ showMobileTableInTablet: boolean;
10
+ loader?: ThreeDotsLoaderConfig;
11
+ data: Record<string, any>[];
12
+ headers: IDataTableHeader<any>[];
13
+ pageSizeOptions: number[];
14
+ totalItems?: number;
15
+ currentPage?: number;
16
+ currentSize?: number;
17
+ isLoadingData: boolean;
18
+ private _isTabletView;
19
+ private _isMobileView;
20
+ private _headerPercents;
21
+ private _mqTablet?;
22
+ private _mqMobile?;
23
+ private _onScreenSizeChange;
24
+ connectedCallback(): void;
25
+ disconnectedCallback(): void;
26
+ updated(changedProps: Map<string, any>): void;
27
+ private get _effectiveTotalItems();
28
+ private get _effectiveCurrentPage();
29
+ private get _effectivePageSize();
30
+ private get totalPages();
31
+ private get _paginationProps();
32
+ private _nextPage;
33
+ private _prevPage;
34
+ private _setPageSize;
35
+ private _computeHeaderPercents;
36
+ private _cellStyleString;
37
+ private _textVariantColor;
38
+ private _renderHeaderCells;
39
+ private _renderCell;
40
+ private _renderRows;
41
+ private _onPageSizeChange;
42
+ private _renderPageSizeOptions;
43
+ private _renderSpinner;
44
+ private _renderPagination;
45
+ private _renderTable;
46
+ private _renderCards;
47
+ render(): import("lit-html").TemplateResult<1>;
48
+ }