@sondor-technology/sondor-components 1.0.0 → 1.0.1-develop.11

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 (168) hide show
  1. package/README.md +8 -0
  2. package/dist/components/alert/alert.d.ts +13 -0
  3. package/dist/components/alert/alert.d.ts.map +1 -0
  4. package/dist/components/alert/alert.js +105 -0
  5. package/dist/components/badge/badge.d.ts +13 -0
  6. package/dist/components/badge/badge.d.ts.map +1 -0
  7. package/dist/components/badge/badge.js +101 -0
  8. package/dist/components/breadcrumb/breadcrumb.d.ts +19 -0
  9. package/dist/components/breadcrumb/breadcrumb.d.ts.map +1 -0
  10. package/dist/components/breadcrumb/breadcrumb.js +99 -0
  11. package/dist/components/button/button.d.ts +23 -0
  12. package/dist/components/button/button.d.ts.map +1 -0
  13. package/dist/components/button/button.js +304 -0
  14. package/dist/components/button-group/button-group.d.ts +6 -0
  15. package/dist/components/button-group/button-group.d.ts.map +1 -0
  16. package/dist/components/button-group/button-group.js +74 -0
  17. package/dist/components/card/card.d.ts +11 -0
  18. package/dist/components/card/card.d.ts.map +1 -0
  19. package/dist/components/card/card.js +54 -0
  20. package/dist/components/checkbox/checkbox.d.ts +31 -0
  21. package/dist/components/checkbox/checkbox.d.ts.map +1 -0
  22. package/dist/components/checkbox/checkbox.js +265 -0
  23. package/dist/components/code-block/code-block.d.ts +20 -0
  24. package/dist/components/code-block/code-block.d.ts.map +1 -0
  25. package/dist/components/code-block/code-block.js +260 -0
  26. package/dist/components/content-card/content-card.d.ts +13 -0
  27. package/dist/components/content-card/content-card.d.ts.map +1 -0
  28. package/dist/components/content-card/content-card.js +140 -0
  29. package/dist/components/divider/divider.d.ts +16 -0
  30. package/dist/components/divider/divider.d.ts.map +1 -0
  31. package/dist/components/divider/divider.js +82 -0
  32. package/dist/components/drawer/drawer.d.ts +22 -0
  33. package/dist/components/drawer/drawer.d.ts.map +1 -0
  34. package/dist/components/drawer/drawer.js +226 -0
  35. package/dist/components/field/field.d.ts +11 -0
  36. package/dist/components/field/field.d.ts.map +1 -0
  37. package/dist/components/field/field.js +32 -0
  38. package/dist/components/footer/footer.d.ts +6 -0
  39. package/dist/components/footer/footer.d.ts.map +1 -0
  40. package/dist/components/footer/footer.js +65 -0
  41. package/dist/components/form/form-step.d.ts +14 -0
  42. package/dist/components/form/form-step.d.ts.map +1 -0
  43. package/dist/components/form/form-step.js +44 -0
  44. package/dist/components/form/form.d.ts +30 -0
  45. package/dist/components/form/form.d.ts.map +1 -0
  46. package/dist/components/form/form.js +456 -0
  47. package/dist/components/grid/grid-row.d.ts +17 -0
  48. package/dist/components/grid/grid-row.d.ts.map +1 -0
  49. package/dist/components/grid/grid-row.js +92 -0
  50. package/dist/components/grid/grid.d.ts +13 -0
  51. package/dist/components/grid/grid.d.ts.map +1 -0
  52. package/dist/components/grid/grid.js +42 -0
  53. package/dist/components/icon/icon-paths.d.ts +132 -0
  54. package/dist/components/icon/icon-paths.d.ts.map +1 -0
  55. package/dist/components/icon/icon-paths.js +137 -0
  56. package/dist/components/icon/icon.d.ts +17 -0
  57. package/dist/components/icon/icon.d.ts.map +1 -0
  58. package/dist/components/icon/icon.js +95 -0
  59. package/dist/components/input/input.d.ts +31 -0
  60. package/dist/components/input/input.d.ts.map +1 -0
  61. package/dist/components/input/input.js +268 -0
  62. package/dist/components/link/link.d.ts +16 -0
  63. package/dist/components/link/link.d.ts.map +1 -0
  64. package/dist/components/link/link.js +116 -0
  65. package/dist/components/metadata/metadata.d.ts +18 -0
  66. package/dist/components/metadata/metadata.d.ts.map +1 -0
  67. package/dist/components/metadata/metadata.js +71 -0
  68. package/dist/components/modal/modal.d.ts +35 -0
  69. package/dist/components/modal/modal.d.ts.map +1 -0
  70. package/dist/components/modal/modal.js +251 -0
  71. package/dist/components/page-layout/page-layout.d.ts +46 -0
  72. package/dist/components/page-layout/page-layout.d.ts.map +1 -0
  73. package/dist/components/page-layout/page-layout.js +697 -0
  74. package/dist/components/radio/radio.d.ts +16 -0
  75. package/dist/components/radio/radio.d.ts.map +1 -0
  76. package/dist/components/radio/radio.js +152 -0
  77. package/dist/components/radio-group/radio-group.d.ts +27 -0
  78. package/dist/components/radio-group/radio-group.d.ts.map +1 -0
  79. package/dist/components/radio-group/radio-group.js +161 -0
  80. package/dist/components/router/router.d.ts +31 -0
  81. package/dist/components/router/router.d.ts.map +1 -0
  82. package/dist/components/router/router.js +97 -0
  83. package/dist/components/select/select.d.ts +16 -0
  84. package/dist/components/select/select.d.ts.map +1 -0
  85. package/dist/components/select/select.js +172 -0
  86. package/dist/components/skeleton/skeleton.d.ts +16 -0
  87. package/dist/components/skeleton/skeleton.d.ts.map +1 -0
  88. package/dist/components/skeleton/skeleton.js +149 -0
  89. package/dist/components/switch/switch.d.ts +25 -0
  90. package/dist/components/switch/switch.d.ts.map +1 -0
  91. package/dist/components/switch/switch.js +185 -0
  92. package/dist/components/table/data-table.d.ts +72 -0
  93. package/dist/components/table/data-table.d.ts.map +1 -0
  94. package/dist/components/table/data-table.js +551 -0
  95. package/dist/components/table/table.d.ts +22 -0
  96. package/dist/components/table/table.d.ts.map +1 -0
  97. package/dist/components/table/table.js +167 -0
  98. package/dist/components/tabs/tab-panel.d.ts +8 -0
  99. package/dist/components/tabs/tab-panel.d.ts.map +1 -0
  100. package/dist/components/tabs/tab-panel.js +46 -0
  101. package/dist/components/tabs/tab.d.ts +9 -0
  102. package/dist/components/tabs/tab.d.ts.map +1 -0
  103. package/dist/components/tabs/tab.js +91 -0
  104. package/dist/components/tabs/tabs.d.ts +14 -0
  105. package/dist/components/tabs/tabs.d.ts.map +1 -0
  106. package/dist/components/tabs/tabs.js +85 -0
  107. package/dist/components/textarea/textarea.d.ts +36 -0
  108. package/dist/components/textarea/textarea.d.ts.map +1 -0
  109. package/dist/components/textarea/textarea.js +231 -0
  110. package/dist/components/theme-toggle/theme-toggle.d.ts +15 -0
  111. package/dist/components/theme-toggle/theme-toggle.d.ts.map +1 -0
  112. package/dist/components/theme-toggle/theme-toggle.js +130 -0
  113. package/dist/components/vertical-nav/vertical-nav-group.d.ts +15 -0
  114. package/dist/components/vertical-nav/vertical-nav-group.d.ts.map +1 -0
  115. package/dist/components/vertical-nav/vertical-nav-group.js +127 -0
  116. package/dist/components/vertical-nav/vertical-nav-item.d.ts +14 -0
  117. package/dist/components/vertical-nav/vertical-nav-item.d.ts.map +1 -0
  118. package/dist/components/vertical-nav/vertical-nav-item.js +85 -0
  119. package/dist/styles/index.css +171 -0
  120. package/dist/styles/reset.d.ts +2 -0
  121. package/dist/styles/reset.d.ts.map +1 -0
  122. package/dist/styles/reset.js +50 -0
  123. package/package.json +7 -2
  124. package/src/components/alert/alert.ts +100 -100
  125. package/src/components/badge/badge.ts +96 -96
  126. package/src/components/breadcrumb/breadcrumb.ts +98 -98
  127. package/src/components/button/button.ts +281 -281
  128. package/src/components/button-group/button-group.ts +67 -67
  129. package/src/components/card/card.ts +52 -52
  130. package/src/components/checkbox/checkbox.ts +266 -238
  131. package/src/components/code-block/code-block.ts +256 -256
  132. package/src/components/content-card/content-card.ts +133 -133
  133. package/src/components/divider/divider.ts +68 -68
  134. package/src/components/drawer/drawer.ts +217 -217
  135. package/src/components/field/field.ts +30 -30
  136. package/src/components/footer/footer.ts +58 -58
  137. package/src/components/form/form-step.ts +36 -32
  138. package/src/components/form/form.ts +492 -376
  139. package/src/components/grid/grid-row.ts +75 -75
  140. package/src/components/grid/grid.ts +36 -36
  141. package/src/components/icon/icon-paths.ts +140 -124
  142. package/src/components/icon/icon.ts +84 -82
  143. package/src/components/input/input.ts +248 -248
  144. package/src/components/link/link.ts +97 -97
  145. package/src/components/metadata/metadata.ts +66 -66
  146. package/src/components/modal/modal.ts +246 -158
  147. package/src/components/page-layout/page-layout.ts +704 -704
  148. package/src/components/radio/radio.ts +142 -142
  149. package/src/components/radio-group/radio-group.ts +157 -157
  150. package/src/components/router/router.ts +133 -46
  151. package/src/components/select/select.ts +161 -161
  152. package/src/components/skeleton/skeleton.ts +134 -67
  153. package/src/components/switch/switch.ts +181 -181
  154. package/src/components/table/data-table.ts +556 -556
  155. package/src/components/table/table.ts +153 -153
  156. package/src/components/tabs/tab-panel.ts +30 -30
  157. package/src/components/tabs/tab.ts +76 -76
  158. package/src/components/tabs/tabs.ts +88 -88
  159. package/src/components/textarea/textarea.ts +215 -215
  160. package/src/components/theme-toggle/theme-toggle.ts +131 -131
  161. package/src/components/vertical-nav/vertical-nav-group.ts +115 -96
  162. package/src/components/vertical-nav/vertical-nav-item.ts +72 -49
  163. package/src/styles/globals.css +58 -58
  164. package/src/styles/index.css +80 -80
  165. package/src/styles/reset.ts +50 -50
  166. package/src/styles/theme.css +58 -58
  167. package/src/styles/typography.css +25 -25
  168. package/tsconfig.json +15 -15
@@ -0,0 +1,251 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { LitElement, html, css, nothing } from 'lit';
8
+ import { customElement, property, query } from 'lit/decorators.js';
9
+ import { resetStyles } from '../../styles/reset.js';
10
+ let StModal = class StModal extends LitElement {
11
+ constructor() {
12
+ super(...arguments);
13
+ /**
14
+ * Controls whether the modal is open.
15
+ */
16
+ this.open = false;
17
+ /**
18
+ * Title text displayed in the modal header.
19
+ */
20
+ this.heading = '';
21
+ /**
22
+ * Size of the modal (sm, md, lg, xl, xxl).
23
+ */
24
+ this.size = 'md';
25
+ /**
26
+ * If true, the modal cannot be closed by clicking the backdrop or pressing Esc.
27
+ */
28
+ this.static = false;
29
+ this.isClosing = false;
30
+ }
31
+ updated(changedProperties) {
32
+ if (changedProperties.has('open')) {
33
+ if (this.open) {
34
+ this.dialogEl.classList.remove('closing');
35
+ this.isClosing = false;
36
+ if (!this.dialogEl.open) {
37
+ this.dialogEl.showModal();
38
+ }
39
+ }
40
+ else if (this.dialogEl.open && !this.isClosing) {
41
+ this.closeWithAnimation();
42
+ }
43
+ }
44
+ }
45
+ closeWithAnimation() {
46
+ if (this.isClosing)
47
+ return;
48
+ this.isClosing = true;
49
+ this.dialogEl.classList.add('closing');
50
+ const onAnimationEnd = () => {
51
+ this.dialogEl.removeEventListener('animationend', onAnimationEnd);
52
+ this.dialogEl.classList.remove('closing');
53
+ this.isClosing = false;
54
+ if (!this.open) {
55
+ this.dialogEl.close();
56
+ }
57
+ };
58
+ this.dialogEl.addEventListener('animationend', onAnimationEnd);
59
+ }
60
+ handleClose() {
61
+ this.open = false;
62
+ this.dispatchEvent(new CustomEvent('st-close', { bubbles: true, composed: true }));
63
+ }
64
+ handleCancel(e) {
65
+ e.preventDefault();
66
+ if (!this.static) {
67
+ this.handleClose();
68
+ }
69
+ }
70
+ onDialogClose() {
71
+ if (this.open) {
72
+ this.open = false;
73
+ this.dispatchEvent(new CustomEvent('st-close', { bubbles: true, composed: true }));
74
+ }
75
+ }
76
+ handleBackdropClick(e) {
77
+ if (this.static)
78
+ return;
79
+ const rect = this.dialogEl.getBoundingClientRect();
80
+ const clickedOutside = e.clientX < rect.left ||
81
+ e.clientX > rect.right ||
82
+ e.clientY < rect.top ||
83
+ e.clientY > rect.bottom;
84
+ if (clickedOutside) {
85
+ this.handleClose();
86
+ }
87
+ }
88
+ render() {
89
+ return html `
90
+ <dialog
91
+ class="size-${this.size}"
92
+ aria-labelledby=${this.heading ? 'modal-heading' : nothing}
93
+ @cancel=${this.handleCancel}
94
+ @click=${this.handleBackdropClick}
95
+ @close=${this.onDialogClose}
96
+ >
97
+ <div class="modal-header" @click=${(e) => e.stopPropagation()}>
98
+ <slot name="header">
99
+ <h3 class="modal-title" id="modal-heading">${this.heading}</h3>
100
+ </slot>
101
+
102
+ ${!this.static ? html `
103
+ <button class="close-btn" @click=${this.handleClose} aria-label="Close modal">
104
+ <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><line x1="18" y1="6" x2="6" y2="18"></line><line x1="6" y1="6" x2="18" y2="18"></line></svg>
105
+ </button>
106
+ ` : nothing}
107
+ </div>
108
+ <div class="modal-body" @click=${(e) => e.stopPropagation()}>
109
+ <slot></slot>
110
+ </div>
111
+ <div class="modal-footer" @click=${(e) => e.stopPropagation()}>
112
+ <slot name="footer"></slot>
113
+ </div>
114
+ </dialog>
115
+ `;
116
+ }
117
+ };
118
+ StModal.styles = [
119
+ resetStyles,
120
+ css `
121
+ :host {
122
+ display: contents;
123
+ }
124
+
125
+ dialog {
126
+ padding: 0;
127
+ border: 1px solid var(--st-color-border);
128
+ border-radius: var(--st-radius-lg, 0.5rem);
129
+ background-color: var(--st-color-surface);
130
+ color: var(--st-color-text);
131
+
132
+ /* Responsive width calculation */
133
+ width: calc(100% - 2rem);
134
+ margin: auto;
135
+
136
+ box-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
137
+ font-family: var(--st-font-family, inherit);
138
+ }
139
+
140
+ /* Sizes */
141
+ dialog.size-sm { max-width: 400px; }
142
+ dialog.size-md { max-width: 500px; }
143
+ dialog.size-lg { max-width: 800px; }
144
+ dialog.size-xl { max-width: 1024px; }
145
+ dialog.size-xxl { max-width: 1280px; }
146
+
147
+ dialog::backdrop {
148
+ background-color: rgba(0, 0, 0, 0.5);
149
+ backdrop-filter: blur(2px);
150
+ }
151
+
152
+ /* Animations */
153
+ @keyframes fade-in {
154
+ from { opacity: 0; }
155
+ to { opacity: 1; }
156
+ }
157
+ @keyframes fade-out {
158
+ from { opacity: 1; }
159
+ to { opacity: 0; }
160
+ }
161
+ @keyframes slide-up {
162
+ from { opacity: 0; transform: translateY(20px) scale(0.95); }
163
+ to { opacity: 1; transform: translateY(0) scale(1); }
164
+ }
165
+ @keyframes slide-down {
166
+ from { opacity: 1; transform: translateY(0) scale(1); }
167
+ to { opacity: 0; transform: translateY(20px) scale(0.95); }
168
+ }
169
+
170
+ dialog[open] {
171
+ animation: slide-up 0.2s cubic-bezier(0.16, 1, 0.3, 1) forwards;
172
+ }
173
+ dialog[open]::backdrop {
174
+ animation: fade-in 0.2s cubic-bezier(0.16, 1, 0.3, 1) forwards;
175
+ }
176
+
177
+ dialog.closing {
178
+ animation: slide-down 0.2s cubic-bezier(0.16, 1, 0.3, 1) forwards;
179
+ }
180
+ dialog.closing::backdrop {
181
+ animation: fade-out 0.2s cubic-bezier(0.16, 1, 0.3, 1) forwards;
182
+ }
183
+
184
+ .modal-header {
185
+ display: flex;
186
+ align-items: center;
187
+ justify-content: space-between;
188
+ padding: var(--st-spacing-md) var(--st-spacing-lg);
189
+ border-bottom: 1px solid var(--st-color-border);
190
+ }
191
+
192
+ .modal-title {
193
+ font-size: 1.125rem;
194
+ font-weight: 600;
195
+ margin: 0;
196
+ }
197
+
198
+ .close-btn {
199
+ background: none;
200
+ border: none;
201
+ cursor: pointer;
202
+ color: var(--st-color-text-muted);
203
+ padding: 0.25rem;
204
+ display: flex;
205
+ align-items: center;
206
+ justify-content: center;
207
+ border-radius: var(--st-radius-sm);
208
+ transition: color 0.2s, background-color 0.2s;
209
+ }
210
+
211
+ .close-btn:hover {
212
+ color: var(--st-color-text);
213
+ background-color: var(--st-color-surface-muted, #f1f5f9);
214
+ }
215
+
216
+ .modal-body {
217
+ padding: var(--st-spacing-lg);
218
+ font-size: var(--st-font-size-sm, 0.875rem);
219
+ line-height: 1.5;
220
+ }
221
+
222
+ .modal-footer {
223
+ display: flex;
224
+ align-items: center;
225
+ justify-content: flex-end;
226
+ gap: var(--st-spacing-sm);
227
+ padding: var(--st-spacing-md) var(--st-spacing-lg);
228
+ border-top: 1px solid var(--st-color-border);
229
+ background-color: var(--st-color-surface-muted, #f8fafc);
230
+ }
231
+ `
232
+ ];
233
+ __decorate([
234
+ property({ type: Boolean, reflect: true })
235
+ ], StModal.prototype, "open", void 0);
236
+ __decorate([
237
+ property({ type: String })
238
+ ], StModal.prototype, "heading", void 0);
239
+ __decorate([
240
+ property({ type: String })
241
+ ], StModal.prototype, "size", void 0);
242
+ __decorate([
243
+ property({ type: Boolean })
244
+ ], StModal.prototype, "static", void 0);
245
+ __decorate([
246
+ query('dialog')
247
+ ], StModal.prototype, "dialogEl", void 0);
248
+ StModal = __decorate([
249
+ customElement('st-modal')
250
+ ], StModal);
251
+ export { StModal };
@@ -0,0 +1,46 @@
1
+ import { LitElement, PropertyValues } from 'lit';
2
+ export type LayoutVariant = 'app-shell' | 'content-sidebar' | 'single-column' | 'three-column';
3
+ export declare class StPageLayout extends LitElement {
4
+ /**
5
+ * Defines the structural layout variant to render.
6
+ */
7
+ variant: LayoutVariant;
8
+ /**
9
+ * Maximum width for the left sidebar section (e.g., '20rem', '300px').
10
+ */
11
+ sidebarWidth: string;
12
+ /**
13
+ * Maximum width for the right sidebar section (e.g., '16rem', '250px').
14
+ */
15
+ rightSidebarWidth: string;
16
+ /**
17
+ * Optional maximum width for the main content area (e.g., '48rem', '800px').
18
+ */
19
+ mainMaxWidth: string;
20
+ /**
21
+ * When true, expands the main content area to fill 100% of the available width between sidebars.
22
+ */
23
+ fillMain: boolean;
24
+ private _mobileMenuOpen;
25
+ private _touchStartX;
26
+ private _currentTranslateX;
27
+ private _isDragging;
28
+ updated(changedProperties: PropertyValues<this>): void;
29
+ private _toggleMobileMenu;
30
+ private _closeMobileMenu;
31
+ private _handleNavClick;
32
+ private _handleTouchStart;
33
+ private _handleTouchMove;
34
+ private _handleTouchEnd;
35
+ private _resizeListener;
36
+ connectedCallback(): void;
37
+ disconnectedCallback(): void;
38
+ static styles: import("lit").CSSResult[];
39
+ render(): import("lit-html").TemplateResult<1>;
40
+ }
41
+ declare global {
42
+ interface HTMLElementTagNameMap {
43
+ 'st-page-layout': StPageLayout;
44
+ }
45
+ }
46
+ //# sourceMappingURL=page-layout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page-layout.d.ts","sourceRoot":"","sources":["../../../src/components/page-layout/page-layout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,cAAc,EAAE,MAAM,KAAK,CAAC;AAI5D,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,iBAAiB,GAAG,eAAe,GAAG,cAAc,CAAC;AAE/F,qBACa,YAAa,SAAQ,UAAU;IAC1C;;OAEG;IAEH,OAAO,EAAE,aAAa,CAAmB;IAEzC;;OAEG;IAEH,YAAY,SAAM;IAElB;;OAEG;IAEH,iBAAiB,SAAM;IAEvB;;OAEG;IAEH,YAAY,SAAM;IAElB;;OAEG;IAEH,QAAQ,UAAS;IAGjB,OAAO,CAAC,eAAe,CAAS;IAEhC,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,kBAAkB,CAAK;IAC/B,OAAO,CAAC,WAAW,CAAS;IAEnB,OAAO,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,QA0BvD;IAED,OAAO,CAAC,iBAAiB,CAEvB;IAEF,OAAO,CAAC,gBAAgB,CAEtB;IAGF,OAAO,CAAC,eAAe,CAUrB;IAEF,OAAO,CAAC,iBAAiB,CAMvB;IAEF,OAAO,CAAC,gBAAgB,CAUtB;IAEF,OAAO,CAAC,eAAe,CAarB;IAEF,OAAO,CAAC,eAAe,CAIrB;IAEF,iBAAiB,SAGhB;IAED,oBAAoB,SAGnB;IAED,MAAM,CAAC,MAAM,4BAsZX;IAEF,MAAM,yCAgJL;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,gBAAgB,EAAE,YAAY,CAAC;KAChC;CACF"}