@pathscale/ui 2.7.2 → 2.7.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/_shared/index.d.ts +1 -1
- package/dist/components/_shared/material.css +23 -6
- package/dist/components/_shared/overlayPosition.d.ts +2 -2
- package/dist/components/accordion/Accordion.css +3 -3
- package/dist/components/accordion/index.d.ts +1 -1
- package/dist/components/address/Address.css +24 -8
- package/dist/components/address/index.d.ts +3 -3
- package/dist/components/address/index.js +1 -1
- package/dist/components/alert/Alert.css +8 -2
- package/dist/components/alert/index.d.ts +2 -2
- package/dist/components/auth-card/index.d.ts +1 -1
- package/dist/components/auth-field-group/index.d.ts +1 -1
- package/dist/components/auth-footer-links/index.d.ts +1 -1
- package/dist/components/auth-message/index.d.ts +1 -1
- package/dist/components/auth-powered-by/index.d.ts +1 -1
- package/dist/components/auth-submit-button/index.d.ts +1 -1
- package/dist/components/avatar/Avatar.css +10 -6
- package/dist/components/avatar/index.d.ts +1 -1
- package/dist/components/badge/Badge.css +0 -1
- package/dist/components/badge/index.d.ts +2 -2
- package/dist/components/breadcrumb/index.d.ts +1 -1
- package/dist/components/button/Button.css +35 -7
- package/dist/components/button/index.d.ts +1 -1
- package/dist/components/button-group/ButtonGroup.css +2 -1
- package/dist/components/button-group/index.d.ts +1 -1
- package/dist/components/calendar/Calendar.css +18 -5
- package/dist/components/calendar/index.d.ts +1 -1
- package/dist/components/card/index.d.ts +4 -4
- package/dist/components/chatbubble/index.d.ts +1 -1
- package/dist/components/checkbox/Checkbox.css +26 -9
- package/dist/components/checkbox/index.d.ts +1 -1
- package/dist/components/checkbox-group/index.d.ts +1 -1
- package/dist/components/chip/Chip.css +61 -19
- package/dist/components/chip/index.d.ts +2 -2
- package/dist/components/close-button/CloseButton.css +5 -1
- package/dist/components/close-button/index.d.ts +1 -1
- package/dist/components/collapsible/index.d.ts +2 -2
- package/dist/components/color-field/ColorField.css +12 -4
- package/dist/components/color-field/index.d.ts +1 -1
- package/dist/components/color-picker/index.d.ts +2 -2
- package/dist/components/color-slider/ColorSlider.css +2 -1
- package/dist/components/color-slider/index.d.ts +1 -1
- package/dist/components/color-swatch/index.d.ts +1 -1
- package/dist/components/color-swatch-picker/index.d.ts +2 -3
- package/dist/components/color-wheel-flower/ColorWheelFlower.css +6 -2
- package/dist/components/color-wheel-flower/colorWheelFlowerContext.d.ts +1 -1
- package/dist/components/color-wheel-flower/index.d.ts +4 -4
- package/dist/components/combo-box/ComboBox.css +29 -10
- package/dist/components/combo-box/index.d.ts +1 -1
- package/dist/components/composer/Composer.css +65 -21
- package/dist/components/composer/index.d.ts +3 -3
- package/dist/components/composer/index.js +1 -1
- package/dist/components/data-grid/createDataGrid.d.ts +1 -1
- package/dist/components/data-grid/index.d.ts +1 -1
- package/dist/components/date-field/DateField.css +47 -13
- package/dist/components/date-field/index.d.ts +1 -1
- package/dist/components/date-picker/DatePicker.css +24 -6
- package/dist/components/date-picker/index.d.ts +1 -1
- package/dist/components/date-range-picker/DateRangePicker.css +28 -7
- package/dist/components/date-range-picker/index.d.ts +1 -1
- package/dist/components/dialog/Dialog.css +17 -4
- package/dist/components/dialog/index.d.ts +1 -1
- package/dist/components/dock/Dock.css +10 -2
- package/dist/components/dock/index.d.ts +1 -1
- package/dist/components/drawer/Drawer.a11y.d.ts +1 -1
- package/dist/components/drawer/Drawer.css +31 -7
- package/dist/components/drawer/index.d.ts +1 -1
- package/dist/components/dropdown/Dropdown.css +2 -1
- package/dist/components/dropdown/index.d.ts +2 -2
- package/dist/components/empty/index.d.ts +1 -1
- package/dist/components/fieldset/index.d.ts +1 -1
- package/dist/components/footer/index.d.ts +1 -1
- package/dist/components/form/index.d.ts +3 -3
- package/dist/components/form/index.js +1 -1
- package/dist/components/glow-card/GlowCard.css +5 -2
- package/dist/components/glow-card/index.d.ts +1 -1
- package/dist/components/header/Header.css +4 -1
- package/dist/components/header/index.d.ts +1 -1
- package/dist/components/icon/Icon.css +24 -8
- package/dist/components/icon/index.d.ts +1 -1
- package/dist/components/immersive-landing/ImmersiveLanding.css +27 -12
- package/dist/components/immersive-landing/components/CookieConsent.d.ts +1 -1
- package/dist/components/immersive-landing/components/FirefoxPWABanner.d.ts +1 -1
- package/dist/components/immersive-landing/components/PWAInstallPrompt.d.ts +1 -1
- package/dist/components/immersive-landing/index.d.ts +5 -5
- package/dist/components/immersive-landing/index.js +4 -4
- package/dist/components/immersive-landing/types.d.ts +1 -1
- package/dist/components/input/Input.css +14 -5
- package/dist/components/input/index.d.ts +1 -1
- package/dist/components/input-otp/InputOTP.css +10 -3
- package/dist/components/input-otp/index.d.ts +1 -1
- package/dist/components/kbd/index.d.ts +1 -1
- package/dist/components/label/Label.css +5 -2
- package/dist/components/label/index.d.ts +1 -1
- package/dist/components/language-switcher/LanguageSwitcher.css +4 -2
- package/dist/components/language-switcher/createI18n.d.ts +1 -1
- package/dist/components/language-switcher/index.d.ts +2 -2
- package/dist/components/language-switcher/index.js +1 -1
- package/dist/components/link/index.d.ts +1 -1
- package/dist/components/list-box/ListBox.css +8 -4
- package/dist/components/list-box/index.d.ts +5 -5
- package/dist/components/live-chat/LiveChat.css +15 -6
- package/dist/components/live-chat/index.d.ts +3 -3
- package/dist/components/menu/Menu.css +28 -10
- package/dist/components/menu/index.d.ts +2 -2
- package/dist/components/metal-border/engine/color.js +1 -1
- package/dist/components/metal-border/engine/glow/geometry.d.ts +5 -5
- package/dist/components/metal-border/engine/glow/geometry.js +10 -10
- package/dist/components/metal-border/engine/glow/glow.d.ts +18 -6
- package/dist/components/metal-border/engine/glow/glow.js +37 -37
- package/dist/components/metal-border/engine/index.d.ts +3 -3
- package/dist/components/metal-border/engine/index.js +1 -1
- package/dist/components/metal-border/engine/presets.d.ts +3 -3
- package/dist/components/metal-border/engine/presets.js +45 -45
- package/dist/components/metal-border/engine/renderer/core.d.ts +1 -1
- package/dist/components/metal-border/engine/shaders.js +4 -4
- package/dist/components/metal-border/index.d.ts +1 -1
- package/dist/components/meter/Meter.css +0 -5
- package/dist/components/meter/index.d.ts +1 -1
- package/dist/components/navbar/Navbar.css +2 -1
- package/dist/components/navbar/index.d.ts +2 -2
- package/dist/components/noise-background/index.d.ts +1 -1
- package/dist/components/pagination/Pagination.css +0 -1
- package/dist/components/password-field/index.d.ts +2 -2
- package/dist/components/password-requirements/index.d.ts +1 -1
- package/dist/components/popover/Popover.css +5 -1
- package/dist/components/popover/index.d.ts +2 -2
- package/dist/components/progress/Progress.css +2 -6
- package/dist/components/progress/index.d.ts +1 -1
- package/dist/components/radial-progress/RadialProgress.css +0 -5
- package/dist/components/radial-progress/index.d.ts +1 -1
- package/dist/components/radio/Radio.css +23 -8
- package/dist/components/radio-group/RadioGroup.css +11 -3
- package/dist/components/radio-group/index.d.ts +1 -1
- package/dist/components/range-calendar/RangeCalendar.css +8 -5
- package/dist/components/scroll-area/ScrollArea.css +8 -26
- package/dist/components/scroll-area/index.d.ts +1 -1
- package/dist/components/select/Select.css +14 -4
- package/dist/components/select/index.d.ts +1 -1
- package/dist/components/separator/index.d.ts +1 -1
- package/dist/components/size-picker/index.d.ts +2 -2
- package/dist/components/skeleton/Skeleton.css +86 -26
- package/dist/components/skeleton/index.d.ts +2 -2
- package/dist/components/slider/index.d.ts +1 -1
- package/dist/components/spinner/index.d.ts +1 -1
- package/dist/components/status/index.d.ts +2 -3
- package/dist/components/switch/Switch.css +62 -18
- package/dist/components/switch/index.d.ts +1 -1
- package/dist/components/table/Table.context.d.ts +1 -1
- package/dist/components/table/Table.css +27 -9
- package/dist/components/tabs/Tabs.css +7 -2
- package/dist/components/tabs/index.d.ts +1 -1
- package/dist/components/text/index.d.ts +1 -1
- package/dist/components/textarea/Textarea.css +39 -10
- package/dist/components/textarea/index.d.ts +1 -1
- package/dist/components/theme-color-picker/index.d.ts +2 -2
- package/dist/components/theme-color-picker/index.js +1 -1
- package/dist/components/time-field/TimeField.css +47 -13
- package/dist/components/time-field/index.d.ts +1 -1
- package/dist/components/toast/Toast.css +2 -1
- package/dist/components/toast/index.d.ts +1 -1
- package/dist/components/toolbar/Toolbar.css +5 -2
- package/dist/components/toolbar/index.d.ts +1 -1
- package/dist/components/tooltip/Tooltip.css +6 -3
- package/dist/components/tooltip/index.d.ts +1 -1
- package/dist/components/video-preview/index.d.ts +1 -1
- package/dist/hooks/date/index.d.ts +2 -2
- package/dist/hooks/date/index.js +2 -2
- package/dist/hooks/form/getFirstFieldError.js +0 -1
- package/dist/hooks/form/index.d.ts +3 -3
- package/dist/hooks/form/index.js +1 -1
- package/dist/hooks/table/index.d.ts +1 -1
- package/dist/hooks/table/useAnchoredOverlayPosition.d.ts +1 -1
- package/dist/index.d.ts +94 -100
- package/dist/index.js +32 -32
- package/dist/lab.d.ts +34 -35
- package/dist/lab.js +10 -10
- package/dist/layouts.manifest.json +1 -1
- package/dist/lib/layouts/index.d.ts +1 -1
- package/dist/lib/style/index.d.ts +1 -1
- package/dist/motion/easing.js +2 -2
- package/dist/motion/index.d.ts +7 -9
- package/dist/motion/index.js +5 -5
- package/dist/motion/route.js +1 -1
- package/dist/motion/solid/AnimatedCollapse.d.ts +2 -2
- package/dist/motion/solid/MotionDiv.d.ts +1 -1
- package/dist/motion/solid/index.d.ts +4 -4
- package/dist/motion/solid/index.js +1 -1
- package/dist/motion/system.js +1 -1
- package/dist/motion/tokens.d.ts +1 -1
- package/dist/primitives/streaming/index.d.ts +2 -2
- package/dist/styles/themes/dark.css +12 -4
- package/dist/styles/themes/light.css +12 -4
- package/package.json +1 -1
|
@@ -46,16 +46,23 @@
|
|
|
46
46
|
}
|
|
47
47
|
|
|
48
48
|
@media (hover: hover) {
|
|
49
|
-
.input-control:hover:not(.input-control--disabled):not(
|
|
49
|
+
.input-control:hover:not(.input-control--disabled):not(
|
|
50
|
+
.input-control--invalid
|
|
51
|
+
):not(:focus-within) {
|
|
50
52
|
background-color: var(--color-base-200);
|
|
51
|
-
border-color: color-mix(
|
|
53
|
+
border-color: color-mix(
|
|
54
|
+
in oklab,
|
|
55
|
+
var(--color-base-content) 22%,
|
|
56
|
+
transparent
|
|
57
|
+
);
|
|
52
58
|
}
|
|
53
59
|
}
|
|
54
60
|
|
|
55
61
|
.input-control:focus-within {
|
|
56
62
|
border-color: var(--color-accent);
|
|
57
63
|
background-color: var(--color-base-100);
|
|
58
|
-
box-shadow: 0 0 0 3px
|
|
64
|
+
box-shadow: 0 0 0 3px
|
|
65
|
+
color-mix(in oklab, var(--color-accent) 24%, transparent);
|
|
59
66
|
}
|
|
60
67
|
|
|
61
68
|
.input-control--invalid,
|
|
@@ -66,7 +73,8 @@
|
|
|
66
73
|
|
|
67
74
|
.input-control--invalid:focus-within,
|
|
68
75
|
.input-control[data-invalid="true"]:focus-within {
|
|
69
|
-
box-shadow: 0 0 0 3px
|
|
76
|
+
box-shadow: 0 0 0 3px
|
|
77
|
+
color-mix(in oklab, var(--color-error) 24%, transparent);
|
|
70
78
|
}
|
|
71
79
|
|
|
72
80
|
.input-control--disabled,
|
|
@@ -132,7 +140,8 @@
|
|
|
132
140
|
pointer-events: none;
|
|
133
141
|
}
|
|
134
142
|
|
|
135
|
-
.input__icon
|
|
143
|
+
.input__icon
|
|
144
|
+
> :is(button, [role="button"], a, [tabindex]):not([tabindex="-1"]) {
|
|
136
145
|
pointer-events: auto;
|
|
137
146
|
}
|
|
138
147
|
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import Input from "./Input.generated";
|
|
2
|
-
export type {
|
|
2
|
+
export type { InputFieldProps, InputHelperProps, InputLabelProps, InputProps, InputRootProps, InputSize, } from "./Input.generated";
|
|
3
3
|
export default Input;
|
|
@@ -40,7 +40,8 @@
|
|
|
40
40
|
align-items: center;
|
|
41
41
|
justify-content: center;
|
|
42
42
|
border-radius: var(--radius-field, 0.75rem);
|
|
43
|
-
border: var(--border-width-field, 1px) solid
|
|
43
|
+
border: var(--border-width-field, 1px) solid
|
|
44
|
+
var(--color-field-border, var(--color-base-300));
|
|
44
45
|
background-color: var(--color-field, var(--color-base-100));
|
|
45
46
|
color: var(--color-field-foreground, var(--color-base-content));
|
|
46
47
|
font-size: 0.875rem;
|
|
@@ -65,7 +66,10 @@
|
|
|
65
66
|
@media (hover: hover) {
|
|
66
67
|
.input-otp__slot:hover:not([data-disabled="true"]) {
|
|
67
68
|
background-color: var(--color-field-hover, var(--color-base-200));
|
|
68
|
-
border-color: var(
|
|
69
|
+
border-color: var(
|
|
70
|
+
--color-field-border-hover,
|
|
71
|
+
color-mix(in oklab, var(--color-base-content) 22%, transparent)
|
|
72
|
+
);
|
|
69
73
|
}
|
|
70
74
|
}
|
|
71
75
|
|
|
@@ -111,7 +115,10 @@
|
|
|
111
115
|
width: 2px;
|
|
112
116
|
height: 1rem;
|
|
113
117
|
border-radius: 4px;
|
|
114
|
-
background-color: var(
|
|
118
|
+
background-color: var(
|
|
119
|
+
--color-field-placeholder,
|
|
120
|
+
color-mix(in oklab, var(--color-base-content) 45%, transparent)
|
|
121
|
+
);
|
|
115
122
|
animation: input-otp-caret-blink 1.1s step-end infinite;
|
|
116
123
|
}
|
|
117
124
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { default, InputOTP,
|
|
1
|
+
export { default, InputOTP, InputOTPGroup, type InputOTPGroupProps, type InputOTPProps, InputOTPRoot, type InputOTPRootProps, InputOTPSeparator, type InputOTPSeparatorProps, InputOTPSlot, type InputOTPSlotProps, type InputOTPVariant, REGEXP_ONLY_CHARS, REGEXP_ONLY_DIGITS, REGEXP_ONLY_DIGITS_AND_CHARS, } from "./InputOTP.generated";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { default,
|
|
1
|
+
export { default, KbdAbbr, type KbdAbbrProps, KbdContent, type KbdContentProps, type KbdKey, type KbdProps, KbdRoot, type KbdRootProps, type KbdVariant, kbdKeysLabelMap, kbdKeysMap, } from "./Kbd.generated";
|
|
@@ -7,9 +7,12 @@
|
|
|
7
7
|
}
|
|
8
8
|
|
|
9
9
|
.label--required::after,
|
|
10
|
-
[data-required="true"]:not([role="group"]):not([role="radiogroup"]):not(
|
|
10
|
+
[data-required="true"]:not([role="group"]):not([role="radiogroup"]):not(
|
|
11
|
+
[role="checkboxgroup"]
|
|
12
|
+
)
|
|
11
13
|
> .label::after,
|
|
12
|
-
[data-required="true"]:not([data-slot="radio"]):not([data-slot="checkbox"])
|
|
14
|
+
[data-required="true"]:not([data-slot="radio"]):not([data-slot="checkbox"])
|
|
15
|
+
> .label::after {
|
|
13
16
|
margin-inline-start: 0.125rem;
|
|
14
17
|
color: var(--color-danger);
|
|
15
18
|
content: "*";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { default, Label,
|
|
1
|
+
export { default, Label, type LabelProps, LabelRoot, type LabelRootProps, } from "./Label.generated";
|
|
@@ -10,7 +10,8 @@
|
|
|
10
10
|
align-items: center;
|
|
11
11
|
justify-content: center;
|
|
12
12
|
border-radius: var(--radius-field);
|
|
13
|
-
border: var(--border, 1px) solid
|
|
13
|
+
border: var(--border, 1px) solid
|
|
14
|
+
color-mix(in oklab, var(--color-base-content) 18%, transparent);
|
|
14
15
|
background: var(--color-base-100);
|
|
15
16
|
color: var(--color-base-content);
|
|
16
17
|
padding: 0.25rem 0.5rem;
|
|
@@ -28,7 +29,8 @@
|
|
|
28
29
|
}
|
|
29
30
|
|
|
30
31
|
.language-switcher__trigger:focus-visible {
|
|
31
|
-
outline: var(--focus-ring-width, 2px) solid
|
|
32
|
+
outline: var(--focus-ring-width, 2px) solid
|
|
33
|
+
color-mix(in oklab, var(--color-primary) 70%, transparent);
|
|
32
34
|
outline-offset: var(--focus-ring-offset, 2px);
|
|
33
35
|
}
|
|
34
36
|
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { createI18n, I18nContext, type I18nContextValue, type I18nOptions, I18nProvider, type I18nProviderProps, type I18nStore, type Language, useI18n, } from "./createI18n";
|
|
2
2
|
export type { LanguageSwitcherProps } from "./LanguageSwitcher.generated";
|
|
3
|
-
export {
|
|
3
|
+
export { default as LanguageSwitcher } from "./LanguageSwitcher.generated";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { default,
|
|
1
|
+
export { default, LinkIcon, type LinkIconProps, type LinkProps, LinkRoot, type LinkRootProps, type LinkUnderline, type LinkVariant, } from "./Link.generated";
|
|
@@ -118,14 +118,18 @@
|
|
|
118
118
|
}
|
|
119
119
|
}
|
|
120
120
|
|
|
121
|
-
.list-box-item[aria-selected="true"]
|
|
122
|
-
|
|
121
|
+
.list-box-item[aria-selected="true"]
|
|
122
|
+
[data-slot="listbox-item-indicator--checkmark"],
|
|
123
|
+
.list-box-item[data-selected="true"]
|
|
124
|
+
[data-slot="listbox-item-indicator--checkmark"] {
|
|
123
125
|
transition: stroke-dashoffset 250ms linear;
|
|
124
126
|
}
|
|
125
127
|
|
|
126
128
|
@media (prefers-reduced-motion: reduce) {
|
|
127
|
-
.list-box-item[aria-selected="true"]
|
|
128
|
-
|
|
129
|
+
.list-box-item[aria-selected="true"]
|
|
130
|
+
[data-slot="listbox-item-indicator--checkmark"],
|
|
131
|
+
.list-box-item[data-selected="true"]
|
|
132
|
+
[data-slot="listbox-item-indicator--checkmark"] {
|
|
129
133
|
transition: none;
|
|
130
134
|
}
|
|
131
135
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import ListBoxRoot from "./ListBox.generated";
|
|
2
|
-
import ListBoxItem, { ListBoxItemIndicator,
|
|
3
|
-
import ListBoxSection, {
|
|
2
|
+
import ListBoxItem, { ListBoxItemIndicator, type ListBoxItemIndicatorProps, type ListBoxItemProps, type ListBoxItemRenderProps, ListBoxItemRoot, type ListBoxItemRootProps } from "./ListBoxItem.generated";
|
|
3
|
+
import ListBoxSection, { type ListBoxSectionProps, ListBoxSectionRoot, type ListBoxSectionRootProps } from "./ListBoxSection.generated";
|
|
4
4
|
declare const ListBox: import("solid-js").Component<import("./ListBox.generated").ListBoxRootProps<unknown>> & {
|
|
5
5
|
Root: import("solid-js").Component<import("./ListBox.generated").ListBoxRootProps<unknown>>;
|
|
6
6
|
Item: import("solid-js").Component<ListBoxItemProps> & {
|
|
@@ -11,7 +11,7 @@ declare const ListBox: import("solid-js").Component<import("./ListBox.generated"
|
|
|
11
11
|
Section: import("solid-js").Component<ListBoxSectionProps>;
|
|
12
12
|
};
|
|
13
13
|
export default ListBox;
|
|
14
|
-
export { ListBox, ListBoxRoot, ListBoxItem, ListBoxItemRoot, ListBoxItemIndicator, ListBoxSection, ListBoxSectionRoot, };
|
|
15
|
-
export type { ListBoxProps, ListBoxRootProps } from "./ListBox.generated";
|
|
16
14
|
export type { ListBoxSelectionMode, ListBoxVariant } from "./context";
|
|
17
|
-
export type {
|
|
15
|
+
export type { ListBoxProps, ListBoxRootProps } from "./ListBox.generated";
|
|
16
|
+
export type { ListBoxItemIndicatorProps, ListBoxItemProps, ListBoxItemRenderProps, ListBoxItemRootProps, ListBoxSectionProps, ListBoxSectionRootProps, };
|
|
17
|
+
export { ListBox, ListBoxItem, ListBoxItemIndicator, ListBoxItemRoot, ListBoxRoot, ListBoxSection, ListBoxSectionRoot, };
|
|
@@ -12,7 +12,8 @@
|
|
|
12
12
|
border: 0;
|
|
13
13
|
background: var(--color-primary);
|
|
14
14
|
color: var(--color-primary-content);
|
|
15
|
-
box-shadow: 0 10px 20px
|
|
15
|
+
box-shadow: 0 10px 20px
|
|
16
|
+
color-mix(in oklab, var(--color-base-content) 16%, transparent);
|
|
16
17
|
transition:
|
|
17
18
|
transform 200ms ease,
|
|
18
19
|
box-shadow 200ms ease,
|
|
@@ -20,7 +21,8 @@
|
|
|
20
21
|
}
|
|
21
22
|
|
|
22
23
|
.live-chat-bubble:hover {
|
|
23
|
-
box-shadow: 0 14px 28px
|
|
24
|
+
box-shadow: 0 14px 28px
|
|
25
|
+
color-mix(in oklab, var(--color-base-content) 22%, transparent);
|
|
24
26
|
}
|
|
25
27
|
|
|
26
28
|
.live-chat-bubble:active {
|
|
@@ -28,7 +30,8 @@
|
|
|
28
30
|
}
|
|
29
31
|
|
|
30
32
|
.live-chat-bubble:focus-visible {
|
|
31
|
-
outline: var(--focus-ring-width, 2px) solid
|
|
33
|
+
outline: var(--focus-ring-width, 2px) solid
|
|
34
|
+
color-mix(in oklab, var(--color-primary) 72%, transparent);
|
|
32
35
|
outline-offset: var(--focus-ring-offset, 2px);
|
|
33
36
|
}
|
|
34
37
|
|
|
@@ -87,7 +90,8 @@
|
|
|
87
90
|
flex-direction: column;
|
|
88
91
|
overflow: hidden;
|
|
89
92
|
background: var(--color-base-100);
|
|
90
|
-
box-shadow: 0 30px 70px
|
|
93
|
+
box-shadow: 0 30px 70px
|
|
94
|
+
color-mix(in oklab, var(--color-base-content) 18%, transparent);
|
|
91
95
|
}
|
|
92
96
|
|
|
93
97
|
.live-chat-panel__header {
|
|
@@ -127,7 +131,11 @@
|
|
|
127
131
|
}
|
|
128
132
|
|
|
129
133
|
.live-chat-panel__close-button:hover {
|
|
130
|
-
background: color-mix(
|
|
134
|
+
background: color-mix(
|
|
135
|
+
in oklab,
|
|
136
|
+
var(--color-primary-content) 10%,
|
|
137
|
+
transparent
|
|
138
|
+
);
|
|
131
139
|
}
|
|
132
140
|
|
|
133
141
|
.live-chat-panel__messages {
|
|
@@ -251,7 +259,8 @@
|
|
|
251
259
|
height: 1rem;
|
|
252
260
|
border-radius: var(--radius-pill, 9999px);
|
|
253
261
|
display: inline-block;
|
|
254
|
-
border: 2px solid
|
|
262
|
+
border: 2px solid
|
|
263
|
+
color-mix(in oklab, var(--color-primary-content) 30%, transparent);
|
|
255
264
|
border-top-color: var(--color-primary-content);
|
|
256
265
|
animation: live-chat-spin 0.7s linear infinite;
|
|
257
266
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { default as LiveChatBubble } from "./LiveChatBubble.generated";
|
|
2
1
|
export type { LiveChatBubbleProps } from "./LiveChatBubble.generated";
|
|
3
|
-
export { default as
|
|
2
|
+
export { default as LiveChatBubble } from "./LiveChatBubble.generated";
|
|
4
3
|
export type { LiveChatPanelProps } from "./LiveChatPanel.generated";
|
|
5
|
-
export
|
|
4
|
+
export { default as LiveChatPanel } from "./LiveChatPanel.generated";
|
|
5
|
+
export type { ChatMessage, SendMessagePayload, SendMessageResponse, } from "./types";
|
|
@@ -86,14 +86,18 @@
|
|
|
86
86
|
|
|
87
87
|
.menu-item[aria-checked="true"] [data-slot="menu-item-indicator--checkmark"],
|
|
88
88
|
.menu-item[aria-selected="true"] [data-slot="menu-item-indicator--checkmark"],
|
|
89
|
-
.menu-item[data-selected="true"]
|
|
89
|
+
.menu-item[data-selected="true"]
|
|
90
|
+
[data-slot="menu-item-indicator--checkmark"] {
|
|
90
91
|
transition: stroke-dashoffset 100ms linear;
|
|
91
92
|
}
|
|
92
93
|
|
|
93
94
|
@media (prefers-reduced-motion: reduce) {
|
|
94
|
-
.menu-item[aria-checked="true"]
|
|
95
|
-
|
|
96
|
-
.menu-item[
|
|
95
|
+
.menu-item[aria-checked="true"]
|
|
96
|
+
[data-slot="menu-item-indicator--checkmark"],
|
|
97
|
+
.menu-item[aria-selected="true"]
|
|
98
|
+
[data-slot="menu-item-indicator--checkmark"],
|
|
99
|
+
.menu-item[data-selected="true"]
|
|
100
|
+
[data-slot="menu-item-indicator--checkmark"] {
|
|
97
101
|
transition: none;
|
|
98
102
|
}
|
|
99
103
|
}
|
|
@@ -122,7 +126,10 @@
|
|
|
122
126
|
transform: translateY(-50%);
|
|
123
127
|
align-items: center;
|
|
124
128
|
justify-content: center;
|
|
125
|
-
color: var(
|
|
129
|
+
color: var(
|
|
130
|
+
--color-muted,
|
|
131
|
+
color-mix(in oklab, var(--color-base-content) 55%, transparent)
|
|
132
|
+
);
|
|
126
133
|
transition: all 250ms ease;
|
|
127
134
|
}
|
|
128
135
|
|
|
@@ -142,12 +149,16 @@
|
|
|
142
149
|
height: 0.625rem;
|
|
143
150
|
}
|
|
144
151
|
|
|
145
|
-
.menu-item[data-selection-mode="multiple"]
|
|
152
|
+
.menu-item[data-selection-mode="multiple"]
|
|
153
|
+
.menu-item__indicator
|
|
154
|
+
[data-slot="menu-item-indicator--checkmark"] {
|
|
146
155
|
transition: all 300ms ease;
|
|
147
156
|
}
|
|
148
157
|
|
|
149
158
|
@media (prefers-reduced-motion: reduce) {
|
|
150
|
-
.menu-item[data-selection-mode="multiple"]
|
|
159
|
+
.menu-item[data-selection-mode="multiple"]
|
|
160
|
+
.menu-item__indicator
|
|
161
|
+
[data-slot="menu-item-indicator--checkmark"] {
|
|
151
162
|
transition: none;
|
|
152
163
|
}
|
|
153
164
|
}
|
|
@@ -159,18 +170,25 @@
|
|
|
159
170
|
opacity: 0;
|
|
160
171
|
}
|
|
161
172
|
|
|
162
|
-
.menu-item[data-selection-mode="multiple"]
|
|
173
|
+
.menu-item[data-selection-mode="multiple"]
|
|
174
|
+
.menu-item__indicator
|
|
175
|
+
[data-slot="menu-item-indicator--dot"] {
|
|
163
176
|
transition: all 250ms ease;
|
|
164
177
|
}
|
|
165
178
|
|
|
166
179
|
@media (prefers-reduced-motion: reduce) {
|
|
167
|
-
.menu-item[data-selection-mode="multiple"]
|
|
180
|
+
.menu-item[data-selection-mode="multiple"]
|
|
181
|
+
.menu-item__indicator
|
|
182
|
+
[data-slot="menu-item-indicator--dot"] {
|
|
168
183
|
transition: none;
|
|
169
184
|
}
|
|
170
185
|
}
|
|
171
186
|
|
|
172
187
|
.menu-item__indicator--submenu {
|
|
173
|
-
color: var(
|
|
188
|
+
color: var(
|
|
189
|
+
--color-muted,
|
|
190
|
+
color-mix(in oklab, var(--color-base-content) 55%, transparent)
|
|
191
|
+
);
|
|
174
192
|
}
|
|
175
193
|
|
|
176
194
|
.menu-item__indicator--submenu svg {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { default, Menu,
|
|
1
|
+
export { default, Menu, MenuItem, MenuItemIndicator, MenuItemRoot, type MenuProps, MenuRoot, type MenuRootProps, MenuSection, MenuSectionRoot, type MenuSelectionMode, } from "./Menu.generated";
|
|
2
|
+
export type { MenuItemIndicatorProps, MenuItemProps, MenuItemRenderProps, MenuItemRootProps, MenuItemSubmenuIndicatorProps, MenuItemVariant, } from "./MenuItem.generated";
|
|
2
3
|
export { MenuItemSubmenuIndicator } from "./MenuItem.generated";
|
|
3
|
-
export type { MenuItemProps, MenuItemRootProps, MenuItemIndicatorProps, MenuItemSubmenuIndicatorProps, MenuItemRenderProps, MenuItemVariant, } from "./MenuItem.generated";
|
|
4
4
|
export type { MenuSectionProps, MenuSectionRootProps, } from "./MenuSection.generated";
|
|
@@ -5,13 +5,13 @@
|
|
|
5
5
|
* generation, SVG filter/mask construction, and HSV colour helpers.
|
|
6
6
|
* No state — every function is a pure transform.
|
|
7
7
|
*/
|
|
8
|
-
import { PERIM_SAMPLES } from
|
|
8
|
+
import { PERIM_SAMPLES } from "../perfConfig";
|
|
9
9
|
export { PERIM_SAMPLES };
|
|
10
10
|
export interface GlowOptions {
|
|
11
11
|
width: number;
|
|
12
12
|
height: number;
|
|
13
13
|
cornerRadius: number;
|
|
14
|
-
kind:
|
|
14
|
+
kind: "pill" | "circle";
|
|
15
15
|
/** Master multiplier for absolute SVG units (stroke widths, blur,
|
|
16
16
|
* fade-circle radius). 1 is the canonical 1× rendering. Set to 2 when
|
|
17
17
|
* the host element is rendered at a 2× layout (e.g. CSS zoom: 2) so
|
|
@@ -26,10 +26,10 @@ export interface PerimSample extends Pt {
|
|
|
26
26
|
arc: number;
|
|
27
27
|
}
|
|
28
28
|
export declare function rrPerim(w: number, h: number, r: number): number;
|
|
29
|
-
export declare function shapePerim(w: number, h: number, r: number, kind:
|
|
30
|
-
export declare function sampleAtArc(s: number, w: number, h: number, r: number, inset: number, outward: number, kind:
|
|
29
|
+
export declare function shapePerim(w: number, h: number, r: number, kind: "pill" | "circle"): number;
|
|
30
|
+
export declare function sampleAtArc(s: number, w: number, h: number, r: number, inset: number, outward: number, kind: "pill" | "circle", out?: Pt): Pt;
|
|
31
31
|
export declare function buildStaticBlobPath(halfLen: number, segments: number): string;
|
|
32
|
-
export declare function tangentAngleAtArc(s: number, w: number, h: number, r: number, inset: number, kind:
|
|
32
|
+
export declare function tangentAngleAtArc(s: number, w: number, h: number, r: number, inset: number, kind: "pill" | "circle"): number;
|
|
33
33
|
export declare function smoothstep(a: number, b: number, x: number): number;
|
|
34
34
|
export declare function buildPerimTable(opts: GlowOptions): PerimSample[];
|
|
35
35
|
export declare function buildSvgMarkup(opts: GlowOptions, p: string): string;
|
|
@@ -11,7 +11,7 @@ function rrPerim(w, h, r) {
|
|
|
11
11
|
return 2 * Math.max(0, w - 2 * rr) + 2 * Math.max(0, h - 2 * rr) + 2 * Math.PI * rr;
|
|
12
12
|
}
|
|
13
13
|
function shapePerim(w, h, r, kind) {
|
|
14
|
-
if (
|
|
14
|
+
if ("circle" === kind) return 2 * Math.PI * Math.max(0, Math.min(r, Math.min(w, h) / 2));
|
|
15
15
|
return rrPerim(w, h, r);
|
|
16
16
|
}
|
|
17
17
|
function sampleAtArc(s, w, h, r, inset, outward, kind, out) {
|
|
@@ -20,7 +20,7 @@ function sampleAtArc(s, w, h, r, inset, outward, kind, out) {
|
|
|
20
20
|
y: 0
|
|
21
21
|
};
|
|
22
22
|
const rr = Math.max(0, Math.min(r, Math.min(w, h) / 2));
|
|
23
|
-
if (
|
|
23
|
+
if ("circle" === kind) {
|
|
24
24
|
const perim = 2 * Math.PI * rr;
|
|
25
25
|
if (perim <= 0.0001) {
|
|
26
26
|
o.x = 0.5 * w;
|
|
@@ -92,10 +92,10 @@ function sampleAtArc(s, w, h, r, inset, outward, kind, out) {
|
|
|
92
92
|
}
|
|
93
93
|
function buildStaticBlobPath(halfLen, segments) {
|
|
94
94
|
const step = 2 * halfLen / segments;
|
|
95
|
-
let d =
|
|
95
|
+
let d = "";
|
|
96
96
|
for(let i = 0; i <= segments; i++){
|
|
97
97
|
const x = -halfLen + i * step;
|
|
98
|
-
d += (0 === i ?
|
|
98
|
+
d += (0 === i ? "M " : "L ") + x.toFixed(3) + " 0 ";
|
|
99
99
|
}
|
|
100
100
|
return d;
|
|
101
101
|
}
|
|
@@ -136,7 +136,7 @@ function buildPerimTable(opts) {
|
|
|
136
136
|
function buildSvgMarkup(opts, p) {
|
|
137
137
|
const { width: W, height: H, cornerRadius: R } = opts;
|
|
138
138
|
const s = opts.scale ?? 1;
|
|
139
|
-
const ringInset =
|
|
139
|
+
const ringInset = "circle" === opts.kind ? 2 : 1;
|
|
140
140
|
const innerR = Math.max(0, R - ringInset);
|
|
141
141
|
const fX = (-200 * s).toFixed(0), fY = fX;
|
|
142
142
|
const fW = (540 * s).toFixed(0), fH = (440 * s).toFixed(0);
|
|
@@ -145,7 +145,7 @@ function buildSvgMarkup(opts, p) {
|
|
|
145
145
|
const sw = (n)=>(n * s).toFixed(3);
|
|
146
146
|
const sd = (n)=>(n * s).toFixed(3);
|
|
147
147
|
return [
|
|
148
|
-
|
|
148
|
+
"<defs>",
|
|
149
149
|
`<filter id="${p}_bXl" ${fr}><feGaussianBlur stdDeviation="${sd(8.4)}"/></filter>`,
|
|
150
150
|
`<filter id="${p}_bLg" ${fr}><feGaussianBlur stdDeviation="${sd(4.8)}"/></filter>`,
|
|
151
151
|
`<filter id="${p}_bMd" ${fr}><feGaussianBlur stdDeviation="${sd(2.1)}"/></filter>`,
|
|
@@ -155,7 +155,7 @@ function buildSvgMarkup(opts, p) {
|
|
|
155
155
|
`<radialGradient id="${p}_fg" cx="0.5" cy="0.5" r="0.5"><stop offset="0" stop-color="white"/><stop offset="0.30" stop-color="white"/><stop offset="0.65" stop-color="#404040"/><stop offset="1" stop-color="black"/></radialGradient>`,
|
|
156
156
|
`<mask id="${p}_fm" maskUnits="userSpaceOnUse" ${fRect}><rect ${fRect} fill="black"/><circle id="${p}_fc" cx="0" cy="0" r="${(EXTRA_FADE_R * s).toFixed(3)}" fill="url(#${p}_fg)"/></mask>`,
|
|
157
157
|
`<mask id="${p}_rm" maskUnits="userSpaceOnUse" ${fRect}><rect ${fRect} fill="#808080"/><rect x="0" y="0" width="${W}" height="${H}" rx="${R}" ry="${R}" fill="white"/><rect x="${ringInset}" y="${ringInset}" width="${W - 2 * ringInset}" height="${H - 2 * ringInset}" rx="${innerR}" ry="${innerR}" fill="black"/></mask>`,
|
|
158
|
-
|
|
158
|
+
"</defs>",
|
|
159
159
|
`<g id="${p}_h" mask="url(#${p}_rm)" opacity="0">`,
|
|
160
160
|
`<rect ${fRect} fill="none" pointer-events="none"/>`,
|
|
161
161
|
`<g id="${p}_hI" stroke="white">`,
|
|
@@ -163,14 +163,14 @@ function buildSvgMarkup(opts, p) {
|
|
|
163
163
|
`<path id="${p}_pLg" stroke-width="${sw(15.6)}" stroke-linecap="round" stroke-linejoin="round" fill="none" opacity="0.595" filter="url(#${p}_bLg)"/>`,
|
|
164
164
|
`<path id="${p}_pMd" stroke-width="${sw(7.2)}" stroke-linecap="round" stroke-linejoin="round" fill="none" opacity="0.70" filter="url(#${p}_bMd)"/>`,
|
|
165
165
|
`<path id="${p}_pSm" stroke-width="${sw(3.0)}" stroke-linecap="round" stroke-linejoin="round" fill="none" opacity="0.70" filter="url(#${p}_bSm)"/>`,
|
|
166
|
-
|
|
166
|
+
"</g></g>",
|
|
167
167
|
`<g id="${p}_e" mask="url(#${p}_rm)" opacity="0">`,
|
|
168
168
|
`<rect ${fRect} fill="none" pointer-events="none"/>`,
|
|
169
169
|
`<g mask="url(#${p}_fm)">`,
|
|
170
170
|
`<g id="${p}_eI" stroke="white">`,
|
|
171
171
|
`<path id="${p}_eO" stroke-width="${sw(EXTRA_STROKE_OUTER)}" stroke-linecap="round" stroke-linejoin="round" fill="none" opacity="0.85" filter="url(#${p}_ebO)"/>`,
|
|
172
172
|
`<path id="${p}_eC" stroke-width="${sw(EXTRA_STROKE_CORE)}" stroke-linecap="round" stroke-linejoin="round" fill="none" opacity="1.0" filter="url(#${p}_ebC)"/>`,
|
|
173
|
-
|
|
174
|
-
].join(
|
|
173
|
+
"</g></g></g>"
|
|
174
|
+
].join("");
|
|
175
175
|
}
|
|
176
176
|
export { PERIM_SAMPLES, buildPerimTable, buildStaticBlobPath, buildSvgMarkup, rrPerim, sampleAtArc, shapePerim, smoothstep, tangentAngleAtArc };
|
|
@@ -1,7 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
/**
|
|
2
|
+
* SVG glow overlay — a luminance-driven halo that tracks the brightest point
|
|
3
|
+
* on the shader's perimeter.
|
|
4
|
+
*
|
|
5
|
+
* How it works:
|
|
6
|
+
* 1. Samples luminance at N points around the component's perimeter.
|
|
7
|
+
* 2. A state machine tracks which perimeter point is brightest, with dwell
|
|
8
|
+
* timers and fade-in/out transitions when relocating to a new hotspot.
|
|
9
|
+
* 3. Static SVG path elements (blurred strokes at multiple radii) are
|
|
10
|
+
* positioned at the current hotspot via CSS transform.
|
|
11
|
+
* 4. The stroke color is tinted to match the shader's color at that point.
|
|
12
|
+
*/
|
|
13
|
+
import type { MetalFxInstance, ShaderRGB } from "../renderer/core";
|
|
14
|
+
import { type Tween } from "../tween";
|
|
15
|
+
import { type GlowOptions, type PerimSample } from "./geometry";
|
|
16
|
+
export type { GlowOptions } from "./geometry";
|
|
5
17
|
export interface GlowHandles {
|
|
6
18
|
svg: SVGSVGElement;
|
|
7
19
|
haloGroup: SVGGElement;
|
|
@@ -12,7 +24,7 @@ export interface GlowHandles {
|
|
|
12
24
|
width: number;
|
|
13
25
|
height: number;
|
|
14
26
|
cornerRadius: number;
|
|
15
|
-
kind:
|
|
27
|
+
kind: "pill" | "circle";
|
|
16
28
|
/** Master scale used at injection time so per-frame position math
|
|
17
29
|
* (INSET / EXTRA_OUTWARD) stays consistent with the strokes already
|
|
18
30
|
* baked into the SVG markup. */
|
|
@@ -34,5 +46,5 @@ export interface GlowHandles {
|
|
|
34
46
|
lastExtraStroke: string;
|
|
35
47
|
}
|
|
36
48
|
export declare function injectGlow(container: HTMLElement, opts: GlowOptions): GlowHandles;
|
|
37
|
-
export declare function updateGlow(h: GlowHandles, inst: MetalFxInstance, nowMs: number, strengthMul: number, theme?:
|
|
49
|
+
export declare function updateGlow(h: GlowHandles, inst: MetalFxInstance, nowMs: number, strengthMul: number, theme?: "dark" | "light"): void;
|
|
38
50
|
export declare function resizeGlow(handles: GlowHandles, container: HTMLElement, opts: GlowOptions): GlowHandles;
|