@dodlhuat/basix 1.2.0 → 1.2.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 (93) hide show
  1. package/README.md +56 -1
  2. package/css/accordion.scss +86 -87
  3. package/css/alert.scss +137 -137
  4. package/css/button.scss +48 -0
  5. package/css/calendar.scss +957 -0
  6. package/css/card.scss +65 -65
  7. package/css/chart.scss +270 -157
  8. package/css/chat-bubbles.scss +134 -68
  9. package/css/chips.scss +109 -19
  10. package/css/colors.scss +32 -32
  11. package/css/datepicker.scss +336 -336
  12. package/css/defaults.scss +90 -90
  13. package/css/docs.scss +529 -0
  14. package/css/editor.scss +36 -0
  15. package/css/file-uploader.scss +1 -1
  16. package/css/flyout-menu.scss +361 -361
  17. package/css/form.scss +0 -15
  18. package/css/gallery.scss +65 -6
  19. package/css/grid.scss +41 -40
  20. package/css/group-picker.scss +345 -0
  21. package/css/guitar-chords.css +250 -250
  22. package/css/icons.scss +330 -330
  23. package/css/parameters.scss +3 -3
  24. package/css/placeholder.scss +33 -33
  25. package/css/popover.scss +206 -0
  26. package/css/progress.scss +76 -32
  27. package/css/properties.scss +51 -36
  28. package/css/push-menu.scss +302 -174
  29. package/css/reset.scss +39 -39
  30. package/css/scrollbar.scss +62 -5
  31. package/css/sidebar-nav.scss +92 -0
  32. package/css/spinner.scss +65 -65
  33. package/css/stepper.scss +48 -12
  34. package/css/style.css +3159 -254
  35. package/css/style.css.map +1 -1
  36. package/css/style.min.css +1 -1
  37. package/css/style.scss +51 -45
  38. package/css/table.scss +199 -199
  39. package/css/tabs.scss +154 -123
  40. package/css/timeline.scss +83 -38
  41. package/css/timepicker.scss +100 -5
  42. package/css/toast.scss +81 -81
  43. package/css/virtual-dropdown.scss +35 -29
  44. package/js/calendar.js +532 -0
  45. package/js/calendar.ts +706 -0
  46. package/js/chart.js +573 -257
  47. package/js/chart.ts +692 -0
  48. package/js/code-viewer.js +10 -10
  49. package/js/code-viewer.ts +188 -188
  50. package/js/datepicker.ts +627 -627
  51. package/js/docs-nav.js +204 -0
  52. package/js/dropdown.ts +179 -179
  53. package/js/editor.js +50 -6
  54. package/js/editor.ts +483 -444
  55. package/js/file-uploader.js +1 -0
  56. package/js/file-uploader.ts +1 -0
  57. package/js/flyout-menu.js +14 -14
  58. package/js/flyout-menu.ts +249 -249
  59. package/js/form-builder.js +106 -106
  60. package/js/gallery.js +14 -8
  61. package/js/gallery.ts +245 -236
  62. package/js/group-picker.js +342 -0
  63. package/js/group-picker.ts +447 -0
  64. package/js/guitar-chords.js +268 -268
  65. package/js/lazy-loader.js +121 -121
  66. package/js/modal.ts +166 -166
  67. package/js/popover.js +163 -0
  68. package/js/popover.ts +219 -0
  69. package/js/position.js +108 -0
  70. package/js/position.ts +111 -0
  71. package/js/push-menu.js +113 -0
  72. package/js/push-menu.ts +284 -145
  73. package/js/request.js +50 -50
  74. package/js/scroll.ts +47 -47
  75. package/js/scrollbar.js +13 -0
  76. package/js/scrollbar.ts +324 -307
  77. package/js/select.ts +216 -216
  78. package/js/sidebar-nav.js +41 -0
  79. package/js/sidebar-nav.ts +66 -0
  80. package/js/table.ts +452 -452
  81. package/js/tabs.ts +279 -279
  82. package/js/theme.js +17 -6
  83. package/js/theme.ts +234 -224
  84. package/js/toast.ts +137 -137
  85. package/js/tooltip.js +6 -60
  86. package/js/tooltip.ts +184 -251
  87. package/js/tsconfig.json +18 -18
  88. package/js/utils.ts +83 -83
  89. package/js/virtual-dropdown.js +25 -25
  90. package/js/virtual-dropdown.ts +365 -365
  91. package/package.json +39 -39
  92. package/js/index.js +0 -816
  93. package/js/index.ts +0 -987
package/css/card.scss CHANGED
@@ -1,65 +1,65 @@
1
- @use "properties";
2
- @use "defaults";
3
- @use "parameters" as *;
4
-
5
- // Base card styles
6
- .card {
7
- box-shadow: $shadow;
8
- background: var(--secondary-background);
9
- border-radius: $border-radius;
10
- padding: $spacing;
11
- position: relative;
12
- overflow: hidden;
13
- display: flex;
14
- flex-direction: column;
15
-
16
- &.row {
17
- flex-direction: row;
18
- }
19
-
20
- // Card header
21
- .card-header {
22
- border-bottom: 1px solid var(--divider);
23
- margin: (-$spacing) (-$spacing) $spacing (-$spacing);
24
- padding: $spacing;
25
- }
26
-
27
- // Card footer
28
- .card-footer {
29
- border-top: 1px solid var(--divider);
30
- margin: auto (-$spacing) (-$spacing) (-$spacing);
31
- padding: $spacing;
32
- }
33
- }
34
-
35
- // Card variants
36
- .card-flat {
37
- box-shadow: none;
38
- border: 1px solid var(--divider);
39
- }
40
-
41
- .card-bordered {
42
- border: 1px solid var(--divider);
43
- }
44
-
45
- .card-hover {
46
- transition: box-shadow 0.3s ease, transform 0.3s ease;
47
-
48
- &:hover {
49
- box-shadow: 0 4px 8px var(--divider);
50
- transform: translateY(-2px);
51
- }
52
- }
53
-
54
- // Utility modifiers for cards
55
- .card-padding-none {
56
- padding: 0;
57
- }
58
-
59
- .card-padding-sm {
60
- padding: calc($spacing / 2);
61
- }
62
-
63
- .card-padding-lg {
64
- padding: calc($spacing * 2);
65
- }
1
+ @use "properties";
2
+ @use "defaults";
3
+ @use "parameters" as *;
4
+
5
+ // Base card styles
6
+ .card {
7
+ box-shadow: $shadow;
8
+ background: var(--secondary-background);
9
+ border-radius: $border-radius;
10
+ padding: $spacing;
11
+ position: relative;
12
+ overflow: hidden;
13
+ display: flex;
14
+ flex-direction: column;
15
+
16
+ &.row {
17
+ flex-direction: row;
18
+ }
19
+
20
+ // Card header
21
+ .card-header {
22
+ border-bottom: 1px solid var(--divider);
23
+ margin: (-$spacing) (-$spacing) $spacing (-$spacing);
24
+ padding: $spacing;
25
+ }
26
+
27
+ // Card footer
28
+ .card-footer {
29
+ border-top: 1px solid var(--divider);
30
+ margin: auto (-$spacing) (-$spacing) (-$spacing);
31
+ padding: $spacing;
32
+ }
33
+ }
34
+
35
+ // Card variants
36
+ .card-flat {
37
+ box-shadow: none;
38
+ border: 1px solid var(--divider);
39
+ }
40
+
41
+ .card-bordered {
42
+ border: 1px solid var(--divider);
43
+ }
44
+
45
+ .card-hover {
46
+ transition: box-shadow 0.3s ease, transform 0.3s ease;
47
+
48
+ &:hover {
49
+ box-shadow: 0 4px 8px var(--divider);
50
+ transform: translateY(-2px);
51
+ }
52
+ }
53
+
54
+ // Utility modifiers for cards
55
+ .card-padding-none {
56
+ padding: 0;
57
+ }
58
+
59
+ .card-padding-sm {
60
+ padding: calc($spacing / 2);
61
+ }
62
+
63
+ .card-padding-lg {
64
+ padding: calc($spacing * 2);
65
+ }
package/css/chart.scss CHANGED
@@ -1,157 +1,270 @@
1
- @use "properties";
2
-
3
- :root {
4
- /* Data-viz palette intentional, not overridden by theme */
5
- --zone-left-bg: #e0f7fa;
6
- --zone-mid-bg: #fff9c4;
7
- --zone-right-bg: #d0f7db;
8
- --grid-line-color: #bdbdbd;
9
- --line-color: #1976d2;
10
- --point-color: #d32f2f;
11
- }
12
-
13
- #chart-container {
14
- position: relative;
15
- }
16
-
17
- /* Background Zones Layer */
18
- .chart-background {
19
- position: absolute;
20
- top: 0;
21
- left: 0;
22
- width: 100%;
23
- height: 100%;
24
- display: flex;
25
- z-index: 0;
26
- pointer-events: none;
27
- }
28
-
29
- .zone {
30
- height: 100%;
31
- border-right: 1px dashed rgba(0, 0, 0, 0.05);
32
- /* Optional zone separator */
33
- }
34
-
35
- .zone-left {
36
- background-color: var(--zone-left-bg);
37
- }
38
-
39
- .zone-mid {
40
- background-color: var(--zone-mid-bg);
41
- }
42
-
43
- .zone-right {
44
- background-color: var(--zone-right-bg);
45
- }
46
-
47
- /* Grid Lines Layer */
48
- .grid-lines {
49
- position: absolute;
50
- top: 0;
51
- left: 0;
52
- width: 100%;
53
- height: 100%;
54
- z-index: 1;
55
- pointer-events: none;
56
- }
57
-
58
- .grid-line {
59
- position: absolute;
60
- top: 0;
61
- bottom: 0;
62
- width: 1px;
63
- background-color: var(--grid-line-color);
64
- }
65
-
66
- .grid-label {
67
- position: absolute;
68
- top: 10px;
69
- transform: translateX(-50%);
70
- font-size: 10px;
71
- color: var(--secondary-text);
72
- }
73
-
74
- /* Content Layer */
75
- .chart-content {
76
- position: relative;
77
- z-index: 2;
78
- }
79
-
80
- .chart-row {
81
- display: flex;
82
- align-items: center;
83
- padding: 10px 20px;
84
- border-bottom: 1px solid rgba(0, 0, 0, 0.05);
85
- transition: background-color 0.2s;
86
- height: 40px;
87
- /* Fixed height for easier calculation */
88
- box-sizing: border-box;
89
- }
90
-
91
- .chart-row:hover {
92
- background-color: var(--hover);
93
- }
94
-
95
- .row-info {
96
- width: 350px;
97
- /* Fixed width for info column */
98
- flex-shrink: 0;
99
- font-size: 11px;
100
- color: var(--primary-text);
101
- z-index: 3;
102
- /* Above lines */
103
- }
104
-
105
- .row-name {
106
- font-weight: bold;
107
- font-size: 12px;
108
- }
109
-
110
- .row-meta {
111
- font-size: 10px;
112
- color: var(--secondary-text);
113
- }
114
-
115
- /* SVG Layer for Line */
116
- .chart-svg-layer {
117
- position: absolute;
118
- top: 0;
119
- left: 0;
120
- width: 100%;
121
- height: 100%;
122
- z-index: 9999;
123
- /* Nuclear option for visibility */
124
- pointer-events: none;
125
- overflow: visible;
126
- /* Allow points to extend beyond container if needed */
127
- }
128
-
129
- .chart-polyline {
130
- fill: none;
131
- stroke: var(--line-color);
132
- stroke-width: 2;
133
- stroke-linejoin: round;
134
- stroke-linecap: round;
135
- }
136
-
137
- .chart-point {
138
- fill: var(--point-color);
139
- stroke: white;
140
- stroke-width: 2;
141
- }
142
-
143
- /* Tooltip Styles */
144
- .chart-tooltip {
145
- position: absolute;
146
- background-color: var(--primary-text);
147
- color: var(--background);
148
- padding: 8px 12px;
149
- border-radius: 4px;
150
- font-size: 12px;
151
- pointer-events: none;
152
- z-index: 10000;
153
- box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
154
- white-space: nowrap;
155
- }
156
-
157
- /*# sourceMappingURL=chart.css.map */
1
+ @use "properties";
2
+ @use "parameters" as *;
3
+
4
+ // ─── Chart color palette ────────────────────────────────────────────────────
5
+ // Readable via JS: getComputedStyle(el).getPropertyValue('--chart-color-1')
6
+
7
+ .chart {
8
+ --chart-color-1: var(--accent-color);
9
+ --chart-color-2: var(--success);
10
+ --chart-color-3: var(--warning);
11
+ --chart-color-4: var(--error);
12
+ --chart-color-5: #8B5CF6;
13
+ --chart-color-6: #06B6D4;
14
+ --chart-color-7: #F97316;
15
+ --chart-color-8: #EC4899;
16
+ }
17
+
18
+ // ─── Wrapper ────────────────────────────────────────────────────────────────
19
+
20
+ .chart {
21
+ position: relative;
22
+ width: 100%;
23
+ min-width: 0;
24
+ color: var(--primary-text);
25
+ font-size: 0.875rem;
26
+
27
+ // ─── Header ───────────────────────────────────────────────────────────────
28
+
29
+ &-header {
30
+ margin-bottom: calc($spacing * 0.75);
31
+ }
32
+
33
+ &-title {
34
+ font-size: 1rem;
35
+ font-weight: 600;
36
+ color: var(--primary-text);
37
+ line-height: 1.3;
38
+ }
39
+
40
+ &-subtitle {
41
+ font-size: 0.8125rem;
42
+ color: var(--secondary-text);
43
+ margin-top: calc($spacing * 0.2);
44
+ }
45
+
46
+ // ─── Canvas ───────────────────────────────────────────────────────────────
47
+
48
+ &-canvas {
49
+ width: 100%;
50
+ position: relative;
51
+ overflow: hidden;
52
+ }
53
+
54
+ &-svg {
55
+ display: block;
56
+ width: 100%;
57
+ overflow: visible;
58
+ }
59
+
60
+ // ─── Axes & grid ──────────────────────────────────────────────────────────
61
+
62
+ .chart-axis-line {
63
+ stroke: var(--divider);
64
+ stroke-width: 1;
65
+ }
66
+
67
+ .chart-grid-line {
68
+ stroke: var(--divider);
69
+ stroke-width: 1;
70
+ stroke-dasharray: 3 4;
71
+ opacity: 0.7;
72
+ }
73
+
74
+ .chart-axis-label {
75
+ fill: var(--secondary-text);
76
+ font-size: 0.6875rem;
77
+ font-family: inherit;
78
+ }
79
+
80
+ // ─── Line & area ──────────────────────────────────────────────────────────
81
+
82
+ .chart-line {
83
+ fill: none;
84
+ stroke-linecap: round;
85
+ stroke-linejoin: round;
86
+ stroke-dasharray: var(--path-length, 9999);
87
+ stroke-dashoffset: var(--path-length, 9999);
88
+ animation: chart-draw 1s cubic-bezier(0.4, 0, 0.2, 1) forwards;
89
+ }
90
+
91
+ .chart-area {
92
+ animation: chart-fade-in 0.8s ease forwards;
93
+ }
94
+
95
+ // Dots visible by default (small), expand on hover via group
96
+ .chart-point-dot {
97
+ transition: r 0.15s ease;
98
+ }
99
+
100
+ .chart-point-ring {
101
+ opacity: 0;
102
+ transition: opacity 0.15s ease, r 0.15s ease;
103
+ }
104
+
105
+ .chart-point-group {
106
+ cursor: pointer;
107
+
108
+ &:hover .chart-point-dot {
109
+ r: 5;
110
+ }
111
+
112
+ &:hover .chart-point-ring {
113
+ opacity: 1;
114
+ }
115
+ }
116
+
117
+ // ─── Column & bar ─────────────────────────────────────────────────────────
118
+
119
+ .chart-bar {
120
+ transition: opacity 0.15s ease, filter 0.15s ease;
121
+ cursor: pointer;
122
+ transform-box: fill-box;
123
+
124
+ &--vertical {
125
+ transform-origin: bottom center;
126
+ animation: chart-grow-y calc(0.5s + var(--animation-delay, 0ms)) cubic-bezier(0.4, 0, 0.2, 1) both;
127
+ animation-delay: var(--animation-delay, 0ms);
128
+ }
129
+
130
+ &--horizontal {
131
+ transform-origin: left center;
132
+ animation: chart-grow-x calc(0.5s + var(--animation-delay, 0ms)) cubic-bezier(0.4, 0, 0.2, 1) both;
133
+ animation-delay: var(--animation-delay, 0ms);
134
+ }
135
+
136
+ &:hover {
137
+ opacity: 0.85;
138
+ filter: brightness(1.08);
139
+ }
140
+ }
141
+
142
+ // ─── Pie ──────────────────────────────────────────────────────────────────
143
+
144
+ .chart-slice {
145
+ cursor: pointer;
146
+ transform-box: fill-box;
147
+ transform-origin: center;
148
+ transition: transform 0.2s cubic-bezier(0.34, 1.56, 0.64, 1),
149
+ filter 0.15s ease;
150
+ animation: chart-slice-in 0.45s cubic-bezier(0.4, 0, 0.2, 1) both;
151
+ animation-delay: var(--animation-delay, 0ms);
152
+
153
+ &:hover {
154
+ filter: brightness(1.08);
155
+ }
156
+ }
157
+
158
+ // ─── Legend ───────────────────────────────────────────────────────────────
159
+
160
+ &-legend {
161
+ display: flex;
162
+ flex-wrap: wrap;
163
+ gap: calc($spacing * 0.35) calc($spacing * 1);
164
+ margin-top: calc($spacing * 0.75);
165
+ }
166
+
167
+ &-legend-item {
168
+ display: inline-flex;
169
+ align-items: center;
170
+ gap: calc($spacing * 0.4);
171
+ font-size: 0.75rem;
172
+ color: var(--secondary-text);
173
+ cursor: default;
174
+ }
175
+
176
+ &-legend-swatch {
177
+ width: 10px;
178
+ height: 10px;
179
+ border-radius: 2px;
180
+ flex-shrink: 0;
181
+ }
182
+
183
+ // Pie legend variant — bigger swatches, stacked nicely
184
+ &-pie-legend {
185
+ display: flex;
186
+ flex-wrap: wrap;
187
+ gap: calc($spacing * 0.4) calc($spacing * 1.25);
188
+ margin-top: calc($spacing * 0.75);
189
+ justify-content: center;
190
+ }
191
+
192
+ &-pie-legend-item {
193
+ display: inline-flex;
194
+ align-items: center;
195
+ gap: calc($spacing * 0.5);
196
+ font-size: 0.8125rem;
197
+ color: var(--secondary-text);
198
+ }
199
+
200
+ &-pie-legend-swatch {
201
+ width: 12px;
202
+ height: 12px;
203
+ border-radius: 3px;
204
+ flex-shrink: 0;
205
+ }
206
+
207
+ &-pie-legend-value {
208
+ font-weight: 600;
209
+ color: var(--primary-text);
210
+ margin-left: calc($spacing * 0.15);
211
+ }
212
+
213
+ // ─── Tooltip ──────────────────────────────────────────────────────────────
214
+
215
+ &-tooltip {
216
+ position: fixed;
217
+ background: var(--primary-dark);
218
+ color: var(--primary-light);
219
+ padding: calc($spacing * 0.5) calc($spacing * 0.75);
220
+ border-radius: $border-radius;
221
+ font-size: 0.75rem;
222
+ line-height: 1.5;
223
+ pointer-events: none;
224
+ white-space: nowrap;
225
+ z-index: 9999;
226
+ box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
227
+ opacity: 0;
228
+ transform: translateY(4px);
229
+ transition: opacity 0.12s ease, transform 0.12s ease;
230
+
231
+ &.is-visible {
232
+ opacity: 1;
233
+ transform: translateY(0);
234
+ }
235
+
236
+ strong {
237
+ display: block;
238
+ font-weight: 600;
239
+ color: #fff;
240
+ margin-bottom: 1px;
241
+ }
242
+ }
243
+ }
244
+
245
+ // ─── Animations ─────────────────────────────────────────────────────────────
246
+
247
+ @keyframes chart-draw {
248
+ from { stroke-dashoffset: var(--path-length, 9999); }
249
+ to { stroke-dashoffset: 0; }
250
+ }
251
+
252
+ @keyframes chart-fade-in {
253
+ from { opacity: 0; }
254
+ to { opacity: 1; }
255
+ }
256
+
257
+ @keyframes chart-grow-y {
258
+ from { transform: scaleY(0); }
259
+ to { transform: scaleY(1); }
260
+ }
261
+
262
+ @keyframes chart-grow-x {
263
+ from { transform: scaleX(0); }
264
+ to { transform: scaleX(1); }
265
+ }
266
+
267
+ @keyframes chart-slice-in {
268
+ from { transform: scale(0.6); opacity: 0; }
269
+ to { transform: scale(1); opacity: 1; }
270
+ }