@optimum-intelligence/opti-ui 0.6.1 → 0.7.0
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/CHANGELOG.md +26 -0
- package/README.md +44 -1
- package/dist/components/map/Map.d.ts +373 -0
- package/dist/components/map/Map.js +2030 -0
- package/dist/components/map/Map.js.map +1 -0
- package/dist/components/map/colors.d.ts +16 -0
- package/dist/components/map/colors.js +99 -0
- package/dist/components/map/colors.js.map +1 -0
- package/dist/components.json +481 -2
- package/dist/index.js +2 -1
- package/dist/llms-full.txt +277 -0
- package/dist/llms.txt +7 -0
- package/dist/map/index.d.ts +3 -0
- package/dist/map/index.js +4 -0
- package/dist/map.css +3 -0
- package/dist/opti-ui.css +433 -12
- package/dist/theme/index.d.ts +1 -0
- package/dist/theme/series.d.ts +9 -0
- package/dist/theme/series.js +17 -0
- package/dist/theme/series.js.map +1 -0
- package/package.json +9 -2
package/dist/opti-ui.css
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
@layer oui.tokens, oui.base, oui.components;
|
|
1
|
+
@layer maplibre, oui.tokens, oui.base, oui.components;
|
|
2
2
|
@layer oui.tokens {
|
|
3
3
|
:root {
|
|
4
4
|
--oui-font-body: 'Poppins', system-ui, -apple-system, 'Segoe UI', sans-serif;
|
|
@@ -35,11 +35,8 @@
|
|
|
35
35
|
--oui-color-purple-text: #573591;
|
|
36
36
|
--oui-color-pink: #c2479b;
|
|
37
37
|
--oui-color-pink-text: #8c2f6f;
|
|
38
|
-
--oui-
|
|
39
|
-
--oui-
|
|
40
|
-
--oui-color-chart-3: #21856d;
|
|
41
|
-
--oui-color-chart-4: #db6b2f;
|
|
42
|
-
--oui-color-chart-5: #9d8fc0;
|
|
38
|
+
--oui-map-route-weight: 4;
|
|
39
|
+
--oui-map-dim-opacity: 0.35;
|
|
43
40
|
--oui-radius-xs: 4px;
|
|
44
41
|
--oui-radius-sm: 8px;
|
|
45
42
|
--oui-radius-control: 10px;
|
|
@@ -122,6 +119,15 @@
|
|
|
122
119
|
--oui-color-purple-border: color-mix(in srgb, var(--oui-color-purple) 26%, transparent);
|
|
123
120
|
--oui-color-pink-subtle: color-mix(in srgb, var(--oui-color-pink) 10%, transparent);
|
|
124
121
|
--oui-color-pink-border: color-mix(in srgb, var(--oui-color-pink) 26%, transparent);
|
|
122
|
+
--oui-color-chart-1: var(--oui-color-blue);
|
|
123
|
+
--oui-color-chart-2: var(--oui-color-warning);
|
|
124
|
+
--oui-color-chart-3: var(--oui-color-green);
|
|
125
|
+
--oui-color-chart-4: var(--oui-color-pink);
|
|
126
|
+
--oui-color-chart-5: var(--oui-color-cyan);
|
|
127
|
+
--oui-color-chart-6: var(--oui-color-purple);
|
|
128
|
+
--oui-color-chart-7: var(--oui-color-yellow);
|
|
129
|
+
--oui-color-chart-8: var(--oui-color-accent);
|
|
130
|
+
--oui-map-casing-color: var(--oui-color-surface);
|
|
125
131
|
--oui-color-inverse: var(--oui-color-brand);
|
|
126
132
|
--oui-color-on-inverse: #ffffff;
|
|
127
133
|
--oui-color-on-inverse-muted: rgba(255, 255, 255, 0.72);
|
|
@@ -2334,7 +2340,7 @@
|
|
|
2334
2340
|
font-weight: var(--oui-font-weight-medium);
|
|
2335
2341
|
line-height: 1.3;
|
|
2336
2342
|
outline: none;
|
|
2337
|
-
cursor:
|
|
2343
|
+
cursor: pointer;
|
|
2338
2344
|
user-select: none;
|
|
2339
2345
|
transition: background-color var(--oui-duration-fast) var(--oui-ease), color var(--oui-duration-fast) var(--oui-ease);
|
|
2340
2346
|
}
|
|
@@ -2476,7 +2482,7 @@
|
|
|
2476
2482
|
font-weight: var(--oui-font-weight-medium);
|
|
2477
2483
|
line-height: 1.3;
|
|
2478
2484
|
outline: none;
|
|
2479
|
-
cursor:
|
|
2485
|
+
cursor: pointer;
|
|
2480
2486
|
user-select: none;
|
|
2481
2487
|
transition: background-color var(--oui-duration-fast) var(--oui-ease), color var(--oui-duration-fast) var(--oui-ease);
|
|
2482
2488
|
}
|
|
@@ -2986,7 +2992,7 @@
|
|
|
2986
2992
|
font-weight: var(--oui-font-weight-medium);
|
|
2987
2993
|
line-height: 1.3;
|
|
2988
2994
|
outline: none;
|
|
2989
|
-
cursor:
|
|
2995
|
+
cursor: pointer;
|
|
2990
2996
|
user-select: none;
|
|
2991
2997
|
transition: background-color var(--oui-duration-fast) var(--oui-ease), color var(--oui-duration-fast) var(--oui-ease);
|
|
2992
2998
|
}
|
|
@@ -3896,6 +3902,421 @@
|
|
|
3896
3902
|
vertical-align: -0.06em;
|
|
3897
3903
|
}
|
|
3898
3904
|
}
|
|
3905
|
+
@layer oui.components {
|
|
3906
|
+
.oui-map {
|
|
3907
|
+
box-sizing: border-box;
|
|
3908
|
+
margin: 0;
|
|
3909
|
+
font-family: var(--oui-font-body);
|
|
3910
|
+
-webkit-font-smoothing: antialiased;
|
|
3911
|
+
-moz-osx-font-smoothing: grayscale;
|
|
3912
|
+
position: relative;
|
|
3913
|
+
height: var(--oui-map-height, 24rem);
|
|
3914
|
+
min-height: 0;
|
|
3915
|
+
overflow: hidden;
|
|
3916
|
+
border-radius: var(--oui-map-radius, var(--oui-radius-card));
|
|
3917
|
+
background: var(--oui-color-surface-muted);
|
|
3918
|
+
color: var(--oui-color-text);
|
|
3919
|
+
isolation: isolate;
|
|
3920
|
+
}
|
|
3921
|
+
.oui-map .maplibregl-map {
|
|
3922
|
+
font: inherit;
|
|
3923
|
+
}
|
|
3924
|
+
.oui-map[data-expanded] {
|
|
3925
|
+
position: fixed;
|
|
3926
|
+
inset: 0;
|
|
3927
|
+
z-index: var(--oui-z-dialog);
|
|
3928
|
+
height: auto;
|
|
3929
|
+
border-radius: 0;
|
|
3930
|
+
}
|
|
3931
|
+
.oui-map .maplibregl-ctrl-group {
|
|
3932
|
+
overflow: hidden;
|
|
3933
|
+
border: 1px solid var(--oui-color-border);
|
|
3934
|
+
border-radius: var(--oui-radius-control);
|
|
3935
|
+
background: var(--oui-color-surface);
|
|
3936
|
+
box-shadow: var(--oui-shadow-raised);
|
|
3937
|
+
}
|
|
3938
|
+
.oui-map .maplibregl-ctrl-group button {
|
|
3939
|
+
width: var(--oui-control-height-sm);
|
|
3940
|
+
height: var(--oui-control-height-sm);
|
|
3941
|
+
color: var(--oui-color-text);
|
|
3942
|
+
}
|
|
3943
|
+
.oui-map .maplibregl-ctrl-group button:focus-visible {
|
|
3944
|
+
outline: var(--oui-focus-outline);
|
|
3945
|
+
outline-offset: -2px;
|
|
3946
|
+
}
|
|
3947
|
+
.oui-map .maplibregl-ctrl-group button + button {
|
|
3948
|
+
border-top: 1px solid var(--oui-color-border-subtle);
|
|
3949
|
+
}
|
|
3950
|
+
@media (hover: hover) {
|
|
3951
|
+
.oui-map .maplibregl-ctrl-group button:hover:not(:disabled) {
|
|
3952
|
+
background: var(--oui-color-surface-hover);
|
|
3953
|
+
}
|
|
3954
|
+
}
|
|
3955
|
+
.oui-map .maplibregl-ctrl-group .maplibregl-ctrl-icon {
|
|
3956
|
+
background: currentColor;
|
|
3957
|
+
mask: var(--_icon) center/1.4rem no-repeat;
|
|
3958
|
+
}
|
|
3959
|
+
.oui-map .maplibregl-ctrl-group .maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon {
|
|
3960
|
+
--_icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M5 12h14M12 5v14'/%3E%3C/svg%3E");
|
|
3961
|
+
}
|
|
3962
|
+
.oui-map .maplibregl-ctrl-group .oui-map__expand .maplibregl-ctrl-icon {
|
|
3963
|
+
--_icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 3h6v6M9 21H3v-6M21 3l-7 7M3 21l7-7'/%3E%3C/svg%3E");
|
|
3964
|
+
mask-size: 1.1rem;
|
|
3965
|
+
}
|
|
3966
|
+
.oui-map .maplibregl-ctrl-group .oui-map__expand[aria-pressed=true] .maplibregl-ctrl-icon {
|
|
3967
|
+
--_icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 14h6v6M20 10h-6V4M14 10l7-7M3 21l7-7'/%3E%3C/svg%3E");
|
|
3968
|
+
}
|
|
3969
|
+
.oui-map .maplibregl-ctrl-group .maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon {
|
|
3970
|
+
--_icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M5 12h14'/%3E%3C/svg%3E");
|
|
3971
|
+
}
|
|
3972
|
+
.oui-map .maplibregl-ctrl-attrib {
|
|
3973
|
+
border-radius: var(--oui-radius-sm);
|
|
3974
|
+
background: color-mix(in srgb, var(--oui-color-surface) 85%, transparent);
|
|
3975
|
+
color: var(--oui-color-text-muted);
|
|
3976
|
+
font-size: var(--oui-font-size-2xs);
|
|
3977
|
+
}
|
|
3978
|
+
.oui-map .maplibregl-ctrl-attrib a {
|
|
3979
|
+
color: inherit;
|
|
3980
|
+
}
|
|
3981
|
+
.oui-map .maplibregl-ctrl-attrib.maplibregl-compact-show {
|
|
3982
|
+
padding-block: 2px;
|
|
3983
|
+
}
|
|
3984
|
+
.oui-map .maplibregl-ctrl-attrib-button {
|
|
3985
|
+
border-radius: var(--oui-radius-sm);
|
|
3986
|
+
background-color: var(--oui-color-surface);
|
|
3987
|
+
}
|
|
3988
|
+
.oui-map__popup {
|
|
3989
|
+
--_bg: var(--oui-color-surface);
|
|
3990
|
+
--_border: var(--oui-color-border);
|
|
3991
|
+
}
|
|
3992
|
+
.oui-map__popup .maplibregl-popup-content {
|
|
3993
|
+
box-sizing: border-box;
|
|
3994
|
+
margin: 0;
|
|
3995
|
+
font-family: var(--oui-font-body);
|
|
3996
|
+
-webkit-font-smoothing: antialiased;
|
|
3997
|
+
-moz-osx-font-smoothing: grayscale;
|
|
3998
|
+
border: 1px solid var(--oui-color-border);
|
|
3999
|
+
border-radius: var(--oui-popup-radius, var(--oui-radius-md));
|
|
4000
|
+
background: var(--oui-color-surface);
|
|
4001
|
+
background-clip: padding-box;
|
|
4002
|
+
box-shadow: var(--oui-shadow-overlay);
|
|
4003
|
+
color: var(--oui-color-text);
|
|
4004
|
+
font-size: var(--oui-font-size-md);
|
|
4005
|
+
outline: none;
|
|
4006
|
+
scrollbar-width: thin;
|
|
4007
|
+
scrollbar-color: var(--oui-color-border-hover) transparent;
|
|
4008
|
+
transform-origin: var(--transform-origin);
|
|
4009
|
+
transition: opacity var(--oui-duration-fast) var(--oui-ease), transform var(--oui-duration-fast) var(--oui-ease-out);
|
|
4010
|
+
}
|
|
4011
|
+
@media (prefers-reduced-motion: reduce) {
|
|
4012
|
+
.oui-map__popup .maplibregl-popup-content {
|
|
4013
|
+
transition-duration: 0.01ms !important;
|
|
4014
|
+
animation-duration: 0.01ms !important;
|
|
4015
|
+
animation-iteration-count: 1 !important;
|
|
4016
|
+
}
|
|
4017
|
+
}
|
|
4018
|
+
.oui-map__popup .maplibregl-popup-content[data-starting-style], .oui-map__popup .maplibregl-popup-content[data-ending-style] {
|
|
4019
|
+
opacity: 0;
|
|
4020
|
+
transform: scale(0.97);
|
|
4021
|
+
}
|
|
4022
|
+
.oui-map__popup .maplibregl-popup-content[data-ending-style] {
|
|
4023
|
+
transform: none;
|
|
4024
|
+
}
|
|
4025
|
+
.oui-map__popup .maplibregl-popup-content[data-instant] {
|
|
4026
|
+
transition: none;
|
|
4027
|
+
}
|
|
4028
|
+
.oui-map__popup .maplibregl-popup-content {
|
|
4029
|
+
padding: var(--oui-space-6);
|
|
4030
|
+
border-color: var(--_border);
|
|
4031
|
+
background: var(--_bg);
|
|
4032
|
+
font-size: var(--oui-font-size-sm);
|
|
4033
|
+
line-height: 1.45;
|
|
4034
|
+
}
|
|
4035
|
+
.oui-map__popup .maplibregl-popup-close-button {
|
|
4036
|
+
top: var(--oui-space-3);
|
|
4037
|
+
right: var(--oui-space-3);
|
|
4038
|
+
width: 1.5rem;
|
|
4039
|
+
height: 1.5rem;
|
|
4040
|
+
border-radius: var(--oui-radius-xs);
|
|
4041
|
+
color: var(--oui-color-text-muted);
|
|
4042
|
+
font-size: 1.1rem;
|
|
4043
|
+
line-height: 1;
|
|
4044
|
+
}
|
|
4045
|
+
.oui-map__popup .maplibregl-popup-close-button:focus-visible {
|
|
4046
|
+
outline: var(--oui-focus-outline);
|
|
4047
|
+
outline-offset: var(--oui-focus-outline-offset);
|
|
4048
|
+
}
|
|
4049
|
+
@media (hover: hover) {
|
|
4050
|
+
.oui-map__popup .maplibregl-popup-close-button:hover {
|
|
4051
|
+
background: var(--oui-color-surface-hover);
|
|
4052
|
+
color: var(--oui-color-text);
|
|
4053
|
+
}
|
|
4054
|
+
}
|
|
4055
|
+
.oui-map__popup:has(.maplibregl-popup-close-button) .maplibregl-popup-content {
|
|
4056
|
+
padding-right: var(--oui-space-12);
|
|
4057
|
+
}
|
|
4058
|
+
.oui-map__popup.maplibregl-popup-anchor-top .maplibregl-popup-tip, .oui-map__popup.maplibregl-popup-anchor-top-left .maplibregl-popup-tip, .oui-map__popup.maplibregl-popup-anchor-top-right .maplibregl-popup-tip {
|
|
4059
|
+
border-bottom-color: var(--_bg);
|
|
4060
|
+
}
|
|
4061
|
+
.oui-map__popup.maplibregl-popup-anchor-bottom .maplibregl-popup-tip, .oui-map__popup.maplibregl-popup-anchor-bottom-left .maplibregl-popup-tip, .oui-map__popup.maplibregl-popup-anchor-bottom-right .maplibregl-popup-tip {
|
|
4062
|
+
border-top-color: var(--_bg);
|
|
4063
|
+
}
|
|
4064
|
+
.oui-map__popup.maplibregl-popup-anchor-left .maplibregl-popup-tip {
|
|
4065
|
+
border-right-color: var(--_bg);
|
|
4066
|
+
}
|
|
4067
|
+
.oui-map__popup.maplibregl-popup-anchor-right .maplibregl-popup-tip {
|
|
4068
|
+
border-left-color: var(--_bg);
|
|
4069
|
+
}
|
|
4070
|
+
.oui-map__tooltip {
|
|
4071
|
+
--_bg: var(--oui-tooltip-bg, var(--oui-color-primary));
|
|
4072
|
+
--_border: transparent;
|
|
4073
|
+
pointer-events: none;
|
|
4074
|
+
}
|
|
4075
|
+
.oui-map__tooltip .maplibregl-popup-content {
|
|
4076
|
+
padding: 0.45rem 0.7rem;
|
|
4077
|
+
border-radius: var(--oui-radius-sm);
|
|
4078
|
+
box-shadow: var(--oui-shadow-raised);
|
|
4079
|
+
color: var(--oui-tooltip-fg, var(--oui-color-on-primary));
|
|
4080
|
+
font-size: var(--oui-font-size-xs);
|
|
4081
|
+
font-weight: var(--oui-font-weight-medium);
|
|
4082
|
+
}
|
|
4083
|
+
.oui-map__marker[data-dimmed] {
|
|
4084
|
+
opacity: var(--oui-map-dim-opacity);
|
|
4085
|
+
}
|
|
4086
|
+
.oui-map__marker {
|
|
4087
|
+
--_pin-color: var(--oui-color-accent);
|
|
4088
|
+
--_pin-size: 1.625rem;
|
|
4089
|
+
box-sizing: border-box;
|
|
4090
|
+
margin: 0;
|
|
4091
|
+
font-family: var(--oui-font-body);
|
|
4092
|
+
-webkit-font-smoothing: antialiased;
|
|
4093
|
+
-moz-osx-font-smoothing: grayscale;
|
|
4094
|
+
display: grid;
|
|
4095
|
+
place-items: center;
|
|
4096
|
+
box-sizing: border-box;
|
|
4097
|
+
width: var(--_pin-size);
|
|
4098
|
+
height: var(--_pin-size);
|
|
4099
|
+
border: 2px solid var(--oui-map-casing-color);
|
|
4100
|
+
border-radius: 50%;
|
|
4101
|
+
background: var(--_pin-color);
|
|
4102
|
+
box-shadow: var(--oui-shadow-raised);
|
|
4103
|
+
color: var(--oui-color-on-tone);
|
|
4104
|
+
font-size: var(--oui-font-size-xs);
|
|
4105
|
+
font-weight: var(--oui-font-weight-bold);
|
|
4106
|
+
font-variant-numeric: tabular-nums;
|
|
4107
|
+
line-height: 1;
|
|
4108
|
+
transition: transform var(--oui-duration-fast) var(--oui-ease);
|
|
4109
|
+
}
|
|
4110
|
+
.oui-map__marker[data-kind=depot] {
|
|
4111
|
+
--_pin-color: var(--oui-color-primary);
|
|
4112
|
+
--_pin-size: 2rem;
|
|
4113
|
+
border-radius: var(--oui-radius-sm);
|
|
4114
|
+
color: var(--oui-color-on-primary);
|
|
4115
|
+
font-size: 1rem;
|
|
4116
|
+
}
|
|
4117
|
+
.oui-map__marker[data-kind=vehicle] {
|
|
4118
|
+
--_pin-size: 1.25rem;
|
|
4119
|
+
box-shadow: 0 0 0 4px color-mix(in srgb, var(--_pin-color) 30%, transparent), var(--oui-shadow-raised);
|
|
4120
|
+
}
|
|
4121
|
+
.oui-map__marker[data-kind=point] {
|
|
4122
|
+
--_pin-size: 0.75rem;
|
|
4123
|
+
}
|
|
4124
|
+
.oui-map__marker[data-interactive] {
|
|
4125
|
+
cursor: pointer;
|
|
4126
|
+
}
|
|
4127
|
+
.oui-map__marker[data-selected] {
|
|
4128
|
+
transform: scale(1.2);
|
|
4129
|
+
outline: 2px solid var(--_pin-color);
|
|
4130
|
+
outline-offset: 2px;
|
|
4131
|
+
}
|
|
4132
|
+
@media (hover: hover) {
|
|
4133
|
+
.oui-map__marker[data-interactive]:hover {
|
|
4134
|
+
transform: scale(1.12);
|
|
4135
|
+
}
|
|
4136
|
+
}
|
|
4137
|
+
.oui-map__overlay {
|
|
4138
|
+
position: absolute;
|
|
4139
|
+
z-index: 3;
|
|
4140
|
+
display: flex;
|
|
4141
|
+
flex-direction: column;
|
|
4142
|
+
gap: var(--oui-space-4);
|
|
4143
|
+
max-width: calc(100% - 2 * var(--oui-space-6));
|
|
4144
|
+
max-height: calc(100% - 2 * var(--oui-space-6));
|
|
4145
|
+
overflow: auto;
|
|
4146
|
+
}
|
|
4147
|
+
.oui-map__overlay[data-position^=top] {
|
|
4148
|
+
top: var(--oui-space-6);
|
|
4149
|
+
}
|
|
4150
|
+
.oui-map__overlay[data-position^=bottom] {
|
|
4151
|
+
bottom: var(--oui-space-6);
|
|
4152
|
+
}
|
|
4153
|
+
.oui-map__overlay[data-position$=left] {
|
|
4154
|
+
left: var(--oui-space-6);
|
|
4155
|
+
align-items: flex-start;
|
|
4156
|
+
}
|
|
4157
|
+
.oui-map__overlay[data-position$=right] {
|
|
4158
|
+
right: var(--oui-space-6);
|
|
4159
|
+
align-items: flex-end;
|
|
4160
|
+
}
|
|
4161
|
+
.oui-map__empty {
|
|
4162
|
+
position: absolute;
|
|
4163
|
+
inset: 50% auto auto 50%;
|
|
4164
|
+
z-index: 3;
|
|
4165
|
+
translate: -50% -50%;
|
|
4166
|
+
padding: var(--oui-space-4) var(--oui-space-8);
|
|
4167
|
+
border-radius: var(--oui-radius-pill);
|
|
4168
|
+
background: var(--oui-color-surface);
|
|
4169
|
+
box-shadow: var(--oui-shadow-raised);
|
|
4170
|
+
color: var(--oui-color-text-muted);
|
|
4171
|
+
font-size: var(--oui-font-size-sm);
|
|
4172
|
+
pointer-events: none;
|
|
4173
|
+
}
|
|
4174
|
+
.oui-map-legend {
|
|
4175
|
+
box-sizing: border-box;
|
|
4176
|
+
margin: 0;
|
|
4177
|
+
font-family: var(--oui-font-body);
|
|
4178
|
+
-webkit-font-smoothing: antialiased;
|
|
4179
|
+
-moz-osx-font-smoothing: grayscale;
|
|
4180
|
+
display: flex;
|
|
4181
|
+
flex-direction: column;
|
|
4182
|
+
gap: var(--oui-space-2);
|
|
4183
|
+
min-width: 11rem;
|
|
4184
|
+
padding: var(--oui-space-4);
|
|
4185
|
+
border: 1px solid var(--oui-color-border);
|
|
4186
|
+
border-radius: var(--oui-radius-md);
|
|
4187
|
+
background: var(--oui-color-surface);
|
|
4188
|
+
box-shadow: var(--oui-shadow-raised);
|
|
4189
|
+
color: var(--oui-color-text);
|
|
4190
|
+
font-size: var(--oui-font-size-sm);
|
|
4191
|
+
}
|
|
4192
|
+
.oui-map-legend__toggle-all {
|
|
4193
|
+
box-sizing: border-box;
|
|
4194
|
+
margin: 0;
|
|
4195
|
+
font-family: var(--oui-font-body);
|
|
4196
|
+
-webkit-font-smoothing: antialiased;
|
|
4197
|
+
-moz-osx-font-smoothing: grayscale;
|
|
4198
|
+
align-self: flex-end;
|
|
4199
|
+
padding: var(--oui-space-1) var(--oui-space-3);
|
|
4200
|
+
border: 0;
|
|
4201
|
+
border-radius: var(--oui-radius-xs);
|
|
4202
|
+
background: none;
|
|
4203
|
+
color: var(--oui-color-accent-text);
|
|
4204
|
+
font-size: var(--oui-font-size-xs);
|
|
4205
|
+
font-weight: var(--oui-font-weight-semibold);
|
|
4206
|
+
cursor: pointer;
|
|
4207
|
+
}
|
|
4208
|
+
.oui-map-legend__toggle-all:focus-visible {
|
|
4209
|
+
outline: var(--oui-focus-outline);
|
|
4210
|
+
outline-offset: var(--oui-focus-outline-offset);
|
|
4211
|
+
}
|
|
4212
|
+
@media (hover: hover) {
|
|
4213
|
+
.oui-map-legend__toggle-all:hover {
|
|
4214
|
+
background: var(--oui-color-accent-subtle);
|
|
4215
|
+
}
|
|
4216
|
+
}
|
|
4217
|
+
.oui-map-legend__list {
|
|
4218
|
+
display: flex;
|
|
4219
|
+
flex-direction: column;
|
|
4220
|
+
gap: var(--oui-space-1);
|
|
4221
|
+
margin: 0;
|
|
4222
|
+
padding: 0;
|
|
4223
|
+
list-style: none;
|
|
4224
|
+
}
|
|
4225
|
+
.oui-map-legend__item {
|
|
4226
|
+
display: flex;
|
|
4227
|
+
align-items: center;
|
|
4228
|
+
gap: var(--oui-space-1);
|
|
4229
|
+
border-radius: var(--oui-radius-sm);
|
|
4230
|
+
}
|
|
4231
|
+
.oui-map-legend__item[data-selected] {
|
|
4232
|
+
background: var(--oui-color-accent-subtle);
|
|
4233
|
+
}
|
|
4234
|
+
.oui-map-legend__item[data-hidden] .oui-map-legend__entry {
|
|
4235
|
+
opacity: 0.5;
|
|
4236
|
+
}
|
|
4237
|
+
.oui-map-legend__entry {
|
|
4238
|
+
box-sizing: border-box;
|
|
4239
|
+
margin: 0;
|
|
4240
|
+
font-family: var(--oui-font-body);
|
|
4241
|
+
-webkit-font-smoothing: antialiased;
|
|
4242
|
+
-moz-osx-font-smoothing: grayscale;
|
|
4243
|
+
display: flex;
|
|
4244
|
+
flex: 1;
|
|
4245
|
+
align-items: center;
|
|
4246
|
+
gap: var(--oui-space-4);
|
|
4247
|
+
min-width: 0;
|
|
4248
|
+
padding: var(--oui-space-2) var(--oui-space-3);
|
|
4249
|
+
border: 0;
|
|
4250
|
+
border-radius: inherit;
|
|
4251
|
+
background: none;
|
|
4252
|
+
color: inherit;
|
|
4253
|
+
font-size: inherit;
|
|
4254
|
+
text-align: start;
|
|
4255
|
+
}
|
|
4256
|
+
.oui-map-legend__entry:is(button) {
|
|
4257
|
+
cursor: pointer;
|
|
4258
|
+
}
|
|
4259
|
+
.oui-map-legend__entry:is(button):focus-visible {
|
|
4260
|
+
outline: var(--oui-focus-outline);
|
|
4261
|
+
outline-offset: -2px;
|
|
4262
|
+
}
|
|
4263
|
+
@media (hover: hover) {
|
|
4264
|
+
.oui-map-legend__entry:is(button):hover {
|
|
4265
|
+
background: var(--oui-color-surface-hover);
|
|
4266
|
+
}
|
|
4267
|
+
}
|
|
4268
|
+
[data-selected] > .oui-map-legend__entry:is(button) {
|
|
4269
|
+
font-weight: var(--oui-font-weight-semibold);
|
|
4270
|
+
}
|
|
4271
|
+
.oui-map-legend__swatch {
|
|
4272
|
+
flex-shrink: 0;
|
|
4273
|
+
width: 0.75rem;
|
|
4274
|
+
height: 0.75rem;
|
|
4275
|
+
border-radius: 3px;
|
|
4276
|
+
background: var(--_swatch);
|
|
4277
|
+
}
|
|
4278
|
+
.oui-map-legend__label {
|
|
4279
|
+
flex: 1;
|
|
4280
|
+
min-width: 0;
|
|
4281
|
+
overflow: hidden;
|
|
4282
|
+
text-overflow: ellipsis;
|
|
4283
|
+
white-space: nowrap;
|
|
4284
|
+
}
|
|
4285
|
+
.oui-map-legend__count {
|
|
4286
|
+
color: var(--oui-color-text-muted);
|
|
4287
|
+
font-size: var(--oui-font-size-xs);
|
|
4288
|
+
font-variant-numeric: tabular-nums;
|
|
4289
|
+
}
|
|
4290
|
+
.oui-map-legend__visibility {
|
|
4291
|
+
box-sizing: border-box;
|
|
4292
|
+
margin: 0;
|
|
4293
|
+
font-family: var(--oui-font-body);
|
|
4294
|
+
-webkit-font-smoothing: antialiased;
|
|
4295
|
+
-moz-osx-font-smoothing: grayscale;
|
|
4296
|
+
display: grid;
|
|
4297
|
+
flex-shrink: 0;
|
|
4298
|
+
place-items: center;
|
|
4299
|
+
width: 1.75rem;
|
|
4300
|
+
height: 1.75rem;
|
|
4301
|
+
padding: 0;
|
|
4302
|
+
border: 0;
|
|
4303
|
+
border-radius: var(--oui-radius-xs);
|
|
4304
|
+
background: none;
|
|
4305
|
+
color: var(--oui-color-text-muted);
|
|
4306
|
+
font-size: 0.95rem;
|
|
4307
|
+
cursor: pointer;
|
|
4308
|
+
}
|
|
4309
|
+
.oui-map-legend__visibility:focus-visible {
|
|
4310
|
+
outline: var(--oui-focus-outline);
|
|
4311
|
+
outline-offset: -2px;
|
|
4312
|
+
}
|
|
4313
|
+
@media (hover: hover) {
|
|
4314
|
+
.oui-map-legend__visibility:hover {
|
|
4315
|
+
background: var(--oui-color-surface-hover);
|
|
4316
|
+
color: var(--oui-color-text);
|
|
4317
|
+
}
|
|
4318
|
+
}
|
|
4319
|
+
}
|
|
3899
4320
|
@layer oui.components {
|
|
3900
4321
|
.oui-menu__positioner {
|
|
3901
4322
|
z-index: var(--oui-z-dropdown);
|
|
@@ -3956,7 +4377,7 @@
|
|
|
3956
4377
|
font-weight: var(--oui-font-weight-medium);
|
|
3957
4378
|
line-height: 1.3;
|
|
3958
4379
|
outline: none;
|
|
3959
|
-
cursor:
|
|
4380
|
+
cursor: pointer;
|
|
3960
4381
|
user-select: none;
|
|
3961
4382
|
transition: background-color var(--oui-duration-fast) var(--oui-ease), color var(--oui-duration-fast) var(--oui-ease);
|
|
3962
4383
|
}
|
|
@@ -4683,7 +5104,7 @@
|
|
|
4683
5104
|
font-weight: var(--oui-font-weight-medium);
|
|
4684
5105
|
line-height: 1.3;
|
|
4685
5106
|
outline: none;
|
|
4686
|
-
cursor:
|
|
5107
|
+
cursor: pointer;
|
|
4687
5108
|
user-select: none;
|
|
4688
5109
|
transition: background-color var(--oui-duration-fast) var(--oui-ease), color var(--oui-duration-fast) var(--oui-ease);
|
|
4689
5110
|
}
|
|
@@ -5553,7 +5974,7 @@
|
|
|
5553
5974
|
color: var(--_tone-text);
|
|
5554
5975
|
font-size: var(--oui-font-size-sm);
|
|
5555
5976
|
font-weight: var(--oui-font-weight-semibold);
|
|
5556
|
-
line-height: 1;
|
|
5977
|
+
line-height: 1.3;
|
|
5557
5978
|
white-space: nowrap;
|
|
5558
5979
|
vertical-align: middle;
|
|
5559
5980
|
}
|
package/dist/theme/index.d.ts
CHANGED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Colour for the `index`-th data series: `var(--oui-color-chart-N)`, cycling through the eight chart
|
|
3
|
+
* tokens. Use it for chart series, legend swatches and map routes so the same index gets the same hue
|
|
4
|
+
* everywhere, in light and dark mode.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* <span style={{ background: seriesColor(2) }} />
|
|
8
|
+
*/
|
|
9
|
+
export declare function seriesColor(index: number): string;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
//#region src/theme/series.ts
|
|
3
|
+
/**
|
|
4
|
+
* Colour for the `index`-th data series: `var(--oui-color-chart-N)`, cycling through the eight chart
|
|
5
|
+
* tokens. Use it for chart series, legend swatches and map routes so the same index gets the same hue
|
|
6
|
+
* everywhere, in light and dark mode.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* <span style={{ background: seriesColor(2) }} />
|
|
10
|
+
*/
|
|
11
|
+
function seriesColor(index) {
|
|
12
|
+
return `var(--oui-color-chart-${(Math.trunc(index) % 8 + 8) % 8 + 1})`;
|
|
13
|
+
}
|
|
14
|
+
//#endregion
|
|
15
|
+
export { seriesColor };
|
|
16
|
+
|
|
17
|
+
//# sourceMappingURL=series.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"series.js","names":["seriesColor","index","Math","trunc"],"sources":["../../src/theme/series.ts"],"sourcesContent":["/**\n * Colour for the `index`-th data series: `var(--oui-color-chart-N)`, cycling through the eight chart\n * tokens. Use it for chart series, legend swatches and map routes so the same index gets the same hue\n * everywhere, in light and dark mode.\n *\n * @example\n * <span style={{ background: seriesColor(2) }} />\n */\nexport function seriesColor(index: number): string {\n return `var(--oui-color-chart-${(((Math.trunc(index) % 8) + 8) % 8) + 1})`;\n}\n"],"mappings":";;;;;;;;;;AAQA,SAAgBA,YAAYC,OAAuB;CACjD,OAAO,0BAA4BC,KAAKC,MAAMF,KAAK,IAAI,IAAK,KAAK,IAAK,EAAC;AACzE"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@optimum-intelligence/opti-ui",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0",
|
|
4
4
|
"description": "Optimum's customizable React component library, built on Base UI.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"author": "Optimum Intelligence",
|
|
@@ -31,7 +31,12 @@
|
|
|
31
31
|
"types": "./dist/index.d.ts",
|
|
32
32
|
"import": "./dist/index.js"
|
|
33
33
|
},
|
|
34
|
+
"./map": {
|
|
35
|
+
"types": "./dist/map/index.d.ts",
|
|
36
|
+
"import": "./dist/map/index.js"
|
|
37
|
+
},
|
|
34
38
|
"./styles.css": "./dist/opti-ui.css",
|
|
39
|
+
"./map.css": "./dist/map.css",
|
|
35
40
|
"./fonts.css": "./dist/fonts.css",
|
|
36
41
|
"./components.json": "./dist/components.json",
|
|
37
42
|
"./llms.txt": "./dist/llms.txt",
|
|
@@ -54,7 +59,9 @@
|
|
|
54
59
|
"react-dom": "^19.0.0"
|
|
55
60
|
},
|
|
56
61
|
"dependencies": {
|
|
57
|
-
"@base-ui/react": "~1.8.0"
|
|
62
|
+
"@base-ui/react": "~1.8.0",
|
|
63
|
+
"@vis.gl/react-maplibre": "^8.1.3",
|
|
64
|
+
"maplibre-gl": "^6.16.0"
|
|
58
65
|
},
|
|
59
66
|
"devDependencies": {
|
|
60
67
|
"@babel/core": "^7.29.7",
|