@dodlhuat/basix 1.0.0 → 1.1.1

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 (142) hide show
  1. package/README.md +1 -1
  2. package/css/accordion.scss +31 -22
  3. package/css/alert.scss +79 -27
  4. package/css/button.scss +151 -102
  5. package/css/card.scss +11 -12
  6. package/css/carousel.scss +123 -87
  7. package/css/chart.scss +9 -11
  8. package/css/chat-bubbles.scss +2 -2
  9. package/css/checkbox.scss +72 -55
  10. package/css/chips.scss +52 -52
  11. package/css/code-viewer.scss +73 -98
  12. package/css/datepicker.scss +20 -0
  13. package/css/dropdown.scss +151 -137
  14. package/css/editor.scss +9 -6
  15. package/css/file-uploader.scss +187 -195
  16. package/css/flyout-menu.scss +20 -13
  17. package/css/form.scss +168 -115
  18. package/css/gallery.scss +62 -63
  19. package/css/grid.scss +0 -1
  20. package/css/modal.scss +117 -72
  21. package/css/placeholder.scss +17 -12
  22. package/css/properties.scss +6 -0
  23. package/css/push-menu.scss +70 -23
  24. package/css/radiobutton.scss +86 -64
  25. package/css/range-slider.scss +136 -0
  26. package/css/scrollbar.scss +69 -69
  27. package/css/spinner.scss +41 -66
  28. package/css/style.css +4351 -3735
  29. package/css/style.css.map +1 -1
  30. package/css/style.scss +2 -1
  31. package/css/switch.scss +43 -42
  32. package/css/table.scss +61 -40
  33. package/css/tabs.scss +12 -7
  34. package/css/timeline.scss +72 -69
  35. package/css/timepicker.scss +151 -72
  36. package/css/toast.scss +49 -48
  37. package/css/tooltip.scss +112 -122
  38. package/css/tree.scss +135 -192
  39. package/css/typography.scss +70 -9
  40. package/css/virtual-dropdown.scss +201 -142
  41. package/js/carousel.js +45 -18
  42. package/js/carousel.ts +217 -173
  43. package/js/datepicker.js +505 -497
  44. package/js/datepicker.ts +9 -0
  45. package/js/editor.js +398 -415
  46. package/js/file-uploader.js +142 -128
  47. package/js/file-uploader.ts +364 -350
  48. package/js/gallery.js +22 -15
  49. package/js/gallery.ts +17 -12
  50. package/js/index.js +718 -720
  51. package/js/index.ts +7 -8
  52. package/js/push-menu.js +113 -101
  53. package/js/push-menu.ts +17 -2
  54. package/js/range-slider.js +26 -0
  55. package/js/range-slider.ts +33 -0
  56. package/js/timepicker.js +144 -98
  57. package/js/timepicker.ts +194 -131
  58. package/js/tree.js +56 -28
  59. package/js/tree.ts +239 -218
  60. package/package.json +3 -2
  61. package/css/accordion.css +0 -109
  62. package/css/accordion.css.map +0 -1
  63. package/css/alert.css +0 -57
  64. package/css/alert.css.map +0 -1
  65. package/css/button.css +0 -69
  66. package/css/button.css.map +0 -1
  67. package/css/card.css +0 -144
  68. package/css/card.css.map +0 -1
  69. package/css/carousel.css +0 -118
  70. package/css/carousel.css.map +0 -1
  71. package/css/chart.css +0 -159
  72. package/css/chart.css.map +0 -1
  73. package/css/chat-bubbles.css +0 -97
  74. package/css/chat-bubbles.css.map +0 -1
  75. package/css/checkbox.css +0 -77
  76. package/css/checkbox.css.map +0 -1
  77. package/css/chips.css +0 -72
  78. package/css/chips.css.map +0 -1
  79. package/css/code-viewer.css +0 -97
  80. package/css/code-viewer.css.map +0 -1
  81. package/css/colors.css +0 -63
  82. package/css/colors.css.map +0 -1
  83. package/css/datepicker.css +0 -264
  84. package/css/datepicker.css.map +0 -1
  85. package/css/defaults.css +0 -118
  86. package/css/defaults.css.map +0 -1
  87. package/css/dropdown.css +0 -146
  88. package/css/dropdown.css.map +0 -1
  89. package/css/editor.css +0 -413
  90. package/css/file-uploader.css +0 -194
  91. package/css/file-uploader.css.map +0 -1
  92. package/css/flyout-menu.css +0 -345
  93. package/css/flyout-menu.css.map +0 -1
  94. package/css/form-builder.css +0 -9
  95. package/css/form-builder.css.map +0 -1
  96. package/css/form-builder.scss +0 -11
  97. package/css/form.css +0 -130
  98. package/css/form.css.map +0 -1
  99. package/css/gallery.css +0 -91
  100. package/css/gallery.css.map +0 -1
  101. package/css/grid.css +0 -44
  102. package/css/grid.css.map +0 -1
  103. package/css/icons.css +0 -327
  104. package/css/icons.css.map +0 -1
  105. package/css/modal.css +0 -97
  106. package/css/modal.css.map +0 -1
  107. package/css/parameters.css +0 -1
  108. package/css/parameters.css.map +0 -1
  109. package/css/placeholder.css +0 -50
  110. package/css/placeholder.css.map +0 -1
  111. package/css/progress.css +0 -51
  112. package/css/progress.css.map +0 -1
  113. package/css/properties.css +0 -31
  114. package/css/properties.css.map +0 -1
  115. package/css/push-menu.css +0 -145
  116. package/css/push-menu.css.map +0 -1
  117. package/css/radiobutton.css +0 -91
  118. package/css/radiobutton.css.map +0 -1
  119. package/css/reset.css +0 -46
  120. package/css/reset.css.map +0 -1
  121. package/css/scrollbar.css +0 -91
  122. package/css/scrollbar.css.map +0 -1
  123. package/css/spinner.css +0 -118
  124. package/css/spinner.css.map +0 -1
  125. package/css/switch.css +0 -66
  126. package/css/switch.css.map +0 -1
  127. package/css/table.css +0 -201
  128. package/css/table.css.map +0 -1
  129. package/css/tabs.css +0 -135
  130. package/css/tabs.css.map +0 -1
  131. package/css/timeline.css +0 -69
  132. package/css/timeline.css.map +0 -1
  133. package/css/toast.css +0 -98
  134. package/css/toast.css.map +0 -1
  135. package/css/tooltip.css +0 -151
  136. package/css/tooltip.css.map +0 -1
  137. package/css/tree.css +0 -199
  138. package/css/tree.css.map +0 -1
  139. package/css/typography.css +0 -137
  140. package/css/typography.css.map +0 -1
  141. package/css/virtual-dropdown.css +0 -149
  142. package/css/virtual-dropdown.css.map +0 -1
package/js/tree.ts CHANGED
@@ -1,218 +1,239 @@
1
- type NodeType = 'file' | 'folder';
2
-
3
- interface TreeNodeConfig {
4
- label: string;
5
- type?: NodeType;
6
- children?: TreeNode[];
7
- }
8
-
9
- class TreeNode {
10
- public label: string;
11
- public type: NodeType;
12
- public children: TreeNode[];
13
- public expanded: boolean;
14
- public selected: boolean;
15
- public element: HTMLDivElement | null;
16
- public childrenContainer: HTMLUListElement | null;
17
-
18
- constructor(label: string, type: NodeType = 'file', children: TreeNode[] = []) {
19
- this.label = label;
20
- this.type = type;
21
- this.children = children;
22
- this.expanded = false;
23
- this.selected = false;
24
- this.element = null;
25
- this.childrenContainer = null;
26
- }
27
- }
28
-
29
- class TreeComponent {
30
- private container: HTMLElement;
31
- private data: TreeNode[];
32
- private selectedNode: TreeNode | null;
33
-
34
- constructor(elementOrSelector: string | HTMLElement, data: TreeNode[]) {
35
- const container = typeof elementOrSelector === 'string'
36
- ? document.querySelector<HTMLElement>(elementOrSelector)
37
- : elementOrSelector;
38
-
39
- if (!container) {
40
- throw new Error(`TreeComponent: Element not found for selector "${elementOrSelector}"`);
41
- }
42
-
43
- this.container = container;
44
- this.data = data;
45
- this.selectedNode = null;
46
- this.init();
47
- }
48
-
49
- private init(): void {
50
- this.render();
51
- }
52
-
53
- public render(): void {
54
- this.container.innerHTML = '';
55
- this.data.forEach(node => {
56
- this.renderNode(node, this.container);
57
- });
58
- }
59
-
60
- private renderNode(node: TreeNode, parentElement: HTMLElement): void {
61
- const li = document.createElement('li');
62
- li.className = 'tree-node';
63
-
64
- const itemDiv = document.createElement('div');
65
- itemDiv.className = `tree-item ${node.type}`;
66
-
67
- if (node.selected) {
68
- itemDiv.classList.add('selected');
69
- }
70
-
71
- if (node.expanded) {
72
- itemDiv.classList.add('expanded');
73
- }
74
-
75
- const iconDiv = this.createIconElement(node.type);
76
- const labelSpan = this.createLabelElement(node.label);
77
-
78
- itemDiv.append(iconDiv, labelSpan);
79
- li.appendChild(itemDiv);
80
-
81
- node.element = itemDiv;
82
-
83
- if (node.type === 'folder' && node.children.length > 0) {
84
- const childrenUl = this.createChildrenContainer(node);
85
- li.appendChild(childrenUl);
86
- node.childrenContainer = childrenUl;
87
-
88
- itemDiv.addEventListener('click', (e) => {
89
- e.stopPropagation();
90
- this.toggleNode(node);
91
- });
92
- } else {
93
- itemDiv.addEventListener('click', (e) => {
94
- e.stopPropagation();
95
- this.selectNode(node);
96
- });
97
- }
98
-
99
- parentElement.appendChild(li);
100
- }
101
-
102
- private createIconElement(type: NodeType): HTMLDivElement {
103
- const iconDiv = document.createElement('div');
104
- iconDiv.className = 'tree-icon';
105
-
106
- if (type === 'folder') {
107
- iconDiv.innerHTML = `
108
- <svg class="chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
109
- <path d="M9 18l6-6-6-6" stroke-linecap="round" stroke-linejoin="round"/>
110
- </svg>
111
- `;
112
- } else {
113
- iconDiv.innerHTML = `
114
- <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
115
- <path d="M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z" stroke-linecap="round" stroke-linejoin="round"/>
116
- <path d="M13 2v7h7" stroke-linecap="round" stroke-linejoin="round"/>
117
- </svg>
118
- `;
119
- }
120
-
121
- return iconDiv;
122
- }
123
-
124
- private createLabelElement(label: string): HTMLSpanElement {
125
- const labelSpan = document.createElement('span');
126
- labelSpan.className = 'tree-label';
127
- labelSpan.textContent = label;
128
- return labelSpan;
129
- }
130
-
131
- private createChildrenContainer(node: TreeNode): HTMLUListElement {
132
- const childrenUl = document.createElement('ul');
133
- childrenUl.className = 'tree-children';
134
-
135
- if (node.expanded) {
136
- childrenUl.classList.add('expanded');
137
- }
138
-
139
- node.children.forEach(child => {
140
- this.renderNode(child, childrenUl);
141
- });
142
-
143
- return childrenUl;
144
- }
145
-
146
- private toggleNode(node: TreeNode): void {
147
- node.expanded = !node.expanded;
148
-
149
- if (node.element) {
150
- node.element.classList.toggle('expanded', node.expanded);
151
- }
152
-
153
- if (node.childrenContainer) {
154
- node.childrenContainer.classList.toggle('expanded', node.expanded);
155
- }
156
- }
157
-
158
- public selectNode(node: TreeNode): void {
159
- if (this.selectedNode?.element) {
160
- this.selectedNode.element.classList.remove('selected');
161
- this.selectedNode.selected = false;
162
- }
163
-
164
- node.selected = true;
165
- node.element?.classList.add('selected');
166
-
167
- this.selectedNode = node;
168
-
169
- console.log('Selected:', node.label);
170
- }
171
-
172
- public expandAll(): void {
173
- this.traverseNodes(this.data, (node) => {
174
- if (node.type === 'folder') {
175
- node.expanded = true;
176
- node.element?.classList.add('expanded');
177
- node.childrenContainer?.classList.add('expanded');
178
- }
179
- });
180
- }
181
-
182
- public collapseAll(): void {
183
- this.traverseNodes(this.data, (node) => {
184
- if (node.type === 'folder') {
185
- node.expanded = false;
186
- node.element?.classList.remove('expanded');
187
- node.childrenContainer?.classList.remove('expanded');
188
- }
189
- });
190
- }
191
-
192
- private traverseNodes(nodes: TreeNode[], callback: (node: TreeNode) => void): void {
193
- nodes.forEach(node => {
194
- callback(node);
195
- if (node.children.length > 0) {
196
- this.traverseNodes(node.children, callback);
197
- }
198
- });
199
- }
200
-
201
- public getSelectedNode(): TreeNode | null {
202
- return this.selectedNode;
203
- }
204
-
205
- public findNodeByLabel(label: string): TreeNode | null {
206
- let result: TreeNode | null = null;
207
-
208
- this.traverseNodes(this.data, (node) => {
209
- if (node.label === label) {
210
- result = node;
211
- }
212
- });
213
-
214
- return result;
215
- }
216
- }
217
- export { TreeComponent, TreeNode };
218
- export type { NodeType, TreeNodeConfig };
1
+ type NodeType = 'file' | 'folder';
2
+
3
+ interface TreeOptions {
4
+ onSelect?: (node: TreeNode) => void;
5
+ }
6
+
7
+ class TreeNode {
8
+ public label: string;
9
+ public type: NodeType;
10
+ public children: TreeNode[];
11
+ public expanded: boolean;
12
+ public selected: boolean;
13
+ public element: HTMLDivElement | null;
14
+ public childrenContainer: HTMLUListElement | null;
15
+
16
+ constructor(label: string, type: NodeType = 'file', children: TreeNode[] = []) {
17
+ this.label = label;
18
+ this.type = type;
19
+ this.children = children;
20
+ this.expanded = false;
21
+ this.selected = false;
22
+ this.element = null;
23
+ this.childrenContainer = null;
24
+ }
25
+ }
26
+
27
+ class TreeComponent {
28
+ private container: HTMLElement;
29
+ private data: TreeNode[];
30
+ private selectedNode: TreeNode | null;
31
+ private readonly options: TreeOptions;
32
+
33
+ constructor(elementOrSelector: string | HTMLElement, data: TreeNode[], options: TreeOptions = {}) {
34
+ const container = typeof elementOrSelector === 'string'
35
+ ? document.querySelector<HTMLElement>(elementOrSelector)
36
+ : elementOrSelector;
37
+
38
+ if (!container) {
39
+ throw new Error(`TreeComponent: Element not found for selector "${elementOrSelector}"`);
40
+ }
41
+
42
+ this.container = container;
43
+ this.data = data;
44
+ this.selectedNode = null;
45
+ this.options = options;
46
+ this.init();
47
+ }
48
+
49
+ private init(): void {
50
+ this.render();
51
+ }
52
+
53
+ public render(): void {
54
+ this.container.innerHTML = '';
55
+ this.data.forEach(node => {
56
+ this.renderNode(node, this.container);
57
+ });
58
+ }
59
+
60
+ private renderNode(node: TreeNode, parentElement: HTMLElement): void {
61
+ const li = document.createElement('li');
62
+ li.className = 'tree-node';
63
+
64
+ const itemDiv = document.createElement('div');
65
+ itemDiv.className = `tree-item ${node.type}`;
66
+
67
+ if (node.selected) itemDiv.classList.add('selected');
68
+ if (node.expanded) itemDiv.classList.add('expanded');
69
+
70
+ const iconDiv = this.createIconElement(node.type);
71
+ const labelSpan = this.createLabelElement(node.label);
72
+
73
+ itemDiv.append(iconDiv, labelSpan);
74
+ li.appendChild(itemDiv);
75
+
76
+ node.element = itemDiv;
77
+
78
+ if (node.type === 'folder' && node.children.length > 0) {
79
+ const childrenUl = this.createChildrenContainer(node);
80
+ li.appendChild(childrenUl);
81
+ node.childrenContainer = childrenUl;
82
+
83
+ itemDiv.addEventListener('click', (e) => {
84
+ e.stopPropagation();
85
+ this.toggleNode(node);
86
+ });
87
+ } else {
88
+ itemDiv.addEventListener('click', (e) => {
89
+ e.stopPropagation();
90
+ this.selectNode(node);
91
+ });
92
+ }
93
+
94
+ parentElement.appendChild(li);
95
+ }
96
+
97
+ private createIconElement(type: NodeType): HTMLDivElement {
98
+ const iconDiv = document.createElement('div');
99
+ iconDiv.className = 'tree-icon';
100
+
101
+ if (type === 'folder') {
102
+ iconDiv.innerHTML = `
103
+ <svg class="chevron" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
104
+ <path d="M9 18l6-6-6-6" stroke-linecap="round" stroke-linejoin="round"/>
105
+ </svg>
106
+ `;
107
+ } else {
108
+ iconDiv.innerHTML = `
109
+ <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
110
+ <path d="M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z" stroke-linecap="round" stroke-linejoin="round"/>
111
+ <path d="M13 2v7h7" stroke-linecap="round" stroke-linejoin="round"/>
112
+ </svg>
113
+ `;
114
+ }
115
+
116
+ return iconDiv;
117
+ }
118
+
119
+ private createLabelElement(label: string): HTMLSpanElement {
120
+ const labelSpan = document.createElement('span');
121
+ labelSpan.className = 'tree-label';
122
+ labelSpan.textContent = label;
123
+ return labelSpan;
124
+ }
125
+
126
+ private createChildrenContainer(node: TreeNode): HTMLUListElement {
127
+ const childrenUl = document.createElement('ul');
128
+ childrenUl.className = 'tree-children';
129
+
130
+ if (node.expanded) {
131
+ childrenUl.classList.add('expanded');
132
+ childrenUl.style.height = 'auto';
133
+ }
134
+
135
+ node.children.forEach(child => {
136
+ this.renderNode(child, childrenUl);
137
+ });
138
+
139
+ return childrenUl;
140
+ }
141
+
142
+ private toggleNode(node: TreeNode): void {
143
+ node.expanded = !node.expanded;
144
+ node.element?.classList.toggle('expanded', node.expanded);
145
+
146
+ if (node.childrenContainer) {
147
+ if (node.expanded) {
148
+ this.expandChildren(node.childrenContainer);
149
+ } else {
150
+ this.collapseChildren(node.childrenContainer);
151
+ }
152
+ node.childrenContainer.classList.toggle('expanded', node.expanded);
153
+ }
154
+ }
155
+
156
+ private expandChildren(container: HTMLUListElement): void {
157
+ container.style.height = container.scrollHeight + 'px';
158
+ container.addEventListener('transitionend', () => {
159
+ container.style.height = 'auto';
160
+ }, { once: true });
161
+ }
162
+
163
+ private collapseChildren(container: HTMLUListElement): void {
164
+ container.style.height = container.offsetHeight + 'px';
165
+ requestAnimationFrame(() => {
166
+ container.style.height = '0';
167
+ });
168
+ }
169
+
170
+ public selectNode(node: TreeNode): void {
171
+ if (this.selectedNode?.element) {
172
+ this.selectedNode.element.classList.remove('selected');
173
+ this.selectedNode.selected = false;
174
+ }
175
+
176
+ node.selected = true;
177
+ node.element?.classList.add('selected');
178
+ this.selectedNode = node;
179
+
180
+ this.options.onSelect?.(node);
181
+ this.container.dispatchEvent(new CustomEvent('tree-select', {
182
+ detail: { node },
183
+ bubbles: true,
184
+ }));
185
+ }
186
+
187
+ public expandAll(): void {
188
+ this.traverseNodes(this.data, (node) => {
189
+ if (node.type === 'folder' && node.childrenContainer) {
190
+ node.expanded = true;
191
+ node.element?.classList.add('expanded');
192
+ node.childrenContainer.classList.add('expanded');
193
+ node.childrenContainer.style.height = 'auto';
194
+ }
195
+ });
196
+ }
197
+
198
+ public collapseAll(): void {
199
+ this.traverseNodes(this.data, (node) => {
200
+ if (node.type === 'folder' && node.childrenContainer) {
201
+ node.expanded = false;
202
+ node.element?.classList.remove('expanded');
203
+ node.childrenContainer.classList.remove('expanded');
204
+ node.childrenContainer.style.height = '0';
205
+ }
206
+ });
207
+ }
208
+
209
+ private traverseNodes(nodes: TreeNode[], callback: (node: TreeNode) => void): void {
210
+ nodes.forEach(node => {
211
+ callback(node);
212
+ if (node.children.length > 0) {
213
+ this.traverseNodes(node.children, callback);
214
+ }
215
+ });
216
+ }
217
+
218
+ public getSelectedNode(): TreeNode | null {
219
+ return this.selectedNode;
220
+ }
221
+
222
+ public findNodeByLabel(label: string): TreeNode | null {
223
+ return this.findNode(this.data, label);
224
+ }
225
+
226
+ private findNode(nodes: TreeNode[], label: string): TreeNode | null {
227
+ for (const node of nodes) {
228
+ if (node.label === label) return node;
229
+ if (node.children.length > 0) {
230
+ const found = this.findNode(node.children, label);
231
+ if (found) return found;
232
+ }
233
+ }
234
+ return null;
235
+ }
236
+ }
237
+
238
+ export { TreeComponent, TreeNode };
239
+ export type { NodeType, TreeOptions };
package/package.json CHANGED
@@ -1,11 +1,12 @@
1
1
  {
2
2
  "name": "@dodlhuat/basix",
3
- "version": "1.0.0",
3
+ "version": "1.1.1",
4
4
  "description": "Basix is intended as a starter for the rapid development of a design. Each design element can be added individually to include only the data required. It is using plain javascript / typescript and therefore is not dependent on any plugin.",
5
5
  "main": "js/index.js",
6
6
  "exports": {
7
7
  ".": "./js/index.js",
8
- "./css/*": "./css/*"
8
+ "./css/*": "./css/*",
9
+ "./js/*": "./js/*"
9
10
  },
10
11
  "files": [
11
12
  "js/",
package/css/accordion.css DELETED
@@ -1,109 +0,0 @@
1
- :root {
2
- --primary-text: #1E1F24;
3
- --secondary-text: #62636C;
4
- --divider: #D8D9E0;
5
- --accent-text: #3D63DD;
6
- --error: #D64545;
7
- --warning: #C28A00;
8
- --success: #2E8B57;
9
- --secondary-background: #E7E8EC;
10
- --background: #F9F9FB;
11
- --accent-color: #3D63DD;
12
- --accent-color-lighten: #87A5EF;
13
- --accent-color-text: #D8D9E0;
14
- --disabled: #D8D9E0;
15
- }
16
-
17
- [data-theme=dark] {
18
- --primary-text: #EEEEF0;
19
- --secondary-text: #B2B3BD;
20
- --divider: #393A40;
21
- --accent-text: #0E496D;
22
- --error: #FF6B6B;
23
- --warning: #F7B500;
24
- --success: #5CC689;
25
- --background: #111113;
26
- --secondary-background: #19191B;
27
- --accent-color: #1B7BB4;
28
- --accent-color-lighten: #175982;
29
- --accent-color-text: #B2B3BD;
30
- --disabled: #303136;
31
- }
32
-
33
- .accordion {
34
- margin: 0 auto;
35
- border: 1px solid var(--divider);
36
- border-radius: 0.4rem;
37
- overflow: hidden;
38
- box-shadow: 0 1px 2px rgba(56, 65, 74, 0.15);
39
- }
40
-
41
- .accordion-item {
42
- border-bottom: 1px solid var(--divider);
43
- }
44
-
45
- .accordion-item:last-child {
46
- border-bottom: none;
47
- }
48
-
49
- .accordion-input {
50
- display: none;
51
- }
52
-
53
- .accordion-label {
54
- display: flex;
55
- justify-content: space-between;
56
- align-items: center;
57
- padding: 1rem 1.5rem;
58
- background: var(--divider);
59
- font-weight: 600;
60
- cursor: pointer;
61
- transition: background-color 0.2s ease;
62
- -webkit-user-select: none;
63
- -moz-user-select: none;
64
- user-select: none;
65
- }
66
-
67
- .accordion-label:hover {
68
- background: var(--accent-color-lighten);
69
- }
70
-
71
- .accordion-label::after {
72
- content: "";
73
- width: 10px;
74
- height: 10px;
75
- border-right: 2px solid currentColor;
76
- border-bottom: 2px solid currentColor;
77
- transform: rotate(45deg);
78
- transition: transform 0.3s ease;
79
- margin-left: 1rem;
80
- }
81
-
82
- .accordion-input:checked + .accordion-label {
83
- background: var(--accent-color);
84
- color: var(--acc-accent);
85
- }
86
-
87
- .accordion-input:checked + .accordion-label::after {
88
- transform: rotate(-135deg);
89
- }
90
-
91
- .accordion-content {
92
- display: grid;
93
- grid-template-rows: 0fr;
94
- transition: grid-template-rows 0.3s ease-out;
95
- overflow: hidden;
96
- }
97
-
98
- .accordion-body {
99
- min-height: 0;
100
- }
101
-
102
- .accordion-body > div {
103
- padding: 1.5rem;
104
- border-top: 1px solid transparent;
105
- }
106
-
107
- .accordion-input:checked ~ .accordion-content {
108
- grid-template-rows: 1fr;
109
- }/*# sourceMappingURL=accordion.css.map */
@@ -1 +0,0 @@
1
- {"version":3,"sources":["properties.scss","accordion.css","accordion.scss","parameters.scss"],"names":[],"mappings":"AAAA;EACE,uBAAA;EACA,yBAAA;EACA,kBAAA;EACA,sBAAA;EACA,gBAAA;EACA,kBAAA;EACA,kBAAA;EACA,+BAAA;EACA,qBAAA;EACA,uBAAA;EACA,+BAAA;EACA,4BAAA;EACA,mBAAA;ACCF;;ADEA;EACE,uBAAA;EACA,yBAAA;EACA,kBAAA;EACA,sBAAA;EACA,gBAAA;EACA,kBAAA;EACA,kBAAA;EACA,qBAAA;EACA,+BAAA;EACA,uBAAA;EACA,+BAAA;EACA,4BAAA;EACA,mBAAA;ACCF;;AC3BA;EACE,cAAA;EACA,gCAAA;EACA,qBCLc;EDMd,gBAAA;EACA,4CCLO;AFmCT;;AC3BA;EACE,uCAAA;AD8BF;;AC3BA;EACE,mBAAA;AD8BF;;AC3BA;EACE,aAAA;AD8BF;;AC3BA;EACE,aAAA;EACA,8BAAA;EACA,mBAAA;EACA,oBAAA;EACA,0BAAA;EACA,gBAAA;EACA,eAAA;EACA,sCAAA;EACA,yBAAA;KAAA,sBAAA;UAAA,iBAAA;AD8BF;;AC3BA;EACE,uCAAA;AD8BF;;AC3BA;EACE,WAAA;EACA,WAAA;EACA,YAAA;EACA,oCAAA;EACA,qCAAA;EACA,wBAAA;EACA,+BAAA;EACA,iBC/CQ;AF6EV;;AC3BA;EACE,+BAAA;EACA,wBAAA;AD8BF;;AC3BA;EACE,0BAAA;AD8BF;;AC3BA;EACE,aAAA;EACA,uBAAA;EACA,4CAAA;EACA,gBAAA;AD8BF;;AC3BA;EACE,aAAA;AD8BF;;AC3BA;EACE,eAAA;EACA,iCAAA;AD8BF;;AC3BA;EACE,uBAAA;AD8BF","file":"accordion.css"}
package/css/alert.css DELETED
@@ -1,57 +0,0 @@
1
- :root {
2
- --primary-text: #1E1F24;
3
- --secondary-text: #62636C;
4
- --divider: #D8D9E0;
5
- --accent-text: #3D63DD;
6
- --error: #D64545;
7
- --warning: #C28A00;
8
- --success: #2E8B57;
9
- --secondary-background: #E7E8EC;
10
- --background: #F9F9FB;
11
- --accent-color: #3D63DD;
12
- --accent-color-lighten: #87A5EF;
13
- --accent-color-text: #D8D9E0;
14
- --disabled: #D8D9E0;
15
- }
16
-
17
- [data-theme=dark] {
18
- --primary-text: #EEEEF0;
19
- --secondary-text: #B2B3BD;
20
- --divider: #393A40;
21
- --accent-text: #0E496D;
22
- --error: #FF6B6B;
23
- --warning: #F7B500;
24
- --success: #5CC689;
25
- --background: #111113;
26
- --secondary-background: #19191B;
27
- --accent-color: #1B7BB4;
28
- --accent-color-lighten: #175982;
29
- --accent-color-text: #B2B3BD;
30
- --disabled: #303136;
31
- }
32
-
33
- .alert {
34
- border-radius: 0.4rem;
35
- padding: 0.5rem;
36
- border-left: 0.5rem solid;
37
- color: var(--primary-text);
38
- box-shadow: 0 1px 2px rgba(56, 65, 74, 0.15);
39
- }
40
-
41
- .alert-error {
42
- background: var(--error);
43
- border-left: 0.5rem solid color-mix(in srgb, var(--error) 80%, black);
44
- color: var(--divider);
45
- }
46
-
47
- .alert-warning {
48
- background: var(--warning);
49
- border-left: 0.5rem solid color-mix(in srgb, var(--warning) 80%, black);
50
- color: var(--divider);
51
- }
52
-
53
- .alert-success {
54
- background: var(--success);
55
- border-left: 0.5rem solid color-mix(in srgb, var(--success) 80%, black);
56
- color: var(--divider);
57
- }/*# sourceMappingURL=alert.css.map */
package/css/alert.css.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["properties.scss","alert.css","alert.scss","parameters.scss"],"names":[],"mappings":"AAAA;EACE,uBAAA;EACA,yBAAA;EACA,kBAAA;EACA,sBAAA;EACA,gBAAA;EACA,kBAAA;EACA,kBAAA;EACA,+BAAA;EACA,qBAAA;EACA,uBAAA;EACA,+BAAA;EACA,4BAAA;EACA,mBAAA;ACCF;;ADEA;EACE,uBAAA;EACA,yBAAA;EACA,kBAAA;EACA,sBAAA;EACA,gBAAA;EACA,kBAAA;EACA,kBAAA;EACA,qBAAA;EACA,+BAAA;EACA,uBAAA;EACA,+BAAA;EACA,4BAAA;EACA,mBAAA;ACCF;;AC3BA;EACE,qBCHc;EDId,eAAA;EACA,yBAAA;EACA,0BAAA;EACA,4CCLO;AFmCT;;AC3BA;EACE,wBAAA;EACA,qEAAA;EACA,qBAAA;AD8BF;;AC3BA;EACE,0BAAA;EACA,uEAAA;EACA,qBAAA;AD8BF;;AC3BA;EACE,0BAAA;EACA,uEAAA;EACA,qBAAA;AD8BF","file":"alert.css"}