@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
@@ -1,195 +1,187 @@
1
- @use "properties";
2
- @use "parameters" as *;
3
-
4
- .uploader-content {
5
- .app-container {
6
- width: 100%;
7
- max-width: 480px;
8
- }
9
-
10
- .header h2 {
11
- font-size: 1.25rem;
12
- font-weight: 600;
13
- margin-bottom: 0.25rem;
14
- }
15
-
16
- .header p {
17
- color: var(--secondary-text);
18
- font-size: 0.875rem;
19
- }
20
-
21
- .drop-zone {
22
- border: 2px dashed var(--divider);
23
- border-radius: $border-radius;
24
- padding: 2rem 1rem;
25
- text-align: center;
26
- cursor: pointer;
27
- transition: all 0.2s ease;
28
- background-color: #f9fafb;
29
- }
30
-
31
- .drop-zone:hover,
32
- .drop-zone.drag-over {
33
- border-color: var(--accent-color-lighten);
34
- background-color: #eef2ff;
35
- }
36
-
37
- .drop-zone-content {
38
- display: flex;
39
- flex-direction: column;
40
- align-items: center;
41
- gap: 0.5rem;
42
- pointer-events: none;
43
- /* Let clicks pass through to container */
44
- }
45
-
46
- .icon-container {
47
- width: 40px;
48
- height: 40px;
49
- border-radius: 50%;
50
- background-color: #e0e7ff;
51
- color: var(--accent-color);
52
- display: flex;
53
- align-items: center;
54
- justify-content: center;
55
- margin-bottom: 0.5rem;
56
- }
57
-
58
- .primary-text {
59
- font-weight: 500;
60
- color: var(--accent-color);
61
- font-size: 0.875rem;
62
- }
63
-
64
- .secondary-text {
65
- color: var(--secondary-text);
66
- font-size: 0.75rem;
67
- }
68
-
69
- .file-list {
70
- display: flex;
71
- flex-direction: column;
72
- gap: 0.75rem;
73
- max-height: 300px;
74
- overflow-y: auto;
75
- }
76
-
77
- .file-item {
78
- display: flex;
79
- flex-direction: column;
80
- /* Changed to column to accommodate progress bar */
81
- padding: 0.75rem;
82
- background-color: #f9fafb;
83
- border: 1px solid var(--divider);
84
- border-radius: $border-radius;
85
- animation: slideIn 0.2s ease-out;
86
- gap: 0.75rem;
87
- }
88
-
89
- .file-item-header {
90
- display: flex;
91
- align-items: center;
92
- justify-content: space-between;
93
- width: 100%;
94
- }
95
-
96
- @keyframes slideIn {
97
- from {
98
- opacity: 0;
99
- transform: translateY(10px);
100
- }
101
-
102
- to {
103
- opacity: 1;
104
- transform: translateY(0);
105
- }
106
- }
107
-
108
- .file-info {
109
- display: flex;
110
- align-items: center;
111
- gap: 0.75rem;
112
- overflow: hidden;
113
- }
114
-
115
- .file-icon {
116
- color: var(--secondary-text);
117
- }
118
-
119
- .file-details {
120
- display: flex;
121
- flex-direction: column;
122
- overflow: hidden;
123
- }
124
-
125
- .file-name {
126
- font-size: 0.875rem;
127
- font-weight: 500;
128
- white-space: nowrap;
129
- overflow: hidden;
130
- text-overflow: ellipsis;
131
- }
132
-
133
- .file-size {
134
- font-size: 0.75rem;
135
- color: var(--secondary-text);
136
- }
137
-
138
- .remove-btn {
139
- background: none;
140
- border: none;
141
- color: var(--secondary-text);
142
- cursor: pointer;
143
- padding: 0.25rem;
144
- border-radius: 4px;
145
- transition:
146
- color 0.2s,
147
- background-color 0.2s;
148
- display: flex;
149
- align-items: center;
150
- justify-content: center;
151
- }
152
-
153
- .remove-btn:hover {
154
- color: var(--erro);
155
- background-color: #fee2e2;
156
- }
157
-
158
- .progress-container {
159
- width: 100%;
160
- height: 6px;
161
- background-color: #e5e7eb;
162
- border-radius: 3px;
163
- overflow: hidden;
164
- display: none;
165
- /* Hidden by default */
166
- }
167
-
168
- .progress-bar {
169
- height: 100%;
170
- background-color: var(--accent-color);
171
- width: 0%;
172
- transition: width 0.1s linear;
173
- }
174
-
175
- .status-text {
176
- font-size: 0.75rem;
177
- color: var(--secondary-text);
178
- text-align: right;
179
- display: none;
180
- }
181
-
182
- .status-text.error {
183
- color: var(--error);
184
- }
185
-
186
- .status-text.success {
187
- color: var(--success);
188
- }
189
-
190
- @media (max-width: 480px) {
191
- .drop-zone {
192
- padding: 1.5rem 1rem;
193
- }
194
- }
195
- }
1
+ @use "properties";
2
+ @use "parameters" as *;
3
+
4
+ @keyframes fileSlideIn {
5
+ from {
6
+ opacity: 0;
7
+ transform: translateY(8px);
8
+ }
9
+ to {
10
+ opacity: 1;
11
+ transform: translateY(0);
12
+ }
13
+ }
14
+
15
+ .uploader-content {
16
+ .header h2 {
17
+ font-size: 1.25rem;
18
+ font-weight: 600;
19
+ margin-bottom: 0.25rem;
20
+ }
21
+
22
+ .header p {
23
+ color: var(--secondary-text);
24
+ font-size: 0.875rem;
25
+ }
26
+
27
+ .drop-zone {
28
+ border: 2px dashed var(--divider);
29
+ border-radius: $border-radius;
30
+ padding: 2rem 1rem;
31
+ text-align: center;
32
+ cursor: pointer;
33
+ transition: border-color 0.2s ease, background-color 0.2s ease;
34
+ background-color: var(--background);
35
+
36
+ &:hover,
37
+ &.drag-over {
38
+ border-color: var(--accent-color);
39
+ background-color: color-mix(in srgb, var(--accent-color) 6%, var(--background));
40
+ }
41
+ }
42
+
43
+ .drop-zone-content {
44
+ display: flex;
45
+ flex-direction: column;
46
+ align-items: center;
47
+ gap: 0.5rem;
48
+ pointer-events: none;
49
+ }
50
+
51
+ .icon-container {
52
+ width: 40px;
53
+ height: 40px;
54
+ border-radius: 50%;
55
+ background-color: color-mix(in srgb, var(--accent-color) 12%, var(--background));
56
+ color: var(--accent-color);
57
+ display: flex;
58
+ align-items: center;
59
+ justify-content: center;
60
+ margin-bottom: 0.5rem;
61
+ }
62
+
63
+ .primary-text {
64
+ font-weight: 500;
65
+ color: var(--accent-color);
66
+ font-size: 0.875rem;
67
+ }
68
+
69
+ .secondary-text {
70
+ color: var(--secondary-text);
71
+ font-size: 0.75rem;
72
+ }
73
+
74
+ .file-list {
75
+ display: flex;
76
+ flex-direction: column;
77
+ gap: 0.75rem;
78
+ max-height: 300px;
79
+ overflow-y: auto;
80
+ margin-top: $spacing;
81
+ }
82
+
83
+ .file-item {
84
+ display: flex;
85
+ flex-direction: column;
86
+ padding: 0.75rem;
87
+ background-color: var(--secondary-background);
88
+ border: 1px solid var(--divider);
89
+ border-radius: $border-radius;
90
+ animation: fileSlideIn 0.2s ease-out;
91
+ gap: 0.75rem;
92
+ }
93
+
94
+ .file-item-header {
95
+ display: flex;
96
+ align-items: center;
97
+ justify-content: space-between;
98
+ width: 100%;
99
+ }
100
+
101
+ .file-info {
102
+ display: flex;
103
+ align-items: center;
104
+ gap: 0.75rem;
105
+ overflow: hidden;
106
+ }
107
+
108
+ .file-icon {
109
+ color: var(--secondary-text);
110
+ flex-shrink: 0;
111
+ }
112
+
113
+ .file-details {
114
+ display: flex;
115
+ flex-direction: column;
116
+ overflow: hidden;
117
+ }
118
+
119
+ .file-name {
120
+ font-size: 0.875rem;
121
+ font-weight: 500;
122
+ white-space: nowrap;
123
+ overflow: hidden;
124
+ text-overflow: ellipsis;
125
+ }
126
+
127
+ .file-size {
128
+ font-size: 0.75rem;
129
+ color: var(--secondary-text);
130
+ }
131
+
132
+ .remove-btn {
133
+ flex-shrink: 0;
134
+ background: none;
135
+ border: none;
136
+ color: var(--secondary-text);
137
+ cursor: pointer;
138
+ padding: 0.25rem;
139
+ border-radius: calc($border-radius / 2);
140
+ transition: color 0.15s ease, background-color 0.15s ease;
141
+ display: flex;
142
+ align-items: center;
143
+ justify-content: center;
144
+
145
+ &:hover {
146
+ color: var(--error);
147
+ background-color: color-mix(in srgb, var(--error) 10%, var(--background));
148
+ }
149
+ }
150
+
151
+ .progress-container {
152
+ width: 100%;
153
+ height: 4px;
154
+ background-color: var(--divider);
155
+ border-radius: calc($border-radius / 2);
156
+ overflow: hidden;
157
+ display: none;
158
+ }
159
+
160
+ .progress-bar {
161
+ height: 100%;
162
+ background-color: var(--accent-color);
163
+ width: 0%;
164
+ transition: width 0.3s ease, background-color 0.3s ease;
165
+ }
166
+
167
+ .status-text {
168
+ font-size: 0.75rem;
169
+ color: var(--secondary-text);
170
+ text-align: right;
171
+ display: none;
172
+
173
+ &.error {
174
+ color: var(--error);
175
+ }
176
+
177
+ &.success {
178
+ color: var(--success);
179
+ }
180
+ }
181
+
182
+ @media (max-width: 480px) {
183
+ .drop-zone {
184
+ padding: 1.5rem 1rem;
185
+ }
186
+ }
187
+ }
@@ -1,11 +1,18 @@
1
+ /* Flyout menu uses its own dark palette intentionally —
2
+ it renders over any background regardless of light/dark mode.
3
+ Scoped here rather than polluting :root. */
4
+ .flyout-menu,
5
+ .flyout-overlay,
6
+ .site-header,
7
+ .main-content {
8
+ --flyout-text: #f8fafc;
9
+ --flyout-bg: rgba(15, 23, 42, 0.7);
10
+ --flyout-border: rgba(255, 255, 255, 0.1);
11
+ }
12
+
1
13
  :root {
2
- --bg-color: #0f172a;
3
- --text-color: #f8fafc;
4
- --glass-bg: rgba(15, 23, 42, 0.7);
5
- --glass-border: rgba(255, 255, 255, 0.1);
6
14
  --menu-width: 320px;
7
15
  --transition-speed: 0.4s;
8
- --font-family: 'Outfit', sans-serif;
9
16
  }
10
17
 
11
18
  * {
@@ -38,7 +45,7 @@ body {
38
45
  .menu-trigger {
39
46
  background: none;
40
47
  border: none;
41
- color: var(--text-color);
48
+ color: var(--flyout-text);
42
49
  cursor: pointer;
43
50
  padding: 0.5rem;
44
51
  transition: transform 0.2s;
@@ -96,7 +103,7 @@ body {
96
103
  /* Flyout Menu Base */
97
104
  .flyout-menu {
98
105
  position: fixed;
99
- background: var(--glass-bg);
106
+ background: var(--flyout-bg);
100
107
  backdrop-filter: blur(20px);
101
108
  -webkit-backdrop-filter: blur(20px);
102
109
  z-index: 50;
@@ -114,7 +121,7 @@ body {
114
121
  right: 0;
115
122
  width: var(--menu-width);
116
123
  height: 100%;
117
- border-left: 1px solid var(--glass-border);
124
+ border-left: 1px solid var(--flyout-border);
118
125
  transform: translateX(100%);
119
126
  }
120
127
 
@@ -123,7 +130,7 @@ body {
123
130
  left: 0;
124
131
  width: var(--menu-width);
125
132
  height: 100%;
126
- border-right: 1px solid var(--glass-border);
133
+ border-right: 1px solid var(--flyout-border);
127
134
  transform: translateX(-100%);
128
135
  }
129
136
 
@@ -150,7 +157,7 @@ body {
150
157
  .close-menu {
151
158
  background: none;
152
159
  border: none;
153
- color: var(--text-color);
160
+ color: var(--flyout-text);
154
161
  cursor: pointer;
155
162
  padding: 0.5rem;
156
163
  transition: transform 0.2s, color 0.2s;
@@ -182,7 +189,7 @@ body {
182
189
  border: none;
183
190
  font-size: 2rem;
184
191
  font-weight: 600;
185
- color: var(--text-color);
192
+ color: var(--flyout-text);
186
193
  text-decoration: none;
187
194
  cursor: pointer;
188
195
  font-family: inherit;
@@ -258,7 +265,7 @@ body {
258
265
  /* Flyout Footer */
259
266
  .flyout-footer {
260
267
  padding-top: 2rem;
261
- border-top: 1px solid var(--glass-border);
268
+ border-top: 1px solid var(--flyout-border);
262
269
  color: #64748b;
263
270
  font-size: 0.9rem;
264
271
  opacity: 0;
@@ -294,7 +301,7 @@ body {
294
301
  bottom: auto !important;
295
302
  border: none !important;
296
303
  /* Remove borders for cleaner fullscreen look */
297
- border-right: 1px solid var(--glass-border) !important;
304
+ border-right: 1px solid var(--flyout-border) !important;
298
305
  /* Add consistent right border */
299
306
  transform: translateX(-100%) !important;
300
307
  /* Force ALL to slide from LEFT with !important */