@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,127 +0,0 @@
1
- /* Container wrapper */
2
- .product-switcher-container {
3
- position: fixed;
4
- z-index: 10000;
5
- animation: popoverSlideIn 0.3s ease-out;
6
- transform-origin: top center;
7
- }
8
-
9
- /* Backdrop */
10
- .product-switcher-backdrop {
11
- position: fixed;
12
- top: 0;
13
- left: 0;
14
- right: 0;
15
- bottom: 0;
16
- background: transparent;
17
- z-index: 9999;
18
- }
19
-
20
- /* Product Switcher Popover */
21
- .product-switcher-popover {
22
- background: rgba(255, 255, 255, 0.9);
23
- border: 1px solid #eff1f5;
24
- border-radius: var(--radius-md);
25
- -webkit-backdrop-filter: blur(8px);
26
- backdrop-filter: blur(3px);
27
- box-shadow: 0px 24px 48px -12px rgba(64, 73, 104, 0.1);
28
- padding: var(--spacing-lg);
29
- display: flex;
30
- flex-direction: column;
31
- gap: var(--spacing-md);
32
- min-width: 250px;
33
- position: relative;
34
- z-index: 10001;
35
- }
36
-
37
- @keyframes popoverSlideIn {
38
- 0% {
39
- opacity: 0;
40
- transform: translateY(-12px);
41
- }
42
- 100% {
43
- opacity: 1;
44
- transform: translateY(0);
45
- }
46
- }
47
-
48
- .product-switcher-container.closing {
49
- animation: popoverSlideOut 0.2s ease-in forwards;
50
- }
51
-
52
- @keyframes popoverSlideOut {
53
- 0% {
54
- opacity: 1;
55
- transform: translateY(0);
56
- }
57
- 100% {
58
- opacity: 0;
59
- transform: translateY(-12px);
60
- }
61
- }
62
-
63
- /* Product Item */
64
- .product-item {
65
- display: flex;
66
- align-items: center;
67
- gap: var(--spacing-lg);
68
- width: 100%;
69
- padding: var(--spacing-xs);
70
- border-radius: var(--radius-md);
71
- cursor: pointer;
72
- transition: background-color 0.2s ease;
73
- }
74
-
75
- .product-item:hover {
76
- background-color: var(--color-neutral-100);
77
- }
78
-
79
- .product-item.current {
80
- background-color: rgba(38, 66, 207, 0.1);
81
- }
82
-
83
- /* Product Icon Container */
84
- .product-icon-container {
85
- width: 36px;
86
- height: 36px;
87
- background: #ffffff;
88
- border: 0.77px solid #dcdfea;
89
- border-radius: var(--radius-md);
90
- display: flex;
91
- align-items: center;
92
- justify-content: center;
93
- flex-shrink: 0;
94
- padding: var(--spacing-xs);
95
- }
96
-
97
- .product-icon {
98
- width: 100%;
99
- height: 100%;
100
- object-fit: contain;
101
- object-position: center;
102
- filter: brightness(0) saturate(100%) invert(27%) sepia(51%) saturate(2878%)
103
- hue-rotate(222deg) brightness(97%) contrast(101%);
104
- }
105
-
106
- /* Product Info */
107
- .product-info {
108
- display: flex;
109
- flex-direction: column;
110
- flex: 1;
111
- }
112
-
113
- .product-name {
114
- font-family: var(--font-inter);
115
- font-weight: var(--weight-semibold);
116
- font-size: var(--text-md-size);
117
- line-height: var(--text-md-line);
118
- color: var(--color-neutral-900);
119
- }
120
-
121
- .product-description {
122
- font-family: var(--font-inter);
123
- font-weight: var(--weight-medium);
124
- font-size: var(--text-sm-size);
125
- line-height: var(--text-sm-line);
126
- color: var(--color-neutral-500);
127
- }
@@ -1,95 +0,0 @@
1
- .property-switcher {
2
- position: relative;
3
- display: inline-block;
4
- width: 180px;
5
- }
6
-
7
- .property-selector {
8
- display: flex;
9
- align-items: center;
10
- justify-content: flex-start;
11
- gap: var(--spacing-xxs);
12
- padding: var(--spacing-xxs) var(--spacing-xs);
13
- margin: var(--spacing-none) var(--spacing-xs);
14
- border: none;
15
- background: transparent;
16
- cursor: pointer;
17
- border-radius: var(--radius-sm);
18
- transition: background-color 0.2s ease;
19
- width: 100%;
20
- height: 32px;
21
- min-width: 0;
22
- }
23
-
24
- .property-selector:hover {
25
- background-color: var(--color-neutral-100);
26
- }
27
-
28
- .property-name {
29
- font-family: var(--font-inter);
30
- font-weight: var(--weight-medium);
31
- font-size: var(--text-sm-size);
32
- line-height: var(--text-sm-line);
33
- color: var(--color-neutral-600);
34
- text-overflow: ellipsis;
35
- overflow: hidden;
36
- white-space: nowrap;
37
- flex-grow: 1;
38
- min-width: 0;
39
- max-width: 180px;
40
- }
41
-
42
- .expand-icon {
43
- font-size: var(--sp-5);
44
- width: var(--sp-5);
45
- height: var(--sp-5);
46
- flex-shrink: 0;
47
- color: var(--color-neutral-600);
48
- transition: color 0.2s ease;
49
- }
50
-
51
- .popover-container {
52
- position: absolute;
53
- top: 100%;
54
- left: 0;
55
- z-index: 1000;
56
- margin-top: var(--spacing-xs);
57
- animation: popoverSlideIn 0.3s ease-out;
58
- transform-origin: top center;
59
- }
60
-
61
- @keyframes popoverSlideIn {
62
- 0% {
63
- opacity: 0;
64
- transform: translateY(calc(-1 * var(--spacing-lg)));
65
- }
66
- 100% {
67
- opacity: 1;
68
- transform: translateY(0);
69
- }
70
- }
71
-
72
- .popover-container.closing {
73
- animation: popoverSlideOut 0.2s ease-in forwards;
74
- }
75
-
76
- @keyframes popoverSlideOut {
77
- 0% {
78
- opacity: 1;
79
- transform: translateY(0);
80
- }
81
- 100% {
82
- opacity: 0;
83
- transform: translateY(calc(-1 * var(--spacing-lg)));
84
- }
85
- }
86
-
87
- /* Dropdown menu positioning (same as popover) */
88
- .dropdown-menu-container {
89
- position: absolute;
90
- top: 100%;
91
- left: 0;
92
- z-index: 1000;
93
- margin-top: var(--spacing-xs);
94
- max-height: 320px; /* Height to fit exactly 5 items without scrolling */
95
- }
@@ -1,53 +0,0 @@
1
- .radio-button-label-wrapper {
2
- display: flex;
3
- align-items: flex-start;
4
- gap: 8px;
5
- cursor: pointer;
6
- user-select: none;
7
- }
8
-
9
- .radio-button-label-wrapper.radio-button-label-disabled {
10
- cursor: not-allowed;
11
- }
12
-
13
- /* Align radio button with the label text baseline */
14
- .radio-button-label-wrapper .radio {
15
- margin-top: 2px;
16
- }
17
-
18
- .radio-button-label-wrapper .radio-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
- }
@@ -1,134 +0,0 @@
1
- /* ==========================================================================
2
- RADIO BUTTON COMPONENT STYLES - Following Figma Design
3
- ========================================================================== */
4
-
5
- .radio {
6
- display: inline-flex;
7
- align-items: center;
8
- justify-content: center;
9
- cursor: pointer;
10
- outline: none;
11
- user-select: none;
12
- transition: background-color 0.3s cubic-bezier(0.4, 0, 0.2, 1),
13
- border-color 0.3s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.2s ease;
14
- box-sizing: border-box;
15
- background: var(--color-white);
16
- border: 2px solid var(--color-neutral-300);
17
- border-radius: var(--radius-full);
18
- position: relative;
19
- }
20
-
21
- /* Size Variants - Following Figma Specs */
22
- .radio-sm {
23
- width: 16px;
24
- height: 16px;
25
- }
26
-
27
- .radio-md {
28
- width: 20px;
29
- height: 20px;
30
- }
31
-
32
- /* State: Default (unselected) */
33
- .radio {
34
- border-color: var(--color-neutral-300);
35
- }
36
-
37
- /* State: Selected */
38
- .radio.radio-selected {
39
- background: var(--color-brand-600);
40
- border-color: var(--color-brand-600);
41
- animation: fillExpand 0.3s cubic-bezier(0.4, 0, 0.2, 1);
42
- }
43
-
44
- /* State: Hover */
45
- .radio:hover:not(.radio-disabled) {
46
- background: var(--color-neutral-100);
47
- border-color: var(--color-neutral-300);
48
- }
49
-
50
- .radio.radio-selected:hover:not(.radio-disabled) {
51
- background: var(--color-brand-600);
52
- border-color: var(--color-brand-600);
53
- }
54
-
55
- /* State: Focused */
56
- .radio.radio-focused:not(.radio-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
- .radio.radio-selected.radio-focused:not(.radio-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
- .radio.radio-disabled {
71
- background: var(--color-neutral-50);
72
- border-color: var(--color-neutral-300);
73
- cursor: not-allowed;
74
- opacity: 1;
75
- }
76
-
77
- .radio.radio-selected.radio-disabled {
78
- background: var(--color-neutral-50);
79
- border: 2px solid var(--color-neutral-300);
80
- }
81
-
82
- /* Radio Dot (inner circle) */
83
- .radio-dot {
84
- width: 0;
85
- height: 0;
86
- border-radius: var(--radius-full);
87
- background: var(--color-white);
88
- position: absolute;
89
- top: 50%;
90
- left: 50%;
91
- transform: translate(-50%, -50%);
92
- transition: width 0.3s cubic-bezier(0.4, 0, 0.2, 1),
93
- height 0.3s cubic-bezier(0.4, 0, 0.2, 1);
94
- }
95
-
96
- /* Radio Dot animation when selected */
97
- .radio.radio-selected .radio-dot {
98
- width: 6px;
99
- height: 6px;
100
- }
101
-
102
- /* Radio Dot for small size when selected */
103
- .radio-sm.radio-selected .radio-dot {
104
- width: 4px;
105
- height: 4px;
106
- }
107
-
108
- /* Disabled radio dot */
109
- .radio-disabled .radio-dot {
110
- background: var(--color-neutral-300);
111
- }
112
-
113
- /* Focus outline for accessibility */
114
- .radio:focus {
115
- outline: none;
116
- }
117
-
118
- .radio:focus:not(.radio-disabled) {
119
- box-shadow: 0px 0px 0px 4px var(--color-brand-100),
120
- 0px 0px 0px 2px var(--color-white);
121
- }
122
-
123
- /* Animation for blue fill effect */
124
- @keyframes fillExpand {
125
- 0% {
126
- transform: scale(0.95);
127
- }
128
- 50% {
129
- transform: scale(1.05);
130
- }
131
- 100% {
132
- transform: scale(1);
133
- }
134
- }
@@ -1,178 +0,0 @@
1
- /* ==========================================================================
2
- SIDEBAR COMPONENT
3
- Vertical navigation sidebar with gradient bar
4
- ========================================================================== */
5
-
6
- .sidebar-container {
7
- width: fit-content;
8
- height: 100vh;
9
- background-color: var(--color-white);
10
- position: relative;
11
- display: flex;
12
- }
13
-
14
- .navigation {
15
- background-color: var(--color-white);
16
- display: flex;
17
- height: 100%;
18
- align-items: flex-start;
19
- justify-content: flex-start;
20
- position: relative;
21
- border-right: 1px solid var(--color-neutral-200);
22
- z-index: 100;
23
- }
24
-
25
- /* Gradient bar on the left edge */
26
- .gradient-bar {
27
- position: relative;
28
- width: var(--spacing-xs);
29
- height: 100%;
30
- flex-shrink: 0;
31
- }
32
-
33
- .detail-bar {
34
- position: absolute;
35
- background: linear-gradient(
36
- 180deg,
37
- var(--color-accent-300) 0%,
38
- var(--color-brand-400) 51%,
39
- var(--color-brand-800) 100%
40
- );
41
- inset: 0;
42
- }
43
-
44
- /* Main sidebar content */
45
- .sidebar-content {
46
- box-sizing: border-box;
47
- display: flex;
48
- flex-direction: column;
49
- gap: var(--spacing-2xl);
50
- height: 100%;
51
- align-items: center;
52
- justify-content: flex-start;
53
- padding: var(--spacing-md) var(--spacing-md) var(--spacing-lg)
54
- var(--spacing-md);
55
- position: relative;
56
- flex-shrink: 0;
57
- width: 60px;
58
- }
59
-
60
- /* Navigation section that contains search and nav items */
61
- .navigation-section {
62
- flex: 1 1 0%;
63
- display: flex;
64
- flex-direction: column;
65
- gap: var(--spacing-xl);
66
- flex-grow: 1;
67
- align-items: center;
68
- justify-content: flex-start;
69
- min-height: 0;
70
- position: relative;
71
- flex-shrink: 0;
72
- width: 100%;
73
- overflow-y: auto;
74
- overflow-x: hidden;
75
- }
76
-
77
- /* Search container */
78
- .search-container {
79
- display: flex;
80
- flex-direction: column;
81
- align-items: center;
82
- justify-content: center;
83
- position: relative;
84
- flex-shrink: 0;
85
- width: 100%;
86
- }
87
-
88
- /* Nav items container */
89
- .nav-items {
90
- display: flex;
91
- flex-direction: column;
92
- gap: var(--spacing-xs);
93
- align-items: center;
94
- justify-content: flex-start;
95
- position: relative;
96
- flex-shrink: 0;
97
- width: 100%;
98
- }
99
-
100
- /* Footer section with footer nav and avatar */
101
- .sidebar-footer {
102
- display: flex;
103
- flex-direction: column;
104
- gap: var(--spacing-lg);
105
- align-items: center;
106
- justify-content: end;
107
- position: relative;
108
- flex-shrink: 0;
109
- width: 100%;
110
- }
111
-
112
- .footer-navigation {
113
- display: flex;
114
- flex-direction: column;
115
- gap: var(--spacing-xs);
116
- align-items: center;
117
- justify-content: center;
118
- position: relative;
119
- flex-shrink: 0;
120
- width: 100%;
121
- }
122
-
123
- /* Collapsed state */
124
- .sidebar-collapsed .sidebar-content {
125
- width: 60px;
126
- }
127
-
128
- .sidebar-collapsed .nav-item-label {
129
- display: none;
130
- }
131
-
132
- /* Scrollbar styling for navigation section */
133
- .navigation-section::-webkit-scrollbar {
134
- width: 4px;
135
- }
136
-
137
- .navigation-section::-webkit-scrollbar-track {
138
- background: transparent;
139
- }
140
-
141
- .navigation-section::-webkit-scrollbar-thumb {
142
- background: var(--color-neutral-200);
143
- border-radius: var(--radius-xs);
144
- }
145
-
146
- .navigation-section::-webkit-scrollbar-thumb:hover {
147
- background: var(--color-neutral-300);
148
- }
149
-
150
- /* Firefox scrollbar */
151
- .navigation-section {
152
- scrollbar-width: thin;
153
- scrollbar-color: var(--color-neutral-200) transparent;
154
- }
155
-
156
- /* Expanded state (optional future enhancement) */
157
- .sidebar-expanded .sidebar-content {
158
- width: 240px;
159
- }
160
-
161
- .sidebar-expanded .nav-items {
162
- align-items: flex-start;
163
- }
164
-
165
- .sidebar-expanded .nav-item {
166
- width: 100%;
167
- flex-direction: row;
168
- justify-content: flex-start;
169
- gap: var(--spacing-md);
170
- }
171
-
172
- .sidebar-expanded .nav-item-label {
173
- display: block;
174
- text-align: left;
175
- font-size: var(--text-sm-size);
176
- height: auto;
177
- line-height: var(--text-sm-line);
178
- }
@@ -1,47 +0,0 @@
1
- /* ==========================================================================
2
- SKELETON LOADER COMPONENT
3
- Shared styles for all frameworks
4
- ========================================================================== */
5
-
6
- .skeleton {
7
- display: inline-block;
8
- background: linear-gradient(
9
- 90deg,
10
- rgba(0, 0, 0, 0.06) 25%,
11
- rgba(0, 0, 0, 0.03) 50%,
12
- rgba(0, 0, 0, 0.06) 75%
13
- );
14
- background-size: 400% 100%;
15
- animation: shimmer 1.5s ease-in-out infinite;
16
- border-radius: var(--radius-sm);
17
- line-height: 1;
18
- }
19
-
20
- .skeleton-circle {
21
- border-radius: 50%;
22
- }
23
-
24
- .skeleton::before {
25
- content: '\00a0';
26
- }
27
-
28
- @keyframes shimmer {
29
- 0% {
30
- background-position: 100% 50%;
31
- }
32
- 100% {
33
- background-position: 0 50%;
34
- }
35
- }
36
-
37
- .visually-hidden {
38
- position: absolute;
39
- width: 1px;
40
- height: 1px;
41
- padding: 0;
42
- margin: -1px;
43
- overflow: hidden;
44
- clip: rect(0, 0, 0, 0);
45
- white-space: nowrap;
46
- border: 0;
47
- }