revotech-ui-kit 0.0.5-beta → 0.0.7-beta

Sign up to get free protection for your applications and to get access to all the features.
Files changed (146) hide show
  1. package/dist/index.ts +1 -1
  2. package/dist/rollup-plugin-html-noop.js +1 -0
  3. package/dist/sw.js +1 -1
  4. package/dist/sw.js.map +1 -1
  5. package/package.json +5 -4
  6. package/.editorconfig +0 -29
  7. package/.eslintrc +0 -10
  8. package/.github/workflows/deploy-storybook.yml +0 -107
  9. package/.storybook/main.ts +0 -17
  10. package/.storybook/preview-head.html +0 -1
  11. package/.storybook/preview.ts +0 -17
  12. package/assets/fonts/Geist/Geist-Black.otf +0 -0
  13. package/assets/fonts/Geist/Geist-Black.woff2 +0 -0
  14. package/assets/fonts/Geist/Geist-Bold.otf +0 -0
  15. package/assets/fonts/Geist/Geist-Bold.woff2 +0 -0
  16. package/assets/fonts/Geist/Geist-Light.otf +0 -0
  17. package/assets/fonts/Geist/Geist-Light.woff2 +0 -0
  18. package/assets/fonts/Geist/Geist-Medium.otf +0 -0
  19. package/assets/fonts/Geist/Geist-Medium.woff2 +0 -0
  20. package/assets/fonts/Geist/Geist-Regular.otf +0 -0
  21. package/assets/fonts/Geist/Geist-Regular.woff2 +0 -0
  22. package/assets/fonts/Geist/Geist-SemiBold.otf +0 -0
  23. package/assets/fonts/Geist/Geist-SemiBold.woff2 +0 -0
  24. package/assets/fonts/Geist/Geist-Thin.otf +0 -0
  25. package/assets/fonts/Geist/Geist-Thin.woff2 +0 -0
  26. package/assets/fonts/Geist/Geist-UltraBlack.otf +0 -0
  27. package/assets/fonts/Geist/Geist-UltraBlack.woff2 +0 -0
  28. package/assets/fonts/Geist/Geist-UltraLight.otf +0 -0
  29. package/assets/fonts/Geist/Geist-UltraLight.woff2 +0 -0
  30. package/assets/fonts/Geist/GeistVariableVF.ttf +0 -0
  31. package/assets/fonts/Geist/GeistVariableVF.woff2 +0 -0
  32. package/assets/fonts/Geist/LICENSE.TXT +0 -92
  33. package/assets/open-wc-logo.svg +0 -29
  34. package/assume_role.sh +0 -18
  35. package/index.html +0 -314
  36. package/rollup.config.js +0 -83
  37. package/src/assets/icons/arrows.icon.ts +0 -20
  38. package/src/assets/icons/index.ts +0 -3
  39. package/src/assets/icons/search.icon.ts +0 -19
  40. package/src/assets/icons/tick.icon.ts +0 -20
  41. package/src/chai-custom.d.ts +0 -0
  42. package/src/components/atoms/alert/alert-description.ts +0 -15
  43. package/src/components/atoms/alert/alert-title.ts +0 -17
  44. package/src/components/atoms/alert/alert.atom.ts +0 -55
  45. package/src/components/atoms/alert/alert.stories.ts +0 -71
  46. package/src/components/atoms/alert/alert.styles.ts +0 -21
  47. package/src/components/atoms/alert/alert.types.ts +0 -1
  48. package/src/components/atoms/badge/badge.atom.ts +0 -40
  49. package/src/components/atoms/badge/badge.stories.ts +0 -118
  50. package/src/components/atoms/badge/badge.style.ts +0 -24
  51. package/src/components/atoms/badge/badge.type.ts +0 -7
  52. package/src/components/atoms/button/button.atom.ts +0 -59
  53. package/src/components/atoms/button/button.stories.ts +0 -224
  54. package/src/components/atoms/button/button.style.ts +0 -31
  55. package/src/components/atoms/button/button.type.ts +0 -10
  56. package/src/components/atoms/card/card-content.ts +0 -15
  57. package/src/components/atoms/card/card-description.ts +0 -15
  58. package/src/components/atoms/card/card-footer.ts +0 -15
  59. package/src/components/atoms/card/card-header.ts +0 -15
  60. package/src/components/atoms/card/card-title.ts +0 -15
  61. package/src/components/atoms/card/card.atom.ts +0 -31
  62. package/src/components/atoms/card/card.stories.ts +0 -149
  63. package/src/components/atoms/checkbox/checkbox.atom.ts +0 -76
  64. package/src/components/atoms/checkbox/checkbox.stories.ts +0 -309
  65. package/src/components/atoms/checkbox/checkbox.style.ts +0 -5
  66. package/src/components/atoms/checkbox/checkbox.type.ts +0 -24
  67. package/src/components/atoms/combo-box/combo-box-input.ts +0 -33
  68. package/src/components/atoms/combo-box/combo-box-item.ts +0 -59
  69. package/src/components/atoms/combo-box/combo-box-list.ts +0 -57
  70. package/src/components/atoms/combo-box/combo-box.atom.ts +0 -187
  71. package/src/components/atoms/combo-box/combo-box.stories.ts +0 -95
  72. package/src/components/atoms/command-empty/command-empty.atom.ts +0 -44
  73. package/src/components/atoms/command-group/command-group.atom.ts +0 -60
  74. package/src/components/atoms/command-item/command-item.atom.ts +0 -74
  75. package/src/components/atoms/command-list/command-list.atom.ts +0 -37
  76. package/src/components/atoms/command-separator/command-separator.atom.ts +0 -42
  77. package/src/components/atoms/dialog/dialog-close.ts +0 -50
  78. package/src/components/atoms/dialog/dialog-content.ts +0 -71
  79. package/src/components/atoms/dialog/dialog-footer.ts +0 -22
  80. package/src/components/atoms/dialog/dialog-header.ts +0 -36
  81. package/src/components/atoms/dialog/dialog-overly.ts +0 -20
  82. package/src/components/atoms/dialog/dialog-trigger.ts +0 -54
  83. package/src/components/atoms/dialog/dialog.atom.ts +0 -78
  84. package/src/components/atoms/dialog/dialog.stories.ts +0 -93
  85. package/src/components/atoms/dropdownMenu/dropdown-menu-checkbox-Item.ts +0 -106
  86. package/src/components/atoms/dropdownMenu/dropdown-menu-content.ts +0 -79
  87. package/src/components/atoms/dropdownMenu/dropdown-menu-group.ts +0 -60
  88. package/src/components/atoms/dropdownMenu/dropdown-menu-item.ts +0 -74
  89. package/src/components/atoms/dropdownMenu/dropdown-menu-radio-item.ts +0 -107
  90. package/src/components/atoms/dropdownMenu/dropdown-menu-seperator.ts +0 -44
  91. package/src/components/atoms/dropdownMenu/dropdown-menu-shortcut.ts +0 -17
  92. package/src/components/atoms/dropdownMenu/dropdown-menu.atom.ts +0 -84
  93. package/src/components/atoms/dropdownMenu/dropdownMenu.stories.ts +0 -220
  94. package/src/components/atoms/dropdownMenu/dropdownMenu.style.ts +0 -7
  95. package/src/components/atoms/index.ts +0 -13
  96. package/src/components/atoms/input/input.atom.ts +0 -88
  97. package/src/components/atoms/input/input.stories.ts +0 -451
  98. package/src/components/atoms/input/input.styles.ts +0 -2
  99. package/src/components/atoms/input/input.type.ts +0 -58
  100. package/src/components/atoms/label/label.atom.ts +0 -64
  101. package/src/components/atoms/label/label.stories.ts +0 -102
  102. package/src/components/atoms/label/label.style.ts +0 -5
  103. package/src/components/atoms/popover/popover-content.ts +0 -58
  104. package/src/components/atoms/popover/popover-trigger.ts +0 -50
  105. package/src/components/atoms/popover/popover.atom.ts +0 -34
  106. package/src/components/atoms/popover/popover.stories.ts +0 -79
  107. package/src/components/atoms/popover/popover.style.ts +0 -25
  108. package/src/components/atoms/popover/popover.types.ts +0 -3
  109. package/src/components/atoms/toggle/defs.ts +0 -29
  110. package/src/components/atoms/toggle/toggle.atom.ts +0 -58
  111. package/src/components/atoms/toggle/toggle.stories.ts +0 -204
  112. package/src/components/atoms/toggle/toggle.style.ts +0 -22
  113. package/src/components/command/command.stories.ts +0 -154
  114. package/src/components/command/command.ts +0 -391
  115. package/src/components/index.ts +0 -2
  116. package/src/components/molecules/command/command.molecules.ts +0 -31
  117. package/src/components/molecules/command-input/command-input.atom.ts +0 -130
  118. package/src/components/molecules/dropdownMenu/dropdownMenu.molecules.ts +0 -0
  119. package/src/components/molecules/index.ts +0 -1
  120. package/src/globals.css +0 -2215
  121. package/src/helpers/base-element.ts +0 -79
  122. package/src/helpers/index.ts +0 -3
  123. package/src/helpers/mouse-conroller.helper.ts +0 -42
  124. package/src/helpers/style.helpers.ts +0 -6
  125. package/src/index.d.ts +0 -1
  126. package/src/index.ts +0 -1
  127. package/src/interfaces/actionable.interface.ts +0 -6
  128. package/src/interfaces/atomic.interface.ts +0 -6
  129. package/src/interfaces/changeable.interface.ts +0 -14
  130. package/src/interfaces/child-support-atomic.interface.ts +0 -5
  131. package/src/interfaces/index.ts +0 -6
  132. package/src/interfaces/intractable.interface.ts +0 -6
  133. package/src/interfaces/variant.interface.ts +0 -3
  134. package/src/lib/index.ts +0 -0
  135. package/src/lib/next/next.lib.ts +0 -0
  136. package/src/lib/react/react.lib.ts +0 -18
  137. package/src/lib/tw-styles.ts +0 -1957
  138. package/src/styles/index.ts +0 -1
  139. package/src/styles/tw.styles.ts +0 -2219
  140. package/src/tailwind-lib.css +0 -115
  141. package/src/wc-ui-app.ts +0 -81
  142. package/tailwind.config.js +0 -217
  143. package/test/wc-ui-app.test.ts +0 -22
  144. package/tsconfig.json +0 -30
  145. package/web-dev-server.config.mjs +0 -26
  146. package/web-test-runner.config.mjs +0 -41
@@ -1,40 +0,0 @@
1
- import { html, css } from 'lit';
2
- import { customElement, property } from 'lit/decorators.js';
3
- import { cn, BaseElement } from '../../../helpers';
4
- import { badgeStyle } from './badge.style';
5
- import { BadgeVariant } from './badge.type';
6
- import { TWStyles } from '../../../styles';
7
- import { spread } from '@open-wc/lit-helpers';
8
-
9
- @customElement('rtg-badge')
10
- export class Badge extends BaseElement {
11
- static badgeVariants = badgeStyle;
12
-
13
- @property({ type: String }) variant: BadgeVariant = 'default';
14
-
15
- static styles = [css``, TWStyles];
16
-
17
- protected getAttributesToExclude(): string[] {
18
- return ['variant'];
19
- }
20
-
21
- render() {
22
- const attributes = this.getFilteredAttributes();
23
-
24
- return html`
25
- <div
26
- id="rtg-badge-id"
27
- class="
28
- ${cn(
29
- Badge.badgeVariants({
30
- variant: this.variant,
31
- className: this.className,
32
- })
33
- )}"
34
- ${spread(attributes)}
35
- >
36
- <slot></slot>
37
- </div>
38
- `;
39
- }
40
- }
@@ -1,118 +0,0 @@
1
- import type { Meta, StoryObj } from '@storybook/web-components';
2
- import { html } from 'lit';
3
- import './badge.atom';
4
- import { expect, within, waitFor, userEvent } from '@storybook/test';
5
-
6
- const meta: Meta = {
7
- component: 'components/badge',
8
- tags: ['autodocs'],
9
- argTypes: {
10
- variant: {
11
- control: {
12
- type: 'select',
13
- },
14
- description: 'Choose the visual style of the badge.',
15
- table: {
16
- defaultValue: { summary: 'default' },
17
- },
18
- options: [
19
- 'default',
20
- 'destructive',
21
- 'outline',
22
- 'secondary',
23
- 'ghost',
24
- 'link',
25
- ],
26
- },
27
- label: {
28
- control: 'text',
29
- description:
30
- ' The text displayed on the button. Can also be a function returning the label dynamically.',
31
- table: {
32
- defaultValue: { summary: '' },
33
- },
34
- },
35
- },
36
- };
37
-
38
- const testBadgeBehavior = async (args: any, canvasElement: any) => {
39
- const canvas = within(canvasElement);
40
- const badge = await waitFor(() => canvas.getByTestId('badge-id'));
41
- expect(badge).toBeVisible();
42
- if (badge.shadowRoot) {
43
- const badgeItem = await badge.shadowRoot.getElementById('rtg-badge-id');
44
- if (badgeItem) {
45
- expect(badgeItem).toHaveClass(
46
- 'inline-flex items-center border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent rounded-full'
47
- );
48
- switch (args.variant) {
49
- case 'default':
50
- expect(badgeItem).toHaveClass('bg-primary');
51
- expect(badgeItem).toHaveClass('text-primary-foreground');
52
- break;
53
- case 'destructive':
54
- expect(badgeItem).toHaveClass('bg-destructive');
55
- expect(badgeItem).toHaveClass('text-destructive-foreground');
56
- break;
57
- case 'outline':
58
- expect(badgeItem).toHaveClass('border');
59
- expect(badgeItem).toHaveClass('border-input');
60
- expect(badgeItem).toHaveClass('bg-background');
61
- expect(badgeItem).toHaveClass('shadow-sm');
62
- expect(badgeItem).toHaveClass('hover:bg-accent');
63
- expect(badgeItem).toHaveClass('hover:text-accent-foreground');
64
- break;
65
- case 'secondary':
66
- expect(badgeItem).toHaveClass('bg-secondary');
67
- expect(badgeItem).toHaveClass('text-secondary-foreground');
68
- break;
69
- case 'ghost':
70
- expect(badgeItem).toHaveClass('hover:bg-accent');
71
- expect(badgeItem).toHaveClass('hover:text-accent-foreground');
72
- break;
73
- case 'link':
74
- expect(badgeItem).toHaveClass('text-primary');
75
- expect(badgeItem).toHaveClass('underline');
76
- break;
77
- }
78
- await userEvent.hover(badgeItem);
79
- switch (args.variant) {
80
- case 'outline':
81
- expect(badgeItem).toHaveClass('hover:bg-accent');
82
- expect(badgeItem).toHaveClass('hover:text-accent-foreground');
83
- break;
84
- case 'ghost':
85
- expect(badgeItem).toHaveClass('bg-accent');
86
- expect(badgeItem).toHaveClass('text-accent-foreground');
87
- break;
88
- case 'link':
89
- expect(badgeItem).toHaveClass('text-primary');
90
- expect(badgeItem).toHaveClass('underline');
91
- break;
92
- default:
93
- break;
94
- }
95
- const focusedBadge = canvas.getByTestId('badge-id');
96
- console.log(focusedBadge.textContent, args.label);
97
- expect(focusedBadge.textContent).toContain(args.label);
98
- }
99
- }
100
- };
101
-
102
- export default meta;
103
- type Story = StoryObj;
104
-
105
- export const Badge: Story = {
106
- args: {
107
- variant: 'default',
108
- label: 'badge',
109
- },
110
- render: ({ variant, label }) => html`
111
- <rtg-badge data-testid="badge-id" variant=${variant}>
112
- <p>${label}</p>
113
- </rtg-badge>
114
- `,
115
- play: async ({ args, canvasElement }) => {
116
- await testBadgeBehavior(args, canvasElement);
117
- },
118
- };
@@ -1,24 +0,0 @@
1
- import { cva } from 'class-variance-authority';
2
-
3
- export const badgeStyle = cva(
4
- 'inline-flex items-center border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent rounded-full',
5
- {
6
- variants: {
7
- variant: {
8
- default:
9
- 'bg-primary text-primary-foreground shadow hover:bg-primary/90',
10
- destructive:
11
- 'bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90',
12
- outline:
13
- 'border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground',
14
- secondary:
15
- 'bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80',
16
- ghost: 'hover:bg-accent hover:text-accent-foreground',
17
- link: 'text-primary underline-offset-4 hover:underline',
18
- },
19
- },
20
- defaultVariants: {
21
- variant: 'default',
22
- },
23
- }
24
- );
@@ -1,7 +0,0 @@
1
- export type BadgeVariant =
2
- | 'default'
3
- | 'destructive'
4
- | 'outline'
5
- | 'secondary'
6
- | 'ghost'
7
- | 'link';
@@ -1,59 +0,0 @@
1
- import { LitElement, html, css } from 'lit';
2
- import { customElement, property } from 'lit/decorators.js';
3
- import { cn, BaseElement } from '../../../helpers';
4
- import { ButtonSize, ButtonType, ButtonVariant } from './button.type';
5
- import { buttonStyle } from './button.style';
6
- import { TWStyles } from '../../../styles';
7
- import { spread } from '@open-wc/lit-helpers';
8
-
9
- @customElement('rtg-button')
10
- export class Button extends BaseElement {
11
- static buttonVariants = buttonStyle;
12
-
13
- @property({ type: Function }) click = () => {};
14
- @property({ type: Boolean }) disabled = false;
15
- @property({ type: String }) type: ButtonType = 'button';
16
- @property({ type: String }) variant: ButtonVariant = 'default';
17
- @property({ type: String }) size: ButtonSize = 'default';
18
-
19
- static styles = [css``, TWStyles];
20
-
21
- private handleClick(e: MouseEvent) {
22
- e.stopPropagation();
23
- if (!this.disabled) {
24
- this.click();
25
- }
26
- }
27
-
28
- protected getAttributesToExclude(): string[] {
29
- return ['click', 'disabled', 'type', 'variant', 'size', 'data-testid'];
30
- }
31
-
32
- render() {
33
- const attributes = this.getFilteredAttributes();
34
-
35
- return html`
36
- <button
37
- type="${this.type}"
38
- ?disabled="${this.disabled}"
39
- class="${cn(
40
- Button.buttonVariants({
41
- variant: this.variant,
42
- size: this.size,
43
- className: this.className,
44
- })
45
- )}"
46
- @click="${this.handleClick}"
47
- ${spread(attributes)}
48
- >
49
- <slot></slot>
50
- </button>
51
- `;
52
- }
53
- }
54
-
55
- declare global {
56
- interface HTMLElementTagNameMap {
57
- 'rtg-button': Button;
58
- }
59
- }
@@ -1,224 +0,0 @@
1
- import type { Meta, StoryObj } from '@storybook/web-components';
2
- import { html } from 'lit';
3
- import './button.atom';
4
- import { expect, within, fn, waitFor, userEvent } from '@storybook/test';
5
- import { Button } from './button.atom';
6
-
7
- const meta: Meta = {
8
- component: 'components/button',
9
- tags: ['autodocs'],
10
- argTypes: {
11
- variant: {
12
- control: {
13
- type: 'select',
14
- },
15
- options: [
16
- 'default',
17
- 'destructive',
18
- 'outline',
19
- 'secondary',
20
- 'ghost',
21
- 'link',
22
- ],
23
- defaultValue: 'default',
24
- description: 'Choose the visual style of the button.',
25
- table: {
26
- defaultValue: { summary: 'default' },
27
- },
28
- },
29
- size: {
30
- control: {
31
- type: 'select',
32
- },
33
- options: ['default', 'sm', 'lg', 'icon'],
34
- description: 'Choose the visual style of the button.',
35
- defaultValue: 'default',
36
- table: {
37
- defaultValue: { summary: 'default' },
38
- },
39
- },
40
- disabled: {
41
- control: 'boolean',
42
- description: 'Disable the button to prevent interactions.',
43
- table: {
44
- defaultValue: { summary: 'false' },
45
- },
46
- },
47
- label: {
48
- control: 'text',
49
- description:
50
- 'The text displayed on the button. Can also be a function returning the label dynamically.',
51
- type: 'string',
52
- table: {
53
- defaultValue: { summary: 'Button' },
54
- },
55
- },
56
- icon: {
57
- control: 'boolean',
58
- description: 'Add an icon before the button text.',
59
- table: {
60
- defaultValue: { summary: 'false' },
61
- },
62
- },
63
- animation: {
64
- control: 'boolean',
65
- description: 'Enable/disable icon animations.',
66
- table: {
67
- defaultValue: { summary: 'false' },
68
- },
69
- if: { arg: 'icon', neq: false },
70
- },
71
- click: {
72
- action: '',
73
- description:
74
- 'Triggered when the button is clicked. Receives the button instance as an argument.',
75
- table: {
76
- type: { summary: '(() => void)' },
77
- defaultValue: { summary: '-' },
78
- },
79
- },
80
- },
81
- };
82
-
83
- const testButtonBehavior = async (
84
- args: any,
85
- canvasElement: any,
86
- mockHandler: any
87
- ) => {
88
- const canvas = within(canvasElement);
89
- const button = await waitFor(() => canvas.getByTestId('btn-id'));
90
-
91
- if (button.shadowRoot) {
92
- const innerButton = button.shadowRoot.querySelector(
93
- '[data-testchild="children-id"]'
94
- );
95
-
96
- // 1. Test: Button should have correct type attribute
97
- expect(innerButton).toHaveAttribute('type', 'button');
98
-
99
- // 2. Test: Button should handle click events when not disabled
100
- if (!args.disabled && innerButton) {
101
- await userEvent.click(innerButton);
102
- if (mockHandler) {
103
- expect(mockHandler).toHaveBeenCalled();
104
- }
105
- }
106
-
107
- // 3. Test: Button should not handle click events when disabled
108
- if (args.disabled) {
109
- expect(mockHandler).not.toHaveBeenCalled();
110
- }
111
-
112
- // 4. Test: Button should be disabled when the `disabled` prop is true
113
- if (args.disabled) {
114
- expect(innerButton).toBeDisabled();
115
- } else {
116
- expect(innerButton).not.toBeDisabled();
117
- }
118
-
119
- // 5. Test: Button should apply the correct variant classes
120
- const expectedClasses = Button.buttonVariants({
121
- variant: args.variant,
122
- size: args.size,
123
- className: '',
124
- });
125
- expect(innerButton).toHaveClass(expectedClasses);
126
-
127
- // 6. Test: Button should apply the correct size classes
128
- const expectedSizeClasses = Button.buttonVariants({
129
- variant: args.variant,
130
- size: args.size,
131
- className: '',
132
- });
133
- expect(innerButton).toHaveClass(expectedSizeClasses);
134
- }
135
- };
136
-
137
- export default meta;
138
- type Story = StoryObj;
139
-
140
- const mockOnClickHandler = fn(event => {
141
- console.log('Mock onClick handler called');
142
- });
143
-
144
- export const Buttons: Story = {
145
- args: {
146
- label: 'Button',
147
- variant: 'default',
148
- size: 'default',
149
- disabled: false,
150
- icon: false,
151
- animation: false,
152
- },
153
- render: ({ label, variant, size, disabled, icon, animation }) => {
154
- console.log('disabled', disabled);
155
- if (disabled == true)
156
- return html`
157
- <rtg-button
158
- method="post"
159
- .click=${mockOnClickHandler}
160
- data-testid="btn-id"
161
- data-testchild="children-id"
162
- variant=${variant}
163
- size=${size}
164
- disabled=${true}
165
- >
166
- ${icon
167
- ? html`<iconify-icon
168
- class=${animation
169
- ? `${label ? 'mr-2 ' : ' '}animate-spin`
170
- : `${label ? 'mr-2 ' : ''}`}
171
- icon="mdi:home"
172
- ></iconify-icon>`
173
- : ''}
174
- ${label}</rtg-button
175
- >
176
- `;
177
- else if (disabled == false)
178
- return html`
179
- <rtg-button
180
- method="post"
181
- .click=${mockOnClickHandler}
182
- data-testid="btn-id"
183
- data-testchild="children-id"
184
- variant=${variant}
185
- size=${size}
186
- ?disabled=${false}
187
- >
188
- ${icon
189
- ? html`<iconify-icon
190
- class=${animation
191
- ? `${label ? 'mr-2 ' : ' '}animate-spin`
192
- : `${label ? 'mr-2 ' : ''}`}
193
- icon="mdi:home"
194
- ></iconify-icon>`
195
- : ''}
196
- ${label}</rtg-button
197
- >
198
- `;
199
- else
200
- return html`
201
- <rtg-button
202
- method="post"
203
- .click=${mockOnClickHandler}
204
- data-testid="btn-id"
205
- data-testchild="children-id"
206
- variant=${variant}
207
- size=${size}
208
- >
209
- ${icon
210
- ? html`<iconify-icon
211
- class=${animation
212
- ? `${label ? 'mr-2 ' : ' '}animate-spin`
213
- : `${label ? 'mr-2 ' : ''}`}
214
- icon="mdi:home"
215
- ></iconify-icon>`
216
- : ''}
217
- ${label}</rtg-button
218
- >
219
- `;
220
- },
221
- play: async ({ args, canvasElement }) => {
222
- await testButtonBehavior(args, canvasElement, mockOnClickHandler);
223
- },
224
- };
@@ -1,31 +0,0 @@
1
- import { cva } from 'class-variance-authority';
2
-
3
- export const buttonStyle = cva(
4
- 'inline-flex items-center justify-center whitespace-nowrap rounded-sm text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50',
5
- {
6
- variants: {
7
- variant: {
8
- default:
9
- 'bg-primary text-primary-foreground shadow hover:bg-primary/90',
10
- destructive:
11
- 'bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90',
12
- outline:
13
- 'border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground',
14
- secondary:
15
- 'bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80',
16
- ghost: 'hover:bg-accent hover:text-accent-foreground',
17
- link: 'text-primary underline-offset-4 hover:underline',
18
- },
19
- size: {
20
- default: 'h-8 px-4 py-2',
21
- sm: 'h-7 rounded-sm px-3 text-xs',
22
- lg: 'h-9 rounded-sm px-8',
23
- icon: 'h-8 w-8',
24
- },
25
- },
26
- defaultVariants: {
27
- variant: 'default',
28
- size: 'default',
29
- },
30
- }
31
- );
@@ -1,10 +0,0 @@
1
- export type ButtonVariant =
2
- | 'default'
3
- | 'destructive'
4
- | 'outline'
5
- | 'secondary'
6
- | 'ghost'
7
- | 'link';
8
- export type ButtonSize = 'default' | 'sm' | 'lg' | 'icon';
9
-
10
- export type ButtonType = 'button' | 'submit' | 'reset' | 'menu';
@@ -1,15 +0,0 @@
1
- import { css, html, LitElement } from 'lit';
2
- import { customElement } from 'lit/decorators.js';
3
- import { TWStyles } from '../../../styles';
4
-
5
- @customElement('rtg-card-content')
6
- export class CardContent extends LitElement {
7
- static styles = [css``, TWStyles];
8
-
9
-
10
- render() {
11
- return html`
12
- <slot></slot>
13
- `;
14
- }
15
- }
@@ -1,15 +0,0 @@
1
- import { css, html, LitElement } from 'lit';
2
- import { customElement } from 'lit/decorators.js';
3
- import { TWStyles } from '../../../styles';
4
-
5
- @customElement('rtg-card-description')
6
- export class CardDescription extends LitElement {
7
- static styles = [css``, TWStyles];
8
-
9
-
10
- render() {
11
- return html`
12
- <slot></slot>
13
- `;
14
- }
15
- }
@@ -1,15 +0,0 @@
1
- import { css, html, LitElement } from 'lit';
2
- import { customElement } from 'lit/decorators.js';
3
- import { TWStyles } from '../../../styles';
4
-
5
- @customElement('rtg-card-footer')
6
- export class CardFooter extends LitElement {
7
- static styles = [css``, TWStyles];
8
-
9
-
10
- render() {
11
- return html`
12
- <slot></slot>
13
- `;
14
- }
15
- }
@@ -1,15 +0,0 @@
1
- import { css, html, LitElement } from 'lit';
2
- import { customElement } from 'lit/decorators.js';
3
- import { TWStyles } from '../../../styles';
4
-
5
- @customElement('rtg-card-header')
6
- export class CardHeader extends LitElement {
7
- static styles = [css``, TWStyles];
8
-
9
-
10
- render() {
11
- return html`
12
- <slot></slot>
13
- `;
14
- }
15
- }
@@ -1,15 +0,0 @@
1
- import { css, html, LitElement } from 'lit';
2
- import { customElement } from 'lit/decorators.js';
3
- import { TWStyles } from '../../../styles';
4
-
5
- @customElement('rtg-card-title')
6
- export class CardTitle extends LitElement {
7
- static styles = [css``, TWStyles];
8
-
9
-
10
- render() {
11
- return html`
12
- <slot></slot>
13
- `;
14
- }
15
- }
@@ -1,31 +0,0 @@
1
- import { css, html, LitElement } from 'lit';
2
- import { customElement } from 'lit/decorators.js';
3
- import { CardTitle } from './card-title';
4
- import { CardHeader } from './card-header';
5
- import { CardFooter } from './card-footer';
6
- import { CardDescription } from './card-description';
7
- import { CardContent } from './card-content';
8
- import { TWStyles } from '../../../styles';
9
-
10
- @customElement('rtg-card')
11
- class Card extends LitElement {
12
- static styles = [css``, TWStyles];
13
-
14
- render() {
15
- return html`<div
16
- class="rounded-lg border bg-card text-card-foreground shadow-sm p-6"
17
- id="rtg-card-id"
18
- >
19
- <slot></slot>
20
- </div>`;
21
- }
22
- }
23
-
24
- export {
25
- Card,
26
- CardTitle,
27
- CardHeader,
28
- CardFooter,
29
- CardDescription,
30
- CardContent,
31
- };