@viraui/react 0.0.22 → 0.0.24
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 +26 -2
- package/dist/components/avatar/avatar.css +1 -1
- package/dist/components/avatar/avatar.module.js +3 -3
- package/dist/components/avatar-group/avatar-group.css +1 -1
- package/dist/components/avatar-group/avatar-group.module.js +5 -5
- package/dist/components/basic-input/basic-input.css +1 -1
- package/dist/components/basic-input/basic-input.js +0 -1
- package/dist/components/basic-input/basic-input.module.js +1 -1
- package/dist/components/basic-input/field-helper-copy.d.ts +1 -1
- package/dist/components/basic-input/field-helper-copy.js +0 -1
- package/dist/components/basic-input/field-label.css +1 -1
- package/dist/components/basic-input/field-label.js +0 -1
- package/dist/components/basic-input/field-label.module.js +1 -1
- package/dist/components/basic-input/input-control-group.js +0 -1
- package/dist/components/button/button.css +1 -1
- package/dist/components/button/button.d.ts +13 -7
- package/dist/components/button/button.guide.json +7 -5
- package/dist/components/button/button.js +11 -10
- package/dist/components/button/button.module.js +3 -3
- package/dist/components/checkbox/checkbox-group.d.ts +12 -0
- package/dist/components/checkbox/checkbox-group.js +15 -0
- package/dist/components/checkbox/checkbox.css +1 -1
- package/dist/components/checkbox/checkbox.d.ts +6 -21
- package/dist/components/checkbox/checkbox.guide.json +10 -5
- package/dist/components/checkbox/checkbox.js +45 -59
- package/dist/components/checkbox/checkbox.module.js +7 -6
- package/dist/components/checkbox/index.d.ts +2 -0
- package/dist/components/chip/chip.css +1 -1
- package/dist/components/chip/chip.js +0 -2
- package/dist/components/chip/chip.module.js +4 -4
- package/dist/components/clamp-text/clamp-text.css +1 -1
- package/dist/components/clamp-text/clamp-text.module.js +1 -1
- package/dist/components/dialog/dialog-close.d.ts +15 -0
- package/dist/components/dialog/dialog-close.js +9 -0
- package/dist/components/dialog/dialog-indent-background.d.ts +12 -0
- package/dist/components/dialog/dialog-indent-background.js +11 -0
- package/dist/components/dialog/dialog-indent.d.ts +12 -0
- package/dist/components/dialog/dialog-indent.js +11 -0
- package/dist/components/dialog/dialog-sheet.d.ts +66 -0
- package/dist/components/dialog/dialog-sheet.js +80 -0
- package/dist/components/dialog/dialog-trigger.d.ts +13 -0
- package/dist/components/dialog/dialog-trigger.js +9 -0
- package/dist/components/dialog/dialog.css +1 -0
- package/dist/components/dialog/dialog.d.ts +28 -0
- package/dist/components/dialog/dialog.guide.json +27 -0
- package/dist/components/dialog/dialog.js +23 -0
- package/dist/components/dialog/dialog.module.js +15 -0
- package/dist/components/dialog/index.d.ts +12 -0
- package/dist/components/elevator/elevator.js +4 -4
- package/dist/components/fieldset/fieldset.d.ts +35 -0
- package/dist/components/fieldset/fieldset.guide.json +28 -0
- package/dist/components/fieldset/fieldset.js +30 -0
- package/dist/components/fieldset/index.d.ts +2 -0
- package/dist/components/icon/icon.css +1 -1
- package/dist/components/icon/icon.module.js +1 -1
- package/dist/components/icon-button/icon-button.d.ts +1 -1
- package/dist/components/icon-button/icon-button.guide.json +1 -1
- package/dist/components/icon-button/icon-button.js +1 -1
- package/dist/components/index.d.ts +4 -0
- package/dist/components/linear-progress/linear-progress.css +1 -1
- package/dist/components/linear-progress/linear-progress.js +0 -1
- package/dist/components/linear-progress/linear-progress.module.js +4 -4
- package/dist/components/masonry/masonry-item.js +0 -1
- package/dist/components/masonry/masonry.css +1 -1
- package/dist/components/masonry/masonry.js +2 -3
- package/dist/components/masonry/masonry.module.js +2 -2
- package/dist/components/progressive-blur/progressive-blur.css +1 -1
- package/dist/components/progressive-blur/progressive-blur.module.js +2 -2
- package/dist/components/radio/radio-group.d.ts +5 -38
- package/dist/components/radio/radio-group.js +12 -50
- package/dist/components/radio/radio.css +1 -1
- package/dist/components/radio/radio.d.ts +1 -1
- package/dist/components/radio/radio.guide.json +12 -8
- package/dist/components/radio/radio.js +31 -29
- package/dist/components/radio/radio.module.js +3 -5
- package/dist/components/select/select-group.js +1 -1
- package/dist/components/select/select-indicator-slot.js +0 -1
- package/dist/components/select/select-option.d.ts +9 -2
- package/dist/components/select/select-option.js +32 -31
- package/dist/components/select/select-separator.js +0 -1
- package/dist/components/select/select.css +1 -1
- package/dist/components/select/select.guide.json +8 -3
- package/dist/components/select/select.js +3 -2
- package/dist/components/select/select.module.js +17 -16
- package/dist/components/separator/index.d.ts +2 -0
- package/dist/components/separator/separator.css +1 -0
- package/dist/components/separator/separator.d.ts +54 -0
- package/dist/components/separator/separator.guide.json +24 -0
- package/dist/components/separator/separator.js +43 -0
- package/dist/components/separator/separator.module.js +3 -0
- package/dist/components/skeleton/skeleton.css +1 -1
- package/dist/components/skeleton/skeleton.module.js +2 -2
- package/dist/components/slider/slider-control.js +0 -1
- package/dist/components/slider/slider.css +1 -1
- package/dist/components/slider/slider.js +1 -3
- package/dist/components/slider/slider.module.js +9 -8
- package/dist/components/spinner/spinner.css +1 -1
- package/dist/components/spinner/spinner.js +2 -2
- package/dist/components/spinner/spinner.module.js +3 -3
- package/dist/components/stack/stack.css +1 -1
- package/dist/components/stack/stack.d.ts +2 -2
- package/dist/components/stack/stack.js +0 -1
- package/dist/components/stack/stack.module.js +1 -1
- package/dist/components/static-noise/static-noise.css +1 -1
- package/dist/components/static-noise/static-noise.d.ts +1 -1
- package/dist/components/static-noise/static-noise.js +2 -1
- package/dist/components/static-noise/static-noise.module.js +2 -2
- package/dist/components/surface/surface-radius-context.d.ts +9 -1
- package/dist/components/surface/surface-radius-context.js +17 -6
- package/dist/components/surface/surface.css +1 -1
- package/dist/components/surface/surface.d.ts +9 -3
- package/dist/components/surface/surface.guide.json +3 -1
- package/dist/components/surface/surface.js +3 -3
- package/dist/components/surface/surface.module.js +1 -4
- package/dist/components/switch/switch.css +1 -1
- package/dist/components/switch/switch.js +31 -29
- package/dist/components/switch/switch.module.js +4 -3
- package/dist/components/tabs/index.d.ts +6 -0
- package/dist/components/tabs/tabs-indicator.d.ts +9 -0
- package/dist/components/tabs/tabs-indicator.js +16 -0
- package/dist/components/tabs/tabs-list.d.ts +12 -0
- package/dist/components/tabs/tabs-list.js +29 -0
- package/dist/components/tabs/tabs-panel.d.ts +11 -0
- package/dist/components/tabs/tabs-panel.js +13 -0
- package/dist/components/tabs/tabs-tab.d.ts +24 -0
- package/dist/components/tabs/tabs-tab.js +24 -0
- package/dist/components/tabs/tabs-viewport.d.ts +8 -0
- package/dist/components/tabs/tabs-viewport.js +11 -0
- package/dist/components/tabs/tabs.css +1 -0
- package/dist/components/tabs/tabs.d.ts +31 -0
- package/dist/components/tabs/tabs.guide.json +23 -0
- package/dist/components/tabs/tabs.js +30 -0
- package/dist/components/tabs/tabs.module.js +11 -0
- package/dist/components/text/text.css +1 -1
- package/dist/components/text/text.d.ts +2 -2
- package/dist/components/text/text.js +2 -3
- package/dist/components/text/text.module.js +1 -1
- package/dist/components/textarea/textarea.css +1 -1
- package/dist/components/textarea/textarea.guide.json +8 -3
- package/dist/components/textarea/textarea.js +1 -3
- package/dist/components/textarea/textarea.module.js +4 -3
- package/dist/components/textfield/textfield.css +1 -1
- package/dist/components/textfield/textfield.guide.json +9 -3
- package/dist/components/textfield/textfield.js +1 -3
- package/dist/components/textfield/textfield.module.js +6 -5
- package/dist/components/title/title.css +1 -1
- package/dist/components/title/title.js +2 -3
- package/dist/components/title/title.module.js +1 -1
- package/dist/core/elevation/get-elevation-props.js +2 -2
- package/dist/core/props/intrinsic-vira-props.d.ts +3 -3
- package/dist/index.js +11 -1
- package/dist/internal-icons/icon-registry.d.ts +4 -1
- package/dist/internal-icons/icon-registry.js +9 -0
- package/dist/internal-icons/icons/duo/ArrowDown.js +1 -1
- package/dist/internal-icons/icons/duo/ArrowDownLeft.js +1 -1
- package/dist/internal-icons/icons/duo/ArrowDownRight.js +1 -1
- package/dist/internal-icons/icons/duo/ArrowLeft.js +1 -1
- package/dist/internal-icons/icons/duo/ArrowRight.js +1 -1
- package/dist/internal-icons/icons/duo/ArrowUp.js +1 -1
- package/dist/internal-icons/icons/duo/ArrowUpLeft.js +1 -1
- package/dist/internal-icons/icons/duo/ArrowUpRight.js +1 -1
- package/dist/internal-icons/icons/duo/ChevronExpandY.js +2 -2
- package/dist/internal-icons/icons/duo/CircleCheck.d.ts +7 -0
- package/dist/internal-icons/icons/duo/CircleCheck.js +13 -0
- package/dist/internal-icons/icons/duo/Duplicate.d.ts +7 -0
- package/dist/internal-icons/icons/duo/Duplicate.js +13 -0
- package/dist/internal-icons/icons/duo/RefreshAnticlockwise.js +1 -1
- package/dist/internal-icons/icons/duo/ShieldCheck.d.ts +7 -0
- package/dist/internal-icons/icons/duo/ShieldCheck.js +13 -0
- package/dist/internal-icons/icons/duo/index.d.ts +3 -0
- package/dist/internal-icons/icons/duo/index.js +3 -0
- package/dist/preflight-surface.json +15 -1
- package/dist/preflight.css +1 -1
- package/dist/theme-surface.json +0 -5
- package/package.json +4 -4
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { TabsList as TabsListPrimitive } from '@base-ui/react/tabs';
|
|
2
|
+
import type * as React from 'react';
|
|
3
|
+
/**
|
|
4
|
+
* Public Tabs.List props.
|
|
5
|
+
*
|
|
6
|
+
* Wraps Base UI `Tabs.List` in a compact `Surface`, lays out items with `Stack`,
|
|
7
|
+
* and renders the active tab indicator internally.
|
|
8
|
+
*
|
|
9
|
+
* @default Base UI pass-through props keep upstream defaults.
|
|
10
|
+
*/
|
|
11
|
+
export type TabsListProps = TabsListPrimitive.Props;
|
|
12
|
+
export declare const TabsList: React.FC<TabsListProps>;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { clsx } from "../../core/clsx.js";
|
|
2
|
+
import { Stack } from "../stack/stack.js";
|
|
3
|
+
import { Surface } from "../surface/surface.js";
|
|
4
|
+
import tabs_module_default from "./tabs.module.js";
|
|
5
|
+
import { TabsIndicator } from "./tabs-indicator.js";
|
|
6
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
+
import { Tabs } from "@base-ui/react/tabs";
|
|
8
|
+
//#region src/components/tabs/tabs-list.tsx
|
|
9
|
+
var TabsList = ({ children, className, activateOnFocus = true, ref, ...props }) => /* @__PURE__ */ jsx(Tabs.List, {
|
|
10
|
+
className: clsx(tabs_module_default.List, className),
|
|
11
|
+
activateOnFocus,
|
|
12
|
+
render: /* @__PURE__ */ jsx(Surface, {
|
|
13
|
+
color: 1,
|
|
14
|
+
border: "all",
|
|
15
|
+
hPadding: "2x-small",
|
|
16
|
+
radius: "medium",
|
|
17
|
+
vPadding: "2x-small"
|
|
18
|
+
}),
|
|
19
|
+
...props,
|
|
20
|
+
children: /* @__PURE__ */ jsxs(Stack, {
|
|
21
|
+
direction: "row",
|
|
22
|
+
columnGap: "small",
|
|
23
|
+
hAlign: "start",
|
|
24
|
+
vAlign: "center",
|
|
25
|
+
children: [/* @__PURE__ */ jsx(TabsIndicator, {}), children]
|
|
26
|
+
})
|
|
27
|
+
});
|
|
28
|
+
//#endregion
|
|
29
|
+
export { TabsList };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { TabsPanel as TabsPanelPrimitive } from '@base-ui/react/tabs';
|
|
2
|
+
import type * as React from 'react';
|
|
3
|
+
/**
|
|
4
|
+
* Public Tabs.Panel props.
|
|
5
|
+
*
|
|
6
|
+
* Base UI `Tabs.Panel` with entry slide/fade animation.
|
|
7
|
+
*
|
|
8
|
+
* @default Base UI pass-through props keep upstream defaults.
|
|
9
|
+
*/
|
|
10
|
+
export type TabsPanelProps = TabsPanelPrimitive.Props;
|
|
11
|
+
export declare const TabsPanel: React.FC<TabsPanelProps>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { clsx } from "../../core/clsx.js";
|
|
2
|
+
import tabs_module_default from "./tabs.module.js";
|
|
3
|
+
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
import { Tabs } from "@base-ui/react/tabs";
|
|
5
|
+
//#region src/components/tabs/tabs-panel.tsx
|
|
6
|
+
var TabsPanel = ({ children, className, ref, ...props }) => /* @__PURE__ */ jsx(Tabs.Panel, {
|
|
7
|
+
ref,
|
|
8
|
+
className: clsx(tabs_module_default.Panel, className),
|
|
9
|
+
...props,
|
|
10
|
+
children
|
|
11
|
+
});
|
|
12
|
+
//#endregion
|
|
13
|
+
export { TabsPanel };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { TabsTab as TabsTabPrimitive } from '@base-ui/react/tabs';
|
|
2
|
+
import type * as React from 'react';
|
|
3
|
+
/**
|
|
4
|
+
* Public Tabs.Tab props.
|
|
5
|
+
*
|
|
6
|
+
* Wraps Base UI `Tabs.Tab` with optional decorative addon layout.
|
|
7
|
+
*
|
|
8
|
+
* @default Base UI pass-through props keep upstream defaults.
|
|
9
|
+
*/
|
|
10
|
+
export type TabsTabProps = TabsTabPrimitive.Props & {
|
|
11
|
+
/**
|
|
12
|
+
* Decorative addon rendered alongside the tab label.
|
|
13
|
+
*
|
|
14
|
+
* @default No addon is rendered.
|
|
15
|
+
*/
|
|
16
|
+
addon?: React.ReactNode;
|
|
17
|
+
/**
|
|
18
|
+
* Controls whether the addon appears before or after the label.
|
|
19
|
+
*
|
|
20
|
+
* @default 'start'
|
|
21
|
+
*/
|
|
22
|
+
addonPosition?: 'start' | 'end';
|
|
23
|
+
};
|
|
24
|
+
export declare const TabsTab: React.FC<TabsTabProps>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { clsx } from "../../core/clsx.js";
|
|
2
|
+
import { Button } from "../button/button.js";
|
|
3
|
+
import { Text } from "../text/text.js";
|
|
4
|
+
import tabs_module_default from "./tabs.module.js";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
import { Tabs } from "@base-ui/react/tabs";
|
|
7
|
+
//#region src/components/tabs/tabs-tab.tsx
|
|
8
|
+
var TabsTab = ({ addon, addonPosition = "start", children, className, ...props }) => /* @__PURE__ */ jsx(Tabs.Tab, {
|
|
9
|
+
render: /* @__PURE__ */ jsx(Button, {
|
|
10
|
+
variant: "flat",
|
|
11
|
+
addon,
|
|
12
|
+
addonPosition,
|
|
13
|
+
className: clsx(tabs_module_default.Item, className)
|
|
14
|
+
}),
|
|
15
|
+
...props,
|
|
16
|
+
children: /* @__PURE__ */ jsx(Text, {
|
|
17
|
+
tone: "muted",
|
|
18
|
+
whiteSpace: "nowrap",
|
|
19
|
+
className: tabs_module_default.Label,
|
|
20
|
+
children
|
|
21
|
+
})
|
|
22
|
+
});
|
|
23
|
+
//#endregion
|
|
24
|
+
export { TabsTab };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type * as React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Public Tabs.Viewport props.
|
|
4
|
+
*
|
|
5
|
+
* Grid container for animated `Tabs.Panel` children.
|
|
6
|
+
*/
|
|
7
|
+
export type TabsViewportProps = React.ComponentPropsWithoutRef<'div'>;
|
|
8
|
+
export declare const TabsViewport: React.FC<TabsViewportProps>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { clsx } from "../../core/clsx.js";
|
|
2
|
+
import tabs_module_default from "./tabs.module.js";
|
|
3
|
+
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
//#region src/components/tabs/tabs-viewport.tsx
|
|
5
|
+
var TabsViewport = ({ children, className, ...props }) => /* @__PURE__ */ jsx("div", {
|
|
6
|
+
className: clsx(tabs_module_default.Viewport, className),
|
|
7
|
+
...props,
|
|
8
|
+
children
|
|
9
|
+
});
|
|
10
|
+
//#endregion
|
|
11
|
+
export { TabsViewport };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.viraui__tabs-module__Tabs_AwbZZ{--tabs-translate-amount:10px;min-block-size:10rem}.viraui__tabs-module__Viewport_15X1I{display:grid;grid-template-columns:minmax(0,1fr);inline-size:100%}.viraui__tabs-module__List_XJorr{position:relative;overflow-x:auto}.viraui__tabs-module__Indicator_UyNUn{position:absolute;pointer-events:none;inset-block-start:var(--active-tab-top);inset-inline-start:var(--active-tab-left);inline-size:var(--active-tab-width);block-size:var(--active-tab-height);transition:inset-inline-start var(--duration-fast) var(--easing-standard),inset-block-start var(--duration-fast) var(--easing-standard),inline-size var(--duration-fast) var(--easing-standard),block-size var(--duration-fast) var(--easing-standard)}.viraui__tabs-module__Item_XZ86Z{position:relative;flex-shrink:0;cursor:pointer;flex-basis:0;transition:none;will-change:auto;&[data-variant]:not(:disabled):active{translate:0 0}&:hover,&[data-disabled]{background:transparent}&[data-disabled]{opacity:.5}&[data-active]{color:var(--global-foreground)}&:focus-visible{border-radius:var(--radius-small);outline-offset:0}}.viraui__tabs-module__Item_XZ86Z[data-active] .viraui__tabs-module__Label_5-8-Y{color:var(--global-foreground)}.viraui__tabs-module__Panel_vkCFI{grid-area:1/1;inline-size:100%;opacity:1;translate:0 0;transition:opacity var(--duration-fast) var(--easing-entrance),translate var(--duration-fast) var(--easing-entrance);&[data-ending-style]{pointer-events:none}&[data-ending-style],&[data-starting-style]{opacity:0}&[data-activation-direction=right][data-starting-style]{translate:var(--tabs-translate-amount) 0}&[data-activation-direction=left][data-starting-style],&[data-activation-direction=right][data-ending-style]{translate:calc(var(--tabs-translate-amount) * -1) 0}&[data-activation-direction=left][data-ending-style]{translate:var(--tabs-translate-amount) 0}&[data-activation-direction=none][data-ending-style],&[data-activation-direction=none][data-starting-style]{translate:0 var(--tabs-translate-amount)}&[hidden]{display:none}@media (prefers-reduced-motion:reduce){transition:none;&[data-ending-style],&[data-starting-style]{opacity:1;translate:0 0}}}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { TabsRoot } from '@base-ui/react/tabs';
|
|
2
|
+
import { StackProps } from '..';
|
|
3
|
+
import { TabsListProps } from './tabs-list';
|
|
4
|
+
import { TabsPanelProps } from './tabs-panel';
|
|
5
|
+
import { TabsTabProps } from './tabs-tab';
|
|
6
|
+
import { TabsViewportProps } from './tabs-viewport';
|
|
7
|
+
import * as React from 'react';
|
|
8
|
+
/**
|
|
9
|
+
* Public Tabs root props.
|
|
10
|
+
*
|
|
11
|
+
* Includes Base UI tabs root props such as `value`, `defaultValue`, `orientation`,
|
|
12
|
+
* and `onValueChange`.
|
|
13
|
+
*
|
|
14
|
+
* @default Base UI pass-through props keep upstream defaults.
|
|
15
|
+
*/
|
|
16
|
+
export type TabsProps = TabsRoot.Props & {
|
|
17
|
+
/**
|
|
18
|
+
* Horizontal alignment of tab list within root Stack.
|
|
19
|
+
*
|
|
20
|
+
* @default 'start'
|
|
21
|
+
*/
|
|
22
|
+
listAlignment?: Extract<StackProps['hAlign'], 'start' | 'center' | 'end' | 'stretch'>;
|
|
23
|
+
};
|
|
24
|
+
type TabsComponent = React.FC<TabsProps> & {
|
|
25
|
+
List: React.FC<TabsListProps>;
|
|
26
|
+
Tab: React.FC<TabsTabProps>;
|
|
27
|
+
Viewport: React.FC<TabsViewportProps>;
|
|
28
|
+
Panel: React.FC<TabsPanelProps>;
|
|
29
|
+
};
|
|
30
|
+
export declare const Tabs: TabsComponent;
|
|
31
|
+
export {};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Tabs",
|
|
3
|
+
"summary": "Compound segmented tab control with Surface list chrome, moving indicator, and animated panels.",
|
|
4
|
+
"whenToUse": [
|
|
5
|
+
"Switching between related views in the same surface",
|
|
6
|
+
"Compact horizontal segmented navigation",
|
|
7
|
+
"Decorative start/end addons on tab labels without changing accessible names"
|
|
8
|
+
],
|
|
9
|
+
"whenNotToUse": [
|
|
10
|
+
"Primary app navigation that should use links or routes directly",
|
|
11
|
+
"Vertical tab layouts in v1 styled targets"
|
|
12
|
+
],
|
|
13
|
+
"accessibility": [
|
|
14
|
+
"Keep tab labels as visible text; addons are decorative and aria-hidden",
|
|
15
|
+
"Ensure each `Tabs.Panel` value matches a `Tabs.Tab` value",
|
|
16
|
+
"Disabled items cannot be activated through pointer or keyboard"
|
|
17
|
+
],
|
|
18
|
+
"antiPatterns": [
|
|
19
|
+
"Using addons as the only visible label for a tab",
|
|
20
|
+
"Trying to compose a separate public `Tabs.Indicator`; the indicator is owned by `Tabs.List`"
|
|
21
|
+
],
|
|
22
|
+
"related": ["Surface", "Stack", "Text"]
|
|
23
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import './tabs.css';
|
|
2
|
+
import { clsx } from "../../core/clsx.js";
|
|
3
|
+
import { Stack } from "../stack/stack.js";
|
|
4
|
+
import tabs_module_default from "./tabs.module.js";
|
|
5
|
+
import { TabsList } from "./tabs-list.js";
|
|
6
|
+
import { TabsPanel } from "./tabs-panel.js";
|
|
7
|
+
import { TabsTab } from "./tabs-tab.js";
|
|
8
|
+
import { TabsViewport } from "./tabs-viewport.js";
|
|
9
|
+
import { jsx } from "react/jsx-runtime";
|
|
10
|
+
import "react";
|
|
11
|
+
import { Tabs } from "@base-ui/react/tabs";
|
|
12
|
+
//#region src/components/tabs/tabs.tsx
|
|
13
|
+
var TabsRootComponent = ({ children, className, listAlignment = "start", ...props }) => /* @__PURE__ */ jsx(Tabs.Root, {
|
|
14
|
+
render: /* @__PURE__ */ jsx(Stack, {
|
|
15
|
+
hAlign: listAlignment,
|
|
16
|
+
vAlign: "start",
|
|
17
|
+
fillChildren: false,
|
|
18
|
+
className: clsx(tabs_module_default.Tabs, className)
|
|
19
|
+
}),
|
|
20
|
+
...props,
|
|
21
|
+
children
|
|
22
|
+
});
|
|
23
|
+
var Tabs$1 = Object.assign(TabsRootComponent, {
|
|
24
|
+
List: TabsList,
|
|
25
|
+
Tab: TabsTab,
|
|
26
|
+
Viewport: TabsViewport,
|
|
27
|
+
Panel: TabsPanel
|
|
28
|
+
});
|
|
29
|
+
//#endregion
|
|
30
|
+
export { Tabs$1 as Tabs };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
var tabs_module_default = {
|
|
2
|
+
Tabs: "viraui__tabs-module__Tabs_AwbZZ",
|
|
3
|
+
Viewport: "viraui__tabs-module__Viewport_15X1I",
|
|
4
|
+
List: "viraui__tabs-module__List_XJorr",
|
|
5
|
+
Indicator: "viraui__tabs-module__Indicator_UyNUn",
|
|
6
|
+
Item: "viraui__tabs-module__Item_XZ86Z",
|
|
7
|
+
Label: "viraui__tabs-module__Label_5-8-Y",
|
|
8
|
+
Panel: "viraui__tabs-module__Panel_vkCFI"
|
|
9
|
+
};
|
|
10
|
+
//#endregion
|
|
11
|
+
export { tabs_module_default as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.
|
|
1
|
+
.viraui__text-module__Text_bS8kv{--text-medium:clamp(var(--font-scale-body-medium),calc(var(--font-scale-body-medium) + var(--font-scale-body-x-small) / 12 + 0.24cqi),calc(var(--font-scale-body-medium) + var(--font-scale-body-x-small) / 3));--text-align:start;--text-max-width:none;--text-white-space:normal;--text-padding-inline-start:0;--text-padding-inline-end:0;--text-padding-block-start:0;--text-padding-block-end:0;--text-font-family:var(--font-family-body);--text-font-size:clamp(var(--font-scale-body-small),var(--text-medium),var(--font-scale-body-medium));--text-font-weight:400;--text-font-width:100;--text-font-opsz:16;--text-line-height:var(--font-leading-standard);margin:0;min-inline-size:0;max-inline-size:var(--text-max-width);font-family:var(--text-font-family);font-size:var(--text-font-size);line-height:var(--text-line-height);text-align:var(--text-align);white-space:var(--text-white-space);word-break:break-word;font-optical-sizing:auto;font-variation-settings:"wght" var(--text-font-weight),"wdth" var(--text-font-width),"opsz" var(--text-font-opsz);text-box:var(--text-trim) var(--text-trim-type);&[data-text-balanced=true]{text-wrap:balance}&[data-text-selection=false]{-webkit-user-select:none;user-select:none}&[data-text-has-padding=true]{padding:var(--text-padding-block-start) var(--text-padding-inline-end) var(--text-padding-block-end) var(--text-padding-inline-start)}&[data-text-family=mono]{--text-font-family:var(--font-family-mono)}&[data-text-size=x-large]{--text-font-size:clamp(var(--font-scale-body-large),calc(var(--text-medium) * pow(var(--font-heading-typescale), 2)),var(--font-scale-body-x-large))}&[data-text-size=large]{--text-font-size:clamp(var(--font-scale-body-medium),calc(var(--text-medium) * pow(var(--font-heading-typescale), 1)),var(--font-scale-body-large))}&[data-text-size=medium]{--text-font-size:clamp(var(--font-scale-body-small),var(--text-medium),var(--font-scale-body-medium))}&[data-text-size=small]{--text-font-size:clamp(var(--font-scale-body-x-small),calc(var(--text-medium) * pow(var(--font-heading-typescale), -0.1)),var(--font-scale-body-small))}&[data-text-size=x-small]{--text-font-size:var(--font-scale-body-x-small)}&[data-text-weight=light]{--text-font-weight:200}&[data-text-weight=semibold]{--text-font-weight:600}&[data-text-weight=bold]{--text-font-weight:800}&[data-text-tone=muted]{color:var(--global-muted)}&[data-text-tone=interactive]{color:var(--global-interactive-text)}&[data-text-tone=positive]{color:var(--highlight-green)}&[data-text-tone=informative]{color:var(--highlight-blue)}&[data-text-tone=danger]{color:var(--highlight-red)}&[data-text-tone=warning]{color:var(--highlight-yellow)}&[data-text-has-literal-color=true]{color:var(--text-literal-color)}&[data-text-line-height=none]{--text-line-height:0}&[data-text-line-height=x-small]{--text-line-height:var(--font-leading-x-small)}&[data-text-line-height=small]{--text-line-height:var(--font-leading-small)}&[data-text-line-height=large]{--text-line-height:var(--font-leading-large)}}
|
|
@@ -28,7 +28,7 @@ export type TextProps = React.ComponentPropsWithoutRef<'span'> & IntrinsicViraPr
|
|
|
28
28
|
/**
|
|
29
29
|
* Selects a semantic body typography size from the active theme scale.
|
|
30
30
|
*
|
|
31
|
-
* @default '
|
|
31
|
+
* @default 'medium'
|
|
32
32
|
*/
|
|
33
33
|
size?: 'x-large' | 'large' | 'medium' | 'small' | 'x-small';
|
|
34
34
|
/**
|
|
@@ -112,7 +112,7 @@ export type TextProps = React.ComponentPropsWithoutRef<'span'> & IntrinsicViraPr
|
|
|
112
112
|
/**
|
|
113
113
|
* Selects the `text-box` trim basis when `trim` is active.
|
|
114
114
|
*
|
|
115
|
-
* @default '
|
|
115
|
+
* @default 'cap alphabetic'
|
|
116
116
|
*/
|
|
117
117
|
trimType?: string;
|
|
118
118
|
/**
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use client";
|
|
2
1
|
import './text.css';
|
|
3
2
|
import { clsx } from "../../core/clsx.js";
|
|
4
3
|
import { extractIntrinsicViraProps } from "../../core/props/intrinsic-vira-props.js";
|
|
@@ -17,8 +16,8 @@ var Text = ({ align = "start", balanced = false, selection = true, className, co
|
|
|
17
16
|
"--text-trim": trim ? `trim-${trim}` : "initial",
|
|
18
17
|
"--text-trim-type": trim ? trimType : "initial",
|
|
19
18
|
...typeof weight === "number" ? { "--text-font-weight": weight } : {},
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
"--text-font-width": fontWidth,
|
|
20
|
+
"--text-font-opsz": opticalSize,
|
|
22
21
|
...resolveAxisPadding(hPadding, "--text-padding-inline-start", "--text-padding-inline-end"),
|
|
23
22
|
...resolveAxisPadding(vPadding, "--text-padding-block-start", "--text-padding-block-end"),
|
|
24
23
|
...style
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.
|
|
1
|
+
.viraui__textarea-module__Textarea_mtOUG{--textarea-min-block-size:calc(var(--space-x-large) * 2);--textarea-padding-block:var(--space-small);--textarea-input-border-radius:var(--radius-small);--field-label-padding-inline:calc(var(--textarea-input-border-radius) / 2);inline-size:100%;&:has([required]) .viraui__textarea-module__Label_5dOso:after{content:" *";color:var(--highlight-red)}}.viraui__textarea-module__CustomBasicInput_Ce7yA{--basic-input-border-radius:var(--textarea-input-border-radius);border:1px solid var(--global-contrast);min-block-size:var(--textarea-min-block-size);padding-block:var(--textarea-padding-block);line-height:1.4;resize:none;&[data-resize=vertical]{resize:vertical}&[data-resize=both]{resize:both}&[data-invalid]{border-color:var(--highlight-red)}&:disabled,&[data-disabled]{border-color:transparent}}.viraui__textarea-module__Description_er3zI{padding-inline:calc(var(--textarea-input-border-radius) / 2)}
|
|
@@ -4,14 +4,19 @@
|
|
|
4
4
|
"whenToUse": [
|
|
5
5
|
"Multi-line text entry with label, description, and error",
|
|
6
6
|
"Controlled vertical or bidirectional resize",
|
|
7
|
-
"Native textarea attributes through the field control"
|
|
7
|
+
"Native textarea attributes through the field control",
|
|
8
|
+
"One or more Textareas inside Fieldset when they belong to a labeled form section with other fields"
|
|
9
|
+
],
|
|
10
|
+
"whenNotToUse": [
|
|
11
|
+
"Single-line input — use Textfield",
|
|
12
|
+
"Addon slots like Textfield startAddon or endAddon",
|
|
13
|
+
"Wrapping a lone Textarea in Fieldset when its own label is sufficient"
|
|
8
14
|
],
|
|
9
|
-
"whenNotToUse": ["Single-line input — use Textfield", "Addon slots like Textfield startAddon or endAddon"],
|
|
10
15
|
"accessibility": [
|
|
11
16
|
"Associate label with the textarea through the field label pattern",
|
|
12
17
|
"Expose validation and helper copy through description and error slots",
|
|
13
18
|
"Prefer resize modes that do not hide required content from keyboard users"
|
|
14
19
|
],
|
|
15
20
|
"antiPatterns": ["Using Textarea for single-line values", "Expecting unsupported size or variant props"],
|
|
16
|
-
"related": ["Textfield", "Text"]
|
|
21
|
+
"related": ["Fieldset", "Textfield", "Text"]
|
|
17
22
|
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use client";
|
|
2
1
|
import './textarea.css';
|
|
3
2
|
import { clsx } from "../../core/clsx.js";
|
|
4
3
|
import { extractIntrinsicViraProps } from "../../core/props/intrinsic-vira-props.js";
|
|
@@ -25,12 +24,11 @@ var Textarea = ({ className, description, dirty, disabled, error, invalid, label
|
|
|
25
24
|
validationMode,
|
|
26
25
|
render: /* @__PURE__ */ jsx(Stack, {
|
|
27
26
|
direction: "column",
|
|
28
|
-
fillChildren: false,
|
|
29
27
|
rowGap: "small"
|
|
30
28
|
}),
|
|
31
29
|
children: [
|
|
32
30
|
label && /* @__PURE__ */ jsx(Field.Label, {
|
|
33
|
-
|
|
31
|
+
className: textarea_module_default.Label,
|
|
34
32
|
children: /* @__PURE__ */ jsx(FieldLabel, { children: label })
|
|
35
33
|
}),
|
|
36
34
|
/* @__PURE__ */ jsx(BasicInput, {
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
var textarea_module_default = {
|
|
2
|
-
Textarea: "
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
Textarea: "viraui__textarea-module__Textarea_mtOUG",
|
|
3
|
+
Label: "viraui__textarea-module__Label_5dOso",
|
|
4
|
+
CustomBasicInput: "viraui__textarea-module__CustomBasicInput_Ce7yA",
|
|
5
|
+
Description: "viraui__textarea-module__Description_er3zI"
|
|
5
6
|
};
|
|
6
7
|
//#endregion
|
|
7
8
|
export { textarea_module_default as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.
|
|
1
|
+
.viraui__textfield-module__Textfield_o-70A{--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);--field-label-padding-inline:calc(var(--control-group-border-radius) / 2);inline-size:100%;&:has([required]) .viraui__textfield-module__Label_5rjr0:after{content:" *";color:var(--highlight-red)}}.viraui__textfield-module__ControlGroup_2W-OC{box-sizing:border-box;inline-size:100%;min-inline-size:0;block-size:var(--input-height);background:var(--control-group-background);border:1px solid var(--control-group-border-color);border-radius:var(--control-group-border-radius);&:has(.viraui__textfield-module__CustomBasicInput_oHgtd:focus-visible),&:has(.viraui__textfield-module__CustomBasicInput_oHgtd[data-focused]){outline:var(--outline);outline-offset:var(--outline-offset)}&:has(.viraui__textfield-module__CustomBasicInput_oHgtd[data-invalid]){--control-group-border-color:var(--highlight-red);box-shadow:none;outline-color:oklab(from var(--highlight-red) l a b/.5)}&:has(.viraui__textfield-module__CustomBasicInput_oHgtd:disabled),&:has(.viraui__textfield-module__CustomBasicInput_oHgtd[data-disabled]){--control-group-background:var(--global-disabled-background);--control-group-border-color:transparent;box-shadow:none;cursor:not-allowed}&:has(.viraui__textfield-module__Addon_kK1ef[data-position=start])>.viraui__textfield-module__CustomBasicInput_oHgtd{padding-inline-start:var(--space-x-small)}&:has(.viraui__textfield-module__Addon_kK1ef[data-position=end])>.viraui__textfield-module__CustomBasicInput_oHgtd{padding-inline-end:var(--space-x-small)}}.viraui__textfield-module__CustomBasicInput_oHgtd{flex:1 1 auto;min-inline-size:0;block-size:100%;line-height:1.2;border:none;background:transparent;box-shadow:none;border-radius:inherit;&:focus-visible{outline:none}&:disabled{cursor:not-allowed}}.viraui__textfield-module__Addon_kK1ef{min-inline-size:var(--space-x-large)}.viraui__textfield-module__Description_8Qxot{padding-inline:calc(var(--control-group-border-radius) / 2)}
|
|
@@ -4,9 +4,15 @@
|
|
|
4
4
|
"whenToUse": [
|
|
5
5
|
"Single-line text, email, password, or similar native input types",
|
|
6
6
|
"Start or end addon slots inside the shared control group",
|
|
7
|
-
"Label, description, and error copy with validation states"
|
|
7
|
+
"Label, description, and error copy with validation states",
|
|
8
|
+
"Several related Textfields grouped under one section legend as Fieldset children (e.g. billing details)"
|
|
9
|
+
],
|
|
10
|
+
"whenNotToUse": [
|
|
11
|
+
"Multi-line entry — use Textarea",
|
|
12
|
+
"Custom size or variant props — fixed medium treatment",
|
|
13
|
+
"Wrapping a lone Textfield in Fieldset when its own label is sufficient — Fieldset is for multi-field sections or shared legends",
|
|
14
|
+
"Using Fieldset instead of the Textfield label for a single control"
|
|
8
15
|
],
|
|
9
|
-
"whenNotToUse": ["Multi-line entry — use Textarea", "Custom size or variant props — fixed medium treatment"],
|
|
10
16
|
"accessibility": [
|
|
11
17
|
"Associate label with the input through the field label pattern",
|
|
12
18
|
"Surface validation errors in the shared description slot or Field.Error",
|
|
@@ -16,5 +22,5 @@
|
|
|
16
22
|
"Passing unsupported size or variant props",
|
|
17
23
|
"Expecting a focus ring when focus is only on addon controls"
|
|
18
24
|
],
|
|
19
|
-
"related": ["Textarea", "Select", "Text"]
|
|
25
|
+
"related": ["Fieldset", "Textarea", "Select", "Text"]
|
|
20
26
|
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use client";
|
|
2
1
|
import './textfield.css';
|
|
3
2
|
import { clsx } from "../../core/clsx.js";
|
|
4
3
|
import { extractIntrinsicViraProps } from "../../core/props/intrinsic-vira-props.js";
|
|
@@ -27,12 +26,11 @@ var Textfield = ({ className, description, dirty, disabled, endAddon, error, inv
|
|
|
27
26
|
validationMode,
|
|
28
27
|
render: /* @__PURE__ */ jsx(Stack, {
|
|
29
28
|
direction: "column",
|
|
30
|
-
fillChildren: false,
|
|
31
29
|
rowGap: "small"
|
|
32
30
|
}),
|
|
33
31
|
children: [
|
|
34
32
|
label && /* @__PURE__ */ jsx(Field.Label, {
|
|
35
|
-
|
|
33
|
+
className: textfield_module_default.Label,
|
|
36
34
|
children: /* @__PURE__ */ jsx(FieldLabel, { children: label })
|
|
37
35
|
}),
|
|
38
36
|
/* @__PURE__ */ jsx(InputControlGroup, {
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
var textfield_module_default = {
|
|
2
|
-
Textfield: "
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
Textfield: "viraui__textfield-module__Textfield_o-70A",
|
|
3
|
+
Label: "viraui__textfield-module__Label_5rjr0",
|
|
4
|
+
ControlGroup: "viraui__textfield-module__ControlGroup_2W-OC",
|
|
5
|
+
CustomBasicInput: "viraui__textfield-module__CustomBasicInput_oHgtd",
|
|
6
|
+
Addon: "viraui__textfield-module__Addon_kK1ef",
|
|
7
|
+
Description: "viraui__textfield-module__Description_8Qxot"
|
|
7
8
|
};
|
|
8
9
|
//#endregion
|
|
9
10
|
export { textfield_module_default as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.
|
|
1
|
+
.viraui__title-module__Title_CXMUX{--title-medium:clamp(var(--font-scale-body-medium),calc(var(--font-scale-body-medium) + var(--font-scale-body-x-small) / 12 + 0.24cqi),calc(var(--font-scale-body-medium) + var(--font-scale-body-x-small) / 3));--title-font-size:clamp(var(--font-scale-h2),calc(var(--title-medium) * pow(var(--font-heading-typescale), 5)),var(--font-scale-h1));--title-font-family:var(--font-family-heading);--title-font-weight:500;--title-font-width:100;--title-font-opsz:16;--title-line-height:var(--font-leading-standard);--title-letter-spacing:-0.03em;--title-align:start;--title-max-width:none;--title-white-space:normal;--title-padding-inline-start:0;--title-padding-inline-end:0;--title-padding-block-start:0;--title-padding-block-end:0;margin:0;max-inline-size:var(--title-max-width);font-family:var(--title-font-family);font-size:var(--title-font-size);line-height:var(--title-line-height);letter-spacing:var(--title-letter-spacing);text-align:var(--title-align);white-space:var(--title-white-space);word-break:break-word;font-optical-sizing:auto;font-variation-settings:"wght" var(--title-font-weight),"wdth" var(--title-font-width),"opsz" var(--title-font-opsz);text-box:var(--title-trim) var(--title-trim-type);display:inline-flex;&[data-title-balanced=true]{text-wrap:balance}&[data-title-selection=false]{-webkit-user-select:none;user-select:none}&[data-title-has-padding=true]{padding:var(--title-padding-block-start) var(--title-padding-inline-end) var(--title-padding-block-end) var(--title-padding-inline-start)}&[data-title-level=display]{--title-font-size:clamp(var(--font-scale-h1),calc(var(--font-scale-h1) + 4.643cqi - 0.9286rem),var(--font-scale-display))}&[data-title-level=h1]{--title-font-size:clamp(var(--font-scale-h2),calc(var(--title-medium) * pow(var(--font-heading-typescale), 5)),var(--font-scale-h1))}&[data-title-level=h2]{--title-font-size:clamp(var(--font-scale-h3),calc(var(--title-medium) * pow(var(--font-heading-typescale), 4)),var(--font-scale-h2))}&[data-title-level=h3]{--title-font-size:clamp(var(--font-scale-h4),calc(var(--title-medium) * pow(var(--font-heading-typescale), 3)),var(--font-scale-h3))}&[data-title-level=h4]{--title-font-size:clamp(var(--font-scale-h5),calc(var(--title-medium) * pow(var(--font-heading-typescale), 2)),var(--font-scale-h4))}&[data-title-level=h5]{--title-font-size:clamp(var(--font-scale-h6),calc(var(--title-medium) * pow(var(--font-heading-typescale), 1)),var(--font-scale-h5));--title-letter-spacing:-0.02em}&[data-title-level=h6]{--title-font-size:clamp(var(--font-scale-body-medium),var(--title-medium),var(--font-scale-h6));--title-letter-spacing:-0.02em}&[data-title-has-literal-color=true]{color:var(--title-literal-color)}&[data-title-line-height=none]{--title-line-height:0}&[data-title-line-height=x-small]{--title-line-height:var(--font-leading-x-small)}&[data-title-line-height=small]{--title-line-height:var(--font-leading-small)}&[data-title-line-height=large]{--title-line-height:var(--font-leading-large)}}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use client";
|
|
2
1
|
import './title.css';
|
|
3
2
|
import { clsx } from "../../core/clsx.js";
|
|
4
3
|
import { extractIntrinsicViraProps } from "../../core/props/intrinsic-vira-props.js";
|
|
@@ -17,8 +16,8 @@ var Title = ({ align = "start", balanced = false, selection = true, className, c
|
|
|
17
16
|
"--title-trim": trim ? `trim-${trim}` : "initial",
|
|
18
17
|
"--title-trim-type": trim ? trimType : "initial",
|
|
19
18
|
...typeof weight === "number" ? { "--title-font-weight": weight } : {},
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
"--title-font-width": fontWidth,
|
|
20
|
+
"--title-font-opsz": opticalSize,
|
|
22
21
|
...resolveAxisPadding(hPadding, "--title-padding-inline-start", "--title-padding-inline-end"),
|
|
23
22
|
...resolveAxisPadding(vPadding, "--title-padding-block-start", "--title-padding-block-end"),
|
|
24
23
|
...style
|
|
@@ -4,11 +4,11 @@ var getElevationProps = ({ resting, hover, direction = ELEVATION_DEFAULTS.direct
|
|
|
4
4
|
attributes: {
|
|
5
5
|
"data-elevation": resting,
|
|
6
6
|
"data-elevation-direction": direction,
|
|
7
|
-
|
|
7
|
+
"data-elevation-hover": hover
|
|
8
8
|
},
|
|
9
9
|
style: {
|
|
10
10
|
"--shadow-color": shadowColor,
|
|
11
|
-
|
|
11
|
+
"--extra-shadow": extraShadow
|
|
12
12
|
}
|
|
13
13
|
});
|
|
14
14
|
//#endregion
|
|
@@ -4,19 +4,19 @@ export type IntrinsicViraProps = {
|
|
|
4
4
|
*
|
|
5
5
|
* @default The component root does not render a grow attribute.
|
|
6
6
|
*/
|
|
7
|
-
grow?: boolean
|
|
7
|
+
grow?: boolean;
|
|
8
8
|
/**
|
|
9
9
|
* Adds `data-shrink="false"` to the component root when false.
|
|
10
10
|
*
|
|
11
11
|
* @default The component root does not render a shrink attribute.
|
|
12
12
|
*/
|
|
13
|
-
shrink?: boolean
|
|
13
|
+
shrink?: boolean;
|
|
14
14
|
/**
|
|
15
15
|
* Adds `data-vibrant` to the component root when true so preflight vibrancy styles can opt the surface into backdrop filtering.
|
|
16
16
|
*
|
|
17
17
|
* @default The component root does not render a vibrant attribute.
|
|
18
18
|
*/
|
|
19
|
-
vibrant?: boolean
|
|
19
|
+
vibrant?: boolean;
|
|
20
20
|
};
|
|
21
21
|
type IntrinsicViraAttributes = {
|
|
22
22
|
'data-grow'?: 'false';
|
package/dist/index.js
CHANGED
|
@@ -2,6 +2,12 @@ import { Avatar } from "./components/avatar/avatar.js";
|
|
|
2
2
|
import { AvatarGroup } from "./components/avatar-group/avatar-group.js";
|
|
3
3
|
import { Stack } from "./components/stack/stack.js";
|
|
4
4
|
import { Chip } from "./components/chip/chip.js";
|
|
5
|
+
import { DialogClose } from "./components/dialog/dialog-close.js";
|
|
6
|
+
import { DialogIndent } from "./components/dialog/dialog-indent.js";
|
|
7
|
+
import { DialogIndentBackground } from "./components/dialog/dialog-indent-background.js";
|
|
8
|
+
import { DialogSheet } from "./components/dialog/dialog-sheet.js";
|
|
9
|
+
import { DialogTrigger } from "./components/dialog/dialog-trigger.js";
|
|
10
|
+
import { Dialog } from "./components/dialog/dialog.js";
|
|
5
11
|
import { ClampText } from "./components/clamp-text/clamp-text.js";
|
|
6
12
|
import { ELEVATION_DEFAULTS } from "./core/elevation/elevation-types.js";
|
|
7
13
|
import { getElevationProps } from "./core/elevation/get-elevation-props.js";
|
|
@@ -17,13 +23,17 @@ import { Textarea } from "./components/textarea/textarea.js";
|
|
|
17
23
|
import { Slider } from "./components/slider/slider.js";
|
|
18
24
|
import { Switch } from "./components/switch/switch.js";
|
|
19
25
|
import { Checkbox } from "./components/checkbox/checkbox.js";
|
|
26
|
+
import { CheckboxGroup } from "./components/checkbox/checkbox-group.js";
|
|
27
|
+
import { Fieldset } from "./components/fieldset/fieldset.js";
|
|
20
28
|
import { Radio } from "./components/radio/radio.js";
|
|
21
29
|
import { RadioGroup } from "./components/radio/radio-group.js";
|
|
22
30
|
import { Select } from "./components/select/select.js";
|
|
31
|
+
import { Separator } from "./components/separator/separator.js";
|
|
23
32
|
import { Icon } from "./components/icon/icon.js";
|
|
24
33
|
import { Skeleton } from "./components/skeleton/skeleton.js";
|
|
25
34
|
import { Surface } from "./components/surface/surface.js";
|
|
35
|
+
import { Tabs } from "./components/tabs/tabs.js";
|
|
26
36
|
import { StaticNoise } from "./components/static-noise/static-noise.js";
|
|
27
37
|
import { ProgressiveBlur } from "./components/progressive-blur/progressive-blur.js";
|
|
28
38
|
import { Title } from "./components/title/title.js";
|
|
29
|
-
export { Avatar, AvatarGroup, Button, Checkbox, Chip, ClampText, ELEVATION_DEFAULTS, Elevator, Icon, IconButton, LinearProgress, Masonry, ProgressiveBlur, Radio, RadioGroup, Select, Skeleton, Slider, Spinner, Stack, StaticNoise, Surface, Switch, Text, Textarea, Textfield, Title, getElevationProps };
|
|
39
|
+
export { Avatar, AvatarGroup, Button, Checkbox, CheckboxGroup, Chip, ClampText, Dialog, DialogClose, DialogIndent, DialogIndentBackground, DialogSheet, DialogTrigger, ELEVATION_DEFAULTS, Elevator, Fieldset, Icon, IconButton, LinearProgress, Masonry, ProgressiveBlur, Radio, RadioGroup, Select, Separator, Skeleton, Slider, Spinner, Stack, StaticNoise, Surface, Switch, Tabs, Text, Textarea, Textfield, Title, getElevationProps };
|
|
@@ -2,7 +2,7 @@ import type { ComponentType, SVGProps } from 'react';
|
|
|
2
2
|
export type GeneratedIconComponent = ComponentType<SVGProps<SVGSVGElement> & {
|
|
3
3
|
size?: number | string;
|
|
4
4
|
}>;
|
|
5
|
-
export declare const generatedIconNames: readonly ["ArrowDown", "ArrowDownLeft", "ArrowDownRight", "ArrowLeft", "ArrowRight", "ArrowUp", "ArrowUpLeft", "ArrowUpRight", "CaretDown", "CaretLeft", "CaretRight", "CaretUp", "Check", "ChevronDown", "ChevronExpandY", "ChevronLeft", "ChevronRight", "ChevronUp", "CircleHalfDottedClock", "CircleImage", "Clock", "DarkLight", "History", "Image", "ImagesLayered", "Lock", "LockOpen", "Magnifier", "Minus", "MoonStars", "Plus", "Quickstart", "RefreshAnticlockwise", "Sun", "Xmark"];
|
|
5
|
+
export declare const generatedIconNames: readonly ["ArrowDown", "ArrowDownLeft", "ArrowDownRight", "ArrowLeft", "ArrowRight", "ArrowUp", "ArrowUpLeft", "ArrowUpRight", "CaretDown", "CaretLeft", "CaretRight", "CaretUp", "Check", "ChevronDown", "ChevronExpandY", "ChevronLeft", "ChevronRight", "ChevronUp", "CircleCheck", "CircleHalfDottedClock", "CircleImage", "Clock", "DarkLight", "Duplicate", "History", "Image", "ImagesLayered", "Lock", "LockOpen", "Magnifier", "Minus", "MoonStars", "Plus", "Quickstart", "RefreshAnticlockwise", "ShieldCheck", "Sun", "Xmark"];
|
|
6
6
|
export type GeneratedIconName = (typeof generatedIconNames)[number];
|
|
7
7
|
export declare const generatedIconVariants: readonly ["duo"];
|
|
8
8
|
export type GeneratedIconVariant = (typeof generatedIconVariants)[number];
|
|
@@ -26,10 +26,12 @@ export declare const generatedIconRegistry: {
|
|
|
26
26
|
readonly ChevronLeft: import("react").ForwardRefExoticComponent<Omit<import("./icons/duo/ChevronLeft").ChevronLeftProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
|
|
27
27
|
readonly ChevronRight: import("react").ForwardRefExoticComponent<Omit<import("./icons/duo/ChevronRight").ChevronRightProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
|
|
28
28
|
readonly ChevronUp: import("react").ForwardRefExoticComponent<Omit<import("./icons/duo/ChevronUp").ChevronUpProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
|
|
29
|
+
readonly CircleCheck: import("react").ForwardRefExoticComponent<Omit<import("./icons/duo/CircleCheck").CircleCheckProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
|
|
29
30
|
readonly CircleHalfDottedClock: import("react").ForwardRefExoticComponent<Omit<import("./icons/duo/CircleHalfDottedClock").CircleHalfDottedClockProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
|
|
30
31
|
readonly CircleImage: import("react").ForwardRefExoticComponent<Omit<import("./icons/duo/CircleImage").CircleImageProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
|
|
31
32
|
readonly Clock: import("react").ForwardRefExoticComponent<Omit<import("./icons/duo/Clock").ClockProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
|
|
32
33
|
readonly DarkLight: import("react").ForwardRefExoticComponent<Omit<import("./icons/duo/DarkLight").DarkLightProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
|
|
34
|
+
readonly Duplicate: import("react").ForwardRefExoticComponent<Omit<import("./icons/duo/Duplicate").DuplicateProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
|
|
33
35
|
readonly History: import("react").ForwardRefExoticComponent<Omit<import("./icons/duo/History").HistoryProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
|
|
34
36
|
readonly Image: import("react").ForwardRefExoticComponent<Omit<import("./icons/duo/Image").ImageProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
|
|
35
37
|
readonly ImagesLayered: import("react").ForwardRefExoticComponent<Omit<import("./icons/duo/ImagesLayered").ImagesLayeredProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
|
|
@@ -41,6 +43,7 @@ export declare const generatedIconRegistry: {
|
|
|
41
43
|
readonly Plus: import("react").ForwardRefExoticComponent<Omit<import("./icons/duo/Plus").PlusProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
|
|
42
44
|
readonly Quickstart: import("react").ForwardRefExoticComponent<Omit<import("./icons/duo/Quickstart").QuickstartProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
|
|
43
45
|
readonly RefreshAnticlockwise: import("react").ForwardRefExoticComponent<Omit<import("./icons/duo/RefreshAnticlockwise").RefreshAnticlockwiseProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
|
|
46
|
+
readonly ShieldCheck: import("react").ForwardRefExoticComponent<Omit<import("./icons/duo/ShieldCheck").ShieldCheckProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
|
|
44
47
|
readonly Sun: import("react").ForwardRefExoticComponent<Omit<import("./icons/duo/Sun").SunProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
|
|
45
48
|
readonly Xmark: import("react").ForwardRefExoticComponent<Omit<import("./icons/duo/Xmark").XmarkProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
|
|
46
49
|
};
|