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,74 +0,0 @@
1
- import { LitElement, html, css, nothing } from 'lit';
2
- import {
3
- property,
4
- customElement,
5
- queryAssignedElements,
6
- } from 'lit/decorators.js';
7
- import { cn } from '../../../helpers';
8
- import { TWStyles } from '../../../styles';
9
-
10
- @customElement('rtg-dropdown-menu-item')
11
- export class DropdownMenuItem extends LitElement {
12
- @property({ type: String }) _id = '';
13
-
14
- @property({ attribute: 'aria-hidden', type: String }) _hidden = '';
15
-
16
- private static _counter = 0;
17
-
18
- static styles = [css``, TWStyles];
19
-
20
- private get identifier() {
21
- if (this._id !== '') {
22
- return this._id;
23
- }
24
- const parent =
25
- this.parentElement?.shadowRoot?.querySelector('div[rtgcmd-group]');
26
- if (parent) {
27
- this._id = `${parent.getAttribute('id')}li${DropdownMenuItem._counter++}`;
28
- } else {
29
- this._id = `rtgcmdrxgxli${DropdownMenuItem._counter++}`;
30
- }
31
- return this._id;
32
- }
33
-
34
- @property({ attribute: 'data-value', type: String })
35
- public get value() {
36
- return this.textContent?.trim() || '';
37
- }
38
-
39
- @property({ type: Boolean }) selected = false;
40
-
41
- private handleMouseEvent(e: Event) {
42
- if (e.type === 'mouseover' || e.type === 'focus') {
43
- this.selected = true;
44
- }
45
- if (e.type === 'mouseleave') {
46
- this.selected = false;
47
- }
48
- }
49
-
50
- render() {
51
- return html` ${this._hidden === 'true'
52
- ? nothing
53
- : html`
54
- <div
55
- class="${cn(
56
- 'relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none aria-selected:bg-accent aria-selected:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50',
57
- this.className
58
- )}"
59
- @mouseover="${this.handleMouseEvent}"
60
- @mouseleave="${this.handleMouseEvent}"
61
- @focus="${this.handleMouseEvent}"
62
- rtgcmd-item
63
- role="option"
64
- aria-selected="${this.selected}"
65
- data-selected="${this.selected}"
66
- data-value="${this.value}"
67
- id="${this.identifier}"
68
- aria-hidden="${this.hidden}"
69
- >
70
- <slot></slot>
71
- </div>
72
- `}`;
73
- }
74
- }
@@ -1,107 +0,0 @@
1
- import { LitElement, html, css, nothing } from 'lit';
2
- import { property, customElement } from 'lit/decorators.js';
3
- import { cn } from '../../../helpers';
4
- import { TWStyles } from '../../../styles';
5
-
6
- @customElement('rtg-dropdown-menu-radio-item')
7
- export class DropdownMenuRadioItem extends LitElement {
8
- @property({ type: String }) _id = '';
9
-
10
- @property({ attribute: 'aria-hidden', type: String }) _hidden = '';
11
-
12
- private static _counter = 0;
13
-
14
- static styles = [
15
- css`
16
- .icon-space {
17
- width: 16px; /* Fixed width to reserve space for the check icon */
18
- height: 16px;
19
- display: inline-block;
20
- }
21
- `,
22
- TWStyles,
23
- ];
24
-
25
- private get identifier() {
26
- if (this._id !== '') {
27
- return this._id;
28
- }
29
- const parent =
30
- this.parentElement?.shadowRoot?.querySelector('div[rtgcmd-group]');
31
- if (parent) {
32
- this._id = `${parent.getAttribute(
33
- 'id'
34
- )}li${DropdownMenuRadioItem._counter++}`;
35
- } else {
36
- this._id = `rtgcmdrxgxli${DropdownMenuRadioItem._counter++}`;
37
- }
38
- return this._id;
39
- }
40
-
41
- @property({ attribute: 'data-value', type: String })
42
- public get value() {
43
- return this.textContent?.trim() || '';
44
- }
45
-
46
- @property({ type: Boolean }) selected = false;
47
-
48
- private handleMouseEvent(e: Event) {
49
- if (e.type === 'mouseover' || e.type === 'focus') {
50
- this.selected = true;
51
- }
52
- if (e.type === 'mouseleave') {
53
- this.selected = false;
54
- }
55
- }
56
-
57
- @property({ type: Boolean }) checked = false; // Added `checked` state
58
- @property({ type: Boolean }) disabled = false;
59
-
60
- toggleChecked() {
61
- this.checked = !this.checked; // Toggle the checked state
62
- }
63
-
64
- render() {
65
- return html`
66
- <div
67
- class="${cn(
68
- 'relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none aria-selected:bg-accent aria-selected:text-accent-foreground',
69
- this.disabled ? 'pointer-events-none opacity-50' : '',
70
- this.className
71
- )}"
72
- @click=${this.toggleChecked}
73
- @mouseover="${this.handleMouseEvent}"
74
- @mouseleave="${this.handleMouseEvent}"
75
- @focus="${this.handleMouseEvent}"
76
- rtgcmd-item
77
- role="option"
78
- aria-selected="${this.selected}"
79
- data-selected="${this.selected}"
80
- data-value="${this.value}"
81
- id="${this.identifier}"
82
- aria-hidden="${this.hidden}"
83
- >
84
- <span
85
- class="icon-space absolute left-2 flex items-center justify-center"
86
- >
87
- ${this.checked
88
- ? html`
89
- <svg
90
- xmlns="http://www.w3.org/2000/svg"
91
- width="24"
92
- height="24"
93
- viewBox="0 0 15 15"
94
- >
95
- <path
96
- fill="currentColor"
97
- d="M9.875 7.5a2.375 2.375 0 1 1-4.75 0a2.375 2.375 0 0 1 4.75 0"
98
- />
99
- </svg>
100
- `
101
- : nothing}
102
- </span>
103
- <slot></slot>
104
- </div>
105
- `;
106
- }
107
- }
@@ -1,44 +0,0 @@
1
- import { LitElement, html, css, nothing } from 'lit';
2
- import { property, customElement } from 'lit/decorators.js';
3
- import { cn } from '../../../helpers';
4
- import { TWStyles } from '../../../styles';
5
-
6
- @customElement('rtg-dropdown-menu-separator')
7
- export class DropdownMenuSeparator extends LitElement {
8
- @property({ type: String }) _id = '';
9
-
10
- @property({ attribute: 'aria-hidden', type: String }) _hidden = '';
11
-
12
- private static _counter = 0;
13
-
14
- static styles = [css``, TWStyles];
15
-
16
- private get identifier() {
17
- if (this._id !== '') {
18
- return this._id;
19
- }
20
- const parent =
21
- this.parentElement?.shadowRoot?.querySelector('div[rtgcmd-list]');
22
- if (parent) {
23
- this._id = `${parent.getAttribute(
24
- 'id'
25
- )}s${DropdownMenuSeparator._counter++}`;
26
- } else {
27
- this._id = `rtgcmdrxlxs${DropdownMenuSeparator._counter++}`;
28
- }
29
- return this._id;
30
- }
31
-
32
- render() {
33
- return html`${this._hidden === 'true'
34
- ? nothing
35
- : html`
36
- <div
37
- class="${cn('-mx-1 h-px bg-border', this.className)}"
38
- rtgcmd-separator
39
- role="separator"
40
- id="${this.identifier}"
41
- ></div>
42
- `}`;
43
- }
44
- }
@@ -1,17 +0,0 @@
1
- import { LitElement, html, css, nothing } from 'lit';
2
- import { property, customElement } from 'lit/decorators.js';
3
- import { cn } from '../../../helpers';
4
- import { TWStyles } from '../../../styles';
5
-
6
- @customElement('rtg-dropdown-menu-shortcut')
7
- export class DropdownMenuShortcut extends LitElement {
8
- static styles = [css``, TWStyles];
9
-
10
- render() {
11
- return html`
12
- <span class="${cn('ml-auto text-xs font-semibold', this.className)}">
13
- <slot></slot>
14
- </span>
15
- `;
16
- }
17
- }
@@ -1,84 +0,0 @@
1
- import { LitElement, html, css, nothing, PropertyValues } from 'lit';
2
- import {
3
- property,
4
- customElement,
5
- state,
6
- queryAssignedElements,
7
- } from 'lit/decorators.js';
8
- import { cn } from '../../../helpers';
9
- import { TWStyles } from '../../../styles';
10
- import './dropdown-menu-content';
11
- import { DropdownMenuContent } from './dropdown-menu-content';
12
- import './dropdown-menu-item';
13
-
14
- @customElement('rtg-dropdown-menu')
15
- export class DropdownMenu extends LitElement {
16
- static styles = [css``, TWStyles];
17
-
18
- @state() isOpen = false;
19
-
20
- connectedCallback() {
21
- super.connectedCallback();
22
- document.addEventListener('click', this.handleClickOutside);
23
- }
24
-
25
- disconnectedCallback() {
26
- document.removeEventListener('click', this.handleClickOutside);
27
- super.disconnectedCallback();
28
- }
29
-
30
- toggleDropdown(e: MouseEvent) {
31
- e.stopPropagation(); // Prevent closing immediately on button click
32
- this.isOpen = !this.isOpen;
33
- }
34
-
35
- handleClickOutside = (e: MouseEvent) => {
36
- const target = e.target as HTMLElement;
37
- // Check if the clicked element is outside the dropdown
38
- if (!this.shadowRoot?.contains(target)) {
39
- this.isOpen = false; // Close the dropdown
40
- }
41
- };
42
-
43
- private get _content(): DropdownMenuContent | null {
44
- const slot = this.shadowRoot?.querySelector('slot');
45
- const children = slot?.assignedElements();
46
- if (children) {
47
- for (let index = 0; index < children.length; index++) {
48
- if (children[index] instanceof DropdownMenuContent) {
49
- return children[index] as DropdownMenuContent;
50
- }
51
- }
52
- }
53
-
54
- return null;
55
- }
56
-
57
- protected updated(_changedProperties: PropertyValues): void {
58
- super.updated(_changedProperties);
59
- const content = this._content;
60
- if (content) {
61
- content.dataset.state = this.isOpen ? 'open' : 'close';
62
- }
63
- }
64
-
65
- render() {
66
- return html`
67
- <div >
68
- <div>
69
- <button data-ignore-outside-click class="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 bg-secondary text-secondary-foreground hover:bg-secondary/80 h-8 px-4 py-2" @click="${
70
- this.toggleDropdown
71
- }">
72
- open
73
- <buttom>
74
- </div>
75
- <div
76
- class="flex h-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground border shadow-md"
77
- style="display: ${this.isOpen ? 'block' : 'none'};width:260px"
78
- >
79
- <slot></slot>
80
- </div>
81
- </div>
82
- `;
83
- }
84
- }
@@ -1,220 +0,0 @@
1
- import { html } from 'lit';
2
- // eslint-disable-next-line import/extensions
3
- import './dropdown-menu-content';
4
- import './dropdown-menu-group';
5
- import './dropdown-menu-item';
6
- import './dropdown-menu-seperator';
7
- import './dropdown-menu.atom';
8
- import '../button/button.atom';
9
- import './dropdown-menu-checkbox-Item';
10
- import './dropdown-menu-radio-item';
11
- import './dropdown-menu-shortcut';
12
- import { Meta, StoryObj, StoryFn } from '@storybook/web-components';
13
-
14
- export default {
15
- component: 'components/atoms/dropdownMenu',
16
- tags: ['autodocs'],
17
- } as Meta;
18
-
19
- //type Story = StoryObj;
20
-
21
- const TemplateDropdownMenu: StoryFn = () =>
22
- html`
23
- <rtg-dropdown-menu class="w-full max-w-md">
24
- <rtg-dropdown-menu-content>
25
- <rtg-dropdown-menu-shortcut style="margin-left:8px"
26
- >My Account</rtg-dropdown-menu-shortcut
27
- >
28
- <rtg-dropdown-menu-separator></rtg-dropdown-menu-separator>
29
- <rtg-dropdown-menu-group>
30
- <rtg-dropdown-menu-item>
31
- <svg
32
- xmlns="http://www.w3.org/2000/svg"
33
- width="24"
34
- height="24"
35
- viewBox="0 0 24 24"
36
- fill="none"
37
- stroke="currentColor"
38
- stroke-width="2"
39
- stroke-linecap="round"
40
- stroke-linejoin="round"
41
- class="mr-2 h-4 w-4"
42
- >
43
- <rect width="18" height="18" x="3" y="4" rx="2" ry="2"></rect>
44
- <line x1="16" x2="16" y1="2" y2="6"></line>
45
- <line x1="8" x2="8" y1="2" y2="6"></line>
46
- <line x1="3" x2="21" y1="10" y2="10"></line>
47
- </svg>
48
- <span>Calendar</span>
49
- </rtg-dropdown-menu-item>
50
- <rtg-dropdown-menu-item>
51
- <svg
52
- xmlns="http://www.w3.org/2000/svg"
53
- width="24"
54
- height="24"
55
- viewBox="0 0 24 24"
56
- fill="none"
57
- stroke="currentColor"
58
- stroke-width="2"
59
- stroke-linecap="round"
60
- stroke-linejoin="round"
61
- class="mr-2 h-4 w-4"
62
- >
63
- <circle cx="12" cy="12" r="10"></circle>
64
- <path d="M8 14s1.5 2 4 2 4-2 4-2"></path>
65
- <line x1="9" x2="9.01" y1="9" y2="9"></line>
66
- <line x1="15" x2="15.01" y1="9" y2="9"></line>
67
- </svg>
68
- <span>Search Emoji</span>
69
- </rtg-dropdown-menu-item>
70
- <rtg-dropdown-menu-item>
71
- <svg
72
- xmlns="http://www.w3.org/2000/svg"
73
- width="24"
74
- height="24"
75
- viewBox="0 0 24 24"
76
- fill="none"
77
- stroke="currentColor"
78
- stroke-width="2"
79
- stroke-linecap="round"
80
- stroke-linejoin="round"
81
- class="mr-2 h-4 w-4"
82
- >
83
- <rect width="16" height="20" x="4" y="2" rx="2"></rect>
84
- <line x1="8" x2="16" y1="6" y2="6"></line>
85
- <line x1="16" x2="16" y1="14" y2="18"></line>
86
- <path d="M16 10h.01"></path>
87
- <path d="M12 10h.01"></path>
88
- <path d="M8 10h.01"></path>
89
- <path d="M12 14h.01"></path>
90
- <path d="M8 14h.01"></path>
91
- <path d="M12 18h.01"></path>
92
- <path d="M8 18h.01"></path>
93
- </svg>
94
- <span>Calculator</span>
95
- </rtg-dropdown-menu-item>
96
- </rtg-dropdown-menu-group>
97
-
98
- <rtg-dropdown-menu-separator></rtg-dropdown-menu-separator>
99
- <rtg-dropdown-menu-group>
100
- <rtg-dropdown-menu-item
101
- onclick="javascript:alert('Profile Clicked!')"
102
- >
103
- <svg
104
- xmlns="http://www.w3.org/2000/svg"
105
- width="24"
106
- height="24"
107
- viewBox="0 0 24 24"
108
- fill="none"
109
- stroke="currentColor"
110
- stroke-width="2"
111
- stroke-linecap="round"
112
- stroke-linejoin="round"
113
- class="mr-2 h-4 w-4"
114
- >
115
- <path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2"></path>
116
- <circle cx="12" cy="7" r="4"></circle>
117
- </svg>
118
- <span>Profile</span>
119
- <span class="ml-auto text-xs tracking-widest text-muted-foreground"
120
- >⌘P</span
121
- >
122
- </rtg-dropdown-menu-item>
123
- <rtg-dropdown-menu-item>
124
- <svg
125
- xmlns="http://www.w3.org/2000/svg"
126
- width="24"
127
- height="24"
128
- viewBox="0 0 24 24"
129
- fill="none"
130
- stroke="currentColor"
131
- stroke-width="2"
132
- stroke-linecap="round"
133
- stroke-linejoin="round"
134
- class="mr-2 h-4 w-4"
135
- >
136
- <rect width="20" height="14" x="2" y="5" rx="2"></rect>
137
- <line x1="2" x2="22" y1="10" y2="10"></line>
138
- </svg>
139
- <span>Billing</span
140
- ><span class="ml-auto text-xs tracking-widest text-muted-foreground"
141
- >⌘B</span
142
- >
143
- </rtg-dropdown-menu-item>
144
- <rtg-dropdown-menu-item>
145
- <svg
146
- xmlns="http://www.w3.org/2000/svg"
147
- width="24"
148
- height="24"
149
- viewBox="0 0 24 24"
150
- fill="none"
151
- stroke="currentColor"
152
- stroke-width="2"
153
- stroke-linecap="round"
154
- stroke-linejoin="round"
155
- class="mr-2 h-4 w-4"
156
- >
157
- <path
158
- d="M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z"
159
- ></path>
160
- <circle cx="12" cy="12" r="3"></circle>
161
- </svg>
162
- <span>Settings</span>
163
- <span class="ml-auto text-xs tracking-widest text-muted-foreground">
164
- ⌘S</span
165
- >
166
- </rtg-dropdown-menu-item>
167
- </rtg-dropdown-menu-group></rtg-dropdown-menu-content
168
- >
169
- </rtg-dropdown-menu>
170
- `;
171
- export const DropdownMenu = TemplateDropdownMenu.bind({});
172
-
173
- const TemplateDropdownMenuCheckbox: StoryFn = () =>
174
- html`
175
- <rtg-dropdown-menu class="w-full max-w-md">
176
- <rtg-dropdown-menu-content>
177
- <rtg-dropdown-menu-shortcut style="margin-left:8px"
178
- >My Account</rtg-dropdown-menu-shortcut
179
- >
180
- <rtg-dropdown-menu-separator></rtg-dropdown-menu-separator>
181
- <rtg-dropdown-menu-group>
182
- <rtg-dropdown-menu-checkbox-item>
183
- <span style="margin-left:24px">Profile</span>
184
- </rtg-dropdown-menu-checkbox-item>
185
- <rtg-dropdown-menu-checkbox-item>
186
- <span style="margin-left:24px">Billing</span>
187
- </rtg-dropdown-menu-checkbox-item>
188
- <rtg-dropdown-menu-checkbox-item>
189
- <span style="margin-left:24px">Settings</span>
190
- </rtg-dropdown-menu-checkbox-item>
191
- </rtg-dropdown-menu-group>
192
- </rtg-dropdown-menu-content>
193
- </rtg-dropdown-menu>
194
- `;
195
-
196
- export const DropdownMenuCheckbox = TemplateDropdownMenuCheckbox.bind({});
197
-
198
- const TemplateDropdownMenuRadio: StoryFn = () =>
199
- html`
200
- <rtg-dropdown-menu class="w-full max-w-md">
201
- <rtg-dropdown-menu-content>
202
- <rtg-dropdown-menu-shortcut style="margin-left:8px"
203
- >My Account</rtg-dropdown-menu-shortcut
204
- >
205
- <rtg-dropdown-menu-separator></rtg-dropdown-menu-separator>
206
- <rtg-dropdown-menu-group>
207
- <rtg-dropdown-menu-radio-item>
208
- <span style="margin-left:24px">Profile</span>
209
- </rtg-dropdown-menu-radio-item>
210
- <rtg-dropdown-menu-radio-item>
211
- <span style="margin-left:24px">Billing</span>
212
- </rtg-dropdown-menu-radio-item>
213
- <rtg-dropdown-menu-radio-item>
214
- <span style="margin-left:24px">Settings</span>
215
- </rtg-dropdown-menu-radio-item>
216
- </rtg-dropdown-menu-group>
217
- </rtg-dropdown-menu-content>
218
- </rtg-dropdown-menu>
219
- `;
220
- export const DropdownMenuRadio = TemplateDropdownMenuRadio.bind({});
@@ -1,7 +0,0 @@
1
- import { cva } from 'class-variance-authority';
2
-
3
- export const dropdownMenuRootStyle = cva('rtgcmd-root');
4
-
5
- export const dropdownMenuContentStyle = cva(
6
- 'max-h-[300px] overflow-y-auto overflow-x-hidden'
7
- );
@@ -1,13 +0,0 @@
1
- export * from './button/button.atom';
2
- export * from './checkbox/checkbox.atom';
3
- export * from './dialog/dialog.atom';
4
- export * from './input/input.atom';
5
- export * from './label/label.atom';
6
- export * from './command-empty/command-empty.atom';
7
- export * from './command-group/command-group.atom';
8
- export * from './command-item/command-item.atom';
9
- export * from './command-list/command-list.atom';
10
- export * from './command-separator/command-separator.atom';
11
- export * from './card/card.atom';
12
- export * from './popover/popover.atom';
13
- export * from './alert/alert.atom';
@@ -1,88 +0,0 @@
1
- /* eslint-disable lit/no-value-attribute */
2
- import { LitElement, html, css, PropertyValues } from 'lit';
3
- import { property, customElement } from 'lit/decorators.js';
4
- import { cn } from '../../../helpers';
5
- import { TWStyles } from '../../../styles';
6
- import { InputType } from './input.type';
7
- import { inputStyles } from './input.styles';
8
- import { BaseElement } from '../../../helpers';
9
- import { spread } from '@open-wc/lit-helpers';
10
-
11
- @customElement('rtg-input')
12
- export class Input extends BaseElement {
13
- constructor() {
14
- super();
15
- this.attachShadow({ mode: 'open' });
16
-
17
- // Initialize value with defaultValue if provided
18
- this.value = this.value || this.defaultValue;
19
- }
20
-
21
- @property({ type: Boolean }) disabled = false;
22
-
23
- @property({ type: String }) type: InputType = 'text';
24
-
25
- @property({ type: String }) placeholder = '';
26
-
27
- @property({ type: String }) defaultValue = '';
28
-
29
- // Make value a reactive property
30
- @property({ type: String }) value = '';
31
-
32
- static styles = [
33
- css`
34
- :root {
35
- --input-border-radius: inherit;
36
- --input-padding: inherit;
37
- }
38
- .input-base {
39
- border-radius: var(--input-border-radius) !important;
40
- padding-top: var(--input-padding) !important;
41
- padding-bottom: var(--input-padding) !important;
42
- }
43
- `,
44
- TWStyles,
45
- ];
46
-
47
- protected firstUpdated(_changedProperties: PropertyValues): void {
48
- const variables = ['--input-border-radius', '--input-padding'];
49
-
50
- this.applyCustomClass(variables, 'input', 'input-base');
51
-
52
- // Reflect the initial value (if defaultValue was provided)
53
- if (this.type !== 'file' && this.defaultValue) {
54
- this.value = this.defaultValue;
55
- }
56
- }
57
-
58
- handleInputChange(event: Event) {
59
- const inputElement = event.target as HTMLInputElement;
60
-
61
- if (inputElement.type === 'file') {
62
- // Handle file input separately
63
- this.value = inputElement.files ? inputElement.files[0].name : '';
64
- } else {
65
- this.value = inputElement.value;
66
- }
67
- }
68
-
69
- protected getAttributesToExclude(): string[] {
70
- return ['disabled', 'type', 'placeholder', 'value', 'data-testid'];
71
- }
72
-
73
- render() {
74
- const attributes = this.getFilteredAttributes();
75
- console.log('attributes', this.className);
76
- return html`
77
- <input
78
- type="${this.type}"
79
- placeholder="${this.placeholder}"
80
- ?disabled=${this.disabled}
81
- class="${cn(inputStyles, this.className)}"
82
- .value=${this.type !== 'file' ? this.value : ''}
83
- @change="${this.handleInputChange}"
84
- ${spread(attributes)}
85
- />
86
- `;
87
- }
88
- }