@sondor-technology/sondor-components 1.0.0-1165-initial-setup.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 +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 +192 -0
  124. package/src/components/alert/alert.ts +101 -0
  125. package/src/components/badge/badge.ts +97 -0
  126. package/src/components/breadcrumb/breadcrumb.ts +99 -0
  127. package/src/components/button/button.ts +281 -0
  128. package/src/components/button-group/button-group.ts +67 -0
  129. package/src/components/card/card.ts +53 -0
  130. package/src/components/checkbox/checkbox.ts +238 -0
  131. package/src/components/code-block/code-block.ts +257 -0
  132. package/src/components/content-card/content-card.ts +134 -0
  133. package/src/components/divider/divider.ts +69 -0
  134. package/src/components/drawer/drawer.ts +218 -0
  135. package/src/components/field/field.ts +31 -0
  136. package/src/components/footer/footer.ts +58 -0
  137. package/src/components/form/form-step.ts +32 -0
  138. package/src/components/form/form.ts +376 -0
  139. package/src/components/grid/grid-row.ts +76 -0
  140. package/src/components/grid/grid.ts +37 -0
  141. package/src/components/icon/icon-paths.ts +124 -0
  142. package/src/components/icon/icon.ts +83 -0
  143. package/src/components/input/input.ts +248 -0
  144. package/src/components/link/link.ts +98 -0
  145. package/src/components/metadata/metadata.ts +67 -0
  146. package/src/components/modal/modal.ts +159 -0
  147. package/src/components/page-layout/page-layout.ts +705 -0
  148. package/src/components/radio/radio.ts +142 -0
  149. package/src/components/radio-group/radio-group.ts +157 -0
  150. package/src/components/router/router.ts +47 -0
  151. package/src/components/select/select.ts +162 -0
  152. package/src/components/skeleton/skeleton.ts +68 -0
  153. package/src/components/switch/switch.ts +181 -0
  154. package/src/components/table/data-table.ts +557 -0
  155. package/src/components/table/table.ts +154 -0
  156. package/src/components/tabs/tab-panel.ts +31 -0
  157. package/src/components/tabs/tab.ts +77 -0
  158. package/src/components/tabs/tabs.ts +88 -0
  159. package/src/components/textarea/textarea.ts +215 -0
  160. package/src/components/theme-toggle/theme-toggle.ts +131 -0
  161. package/src/components/vertical-nav/vertical-nav-group.ts +97 -0
  162. package/src/components/vertical-nav/vertical-nav-item.ts +50 -0
  163. package/src/styles/globals.css +58 -0
  164. package/src/styles/index.css +80 -0
  165. package/src/styles/reset.ts +51 -0
  166. package/src/styles/theme.css +59 -0
  167. package/src/styles/typography.css +26 -0
  168. package/tsconfig.json +16 -0
@@ -0,0 +1,25 @@
1
+ import { LitElement, PropertyValues } from "lit";
2
+ export declare class StSwitch extends LitElement {
3
+ static formAssociated: boolean;
4
+ private _internals;
5
+ private _inputEl;
6
+ name: string;
7
+ value: string;
8
+ checked: boolean;
9
+ disabled: boolean;
10
+ required: boolean;
11
+ ariaLabel: string;
12
+ constructor();
13
+ static styles: import("lit").CSSResult[];
14
+ updated(changedProperties: PropertyValues<this>): void;
15
+ private _syncValidity;
16
+ formResetCallback(): void;
17
+ private _handleChange;
18
+ render(): import("lit-html").TemplateResult<1>;
19
+ }
20
+ declare global {
21
+ interface HTMLElementTagNameMap {
22
+ "st-switch": StSwitch;
23
+ }
24
+ }
25
+ //# sourceMappingURL=switch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"switch.d.ts","sourceRoot":"","sources":["../../../src/components/switch/switch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAa,cAAc,EAAC,MAAM,KAAK,CAAC;AAI1D,qBACa,QAAS,SAAQ,UAAU;IACtC,MAAM,CAAC,cAAc,UAAQ;IAC7B,OAAO,CAAC,UAAU,CAAmB;IAErB,OAAO,CAAC,QAAQ,CAAoB;IAEX,IAAI,SAAM;IACzB,KAAK,SAAQ;IAEG,OAAO,UAAS;IAChB,QAAQ,UAAS;IACjB,QAAQ,UAAS;IAEtB,SAAS,SAAM;IAEpD,cAGC;IAED,MAAM,CAAC,MAAM,4BAyFX;IAEO,OAAO,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,QAWvD;IAED,OAAO,CAAC,aAAa;IASrB,iBAAiB,SAIhB;IAED,OAAO,CAAC,aAAa;IASrB,MAAM,yCAoBL;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,QAAQ,CAAC;KACvB;CACF"}
@@ -0,0 +1,185 @@
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 StSwitch = class StSwitch extends LitElement {
11
+ constructor() {
12
+ super();
13
+ this.name = "";
14
+ this.value = "on";
15
+ this.checked = false;
16
+ this.disabled = false;
17
+ this.required = false;
18
+ this.ariaLabel = "";
19
+ this._internals = this.attachInternals();
20
+ }
21
+ updated(changedProperties) {
22
+ super.updated(changedProperties);
23
+ if (changedProperties.has("checked") || changedProperties.has("value")) {
24
+ this._internals.setFormValue(this.checked ? this.value : null);
25
+ this._syncValidity();
26
+ }
27
+ if (changedProperties.has("required")) {
28
+ this._syncValidity();
29
+ }
30
+ }
31
+ _syncValidity() {
32
+ if (!this._inputEl)
33
+ return;
34
+ this._internals.setValidity(this._inputEl.validity, this._inputEl.validationMessage, this._inputEl);
35
+ }
36
+ formResetCallback() {
37
+ this.checked = false;
38
+ this._internals.setFormValue(null);
39
+ this.updateComplete.then(() => this._syncValidity());
40
+ }
41
+ _handleChange(e) {
42
+ e.stopPropagation();
43
+ if (this.disabled)
44
+ return;
45
+ this.checked = this._inputEl.checked;
46
+ this.dispatchEvent(new Event("change", { bubbles: true, composed: true }));
47
+ }
48
+ render() {
49
+ return html `
50
+ <label>
51
+ <input
52
+ type="checkbox"
53
+ role="switch"
54
+ aria-label=${this.ariaLabel || ""}
55
+ .name=${this.name}
56
+ .value=${this.value}
57
+ .checked=${this.checked}
58
+ ?disabled=${this.disabled}
59
+ ?required=${this.required}
60
+ @change=${this._handleChange}
61
+ />
62
+ <div class="track">
63
+ <div class="thumb"></div>
64
+ </div>
65
+ <span class="label"><slot></slot></span>
66
+ </label>
67
+ `;
68
+ }
69
+ };
70
+ StSwitch.formAssociated = true;
71
+ StSwitch.styles = [
72
+ resetStyles,
73
+ css `
74
+ :host {
75
+ display: inline-block;
76
+ outline: none;
77
+ user-select: none;
78
+ }
79
+
80
+ label {
81
+ display: inline-flex;
82
+ align-items: center;
83
+ gap: var(--st-spacing-sm);
84
+ cursor: pointer;
85
+ color: var(--st-color-text);
86
+ font-size: var(--st-font-size-base);
87
+ }
88
+
89
+ /* Visually hide the native input */
90
+ input {
91
+ position: absolute;
92
+ width: 1px;
93
+ height: 1px;
94
+ padding: 0;
95
+ margin: -1px;
96
+ overflow: hidden;
97
+ clip: rect(0, 0, 0, 0);
98
+ white-space: nowrap;
99
+ border-width: 0;
100
+ }
101
+
102
+ /* The Switch Track (Pill) */
103
+ .track {
104
+ display: flex;
105
+ align-items: center;
106
+ width: 2.25rem; /* 36px */
107
+ height: 1.25rem; /* 20px */
108
+ background-color: var(--st-color-border);
109
+ border-radius: 999px;
110
+ padding: 2px;
111
+ transition:
112
+ background-color 0.2s ease,
113
+ box-shadow 0.2s ease;
114
+ flex-shrink: 0;
115
+ }
116
+
117
+ /* The Switch Thumb (Circle) */
118
+ .thumb {
119
+ width: 1rem; /* 16px */
120
+ height: 1rem; /* 16px */
121
+ background-color: var(--st-white);
122
+ border-radius: 50%;
123
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
124
+ transform: translateX(0);
125
+ transition: transform 0.2s cubic-bezier(0.175, 0.885, 0.32, 1.275);
126
+ }
127
+
128
+ /* Focus State */
129
+ input:focus-visible + .track {
130
+ box-shadow:
131
+ 0 0 0 2px var(--st-color-bg),
132
+ 0 0 0 4px var(--st-color-primary);
133
+ }
134
+
135
+ /* Checked State */
136
+ :host([checked]) .track {
137
+ background-color: var(--st-color-primary);
138
+ }
139
+
140
+ :host([checked]) .thumb {
141
+ /* Move thumb to the right: Track width (36px) - Padding (4px) - Thumb width (16px) = 16px */
142
+ transform: translateX(16px);
143
+ }
144
+
145
+ /* Hover State (Subtle darkening of the track if unchecked) */
146
+ label:hover input:not(:checked) + .track {
147
+ background-color: var(--st-color-text-muted);
148
+ }
149
+
150
+ /* Disabled State */
151
+ :host([disabled]) {
152
+ pointer-events: none;
153
+ }
154
+
155
+ :host([disabled]) label {
156
+ opacity: 0.5;
157
+ cursor: not-allowed;
158
+ }
159
+ `,
160
+ ];
161
+ __decorate([
162
+ query("input")
163
+ ], StSwitch.prototype, "_inputEl", void 0);
164
+ __decorate([
165
+ property({ type: String, reflect: true })
166
+ ], StSwitch.prototype, "name", void 0);
167
+ __decorate([
168
+ property({ type: String })
169
+ ], StSwitch.prototype, "value", void 0);
170
+ __decorate([
171
+ property({ type: Boolean, reflect: true })
172
+ ], StSwitch.prototype, "checked", void 0);
173
+ __decorate([
174
+ property({ type: Boolean, reflect: true })
175
+ ], StSwitch.prototype, "disabled", void 0);
176
+ __decorate([
177
+ property({ type: Boolean, reflect: true })
178
+ ], StSwitch.prototype, "required", void 0);
179
+ __decorate([
180
+ property({ attribute: "aria-label" })
181
+ ], StSwitch.prototype, "ariaLabel", void 0);
182
+ StSwitch = __decorate([
183
+ customElement("st-switch")
184
+ ], StSwitch);
185
+ export { StSwitch };
@@ -0,0 +1,72 @@
1
+ import { LitElement, PropertyValues } from 'lit';
2
+ export interface DataTableColumn {
3
+ header: string;
4
+ key: string;
5
+ sortable?: boolean;
6
+ hidden?: boolean;
7
+ }
8
+ export interface SortConfig {
9
+ key: string;
10
+ direction: 'asc' | 'desc';
11
+ }
12
+ export declare class StDataTable extends LitElement {
13
+ /**
14
+ * Array defining table headers, keys, and sortability.
15
+ */
16
+ columns: DataTableColumn[];
17
+ /**
18
+ * Array of row data objects rendered in the table.
19
+ */
20
+ data: Record<string, any>[];
21
+ /**
22
+ * Total number of rows available on the server (used for pagination).
23
+ */
24
+ totalRows: number;
25
+ /**
26
+ * Current page number (1-indexed).
27
+ */
28
+ page: number;
29
+ /**
30
+ * Number of rows per page.
31
+ */
32
+ pageSize: number;
33
+ /**
34
+ * Enables holding 'Shift' to sort by multiple columns sequentially.
35
+ */
36
+ multiSort: boolean;
37
+ /**
38
+ * Displays loading skeleton rows and locks controls.
39
+ */
40
+ loading: boolean;
41
+ private internalColumns;
42
+ private sortState;
43
+ private searchQuery;
44
+ private showColumnMenu;
45
+ private searchTimeout?;
46
+ private draggedColumnKey;
47
+ static styles: import("lit").CSSResult[];
48
+ willUpdate(changedProperties: PropertyValues): void;
49
+ firstUpdated(): void;
50
+ connectedCallback(): void;
51
+ disconnectedCallback(): void;
52
+ private handleOutsideClick;
53
+ private emitChange;
54
+ private handleSearchInput;
55
+ private handleSort;
56
+ private get totalPages();
57
+ private prevPage;
58
+ private nextPage;
59
+ private toggleColumnVisibility;
60
+ private handleDragStart;
61
+ private handleDragOver;
62
+ private handleDragLeave;
63
+ private handleDrop;
64
+ private renderSortIcon;
65
+ render(): import("lit-html").TemplateResult<1>;
66
+ }
67
+ declare global {
68
+ interface HTMLElementTagNameMap {
69
+ 'st-data-table': StDataTable;
70
+ }
71
+ }
72
+ //# sourceMappingURL=data-table.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-table.d.ts","sourceRoot":"","sources":["../../../src/components/table/data-table.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,cAAc,EAAE,MAAM,KAAK,CAAC;AAK5D,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,KAAK,GAAG,MAAM,CAAC;CAC3B;AAED,qBACa,WAAY,SAAQ,UAAU;IACzC;;OAEG;IACwB,OAAO,EAAE,eAAe,EAAE,CAAM;IAE3D;;OAEG;IACwB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAM;IAE5D;;OAEG;IACkD,SAAS,SAAK;IAEnE;;OAEG;IACyB,IAAI,SAAK;IAErC;;OAEG;IACiD,QAAQ,SAAM;IAElE;;OAEG;IACmD,SAAS,UAAS;IAExE;;OAEG;IACyC,OAAO,UAAS;IAGnD,OAAO,CAAC,eAAe,CAAyB;IAChD,OAAO,CAAC,SAAS,CAAoB;IACrC,OAAO,CAAC,WAAW,CAAM;IACzB,OAAO,CAAC,cAAc,CAAS;IAExC,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,gBAAgB,CAAuB;IAE/C,MAAM,CAAC,MAAM,4BA+LX;IAEF,UAAU,CAAC,iBAAiB,EAAE,cAAc,QAM3C;IAED,YAAY,SAKX;IAED,iBAAiB,SAGhB;IAED,oBAAoB,SAGnB;IAED,OAAO,CAAC,kBAAkB,CAKxB;IAEF,OAAO,CAAC,UAAU;IAalB,OAAO,CAAC,iBAAiB;IAYzB,OAAO,CAAC,UAAU;IAmClB,OAAO,KAAK,UAAU,GAErB;IAED,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,sBAAsB;IAM9B,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,UAAU;IAkBlB,OAAO,CAAC,cAAc;IAkBtB,MAAM,yCAyHL;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,eAAe,EAAE,WAAW,CAAC;KAC9B;CACF"}