@actabldesign/bellhop-styles 0.0.3

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 (54) hide show
  1. package/README.md +185 -0
  2. package/base/normalize.css +101 -0
  3. package/components/appbar.css +167 -0
  4. package/components/autocomplete-menu.css +142 -0
  5. package/components/avatar-add.css +112 -0
  6. package/components/avatar.css +253 -0
  7. package/components/badge-dot.css +78 -0
  8. package/components/badge.css +337 -0
  9. package/components/bar-chart-card.css +261 -0
  10. package/components/bar-chart.css +149 -0
  11. package/components/breadcrumbs.css +136 -0
  12. package/components/button.css +266 -0
  13. package/components/chart-tooltip.css +96 -0
  14. package/components/checkbox-label.css +53 -0
  15. package/components/checkbox.css +127 -0
  16. package/components/container-footer.css +22 -0
  17. package/components/container.css +17 -0
  18. package/components/date-picker-content.css +337 -0
  19. package/components/date-picker.css +103 -0
  20. package/components/date-range-picker-content.css +85 -0
  21. package/components/date-range-picker.css +72 -0
  22. package/components/dropdown-menu.css +204 -0
  23. package/components/dropdown.css +126 -0
  24. package/components/empty-state.css +83 -0
  25. package/components/featured-icon.css +194 -0
  26. package/components/illustrations.css +120 -0
  27. package/components/input-autocomplete.css +158 -0
  28. package/components/input-number.css +2 -0
  29. package/components/input-verification.css +137 -0
  30. package/components/input.css +374 -0
  31. package/components/loader-spinner.css +421 -0
  32. package/components/logo-box.css +85 -0
  33. package/components/month-picker-content.css +190 -0
  34. package/components/month-picker.css +83 -0
  35. package/components/nav-item.css +110 -0
  36. package/components/notification.css +262 -0
  37. package/components/page-navigation.css +294 -0
  38. package/components/picker-menu.css +43 -0
  39. package/components/pie-chart-card.css +213 -0
  40. package/components/pie-chart.css +80 -0
  41. package/components/product-switcher.css +127 -0
  42. package/components/property-switcher.css +95 -0
  43. package/components/radio-button-label.css +53 -0
  44. package/components/radio-button.css +134 -0
  45. package/components/sidebar.css +178 -0
  46. package/components/skeleton-loader.css +47 -0
  47. package/components/tag.css +214 -0
  48. package/components/textarea.css +211 -0
  49. package/components/toggle.css +298 -0
  50. package/components/tooltip.css +85 -0
  51. package/components/trend-chart-card.css +189 -0
  52. package/components/trend-chart.css +94 -0
  53. package/index.css +8115 -0
  54. package/package.json +32 -0
@@ -0,0 +1,266 @@
1
+ /* ==========================================================================
2
+ BUTTON COMPONENT STYLES
3
+ ========================================================================== */
4
+
5
+ /* Base Button */
6
+ .btn {
7
+ display: inline-flex;
8
+ align-items: center;
9
+ justify-content: center;
10
+ gap: var(--spacing-xs);
11
+ font-family: var(--font-inter);
12
+ font-weight: var(--weight-medium);
13
+
14
+ border: 1px solid transparent;
15
+ cursor: pointer;
16
+ text-align: center;
17
+ white-space: nowrap;
18
+ transition: all 0.2s ease-in-out;
19
+ text-decoration: none;
20
+ outline: none;
21
+ }
22
+
23
+ /* Button Sizes */
24
+ .btn-xs {
25
+ padding: 0 var(--spacing-lg);
26
+ height: 24px;
27
+ border-radius: var(--radius-md);
28
+ font-size: var(--text-sm-size);
29
+ }
30
+
31
+ .btn-sm {
32
+ padding: 0 var(--spacing-xl);
33
+ height: 32px;
34
+ border-radius: var(--radius-md);
35
+ font-size: var(--text-sm-size);
36
+ }
37
+
38
+ .btn-md {
39
+ padding: 0 var(--spacing-xl);
40
+ height: 40px;
41
+ border-radius: var(--radius-md);
42
+ }
43
+
44
+ .btn-lg {
45
+ padding: 0 var(--spacing-xl);
46
+ height: 48px;
47
+ border-radius: var(--radius-md);
48
+ gap: var(--spacing-sm); /* Larger gap for large buttons */
49
+ }
50
+
51
+ /* Icon Padding Compensation */
52
+ /*
53
+ * Precise compensation for visual balance:
54
+ * Base padding: 16px (--spacing-xl)
55
+ * Icon gap: 4px (--spacing-xs) for sm/md, 6px (--spacing-sm) for lg
56
+ *
57
+ * The compensation should account for:
58
+ * 1. Half the icon's visual weight (icon_size / 2)
59
+ * 2. The gap between icon and text
60
+ *
61
+ * Compensation = (icon_size / 2) + gap
62
+ * Final padding = base_padding - compensation
63
+ */
64
+
65
+ /* Leading icon - reduce left padding for visual balance */
66
+ .btn-xs.btn-icon-leading {
67
+ padding-left: var(--icon-compensation-xs-btn, calc(var(--spacing-lg) - var(--spacing-xs)));
68
+ }
69
+
70
+ .btn-sm.btn-icon-leading {
71
+ padding-left: var(--icon-compensation-sm-btn, calc(var(--spacing-xl) - var(--spacing-xs)));
72
+ }
73
+
74
+ .btn-md.btn-icon-leading {
75
+ padding-left: var(--icon-compensation-md-btn, calc(var(--spacing-xl) - var(--spacing-xs)));
76
+ }
77
+
78
+ .btn-lg.btn-icon-leading {
79
+ padding-left: var(--icon-compensation-lg-btn, calc(var(--spacing-xl) - var(--spacing-xs)));
80
+ }
81
+
82
+ /* Trailing icon - reduce right padding for visual balance */
83
+ .btn-xs.btn-icon-trailing {
84
+ padding-right: var(--icon-compensation-xs-btn, calc(var(--spacing-lg) - var(--spacing-xs)));
85
+ }
86
+
87
+ .btn-sm.btn-icon-trailing {
88
+ padding-right: var(--icon-compensation-sm-btn, calc(var(--spacing-xl) - var(--spacing-xs)));
89
+ }
90
+
91
+ .btn-md.btn-icon-trailing {
92
+ padding-right: var(--icon-compensation-md-btn, calc(var(--spacing-xl) - var(--spacing-xs)));
93
+ }
94
+
95
+ .btn-lg.btn-icon-trailing {
96
+ padding-right: var(--icon-compensation-lg-btn, calc(var(--spacing-xl) - var(--spacing-xs)));
97
+ }
98
+
99
+ /* Button Hierarchies */
100
+ .btn-primary {
101
+ background-color: var(--color-brand-600);
102
+ color: var(--color-white);
103
+ border-color: var(--color-brand-600);
104
+ }
105
+
106
+ .btn-secondary {
107
+ background-color: var(--color-white);
108
+ color: var(--color-neutral-600);
109
+ border-color: var(--color-neutral-300);
110
+ }
111
+
112
+ .btn-tertiary {
113
+ background-color: transparent;
114
+ color: var(--color-neutral-600);
115
+ border-color: transparent;
116
+ }
117
+
118
+ .btn-quaternary {
119
+ background-color: transparent;
120
+ color: var(--color-brand-600);
121
+ border-color: transparent;
122
+ /* font-weight: var(--weight-medium); */
123
+ }
124
+
125
+ /* Hover States */
126
+ .btn-primary:hover:not(:disabled) {
127
+ background-color: var(--color-brand-700);
128
+ border-color: var(--color-brand-700);
129
+ }
130
+
131
+ .btn-secondary:hover:not(:disabled) {
132
+ background-color: var(--color-neutral-50);
133
+ color: var(--color-neutral-700);
134
+ border-color: var(--color-neutral-400);
135
+ }
136
+
137
+ .btn-tertiary:hover:not(:disabled) {
138
+ background-color: var(--color-neutral-100);
139
+ color: var(--color-neutral-700);
140
+ }
141
+
142
+ .btn-quaternary:hover:not(:disabled) {
143
+ color: var(--color-brand-700);
144
+ }
145
+
146
+ /* Active States */
147
+ .btn-primary:active:not(:disabled) {
148
+ background-color: var(--color-brand-800);
149
+ border-color: var(--color-brand-800);
150
+ }
151
+
152
+ .btn-secondary:active:not(:disabled) {
153
+ background-color: var(--color-neutral-100);
154
+ border-color: var(--color-neutral-500);
155
+ }
156
+
157
+ .btn-tertiary:active:not(:disabled) {
158
+ background-color: var(--color-neutral-100);
159
+ }
160
+
161
+ .btn-quaternary:active:not(:disabled) {
162
+ color: var(--color-brand-800);
163
+ }
164
+
165
+ /* Focus State */
166
+ .btn:focus,
167
+ .btn-focus {
168
+ outline: 2px solid var(--color-brand-500);
169
+ outline-offset: 2px;
170
+ }
171
+
172
+ /* Disabled States */
173
+ .btn:disabled,
174
+ .btn-disabled {
175
+ cursor: not-allowed;
176
+ pointer-events: none;
177
+ }
178
+
179
+ .btn-primary:disabled,
180
+ .btn-primary.btn-disabled {
181
+ background-color: var(--color-neutral-200);
182
+ color: var(--color-neutral-400);
183
+ border-color: var(--color-neutral-200);
184
+ }
185
+
186
+ .btn-secondary:disabled,
187
+ .btn-secondary.btn-disabled,
188
+ .btn-tertiary:disabled,
189
+ .btn-tertiary.btn-disabled,
190
+ .btn-quaternary:disabled,
191
+ .btn-quaternary.btn-disabled {
192
+ opacity: 0.5;
193
+ }
194
+
195
+ /* Loading State */
196
+ .btn-loading {
197
+ cursor: wait;
198
+ pointer-events: none;
199
+ }
200
+
201
+ .btn-loading .btn-label {
202
+ opacity: 0.7;
203
+ }
204
+
205
+ /* ==========================================================================
206
+ BUTTON CONTENT ELEMENTS
207
+ ========================================================================== */
208
+
209
+ /* Button Label */
210
+ .btn-label {
211
+ display: inline-block;
212
+ line-height: inherit;
213
+
214
+ }
215
+
216
+ /* Quaternary button labels get underline */
217
+ .btn-quaternary .btn-label {
218
+ text-decoration: underline;
219
+ }
220
+
221
+ /* Icons */
222
+ .btn-icon {
223
+ display: flex;
224
+ align-items: center;
225
+ justify-content: center;
226
+ flex-shrink: 0;
227
+ }
228
+
229
+ .btn-icon-material {
230
+ line-height: 1;
231
+ vertical-align: middle;
232
+ color: inherit !important;
233
+ }
234
+
235
+ /* Icon-Only Buttons */
236
+ .btn-icon-only {
237
+ padding: 0;
238
+ }
239
+
240
+ .btn-icon-only.btn-xs {
241
+ width: 24px;
242
+ height: 24px;
243
+ }
244
+ .btn-icon-only.btn-sm {
245
+ width: 32px;
246
+ height: 32px;
247
+ }
248
+ .btn-icon-only.btn-md {
249
+ width: 40px;
250
+ height: 40px;
251
+ }
252
+ .btn-icon-only.btn-lg {
253
+ width: 48px;
254
+ height: 48px;
255
+ }
256
+
257
+ .btn-icon-only .btn-icon-material {
258
+ margin: 0;
259
+ }
260
+
261
+ /* Loading Spinner */
262
+ .btn-loading-icon {
263
+ line-height: 1;
264
+ vertical-align: middle;
265
+ color: inherit;
266
+ }
@@ -0,0 +1,96 @@
1
+ /* ==========================================================================
2
+ CHART TOOLTIP COMPONENT - REACT IMPLEMENTATION
3
+ Unified styles for chart tooltips matching Angular functionality
4
+ ========================================================================== */
5
+
6
+ .chart-tooltip {
7
+ position: fixed;
8
+ z-index: 10000;
9
+ pointer-events: none;
10
+ opacity: 0;
11
+ transition: opacity 0.15s ease;
12
+ transform: translate(-50%, -100%);
13
+ margin-top: var(--spacing-sm);
14
+ width: max-content;
15
+ min-width: 120px;
16
+ max-width: 240px;
17
+ }
18
+
19
+ .chart-tooltip.storybook-mode {
20
+ position: absolute;
21
+ transform: translate(-50%, -100%);
22
+ margin-top: -10px;
23
+ }
24
+
25
+ .chart-tooltip.visible {
26
+ opacity: 1;
27
+ }
28
+
29
+ .tooltip-content {
30
+ background: var(--color-white) !important;
31
+ color: var(--color-neutral-900);
32
+ padding: var(--spacing-sm) var(--spacing-md);
33
+ border-radius: var(--radius-md);
34
+ font-family: var(--font-inter);
35
+ font-size: var(--text-xs-size);
36
+ line-height: var(--text-xs-line);
37
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12), 0 0 1px rgba(0, 0, 0, 0.08);
38
+ border: 1px solid rgba(0, 0, 0, 0.05);
39
+ }
40
+
41
+ .tooltip-header {
42
+ font-weight: var(--weight-semibold);
43
+ margin-bottom: var(--spacing-xs);
44
+ padding-bottom: var(--spacing-xs);
45
+ border-bottom: 1px solid var(--color-neutral-100);
46
+ }
47
+
48
+ .tooltip-items {
49
+ display: flex;
50
+ flex-direction: column;
51
+ gap: var(--spacing-xs);
52
+ }
53
+
54
+ .tooltip-item {
55
+ display: flex;
56
+ align-items: center;
57
+ gap: var(--spacing-sm);
58
+ white-space: nowrap;
59
+ }
60
+
61
+ .tooltip-dot {
62
+ width: var(--spacing-sm);
63
+ height: var(--spacing-sm);
64
+ border-radius: 50%;
65
+ flex-shrink: 0;
66
+ }
67
+
68
+ .tooltip-label {
69
+ color: var(--color-neutral-600);
70
+ font-weight: var(--weight-regular);
71
+ flex-shrink: 0;
72
+ }
73
+
74
+ .tooltip-value {
75
+ color: var(--color-neutral-900);
76
+ font-weight: var(--weight-medium);
77
+ }
78
+
79
+ .tooltip-total {
80
+ margin-top: var(--spacing-xs);
81
+ padding-top: var(--spacing-xs);
82
+ border-top: 1px solid var(--color-neutral-100);
83
+ display: flex;
84
+ justify-content: space-between;
85
+ gap: var(--spacing-md);
86
+ }
87
+
88
+ .total-label {
89
+ color: var(--color-neutral-600);
90
+ font-weight: var(--weight-medium);
91
+ }
92
+
93
+ .total-value {
94
+ color: var(--color-neutral-900);
95
+ font-weight: var(--weight-semibold);
96
+ }
@@ -0,0 +1,53 @@
1
+ .checkbox-label-wrapper {
2
+ display: flex;
3
+ align-items: flex-start;
4
+ gap: 8px;
5
+ cursor: pointer;
6
+ user-select: none;
7
+ }
8
+
9
+ .checkbox-label-wrapper.checkbox-label-disabled {
10
+ cursor: not-allowed;
11
+ }
12
+
13
+ /* Align checkbox with the label text baseline */
14
+ .checkbox-label-wrapper .checkbox {
15
+ margin-top: 2px;
16
+ }
17
+
18
+ .checkbox-label-wrapper .checkbox-sm {
19
+ margin-top: 3px;
20
+ }
21
+
22
+ .label-content {
23
+ display: flex;
24
+ flex-direction: column;
25
+ gap: 2px;
26
+ }
27
+
28
+ .label-text {
29
+ font-family: var(--font-inter);
30
+ font-size: var(--text-md-size);
31
+ font-weight: var(--weight-medium);
32
+ color: var(--color-neutral-900);
33
+ margin: 0;
34
+ cursor: inherit;
35
+ display: block;
36
+ }
37
+
38
+ .label-text.label-disabled {
39
+ color: var(--color-neutral-400);
40
+ }
41
+
42
+ .supporting-text {
43
+ font-family: var(--font-inter);
44
+ font-size: var(--text-sm-size);
45
+ font-weight: var(--weight-regular);
46
+ line-height: var(--text-sm-line);
47
+ color: var(--color-neutral-500);
48
+ margin: 0;
49
+ }
50
+
51
+ .supporting-text.supporting-disabled {
52
+ color: var(--color-neutral-400);
53
+ }
@@ -0,0 +1,127 @@
1
+ /* ==========================================================================
2
+ CHECKBOX COMPONENT STYLES - Following Figma Design
3
+ ========================================================================== */
4
+
5
+ .checkbox {
6
+ display: inline-flex;
7
+ align-items: center;
8
+ justify-content: center;
9
+ cursor: pointer;
10
+ outline: none;
11
+ user-select: none;
12
+ transition: all 0.2s ease;
13
+ box-sizing: border-box;
14
+ background: var(--color-white);
15
+ border: 2px solid var(--color-neutral-300);
16
+ position: relative;
17
+ }
18
+
19
+ /* Size Variants - Following Figma Specs */
20
+ .checkbox-sm {
21
+ width: 16px;
22
+ height: 16px;
23
+ border-radius: var(--radius-xs);
24
+ }
25
+
26
+ .checkbox-md {
27
+ width: 20px;
28
+ height: 20px;
29
+ border-radius: var(--radius-sm);
30
+ }
31
+
32
+ /* State: Default (unchecked) */
33
+ .checkbox {
34
+ border-color: var(--color-neutral-300);
35
+ }
36
+
37
+ /* State: Checked */
38
+ .checkbox.checkbox-checked {
39
+ background: var(--color-brand-600);
40
+ border-color: var(--color-brand-600);
41
+ color: var(--color-white);
42
+ }
43
+
44
+ /* State: Hover */
45
+ .checkbox:hover:not(.checkbox-disabled) {
46
+ background: var(--color-neutral-100);
47
+ border-color: var(--color-neutral-300);
48
+ }
49
+
50
+ .checkbox.checkbox-checked:hover:not(.checkbox-disabled) {
51
+ background: var(--color-brand-700);
52
+ border-color: var(--color-brand-700);
53
+ }
54
+
55
+ /* State: Focused */
56
+ .checkbox.checkbox-focused:not(.checkbox-disabled) {
57
+ border-color: var(--color-neutral-300);
58
+ box-shadow: 0px 0px 0px 4px var(--color-brand-100),
59
+ 0px 0px 0px 2px var(--color-white);
60
+ }
61
+
62
+ .checkbox.checkbox-checked.checkbox-focused:not(.checkbox-disabled) {
63
+ background: var(--color-brand-600);
64
+ border-color: var(--color-brand-600);
65
+ box-shadow: 0px 0px 0px 4px var(--color-brand-100),
66
+ 0px 0px 0px 2px var(--color-white);
67
+ }
68
+
69
+ /* State: Disabled */
70
+ .checkbox.checkbox-disabled {
71
+ background: var(--color-neutral-50);
72
+ border-color: var(--color-neutral-300);
73
+ cursor: not-allowed;
74
+ opacity: 1;
75
+ }
76
+
77
+ .checkbox.checkbox-checked.checkbox-disabled {
78
+ background: var(--color-neutral-50);
79
+ border: 2px solid var(--color-neutral-300);
80
+ color: var(--color-neutral-300);
81
+ }
82
+
83
+ /* Icons */
84
+ .checkbox-icon {
85
+ position: absolute;
86
+ top: 50%;
87
+ left: 50%;
88
+ transform: translate(-50%, -50%);
89
+ font-size: var(--icon-size-md);
90
+ line-height: 1;
91
+ font-variation-settings: 'FILL' 0, 'wght' 600, 'GRAD' 0, 'opsz' 20;
92
+ }
93
+
94
+ .checkbox .check-icon {
95
+ color: var(--color-white) !important;
96
+ }
97
+
98
+ .checkbox-disabled .check-icon {
99
+ color: var(--color-neutral-300) !important;
100
+ }
101
+
102
+ .checkbox .minus-icon {
103
+ color: var(--color-white) !important;
104
+ }
105
+
106
+ .checkbox-disabled .minus-icon {
107
+ color: var(--color-neutral-300) !important;
108
+ }
109
+
110
+ /* Adjust icon sizes for different checkbox sizes */
111
+ .checkbox-sm .checkbox-icon {
112
+ font-size: var(--icon-size-xs);
113
+ }
114
+
115
+ .checkbox-md .checkbox-icon {
116
+ font-size: var(--icon-size-md);
117
+ }
118
+
119
+ /* Focus outline for accessibility */
120
+ .checkbox:focus {
121
+ outline: none;
122
+ }
123
+
124
+ .checkbox:focus:not(.checkbox-disabled) {
125
+ box-shadow: 0px 0px 0px 4px var(--color-brand-100),
126
+ 0px 0px 0px 2px var(--color-white);
127
+ }
@@ -0,0 +1,22 @@
1
+ /* Base Container Footer Styles */
2
+ .container-footer {
3
+ background: var(--color-white);
4
+ border: 1px solid var(--color-neutral-200);
5
+ border-top: 1px solid var(--color-neutral-200);
6
+ border-radius: var(--radius-none) var(--radius-none) var(--radius-xl)
7
+ var(--radius-xl);
8
+ box-sizing: border-box;
9
+ width: 100%;
10
+ }
11
+
12
+ .container-footer-content {
13
+ display: flex;
14
+ justify-content: flex-end;
15
+ align-items: center;
16
+ padding: var(--spacing-md) var(--spacing-2xl);
17
+ }
18
+
19
+ /* Minimal size - smaller top/bottom padding */
20
+ .container-footer-minimal .container-footer-content {
21
+ padding: var(--spacing-sm) var(--spacing-2xl);
22
+ }
@@ -0,0 +1,17 @@
1
+ .container {
2
+ display: flex;
3
+ flex-direction: column;
4
+ gap: var(--spacing-2xl);
5
+ padding: var(--spacing-2xl);
6
+ background: var(--color-white);
7
+ border: 1px solid var(--color-neutral-200);
8
+ border-radius: var(--radius-xl);
9
+ width: fit-content;
10
+ font-family: var(--font-inter);
11
+ }
12
+
13
+ /* Container with footer - removes bottom border radius and border */
14
+ .container-with-footer {
15
+ border-bottom: none;
16
+ border-radius: var(--radius-xl) var(--radius-xl) var(--radius-none) var(--radius-none);
17
+ }