@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,337 @@
1
+ /* ==========================================================================
2
+ DATE PICKER CONTENT COMPONENT - REUSABLE CALENDAR CONTENT
3
+ ========================================================================== */
4
+
5
+ @import '../tokens/bellhop-animations.css';
6
+
7
+ /* Content area - reusable calendar content */
8
+ .date-picker-content {
9
+ width: 100%;
10
+ font-family: var(--font-inter);
11
+ display: flex;
12
+ flex-direction: column;
13
+ }
14
+
15
+ /* Month Navigation */
16
+ .month-navigation {
17
+ display: flex;
18
+ justify-content: space-between;
19
+ align-items: center;
20
+ gap: var(--spacing-sm);
21
+ padding: var(--spacing-md);
22
+ }
23
+
24
+ /* Apply chevron rotation to button icon */
25
+ .month-button .btn-icon-trailing .material-symbols-outlined {
26
+ transition: transform var(--animation-duration-fast)
27
+ var(--animation-ease-smooth);
28
+ display: inline-block;
29
+ }
30
+
31
+ .month-button.dropdown-open .btn-icon-trailing .material-symbols-outlined {
32
+ transform: rotate(180deg);
33
+ }
34
+
35
+ /* Inline Month Picker - constrain to container */
36
+ .month-picker-inline {
37
+ /* padding: 0 var(--spacing-md) var(--spacing-md); */
38
+ flex: 1;
39
+ overflow: hidden;
40
+ max-height: 270px;
41
+ animation: fadeIn 150ms ease-out;
42
+ }
43
+
44
+ @keyframes fadeIn {
45
+ from {
46
+ opacity: 0;
47
+ transform: translateY(-10px);
48
+ }
49
+ to {
50
+ opacity: 1;
51
+ transform: translateY(0);
52
+ }
53
+ }
54
+
55
+ .month-picker-inline.animate-fade-out {
56
+ animation: fadeOut 150ms ease-out;
57
+ }
58
+
59
+ @keyframes fadeOut {
60
+ from {
61
+ opacity: 1;
62
+ transform: translateY(0);
63
+ }
64
+ to {
65
+ opacity: 0;
66
+ transform: translateY(-10px);
67
+ }
68
+ }
69
+
70
+ .nav-button {
71
+ width: 32px;
72
+ height: 32px;
73
+ flex-shrink: 0;
74
+ }
75
+
76
+ .today-button {
77
+ width: 32px;
78
+ height: 32px;
79
+ flex-shrink: 0;
80
+ }
81
+
82
+ /* Calendar Grid */
83
+ .calendar-grid {
84
+ padding: 0 var(--spacing-md) var(--spacing-md);
85
+ flex: 1;
86
+ }
87
+
88
+
89
+ .day-names {
90
+ display: grid;
91
+ grid-template-columns: repeat(7, 1fr);
92
+ gap: 0;
93
+ margin-bottom: var(--spacing-sm);
94
+ }
95
+
96
+ .day-name {
97
+ width: 40px;
98
+ height: 40px;
99
+ display: flex;
100
+ align-items: center;
101
+ justify-content: center;
102
+ font-family: var(--font-inter);
103
+ font-weight: var(--weight-medium);
104
+ font-size: var(--text-sm-size);
105
+ line-height: var(--text-sm-line);
106
+ color: var(--color-neutral-500);
107
+ }
108
+
109
+ .date-cells {
110
+ display: grid;
111
+ grid-template-columns: repeat(7, 1fr);
112
+ gap: var(--spacing-xxs);
113
+ justify-items: center;
114
+ align-items: center;
115
+ }
116
+
117
+ /* Calendar Cell States */
118
+ .calendar-cell {
119
+ width: 40px;
120
+ height: 40px;
121
+ display: flex;
122
+ align-items: center;
123
+ justify-content: center;
124
+ position: relative;
125
+ border-radius: var(--radius-full);
126
+ font-family: var(--font-inter);
127
+ font-weight: var(--weight-medium);
128
+ font-size: var(--text-sm-size);
129
+ line-height: var(--text-sm-line);
130
+ cursor: pointer;
131
+ transition: all var(--animation-duration-fast) var(--animation-easing-ease);
132
+ }
133
+
134
+ .calendar-cell.other-month .date-number {
135
+ color: var(--color-neutral-400);
136
+ }
137
+
138
+ .calendar-cell.other-month.disabled .date-number {
139
+ color: var(--color-neutral-300);
140
+ }
141
+
142
+ .calendar-cell.selectable .date-number {
143
+ color: var(--color-neutral-500);
144
+ }
145
+
146
+ .calendar-cell.selectable:hover {
147
+ background: var(--color-neutral-50);
148
+ }
149
+
150
+ .calendar-cell.selectable:hover .date-number {
151
+ color: var(--color-neutral-800);
152
+ }
153
+
154
+ .calendar-cell.today {
155
+ border: 2px solid var(--color-brand-600);
156
+ }
157
+
158
+ .calendar-cell.today .date-number {
159
+ color: var(--color-neutral-500);
160
+ }
161
+
162
+ .calendar-cell.today:hover {
163
+ background: var(--color-brand-100);
164
+ }
165
+
166
+ .calendar-cell.today:hover .date-number {
167
+ color: var(--color-brand-600);
168
+ }
169
+
170
+ .calendar-cell.selected {
171
+ background: var(--color-brand-600);
172
+ }
173
+
174
+ .calendar-cell.selected .date-number {
175
+ color: var(--color-white);
176
+ font-weight: var(--weight-semibold);
177
+ }
178
+
179
+ .calendar-cell.selected:hover {
180
+ background: var(--color-brand-800);
181
+ }
182
+
183
+ .calendar-cell.selected:hover .date-number {
184
+ color: var(--color-white);
185
+ font-weight: var(--weight-semibold);
186
+ }
187
+
188
+ .calendar-cell.range-start {
189
+ background: var(--color-brand-600);
190
+ }
191
+
192
+ .calendar-cell.range-start .date-number {
193
+ color: var(--color-white);
194
+ font-weight: var(--weight-semibold);
195
+ }
196
+
197
+ .calendar-cell.range-start:hover {
198
+ background: var(--color-brand-800);
199
+ }
200
+
201
+ .calendar-cell.range-start:hover .date-number {
202
+ color: var(--color-white);
203
+ font-weight: var(--weight-semibold);
204
+ }
205
+
206
+ .calendar-cell.range-end {
207
+ background: var(--color-brand-600);
208
+ }
209
+
210
+ .calendar-cell.range-end .date-number {
211
+ color: var(--color-white);
212
+ font-weight: var(--weight-semibold);
213
+ }
214
+
215
+ .calendar-cell.range-end:hover {
216
+ background: var(--color-brand-800);
217
+ }
218
+
219
+ .calendar-cell.range-end:hover .date-number {
220
+ color: var(--color-white);
221
+ font-weight: var(--weight-semibold);
222
+ }
223
+
224
+ .calendar-cell.in-range {
225
+ background: var(--color-neutral-100);
226
+ border-radius: 0;
227
+ position: relative;
228
+ }
229
+
230
+ .calendar-cell.in-range .date-number {
231
+ color: var(--color-neutral-800);
232
+ font-weight: var(--weight-medium);
233
+ }
234
+
235
+ .calendar-cell.in-range:hover {
236
+ background: var(--color-neutral-200);
237
+ }
238
+
239
+ /* Fill gaps before in-range cells (except first in week) */
240
+ .calendar-cell.in-range:not(:nth-child(7n-6))::before {
241
+ content: '';
242
+ position: absolute;
243
+ top: 0;
244
+ left: -12px;
245
+ width: 12px;
246
+ height: 100%;
247
+ background: var(--color-neutral-100);
248
+ z-index: -1;
249
+ }
250
+
251
+ .calendar-cell.in-range:not(:nth-child(7n-6)):hover::before {
252
+ background: var(--color-neutral-200);
253
+ }
254
+
255
+ /* Create continuous range effect */
256
+ .calendar-cell.range-start {
257
+ position: relative;
258
+ }
259
+ .calendar-cell.range-start::before {
260
+ content: '';
261
+ position: absolute;
262
+ top: 0;
263
+ left: 12px;
264
+ width: 32px;
265
+ height: 100%;
266
+ background: var(--color-neutral-100);
267
+ z-index: -1;
268
+ }
269
+ .calendar-cell.range-end {
270
+ position: relative;
271
+ }
272
+ .calendar-cell.range-end::after {
273
+ content: '';
274
+ position: absolute;
275
+ top: 0;
276
+ left: -5px;
277
+ width: 30px;
278
+ height: 100%;
279
+ background: var(--color-neutral-100);
280
+ z-index: -1;
281
+ }
282
+
283
+ /* Range start at end of week (Sunday) should have right rounded corners */
284
+ .calendar-cell.range-start:nth-child(7n) {
285
+ border-top-right-radius: var(--radius-full);
286
+ border-bottom-right-radius: var(--radius-full);
287
+ }
288
+
289
+ /* Range end at start of week (Monday) should have left rounded corners */
290
+ .calendar-cell.range-end:nth-child(7n-6) {
291
+ border-top-left-radius: var(--radius-full);
292
+ border-bottom-left-radius: var(--radius-full);
293
+ }
294
+
295
+ /* In-range dates at start of week should have left rounded corners */
296
+ .calendar-cell.in-range:nth-child(7n-6) {
297
+ border-top-left-radius: var(--radius-full);
298
+ border-bottom-left-radius: var(--radius-full);
299
+ }
300
+
301
+ /* In-range dates at end of week should have right rounded corners */
302
+ .calendar-cell.in-range:nth-child(7n) {
303
+ border-top-right-radius: var(--radius-full);
304
+ border-bottom-right-radius: var(--radius-full);
305
+ }
306
+
307
+ /* Special case: when start and end are the same day */
308
+ .calendar-cell.range-start.range-end {
309
+ border-radius: var(--radius-full);
310
+ }
311
+
312
+ .calendar-cell.today.in-range {
313
+ background: var(--color-brand-50);
314
+ border: 2px solid var(--color-brand-600);
315
+ }
316
+
317
+ .calendar-cell.today.in-range .date-number {
318
+ color: var(--color-brand-600);
319
+ font-weight: var(--weight-medium);
320
+ }
321
+
322
+ .calendar-cell.today.in-range:hover {
323
+ background: var(--color-brand-100);
324
+ }
325
+
326
+ .calendar-cell.disabled {
327
+ cursor: not-allowed;
328
+ }
329
+
330
+ .calendar-cell.disabled .date-number {
331
+ color: var(--color-neutral-300);
332
+ }
333
+
334
+ .date-number {
335
+ position: relative;
336
+ z-index: 1;
337
+ }
@@ -0,0 +1,103 @@
1
+ /* ==========================================================================
2
+ DATE PICKER COMPONENT - MAIN PICKER WITH VARIANTS
3
+ ========================================================================== */
4
+
5
+ @import '../tokens/bellhop-animations.css';
6
+
7
+ .date-picker-container {
8
+ position: relative;
9
+ display: inline-block;
10
+ }
11
+
12
+ /* Chevron rotation animation for date picker buttons */
13
+ .date-picker-trigger .btn-icon-trailing .material-symbols-outlined {
14
+ transition: transform var(--animation-duration-fast)
15
+ var(--animation-ease-smooth);
16
+ display: inline-block;
17
+ }
18
+
19
+ .date-picker-trigger .dropdown-open .btn-icon-trailing .material-symbols-outlined {
20
+ transform: rotate(180deg);
21
+ }
22
+
23
+ /* Trigger styles */
24
+ .date-picker-trigger {
25
+ cursor: pointer;
26
+ }
27
+
28
+ .date-picker-trigger:disabled {
29
+ cursor: not-allowed;
30
+ }
31
+
32
+ /* Menu positioning */
33
+ .date-picker-menu-container {
34
+ position: absolute;
35
+ top: 100%;
36
+ left: 50%;
37
+ transform: translateX(-50%);
38
+ z-index: 1000;
39
+ margin-top: var(--spacing-xs);
40
+ width: 350px; /* Fixed width to match date picker content */
41
+ }
42
+
43
+ /* Date picker menu styles */
44
+ .date-picker-menu {
45
+ width: 100%;
46
+ position: relative;
47
+ }
48
+
49
+ /* Backdrop */
50
+ .date-picker-backdrop {
51
+ position: fixed;
52
+ top: 0;
53
+ left: 0;
54
+ width: 100%;
55
+ height: 100%;
56
+ z-index: 999;
57
+ background: transparent;
58
+ }
59
+
60
+ /* Input field container */
61
+ .input-field-container {
62
+ position: relative;
63
+ }
64
+
65
+ /* Input field specific styling */
66
+ .date-picker-trigger .input-text {
67
+ /* Allow input interaction */
68
+ }
69
+
70
+ .date-picker-trigger .input-text input {
71
+ cursor: text;
72
+ }
73
+
74
+ /* Style calendar icon when input is focused */
75
+ .date-picker-trigger .input-text.input-focused .leading-icon {
76
+ color: var(--color-brand-600) !important;
77
+ }
78
+
79
+ /* Calendar icon overlay for reliable click detection */
80
+ .calendar-icon-overlay {
81
+ position: absolute;
82
+ bottom: 8px; /* Position from bottom to account for label */
83
+ left: 16px; /* Adjust based on input padding */
84
+ width: 24px;
85
+ height: 24px;
86
+ cursor: pointer;
87
+ z-index: 10;
88
+ /* Invisible overlay positioned over calendar icon */
89
+ }
90
+
91
+ /* Footer - following dropdown menu pattern with divider */
92
+ .date-picker-footer {
93
+ border-top: 1px solid var(--color-neutral-200);
94
+ padding: var(--spacing-xl) var(--spacing-xl);
95
+ background: var(--color-white);
96
+ }
97
+
98
+ .date-picker-actions {
99
+ display: flex;
100
+ justify-content: flex-end;
101
+ gap: var(--spacing-lg);
102
+ }
103
+
@@ -0,0 +1,85 @@
1
+ /* ==========================================================================
2
+ DATE RANGE PICKER CONTENT COMPONENT - DUAL CALENDAR LAYOUT
3
+ ========================================================================== */
4
+
5
+ @import '../tokens/bellhop-animations.css';
6
+
7
+ .month-picker-content.scrollable {
8
+ padding: 0 !important;
9
+ }
10
+
11
+ /* Main container */
12
+ .date-range-picker-content {
13
+ display: flex;
14
+ flex-direction: column;
15
+ font-family: var(--font-inter);
16
+ width: fit-content; /* Fixed width for dual calendars */
17
+ }
18
+
19
+ /* Date pickers container - side by side layout */
20
+ .date-range-picker-content .date-pickers {
21
+ display: flex;
22
+ flex-direction: row;
23
+ width: 100%;
24
+ position: relative;
25
+ gap: var(--spacing-2xl);
26
+ }
27
+
28
+ /* Left picker - 328px width */
29
+ .date-range-picker-content .left-picker {
30
+ display: flex;
31
+ flex-direction: column;
32
+ width: 345px;
33
+ }
34
+
35
+ /* Right picker - 328px width */
36
+ .date-range-picker-content .right-picker {
37
+ display: flex;
38
+ flex-direction: column;
39
+ width: 345px;
40
+ }
41
+
42
+ /* Vertical divider between calendars */
43
+ .date-range-picker-content .date-pickers::after {
44
+ content: '';
45
+ position: absolute;
46
+ left: 50%;
47
+ top: 50%;
48
+ transform: translateX(-50%) translateY(-50%);
49
+ width: 1px;
50
+ height: 100%;
51
+ background: var(--color-neutral-200);
52
+ pointer-events: none;
53
+ z-index: 1;
54
+ }
55
+
56
+ /* Override date-picker-content for proper alignment in dual layout */
57
+ .date-range-picker-content .date-picker-content {
58
+ width: 100%;
59
+
60
+ }
61
+
62
+
63
+ /* Responsive adjustments */
64
+ @media (max-width: 768px) {
65
+ .date-range-picker-content {
66
+ width: 350px;
67
+ }
68
+
69
+ .date-range-picker-content .date-pickers {
70
+ flex-direction: column;
71
+ }
72
+
73
+ .date-range-picker-content .left-picker {
74
+ width: 100%;
75
+ }
76
+
77
+ .date-range-picker-content .right-picker {
78
+ width: 100%;
79
+ }
80
+
81
+ /* Hide vertical divider on mobile */
82
+ .date-range-picker-content .date-pickers::after {
83
+ display: none;
84
+ }
85
+ }
@@ -0,0 +1,72 @@
1
+ /* ==========================================================================
2
+ DATE RANGE PICKER COMPONENT
3
+ ========================================================================== */
4
+
5
+ @import '../tokens/bellhop-animations.css';
6
+
7
+ .picker-menu {
8
+ width: fit-content !important;
9
+ }
10
+
11
+ .date-range-picker-container {
12
+ position: relative;
13
+ display: inline-block;
14
+ }
15
+
16
+ /* Trigger styles */
17
+ .date-range-picker-trigger {
18
+ cursor: pointer;
19
+ }
20
+
21
+ .date-range-picker-trigger:disabled {
22
+ cursor: not-allowed;
23
+ }
24
+
25
+ /* Date range inputs container */
26
+ .date-range-inputs {
27
+ display: flex;
28
+ gap: var(--spacing-md);
29
+ align-items: flex-start;
30
+ cursor: pointer;
31
+ }
32
+
33
+ .date-range-inputs input {
34
+ cursor: pointer;
35
+ }
36
+
37
+ /* Menu positioning */
38
+ .date-range-picker-menu-container {
39
+ position: absolute;
40
+ top: 100%;
41
+ left: 50%;
42
+ transform: translateX(-50%);
43
+ z-index: 1000;
44
+ margin-top: var(--spacing-xs);
45
+ width: auto;
46
+ }
47
+
48
+ /* Backdrop */
49
+ .date-range-picker-backdrop {
50
+ position: fixed;
51
+ top: 0;
52
+ left: 0;
53
+ width: 100%;
54
+ height: 100%;
55
+ z-index: 999;
56
+ background: transparent;
57
+ }
58
+
59
+ /* Responsive adjustments */
60
+ @media (max-width: 768px) {
61
+ .date-range-inputs {
62
+ flex-direction: column;
63
+ gap: var(--spacing-sm);
64
+ }
65
+
66
+ .date-range-picker-menu-container {
67
+ left: 0;
68
+ transform: none;
69
+ width: 100vw;
70
+ max-width: 100vw;
71
+ }
72
+ }