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

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 +28 -0
  21. package/dist/components/checkbox/checkbox.d.ts.map +1 -0
  22. package/dist/components/checkbox/checkbox.js +247 -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 +13 -0
  42. package/dist/components/form/form-step.d.ts.map +1 -0
  43. package/dist/components/form/form-step.js +41 -0
  44. package/dist/components/form/form.d.ts +25 -0
  45. package/dist/components/form/form.d.ts.map +1 -0
  46. package/dist/components/form/form.js +358 -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 +116 -0
  54. package/dist/components/icon/icon-paths.d.ts.map +1 -0
  55. package/dist/components/icon/icon-paths.js +121 -0
  56. package/dist/components/icon/icon.d.ts +16 -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 +24 -0
  69. package/dist/components/modal/modal.d.ts.map +1 -0
  70. package/dist/components/modal/modal.js +163 -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 +7 -0
  81. package/dist/components/router/router.d.ts.map +1 -0
  82. package/dist/components/router/router.js +37 -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 +17 -0
  87. package/dist/components/skeleton/skeleton.d.ts.map +1 -0
  88. package/dist/components/skeleton/skeleton.js +78 -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 +9 -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 +111 -0
  116. package/dist/components/vertical-nav/vertical-nav-item.d.ts +8 -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 +65 -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 +3 -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 +238 -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 +32 -32
  138. package/src/components/form/form.ts +376 -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 +124 -124
  142. package/src/components/icon/icon.ts +82 -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 +158 -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 +46 -46
  151. package/src/components/select/select.ts +161 -161
  152. package/src/components/skeleton/skeleton.ts +67 -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 +96 -96
  162. package/src/components/vertical-nav/vertical-nav-item.ts +49 -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,116 @@
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 } from 'lit';
8
+ import { customElement, property } from 'lit/decorators.js';
9
+ import { resetStyles } from '../../styles/reset.js';
10
+ let StLink = class StLink extends LitElement {
11
+ constructor() {
12
+ super(...arguments);
13
+ this.href = '#';
14
+ this.target = '_self';
15
+ this.size = 'md';
16
+ this.variant = 'inline';
17
+ this.color = 'primary';
18
+ }
19
+ render() {
20
+ return html `
21
+ <a href="${this.href}" target="${this.target}">
22
+ <slot></slot>
23
+ </a>
24
+ `;
25
+ }
26
+ };
27
+ StLink.styles = [
28
+ resetStyles,
29
+ css `
30
+ :host {
31
+ display: inline-flex;
32
+ align-items: center;
33
+ }
34
+
35
+ a {
36
+ display: inline-flex;
37
+ align-items: center;
38
+ gap: 0.25em;
39
+ text-decoration: none;
40
+ font-weight: 500;
41
+ transition: color 0.2s ease, opacity 0.2s ease;
42
+ }
43
+
44
+ /* ==========================================================
45
+ Colors
46
+ ========================================================== */
47
+ :host([color="primary"]) a {
48
+ color: var(--st-color-primary);
49
+ }
50
+ :host([color="default"]) a {
51
+ color: var(--st-color-text);
52
+ }
53
+ :host([color="muted"]) a {
54
+ color: var(--st-color-text-muted);
55
+ }
56
+
57
+ /* Hover states */
58
+ :host([color="primary"]) a:hover {
59
+ filter: brightness(1.1);
60
+ }
61
+ :host([color="default"]) a:hover {
62
+ color: var(--st-color-primary);
63
+ }
64
+ :host([color="muted"]) a:hover {
65
+ color: var(--st-color-text);
66
+ }
67
+
68
+ /* ==========================================================
69
+ Sizes
70
+ ========================================================== */
71
+ :host([size="sm"]) a { font-size: 0.875rem; }
72
+ :host([size="md"]) a { font-size: 1rem; }
73
+ :host([size="lg"]) a { font-size: 1.125rem; }
74
+
75
+ /* ==========================================================
76
+ Variants
77
+ ========================================================== */
78
+ /* inline links live inside paragraphs and underline on hover */
79
+ :host([variant="inline"]) a {
80
+ text-decoration: underline;
81
+ text-underline-offset: 4px;
82
+ font-weight: inherit; /* Inherits from surrounding paragraph text */
83
+ }
84
+ :host([variant="inline"]) a:hover {
85
+ text-decoration-thickness: 2px;
86
+ }
87
+
88
+ /* standalone links (e.g., footers, sidebars) have no underline by default */
89
+ :host([variant="standalone"]) a {
90
+ text-decoration: none;
91
+ }
92
+ :host([variant="standalone"]) a:hover {
93
+ text-decoration: underline;
94
+ text-underline-offset: 4px;
95
+ }
96
+ `
97
+ ];
98
+ __decorate([
99
+ property({ type: String })
100
+ ], StLink.prototype, "href", void 0);
101
+ __decorate([
102
+ property({ type: String })
103
+ ], StLink.prototype, "target", void 0);
104
+ __decorate([
105
+ property({ type: String, reflect: true })
106
+ ], StLink.prototype, "size", void 0);
107
+ __decorate([
108
+ property({ type: String, reflect: true })
109
+ ], StLink.prototype, "variant", void 0);
110
+ __decorate([
111
+ property({ type: String, reflect: true })
112
+ ], StLink.prototype, "color", void 0);
113
+ StLink = __decorate([
114
+ customElement('st-link')
115
+ ], StLink);
116
+ export { StLink };
@@ -0,0 +1,18 @@
1
+ import { LitElement } from 'lit';
2
+ export declare class StMetadata extends LitElement {
3
+ pageTitle: string;
4
+ description: string;
5
+ image: string;
6
+ protected createRenderRoot(): this;
7
+ updated(): void;
8
+ private _updateMetadata;
9
+ private _setMeta;
10
+ private _setCanonical;
11
+ render(): symbol;
12
+ }
13
+ declare global {
14
+ interface HTMLElementTagNameMap {
15
+ 'st-metadata': StMetadata;
16
+ }
17
+ }
18
+ //# sourceMappingURL=metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../../src/components/metadata/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAW,MAAM,KAAK,CAAC;AAG1C,qBACa,UAAW,SAAQ,UAAU;IACZ,SAAS,SAAM;IACf,WAAW,SAAM;IACjB,KAAK,SAAM;IAEvC,SAAS,CAAC,gBAAgB,SAAmB;IAE7C,OAAO,SAEN;IAED,OAAO,CAAC,eAAe;IAsBvB,OAAO,CAAC,QAAQ;IAUhB,OAAO,CAAC,aAAa;IAUrB,MAAM,WAEL;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,aAAa,EAAE,UAAU,CAAC;KAC3B;CACF"}
@@ -0,0 +1,71 @@
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, nothing } from 'lit';
8
+ import { customElement, property } from 'lit/decorators.js';
9
+ let StMetadata = class StMetadata extends LitElement {
10
+ constructor() {
11
+ super(...arguments);
12
+ this.pageTitle = '';
13
+ this.description = '';
14
+ this.image = '';
15
+ }
16
+ createRenderRoot() { return this; }
17
+ updated() {
18
+ this._updateMetadata();
19
+ }
20
+ _updateMetadata() {
21
+ // Read site name from environment variable (e.g., VITE_SITE_NAME)
22
+ const siteName = import.meta.env?.VITE_SITE_NAME || '';
23
+ if (this.pageTitle) {
24
+ // If site name is configured, append it; otherwise use the title standalone
25
+ document.title = siteName ? `${this.pageTitle} - ${siteName}` : this.pageTitle;
26
+ this._setMeta('property', 'og:title', this.pageTitle);
27
+ }
28
+ if (this.description) {
29
+ this._setMeta('name', 'description', this.description);
30
+ this._setMeta('property', 'og:description', this.description);
31
+ }
32
+ if (this.image) {
33
+ this._setMeta('property', 'og:image', this.image);
34
+ }
35
+ this._setCanonical(window.location.href);
36
+ }
37
+ _setMeta(attrName, attrValue, content) {
38
+ let meta = document.head.querySelector(`meta[${attrName}="${attrValue}"]`);
39
+ if (!meta) {
40
+ meta = document.createElement('meta');
41
+ meta.setAttribute(attrName, attrValue);
42
+ document.head.appendChild(meta);
43
+ }
44
+ meta.setAttribute('content', content);
45
+ }
46
+ _setCanonical(url) {
47
+ let link = document.head.querySelector('link[rel="canonical"]');
48
+ if (!link) {
49
+ link = document.createElement('link');
50
+ link.setAttribute('rel', 'canonical');
51
+ document.head.appendChild(link);
52
+ }
53
+ link.setAttribute('href', url);
54
+ }
55
+ render() {
56
+ return nothing;
57
+ }
58
+ };
59
+ __decorate([
60
+ property({ type: String })
61
+ ], StMetadata.prototype, "pageTitle", void 0);
62
+ __decorate([
63
+ property({ type: String })
64
+ ], StMetadata.prototype, "description", void 0);
65
+ __decorate([
66
+ property({ type: String })
67
+ ], StMetadata.prototype, "image", void 0);
68
+ StMetadata = __decorate([
69
+ customElement('st-metadata')
70
+ ], StMetadata);
71
+ export { StMetadata };
@@ -0,0 +1,24 @@
1
+ import { LitElement, PropertyValues } from 'lit';
2
+ export declare class StModal extends LitElement {
3
+ /**
4
+ * Controls whether the modal is open.
5
+ */
6
+ open: boolean;
7
+ /**
8
+ * Title text displayed in the modal header.
9
+ */
10
+ heading: string;
11
+ private dialogEl;
12
+ static styles: import("lit").CSSResult[];
13
+ updated(changedProperties: PropertyValues): void;
14
+ private handleClose;
15
+ private onDialogClose;
16
+ private handleBackdropClick;
17
+ render(): import("lit-html").TemplateResult<1>;
18
+ }
19
+ declare global {
20
+ interface HTMLElementTagNameMap {
21
+ 'st-modal': StModal;
22
+ }
23
+ }
24
+ //# sourceMappingURL=modal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modal.d.ts","sourceRoot":"","sources":["../../../src/components/modal/modal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,cAAc,EAAE,MAAM,KAAK,CAAC;AAI5D,qBACa,OAAQ,SAAQ,UAAU;IACrC;;OAEG;IACyC,IAAI,UAAS;IAEzD;;OAEG;IACyB,OAAO,SAAM;IAExB,OAAO,CAAC,QAAQ,CAAqB;IAEtD,MAAM,CAAC,MAAM,4BAwEX;IAEF,OAAO,CAAC,iBAAiB,EAAE,cAAc,QAUxC;IAED,OAAO,CAAC,WAAW;IAKnB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,mBAAmB;IAY3B,MAAM,yCAuBL;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,UAAU,EAAE,OAAO,CAAC;KACrB;CACF"}
@@ -0,0 +1,163 @@
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 } 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
+ updated(changedProperties) {
23
+ if (changedProperties.has('open')) {
24
+ if (this.dialogEl) {
25
+ if (this.open && !this.dialogEl.open) {
26
+ this.dialogEl.showModal();
27
+ }
28
+ else if (!this.open && this.dialogEl.open) {
29
+ this.dialogEl.close();
30
+ }
31
+ }
32
+ }
33
+ }
34
+ handleClose() {
35
+ this.open = false;
36
+ this.dispatchEvent(new CustomEvent('st-close', { bubbles: true, composed: true }));
37
+ }
38
+ onDialogClose() {
39
+ if (this.open) {
40
+ this.open = false;
41
+ this.dispatchEvent(new CustomEvent('st-close', { bubbles: true, composed: true }));
42
+ }
43
+ }
44
+ handleBackdropClick(e) {
45
+ const rect = this.dialogEl.getBoundingClientRect();
46
+ if (e.clientX < rect.left ||
47
+ e.clientX > rect.right ||
48
+ e.clientY < rect.top ||
49
+ e.clientY > rect.bottom) {
50
+ this.handleClose();
51
+ }
52
+ }
53
+ render() {
54
+ return html `
55
+ <dialog
56
+ @cancel=${this.handleClose}
57
+ @click=${this.handleBackdropClick}
58
+ @close=${this.onDialogClose}
59
+ >
60
+ <div class="modal-header" @click=${(e) => e.stopPropagation()}>
61
+ <slot name="header">
62
+ <h3 class="modal-title">${this.heading}</h3>
63
+ </slot>
64
+ <button class="close-btn" @click=${this.handleClose} aria-label="Close modal">
65
+ <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>
66
+ </button>
67
+ </div>
68
+ <div class="modal-body" @click=${(e) => e.stopPropagation()}>
69
+ <slot></slot>
70
+ </div>
71
+ <div class="modal-footer" @click=${(e) => e.stopPropagation()}>
72
+ <slot name="footer"></slot>
73
+ </div>
74
+ </dialog>
75
+ `;
76
+ }
77
+ };
78
+ StModal.styles = [
79
+ resetStyles,
80
+ css `
81
+ :host {
82
+ display: contents;
83
+ }
84
+
85
+ dialog {
86
+ padding: 0;
87
+ border: 1px solid var(--st-color-border);
88
+ border-radius: var(--st-radius-lg, 0.5rem);
89
+ background-color: var(--st-color-surface);
90
+ color: var(--st-color-text);
91
+ width: 100%;
92
+ max-width: 500px;
93
+ box-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
94
+ font-family: var(--st-font-family, inherit);
95
+ }
96
+
97
+ dialog::backdrop {
98
+ background-color: rgba(0, 0, 0, 0.5);
99
+ backdrop-filter: blur(2px);
100
+ }
101
+
102
+ .modal-header {
103
+ display: flex;
104
+ align-items: center;
105
+ justify-content: space-between;
106
+ padding: var(--st-spacing-md) var(--st-spacing-lg);
107
+ border-bottom: 1px solid var(--st-color-border);
108
+ }
109
+
110
+ .modal-title {
111
+ font-size: 1.125rem;
112
+ font-weight: 600;
113
+ margin: 0;
114
+ }
115
+
116
+ .close-btn {
117
+ background: none;
118
+ border: none;
119
+ cursor: pointer;
120
+ color: var(--st-color-text-muted);
121
+ padding: 0.25rem;
122
+ display: flex;
123
+ align-items: center;
124
+ justify-content: center;
125
+ border-radius: var(--st-radius-sm);
126
+ transition: color 0.2s, background-color 0.2s;
127
+ }
128
+
129
+ .close-btn:hover {
130
+ color: var(--st-color-text);
131
+ background-color: var(--st-color-surface-muted, #f1f5f9);
132
+ }
133
+
134
+ .modal-body {
135
+ padding: var(--st-spacing-lg);
136
+ font-size: var(--st-font-size-sm, 0.875rem);
137
+ line-height: 1.5;
138
+ }
139
+
140
+ .modal-footer {
141
+ display: flex;
142
+ align-items: center;
143
+ justify-content: flex-end;
144
+ gap: var(--st-spacing-sm);
145
+ padding: var(--st-spacing-md) var(--st-spacing-lg);
146
+ border-top: 1px solid var(--st-color-border);
147
+ background-color: var(--st-color-surface-muted, #f8fafc);
148
+ }
149
+ `
150
+ ];
151
+ __decorate([
152
+ property({ type: Boolean, reflect: true })
153
+ ], StModal.prototype, "open", void 0);
154
+ __decorate([
155
+ property({ type: String })
156
+ ], StModal.prototype, "heading", void 0);
157
+ __decorate([
158
+ query('dialog')
159
+ ], StModal.prototype, "dialogEl", void 0);
160
+ StModal = __decorate([
161
+ customElement('st-modal')
162
+ ], StModal);
163
+ 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"}