@dodlhuat/basix 1.2.0 → 1.2.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 (93) hide show
  1. package/README.md +266 -6
  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 +3155 -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 +37 -39
  92. package/js/index.js +0 -816
  93. package/js/index.ts +0 -987
package/css/toast.scss CHANGED
@@ -1,82 +1,82 @@
1
- @use "properties";
2
- @use "parameters" as *;
3
-
4
- .toast {
5
- display: flex;
6
- flex-direction: column;
7
- position: fixed;
8
- bottom: $spacing;
9
- left: $spacing;
10
- right: $spacing;
11
- max-width: 380px;
12
- margin: 0 auto;
13
- background: var(--background);
14
- border-radius: calc($border-radius * 2);
15
- box-shadow: $shadow, 0 8px 24px rgba(0, 0, 0, 0.12);
16
- padding: calc($spacing * 0.75) $spacing;
17
- z-index: 1000;
18
- overflow: hidden;
19
- transform: translateY(calc(100% + $spacing * 2));
20
- opacity: 0;
21
- transition: transform 300ms cubic-bezier(0.32, 0.72, 0, 1),
22
- opacity 200ms ease;
23
-
24
- .bar {
25
- position: absolute;
26
- top: 0;
27
- left: 0;
28
- height: 3px;
29
- width: 100%;
30
- background: var(--accent-color);
31
- border-radius: 0 0 2px 2px;
32
- transition: width 250ms linear;
33
- }
34
-
35
- &.show {
36
- transform: translateY(0);
37
- opacity: 1;
38
- }
39
-
40
- &.success .bar {
41
- background: var(--success);
42
- }
43
-
44
- &.warning .bar {
45
- background: var(--warning);
46
- }
47
-
48
- &.error .bar {
49
- background: var(--error);
50
- }
51
-
52
- .close {
53
- cursor: pointer;
54
- position: absolute;
55
- top: calc($spacing * 0.75);
56
- right: calc($spacing * 0.75);
57
- display: flex;
58
- align-items: center;
59
- justify-content: center;
60
- width: 1.5rem;
61
- height: 1.5rem;
62
- border-radius: $border-radius;
63
- transition: background 150ms ease;
64
-
65
- &:hover {
66
- background: var(--secondary-background);
67
- }
68
- }
69
-
70
- .header {
71
- padding-right: 1.5rem;
72
- padding-bottom: calc($spacing / 3);
73
- font-weight: 700;
74
- }
75
-
76
- .content {
77
- margin: 0;
78
- color: var(--secondary-text);
79
- font-size: 0.875rem;
80
- line-height: 1.5;
81
- }
1
+ @use "properties";
2
+ @use "parameters" as *;
3
+
4
+ .toast {
5
+ display: flex;
6
+ flex-direction: column;
7
+ position: fixed;
8
+ bottom: $spacing;
9
+ left: $spacing;
10
+ right: $spacing;
11
+ max-width: 380px;
12
+ margin: 0 auto;
13
+ background: var(--background);
14
+ border-radius: calc($border-radius * 2);
15
+ box-shadow: $shadow, 0 8px 24px rgba(0, 0, 0, 0.12);
16
+ padding: calc($spacing * 0.75) $spacing;
17
+ z-index: 1000;
18
+ overflow: hidden;
19
+ transform: translateY(calc(100% + $spacing * 2));
20
+ opacity: 0;
21
+ transition: transform 300ms cubic-bezier(0.32, 0.72, 0, 1),
22
+ opacity 200ms ease;
23
+
24
+ .bar {
25
+ position: absolute;
26
+ top: 0;
27
+ left: 0;
28
+ height: 3px;
29
+ width: 100%;
30
+ background: var(--accent-color);
31
+ border-radius: 0 0 2px 2px;
32
+ transition: width 250ms linear;
33
+ }
34
+
35
+ &.show {
36
+ transform: translateY(0);
37
+ opacity: 1;
38
+ }
39
+
40
+ &.success .bar {
41
+ background: var(--success);
42
+ }
43
+
44
+ &.warning .bar {
45
+ background: var(--warning);
46
+ }
47
+
48
+ &.error .bar {
49
+ background: var(--error);
50
+ }
51
+
52
+ .close {
53
+ cursor: pointer;
54
+ position: absolute;
55
+ top: calc($spacing * 0.75);
56
+ right: calc($spacing * 0.75);
57
+ display: flex;
58
+ align-items: center;
59
+ justify-content: center;
60
+ width: 1.5rem;
61
+ height: 1.5rem;
62
+ border-radius: $border-radius;
63
+ transition: background 150ms ease;
64
+
65
+ &:hover {
66
+ background: var(--secondary-background);
67
+ }
68
+ }
69
+
70
+ .header {
71
+ padding-right: 1.5rem;
72
+ padding-bottom: calc($spacing / 3);
73
+ font-weight: 700;
74
+ }
75
+
76
+ .content {
77
+ margin: 0;
78
+ color: var(--secondary-text);
79
+ font-size: 0.875rem;
80
+ line-height: 1.5;
81
+ }
82
82
  }
@@ -1,13 +1,14 @@
1
1
  @use "parameters" as *;
2
2
  @use "properties";
3
3
 
4
- .virtual-dropdown {
5
- .custom-dropdown {
6
- position: relative;
7
- width: 100%;
8
- user-select: none;
9
- display: inline-block;
10
- }
4
+ // All selectors scoped under .custom-dropdown to avoid conflicts with dropdown.scss
5
+ .custom-dropdown {
6
+ position: relative;
7
+ width: 100%;
8
+ user-select: none;
9
+ display: inline-block;
10
+
11
+ // ── Trigger ──────────────────────────────────────────────────────────
11
12
 
12
13
  .dropdown-trigger {
13
14
  background: var(--background);
@@ -20,17 +21,16 @@
20
21
  justify-content: space-between;
21
22
  align-items: center;
22
23
  transition: border-color 0.2s, box-shadow 0.2s, border-radius 0.15s, border-bottom-color 0.15s;
23
- }
24
24
 
25
- // Focus without open — show ring
26
- .dropdown-trigger:focus {
27
- border-color: var(--accent-color);
28
- box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent-color) 15%, transparent);
29
- outline: none;
25
+ &:focus {
26
+ border-color: var(--accent-color);
27
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent-color) 15%, transparent);
28
+ outline: none;
29
+ }
30
30
  }
31
31
 
32
32
  // Open — flatten bottom, hide bottom border so menu connects flush
33
- .custom-dropdown.open .dropdown-trigger {
33
+ &.open .dropdown-trigger {
34
34
  border-color: var(--accent-color);
35
35
  border-radius: $border-radius $border-radius 0 0;
36
36
  border-bottom-color: var(--background);
@@ -58,10 +58,12 @@
58
58
  transition: transform 0.2s ease;
59
59
  }
60
60
 
61
- .custom-dropdown.open .trigger-arrow {
61
+ &.open .trigger-arrow {
62
62
  transform: rotate(180deg);
63
63
  }
64
64
 
65
+ // ── Menu ─────────────────────────────────────────────────────────────
66
+
65
67
  // visibility trick: transitions work in both directions; display:none/block skips them
66
68
  .dropdown-menu {
67
69
  position: absolute;
@@ -81,19 +83,21 @@
81
83
  transition:
82
84
  opacity 0.18s ease,
83
85
  transform 0.18s ease,
84
- visibility 0s 0.18s; // delay visibility until fade-out ends
86
+ visibility 0s 0.18s;
87
+
88
+ &.open {
89
+ visibility: visible;
90
+ opacity: 1;
91
+ transform: translateY(0);
92
+ pointer-events: auto;
93
+ transition:
94
+ opacity 0.18s ease,
95
+ transform 0.18s ease,
96
+ visibility 0s 0s;
97
+ }
85
98
  }
86
99
 
87
- .dropdown-menu.open {
88
- visibility: visible;
89
- opacity: 1;
90
- transform: translateY(0);
91
- pointer-events: auto;
92
- transition:
93
- opacity 0.18s ease,
94
- transform 0.18s ease,
95
- visibility 0s 0s; // switch visible immediately on open
96
- }
100
+ // ── Search ───────────────────────────────────────────────────────────
97
101
 
98
102
  .dropdown-search {
99
103
  padding: calc($spacing / 2);
@@ -117,6 +121,8 @@
117
121
  }
118
122
  }
119
123
 
124
+ // ── Virtual list ─────────────────────────────────────────────────────
125
+
120
126
  .dropdown-list-wrapper {
121
127
  max-height: 250px;
122
128
  overflow-y: auto;
@@ -135,6 +141,8 @@
135
141
  width: 100%;
136
142
  }
137
143
 
144
+ // ── Items ─────────────────────────────────────────────────────────────
145
+
138
146
  .dropdown-item {
139
147
  padding: 0 calc($spacing * 0.75);
140
148
  cursor: pointer;
@@ -194,8 +202,6 @@
194
202
  }
195
203
 
196
204
  @media (max-width: 600px) {
197
- .custom-dropdown {
198
- max-width: 100%;
199
- }
205
+ max-width: 100%;
200
206
  }
201
207
  }