@viraui/react 0.0.25 → 0.0.27
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/catalog.json +116 -68
- package/dist/components/accordion/accordion-item.d.ts +58 -0
- package/dist/components/accordion/accordion-item.js +65 -0
- package/dist/components/accordion/accordion.css +1 -0
- package/dist/components/accordion/accordion.d.ts +26 -0
- package/dist/components/accordion/accordion.guide.json +30 -0
- package/dist/components/accordion/accordion.js +22 -0
- package/dist/components/accordion/accordion.module.js +17 -0
- package/dist/components/accordion/index.d.ts +3 -0
- package/dist/components/avatar/avatar.css +1 -1
- package/dist/components/avatar/avatar.guide.json +25 -1
- package/dist/components/avatar/avatar.js +1 -1
- package/dist/components/avatar/avatar.module.js +8 -4
- package/dist/components/avatar-group/avatar-group.css +2 -2
- package/dist/components/avatar-group/avatar-group.guide.json +27 -1
- package/dist/components/avatar-group/avatar-group.js +2 -2
- package/dist/components/avatar-group/avatar-group.module.js +12 -6
- package/dist/components/basic-input/basic-input.css +1 -1
- package/dist/components/basic-input/basic-input.js +3 -3
- package/dist/components/basic-input/basic-input.module.js +4 -2
- package/dist/components/basic-input/field-label.css +1 -1
- package/dist/components/basic-input/field-label.module.js +4 -2
- package/dist/components/bleed/bleed.css +1 -0
- package/dist/components/bleed/bleed.d.ts +26 -0
- package/dist/components/bleed/bleed.guide.json +39 -0
- package/dist/components/bleed/bleed.js +24 -0
- package/dist/components/bleed/bleed.module.js +5 -0
- package/dist/components/bleed/index.d.ts +2 -0
- package/dist/components/button/button.css +1 -1
- package/dist/components/button/button.guide.json +33 -3
- package/dist/components/button/button.js +1 -1
- package/dist/components/button/button.module.js +8 -4
- package/dist/components/checkbox/checkbox-group.js +2 -2
- package/dist/components/checkbox/checkbox.css +1 -1
- package/dist/components/checkbox/checkbox.js +1 -1
- package/dist/components/checkbox/checkbox.module.js +16 -8
- package/dist/components/chip/chip.css +1 -1
- package/dist/components/chip/chip.guide.json +26 -1
- package/dist/components/chip/chip.module.js +10 -5
- package/dist/components/clamp-text/clamp-text.css +1 -1
- package/dist/components/clamp-text/clamp-text.guide.json +15 -1
- package/dist/components/clamp-text/clamp-text.js +1 -1
- package/dist/components/clamp-text/clamp-text.module.js +4 -2
- package/dist/components/dialog/dialog-close.js +2 -2
- package/dist/components/dialog/dialog-indent-background.js +2 -2
- package/dist/components/dialog/dialog-indent.js +2 -2
- package/dist/components/dialog/dialog-sheet.js +3 -3
- package/dist/components/dialog/dialog-trigger.js +2 -2
- package/dist/components/dialog/dialog.css +1 -1
- package/dist/components/dialog/dialog.d.ts +5 -4
- package/dist/components/dialog/dialog.guide.json +15 -1
- package/dist/components/dialog/dialog.js +4 -3
- package/dist/components/dialog/dialog.module.js +24 -12
- package/dist/components/elevator/elevator.js +2 -2
- package/dist/components/fieldset/fieldset.js +1 -1
- package/dist/components/icon/icon.module.js +4 -2
- package/dist/components/icon-button/icon-button.js +2 -2
- package/dist/components/index.d.ts +21 -13
- package/dist/components/linear-progress/linear-progress.css +1 -1
- package/dist/components/linear-progress/linear-progress.guide.json +14 -1
- package/dist/components/linear-progress/linear-progress.js +1 -1
- package/dist/components/linear-progress/linear-progress.module.js +8 -4
- package/dist/components/masonry/masonry.css +1 -1
- package/dist/components/masonry/masonry.guide.json +42 -1
- package/dist/components/masonry/masonry.js +3 -3
- package/dist/components/masonry/masonry.module.js +6 -3
- package/dist/components/meter/index.d.ts +2 -0
- package/dist/components/meter/meter.css +1 -0
- package/dist/components/meter/meter.d.ts +44 -0
- package/dist/components/meter/meter.guide.json +39 -0
- package/dist/components/meter/meter.js +59 -0
- package/dist/components/meter/meter.module.js +11 -0
- package/dist/components/popover/index.d.ts +4 -0
- package/dist/components/popover/popover-sheet.d.ts +65 -0
- package/dist/components/popover/popover-sheet.js +79 -0
- package/dist/components/popover/popover.css +1 -0
- package/dist/components/popover/popover.d.ts +74 -0
- package/dist/components/popover/popover.guide.json +28 -0
- package/dist/components/popover/popover.js +23 -0
- package/dist/components/popover/popover.module.js +13 -0
- package/dist/components/progressive-blur/progressive-blur.css +1 -1
- package/dist/components/progressive-blur/progressive-blur.guide.json +15 -1
- package/dist/components/progressive-blur/progressive-blur.js +1 -1
- package/dist/components/progressive-blur/progressive-blur.module.js +6 -3
- package/dist/components/radio/radio-group.d.ts +1 -1
- package/dist/components/radio/radio-group.js +2 -2
- package/dist/components/radio/radio.css +1 -1
- package/dist/components/radio/radio.js +1 -1
- package/dist/components/radio/radio.module.js +8 -4
- package/dist/components/select/select-group.js +1 -1
- package/dist/components/select/select-option.js +3 -3
- package/dist/components/select/select.css +1 -1
- package/dist/components/select/select.guide.json +26 -1
- package/dist/components/select/select.js +5 -4
- package/dist/components/select/select.module.js +36 -18
- package/dist/components/separator/separator.css +1 -1
- package/dist/components/separator/separator.js +1 -1
- package/dist/components/separator/separator.module.js +4 -2
- package/dist/components/shimmer/shimmer.css +1 -1
- package/dist/components/shimmer/shimmer.guide.json +39 -1
- package/dist/components/shimmer/shimmer.js +4 -4
- package/dist/components/shimmer/shimmer.module.js +4 -2
- package/dist/components/skeleton/skeleton.css +1 -1
- package/dist/components/skeleton/skeleton.guide.json +50 -1
- package/dist/components/skeleton/skeleton.js +5 -5
- package/dist/components/skeleton/skeleton.module.js +4 -2
- package/dist/components/slider/slider.css +1 -1
- package/dist/components/slider/slider.guide.json +20 -1
- package/dist/components/slider/slider.js +1 -1
- package/dist/components/slider/slider.module.js +20 -10
- package/dist/components/spinner/spinner.css +1 -1
- package/dist/components/spinner/spinner.guide.json +15 -1
- package/dist/components/spinner/spinner.module.js +6 -3
- package/dist/components/stack/stack.css +1 -1
- package/dist/components/stack/stack.guide.json +77 -1
- package/dist/components/stack/stack.js +8 -8
- package/dist/components/stack/stack.module.js +4 -2
- package/dist/components/static-noise/static-noise.module.js +6 -3
- package/dist/components/surface/surface-radius-context.js +7 -7
- package/dist/components/surface/surface.css +1 -1
- package/dist/components/surface/surface.d.ts +1 -1
- package/dist/components/surface/surface.guide.json +85 -1
- package/dist/components/surface/surface.js +6 -6
- package/dist/components/surface/surface.module.js +4 -2
- package/dist/components/switch/switch.css +1 -1
- package/dist/components/switch/switch.guide.json +32 -1
- package/dist/components/switch/switch.js +1 -1
- package/dist/components/switch/switch.module.js +10 -5
- package/dist/components/tabs/tabs-indicator.js +2 -2
- package/dist/components/tabs/tabs-list.js +2 -2
- package/dist/components/tabs/tabs-panel.js +2 -2
- package/dist/components/tabs/tabs-tab.js +2 -2
- package/dist/components/tabs/tabs-viewport.js +2 -2
- package/dist/components/tabs/tabs.css +1 -1
- package/dist/components/tabs/tabs.guide.json +8 -1
- package/dist/components/tabs/tabs.js +2 -2
- package/dist/components/tabs/tabs.module.js +16 -8
- package/dist/components/text/text.css +1 -1
- package/dist/components/text/text.guide.json +125 -1
- package/dist/components/text/text.js +11 -11
- package/dist/components/text/text.module.js +4 -2
- package/dist/components/textarea/textarea.css +1 -1
- package/dist/components/textarea/textarea.guide.json +14 -1
- package/dist/components/textarea/textarea.js +1 -1
- package/dist/components/textarea/textarea.module.js +10 -5
- package/dist/components/textfield/textfield.css +1 -1
- package/dist/components/textfield/textfield.guide.json +20 -1
- package/dist/components/textfield/textfield.js +1 -1
- package/dist/components/textfield/textfield.module.js +14 -7
- package/dist/components/title/title.css +1 -1
- package/dist/components/title/title.guide.json +123 -1
- package/dist/components/title/title.js +11 -11
- package/dist/components/title/title.module.js +4 -2
- package/dist/components/toast/toast-action.js +2 -2
- package/dist/components/toast/toast-banner.js +1 -1
- package/dist/components/toast/toast-viewport.js +2 -2
- package/dist/components/toast/toast.css +1 -1
- package/dist/components/toast/toast.module.js +8 -4
- package/dist/components/toggle-button/index.d.ts +2 -0
- package/dist/components/toggle-button/toggle-button.d.ts +39 -0
- package/dist/components/toggle-button/toggle-button.guide.json +25 -0
- package/dist/components/toggle-button/toggle-button.js +25 -0
- package/dist/components/toggle-group/index.d.ts +2 -0
- package/dist/components/toggle-group/toggle-group.d.ts +11 -0
- package/dist/components/toggle-group/toggle-group.guide.json +26 -0
- package/dist/components/toggle-group/toggle-group.js +15 -0
- package/dist/components/tooltip/index.d.ts +6 -0
- package/dist/components/tooltip/tooltip-content.d.ts +15 -0
- package/dist/components/tooltip/tooltip-content.js +32 -0
- package/dist/components/tooltip/tooltip.css +1 -0
- package/dist/components/tooltip/tooltip.d.ts +13 -0
- package/dist/components/tooltip/tooltip.guide.json +25 -0
- package/dist/components/tooltip/tooltip.js +20 -0
- package/dist/components/tooltip/tooltip.module.js +11 -0
- package/dist/components/typewriter/index.d.ts +3 -0
- package/dist/components/typewriter/typewriter.css +1 -0
- package/dist/components/typewriter/typewriter.d.ts +68 -0
- package/dist/components/typewriter/typewriter.guide.json +39 -0
- package/dist/components/typewriter/typewriter.js +105 -0
- package/dist/components/typewriter/typewriter.module.js +18 -0
- package/dist/components/typewriter/typewriter.utils.d.ts +23 -0
- package/dist/components/typewriter/typewriter.utils.js +100 -0
- package/dist/index.js +26 -16
- package/dist/preflight-surface.json +17 -4
- package/dist/preflight.css +1 -1
- package/package.json +6 -6
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { Popover as PrimitivePopover, PopoverClose as PopoverCloseNamespace, PopoverDescription as PopoverDescriptionNamespace, PopoverRoot, PopoverTitle as PopoverTitleNamespace, PopoverTrigger as PopoverTriggerNamespace } from '@base-ui/react/popover';
|
|
2
|
+
import { PopoverSheetProps } from './popover-sheet';
|
|
3
|
+
import type * as React from 'react';
|
|
4
|
+
/**
|
|
5
|
+
* Public Popover root props.
|
|
6
|
+
*
|
|
7
|
+
* Pass-through to Base UI `Popover.Root`. Supports `open`/`defaultOpen`/`onOpenChange`,
|
|
8
|
+
* `modal` (focus trap and outside interaction), `triggerId` for controlled activation,
|
|
9
|
+
* and `handle` for detached/multiple triggers. `children` may be a node or a
|
|
10
|
+
* `({ payload }) => ReactNode` render function for per-trigger content.
|
|
11
|
+
*
|
|
12
|
+
* @default Base UI pass-through props keep upstream defaults.
|
|
13
|
+
*/
|
|
14
|
+
export type PopoverProps = PopoverRoot.Props;
|
|
15
|
+
/**
|
|
16
|
+
* Public Popover.Trigger props.
|
|
17
|
+
*
|
|
18
|
+
* Pass-through to Base UI `Popover.Trigger`. Use `render` for the visible control
|
|
19
|
+
* (`Button`, `IconButton`, or another element) and set `nativeButton` when the
|
|
20
|
+
* rendered root is not a native `<button>`. Pass `handle` for detached triggers,
|
|
21
|
+
* `payload` for per-trigger content, `openOnHover`/`delay`/`closeDelay` for hover
|
|
22
|
+
* open behavior, and `id` for controlled activation via the Root `triggerId` prop.
|
|
23
|
+
*
|
|
24
|
+
* @default Base UI pass-through props keep upstream defaults.
|
|
25
|
+
*/
|
|
26
|
+
export type PopoverTriggerProps = PopoverTriggerNamespace.Props;
|
|
27
|
+
/**
|
|
28
|
+
* Public Popover.Close props.
|
|
29
|
+
*
|
|
30
|
+
* Pass-through to Base UI `Popover.Close`. Use `render` for the visible control
|
|
31
|
+
* (`Button`, `IconButton`, or another element) and set `nativeButton` when the
|
|
32
|
+
* rendered root is not a native `<button>`.
|
|
33
|
+
*
|
|
34
|
+
* Compose inside `Popover.Sheet` so the control closes the open popover.
|
|
35
|
+
*
|
|
36
|
+
* @default Base UI pass-through props keep upstream defaults.
|
|
37
|
+
*/
|
|
38
|
+
export type PopoverCloseProps = PopoverCloseNamespace.Props;
|
|
39
|
+
/**
|
|
40
|
+
* Public Popover.Title props.
|
|
41
|
+
*
|
|
42
|
+
* Pass-through to Base UI `Popover.Title`. Use `render` for the visible heading
|
|
43
|
+
* (for example the Vira `Title` primitive). Compose inside an `unstyled`
|
|
44
|
+
* `Popover.Sheet` so the popup keeps an accessible name; the styled sheet
|
|
45
|
+
* renders it internally from its `title` prop.
|
|
46
|
+
*
|
|
47
|
+
* @default Base UI pass-through props keep upstream defaults.
|
|
48
|
+
*/
|
|
49
|
+
export type PopoverTitleProps = PopoverTitleNamespace.Props;
|
|
50
|
+
/**
|
|
51
|
+
* Public Popover.Description props.
|
|
52
|
+
*
|
|
53
|
+
* Pass-through to Base UI `Popover.Description`. Use `render` for the visible
|
|
54
|
+
* copy (for example the Vira `Text` primitive). Compose inside an `unstyled`
|
|
55
|
+
* `Popover.Sheet`; the styled sheet renders it internally from its
|
|
56
|
+
* `description` prop.
|
|
57
|
+
*
|
|
58
|
+
* @default Base UI pass-through props keep upstream defaults.
|
|
59
|
+
*/
|
|
60
|
+
export type PopoverDescriptionProps = PopoverDescriptionNamespace.Props;
|
|
61
|
+
export declare const PopoverTrigger: PrimitivePopover.Trigger;
|
|
62
|
+
export declare const PopoverClose: React.ForwardRefExoticComponent<Omit<import('@base-ui/react').PopoverCloseProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
63
|
+
export declare const PopoverTitle: React.ForwardRefExoticComponent<Omit<import('@base-ui/react').PopoverTitleProps, "ref"> & React.RefAttributes<HTMLHeadingElement>>;
|
|
64
|
+
export declare const PopoverDescription: React.ForwardRefExoticComponent<Omit<import('@base-ui/react').PopoverDescriptionProps, "ref"> & React.RefAttributes<HTMLParagraphElement>>;
|
|
65
|
+
type PopoverComponent = React.FC<PopoverProps> & {
|
|
66
|
+
Trigger: React.FC<PopoverTriggerProps>;
|
|
67
|
+
Sheet: React.FC<PopoverSheetProps>;
|
|
68
|
+
Close: React.FC<PopoverCloseProps>;
|
|
69
|
+
Title: React.FC<PopoverTitleProps>;
|
|
70
|
+
Description: React.FC<PopoverDescriptionProps>;
|
|
71
|
+
createHandle: typeof PrimitivePopover.createHandle;
|
|
72
|
+
};
|
|
73
|
+
export declare const Popover: PopoverComponent;
|
|
74
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Popover",
|
|
3
|
+
"summary": "Compound popover built on Base UI Popover with `Popover.Trigger`, `Popover.Sheet`, `Popover.Close`, `Popover.Title`, `Popover.Description`, and `Popover.createHandle` for detached and multiple triggers; `Sheet` encapsulates Portal + Positioner + Popup + Viewport + Title + Description and animates position, size, and content between triggers; `Sheet` with `unstyled` skips the built-in Surface and header so the consumer composes the popup chrome, including `Popover.Title` and `Popover.Description`.",
|
|
4
|
+
"whenToUse": [
|
|
5
|
+
"Anchored quick actions or contextual hints next to a triggering control",
|
|
6
|
+
"Lightweight forms or confirmations that float beside the trigger without blocking the page",
|
|
7
|
+
"Multi-trigger panels that swap content with direction-aware animations using `Popover.createHandle` and trigger `payload`",
|
|
8
|
+
"Hover-revealed hints via `openOnHover` with `delay` and `closeDelay`",
|
|
9
|
+
"Fully custom popup chrome via `Sheet` `unstyled` composed with `Popover.Title` and `Popover.Description`"
|
|
10
|
+
],
|
|
11
|
+
"whenNotToUse": [
|
|
12
|
+
"Modal tasks that must block the page and demand focused attention (use Dialog)",
|
|
13
|
+
"Nested drill-down sheet flows (use Dialog)",
|
|
14
|
+
"System-wide transient alerts and confirmations (use Toast)"
|
|
15
|
+
],
|
|
16
|
+
"accessibility": [
|
|
17
|
+
"Always pass `title`; add `description` when the heading alone is not enough context",
|
|
18
|
+
"With `unstyled`, render `Popover.Title` inside `children` (and `Popover.Description` when needed) so the popup keeps an accessible name",
|
|
19
|
+
"Compose `Popover.Close` with an accessible name when a visible close control is needed, or set `showCloseButton` for the built-in one",
|
|
20
|
+
"Use `modal` to control focus trap and outside interaction; render a `Popover.Close` inside the popup when `modal` is `true` or `'trap-focus'` so touch screen readers can escape"
|
|
21
|
+
],
|
|
22
|
+
"antiPatterns": [
|
|
23
|
+
"Opening a popover without `title` copy for assistive technologies",
|
|
24
|
+
"Rendering heavy or scroll-bound content that belongs in a Dialog",
|
|
25
|
+
"Expecting `Popover.Arrow` (it is intentionally not exported or rendered)"
|
|
26
|
+
],
|
|
27
|
+
"related": ["Surface", "Button", "IconButton", "Stack", "Dialog", "Tabs"]
|
|
28
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import './popover.css';
|
|
2
|
+
import { PopoverSheet } from "./popover-sheet.js";
|
|
3
|
+
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
import { Popover } from "@base-ui/react/popover";
|
|
5
|
+
//#region src/components/popover/popover.tsx
|
|
6
|
+
var PopoverTrigger = Popover.Trigger;
|
|
7
|
+
var PopoverClose = Popover.Close;
|
|
8
|
+
var PopoverTitle = Popover.Title;
|
|
9
|
+
var PopoverDescription = Popover.Description;
|
|
10
|
+
var PopoverRootComponent = ({ children, ...otherProps }) => /* @__PURE__ */ jsx(Popover.Root, {
|
|
11
|
+
...otherProps,
|
|
12
|
+
children
|
|
13
|
+
});
|
|
14
|
+
var Popover$1 = Object.assign(PopoverRootComponent, {
|
|
15
|
+
Trigger: Popover.Trigger,
|
|
16
|
+
Sheet: PopoverSheet,
|
|
17
|
+
Close: Popover.Close,
|
|
18
|
+
Title: Popover.Title,
|
|
19
|
+
Description: Popover.Description,
|
|
20
|
+
createHandle: Popover.createHandle
|
|
21
|
+
});
|
|
22
|
+
//#endregion
|
|
23
|
+
export { Popover$1 as Popover, PopoverClose, PopoverDescription, PopoverTitle, PopoverTrigger };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
//#region src/components/popover/popover.module.css
|
|
2
|
+
var Sheet = "viraui__popover-module__Sheet_4x-7H";
|
|
3
|
+
var Popup = "viraui__popover-module__Popup_pJyIh";
|
|
4
|
+
var Viewport = "viraui__popover-module__Viewport_KrjBC";
|
|
5
|
+
var CloseButton = "viraui__popover-module__CloseButton_YOe2L";
|
|
6
|
+
var popover_module_default = {
|
|
7
|
+
Sheet,
|
|
8
|
+
Popup,
|
|
9
|
+
Viewport,
|
|
10
|
+
CloseButton
|
|
11
|
+
};
|
|
12
|
+
//#endregion
|
|
13
|
+
export { CloseButton, Popup, Sheet, Viewport, popover_module_default as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.viraui__progressive-blur-module__ProgressiveBlur_eIxTK{--progressive-blur:16px;pointer-events:none}.viraui__progressive-blur-module__Layer_zbzMS{position:absolute;inset:0;backdrop-filter:blur(calc(var(--progressive-blur) * var(--progressive-blur-factor)));mask-image:var(--progressive-blur-mask-image);.viraui__progressive-blur-module__ProgressiveBlur_eIxTK[data-direction=top] &{--progressive-blur-mask-image:linear-gradient(to top,var(--progressive-blur-mask-gradient))}.viraui__progressive-blur-module__ProgressiveBlur_eIxTK[data-direction=right] &{--progressive-blur-mask-image:linear-gradient(to right,var(--progressive-blur-mask-gradient))}.viraui__progressive-blur-module__ProgressiveBlur_eIxTK[data-direction=bottom] &{--progressive-blur-mask-image:linear-gradient(to bottom,var(--progressive-blur-mask-gradient))}.viraui__progressive-blur-module__ProgressiveBlur_eIxTK[data-direction=left] &{--progressive-blur-mask-image:linear-gradient(to left,var(--progressive-blur-mask-gradient))}}
|
|
1
|
+
.viraui__progressive-blur-module__ProgressiveBlur_eIxTK{--vui-progressive-blur-amount:16px;pointer-events:none}.viraui__progressive-blur-module__Layer_zbzMS{position:absolute;inset:0;backdrop-filter:blur(calc(var(--vui-progressive-blur-amount) * var(--progressive-blur-factor)));mask-image:var(--progressive-blur-mask-image);.viraui__progressive-blur-module__ProgressiveBlur_eIxTK[data-direction=top] &{--progressive-blur-mask-image:linear-gradient(to top,var(--progressive-blur-mask-gradient))}.viraui__progressive-blur-module__ProgressiveBlur_eIxTK[data-direction=right] &{--progressive-blur-mask-image:linear-gradient(to right,var(--progressive-blur-mask-gradient))}.viraui__progressive-blur-module__ProgressiveBlur_eIxTK[data-direction=bottom] &{--progressive-blur-mask-image:linear-gradient(to bottom,var(--progressive-blur-mask-gradient))}.viraui__progressive-blur-module__ProgressiveBlur_eIxTK[data-direction=left] &{--progressive-blur-mask-image:linear-gradient(to left,var(--progressive-blur-mask-gradient))}}
|
|
@@ -21,5 +21,19 @@
|
|
|
21
21
|
"Driving layout size or scroll behavior from inside the overlay component",
|
|
22
22
|
"Embedding layout positioning rules inside the component stylesheet"
|
|
23
23
|
],
|
|
24
|
-
"related": ["Surface", "StaticNoise"]
|
|
24
|
+
"related": ["Surface", "StaticNoise"],
|
|
25
|
+
"properties": {
|
|
26
|
+
"react": {
|
|
27
|
+
"blur": {
|
|
28
|
+
"description": "Sets the maximum blur radius applied to the first layer at the selected edge.",
|
|
29
|
+
"refCss": "amount"
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"css": {
|
|
33
|
+
"amount": {
|
|
34
|
+
"description": "Maximum blur amount for progressive blur layers.",
|
|
35
|
+
"refReact": "blur"
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
25
39
|
}
|
|
@@ -9,7 +9,7 @@ var ProgressiveBlur = ({ blur = "16px", className, direction = "bottom", easing
|
|
|
9
9
|
const { componentProps, intrinsicAttributes } = extractIntrinsicViraProps(otherProps);
|
|
10
10
|
const resolvedSteps = resolveProgressiveBlurSteps(steps, easing);
|
|
11
11
|
const dynamicStyle = {
|
|
12
|
-
"--progressive-blur": blur,
|
|
12
|
+
"--vui-progressive-blur-amount": blur,
|
|
13
13
|
...style
|
|
14
14
|
};
|
|
15
15
|
const layers = Array.from({ length: resolvedSteps }, (_, layerIndex) => {
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
//#region src/components/progressive-blur/progressive-blur.module.css
|
|
2
|
+
var ProgressiveBlur = "viraui__progressive-blur-module__ProgressiveBlur_eIxTK";
|
|
3
|
+
var Layer = "viraui__progressive-blur-module__Layer_zbzMS";
|
|
1
4
|
var progressive_blur_module_default = {
|
|
2
|
-
ProgressiveBlur
|
|
3
|
-
Layer
|
|
5
|
+
ProgressiveBlur,
|
|
6
|
+
Layer
|
|
4
7
|
};
|
|
5
8
|
//#endregion
|
|
6
|
-
export { progressive_blur_module_default as default };
|
|
9
|
+
export { Layer, ProgressiveBlur, progressive_blur_module_default as default };
|
|
@@ -8,4 +8,4 @@ import { RadioGroup as RadioGroupPrimitive } from '@base-ui/react';
|
|
|
8
8
|
* @default Base UI pass-through props keep upstream defaults.
|
|
9
9
|
*/
|
|
10
10
|
export type RadioGroupProps<Value = string> = RadioGroupPrimitive.Props<Value>;
|
|
11
|
-
export declare const RadioGroup: <Value>({ children, className, ...
|
|
11
|
+
export declare const RadioGroup: <Value>({ children, className, ...otherProps }: RadioGroupProps<Value>) => import("react").JSX.Element;
|
|
@@ -2,8 +2,8 @@ import { Stack } from "../stack/stack.js";
|
|
|
2
2
|
import { jsx } from "react/jsx-runtime";
|
|
3
3
|
import { RadioGroup } from "@base-ui/react";
|
|
4
4
|
//#region src/components/radio/radio-group.tsx
|
|
5
|
-
var RadioGroup$1 = ({ children, className, ...
|
|
6
|
-
...
|
|
5
|
+
var RadioGroup$1 = ({ children, className, ...otherProps }) => /* @__PURE__ */ jsx(RadioGroup, {
|
|
6
|
+
...otherProps,
|
|
7
7
|
className,
|
|
8
8
|
render: /* @__PURE__ */ jsx(Stack, {
|
|
9
9
|
"data-radiogroup": true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.viraui__radio-module__RadioRoot_3uvvn{--radio-size:var(--space-medium);--radio-background:var(--global-contrast);--radio-border-color:#0000;--radio-indicator-color:contrast-color(var(--global-primary));--radio-disk-size:calc(var(--radio-size) / 2);position:relative;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;appearance:none;border:0;box-shadow:inset 0 0 0 1px var(--radio-border-color);inline-size:var(--radio-size);block-size:var(--radio-size);background:var(--radio-background);border-radius:100000px;corner-shape:unset;&[data-size=regular]{--radio-size:var(--space-large)}&[data-checked]:not([data-disabled]):not([data-invalid]){--radio-background:var(--global-primary);--radio-border-color:var(--global-primary);box-shadow:none}&[data-invalid]:not([data-disabled]),[data-invalid] &:not([data-disabled]){--radio-border-color:var(--highlight-red);--radio-indicator-color:var(--global-primary);box-shadow:inset 0 0 0 1px var(--highlight-red);outline-color:oklab(from var(--highlight-red) l a b/.5)}&[data-disabled],[data-disabled] &{--radio-background:var(--global-disabled-background);--radio-border-color:#0000;--radio-indicator-color:var(--global-disabled-foreground);box-shadow:none;cursor:not-allowed}}.viraui__radio-module__Indicator_Ecavw{display:inline-flex;align-items:center;justify-content:center;color:var(--radio-indicator-color)}.viraui__radio-module__Disk_pV-Q1{inline-size:var(--radio-disk-size);aspect-ratio:1/1;border-radius:100000px;corner-shape:unset;background:currentColor}.viraui__radio-module__RadioRoot_3uvvn:not([data-checked]) .viraui__radio-module__Disk_pV-Q1{display:none}
|
|
1
|
+
.viraui__radio-module__RadioRoot_3uvvn{--vui-radio-size:var(--space-medium);--vui-radio-background:var(--global-contrast);--vui-radio-border-color:#0000;--vui-radio-indicator-color:contrast-color(var(--global-primary));--radio-disk-size:calc(var(--vui-radio-size) / 2);position:relative;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;appearance:none;border:0;box-shadow:inset 0 0 0 1px var(--vui-radio-border-color);inline-size:var(--vui-radio-size);block-size:var(--vui-radio-size);background:var(--vui-radio-background);border-radius:100000px;corner-shape:unset;&[data-size=regular]{--vui-radio-size:var(--space-large)}&[data-checked]:not([data-disabled]):not([data-invalid]){--vui-radio-background:var(--global-primary);--vui-radio-border-color:var(--global-primary);box-shadow:none}&[data-invalid]:not([data-disabled]),[data-invalid] &:not([data-disabled]){--vui-radio-border-color:var(--highlight-red);--vui-radio-indicator-color:var(--global-primary);box-shadow:inset 0 0 0 1px var(--highlight-red);outline-color:oklab(from var(--highlight-red) l a b/.5)}&[data-disabled],[data-disabled] &{--vui-radio-background:var(--global-disabled-background);--vui-radio-border-color:#0000;--vui-radio-indicator-color:var(--global-disabled-foreground);box-shadow:none;cursor:not-allowed}}.viraui__radio-module__Indicator_Ecavw{display:inline-flex;align-items:center;justify-content:center;color:var(--vui-radio-indicator-color)}.viraui__radio-module__Disk_pV-Q1{inline-size:var(--radio-disk-size);aspect-ratio:1/1;border-radius:100000px;corner-shape:unset;background:currentColor}.viraui__radio-module__RadioRoot_3uvvn:not([data-checked]) .viraui__radio-module__Disk_pV-Q1{display:none}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import './radio.css';
|
|
2
2
|
import { clsx } from "../../core/clsx.js";
|
|
3
|
-
import { Stack } from "../stack/stack.js";
|
|
4
3
|
import { FieldHelperCopy } from "../basic-input/field-helper-copy.js";
|
|
5
4
|
import { FieldLabel } from "../basic-input/field-label.js";
|
|
5
|
+
import { Stack } from "../stack/stack.js";
|
|
6
6
|
import radio_module_default from "./radio.module.js";
|
|
7
7
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
8
|
import { Field } from "@base-ui/react/field";
|
|
@@ -1,7 +1,11 @@
|
|
|
1
|
+
//#region src/components/radio/radio.module.css
|
|
2
|
+
var RadioRoot = "viraui__radio-module__RadioRoot_3uvvn";
|
|
3
|
+
var Indicator = "viraui__radio-module__Indicator_Ecavw";
|
|
4
|
+
var Disk = "viraui__radio-module__Disk_pV-Q1";
|
|
1
5
|
var radio_module_default = {
|
|
2
|
-
RadioRoot
|
|
3
|
-
Indicator
|
|
4
|
-
Disk
|
|
6
|
+
RadioRoot,
|
|
7
|
+
Indicator,
|
|
8
|
+
Disk
|
|
5
9
|
};
|
|
6
10
|
//#endregion
|
|
7
|
-
export { radio_module_default as default };
|
|
11
|
+
export { Disk, Indicator, RadioRoot, radio_module_default as default };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { clsx } from "../../core/clsx.js";
|
|
2
|
-
import { Stack } from "../stack/stack.js";
|
|
3
2
|
import { Text } from "../text/text.js";
|
|
3
|
+
import { Stack } from "../stack/stack.js";
|
|
4
4
|
import select_module_default from "./select.module.js";
|
|
5
5
|
import { SelectIndicatorSlot } from "./select-indicator-slot.js";
|
|
6
6
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { clsx } from "../../core/clsx.js";
|
|
2
|
-
import { Stack } from "../stack/stack.js";
|
|
3
2
|
import { Text } from "../text/text.js";
|
|
3
|
+
import { Stack } from "../stack/stack.js";
|
|
4
|
+
import { Icon } from "../icon/icon.js";
|
|
4
5
|
import select_module_default from "./select.module.js";
|
|
5
6
|
import { SelectIndicatorSlot } from "./select-indicator-slot.js";
|
|
6
|
-
import { Icon } from "../icon/icon.js";
|
|
7
7
|
import { Surface } from "../surface/surface.js";
|
|
8
8
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
9
|
import { Select } from "@base-ui/react";
|
|
@@ -18,7 +18,7 @@ function SelectOption({ addon, addonAlign = "center", children, className, disab
|
|
|
18
18
|
render: /* @__PURE__ */ jsx(Surface, { radius: "auto" }),
|
|
19
19
|
value,
|
|
20
20
|
children: /* @__PURE__ */ jsxs(Stack, {
|
|
21
|
-
columnGap: "
|
|
21
|
+
columnGap: "medium",
|
|
22
22
|
direction: "row",
|
|
23
23
|
hPadding: "small",
|
|
24
24
|
vPadding: "small",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.viraui__select-module__Select_eXv4Y{--input-height:var(--space-x-large);--control-group-background:var(--base-1);--control-group-color:var(--global-foreground);--control-group-border-color:var(--global-contrast);--control-group-border-radius:var(--radius-medium);--select-trigger-padding-inline-start:var(--space-small);--select-trigger-padding-inline-end:var(--space-x-small);--field-label-padding-inline:calc((var(--control-group-border-radius) + 0px) / 2);--select-list-appear-offest:8px;z-index:0;&:has([required]) .viraui__select-module__Label_-Y1fR:after{content:" *";color:var(--highlight-red)}&[data-invalid]>.viraui__select-module__Trigger_-wBsg:not(:disabled):not([data-disabled]){--control-group-border-color:var(--highlight-red);box-shadow:none;outline-color:oklab(from var(--highlight-red) l a b/.5)}}.viraui__select-module__Trigger_-wBsg{box-sizing:border-box;inline-size:100%;min-inline-size:0;block-size:var(--input-height);padding-inline:var(--select-trigger-padding-inline-start) var(--select-trigger-padding-inline-end);border:1px solid var(--control-group-border-color);border-radius:var(--control-group-border-radius);background:var(--control-group-background);color:var(--control-group-color);font:inherit;text-align:start;cursor:pointer;&[data-popup-open]{outline:none}&:disabled,&[data-disabled]{--control-group-background:var(--global-disabled-background);--control-group-border-color:#0000;--control-group-color:var(--global-disabled-foreground);box-shadow:none;cursor:not-allowed}}.viraui__select-module__Value_uWHPX{--text-fluid-factor:0;--text-font-size:var(--font-scale-body-small);flex:1 1 auto;min-inline-size:0;overflow:hidden;display:block;text-overflow:ellipsis;&[data-placeholder]{color:var(--global-disabled-foreground)}}.viraui__select-module__Icon_EOwki{font-size:var(--font-scale-body-small);pointer-events:none}.viraui__select-module__Description_OmwmV{padding-inline:calc((var(--control-group-border-radius) + 0px) / 2)}.viraui__select-module__SelectPopup_UzGXL{--select-list-border-radius:var(--radius-medium);--select-list-padding:var(--space-x-small);box-sizing:border-box;min-inline-size:var(--anchor-width);overflow:visible;color:var(--global-foreground);outline:none;position:relative;transform-origin:var(--transform-origin);transition:opacity var(--duration-instant) var(--easing-entrance),scale var(--duration-instant) var(--easing-entrance),translate var(--duration-instant) var(--easing-entrance);&[data-ending-style],&[data-starting-style]{opacity:0;scale:.96}&[data-side=bottom][data-ending-style],&[data-side=bottom][data-starting-style]{scale:.96;translate:0 calc(var(--select-list-appear-offest) * -1)}&[data-side=top][data-ending-style],&[data-side=top][data-starting-style]{scale:.96;translate:0 var(--select-list-appear-offest)}&[data-side=inline-start][data-ending-style],&[data-side=inline-start][data-starting-style],&[data-side=left][data-ending-style],&[data-side=left][data-starting-style]{scale:.96;translate:var(--select-list-appear-offest) 0}&[data-side=inline-end][data-ending-style],&[data-side=inline-end][data-starting-style],&[data-side=right][data-ending-style],&[data-side=right][data-starting-style]{scale:.96;translate:calc(var(--select-list-appear-offest) * -1) 0}&[data-side=none]{transition:none;scale:1;translate:0;opacity:1}}.viraui__select-module__ScrollArrow_kHlEi{position:absolute;inset-inline:0;z-index:1;inline-size:100%;block-size:var(--space-large);cursor:default;background:var(--base-1);border:1px solid var(--global-contrast);@container root not style(--vibrancy-enable: initial){background:oklab(from var(--base-1) l a b/80%);backdrop-filter:brightness(var(--vibrancy-brightness)) blur(calc(var(--vibrancy-blur) * 1px))}}.viraui__select-module__ScrollButton_sHBOa{pointer-events:none}.viraui__select-module__ScrollArrowUp_DGXS-{inset-block-start:0;border-radius:var(--select-list-border-radius) var(--select-list-border-radius) 0 0}.viraui__select-module__ScrollArrowDown_vhJy0{inset-block-end:0;border-radius:0 0 var(--select-list-border-radius) var(--select-list-border-radius)}.viraui__select-module__List_jdUWx{box-sizing:border-box;inline-size:100%;max-block-size:var(--available-height);
|
|
1
|
+
.viraui__select-module__Select_eXv4Y{--vui-select-input-height:var(--space-x-large);--vui-select-control-group-background:var(--base-1);--vui-select-control-group-color:var(--global-foreground);--vui-select-control-group-border-color:var(--global-contrast);--vui-select-control-group-border-radius:var(--radius-medium);--vui-select-trigger-padding-inline-start:var(--space-small);--vui-select-trigger-padding-inline-end:var(--space-x-small);--vui-field-label-padding-inline:calc((var(--vui-select-control-group-border-radius) + 0px) / 2);--select-list-appear-offest:8px;z-index:0;&:has([required]) .viraui__select-module__Label_-Y1fR:after{content:" *";color:var(--highlight-red)}&[data-invalid]>.viraui__select-module__Trigger_-wBsg:not(:disabled):not([data-disabled]){--vui-select-control-group-border-color:var(--highlight-red);box-shadow:none;outline-color:oklab(from var(--highlight-red) l a b/.5)}}.viraui__select-module__Trigger_-wBsg{box-sizing:border-box;inline-size:100%;min-inline-size:0;block-size:var(--vui-select-input-height);padding-inline:var(--vui-select-trigger-padding-inline-start) var(--vui-select-trigger-padding-inline-end);border:1px solid var(--vui-select-control-group-border-color);border-radius:var(--vui-select-control-group-border-radius);background:var(--vui-select-control-group-background);color:var(--vui-select-control-group-color);font:inherit;text-align:start;cursor:pointer;&[data-popup-open]{outline:none}&:disabled,&[data-disabled]{--vui-select-control-group-background:var(--global-disabled-background);--vui-select-control-group-border-color:#0000;--vui-select-control-group-color:var(--global-disabled-foreground);box-shadow:none;cursor:not-allowed}}.viraui__select-module__Value_uWHPX{--text-fluid-factor:0;--text-font-size:var(--font-scale-body-small);flex:1 1 auto;min-inline-size:0;overflow:hidden;display:block;text-overflow:ellipsis;&[data-placeholder]{color:var(--global-disabled-foreground)}}.viraui__select-module__Icon_EOwki{font-size:var(--font-scale-body-small);pointer-events:none}.viraui__select-module__Description_OmwmV{padding-inline:calc((var(--vui-select-control-group-border-radius) + 0px) / 2)}.viraui__select-module__SelectPopup_UzGXL{--vui-select-list-border-radius:var(--radius-medium);--vui-select-list-padding:var(--space-x-small);box-sizing:border-box;min-inline-size:var(--anchor-width);overflow:visible;color:var(--global-foreground);outline:none;position:relative;transform-origin:var(--transform-origin);transition:opacity var(--duration-instant) var(--easing-entrance),scale var(--duration-instant) var(--easing-entrance),translate var(--duration-instant) var(--easing-entrance);&[data-ending-style],&[data-starting-style]{opacity:0;scale:.96}&[data-side=bottom][data-ending-style],&[data-side=bottom][data-starting-style]{scale:.96;translate:0 calc(var(--select-list-appear-offest) * -1)}&[data-side=top][data-ending-style],&[data-side=top][data-starting-style]{scale:.96;translate:0 var(--select-list-appear-offest)}&[data-side=inline-start][data-ending-style],&[data-side=inline-start][data-starting-style],&[data-side=left][data-ending-style],&[data-side=left][data-starting-style]{scale:.96;translate:var(--select-list-appear-offest) 0}&[data-side=inline-end][data-ending-style],&[data-side=inline-end][data-starting-style],&[data-side=right][data-ending-style],&[data-side=right][data-starting-style]{scale:.96;translate:calc(var(--select-list-appear-offest) * -1) 0}&[data-side=none]{transition:none;scale:1;translate:0;opacity:1}}.viraui__select-module__ScrollArrow_kHlEi{position:absolute;inset-inline:0;z-index:1;inline-size:100%;block-size:var(--space-large);cursor:default;background:var(--base-1);border:1px solid var(--global-contrast);@container root not style(--vibrancy-enable: initial){background:oklab(from var(--base-1) l a b/80%);backdrop-filter:brightness(var(--vibrancy-brightness)) blur(calc(var(--vibrancy-blur) * 1px))}}.viraui__select-module__ScrollButton_sHBOa{pointer-events:none}.viraui__select-module__ScrollArrowUp_DGXS-{inset-block-start:0;border-radius:var(--vui-select-list-border-radius) var(--vui-select-list-border-radius) 0 0}.viraui__select-module__ScrollArrowDown_vhJy0{inset-block-end:0;border-radius:0 0 var(--vui-select-list-border-radius) var(--vui-select-list-border-radius)}.viraui__select-module__List_jdUWx{box-sizing:border-box;inline-size:100%;max-block-size:var(--available-height);scroll-padding-block:var(--vui-select-list-padding);list-style:none;overscroll-behavior:contain;&:focus,&:focus-visible{outline:none}}.viraui__select-module__OptionText_UynBD{flex:1 1 auto;min-inline-size:0}.viraui__select-module__Option_KgYqz{border-radius:calc((var(--vui-select-list-border-radius) + 0px) - var(--vui-select-list-padding));cursor:pointer;&:focus{outline:none}&:focus-visible{outline:none;box-shadow:none}&:not([data-disabled]):hover,&:not([data-disabled])[data-highlighted]{background:var(--global-contrast);@container root not style(--vibrancy-enable: initial){background:oklab(from var(--global-contrast) l a b/12%)}}&:not([data-disabled],:hover)[data-selected]{background:oklab(from var(--global-contrast) l a b/8%)}&[data-disabled]{color:var(--global-disabled-foreground);cursor:not-allowed}}.viraui__select-module__Indicator_YNUuz{inline-size:var(--space-medium);color:var(--global-primary);opacity:0;transition:opacity var(--duration-fast) var(--easing-standard),transform var(--duration-fast) var(--easing-standard);&[data-selected]{opacity:1}}.viraui__select-module__Group_xzkuA+.viraui__select-module__Group_xzkuA{margin-block-start:var(--space-medium)}.viraui__select-module__Separator_Q-ri9{block-size:1px;margin-block:var(--space-small);margin-inline:var(--space-small);background:var(--base-3)}
|
|
@@ -23,5 +23,30 @@
|
|
|
23
23
|
"Leaving the trigger without label or aria-label",
|
|
24
24
|
"Never set the size prop (if present) of Buttons, IconButtons or other interactive elements passed as addon other than small"
|
|
25
25
|
],
|
|
26
|
-
"related": ["Fieldset", "Textfield", "Stack", "Surface", "Icon"]
|
|
26
|
+
"related": ["Fieldset", "Textfield", "Stack", "Surface", "Icon"],
|
|
27
|
+
"properties": {
|
|
28
|
+
"css": {
|
|
29
|
+
"input-height": {
|
|
30
|
+
"description": "Select trigger block size."
|
|
31
|
+
},
|
|
32
|
+
"control-group-background": {
|
|
33
|
+
"description": "Trigger background fill."
|
|
34
|
+
},
|
|
35
|
+
"control-group-color": {
|
|
36
|
+
"description": "Trigger text and icon color."
|
|
37
|
+
},
|
|
38
|
+
"control-group-border-color": {
|
|
39
|
+
"description": "Trigger border color; invalid state overrides."
|
|
40
|
+
},
|
|
41
|
+
"control-group-border-radius": {
|
|
42
|
+
"description": "Trigger corner radius."
|
|
43
|
+
},
|
|
44
|
+
"trigger-padding-inline-start": {
|
|
45
|
+
"description": "Trigger inline-start padding."
|
|
46
|
+
},
|
|
47
|
+
"trigger-padding-inline-end": {
|
|
48
|
+
"description": "Trigger inline-end padding."
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
27
52
|
}
|
|
@@ -2,17 +2,17 @@
|
|
|
2
2
|
import './select.css';
|
|
3
3
|
import { clsx } from "../../core/clsx.js";
|
|
4
4
|
import { extractIntrinsicViraProps } from "../../core/props/intrinsic-vira-props.js";
|
|
5
|
-
import { Stack } from "../stack/stack.js";
|
|
6
|
-
import { Elevator } from "../elevator/elevator.js";
|
|
7
|
-
import { IconButton } from "../icon-button/icon-button.js";
|
|
8
5
|
import { Text } from "../text/text.js";
|
|
9
6
|
import { FieldHelperCopy } from "../basic-input/field-helper-copy.js";
|
|
10
7
|
import { FieldLabel } from "../basic-input/field-label.js";
|
|
8
|
+
import { Stack } from "../stack/stack.js";
|
|
9
|
+
import { Elevator } from "../elevator/elevator.js";
|
|
10
|
+
import { Icon } from "../icon/icon.js";
|
|
11
|
+
import { IconButton } from "../icon-button/icon-button.js";
|
|
11
12
|
import select_module_default from "./select.module.js";
|
|
12
13
|
import { SelectGroup } from "./select-group.js";
|
|
13
14
|
import { SelectOption } from "./select-option.js";
|
|
14
15
|
import { SelectSeparator } from "./select-separator.js";
|
|
15
|
-
import { Icon } from "../icon/icon.js";
|
|
16
16
|
import { Surface } from "../surface/surface.js";
|
|
17
17
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
18
18
|
import { useId } from "react";
|
|
@@ -118,6 +118,7 @@ function SelectRootComponent({ alignListWithTrigger = false, children, className
|
|
|
118
118
|
border: "all",
|
|
119
119
|
color: 1,
|
|
120
120
|
hPadding: "x-small",
|
|
121
|
+
overflow: "auto",
|
|
121
122
|
radius: "medium",
|
|
122
123
|
vPadding: "x-small",
|
|
123
124
|
vibrant: true
|
|
@@ -1,21 +1,39 @@
|
|
|
1
|
+
//#region src/components/select/select.module.css
|
|
2
|
+
var Select = "viraui__select-module__Select_eXv4Y";
|
|
3
|
+
var Label = "viraui__select-module__Label_-Y1fR";
|
|
4
|
+
var Trigger = "viraui__select-module__Trigger_-wBsg";
|
|
5
|
+
var Value = "viraui__select-module__Value_uWHPX";
|
|
6
|
+
var Icon = "viraui__select-module__Icon_EOwki";
|
|
7
|
+
var Description = "viraui__select-module__Description_OmwmV";
|
|
8
|
+
var SelectPopup = "viraui__select-module__SelectPopup_UzGXL";
|
|
9
|
+
var ScrollArrow = "viraui__select-module__ScrollArrow_kHlEi";
|
|
10
|
+
var ScrollButton = "viraui__select-module__ScrollButton_sHBOa";
|
|
11
|
+
var ScrollArrowUp = "viraui__select-module__ScrollArrowUp_DGXS-";
|
|
12
|
+
var ScrollArrowDown = "viraui__select-module__ScrollArrowDown_vhJy0";
|
|
13
|
+
var List = "viraui__select-module__List_jdUWx";
|
|
14
|
+
var OptionText = "viraui__select-module__OptionText_UynBD";
|
|
15
|
+
var Option = "viraui__select-module__Option_KgYqz";
|
|
16
|
+
var Indicator = "viraui__select-module__Indicator_YNUuz";
|
|
17
|
+
var Group = "viraui__select-module__Group_xzkuA";
|
|
18
|
+
var Separator = "viraui__select-module__Separator_Q-ri9";
|
|
1
19
|
var select_module_default = {
|
|
2
|
-
Select
|
|
3
|
-
Label
|
|
4
|
-
Trigger
|
|
5
|
-
Value
|
|
6
|
-
Icon
|
|
7
|
-
Description
|
|
8
|
-
SelectPopup
|
|
9
|
-
ScrollArrow
|
|
10
|
-
ScrollButton
|
|
11
|
-
ScrollArrowUp
|
|
12
|
-
ScrollArrowDown
|
|
13
|
-
List
|
|
14
|
-
OptionText
|
|
15
|
-
Option
|
|
16
|
-
Indicator
|
|
17
|
-
Group
|
|
18
|
-
Separator
|
|
20
|
+
Select,
|
|
21
|
+
Label,
|
|
22
|
+
Trigger,
|
|
23
|
+
Value,
|
|
24
|
+
Icon,
|
|
25
|
+
Description,
|
|
26
|
+
SelectPopup,
|
|
27
|
+
ScrollArrow,
|
|
28
|
+
ScrollButton,
|
|
29
|
+
ScrollArrowUp,
|
|
30
|
+
ScrollArrowDown,
|
|
31
|
+
List,
|
|
32
|
+
OptionText,
|
|
33
|
+
Option,
|
|
34
|
+
Indicator,
|
|
35
|
+
Group,
|
|
36
|
+
Separator
|
|
19
37
|
};
|
|
20
38
|
//#endregion
|
|
21
|
-
export { select_module_default as default };
|
|
39
|
+
export { Description, Group, Icon, Indicator, Label, List, Option, OptionText, ScrollArrow, ScrollArrowDown, ScrollArrowUp, ScrollButton, Select, SelectPopup, Separator, Trigger, Value, select_module_default as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.viraui__separator-module__Line_xXOe9{--separator-size:1px;border:0;margin:0;background:oklab(from var(--global-contrast) l a b/20%);&[data-separator-orientation=horizontal]{inline-size:100%;block-size:var(--separator-size)}&[data-separator-orientation=vertical]{inline-size:var(--separator-size);block-size:100%}}
|
|
1
|
+
.viraui__separator-module__Line_xXOe9{--vui-separator-size:1px;border:0;margin:0;background:oklab(from var(--global-contrast) l a b/20%);&[data-separator-orientation=horizontal]{inline-size:100%;block-size:var(--vui-separator-size)}&[data-separator-orientation=vertical]{inline-size:var(--vui-separator-size);block-size:100%}}
|
|
@@ -14,7 +14,7 @@ var separatorSizeValues = {
|
|
|
14
14
|
var Separator = ({ className, hPadding, orientation = "horizontal", ref, render, size = "small", style, vPadding, ...otherProps }) => {
|
|
15
15
|
const { componentProps, intrinsicAttributes } = extractIntrinsicViraProps(otherProps);
|
|
16
16
|
const dynamicStyle = {
|
|
17
|
-
"--separator-size": `${separatorSizeValues[size]}px`,
|
|
17
|
+
"--vui-separator-size": `${separatorSizeValues[size]}px`,
|
|
18
18
|
...style
|
|
19
19
|
};
|
|
20
20
|
const line = useRender({
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
//#region src/components/separator/separator.module.css
|
|
2
|
+
var Line = "viraui__separator-module__Line_xXOe9";
|
|
3
|
+
var separator_module_default = { Line };
|
|
2
4
|
//#endregion
|
|
3
|
-
export { separator_module_default as default };
|
|
5
|
+
export { Line, separator_module_default as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.viraui__shimmer-module__Shimmer_1k-ZM{--shimmer-duration:var(--duration-slowest);--shimmer-spread:calc(3ch + var(--space-2x-large));--shimmer-angle:0deg;--shimmer-base:currentcolor;--shimmer-highlight:oklch(from var(--shimmer-base) min(calc(l + 0.35),1) c h);background-image:linear-gradient(calc(90deg + var(--shimmer-angle)),var(--shimmer-base) calc(50% - var(--shimmer-spread)),color-mix(in oklch,var(--shimmer-highlight),var(--shimmer-base) 50%) calc(50% - var(--shimmer-spread) * .5),var(--shimmer-highlight) 50%,color-mix(in oklch,var(--shimmer-highlight),var(--shimmer-base) 50%) calc(50% + var(--shimmer-spread) * .5),var(--shimmer-base) calc(50% + var(--shimmer-spread)));background-repeat:no-repeat;background-size:calc(200% + var(--shimmer-spread) * 2) 100%;background-position:0 0;background-clip:text;-webkit-text-fill-color:#0000;animation:viraui__shimmer-module__shimmer-slide_V1znC var(--shimmer-duration) linear infinite;&::selection{background-color:var(--global-primary);color:contrast-color(var(--global-primary));-webkit-text-fill-color:contrast-color(var(--global-primary));background-image:none;background-clip:initial;text-shadow:none}@media (prefers-reduced-motion:reduce){animation:none;background-image:none;-webkit-text-fill-color:currentcolor}}@keyframes viraui__shimmer-module__shimmer-slide_V1znC{0%{background-position:0 0}to{background-position:100% 0}}
|
|
1
|
+
.viraui__shimmer-module__Shimmer_1k-ZM{--vui-shimmer-duration:var(--duration-slowest);--vui-shimmer-spread:calc(3ch + var(--space-2x-large));--vui-shimmer-angle:0deg;--shimmer-base:currentcolor;--vui-shimmer-highlight:oklch(from var(--shimmer-base) min(calc(l + 0.35),1) c h);background-image:linear-gradient(calc(90deg + var(--vui-shimmer-angle)),var(--shimmer-base) calc(50% - var(--vui-shimmer-spread)),color-mix(in oklch,var(--vui-shimmer-highlight),var(--shimmer-base) 50%) calc(50% - var(--vui-shimmer-spread) * .5),var(--vui-shimmer-highlight) 50%,color-mix(in oklch,var(--vui-shimmer-highlight),var(--shimmer-base) 50%) calc(50% + var(--vui-shimmer-spread) * .5),var(--shimmer-base) calc(50% + var(--vui-shimmer-spread)));background-repeat:no-repeat;background-size:calc(200% + var(--vui-shimmer-spread) * 2) 100%;background-position:0 0;background-clip:text;-webkit-text-fill-color:#0000;animation:viraui__shimmer-module__shimmer-slide_V1znC var(--vui-shimmer-duration) linear infinite;&::selection{background-color:var(--global-primary);color:contrast-color(var(--global-primary));-webkit-text-fill-color:contrast-color(var(--global-primary));background-image:none;background-clip:initial;text-shadow:none}@media (prefers-reduced-motion:reduce){animation:none;background-image:none;-webkit-text-fill-color:currentcolor}}@keyframes viraui__shimmer-module__shimmer-slide_V1znC{0%{background-position:0 0}to{background-position:100% 0}}
|
|
@@ -21,5 +21,43 @@
|
|
|
21
21
|
"Using Shimmer without children text content",
|
|
22
22
|
"Using Shimmer for block placeholders better served by Skeleton"
|
|
23
23
|
],
|
|
24
|
-
"related": ["Text", "Title", "Skeleton"]
|
|
24
|
+
"related": ["Text", "Title", "Skeleton"],
|
|
25
|
+
"properties": {
|
|
26
|
+
"react": {
|
|
27
|
+
"duration": {
|
|
28
|
+
"description": "Sets the shimmer sweep duration using any valid CSS time string.",
|
|
29
|
+
"refCss": "duration"
|
|
30
|
+
},
|
|
31
|
+
"spread": {
|
|
32
|
+
"description": "Sets the shimmer highlight spread using any valid CSS length string.",
|
|
33
|
+
"refCss": "spread"
|
|
34
|
+
},
|
|
35
|
+
"angle": {
|
|
36
|
+
"description": "Sets the shimmer gradient angle offset using any valid CSS angle string.",
|
|
37
|
+
"refCss": "angle"
|
|
38
|
+
},
|
|
39
|
+
"highlightColor": {
|
|
40
|
+
"description": "Overrides the shimmer highlight color.",
|
|
41
|
+
"refCss": "highlight"
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
"css": {
|
|
45
|
+
"duration": {
|
|
46
|
+
"description": "Shimmer animation duration.",
|
|
47
|
+
"refReact": "duration"
|
|
48
|
+
},
|
|
49
|
+
"spread": {
|
|
50
|
+
"description": "Shimmer highlight spread width.",
|
|
51
|
+
"refReact": "spread"
|
|
52
|
+
},
|
|
53
|
+
"angle": {
|
|
54
|
+
"description": "Shimmer gradient angle offset.",
|
|
55
|
+
"refReact": "angle"
|
|
56
|
+
},
|
|
57
|
+
"highlight": {
|
|
58
|
+
"description": "Shimmer highlight color.",
|
|
59
|
+
"refReact": "highlightColor"
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
25
63
|
}
|
|
@@ -7,10 +7,10 @@ import { jsx } from "react/jsx-runtime";
|
|
|
7
7
|
var Shimmer = ({ angle, className, duration, highlightColor, ref, spread, style, ...otherProps }) => {
|
|
8
8
|
const { componentProps, intrinsicAttributes } = extractIntrinsicViraProps(otherProps);
|
|
9
9
|
const dynamicStyle = {
|
|
10
|
-
...duration && { "--shimmer-duration": duration },
|
|
11
|
-
...spread && { "--shimmer-spread": spread },
|
|
12
|
-
...angle && { "--shimmer-angle": angle },
|
|
13
|
-
...highlightColor && { "--shimmer-highlight": highlightColor },
|
|
10
|
+
...duration && { "--vui-shimmer-duration": duration },
|
|
11
|
+
...spread && { "--vui-shimmer-spread": spread },
|
|
12
|
+
...angle && { "--vui-shimmer-angle": angle },
|
|
13
|
+
...highlightColor && { "--vui-shimmer-highlight": highlightColor },
|
|
14
14
|
...style
|
|
15
15
|
};
|
|
16
16
|
return /* @__PURE__ */ jsx("span", {
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
+
//#region src/components/shimmer/shimmer.module.css
|
|
2
|
+
var Shimmer = "viraui__shimmer-module__Shimmer_1k-ZM";
|
|
1
3
|
var shimmer_module_default = {
|
|
2
|
-
Shimmer
|
|
4
|
+
Shimmer,
|
|
3
5
|
"shimmer-slide": "viraui__shimmer-module__shimmer-slide_V1znC"
|
|
4
6
|
};
|
|
5
7
|
//#endregion
|
|
6
|
-
export { shimmer_module_default as default };
|
|
8
|
+
export { Shimmer, shimmer_module_default as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.viraui__skeleton-module__Skeleton_pn7Xk{--skeleton-background:var(--global-contrast);--skeleton-border-radius:var(--radius-small);--skeleton-inline-size:auto;--skeleton-block-size:auto;--skeleton-min-inline-size:var(--space-x-large);--skeleton-min-block-size:var(--space-medium);display:inline-block;box-sizing:border-box;inline-size:var(--skeleton-inline-size);block-size:var(--skeleton-block-size);min-inline-size:var(--skeleton-min-inline-size);min-block-size:var(--skeleton-min-block-size);max-inline-size:100%;background:var(--skeleton-background);border-radius:var(--skeleton-border-radius);vertical-align:middle;animation:viraui__skeleton-module__skeleton-fade_XHkG4 var(--duration-slow) var(--easing-standard) infinite alternate;@media (prefers-reduced-motion:reduce){animation:none}}@keyframes viraui__skeleton-module__skeleton-fade_XHkG4{0%{opacity:.52}to{opacity:1}}
|
|
1
|
+
.viraui__skeleton-module__Skeleton_pn7Xk{--vui-skeleton-background:var(--global-contrast);--vui-skeleton-border-radius:var(--radius-small);--vui-skeleton-inline-size:auto;--vui-skeleton-block-size:auto;--vui-skeleton-min-inline-size:var(--space-x-large);--vui-skeleton-min-block-size:var(--space-medium);display:inline-block;box-sizing:border-box;inline-size:var(--vui-skeleton-inline-size);block-size:var(--vui-skeleton-block-size);min-inline-size:var(--vui-skeleton-min-inline-size);min-block-size:var(--vui-skeleton-min-block-size);max-inline-size:100%;background:var(--vui-skeleton-background);border-radius:var(--vui-skeleton-border-radius);vertical-align:middle;animation:viraui__skeleton-module__skeleton-fade_XHkG4 var(--duration-slow) var(--easing-standard) infinite alternate;@media (prefers-reduced-motion:reduce){animation:none}}@keyframes viraui__skeleton-module__skeleton-fade_XHkG4{0%{opacity:.52}to{opacity:1}}
|
|
@@ -19,5 +19,54 @@
|
|
|
19
19
|
"Using children to derive skeleton dimensions",
|
|
20
20
|
"Putting aria-busy on Skeleton instead of the surrounding loading region"
|
|
21
21
|
],
|
|
22
|
-
"related": ["Avatar"]
|
|
22
|
+
"related": ["Avatar"],
|
|
23
|
+
"properties": {
|
|
24
|
+
"react": {
|
|
25
|
+
"radius": {
|
|
26
|
+
"description": "Sets the corner radius from the Vira radius token scale.",
|
|
27
|
+
"refCss": "border-radius"
|
|
28
|
+
},
|
|
29
|
+
"width": {
|
|
30
|
+
"description": "Sets the skeleton inline size.",
|
|
31
|
+
"refCss": "inline-size"
|
|
32
|
+
},
|
|
33
|
+
"height": {
|
|
34
|
+
"description": "Sets the skeleton block size.",
|
|
35
|
+
"refCss": "block-size"
|
|
36
|
+
},
|
|
37
|
+
"minWidth": {
|
|
38
|
+
"description": "Sets the skeleton minimum inline size.",
|
|
39
|
+
"refCss": "min-inline-size"
|
|
40
|
+
},
|
|
41
|
+
"minHeight": {
|
|
42
|
+
"description": "Sets the skeleton minimum block size.",
|
|
43
|
+
"refCss": "min-block-size"
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
"css": {
|
|
47
|
+
"border-radius": {
|
|
48
|
+
"description": "Skeleton corner radius.",
|
|
49
|
+
"refReact": "radius"
|
|
50
|
+
},
|
|
51
|
+
"inline-size": {
|
|
52
|
+
"description": "Skeleton inline size.",
|
|
53
|
+
"refReact": "width"
|
|
54
|
+
},
|
|
55
|
+
"block-size": {
|
|
56
|
+
"description": "Skeleton block size.",
|
|
57
|
+
"refReact": "height"
|
|
58
|
+
},
|
|
59
|
+
"min-inline-size": {
|
|
60
|
+
"description": "Skeleton minimum inline size.",
|
|
61
|
+
"refReact": "minWidth"
|
|
62
|
+
},
|
|
63
|
+
"min-block-size": {
|
|
64
|
+
"description": "Skeleton minimum block size.",
|
|
65
|
+
"refReact": "minHeight"
|
|
66
|
+
},
|
|
67
|
+
"background": {
|
|
68
|
+
"description": "Skeleton placeholder background color."
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
23
72
|
}
|
|
@@ -8,11 +8,11 @@ import { jsx } from "react/jsx-runtime";
|
|
|
8
8
|
var Skeleton = ({ className, height, minHeight, minWidth, radius, ref, style, width, ...otherProps }) => {
|
|
9
9
|
const { componentProps, intrinsicAttributes } = extractIntrinsicViraProps(otherProps);
|
|
10
10
|
const dynamicStyle = {
|
|
11
|
-
"--skeleton-border-radius": resolveThemeValue(radius, "radius", "var(--radius-small)"),
|
|
12
|
-
...width && { "--skeleton-inline-size": width },
|
|
13
|
-
...height && { "--skeleton-block-size": height },
|
|
14
|
-
...minWidth && { "--skeleton-min-inline-size": minWidth },
|
|
15
|
-
...minHeight && { "--skeleton-min-block-size": minHeight },
|
|
11
|
+
"--vui-skeleton-border-radius": resolveThemeValue(radius, "radius", "var(--radius-small)"),
|
|
12
|
+
...width && { "--vui-skeleton-inline-size": width },
|
|
13
|
+
...height && { "--vui-skeleton-block-size": height },
|
|
14
|
+
...minWidth && { "--vui-skeleton-min-inline-size": minWidth },
|
|
15
|
+
...minHeight && { "--vui-skeleton-min-block-size": minHeight },
|
|
16
16
|
...style
|
|
17
17
|
};
|
|
18
18
|
return /* @__PURE__ */ jsx("span", {
|