@actabldesign/bellhop-styles 0.0.3 → 0.0.12
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.
- package/README.md +105 -70
- package/dist/index.css +1538 -0
- package/dist/utilities.css +5730 -0
- package/llms.txt +2852 -0
- package/package.json +29 -20
- package/project.json +29 -0
- package/rollup.config.js +44 -0
- package/{base → src/base}/normalize.css +4 -0
- package/src/bh-tokens/_primitives.scss +296 -0
- package/src/bh-tokens/_semantic.scss +158 -0
- package/src/bh-tokens/components/_avatar.tokens.scss +64 -0
- package/src/bh-tokens/components/_badge-dot.tokens.scss +33 -0
- package/src/bh-tokens/components/_badge.tokens.scss +61 -0
- package/src/bh-tokens/components/_button-icon.tokens.scss +65 -0
- package/src/bh-tokens/components/_button.tokens.scss +185 -0
- package/src/bh-tokens/components/_checkbox.tokens.scss +67 -0
- package/src/bh-tokens/components/_dropdown.tokens.scss +103 -0
- package/src/bh-tokens/components/_featured-icon.tokens.scss +57 -0
- package/src/bh-tokens/components/_input-number.tokens.scss +50 -0
- package/src/bh-tokens/components/_input.tokens.scss +86 -0
- package/src/bh-tokens/components/_label.tokens.scss +37 -0
- package/src/bh-tokens/components/_modal.tokens.scss +42 -0
- package/src/bh-tokens/components/_pagination.tokens.scss +104 -0
- package/src/bh-tokens/components/_password.tokens.scss +63 -0
- package/src/bh-tokens/components/_progress-bar.tokens.scss +34 -0
- package/src/bh-tokens/components/_progress-spinner.tokens.scss +51 -0
- package/src/bh-tokens/components/_radiobutton.tokens.scss +90 -0
- package/src/bh-tokens/components/_skeleton.tokens.scss +22 -0
- package/src/bh-tokens/components/_textarea.tokens.scss +76 -0
- package/src/bh-tokens/components/_toggle.tokens.scss +74 -0
- package/src/bh-tokens/components/avatar.scss +288 -0
- package/src/bh-tokens/components/badge-dot.scss +177 -0
- package/src/bh-tokens/components/badge.scss +497 -0
- package/src/bh-tokens/components/button-icon.scss +227 -0
- package/src/bh-tokens/components/button.scss +640 -0
- package/src/bh-tokens/components/checkbox.scss +254 -0
- package/src/bh-tokens/components/dropdown.scss +231 -0
- package/src/bh-tokens/components/featured-icon.scss +219 -0
- package/src/bh-tokens/components/input-number.scss +147 -0
- package/src/bh-tokens/components/input.scss +271 -0
- package/src/bh-tokens/components/label.scss +176 -0
- package/src/bh-tokens/components/modal.scss +103 -0
- package/src/bh-tokens/components/pagination.scss +324 -0
- package/src/bh-tokens/components/password.scss +193 -0
- package/src/bh-tokens/components/progress-bar.scss +124 -0
- package/src/bh-tokens/components/progress-spinner.scss +130 -0
- package/src/bh-tokens/components/radiobutton.scss +193 -0
- package/src/bh-tokens/components/skeleton.scss +50 -0
- package/src/bh-tokens/components/textarea.scss +228 -0
- package/src/bh-tokens/components/toggle.scss +320 -0
- package/src/index.css +22 -0
- package/src/mixins/_responsive.scss +167 -0
- package/src/tokens/bellhop-animations.css +392 -0
- package/src/tokens/bellhop-global.css +175 -0
- package/src/tokens/bellhop-icons.css +77 -0
- package/src/tokens/bellhop-layout.css +216 -0
- package/src/tokens/bellhop-primary-colors.css +96 -0
- package/src/tokens/bellhop-radius.css +14 -0
- package/src/tokens/bellhop-secondary-colors.css +154 -0
- package/src/tokens/bellhop-shadows.css +55 -0
- package/src/tokens/bellhop-spacing.css +66 -0
- package/src/tokens/bellhop-styles.css +174 -0
- package/src/tokens/bellhop-typography.css +146 -0
- package/src/tokens/colors.json +737 -0
- package/src/tokens/colors.mdx +59 -0
- package/src/tokens/index.css +17 -0
- package/src/utilities/_breakpoints.scss +19 -0
- package/src/utilities/_flex.scss +228 -0
- package/src/utilities/_grid.scss +189 -0
- package/src/utilities/_index.scss +32 -0
- package/src/utilities/_scrollable.scss +239 -0
- package/src/utilities/_sizing.scss +229 -0
- package/src/utilities/_spacing.scss +187 -0
- package/src/utilities/_truncation.scss +126 -0
- package/src/utilities/_visibility.scss +117 -0
- package/src/utilities.scss +32 -0
- package/components/appbar.css +0 -167
- package/components/autocomplete-menu.css +0 -142
- package/components/avatar-add.css +0 -112
- package/components/avatar.css +0 -253
- package/components/badge-dot.css +0 -78
- package/components/badge.css +0 -337
- package/components/bar-chart-card.css +0 -261
- package/components/bar-chart.css +0 -149
- package/components/breadcrumbs.css +0 -136
- package/components/button.css +0 -266
- package/components/chart-tooltip.css +0 -96
- package/components/checkbox-label.css +0 -53
- package/components/checkbox.css +0 -127
- package/components/container-footer.css +0 -22
- package/components/container.css +0 -17
- package/components/date-picker-content.css +0 -337
- package/components/date-picker.css +0 -103
- package/components/date-range-picker-content.css +0 -85
- package/components/date-range-picker.css +0 -72
- package/components/dropdown-menu.css +0 -204
- package/components/dropdown.css +0 -126
- package/components/empty-state.css +0 -83
- package/components/featured-icon.css +0 -194
- package/components/illustrations.css +0 -120
- package/components/input-autocomplete.css +0 -158
- package/components/input-number.css +0 -2
- package/components/input-verification.css +0 -137
- package/components/input.css +0 -374
- package/components/loader-spinner.css +0 -421
- package/components/logo-box.css +0 -85
- package/components/month-picker-content.css +0 -190
- package/components/month-picker.css +0 -83
- package/components/nav-item.css +0 -110
- package/components/notification.css +0 -262
- package/components/page-navigation.css +0 -294
- package/components/picker-menu.css +0 -43
- package/components/pie-chart-card.css +0 -213
- package/components/pie-chart.css +0 -80
- package/components/product-switcher.css +0 -127
- package/components/property-switcher.css +0 -95
- package/components/radio-button-label.css +0 -53
- package/components/radio-button.css +0 -134
- package/components/sidebar.css +0 -178
- package/components/skeleton-loader.css +0 -47
- package/components/tag.css +0 -214
- package/components/textarea.css +0 -211
- package/components/toggle.css +0 -298
- package/components/tooltip.css +0 -85
- package/components/trend-chart-card.css +0 -189
- package/components/trend-chart.css +0 -94
- package/index.css +0 -8115
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/* ==========================================================================
|
|
2
|
+
BELLHOP UTILITIES - TRUNCATION
|
|
3
|
+
Text overflow and truncation utilities
|
|
4
|
+
|
|
5
|
+
Dependencies:
|
|
6
|
+
- None (standalone utilities)
|
|
7
|
+
|
|
8
|
+
Generated classes:
|
|
9
|
+
- .bh-truncate (single line ellipsis)
|
|
10
|
+
- .bh-line-clamp_{n} (multi-line clamp)
|
|
11
|
+
- .bh-truncate_none (disable truncation)
|
|
12
|
+
- .bh-break-word, .bh-break-all (word breaking)
|
|
13
|
+
========================================================================== */
|
|
14
|
+
|
|
15
|
+
/* --- SINGLE LINE TRUNCATE --- */
|
|
16
|
+
|
|
17
|
+
.bh-truncate {
|
|
18
|
+
overflow: hidden;
|
|
19
|
+
text-overflow: ellipsis;
|
|
20
|
+
white-space: nowrap;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/* --- MULTI-LINE CLAMP --- */
|
|
24
|
+
/* Uses -webkit-line-clamp for cross-browser support */
|
|
25
|
+
|
|
26
|
+
.bh-line-clamp_1 {
|
|
27
|
+
display: -webkit-box;
|
|
28
|
+
-webkit-box-orient: vertical;
|
|
29
|
+
-webkit-line-clamp: 1;
|
|
30
|
+
overflow: hidden;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.bh-line-clamp_2 {
|
|
34
|
+
display: -webkit-box;
|
|
35
|
+
-webkit-box-orient: vertical;
|
|
36
|
+
-webkit-line-clamp: 2;
|
|
37
|
+
overflow: hidden;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.bh-line-clamp_3 {
|
|
41
|
+
display: -webkit-box;
|
|
42
|
+
-webkit-box-orient: vertical;
|
|
43
|
+
-webkit-line-clamp: 3;
|
|
44
|
+
overflow: hidden;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.bh-line-clamp_4 {
|
|
48
|
+
display: -webkit-box;
|
|
49
|
+
-webkit-box-orient: vertical;
|
|
50
|
+
-webkit-line-clamp: 4;
|
|
51
|
+
overflow: hidden;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.bh-line-clamp_5 {
|
|
55
|
+
display: -webkit-box;
|
|
56
|
+
-webkit-box-orient: vertical;
|
|
57
|
+
-webkit-line-clamp: 5;
|
|
58
|
+
overflow: hidden;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.bh-line-clamp_6 {
|
|
62
|
+
display: -webkit-box;
|
|
63
|
+
-webkit-box-orient: vertical;
|
|
64
|
+
-webkit-line-clamp: 6;
|
|
65
|
+
overflow: hidden;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/* --- DISABLE TRUNCATION --- */
|
|
69
|
+
|
|
70
|
+
.bh-truncate_none {
|
|
71
|
+
overflow: visible;
|
|
72
|
+
text-overflow: clip;
|
|
73
|
+
white-space: normal;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/* --- WORD BREAKING --- */
|
|
77
|
+
|
|
78
|
+
.bh-break-word {
|
|
79
|
+
word-break: break-word;
|
|
80
|
+
overflow-wrap: break-word;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.bh-break-all {
|
|
84
|
+
word-break: break-all;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.bh-break-normal {
|
|
88
|
+
word-break: normal;
|
|
89
|
+
overflow-wrap: normal;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.bh-break-keep {
|
|
93
|
+
word-break: keep-all;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/* --- WHITE SPACE --- */
|
|
97
|
+
|
|
98
|
+
.bh-whitespace-normal {
|
|
99
|
+
white-space: normal;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
.bh-whitespace-nowrap {
|
|
103
|
+
white-space: nowrap;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
.bh-whitespace-pre {
|
|
107
|
+
white-space: pre;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
.bh-whitespace-pre-line {
|
|
111
|
+
white-space: pre-line;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
.bh-whitespace-pre-wrap {
|
|
115
|
+
white-space: pre-wrap;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/* --- TEXT OVERFLOW --- */
|
|
119
|
+
|
|
120
|
+
.bh-text-ellipsis {
|
|
121
|
+
text-overflow: ellipsis;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
.bh-text-clip {
|
|
125
|
+
text-overflow: clip;
|
|
126
|
+
}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/* ==========================================================================
|
|
2
|
+
BELLHOP UTILITIES - VISIBILITY
|
|
3
|
+
Responsive show/hide and accessibility utilities
|
|
4
|
+
|
|
5
|
+
Dependencies:
|
|
6
|
+
- _semantic.scss (tokens)
|
|
7
|
+
- _responsive.scss (breakpoint mixins)
|
|
8
|
+
|
|
9
|
+
Generated classes:
|
|
10
|
+
- .bh-hidden, .bh-invisible (always hidden)
|
|
11
|
+
- .bh-hide@{breakpoint} (responsive hide)
|
|
12
|
+
- .bh-show@{breakpoint} (responsive show)
|
|
13
|
+
- .bh-sr-only (screen reader only)
|
|
14
|
+
- .bh-hide@print, .bh-show@print (print utilities)
|
|
15
|
+
========================================================================== */
|
|
16
|
+
|
|
17
|
+
@use '../mixins/responsive' as *;
|
|
18
|
+
|
|
19
|
+
/* --- ALWAYS HIDDEN --- */
|
|
20
|
+
|
|
21
|
+
.bh-hidden {
|
|
22
|
+
display: none !important;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.bh-invisible {
|
|
26
|
+
visibility: hidden;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/* --- RESPONSIVE HIDE --- */
|
|
30
|
+
/* Hidden at breakpoint and below (mobile-first) */
|
|
31
|
+
|
|
32
|
+
.bh-hide\@mobile {
|
|
33
|
+
@include bh-breakpoint-only('mobile') {
|
|
34
|
+
display: none !important;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.bh-hide\@tablet {
|
|
39
|
+
@include bh-breakpoint-down('tablet') {
|
|
40
|
+
display: none !important;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.bh-hide\@desktop {
|
|
45
|
+
@include bh-breakpoint-down('desktop') {
|
|
46
|
+
display: none !important;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/* --- RESPONSIVE SHOW --- */
|
|
51
|
+
/* Hidden by default, shown at breakpoint and above */
|
|
52
|
+
|
|
53
|
+
.bh-show\@tablet {
|
|
54
|
+
display: none !important;
|
|
55
|
+
|
|
56
|
+
@include bh-breakpoint-up('tablet') {
|
|
57
|
+
display: block !important;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.bh-show\@desktop {
|
|
62
|
+
display: none !important;
|
|
63
|
+
|
|
64
|
+
@include bh-breakpoint-up('desktop') {
|
|
65
|
+
display: block !important;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.bh-show\@wide {
|
|
70
|
+
display: none !important;
|
|
71
|
+
|
|
72
|
+
@include bh-breakpoint-up('wide') {
|
|
73
|
+
display: block !important;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
/* --- SCREEN READER ONLY --- */
|
|
78
|
+
/* Accessible to screen readers but visually hidden */
|
|
79
|
+
|
|
80
|
+
.bh-sr-only {
|
|
81
|
+
position: absolute;
|
|
82
|
+
width: 1px;
|
|
83
|
+
height: 1px;
|
|
84
|
+
padding: 0;
|
|
85
|
+
margin: -1px;
|
|
86
|
+
overflow: hidden;
|
|
87
|
+
clip: rect(0, 0, 0, 0);
|
|
88
|
+
white-space: nowrap;
|
|
89
|
+
border-width: 0;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
/* Allow element to be focusable when navigated to via keyboard */
|
|
93
|
+
.bh-sr-only-focusable:focus,
|
|
94
|
+
.bh-sr-only-focusable:active {
|
|
95
|
+
position: static;
|
|
96
|
+
width: auto;
|
|
97
|
+
height: auto;
|
|
98
|
+
padding: inherit;
|
|
99
|
+
margin: inherit;
|
|
100
|
+
overflow: visible;
|
|
101
|
+
clip: auto;
|
|
102
|
+
white-space: normal;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
/* --- PRINT UTILITIES --- */
|
|
106
|
+
|
|
107
|
+
.bh-hide\@print {
|
|
108
|
+
@media print {
|
|
109
|
+
display: none !important;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
.bh-show\@print {
|
|
114
|
+
@media not print {
|
|
115
|
+
display: none !important;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/* ==========================================================================
|
|
2
|
+
BELLHOP UTILITIES
|
|
3
|
+
Public entry point for all utility classes
|
|
4
|
+
|
|
5
|
+
Usage:
|
|
6
|
+
@import '@actabldesign/bellhop-styles/utilities';
|
|
7
|
+
|
|
8
|
+
Or import specific utilities:
|
|
9
|
+
@import '@actabldesign/bellhop-styles/utilities/spacing';
|
|
10
|
+
|
|
11
|
+
Available utilities:
|
|
12
|
+
|
|
13
|
+
Phase 1 - Foundation:
|
|
14
|
+
- Spacing: margin, padding, gap with responsive variants
|
|
15
|
+
- Breakpoints: CSS custom properties for JavaScript access
|
|
16
|
+
|
|
17
|
+
Phase 2 - Layout:
|
|
18
|
+
- Grid: CSS Grid layout utilities
|
|
19
|
+
- Flex: Flexbox alignment utilities
|
|
20
|
+
- Sizing: Width/height utilities
|
|
21
|
+
|
|
22
|
+
Phase 3 - Content:
|
|
23
|
+
- Visibility: Show/hide utilities with responsive and print support
|
|
24
|
+
- Truncation: Text overflow and line-clamp utilities
|
|
25
|
+
- Scrollable: Overflow and scroll behavior utilities
|
|
26
|
+
========================================================================== */
|
|
27
|
+
|
|
28
|
+
// Import design tokens first (required for utilities)
|
|
29
|
+
@use './bh-tokens/semantic';
|
|
30
|
+
|
|
31
|
+
// Import all utilities
|
|
32
|
+
@use './utilities/index';
|
package/components/appbar.css
DELETED
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
.appbar {
|
|
2
|
-
display: flex;
|
|
3
|
-
align-items: center;
|
|
4
|
-
justify-content: space-between;
|
|
5
|
-
height: 56px;
|
|
6
|
-
padding: 0 var(--spacing-sm);
|
|
7
|
-
background-color: var(--color-white);
|
|
8
|
-
border-bottom: 1px solid var(--color-neutral-200);
|
|
9
|
-
font-family: var(--font-inter);
|
|
10
|
-
position: sticky;
|
|
11
|
-
top: 0;
|
|
12
|
-
z-index: 1000;
|
|
13
|
-
box-sizing: border-box;
|
|
14
|
-
user-select: none;
|
|
15
|
-
-webkit-user-select: none;
|
|
16
|
-
-moz-user-select: none;
|
|
17
|
-
-ms-user-select: none;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
/* Left Section */
|
|
21
|
-
.left-section {
|
|
22
|
-
display: flex;
|
|
23
|
-
align-items: center;
|
|
24
|
-
gap: var(--spacing-xl);
|
|
25
|
-
flex-shrink: 0;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
/* Menu toggle styles removed - now using app-button component */
|
|
29
|
-
|
|
30
|
-
.logo {
|
|
31
|
-
display: flex;
|
|
32
|
-
align-items: center;
|
|
33
|
-
justify-content: center;
|
|
34
|
-
width: var(--spacing-4xl);
|
|
35
|
-
height: var(--spacing-4xl);
|
|
36
|
-
color: var(--color-brand-500);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
.logo-image {
|
|
40
|
-
width: 36px;
|
|
41
|
-
height: 36px;
|
|
42
|
-
object-fit: contain;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
.property-name {
|
|
46
|
-
font-size: var(--text-md-size);
|
|
47
|
-
font-weight: var(--weight-semibold);
|
|
48
|
-
color: var(--color-neutral-800);
|
|
49
|
-
line-height: var(--text-md-line);
|
|
50
|
-
white-space: nowrap;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
/* Center Section */
|
|
54
|
-
.center-section {
|
|
55
|
-
flex: 1;
|
|
56
|
-
display: flex;
|
|
57
|
-
justify-content: center;
|
|
58
|
-
min-width: 0;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
.breadcrumbs {
|
|
62
|
-
display: flex;
|
|
63
|
-
align-items: center;
|
|
64
|
-
gap: var(--spacing-md);
|
|
65
|
-
max-width: 100%;
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
.breadcrumb-item {
|
|
69
|
-
font-size: var(--text-sm-size);
|
|
70
|
-
font-weight: var(--weight-regular);
|
|
71
|
-
line-height: var(--text-sm-line);
|
|
72
|
-
color: var(--color-neutral-500);
|
|
73
|
-
background: none;
|
|
74
|
-
border: none;
|
|
75
|
-
cursor: pointer;
|
|
76
|
-
padding: var(--spacing-xs) var(--spacing-md);
|
|
77
|
-
border-radius: var(--radius-xs);
|
|
78
|
-
transition: all 0.2s ease;
|
|
79
|
-
white-space: nowrap;
|
|
80
|
-
text-overflow: ellipsis;
|
|
81
|
-
overflow: hidden;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
.breadcrumb-item.active {
|
|
86
|
-
color: var(--color-neutral-800);
|
|
87
|
-
font-weight: var(--weight-medium);
|
|
88
|
-
cursor: default;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
.breadcrumb-item:disabled {
|
|
92
|
-
cursor: default;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
.breadcrumb-separator {
|
|
96
|
-
color: var(--color-neutral-200);
|
|
97
|
-
flex-shrink: 0;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
/* Right Section */
|
|
101
|
-
.right-section {
|
|
102
|
-
display: flex;
|
|
103
|
-
align-items: center;
|
|
104
|
-
gap: var(--spacing-md);
|
|
105
|
-
flex-shrink: 0;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
/* Icon button styles removed - now using app-button component */
|
|
109
|
-
|
|
110
|
-
.icon-button-wrapper {
|
|
111
|
-
position: relative;
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
.icon-badge-dot {
|
|
115
|
-
position: absolute;
|
|
116
|
-
top: 0;
|
|
117
|
-
right: 4px;
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
/* Responsive Design */
|
|
121
|
-
@media (max-width: 768px) {
|
|
122
|
-
.appbar {
|
|
123
|
-
padding: 0 16px;
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
.property-name {
|
|
127
|
-
display: none;
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
.left-section {
|
|
131
|
-
gap: 12px;
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
.breadcrumbs {
|
|
135
|
-
max-width: 200px;
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
.breadcrumb-item {
|
|
139
|
-
font-size: 13px;
|
|
140
|
-
padding: 2px 6px;
|
|
141
|
-
max-width: 80px;
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
@media (max-width: 480px) {
|
|
146
|
-
.appbar {
|
|
147
|
-
padding: 0 12px;
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
.breadcrumbs {
|
|
151
|
-
max-width: 150px;
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
.breadcrumb-item {
|
|
155
|
-
font-size: 12px;
|
|
156
|
-
max-width: 60px;
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
.right-section {
|
|
160
|
-
gap: 4px;
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
.icon-button {
|
|
164
|
-
width: 32px;
|
|
165
|
-
height: 32px;
|
|
166
|
-
}
|
|
167
|
-
}
|
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
/* ==========================================================================
|
|
2
|
-
AUTOCOMPLETE MENU COMPONENT
|
|
3
|
-
Shared styles for all frameworks
|
|
4
|
-
========================================================================== */
|
|
5
|
-
|
|
6
|
-
.autocomplete-menu {
|
|
7
|
-
position: absolute;
|
|
8
|
-
z-index: 1000;
|
|
9
|
-
top: calc(100% + var(--spacing-sm));
|
|
10
|
-
left: 0;
|
|
11
|
-
right: 0;
|
|
12
|
-
width: 100%;
|
|
13
|
-
min-width: 240px;
|
|
14
|
-
background: var(--color-white);
|
|
15
|
-
border-radius: var(--radius-md);
|
|
16
|
-
box-shadow: 0px 32px 64px -12px rgba(64, 73, 104, 0.14),
|
|
17
|
-
0px 0px 1px 1px rgba(64, 73, 104, 0.1);
|
|
18
|
-
border: 1px solid var(--color-neutral-200);
|
|
19
|
-
overflow: hidden;
|
|
20
|
-
overflow-y: auto;
|
|
21
|
-
/* Add padding like dropdown-menu items container */
|
|
22
|
-
padding: var(--spacing-xs) 0;
|
|
23
|
-
/* Optimizations for stable layout */
|
|
24
|
-
box-sizing: border-box;
|
|
25
|
-
transform: translateZ(0); /* Hardware acceleration */
|
|
26
|
-
will-change: opacity, transform;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
/* Menu Items - Match dropdown-menu styling exactly */
|
|
31
|
-
.autocomplete-item {
|
|
32
|
-
padding: var(--spacing-xxs) var(--spacing-sm);
|
|
33
|
-
cursor: pointer;
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
.autocomplete-item.disabled {
|
|
37
|
-
opacity: 0.5;
|
|
38
|
-
cursor: not-allowed;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
.item-content {
|
|
42
|
-
display: flex;
|
|
43
|
-
align-items: center;
|
|
44
|
-
justify-content: space-between;
|
|
45
|
-
gap: var(--spacing-lg);
|
|
46
|
-
padding: var(--spacing-xl) var(--spacing-md);
|
|
47
|
-
border-radius: var(--radius-sm);
|
|
48
|
-
transition: background-color 0.15s ease;
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
.autocomplete-item:hover:not(.disabled) .item-content {
|
|
52
|
-
background: var(--color-neutral-100);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
.autocomplete-item.selected .item-content {
|
|
56
|
-
background: var(--color-neutral-100);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
.item-text {
|
|
60
|
-
font-family: var(--font-inter);
|
|
61
|
-
font-weight: var(--weight-medium);
|
|
62
|
-
font-size: var(--text-sm-size);
|
|
63
|
-
line-height: var(--text-sm-line);
|
|
64
|
-
color: var(--color-neutral-700);
|
|
65
|
-
flex: 1;
|
|
66
|
-
white-space: nowrap;
|
|
67
|
-
overflow: hidden;
|
|
68
|
-
text-overflow: ellipsis;
|
|
69
|
-
min-width: 0;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
.autocomplete-item.selected .item-text {
|
|
73
|
-
color: var(--color-neutral-700);
|
|
74
|
-
font-weight: var(--weight-medium);
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
.autocomplete-item.disabled .item-text {
|
|
78
|
-
color: var(--color-neutral-400);
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
/* Highlight matching text */
|
|
82
|
-
.item-text .highlight {
|
|
83
|
-
font-weight: var(--weight-semibold);
|
|
84
|
-
color: var(--color-neutral-800);
|
|
85
|
-
}
|
|
86
|
-
|
|
87
|
-
/* Check icon for multi-select */
|
|
88
|
-
.check-icon {
|
|
89
|
-
font-size: var(--text-xl-size);
|
|
90
|
-
color: var(--color-brand-600);
|
|
91
|
-
flex-shrink: 0;
|
|
92
|
-
font-variation-settings: 'FILL' 1, 'wght' 500, 'GRAD' 0, 'opsz' 24;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
/* Custom Scrollbar */
|
|
96
|
-
.autocomplete-menu::-webkit-scrollbar {
|
|
97
|
-
width: 6px;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
.autocomplete-menu::-webkit-scrollbar-track {
|
|
101
|
-
background: var(--color-neutral-50);
|
|
102
|
-
border-radius: var(--radius-xs);
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
.autocomplete-menu::-webkit-scrollbar-thumb {
|
|
106
|
-
background: var(--color-neutral-200);
|
|
107
|
-
border-radius: var(--radius-xs);
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
.autocomplete-menu::-webkit-scrollbar-thumb:hover {
|
|
111
|
-
background: var(--color-neutral-300);
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
/* Firefox scrollbar */
|
|
115
|
-
.autocomplete-menu {
|
|
116
|
-
scrollbar-width: thin;
|
|
117
|
-
scrollbar-color: var(--color-neutral-200) var(--color-neutral-50);
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
/* High contrast mode support */
|
|
121
|
-
@media (prefers-contrast: high) {
|
|
122
|
-
.autocomplete-menu {
|
|
123
|
-
border-width: 2px;
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
.autocomplete-item.selected {
|
|
127
|
-
outline: 2px solid var(--color-brand-500);
|
|
128
|
-
outline-offset: -2px;
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
/* Reduced motion support */
|
|
133
|
-
@media (prefers-reduced-motion: reduce) {
|
|
134
|
-
.autocomplete-menu.animate-dropdown-enter,
|
|
135
|
-
.autocomplete-menu.animate-dropdown-exit {
|
|
136
|
-
animation: none;
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
.autocomplete-item {
|
|
140
|
-
transition: none;
|
|
141
|
-
}
|
|
142
|
-
}
|
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
/* ==========================================================================
|
|
2
|
-
AVATAR ADD BUTTON COMPONENT
|
|
3
|
-
Shared styles for all frameworks
|
|
4
|
-
========================================================================== */
|
|
5
|
-
|
|
6
|
-
/* Base Button */
|
|
7
|
-
.avatar-add {
|
|
8
|
-
position: relative;
|
|
9
|
-
display: inline-flex;
|
|
10
|
-
align-items: center;
|
|
11
|
-
justify-content: center;
|
|
12
|
-
background-color: var(--color-white);
|
|
13
|
-
border: 1px dashed var(--color-neutral-300);
|
|
14
|
-
border-radius: 50%;
|
|
15
|
-
cursor: pointer;
|
|
16
|
-
transition: all 0.2s ease-in-out;
|
|
17
|
-
padding: 0;
|
|
18
|
-
outline: none;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
/* Button Sizes */
|
|
22
|
-
.avatar-add-xs {
|
|
23
|
-
width: 24px;
|
|
24
|
-
height: 24px;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
.avatar-add-sm {
|
|
28
|
-
width: 32px;
|
|
29
|
-
height: 32px;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
.avatar-add-md {
|
|
33
|
-
width: 40px;
|
|
34
|
-
height: 40px;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
/* ==========================================================================
|
|
38
|
-
BUTTON STATES
|
|
39
|
-
========================================================================== */
|
|
40
|
-
|
|
41
|
-
/* Hover State */
|
|
42
|
-
.avatar-add-hover,
|
|
43
|
-
.avatar-add:hover:not(:disabled) {
|
|
44
|
-
background-color: var(--color-neutral-50);
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
.avatar-add-hover .avatar-add-icon,
|
|
48
|
-
.avatar-add:hover:not(:disabled) .avatar-add-icon {
|
|
49
|
-
color: var(--color-neutral-600);
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
/* Focus State */
|
|
53
|
-
.avatar-add-focus,
|
|
54
|
-
.avatar-add:focus-visible {
|
|
55
|
-
background-color: var(--color-white);
|
|
56
|
-
box-shadow: 0 0 0 2px var(--color-white), 0 0 0 4px var(--color-brand-500);
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
/* Disabled State */
|
|
60
|
-
.avatar-add-disabled,
|
|
61
|
-
.avatar-add:disabled {
|
|
62
|
-
background-color: var(--color-neutral-50);
|
|
63
|
-
cursor: not-allowed;
|
|
64
|
-
pointer-events: none;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
.avatar-add-disabled .avatar-add-icon,
|
|
68
|
-
.avatar-add:disabled .avatar-add-icon {
|
|
69
|
-
color: var(--color-neutral-300);
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
/* ==========================================================================
|
|
73
|
-
CONTENT ELEMENTS
|
|
74
|
-
========================================================================== */
|
|
75
|
-
|
|
76
|
-
/* Content Container */
|
|
77
|
-
.avatar-add-content {
|
|
78
|
-
display: flex;
|
|
79
|
-
align-items: center;
|
|
80
|
-
justify-content: center;
|
|
81
|
-
padding: 4px;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
/* Icon */
|
|
85
|
-
.avatar-add-icon {
|
|
86
|
-
color: var(--color-neutral-500);
|
|
87
|
-
line-height: 1;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
/* Icon Sizes - adjusted for Material Symbols stroke weight */
|
|
91
|
-
.avatar-add-xs .avatar-add-icon,
|
|
92
|
-
.avatar-add-sm .avatar-add-icon {
|
|
93
|
-
font-variation-settings: 'wght' 400;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
.avatar-add-md .avatar-add-icon {
|
|
97
|
-
font-variation-settings: 'wght' 500;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
/* ==========================================================================
|
|
101
|
-
TOOLTIP POSITIONING
|
|
102
|
-
========================================================================== */
|
|
103
|
-
|
|
104
|
-
.avatar-add-button {
|
|
105
|
-
position: relative;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
.avatar-add-tooltip {
|
|
109
|
-
position: absolute;
|
|
110
|
-
top: 0;
|
|
111
|
-
left: 50%;
|
|
112
|
-
}
|