@actabldesign/bellhop-styles 0.0.3 → 0.0.4

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 (73) hide show
  1. package/README.md +3 -3
  2. package/dist/index.css +1505 -0
  3. package/llms.txt +206 -0
  4. package/package.json +27 -23
  5. package/project.json +29 -0
  6. package/rollup.config.js +29 -0
  7. package/{base → src/base}/normalize.css +4 -0
  8. package/src/index.css +22 -0
  9. package/src/tokens/bellhop-animations.css +392 -0
  10. package/src/tokens/bellhop-global.css +175 -0
  11. package/src/tokens/bellhop-icons.css +77 -0
  12. package/src/tokens/bellhop-layout.css +216 -0
  13. package/src/tokens/bellhop-primary-colors.css +96 -0
  14. package/src/tokens/bellhop-radius.css +14 -0
  15. package/src/tokens/bellhop-secondary-colors.css +154 -0
  16. package/src/tokens/bellhop-shadows.css +55 -0
  17. package/src/tokens/bellhop-spacing.css +66 -0
  18. package/src/tokens/bellhop-styles.css +174 -0
  19. package/src/tokens/bellhop-typography.css +112 -0
  20. package/src/tokens/colors.json +737 -0
  21. package/src/tokens/colors.mdx +59 -0
  22. package/src/tokens/index.css +17 -0
  23. package/components/appbar.css +0 -167
  24. package/components/autocomplete-menu.css +0 -142
  25. package/components/avatar-add.css +0 -112
  26. package/components/avatar.css +0 -253
  27. package/components/badge-dot.css +0 -78
  28. package/components/badge.css +0 -337
  29. package/components/bar-chart-card.css +0 -261
  30. package/components/bar-chart.css +0 -149
  31. package/components/breadcrumbs.css +0 -136
  32. package/components/button.css +0 -266
  33. package/components/chart-tooltip.css +0 -96
  34. package/components/checkbox-label.css +0 -53
  35. package/components/checkbox.css +0 -127
  36. package/components/container-footer.css +0 -22
  37. package/components/container.css +0 -17
  38. package/components/date-picker-content.css +0 -337
  39. package/components/date-picker.css +0 -103
  40. package/components/date-range-picker-content.css +0 -85
  41. package/components/date-range-picker.css +0 -72
  42. package/components/dropdown-menu.css +0 -204
  43. package/components/dropdown.css +0 -126
  44. package/components/empty-state.css +0 -83
  45. package/components/featured-icon.css +0 -194
  46. package/components/illustrations.css +0 -120
  47. package/components/input-autocomplete.css +0 -158
  48. package/components/input-number.css +0 -2
  49. package/components/input-verification.css +0 -137
  50. package/components/input.css +0 -374
  51. package/components/loader-spinner.css +0 -421
  52. package/components/logo-box.css +0 -85
  53. package/components/month-picker-content.css +0 -190
  54. package/components/month-picker.css +0 -83
  55. package/components/nav-item.css +0 -110
  56. package/components/notification.css +0 -262
  57. package/components/page-navigation.css +0 -294
  58. package/components/picker-menu.css +0 -43
  59. package/components/pie-chart-card.css +0 -213
  60. package/components/pie-chart.css +0 -80
  61. package/components/product-switcher.css +0 -127
  62. package/components/property-switcher.css +0 -95
  63. package/components/radio-button-label.css +0 -53
  64. package/components/radio-button.css +0 -134
  65. package/components/sidebar.css +0 -178
  66. package/components/skeleton-loader.css +0 -47
  67. package/components/tag.css +0 -214
  68. package/components/textarea.css +0 -211
  69. package/components/toggle.css +0 -298
  70. package/components/tooltip.css +0 -85
  71. package/components/trend-chart-card.css +0 -189
  72. package/components/trend-chart.css +0 -94
  73. package/index.css +0 -8115
@@ -1,421 +0,0 @@
1
- /* ==========================================================================
2
- LOADER SPINNER COMPONENT
3
- Shared styles for all frameworks
4
- ========================================================================== */
5
-
6
- /* Overlay styles */
7
- .loader-overlay {
8
- position: fixed;
9
- top: 0;
10
- left: 0;
11
- width: 100%;
12
- height: 100%;
13
- background-color: rgba(0, 0, 0, 0.3);
14
- backdrop-filter: blur(4px);
15
- display: flex;
16
- align-items: center;
17
- justify-content: center;
18
- z-index: 9999;
19
- }
20
-
21
- .loader-overlay-content {
22
- display: flex;
23
- flex-direction: column;
24
- align-items: center;
25
- gap: var(--spacing-md);
26
- }
27
-
28
- /* Container styles */
29
- .loader-container {
30
- display: flex;
31
- flex-direction: column;
32
- align-items: center;
33
- gap: var(--spacing-sm);
34
- }
35
-
36
- .loader-spinner {
37
- position: relative;
38
- display: inline-block;
39
- }
40
-
41
- /* Message styles */
42
- .loader-message {
43
- color: var(--color-neutral-700);
44
- font-size: var(--text-sm-size);
45
- line-height: var(--text-sm-line);
46
- font-weight: var(--weight-medium);
47
- text-align: center;
48
- margin-top: var(--spacing-xs);
49
- }
50
-
51
- .loader-overlay .loader-message {
52
- color: var(--color-white);
53
- }
54
-
55
- /* =========================
56
- CIRCULAR VARIANT - World Class Smooth
57
- ========================= */
58
- .spinner-circular {
59
- animation: circular-rotate 2s linear infinite;
60
- will-change: transform;
61
- }
62
-
63
- .circular-svg {
64
- display: block;
65
- transform-origin: 50% 50%;
66
- }
67
-
68
- .circular-path {
69
- stroke-dasharray: 90, 150;
70
- stroke-dashoffset: 0;
71
- animation: circular-dash 1.5s ease-in-out infinite;
72
- transform-origin: 50% 50%;
73
- }
74
-
75
- /* Size variations for circular */
76
- .size-sm .circular-svg {
77
- width: 20px;
78
- height: 20px;
79
- }
80
-
81
- .size-sm .circular-path {
82
- stroke-width: 2;
83
- }
84
-
85
- .size-md .circular-svg {
86
- width: 30px;
87
- height: 30px;
88
- }
89
-
90
- .size-md .circular-path {
91
- stroke-width: 3;
92
- }
93
-
94
- .size-lg .circular-svg {
95
- width: 40px;
96
- height: 40px;
97
- }
98
-
99
- .size-lg .circular-path {
100
- stroke-width: 3;
101
- }
102
-
103
- .size-xl .circular-svg {
104
- width: 60px;
105
- height: 60px;
106
- }
107
-
108
- .size-xl .circular-path {
109
- stroke-width: 4;
110
- }
111
-
112
- /* Color variations for circular */
113
- .color-brand .circular-path {
114
- stroke: var(--color-brand-600);
115
- }
116
-
117
- .color-neutral .circular-path {
118
- stroke: var(--color-neutral-600);
119
- }
120
-
121
- .color-white .circular-path {
122
- stroke: var(--color-white);
123
- }
124
-
125
- @keyframes circular-rotate {
126
- 100% {
127
- transform: rotate(360deg);
128
- }
129
- }
130
-
131
- @keyframes circular-dash {
132
- 0% {
133
- stroke-dasharray: 1, 150;
134
- stroke-dashoffset: 0;
135
- }
136
- 50% {
137
- stroke-dasharray: 90, 150;
138
- stroke-dashoffset: -35;
139
- }
140
- 100% {
141
- stroke-dasharray: 90, 150;
142
- stroke-dashoffset: -124;
143
- }
144
- }
145
-
146
- /* =========================
147
- GRADIENT VARIANT - BellhopOS Sidebar Style
148
- ========================= */
149
- .spinner-gradient {
150
- animation: gradient-rotate 2s linear infinite;
151
- will-change: transform;
152
- }
153
-
154
- .gradient-svg {
155
- display: block;
156
- transform-origin: 50% 50%;
157
- }
158
-
159
- .gradient-path {
160
- stroke-dasharray: 90, 150;
161
- stroke-dashoffset: 0;
162
- animation: gradient-dash 1.5s ease-in-out infinite;
163
- transform-origin: 50% 50%;
164
- }
165
-
166
- /* Size variations for gradient */
167
- .size-sm .gradient-svg {
168
- width: 20px;
169
- height: 20px;
170
- }
171
-
172
- .size-sm .gradient-path {
173
- stroke-width: 3;
174
- }
175
-
176
- .size-md .gradient-svg {
177
- width: 30px;
178
- height: 30px;
179
- }
180
-
181
- .size-md .gradient-path {
182
- stroke-width: 4;
183
- }
184
-
185
- .size-lg .gradient-svg {
186
- width: 40px;
187
- height: 40px;
188
- }
189
-
190
- .size-lg .gradient-path {
191
- stroke-width: 4;
192
- }
193
-
194
- .size-xl .gradient-svg {
195
- width: 60px;
196
- height: 60px;
197
- }
198
-
199
- .size-xl .gradient-path {
200
- stroke-width: 5;
201
- }
202
-
203
- @keyframes gradient-rotate {
204
- 100% {
205
- transform: rotate(360deg);
206
- }
207
- }
208
-
209
- @keyframes gradient-dash {
210
- 0% {
211
- stroke-dasharray: 1, 150;
212
- stroke-dashoffset: 0;
213
- }
214
- 50% {
215
- stroke-dasharray: 90, 150;
216
- stroke-dashoffset: -35;
217
- }
218
- 100% {
219
- stroke-dasharray: 90, 150;
220
- stroke-dashoffset: -124;
221
- }
222
- }
223
-
224
- @keyframes gradient-glow {
225
- 0%,
226
- 100% {
227
- filter: drop-shadow(
228
- 0 0 8px rgba(var(--color-brand-600-rgb, 59, 130, 246), 0.3)
229
- );
230
- }
231
- 50% {
232
- filter: drop-shadow(
233
- 0 0 16px rgba(var(--color-accent-300-rgb, 125, 211, 252), 0.6)
234
- );
235
- }
236
- }
237
-
238
- /* =========================
239
- DOTS VARIANT - Simple Fallback
240
- ========================= */
241
- .spinner-dots {
242
- display: flex;
243
- align-items: center;
244
- gap: 4px;
245
- }
246
-
247
- .dot {
248
- border-radius: 50%;
249
- animation: dots-bounce 1.4s ease-in-out infinite both;
250
- }
251
-
252
- .dot-1 {
253
- animation-delay: -0.32s;
254
- }
255
- .dot-2 {
256
- animation-delay: -0.16s;
257
- }
258
- .dot-3 {
259
- animation-delay: 0;
260
- }
261
-
262
- /* Size variations for dots */
263
- .size-sm .dot {
264
- width: 4px;
265
- height: 4px;
266
- }
267
-
268
- .size-md .dot {
269
- width: 6px;
270
- height: 6px;
271
- }
272
-
273
- .size-lg .dot {
274
- width: 8px;
275
- height: 8px;
276
- }
277
-
278
- .size-xl .dot {
279
- width: 12px;
280
- height: 12px;
281
- }
282
-
283
- /* Color variations for dots */
284
- .color-brand .dot {
285
- background-color: var(--color-brand-600);
286
- }
287
-
288
- .color-neutral .dot {
289
- background-color: var(--color-neutral-600);
290
- }
291
-
292
- .color-white .dot {
293
- background-color: var(--color-white);
294
- }
295
-
296
- @keyframes dots-bounce {
297
- 0%,
298
- 80%,
299
- 100% {
300
- transform: scale(0);
301
- }
302
- 40% {
303
- transform: scale(1);
304
- }
305
- }
306
-
307
- /* =========================
308
- PULSE VARIANT - Simple Fallback
309
- ========================= */
310
- .spinner-pulse {
311
- position: relative;
312
- display: inline-block;
313
- }
314
-
315
- .pulse-ring {
316
- position: absolute;
317
- border-radius: 50%;
318
- opacity: 1;
319
- animation: pulse-scale 2s ease-out infinite;
320
- border-width: 2px;
321
- border-style: solid;
322
- top: 50%;
323
- left: 50%;
324
- transform: translate(-50%, -50%);
325
- }
326
-
327
- .pulse-1 {
328
- animation-delay: 0s;
329
- }
330
- .pulse-2 {
331
- animation-delay: -0.6s;
332
- }
333
- .pulse-3 {
334
- animation-delay: -1.2s;
335
- }
336
-
337
- /* Size variations for pulse */
338
- .size-sm .pulse-ring {
339
- width: 20px;
340
- height: 20px;
341
- border-width: 1px;
342
- }
343
-
344
- .size-md .pulse-ring {
345
- width: 30px;
346
- height: 30px;
347
- border-width: 2px;
348
- }
349
-
350
- .size-lg .pulse-ring {
351
- width: 40px;
352
- height: 40px;
353
- border-width: 2px;
354
- }
355
-
356
- .size-xl .pulse-ring {
357
- width: 60px;
358
- height: 60px;
359
- border-width: 3px;
360
- }
361
-
362
- /* Color variations for pulse */
363
- .color-brand .pulse-ring {
364
- border-color: var(--color-brand-600);
365
- }
366
-
367
- .color-neutral .pulse-ring {
368
- border-color: var(--color-neutral-600);
369
- }
370
-
371
- .color-white .pulse-ring {
372
- border-color: var(--color-white);
373
- }
374
-
375
- @keyframes pulse-scale {
376
- 0% {
377
- transform: translate(-50%, -50%) scale(0);
378
- opacity: 1;
379
- }
380
- 100% {
381
- transform: translate(-50%, -50%) scale(1);
382
- opacity: 0;
383
- }
384
- }
385
-
386
- /* Hover effects - Ultra smooth acceleration */
387
- .loader-container:hover .spinner-circular {
388
- animation-duration: 1.2s;
389
- }
390
-
391
- .loader-container:hover .circular-path {
392
- animation-duration: 0.8s;
393
- }
394
-
395
- .loader-container:hover .spinner-gradient {
396
- animation-duration: 1s;
397
- }
398
-
399
- .loader-container:hover .gradient-path {
400
- animation-duration: 0.6s;
401
- }
402
-
403
- .loader-container:hover .dot {
404
- animation-duration: 0.8s;
405
- }
406
-
407
- .loader-container:hover .pulse-ring {
408
- animation-duration: 1.2s;
409
- }
410
-
411
- /* Performance optimizations */
412
- .spinner-circular,
413
- .spinner-gradient {
414
- backface-visibility: hidden;
415
- perspective: 1000px;
416
- }
417
-
418
- .circular-svg,
419
- .gradient-svg {
420
- transform: translateZ(0);
421
- }
@@ -1,85 +0,0 @@
1
- .logo-box {
2
- display: flex;
3
- flex-direction: column;
4
- align-items: center;
5
- justify-content: flex-start;
6
- position: relative;
7
- width: 40px;
8
- flex-shrink: 0;
9
- isolation: isolate;
10
- }
11
-
12
- .logo-active {
13
- background-color: var(--color-brand-600);
14
- box-sizing: border-box;
15
- display: flex;
16
- gap: var(--spacing-lg);
17
- align-items: center;
18
- justify-content: center;
19
- padding: var(--spacing-sm);
20
- position: relative;
21
- border-radius: var(--radius-md);
22
- flex-shrink: 0;
23
- width: 40px;
24
- height: 40px;
25
- z-index: 2;
26
- transition: background-color 0.3s ease;
27
- cursor: pointer;
28
- }
29
-
30
- /* Hover effect for logo-active */
31
- .logo-box:hover .logo-active,
32
- .logo-box.dropdown-open .logo-active {
33
- background-color: var(--color-brand-700);
34
- }
35
-
36
- .logo {
37
- overflow: hidden;
38
- position: relative;
39
- flex-shrink: 0;
40
- width: 32px;
41
- height: 32px;
42
- background-size: contain;
43
- background-repeat: no-repeat;
44
- background-position: center;
45
- transition: background-image 0.4s cubic-bezier(0.08, 0.52, 0.52, 1);
46
- }
47
-
48
- /* Logo variations - Background images must be configured by the consuming application */
49
- .logo-actabl {
50
- /* background-image should be set by consuming application */
51
- }
52
-
53
- .logo-al {
54
- /* background-image should be set by consuming application */
55
- }
56
-
57
- .logo-he {
58
- /* background-image should be set by consuming application */
59
- }
60
-
61
- .logo-ps {
62
- /* background-image should be set by consuming application */
63
- }
64
-
65
- .logo-tr {
66
- /* background-image should be set by consuming application */
67
- }
68
-
69
- .logo-more-products {
70
- position: absolute;
71
- background-color: var(--color-brand-200);
72
- right: 2px;
73
- bottom: -4px;
74
- border-radius: 5px;
75
- width: 36px;
76
- height: 35px;
77
- z-index: 1;
78
- transition: transform 0.3s ease;
79
- }
80
-
81
- /* Slide-up animation for logo-more-products */
82
- .logo-box:hover .logo-more-products,
83
- .logo-box.dropdown-open .logo-more-products {
84
- transform: translateY(-4px);
85
- }
@@ -1,190 +0,0 @@
1
- /* ==========================================================================
2
- MONTH PICKER CONTENT COMPONENT - REUSABLE CALENDAR CONTENT
3
- ========================================================================== */
4
-
5
- @import '../tokens/bellhop-animations.css';
6
-
7
- /* Content area - can be scrollable or not based on parent needs */
8
- .month-picker-content {
9
- width: 100%;
10
- overflow-x: hidden;
11
- /*padding: var(--spacing-xl);*/
12
- font-family: var(--font-inter);
13
- }
14
-
15
- /* Extend animation duration for smoother effect */
16
- .month-picker-content.animate-slide-up-enter {
17
- animation-duration: var(--animation-duration-slow);
18
- }
19
-
20
- .month-picker-content.scrollable {
21
- max-height: 340px;
22
- overflow-y: auto;
23
- padding: 0 var(--spacing-xl);
24
- position: relative;
25
- }
26
-
27
- /* Custom scrollbar styling */
28
- .month-picker-content.scrollable::-webkit-scrollbar {
29
- width: var(--spacing-xs);
30
- }
31
-
32
- .month-picker-content.scrollable::-webkit-scrollbar-track {
33
- background: var(--color-neutral-50);
34
- border-radius: var(--radius-xs);
35
- }
36
-
37
- .month-picker-content.scrollable::-webkit-scrollbar-thumb {
38
- background: var(--color-neutral-200);
39
- border-radius: var(--radius-xs);
40
- }
41
-
42
- .month-picker-content.scrollable::-webkit-scrollbar-thumb:hover {
43
- background: var(--color-neutral-300);
44
- }
45
-
46
- /* Firefox scrollbar */
47
- .month-picker-content.scrollable {
48
- scrollbar-width: thin;
49
- scrollbar-color: var(--color-neutral-200) transparent;
50
- }
51
-
52
- /* Calendar container */
53
- .calendar {
54
- display: flex;
55
- flex-direction: column;
56
- width: 100%;
57
- padding: var(--spacing-lg);
58
- }
59
-
60
- /* Year Section - Contains year button + months row */
61
- .year-section {
62
- display: flex;
63
- flex-direction: column;
64
- gap: var(--spacing-xs);
65
- width: 100%;
66
- }
67
-
68
- .year-month-container {
69
- display: flex;
70
- flex-direction: row;
71
- width: 100%;
72
- align-items: flex-start;
73
- }
74
-
75
- /* Year Label - positioned on left */
76
- .year-label {
77
- width: auto;
78
- height: auto;
79
- display: flex;
80
- align-items: flex-start;
81
- justify-content: flex-start;
82
- font-family: var(--font-inter);
83
- font-weight: var(--weight-bold);
84
- font-size: var(--text-sm-size);
85
- line-height: var(--text-md-line);
86
- color: var(--color-neutral-700);
87
- flex-shrink: 0;
88
- min-width: 50px;
89
- padding: var(--spacing-sm) 0;
90
- }
91
-
92
- /* Months Grid - 2 rows of 6 months each */
93
- .months-row {
94
- display: flex;
95
- flex-direction: column;
96
- gap: var(--spacing-sm);
97
- flex: 1;
98
- width: 100%;
99
- max-width: 300px;
100
- }
101
- /* Month Button - 40x40px circular */
102
- .month-button {
103
- width: 40px;
104
- height: 40px;
105
- border-radius: var(--radius-full);
106
- border: 2px solid transparent;
107
- background: transparent;
108
- display: flex;
109
- align-items: center;
110
- justify-content: center;
111
- font-family: var(--font-inter);
112
- font-weight: var(--weight-medium);
113
- font-size: var(--text-sm-size);
114
- line-height: var(--leading-sm);
115
- color: var(--color-neutral-500);
116
- cursor: pointer;
117
- transition: all var(--animation-duration-fast) var(--animation-easing-ease);
118
- flex-shrink: 0;
119
- text-align: center;
120
- overflow: hidden;
121
- }
122
-
123
- .month-row {
124
- display: flex;
125
- gap: var(--spacing-sm);
126
- justify-content: flex-start;
127
- }
128
-
129
- .month-button:hover:not(.inactive):not(.selected):not(:disabled):not(.today) {
130
- background: var(--color-neutral-50);
131
- color: var(--color-neutral-800);
132
- }
133
-
134
- /* Selected state - blue background */
135
- .month-button.selected {
136
- background: var(--color-brand-600);
137
- color: var(--color-white);
138
- font-weight: var(--weight-semibold);
139
- }
140
-
141
- /* Today's date state - blue border to match date picker */
142
- .month-button.today:not(.selected) {
143
- border-color: var(--color-brand-600);
144
- }
145
-
146
- .month-button.today:not(.selected):hover {
147
- background: var(--color-brand-100);
148
- color: var(--color-brand-600);
149
- }
150
-
151
- /* Inactive/disabled state */
152
- .month-button.inactive,
153
- .month-button:disabled {
154
- opacity: 0.4;
155
- cursor: not-allowed;
156
- color: var(--color-neutral-400);
157
- }
158
-
159
- .month-button:disabled:hover {
160
- background: transparent;
161
- }
162
-
163
- /* Section Divider - Between year sections */
164
- .section-divider {
165
- width: 100%;
166
- margin: var(--spacing-xl) 0;
167
- }
168
-
169
- .divider-container {
170
- width: 100%;
171
- display: flex;
172
- justify-content: center;
173
- }
174
-
175
- .divider-line {
176
- width: 100%;
177
- height: 1px;
178
- background: var(--color-neutral-200);
179
- }
180
-
181
- /* Focus states for accessibility - completely disable outline */
182
- .month-button:focus {
183
- outline: none;
184
- }
185
-
186
- /* Keyboard navigation state - will be added via JavaScript */
187
- .month-button.keyboard-focused {
188
- outline: var(--border-width-md) solid var(--color-brand-500);
189
- outline-offset: var(--spacing-xs);
190
- }